Fortress Integration
This doc is meant to outline the basic Fortress onboarding flow for Sila customers. Please use Fortress's documentation for full details on interacting with the Fortress APIs.
Crypto Only
At this time Fortress is only supporting crypto transactions. You can reference some of the Fortress crypto documentation here and here.
For crypto only, you will still follow the basic end user onboarding flow outlined below.
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.
Terminology
Fortress functionality is very similar to Sila functionality, but the terminology is different. Below is a table with Sila terminology that has a Fortress equivalent so that you can better understand and utilize the Fortress documentation.
Sila Term | Fortress Equivalent |
---|---|
Sila Wallet | Custodial Account |
Individual Entity | Personal Identity |
Business Entity | Business Identity |
Register Entity | Create Identity Container |
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
Crypto Only
Since Fortress is currently crypto only, all Identities will need to be KYC L2.
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
L2 (verified PII from L1 and documentation)
- Crypto functionality
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.
Beneficial Owners can be either Personal or Business Identities.
All the Beneficial Owner Identities need to be created before creating the Business Identity so that they can be passed into the Business Identity creation call.
NOTE
There is not an endpoint to update Beneficial Owners after a Business Identity has been created.
If you need do need to update BO's on an existing Business Identity, please reach out to Sila support with:
businessIdentityId
that you want to add a BO topersonalIdentityId
ORbusinessIdentityId
of the new BO that you want to add
The KYB Level of Business Identities will match the aggregate KYC Level of all the attached Personal and/or Business 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.
NY and TX
Please note that Fortress does not support custodial accounts in either NY or TX. You will not be able to create custodial accounts for any identities with addresses in either of these states.
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.
Before Transacting
Prior to transacting with a custodial account, please call the Retrieve the fiat deposit instructions endpoint in order to allow fiat to be deposited into the custodial account. This endpoint must be called for any custodial account used to transact. If you plan to use a custodial account for multiple types of fiat, then you must call this endpoint for each individual fiat.
Fortress Documentation
Try it Out
Retrieve the fiat deposit instructions
Just like with Sila, only the following payment movements are supported with Fortress:
- Custodial Account > External Account
- External Account > Custodial Account
- Custodial Account > Custodial Account
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
Once an end user has reached KYC level L2, they can begin by depositing crypto into their custodial account. They can then buy and sell crypto, and make internal transfers between custodial accounts.
Deposits to custodial accounts can be made in any supported token type.
Trading Pairs
Each of the trading pairs Fortress supports face USD. This means that if an end user wants to trade one kind of crypto for another, the process will be:
- Crypto type A > USD
- USD > desired crypto type B
Please use the Trading Pairs doc as a reference for all of the available token types in Production. The Buy/Sell API Guide includes token types available only in Sandbox.
Crypto Buying/Selling
Fortress Documentation
Please find Fortress's documentation on the process of buying and selling crypto here.
Try it Out
Pull the market price for a specific crypto
Initiate the buying or selling of Crypto
Crypto Transfers and Withdrawals
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.
- Transfer Note: While deposits and withdrawals cannot currently be made in USD, internal transfers between custodial accounts can still be done in USD.
- Withdrawal 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.
FAQ
Q: How can I create a custodial account for internal use?
A: You'll create your own Custodial account the same as a business end users would.
- Have your beneficial owner create an Identity Container via this endpoint here. (Note: if you don't have any beneficial owners with more than 25% ownership, then you will need to have an executive member complete this step. ie: CEO, COO, etc)
- Create a business container using this endpoint here. You'll need to pass in the personal identity id you received from the endpoint response from Step 1.
- Create a custodial account for your business using this endpoint here.
In the Sandbox environment, all the data you enter can be fake, but in Production environment, this will all need to be real data.
Q: What if I have a US citizen that doesn't have an SSN I need to KYC?
A: An Individual Taxpayer Identification Number (ITIN) is a valid replacement for SSN - enter it in the SSN field. The same validations are used for ITIN as with SSN.
Q: How long does it take Fortress to review an end user's uploaded document?
A: As of right now, Fortress does not have an we don't have an ETA on document review times.
If your documents are still pending for a long period of time, feel free to reach out to Sila Support in your customer slack channel and we can escalate it up to Fortress.
Updated 4 months ago