Void Shipment
DELETE/api/sales-order-fulfillments/:salesOrderFulfillment
Voids a shipment (SalesOrderFulfillment) — a SOFT, reversible cancel that does NOT hard-delete the record (SKU-8019 'A1'). Voiding: reverses the shipment's inventory movements, reverts Fulfilled→Allocated allocations, restores the parent FulfillmentOrder budget and reopens the SAME FO to Open/Unsubmitted so it can be re-fulfilled, cancels the carrier order, and flips the SOF to status=canceled with voided_at/voided_by_user_id/void_reason set. The SOF + its lines are RETAINED for history; voided shipments are excluded from the active fulfillment tab (voided_at IS NULL filter).
Not voidable (returns 400): an already-shipped shipment (status fulfilled / fulfilled_awaiting_info — use a return/RMA), an already-voided shipment, or a multi-channel (MCF / merge-group) submission (void individual standalone shipments only).
Request body (optional):
- void_reason (string, optional): reason recorded on the void + FO activity entry. Falls back to
reasonif absent.
Query params:
- check-deletable (0|1, default 1): when 1, runs the carrier-side 'already shipped at provider' guard before voiding.
Authentication: Requires Bearer token.
Request
Responses
- 200
- 400
OK
Response Headers
Bad Request