returns

create return

Records one return: the order the goods come back from, the products and how many of each, where they are expected and why. The return is EXPECTED until a warehouse receives it, and an expected return moves no stock: it counts as inbound on the position read and nothing else. Send an Idempotency-Key header; the same key with the same body answers the same return, the same key with a different body is refused, and Tightly keeps a key 30 days.

Returns that come from a connected channel are never created here: Tightly reads the channel's refund on the sync and builds the return from it. The refund on a return is the channel's fact too, so a refund sent for an order the channel owns is refused.

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

post/api/v1/sales/returns

Request

  • Base URL: https://api.app.tightly.io
  • URL: https://api.app.tightly.io/api/v1/sales/returns
  • 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

exchange_order_idstring nullable
expected_onstring date nullable

YYYY-MM-DD.

location_idstring nullable

Where it is expected back. Absent, Tightly reads the order's own warehouse, then your single active one; an organisation with several and nothing said is refused.

order_idstring nullable

The order the goods come back from.

origin'manual' | 'api' | 'csv' | 'portal'

Which door this return came in by. channel is not among them.

reason'wrong_size' | 'damaged' | 'not_as_described' | 'changed_mind' | 'late' | 'other' nullable
reason_notestring nullable

Response

The return as recorded, expected back.

dataobject

The return, in the shape GET /sales/returns/{return_id} serves.

messageobject

severity, service and desc.

Changes

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