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

# Status Codes

> Guide to understanding the status codes returned from the Headless Checkout APIs

Crossmint's headless checkout includes status codes for multiple aspects of the checkout process. Using status codes lets you build detailed user experiences and UI's that inform about the status of the payment process and delivery of their purchase.

There is the top level `order.phase` and then there are sub-statuses for `quote`, `payment`, and `delivery`.

## Quote Statuses

1. **`quote:all-line-items-unavailable`** - No items in the order are available for purchase at the current time

2. **`quote:expired`** - The quote has expired and needs to be refreshed

3. **`quote:requires-physical-address`** - Order requires a physical shipping address. During this status, `payment.preparation` parameters will not be present. See [Physical Good Purchases guide](/payments/headless/guides/physical-good-purchases) for details.

## Payment Statuses

1. **`payment:requires-recipient`** - The order needs a recipient address to be specified before proceeding

2. **`payment:requires-crypto-payer-address`** - A crypto wallet address needs to be provided for the payment

3. **`payment:requires-kyc`** - User needs to complete KYC verification to proceed with the payment

4. **`payment:failed-kyc`** - KYC verification was rejected and the user cannot proceed

5. **`payment:manual-kyc`** - KYC verification requires manual review, the user will be notified via email of the outcome

6. **`payment:awaiting-payment`** - The order is ready to receive payment from the user

7. **`payment:failed`** - The payment attempt failed and needs to be retried

8. **`payment:in-progress`** - The payment is currently being processed

9. **`payment:completed`** - The payment has been successfully completed

## Delivery Statuses

1. **`delivery:in-progress`** - The NFT or physical item is being processed for delivery

2. **`delivery:failed`** - The delivery process failed and needs to be retried

3. **`delivery:completed`** - The NFT or physical item has been successfully delivered to the recipient
