Skip to main content

Fulfill Order

POST 

/api/3pl/orders/:fulfillmentOrder/fulfill

Report a shipment for a fulfillment order — the partner confirms what it shipped. Creates one SalesOrderFulfillment against the FO (inventory + COGS post at ship-time), decrements each line's remaining, and advances the FO Open → Incomplete ("Partially shipped") → Closed.

Not yet available to API tokens

This endpoint currently requires session authentication; Personal Access Token scope support is in progress.

Body:

  • lines (required, min 1): {id, quantity_fulfilled} where id is the FULFILLMENT ORDER LINE id (from List Orders), quantity_fulfilled numeric ≥ 0 (clamped to remaining).
  • fulfilled_at (required date): the actual shipped timestamp (drives COGS dating).
  • shipping_method, tracking_number (optional).
  • provider_shipment_id (optional): idempotent dedup — a retried fulfill never records a duplicate shipment.

All-zero report → 422.

Auth: 3PL Integration Token (Bearer).

A line the warehouse holds no stock for (a backordered / made-to-order item shipped anyway) returns 422 naming the blocking SKU — receive or adjust stock for it, then re-send.

Request

Responses

OK

Response Headers
    Content-Type