Skip to main content

Create Payout

Initiate a payout to send fiat to a bank account or stablecoins to a wallet. All payouts must reference a valid quote.

Endpoint

POST /v1/payouts

Request Headers

HeaderRequiredDescription
X-API-KeyYesYour API key
Content-TypeYesapplication/json
Idempotency-KeyNoUnique identifier for idempotent retries

Request

curl -X POST https://api.thiqwave.com/v1/payouts \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: unique_request_id" \
  -d '{
    "quote_id": "quote_9876543210",
    "destination_account": {
      "account_holder": "John Doe",
      "account_number": "0123456789",
      "bank_code": "ABUAAE3D",
      "country": "AE"
    },
    "reference": "payout_ref_001",
    "metadata": {
      "order_id": "order_456"
    }
  }'

Request Body

FieldTypeRequiredDescription
quote_idstringYesQuote ID from a prior quote request. Locks in rates and fees.
destination_accountobjectConditionalBank account object for fiat payouts. Required if destination is fiat. Contains: account_holder, account_number, bank_code, country.
destination_addressstringConditionalWallet address for stablecoin payouts. Required if destination is stablecoin.
destination_networkstringConditionalBlockchain network for stablecoin payouts.
referencestringNoYour internal reference for the payout.
metadataobjectNoKey-value pairs for your reference.

Response

{
  "payout_id": "payout_1234567890",
  "quote_id": "quote_9876543210",
  "status": "pending",
  "source_currency": "USDT",
  "source_network": "ethereum",
  "source_amount": "500.00",
  "destination_currency": "AED",
  "destination_account": {
    "account_holder": "John Doe",
    "account_number": "0123456789",
    "bank_code": "ABUAAE3D",
    "country": "AE"
  },
  "destination_amount": 52250,
  "reference": "payout_ref_001",
  "created_at": "2026-04-09T14:30:00Z",
  "completed_at": null
}

Response Fields

FieldTypeDescription
payout_idstringUnique payout identifier.
quote_idstringAssociated quote ID.
statusstringCurrent status: pending, processing, completed, failed.
source_currencystringSource stablecoin or fiat currency.
source_networkstring | nullSource blockchain (if stablecoin).
source_amountstring | integerAmount in source currency.
destination_currencystringDestination currency.
destination_accountobject | nullBank account details (if fiat destination).
destination_addressstring | nullWallet address (if stablecoin destination).
destination_amountstring | integerAmount in destination currency.
referencestringYour reference for the payout.
created_atstringISO 8601 timestamp of creation.
completed_atstring | nullISO 8601 timestamp of completion.

Payout States

StatusDescription
pendingPayout initiated and awaiting processing.
processingFunds are being transferred.
completedFunds delivered to recipient.
failedPayout failed. Check details for reason.

Notes

  • Ensure the quote is not expired before creating a payout.
  • For fiat payouts, verify bank account details are correct to avoid failed transfers.
  • Monitor payout status via the Get Payout endpoint or webhooks.