Payouts API

Create a payout

Sending crypto from the merchant business wallet balance to an external address.

POST https://api.speend.io/payout/create

Request body fields

Parameter Type Required DESCRIPTION
order_id integer yes A unique payout ID on the merchant side. The status and the webhook are matched by it later
currency string yes Payout currency, USDT for example
network string yes The network the transaction is sent in, TRON for example
amount number yes The amount to pay out in the currency given. The minimum is the equivalent of 7 USD (checked separately from the number format)
address string yes The recipient address in the chosen network
url_callback string no URL for webhook notifications about this payout
{
  "order_id": 13,
  "currency": "USDT",
  "network": "SOL",
  "amount": 7,
  "address": "8Q3zsm*****tVUzasKQ"
}
{
  "uuid": "019f89aa-bfe9-7308-8e40-fb5b1345a5a4",
  "order_id": "13",
  "address": "8Q3zsm*****tVUzasKQ",
  "amount": "7",
  "currency": "USDT",
  "network": "SOL",
  "status": "SUCCESS",
  "is_final": true,
  "transaction_data": {
    "txid": "DgR9Tg*****AFe5nA9j6zJ6",
    "from": "FPoyLa*****iSHRMR1x",
    "to": "8Q3zsm*****tVUzasKQ",
    "coin": "USDT",
    "amount": "7"
  },
  "created_at": "2026-07-22 11:51:36"
}

Response fields

Parameter DESCRIPTION
uuid Payout UUID
order_id Your payout ID from the request
address Recipient address
amount Payout amount
currency Payout currency
network The network the transaction was sent in
status Payout status — see the "Payout statuses" section
is_final The final-status flag
transaction_data Blockchain transaction details (see the table below)
created_at The date and time the payout was created

The transaction_data object

Parameter DESCRIPTION
txid The transaction hash in the blockchain
from The sender address (the Speend wallet the payout went out from)
to The recipient address — the same as address in the request
coin Transaction currency
amount The amount sent in the blockchain transaction

Idempotency

422 errors

Situation Message
The order_id field was not sent (the same goes for currency, network, amount and address — every field is required) The order id field is required.
The currency sent is not supported for payouts The selected currency is invalid.
The network sent is not supported for payouts, or does not match the currency given The selected network is invalid.
The currency + network combination does not exist currency with such network does not exist
The address is on the blacklist address is black listed
The address does not match the format of the chosen network address is invalid
The payout amount converted to USD is below 7 Amount is too low
The merchant balance does not hold enough funds for the payout insufficient balance
The payout amount is over the limit allowed without merchant confirmation The withdrawal amount exceeds the maximum allowed without merchant approval. Please contact the merchant.

Payout status

Getting the current status and details of a payout created earlier.

POST https://api.speend.io/payout/getStatus

Request body fields

Parameter Type Required DESCRIPTION
order_id string yes Your payout ID from the creation request
{
  "order_id": "13"
}
{
  "uuid": "019f89aa-bfe9-7308-8e40-fb5b1345a5a4",
  "order_id": "13",
  "address": "8Q3zsm*****tVUzasKQ",
  "amount": "7",
  "currency": "USDT",
  "network": "SOL",
  "status": "SUCCESS",
  "is_final": true,
  "transaction_data": {
    "txid": "DgR9Tg*****AFe5nA9j6zJ6",
    "from": "FPoyLa*****iSHRMR1x",
    "to": "8Q3zsm*****tVUzasKQ",
    "coin": "USDT",
    "amount": "7"
  },
  "created_at": "2026-07-22 11:51:36"
}

Response fields

The response fields are exactly those of payout/create (see the previous section).

The status lifecycle

The successful path:

  • REQUESTED
  • AWAITING_CONFIRMATION
  • ON_QUEUE
  • ON_QUEUE_CONVERSION
  • ON_NETWORK_QUEUE
  • SUCCESS

Alternative (unsuccessful) outcomes — possible at any of the intermediate steps above:

  • CANCELED
  • FAILED
  • AML_FAILED
Status Meaning is_final
REQUESTED The payout is created, the request is accepted false
AWAITING_CONFIRMATION Waiting for the merchant to confirm the payout (the confirmation window in the merchant dashboard) false
ON_QUEUE The payout is accepted for processing and is waiting in the queue false
ON_QUEUE_CONVERSION The currency conversion stage — topping up the donor wallet through an exchange false
ON_NETWORK_QUEUE The network transfer stage — the transaction is being sent on-chain false
SUCCESS The payout was sent successfully and is confirmed in the blockchain true
CANCELED The payout was cancelled true
FAILED The payout failed (an error at the processing or sending stage) true
AML_FAILED The payout was rejected by an AML check (compliance scoring of the recipient address) true

422 errors

Situation Message
The order_id field was not sent The order id field is required.
order_id was sent as a number instead of a string The order id must be a string.
order_id was sent as a number instead of a string Withdrawal not found.
speend