v9

latestOpenAPI 3.0.0raw.githubusercontent.com2026-07-071292691.1 MB
fulfillment-orders

Cancel a fulfillment order (synchronous)

Cancels a fulfillment order as a CANCELLED transition validated against the state machine version pinned on the FO. A required free-text reason plus any free-form metadata are captured on an immutable timeline event (FulfillmentOrderTrackingEvent — the cancellation moment is previousStatus; the server-validated reason always wins over a same-named metadata key) and echoed back in the response metadata. On enter, the CANCELLED state releases the inventory reservation (RELEASE_INVENTORY); the transition, the timeline event and the stock release run in a single transaction. A fulfillment order at or after INVOICED has no declared edge to CANCELLED and is rejected with 422. accountCode and the actor (user or service account) come from the JWT.

post/api/v1/fulfillment-orders/{id}/cancel

Path parameters

idstring uuid required
Example:01920000-0000-7000-8000-000000000000

Fulfillment order identifier (UUID).

Request body

reasonstring required

Free-text reason for the cancellation. Recorded inside the timeline event metadata.

metadataobject nullable

Free-form cancellation context (e.g. refund_status). Merged verbatim into the timeline event; the server-validated reason always wins over a same-named key here.

Response

Fulfillment order cancelled.

idstring required
statusstring required
previous_statusstring required
metadataobject required
updated_atstring required
event_idstring required