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

# Order Lifecycle

> How partner-visible order status moves from created through completed.

Every order progresses through a partner-visible `status`. Use webhooks or `GET /v1/orders/:reference` to track it.

```mermaid theme={null}
stateDiagram-v2
    [*] --> initiated
    initiated --> pending
    pending --> awaiting_user_payment
    awaiting_user_payment --> processing
    processing --> completed
    initiated --> cancelled
    pending --> expired
    processing --> failed
    completed --> [*]
    cancelled --> [*]
    expired --> [*]
    failed --> [*]
    refunded --> [*]
```

Not every status is used on every flow. Typical paths:

### Onramp

Created → awaiting fiat pay-in → processing → completed. Customer pays fiat; crypto is delivered to `recipient.address`.

### Offramp

Created → awaiting crypto deposit → processing → completed. Customer deposits crypto; fiat is sent to the bank `recipient`.

### Swap

Created → awaiting source crypto → processing → completed. Output currency is delivered to `recipient.address`.

## Expiration

Orders that never receive pay-in expire. Escrowed crypto is refunded when a `refund` destination was provided.

## Related

* [Transaction statuses](/concepts/transaction-statuses)
* [Orders](/concepts/orders)
* [Callbacks](/concepts/callbacks)
