Gallery Platform API
Reference

Create a paid order + checkout link

Creates a paid order against a session — sale, invoice, and held seats — and returns a hosted Stripe checkout link. Every line's ticket type must be a paid tier; tickets issue when payment settles. Requires a connected Stripe account with charges enabled.

POST
/gallery/orders/checkout

Creates a paid order against a session — sale, invoice, and held seats — and returns a hosted Stripe checkout link. Every line's ticket type must be a paid tier; tickets issue when payment settles. Requires a connected Stripe account with charges enabled.

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.

Create a paid order against a session and return a Stripe checkout link. Every line's ticket type must be a paid tier; seats are held for the checkout window and issued as tickets on payment.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

{  "id": "string",  "event_id": "string",  "session_id": "string",  "contact_id": "string",  "buyer_name": "string",  "buyer_email": "string",  "status": "pending",  "subtotal_cents": -9007199254740991,  "currency": "string",  "tickets": [    {      "id": "string",      "order_id": "string",      "session_id": "string",      "ticket_type_id": "string",      "status": "issued",      "created_at": "string"    }  ],  "metadata": {    "property1": "string",    "property2": "string"  },  "created_at": "string",  "updated_at": "string",  "checkout_url": "http://example.com"}