# Get order status

Endpoint: GET /order/{id}

OpenAPI: /docs/openapi.json

Retrieve an order using the `id` returned when it was created. The response includes its `status`, deposit details, destination address, and, once delivered, `amount_out` and the `payout_tx` that paid it.

## Order statuses

| Status | Meaning |
| --- | --- |
| `awaiting_deposit` | Waiting for funds at the deposit address. |
| `funded` | The deposit has been received. |
| `underfunded` | Far below `amount_in` arrived at the deposit address, and the order can't be filled. |
| `executing` | The route is being executed. |
| `delivered` | `amount_out` has reached the destination address. |
| `refunded` | Execution gave up and `amount_out` was sent back to the refund address. |
| `expired` | No deposit arrived before the deposit deadline. |
| `frozen` | Execution was halted by policy, or gave up with no refund destination, or the refund failed. An operator needs to step in. |

## Finding the payout transaction

Once an order is `delivered` or `refunded`, `payout_tx` is the transaction that paid `amount_out`: to the destination address when it is `delivered`, and to the refund address when it is `refunded`. It's a transaction hash, or a txid on Bitcoin, and it's null until then.

If the order paid an [integrator fee](/docs/integration/integrator-fees), `integrator_fee_tx` is the transaction that paid it. It's null when no fee was paid.

## Polling an order

Repeat this request with the same `id` to follow an order. Wait a few seconds between checks and back off on transient errors. Stop polling once the order is `delivered`, `refunded`, `expired`, or `frozen`. If an order is `frozen` or `underfunded`, contact the Rift team using **Support**.
