2026-07
2026-07 Release Notes
Fulfillments
New Endpoints
- GET /fulfillments/{fulfillment_id}/history: Retrieves the history ledger for a single fulfillment, showing all state-change events for each line item. Results are ordered oldest-first and support cursor-based pagination. Requires
fulfillments:readscope.
Response
The endpoint returns a FulfillmentHistoryResponse object with the following fields:
| Field | Type | Description |
|---|---|---|
data | array of FulfillmentHistoryEntry | List of history entries ordered oldest-first. |
next_cursor | string | Opaque cursor for fetching the next page. Empty when no more pages exist. |
Each FulfillmentHistoryEntry contains:
| Field | Type | Description |
|---|---|---|
sale_line_item_id | string (uuid) | The ID of the sale line item this event relates to. |
product_id | string (uuid) | The ID of the product associated with the line item. |
event_type | string (enum) | The type of state-change event. One of: CREATED, QUANTITY_UPDATED, REMOVED, PICKED, PACKED, FULFILLED, VOIDED, UNVOIDED, RETURNED, RETURN_VOIDED, SPLIT. |
quantity_delta | string | Change in total quantity for this line item. |
picked_quantity_delta | string | Change in picked quantity for this line item. |
packed_quantity_delta | string | Change in packed quantity for this line item. |
fulfilled_delta | string | Change in fulfilled quantity for this line item. |
source_sale_id | string (uuid) | The ID of the source sale. Present only for RETURNED and SPLIT events. |
created_at | string (date-time) | Timestamp when the event was recorded. |
Pagination
Use the limit query parameter (max 1000) to control page size. Pass the cursor value from a previous response to retrieve the next page. When next_cursor is empty, no more pages exist.
Deprecations
The following endpoints were deprecated in 2026-04 and have now been removed:
- POST /sales/{sale_id}/fulfill: Removed. Please use
POST /fulfillments/fulfillinstead. - GET /sales/{sale_id}/fulfillments: Removed. Please use
GET /fulfillmentsinstead. - GET /sales/{sale_id}/pick_lists: Removed. Please use
GET /fulfillmentsinstead.
