FulfillmentFulfillments
Revert Fulfillment
Completely reverts a fulfillment and all associated operations:
1. Shipping Label Management
- Voids shipping label with the carrier if label exists
2. External Sales Channel Cancellation
- Cancels remote fulfillment on connected sales channels (Shopify, BigCommerce, WooCommerce)
3. Billing & Charge Reversal
- Unallocated charges (not in invoices): DELETED completely
- Invoiced charges (already paid): Creates CREDIT charge using
calculated_amountfor refund - Pick charges: Decrements quantity or deletes if quantity reaches zero
4. Quantity Management
- Increments remaining quantities on fulfillment order line items (so order can be fulfilled again)
- Decrements deducted quantities to allow future deductions
5. Status Updates
- Changes fulfillment status to
CANCELLED - Updates package status to
PENDING - For
FULFILLMENT_ORDERpackages: Updates fulfillment order status toIN_PROGRESS(so it can be fulfilled again)
6. Optional Inventory Restocking
FULFILLMENT_ORDER: CAN providerestock_itemsfor automatic inventory managementSTANDALONE: CANNOT providerestock_items(throws validation error - manual inventory management required)
Inventory Management
- Default behavior: This endpoint does NOT modify inventory levels
FULFILLMENT_ORDER: Optionally providerestock_itemsto automatically restock inventorySTANDALONE: Manual inventory management required - handle restocking separately- Quantity limits: Cannot restock more than was originally deducted during fulfillment
Authorization
api_key x-access-token<token>
In: header
Path Parameters
fulfillment_id*string
ID of the fulfillment to revert
Request Body
application/json
Optional restock items to process during revert
Optional restock items to process during revert
Response Body
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/shipos/fulfillments/string/revert" \ -H "Content-Type: application/json" \ -d '{}'Empty