Overview
The Payout Service API allows users to create a payout instruction set, execute it, and monitor the status of the payout.
A payout instruction set describes how to distribute payments from a payment account to multiple payee accounts.
- Payment account: Any valid Fireblocks-supported vault account, exchange account, or fiat account.
- Payee account: A valid address in Fireblocks for receiving funds. This can be a vault account, exchange account, whitelisted address, fiat account, or a merchant account.
The payout process can only be executed if the payout account has a sufficient balance for the entire payout instruction set. If the payout account doesn’t have a sufficient balance, the payout remains in an Insufficient Balance state until the payment account has a sufficient balance to perform the payout instructions. Payouts in an Insufficient Balance state expire at midnight UTC and are moved to Failed status.
A payout instruction set can only be executed once. Re-executing a payout instruction set results in an error.
Source locking
You can only execute one payout per payment account at a given time. If you execute multiple payouts from a single payment account, the requests will be queued and initiated in the order received.
For example, Exchange Account A holds 100 USDC. If you use Exchange Account A to execute two payouts (one for 80 USDC and another for 50 USDC), the second payout will not be executed until the first one completes. In this scenario, the second payout will fail due to an insufficient balance in the payment account.