Statuses
Order and payout statuses returned on create, query, and webhooks.
Orders
| Status | Meaning |
|---|---|
pending | Created; quote not locked. |
awaiting_payment | Quote locked; waiting for funds. |
paid_partial | Some funds received. |
paid | Quote covered (including underpay tolerance). |
paid_over | Received more than the quote plus overpay tolerance. |
expired | Timer elapsed while still open. |
cancelled | Payer closed checkout. |
failed | Terminal. The payment could not complete. |
refunded | Terminal. The payment was refunded later. There is no CRM refund endpoint. |
Payouts
| Status | Meaning |
|---|---|
pending | Created; USD held on the merchant balance. |
submitted | Accepted and sent on-chain. |
completed | On-chain confirmation received. |
failed | Did not complete. Available USD is credited back. |
Open vs terminal
Open orders are pending, awaiting_payment, and paid_partial. Reading an open order after expiry marks it expired and emits order.expired. Paid and paid_over cannot be cancelled (40900). failed and refunded are also terminal: the first means the payment could not complete; the second means a later refund. There is no CRM refund create endpoint in this API. Payouts are open as pending or submitted. Failed payouts restore available USD.
Matching events
Webhooks fire as order.paid, order.paid_partial, order.paid_over, order.expired, and order.cancelled. Payouts fire payout.submitted, payout.completed, and payout.failed. Full payloads on Payment notification and Payout notification.