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

# What do Blend's order statuses mean?

> received, picked, verified, exception, paused, shipped, delivered, cancelled, and returned. Which actions are available — cancelling, editing lines, changing shipping — depends entirely on which status an order is in.

Blend orders move through nine statuses. Read `status` on any order, or call `GET /api/v1/orders/statuses` for the live list rather than hardcoding it.

| Status      | What it means                                                                                                               |
| ----------- | --------------------------------------------------------------------------------------------------------------------------- |
| `received`  | Accepted and queued. The only status in which line items can be added, changed, or removed.                                 |
| `picked`    | Products pulled from inventory and inventory decremented. Line items are now fixed.                                         |
| `verified`  | Passed pharmacist verification and entered the shipping process.                                                            |
| `exception` | Also known as a "stuck order". Blocked by something. Steps out of the queue and returns to its prior position when cleared. |
| `paused`    | Deliberately held, indefinitely or until a date.                                                                            |
| `shipped`   | Label purchased and shipment dispatched. Tracking is available.                                                             |
| `delivered` | Carrier-confirmed delivery. Final.                                                                                          |
| `cancelled` | Cancelled.                                                                                                                  |
| `returned`  | Returned to Blend. Final.                                                                                                   |

## What you can do in each status

| Action                           | Available in                                             |
| -------------------------------- | -------------------------------------------------------- |
| Add / change / remove line items | `received`                                               |
| Cancel directly                  | `received`, `paused`, `exception`                        |
| Request cancellation             | `picked`, `verified`                                     |
| Pause                            | `received`, `exception`                                  |
| Unpause                          | `paused`                                                 |
| Change shipping preferences      | While a label hasn't been purchased — through `verified` |
| Request a replacement            | After the order has shipped                              |

## Reading the history

```bash theme={null}
curl https://api.byblend.com/api/v1/orders/ORD250312003548IAU4/status_history \
  -H "Authorization: Bearer {access_token}"
```

This is the endpoint to reach for when an order isn't where you expect. It shows every transition, which usually explains the current state faster than reasoning about it.

<Warning>
  **Orders can move backwards.** When a prescription is matched to a line on a `picked` or `verified` order, the contents have changed, so the order returns to `received` for re-picking. This is correct behavior, not a fault. Don't write state machines that assume forward-only transitions.
</Warning>

<Note>
  `exception` and `paused` both preserve the status the order came from, so unpausing or resolving an exception returns it to its place rather than to the start.
</Note>

## Statuses these are not

A few things look like statuses but aren't:

* **`cancellation_requested`** and **`priority_requested`** are **flags**. Requesting cancellation or priority does not change the order's status — see [cancelling an order](/guides/cancel-an-order).
* **`replacement_request_status`** is its own enum (`pending`, `fulfilled`, `declined`, `cancelled`) describing a request, not the order.
* **Shipment status** is separate again (`shipped`, `cancelled`, `delivered`) and lives on the shipment inside the order. An order can have more than one shipment.
* **Prescription status** is an entirely different lifecycle from order status.

## Filtering by status

```bash theme={null}
curl "https://api.byblend.com/api/v1/orders?status=picked,verified" \
  -H "Authorization: Bearer {access_token}"
```

Comma-separate to match several. This is far cheaper than paging the full list and filtering client-side.

<Tip>
  Rather than polling for status changes, subscribe to webhooks for `order.shipped` and `order.delivered` — see [getting notified when an order ships](/guides/webhooks).
</Tip>

<CardGroup cols={2}>
  <Card title="Get order statuses" icon="list" href="/api-reference/orders/get-order-statuses">
    The live enum
  </Card>

  <Card title="Get an order's status history" icon="clock-rotate-left" href="/api-reference/orders/get-an-orders-status-history">
    Every transition
  </Card>

  <Card title="Get orders" icon="filter" href="/api-reference/orders/get-orders">
    `status=` accepts a comma list
  </Card>

  <Card title="Stuck orders" icon="triangle-exclamation" href="/guides/stuck-orders">
    What `exception` really means
  </Card>
</CardGroup>
