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.

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.


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

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

Payments vs Transactions

Try it Out

Create a Payment

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.