Every Banxa order moves through a sequence of statuses from creation to completion. The order response from POST /v2/buy, POST /v2/sell, and GET /v2/orders all include an order status field.
You may want to group or map these statuses into something more meaningful for the experience you present to your customers.
| Status | Definition |
|---|---|
pendingPayment | Order has been created and the customer has submitted KYC information. Buy: waiting for customer payment. Sell: waiting for required conditions before Banxa can accept the crypto payment. |
waitingPayment | Buy: customer has submitted payment information; waiting for final confirmation from external payment systems. Sell: all conditions are met and the customer needs to send crypto to the provided wallet address. This webhook signals that cryptocurrency is ready to be sent to Banxa. |
paymentReceived | Payment confirmed. Buy: fiat payment received. Sell: crypto payment received. |
inProgress | Payment information has been received by external payment systems. The order is in final verification and processing. |
cryptoTransferred | Cryptocurrency transaction has been submitted to the blockchain. |
complete | Order completed. Buy: deemed complete after 2 blockchain confirmations. Sell: deemed complete when fiat has been successfully sent to the customer. |
cancelled | Order cancelled by Banxa due to internal risk and compliance alerts. |
declined | Order declined by external payment systems. |
expired | Order created but payment not received within the expiry window. Expiry times vary by payment method. Note: expired orders can become active again — if payment is received after expiry, the order will automatically continue through the normal processing stages. |
refunded | Order refunded by Banxa customer support at the customer's request. |
extraVerification | Order held for additional verification (e.g., ID or address verification). Banxa customer support will contact the customer to resolve the order. |
For instant payment methods (card, Apple Pay), waitingPayment may be bypassed.
waitingPayment is the signal for custodial integrations to execute the crypto transfer. Once Banxa receives the crypto (paymentReceived), the fiat payout is processed.
The following statuses are final — the order will not progress further:
completecancelleddeclinedrefunded
Note:
expiredis not always terminal. Orders can resume if payment is received after the expiry time.extraVerificationis a hold state — the order will resume once verification is resolved by Banxa support.
You can retrieve the current status of any order via the order lookup endpoint, or receive status updates automatically via webhooks.
→ See Order Lookup and Webhooks.