Everything Fiat

This section will describe how fiat flows in/out of the fortress system and also touch on how payment methods are created. We'll also include sections related to risk and timing to give you a full picture of how fiat is handled in the system and how best to work with your applications.

What are payment methods(externalAccounts)?

Payment methods are persistent objects linked to an identity that references a connected bank account/credit card. For instance, Fortress utilizes MX to connect end users to their bank accounts, allowing them to interface directly with their bank. Once the setup flow is complete, you are returned an id that can be used to create this persisted object. When making a payment, depositing, or buying crypto, you can then reference that particular bank account id for funding of the good/service.

*New 24/7 Instant Settling Fiat Transactions

Fortress can now instantly settle any fiat movement within our ecosystem 24 hours a day, 7 days a week. How does it work?

  • Generate the deposit instructions for any custodial account
  • Generate an outgoing wire payment
  • If the account deposit instructions match any other account in our system, the outgoing wire payment will instead become a book transfer, and instantly settle into the receiving account (carrying it's memo value with the transaction to the receiver for referencing). Instant Payments, No Fees!

"Payments" vs "Transactions"

Two objects you'll see referenced many times in the APIs are the payment and transaction objects. These objects track the initiation of a movement of fiat/crypto and track the lifecycle of that movement. Most of your focus will be on the transaction object.

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.

Below are the possible values for status related to the transaction object.

StatusOperationDescription
NewACH, Wires, Card Deposittransaction is created, but not started yet
ProcessingACH, Wires, Deposittransaction is processing, movement of fiat to destination account.
In ProgressACH Deposit with ISA, Card Deposittransaction is still in progress, only for card deposit, ACH deposit with ISA : waiting while compensation with ISA is finished
FailedACH, Wires, Card Deposittransaction is failed, when the transaction failed at some stage: either on the card provider's/bank side or at settlement
CompletedACH, Wires, Card Deposittransaction is completed successfully, when the settlement/payment is completely finished

🚧

All movements currently generate a payment and transaction object

Initiating a fiat movement (payment), a crypto movement (transfer) or a crypto buy/sell (trade) will generate both a payment object as well as a transaction object for tracking.