Skip to content
Last updated

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 reference

StatusDefinition
pendingPaymentOrder 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.
waitingPaymentBuy: 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.
paymentReceivedPayment confirmed. Buy: fiat payment received. Sell: crypto payment received.
inProgressPayment information has been received by external payment systems. The order is in final verification and processing.
cryptoTransferredCryptocurrency transaction has been submitted to the blockchain.
completeOrder completed. Buy: deemed complete after 2 blockchain confirmations. Sell: deemed complete when fiat has been successfully sent to the customer.
cancelledOrder cancelled by Banxa due to internal risk and compliance alerts.
declinedOrder declined by external payment systems.
expiredOrder 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.
refundedOrder refunded by Banxa customer support at the customer's request.
extraVerificationOrder held for additional verification (e.g., ID or address verification). Banxa customer support will contact the customer to resolve the order.

Typical on-ramp (buy) flow

pendingPayment

pendingPayment

cancelled / declined

timeout

paymentReceived

inProgress

cryptoTransferred

complete

inProgress

resolved

timeout

Order created

KYC

Payment

cancelled / declined

expired

Order
execution

Verified?

Crypto sent
to wallet

complete

Manual
review

pendingPayment

pendingPayment

cancelled / declined

timeout

paymentReceived

inProgress

cryptoTransferred

complete

inProgress

resolved

timeout

Order created

KYC

Payment

cancelled / declined

expired

Order
execution

Verified?

Crypto sent
to wallet

complete

Manual
review

For instant payment methods (card, Apple Pay), waitingPayment may be bypassed.

Typical off-ramp (sell) flow

pendingPayment

waitingPayment

cancelled / declined

timeout

paymentReceived

inProgress

complete

inProgress

resolved

timeout

Order created

KYC + bank
details

Awaiting
crypto transfer

cancelled / declined

expired

Fiat payout
processing

Verified?

complete

Manual
review

pendingPayment

waitingPayment

cancelled / declined

timeout

paymentReceived

inProgress

complete

inProgress

resolved

timeout

Order created

KYC + bank
details

Awaiting
crypto transfer

cancelled / declined

expired

Fiat payout
processing

Verified?

complete

Manual
review

waitingPayment is the signal for custodial integrations to execute the crypto transfer. Once Banxa receives the crypto (paymentReceived), the fiat payout is processed.


Terminal statuses

The following statuses are final — the order will not progress further:

  • complete
  • cancelled
  • declined
  • refunded

Note: expired is not always terminal. Orders can resume if payment is received after the expiry time. extraVerification is a hold state — the order will resume once verification is resolved by Banxa support.


Checking order status

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.