Gallery Platform API
Reference

Record a sale

Records a sale, optionally with its line items. The consignment split is snapshotted per line; header totals are computed from the lines.

POST
/gallery/sales

Records a sale, optionally with its line items. The consignment split is snapshotted per line; header totals are computed from the lines.

Authorization

bearerAuth sales:create
AuthorizationBearer <token>

A gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).

In: header

Scope: sales:create

Header Parameters

Idempotency-Key?string

Optional. Send a unique key per logical operation to make retries safe: a retry with the same key replays the stored success for 14 days instead of re-running the write. Reusing a key with a different body returns 400.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Record a sale, optionally with its line items.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

{  "id": "string",  "buyer_contact_id": "string",  "sold_by": "string",  "status": "draft",  "currency": "string",  "sale_date": "string",  "gross_cents": -9007199254740991,  "discount_cents": -9007199254740991,  "net_cents": -9007199254740991,  "fx_as_of": "string",  "fx_usd_per_unit": 0,  "fx_base_currency": "string",  "fx_base_usd_per_unit": 0,  "base_amount_cents": -9007199254740991,  "notes": "string",  "metadata": {    "property1": "string",    "property2": "string"  },  "created_at": "string",  "updated_at": "string",  "items": [    {      "id": "string",      "artwork_id": "string",      "list_price_cents": -9007199254740991,      "discount_cents": -9007199254740991,      "sold_price_cents": -9007199254740991,      "consignor_share_bps": 0,      "consignee_share_bps": 0,      "third_party_share_bps": 0,      "consignor_net_price_cents": 0,      "metadata": {        "property1": "string",        "property2": "string"      },      "created_at": "string"    }  ]}