Fortress Integration
This doc is meant to outline the basic Fortress flow for Sila customers. Please use Fortress's documentation for full details on interacting with the Fortress APIs.
Basic Flow
- Create a bearer token for authenticating endpoint calls.
- Create Identities and KYC.
- Link accounts.
- Ready to transact.
Please note before you get started, Fortress will need to certify a demo. Documentation can be found here.
The Fortress Dashboard allows you to view identities, custodial accounts, and transactions within your organization. Link to the Sandbox Dashboard can be found here.
Authentication
Fortress Documentation
Fortress utilizes Auth0 for secure access to their APIs. You will need to hit the Fortress Auth0 API, which will return a bearer token to be used in all subsequent calls. The response will include a timestamp that will let you know how long the bearer token will be valid for before needing to obtain a new one.
Identities and KYC/KYB
First you will begin by creating Identities - objects that are then linked to external bank accounts or Fortress custodial accounts.
Fortress Documentation
What are Identity Containers and Identities? How is KYC done?
Personal Identities / Create Identity Containers
Business Identities
Try it Out
Create Personal Identity / Identity Container
Create Business Identity
Upload a Document for KYC Check
KYC Levels
Sila is concerned with two of the three Fortress KYC level tiers:
L0 (First/Last name, email, phone number):
- Create identity object
L1 (verified PII, DoB, address, tax-id):
- Create accounts
- Deposit/Withdrawal fiat to/from accounts
Personal Identities and Identity Containers
Create your first, or a new, Personal Identity and a new Identity Container is created with it. The endpoint is the same - create one to create the other. Identity Containers serve as the container object for Personal and Business Identity objects.
Identity Containers can contain 1 Personal Identity and 0+ Business Identities.
You can create a new Personal Identity with just the first/last name, email, and phone number, but you will only be able to link accounts and start transacting when those Identities have been upgraded to L1.
Business Identities
Business Identities can only be added to existing Identity Containers. You will have the option to add Beneficial Owners (any shareholder in the business who owns 25% or more of the primary business). Beneficial Owners exist as an array within the Business Identity object.
All the Beneficial Owner Personal Identities need to be created before creating the Business Identity so that they can be passed into the Business Identity creation call.
The KYB Level of Business Identities will match the aggregate KYC Level of all the attached Personal Identities.
External Accounts and Custodial Accounts
Once you have Identities created and KYC'ed, you can start opening accounts for them. Sila is concerned about two types of accounts: Custodial Accounts and External Accounts.
Fortress Documentation
About Accounts
MX Integration
Create External Account with Plaid Processor Token
Try It Out
Create a New Custodial Account
External Accounts
External bank accounts must be linked either through the MX Integration or with a Plaid processor token.
To utilize the MX Integration, generate a widget url with Fortress's APIs. This allows a secure iframe to be loaded on your front-end for end users to select their bank to connect.
To use Plaid, enable the Fortress processor in your Plaid dashboard and use the Plaid documentation to generate a processor token, which will then be used to create an account for a specified Identity.
Custodial Accounts
Custodial accounts can be created for Personal and Business Identities after they've reached the L1 KYC Level.
Transacting
When transacting, please note the difference between the Payment object and the Transaction object. All movements will generate both a Payment and a Transaction object.
You will use the Create a Payment endpoint for all transactions, including transfers. The Execute Transfer endpoint is for crypto only.
Fortress Documentation
Try it Out
Payment:
- An object that tracks the initiation of a movement.
- If the initiation is successful, the payment is considered completed.
Transaction:
- An object that tracks the lifecycle of a particular movement.
- The status will change throughout the lifecycle, along with additional values being populated at certain
points. - This is the object you'll want to mainly track and for your system and your end users.
Crypto Buying/Selling
Fortress Documentation
The flow here outlines the process of buying and selling of crypto within the Fortress API. You can find all the trading pairs supported by Fortress here.
Try it Out
Pull the market price for a specific crypto
Initiate the buying or selling of Crypto
Crypto Trading/Withdrawing
Fortress APIs allow you to internally transfer or withdraw crypto. If you want to transfer crypto between two custodial accounts, you'll just need to specify the custodialAccountId. If withdrawing crypto, you'll specify the source custodial account and the destination wallet address.
Note: You cannot withdraw crypto in sandbox (besides FLRNS and MATIC on the Polygon network).
Fortress Documentation
Try it out
Instant Settlement Account Set Up
Instant Settlement Accounts (ISA) with Fortress requires the follow steps for creation:
- Onboard your company as a business identity
- Open a custodial account under that business identity
- Obtain the Organization ID via this endpoint.
- Provide Sila Support with the Business Identity ID, Custodial Account ID, and Organziation ID to Sila. Configuration for the IS account will be done via the backend.
Updated 9 days ago