Skip to main content

The payout object

A payout represents a withdrawal of settled funds from your Orafi account to an external wallet address. Payouts are processed on-chain in USDC.
id
string
Unique identifier for the payout.
amount
number
Payout amount in the base unit.
status
string
default:"INITIALIZED"
Current payout status. One of INITIALIZED, COMPLETED, or FAILED.
walletAddress
string
Destination wallet address the funds are sent to.
txDigest
string
On-chain transaction digest, available after the payout is processed.
method
string
Payout method. One of CRYPTO or FIAT.
transactionId
string
ID of the parent transaction record.
cryptoAccountId
string
ID of the crypto settlement account used, if applicable.
fiatAccountId
string
ID of the fiat settlement account used, if applicable.
{
  "id": "cmjpayout001",
  "amount": 5.00,
  "status": "COMPLETED",
  "walletAddress": "0x871cf48ff1847e7a...55c2d3",
  "txDigest": "5kRmC7nV...",
  "method": "CRYPTO",
  "transactionId": "cmjfu1cjv0002v8vsabc12345",
  "cryptoAccountId": "854da716-03bf-4bcf-9eba-3302208f8f36",
  "fiatAccountId": null
}

Transaction sub-object

When retrieving a Transaction with type: "PAYOUT", the payout appears as a nested payout sub-object with these fields:
id
string
Unique identifier for the payout.
method
string
Payout method. One of CRYPTO or FIAT.
walletAddress
string
Destination wallet address. Present for crypto payouts.
txDigest
string
On-chain transaction digest. Available after payout is processed.
cryptoAccountId
string
ID of the crypto settlement account used, if applicable.
fiatAccountId
string
ID of the fiat settlement account used, if applicable.
{
  "id": "cmjpayout001",
  "method": "CRYPTO",
  "walletAddress": "0x871cf48ff1847e7a...55c2d3",
  "txDigest": "5kRmC7nV...",
  "cryptoAccountId": "854da716-03bf-4bcf-9eba-3302208f8f36",
  "fiatAccountId": null
}

Check available balances

GET /transactions/payout/balances
Returns your available payout balances by token. Use this to check how much you can withdraw before initiating a payout.
curl -X GET https://api.orafi.app/transactions/payout/balances \
  -H "x-api-key: ora_test_your_api_key"

Create a crypto payout

POST /transactions/payout/crypto
Initiates a crypto payout. There are two supported methods:
Use a previously saved crypto settlement account. No wallet signing required.Required fields: amount, cryptoSettlementAccountId

Request body

amount
number
required
Amount to withdraw.
cryptoSettlementAccountId
string
ID of a saved crypto settlement account. Use this or provide a direct wallet address --- not both.
walletAddress
string
Destination wallet address for the payout. Required when not using a settlement account.
bytes
string
Serialized message bytes signed by the wallet owner. Required with walletAddress.
signature
string
Cryptographic signature generated by signing bytes with the wallet’s private key. Required with walletAddress.
save
boolean
default:"false"
When true, saves the wallet address as a settlement account for future payouts.
curl -X POST https://api.orafi.app/transactions/payout/crypto \
  -H "Content-Type: application/json" \
  -H "x-api-key: ora_test_your_api_key" \
  -d '{
    "amount": 5000,
    "cryptoSettlementAccountId": "854da716-03bf-4bcf-9eba-3302208f8f36"
  }'

Create a fiat payout

Fiat payouts are coming soon. You will be able to withdraw directly to a bank account. See Fiat Settlements for planned endpoints.

Retry a failed payout

POST /transactions/payout/crypto/retry
Retries a payout that previously failed. The payout must be in FAILED status.

Request body

payoutId
string
required
The ID of the failed payout to retry.
curl -X POST https://api.orafi.app/transactions/payout/crypto/retry \
  -H "Content-Type: application/json" \
  -H "x-api-key: ora_test_your_api_key" \
  -d '{
    "payoutId": "payout_abc123"
  }'