Create Inbound PO

Endpoint: POST /inbound-po

Full URL: https://api.spreetaileu.com/api/api/v1/inbound-po

Create a purchase order directly and synchronously in the warehouse system against an approved delivery slot. Returns the generated PO number immediately.

Requirements

  • Authentication: Bearer token required (Get token from /auth/login)
  • Delivery slot: an approved slot is required. Pass a slotReference that is confirmed and unused — book one via POST /inbound-slot. Without a slot there is no agreed delivery date for the warehouse to work to, so the request is rejected with 409
  • SKU resolution: every item must resolve to exactly one known product (matched by barcode first, then SKU)

The slot already told us the shape of the delivery

You don't repeat it here. The PO inherits the slot's warehouse, delivery date and window, truck-vs-container, container size, loading type, SKU bucket and pallet count. All you send is the PO reference, the items, and the things a slot booking can't know.

The slot is claimed atomically and released again if PO creation fails.

Important Fields

  • PO_REFERENCE: your PO/delivery reference (becomes the supplier reference)
  • containerTruckNumber and palletCount: the two deliberate overrides — the vehicle often isn't known at booking, and the pallet count is an estimate until the load is built. Omit either to keep what the slot recorded
  • deliveryInfo and packingListFiles: not part of a slot booking, so send them here. For files, only references you uploaded yourself are accepted
  • Warehouse_Name: comes from the slot. If you send it anyway it must match the slot's warehouse (409 otherwise) — it can't redirect an approved delivery
  • Expected_Arrival_Date / estimatedArrivalWindow: ignored. The delivery date and window come from the slot; reschedule via the slot flow instead
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required

Your PO/delivery reference (becomes the supplier reference)

string

Optional secondary reference, appended as PO_REFERENCE/Secondary

string
required

A confirmed, unused inbound slot (see POST /inbound-slot). The PO is born with the slot's confirmed schedule and inherits its delivery detail. The slot is claimed atomically (409 if it was just used or changed) and released again if PO creation fails. Without a slot there is no agreed delivery date, so a request without one is rejected with 409.

items
array of objects
required
length ≥ 1

Order lines. Each item must resolve to exactly one known product — matched by barcode first, then SKU; unknown or ambiguous items are rejected.

items*
string
length ≤ 100

Container number / truck registration (override). The vehicle often is not known when the slot is booked; omit this to keep whatever the slot recorded.

integer
≥ 1

Override, for when the loaded count differs from the one you booked. Omit it to keep the slot's figure. Required only if neither the slot nor this request has one and the load is palletised.

deliveryInfo
object

Not part of a slot booking, so send it here

packingListFiles
array of objects
length ≤ 10

Up to 10 pre-uploaded file references (your own uploads only). Not part of a slot booking, so send them here.

packingListFiles
string

Comes from the slot. If you send it anyway it must match the slot's warehouse (409 otherwise) — it cannot redirect an approved delivery.

string
enum

Comes from the slot. Only send it for a slot booked before the slot request captured it — a 400 tells you when that applies.

Allowed:
string
enum

Comes from the slot, with the same fallback as deliveryType

Allowed:
string
enum

Ignored — the window you booked on the slot wins

Allowed:
date-time
deprecated

Deprecated and ignored — the delivery date comes from the slot. Reschedule via the slot flow instead.

Responses

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json