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.

Fortress Documentation Home

Basic Flow

  1. Create a bearer token for authenticating endpoint calls.
  2. Create Identities and KYC.
  3. Link accounts.
  4. 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 TermFortress Equivalent
Sila WalletCustodial Account
Individual EntityPersonal Identity
Business EntityBusiness Identity
Register EntityCreate Identity Container

Authentication

Fortress Documentation

Obtaining a Bearer Token

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

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 to
  • personalIdentityId OR businessIdentityId 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.

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

Payments vs Transactions

Try it Out

Retrieve the fiat deposit instructions

Create a Payment

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 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

Crypto Transfer

Try it out

Trade Crypto between two custodial accounts or Withdraw Crypto from a custodial account to a destination wallet address


Instant Settlement Account Set Up

Instant Settlement Accounts (ISA) with Fortress requires the follow steps for creation:

  1. Onboard your company as a business identity
  2. Open a custodial account under that business identity
  3. Obtain the Organization ID via this endpoint.
  4. 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.

  1. 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)
  2. 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.
  3. 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.