orders

create sales order

Creates one order Tightly owns from the moment it exists: its lines, the channel or the account it belongs to, where it ships and what it is worth. Send an Idempotency-Key header; the same key with the same body answers the same order, the same key with a different body is refused, and a key sent while the first attempt is still running is refused with Retry-After. Tightly keeps a key 30 days.

Orders that come from a connected channel are never created here: they arrive on the sync and changing them is done in the channel. A file of orders goes through POST /sales/orders/import, and a buyer's 850 arrives as a draft through EDI.

Scope: orders:write, which includes orders:read.

post/api/v1/sales/orders

Request

  • Base URL: https://api.app.tightly.io
  • URL: https://api.app.tightly.io/api/v1/sales/orders
  • Auth: HTTP bearer

Headers

Idempotency-Keystring required

A key you choose, up to 255 characters; Tightly keeps it 30 days.

Tightly-Versionstring
Example:2026-11

The date train to answer on. One train exists today, 2026-11, the one this reference describes and the one every key is minted on, so the call answers on it with or without this header. Send it anyway, so a client built now names its train from the start.

Request body

cancel_datestring nullable
currencystring nullable
external_referencestring nullable
is_wholesaleboolean
lifecycle'open' | 'draft'
location_idstring nullable
origin'manual' | 'api'
requested_delivery_endstring nullable
requested_delivery_startstring nullable
requested_ship_datestring nullable
sales_channel_idstring nullable
trading_partner_idstring nullable

Response

The order as recorded.

dataobject

The order, in the shape GET /sales/orders/{order_id} serves.

messageobject

severity, service and desc.

Changes

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