orders

Create one multi-item order

One shipping block, many items — the replacement for legacy's POST /api/v2/customer/orders/multi. Each item becomes its own order row, suffixed -1, -2, … off the shared external_id, which is the convention legacy sellers already handle. A single-item batch is NOT suffixed: the same order should not arrive under two different ids depending on how it was sent.

Omit external_id and one is generated for you (legacy did this too) — but an id you chose is the one support can search for.

It reports PER ROW. A batch whose third item names a dead SKU creates the other items and tells you about the third; it is never all-or-nothing and never silently partial. Read results[], not just the status code.

The Idempotency-Key is derived per row, so retrying a batch that half-succeeded creates exactly the missing half.

At most 500 items per request.

post/orders/batch

Request

  • Base URL: https://0.0.0.0:3000/api/v1
  • URL: https://0.0.0.0:3000/api/v1/orders/batch
  • Auth: API key in header x-api-key

Headers

Idempotency-Keystring required

Any unique string. Each row derives its own key from it.

Request body

external_idstring

Your marketplace order id. Generated if omitted.

shippingobject required

Shared by every item — the same fields, and the same required real recipient, as POST /orders.

shipping_typestring required

REQUIRED, and shared by every item: the rows of a batch ship as ONE parcel, so they cannot be shipped by two different people. Same two values as POST /orders — Ship by OP or Ship by Platform. An item may override it, but a batch whose items disagree becomes orders that cannot be labelled together.

marketplacestring

Applied to every row.

placed_atstring

Applied to every row.

mockup_urlstring

REQUIRED (or mockup_id). The mockup picture — what the listing shows. Stored once per picture per account, so re-sending the same link reuses the same mockup rather than making another.

Response

201 when at least one row was created, 200 when every row was a replay, 422 when nothing landed.

Changes

No recorded changes to this operation across all 1 revision of this API.