1. Find orders to ship
to_ship lists paid orders with items not shipped yet, oldest first. Other filters: in_transit, delivered, issues (failed deliveries, returns) and all.
GET /orders/{invoiceId} returns the address, each item with shipped_quantity, shipments, returns and notes.
2. Create a shipment
- Leave out
itemsto ship everything that’s left. For a partial shipment senditems: [{ "invoice_item_id": 55, "qty": 1 }]. - The customer gets an email with the tracking link. Send
notify_customer: falseto skip it. - The tracking link is built from the carrier.
GET /shippinglists carrier codes.
3. Update the status
label_created, shipped, in_transit, out_for_delivery, delivered, failed_attempt, returned_to_sender. Each one is added to the tracking timeline the customer sees. The order’s fulfillment_status follows the shipments automatically.
Returns
Customers request returns from their order page within the product’s return window. Handle them withPATCH /orders/{invoiceId}/returns/{returnId}:
GET /returns?status=requested lists open requests across all orders.
Shipping settings
Read and change zones, rates and warehouse locations with/shipping/zones and /shipping/locations. Quote a basket with POST /shipping/quote.