> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Error & Status Codes

> Reference for order phase/status values and normalized payment error codes

Crossmint checkout exposes status codes for multiple aspects of the order. There is the top-level `order.phase`, and then sub-statuses for `quote`, `payment`, and `delivery`. Use them to build UIs that inform buyers where their order is in the payment and delivery process.

## Quote Statuses

* `item-unavailable` — No items in the order are available for purchase at the current time
* `valid` — The quote is valid
* `expired` — The quote has expired and needs to be refreshed
* `requires-recipient` — The order is missing recipient information (email or wallet address)

## Payment Statuses

* `draft` — The order was created with `state: "draft"`. It is a quote preview only: not persisted, and it cannot be polled or paid
* `requires-quote` — The order is still in the quote phase
* `requires-crypto-payer-address` — A crypto wallet address needs to be provided for the payment
* `requires-email` — An email is required to proceed (typically for card payments or receipts)
* `requires-kyc` — The buyer must complete KYC verification to proceed
* `manual-kyc` — KYC requires manual review; the buyer will be notified of the outcome
* `failed-kyc` — KYC verification failed and the buyer cannot proceed
* `crypto-payer-insufficient-funds` — The specified payer address cannot cover the purchase
* `crypto-payer-insufficient-funds-for-gas` — The payer address cannot cover the required network fees
* `awaiting-payment` — Ready to submit the payment
* `in-progress` — The payment is underway
* `completed` — Payment completed; the order proceeds to delivery/completion

> [!NOTE]
>
> When a card payment is declined, the order also carries a `payment.failureReason` object with a normalized error
> code, category, and retry policy — see the Payment Error Codes section below.

## Delivery Statuses

* `draft` — The order is a draft (`state: "draft"`); nothing will be delivered until the order is created for real
* `awaiting-payment` — Delivery not started because payment is not yet complete
* `in-progress` — Delivery is being processed
* `failed` — Delivery failed; affected items will be refunded automatically
* `completed` — Delivery completed successfully

## Payment Error Codes

<Snippet file="payment-error-codes.mdx" />

## See Also

> [card] [Handle Errors](https://docs.crossmint.com/payments/guides/handle-errors.md)
>
> Surface decline reasons and delivery failures in your checkout UI

> [card] [Track Orders](https://docs.crossmint.com/payments/guides/track-orders.md)
>
> Poll order status or receive webhook events
