Create order (checkout)

Checks out a cart and creates an order. On success, tickets are issued and the cart is cleared. **Order response structure** (three-level nesting): - **`items[]`** — Array of OrderItems (what you purchased with pricing details) - **`items[].tickets[]`** — Tickets nested within each OrderItem (admission fulfillment) - **`receiptLines[]`** — Array of display rows for receipt rendering (fees, vouchers, subtotal) Tickets are embedded within OrderItems, not at the top level of the Order.

Authentication

X-TT-API-Keystring
API key for authentication. Pass as X-TT-API-Key header. Key prefixes: - Production: sk_live_* - Test: sk_test_* Example: X-TT-API-Key: sk_live_abc123

Headers

X-Client-PlatformenumRequired
Client platform identifier. Required for all requests. - `ios` - iOS native app - `android` - Android native app - `web` - Web application (browser) - `server` - Server-to-server (internal services, API testing)
Allowed values:
X-Client-VersionstringOptionalformat: "^\d+\.\d+\.\d+$"

Client app version. Required for ios, android, and web platforms. Optional for server platform. Format: Semantic version (e.g., “3.1.0”, “2.5.1”)

Idempotency-KeystringRequiredformat: "^idem_[a-zA-Z0-9]+$"

Idempotency key for safe retries. Required for order creation. Same key + same cartId within 24h returns existing order (200 OK). Same key + different cartId returns 409 Conflict. Format: idem_ prefix + random string.

Accept-LanguagestringOptional

Preferred language for error messages (defaults to en-US if not provided). Supported languages: en-US, en-GB, es-ES, fr-FR, de-DE, ja-JP. Format: RFC 9110 language tags with quality values.

X-Request-IDstringOptionalformat: "^req_[a-zA-Z0-9]+$"

Client-generated request identifier for distributed tracing. Server echoes this value in response headers. Format: req_ prefix + random string.

Request

This endpoint expects an object.
cartIdstringRequired
ID of the cart to check out.
expectedTotalobjectRequired

Expected total amount that the client intends to pay. Critical for price validation: Server will reject the order if the cart’s actual total doesn’t match this value. This prevents unexpected charges if prices change between cart creation and checkout.

contactobjectRequired

Contact information for this order (ticket pickup, delivery, and confirmation). Important: This contact information is per-order and may differ from the customer’s profile.

Response

Order created and tickets issued.
idstring

Order ID (machine-readable)

confirmationNumberstring

Human-readable confirmation number for customer support and emails.

contactobject

Contact information for this order (pickup, delivery, confirmation). Single source of truth for order contact details.

itemslist of objects

Items representing what was purchased (OrderItems with embedded tickets).

Structure: Each OrderItem contains a nested tickets[] array with fulfillment tickets. Does NOT include: Fees, protection, or credits — see receiptLines for those.

receiptLineslist of objects

Server-ordered display lines for receipt rendering. Iterate in sequence. Always includes SubtotalLine. Conditionally: FeeLine, VoucherLine, ProtectionLine.

totalobject

Total amount charged. Server-computed. Never derive from parts.

statusenum
Current status of the order.
Allowed values:
createdAtdatetime

When the order was created (UTC).

protectionobject or null
Protection applied to this order. Null if not purchased.
totalTaxesobject or null

DISCLOSURE ONLY - taxes already included in total. Omitted when not disclosed (e.g., UK market).

Errors