Record bookings a person has already taken
Record existing wholesale bookings as JSON. One booking or a whole account's season. Limit: 1 MiB; above it use file import.
IT RECORDS, IT DOES NOT PLACE. No account is contacted and no order is transmitted. On wholesale the rep is the actuator, and this is the write that says what they did.
Each line names an account, a style, a quantity and a season. account is matched against a trading partner's id, name or buyer reference, case-insensitively. An account this book does not hold is refused 400 No account named {name}., the whole request, before anything is written. Nothing here mints an account: a misspelt name would otherwise split one retailer's book across two spellings. A key issued to one account may record that account's lines only.
Rows are versioned, not overwritten: a line whose identity (account x style x season x ship window, or your own external_line_ref) matches one already recorded becomes its next version when anything differs, and a no-op when it does not, so re-sending a file is safe. A claim dated before the line's current version is rejected: version order is time order.
A soft commitment (status: hold) may omit the price and the ship window; no other status may. Rejected lines come back in rejected with a reason and a sentence; the rest still records. US dollars only. 201 says a version was appended; a request that appended none answers 200.
Sold with Essentials+: without Tightly Connect the answer is 403 plan_excludes.
Scope: order_book:write, which includes order_book:read.
Request
- Base URL: https://api.app.tightly.io
- URL: https://api.app.tightly.io/api/v1/order-book/lines
- Auth: HTTP bearer
Headers
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.
A string of your own, up to 255 characters, that makes this write safe to retry. Send the same key twice and the second request is answered with the first one's status and body instead of writing again, so a client that retried after a timeout ends holding the record's id rather than creating a second one. Reusing a key with a different body, or while the first request is still running, is refused 409. A write that failed releases its key. Keys answer for 24 hours and belong to the API key that used them. A key longer than 255 characters is ignored and the write goes ahead without the guarantee.
Request body
Response
At least one version was appended. The same body, with recorded at 0, is answered 200 when nothing was appended, every line a no-op against the version already on file, or rejected. recorded and rejected are what a caller branches on; the status says only whether the book moved.
Changes
No recorded changes to this operation across all 1 revision of this API.