Skip to main content

Create Shipment

POST 

/api/warehouses/transfers/:transfer/shipments

Creates a shipment for an already-open traditional (non-Amazon FBA) warehouse transfer. This is the explicit second step of the split lifecycle: open the transfer first (allocations only), then ship.

Required scope: warehouses:write

Grant this scope to your token under Settings → Developer → Personal Access Tokens.

Effects:

  • Deducts source warehouse stock
  • Creates -active and +in_transit inventory movements
  • Fulfils the line-level allocations created during open (Allocated → Fulfilled)

Request body (all fields optional unless noted):

  • shipment_date (date) — defaults to today if omitted
  • shipping_method_id (integer) — must exist in shipping_methods
  • tracking_number (string, max 255)
  • cost (numeric, >= 0, < 100000)
  • lines (array, min 1 when present) — if omitted, all remaining open line quantities are shipped
    • lines[].warehouse_transfer_line_id (integer, required_with:lines) — must belong to the transfer
    • lines[].quantity (numeric, required_with:lines, min 0.0001)

Responses:

  • 201 Created — warehouse transfer object with updated shipments
  • 422 Unprocessable Entity (WarehouseTransferIsNotOpen) — transfer is not in open status
  • 422 Unprocessable Entity (WarehouseTransferLineIsUnacceptable) — a transfer line's requested quantity exceeds its allocated sum (allocations out of sync, e.g. stuck Fulfilled rows); the message includes the product SKU and the allocated quantity
  • 422 Unprocessable Entity — transfer is an Amazon FBA transfer (use the Amazon-specific flow instead)
  • 400 Bad Request (ProductIsUnacceptable) — not enough stock at the source warehouse for one of the requested lines

Requires permission: warehouse_transfers.ship Form Request: App\Http\Requests\CreateWarehouseTransferShipmentRequest Route name: warehouses.transfers.shipments.store

Source bin: each line may optionally set warehouse_location_id — the source-warehouse bin the line's dispatch should draw stock from. It must be an active (non-deprecated) bin in the transfer's source warehouse. When omitted, pickable source bins are walked automatically.

Request

Responses

Created

Response Headers
    Content-Type