# Orders

An order is what your buyer placed. A shipment is how it gets to them. Pushing
orders into Bob Go is optional, and you can book shipments without them, but it
unlocks the rest of the platform: packing slips, bulk fulfilment, the order
history in the dashboard, and rates at checkout tied to a real cart.

Create orders here when you are integrating a sales channel Bob Go does not
support natively. The `/v2/orders` endpoint validates lightly on purpose: send
the detail you have, and fill in more as you get it. Lightly means almost not
at all for an API key, so check [what you send](order_create.md), because a
malformed order is accepted rather than rejected.

## Orders and fulfilments

One order can be fulfilled more than once: a back-ordered item shipped later,
a buyer collecting part of the order in store. Each of those is a **fulfilment**
hanging off the order, and each has its own method (`shipment`, buyer
collection) and its own status.

That is why `fulfillment_status` on the order has three values,
`unfulfilled`, `partially-fulfilled` and `fulfilled`, and why the shipment's
tracking reference lives on the fulfilment rather than on the order.

Subscribe to the `fulfillment/created` webhook to hear about each fulfilment
as soon as it has been created successfully, apart from returns, which do not
send it. See [Webhooks](../11_Webhooks/README.md).

## Endpoints

| | |
| --- | --- |
| [`POST /v2/orders`](order_create.md) | Create an order. |
| [`PATCH /v2/orders`](order_update.md) | Update one. |
| [`GET /v2/orders`](order_list.md) | List and filter them. |
| [`GET /v2/order-fulfillments`](order_fulfillments.md) | Read an order's fulfilments. |
| [`POST /v2/orders/return`](order_return.md) | Book a return against an order. |
