Skip to content

Ordering Examples

The ordering workflow follows a specific sequence. Each step below is shown in order, from checkout initialization through cancellation.


Initialize or refresh the checkout session for a showtime. Returns ticket types, pricing, survey details, and fees.

Terminal window
curl -X POST \
https://api-beta.atomtickets.com/ordering/v2/aggregation/checkout/refresh \
-H 'Content-Type: application/json' \
-H 'x-api-key: {AtomPartnerApiKey}' \
-d '{
"showtimeId": "ST-20260214-1930-AMC4",
"promotions": ["PARTNER10OFF"],
"includeAreaCategory": true
}'
{
"surveyDetailResponse": { ... },
"showtimesResponse": {
"showtimeId": "ST-20260214-1930-AMC4",
"movieTitle": "The Last Frontier",
"venueName": "AMC Loews Broadway 4",
"startTime": "2026-02-14T19:30:00Z",
"products": [
{
"productId": "PROD-ADULT-001",
"name": "Adult",
"price": 14.99,
"offers": [
{ "offerId": "OFFER-STD-001", "name": "Standard", "price": 14.99 }
]
}
]
},
"maxTicketQuantity": 10,
"agePolicyLink": {
"url": "https://www.atomtickets.com/age-policy",
"label": "Age Policy"
}
}

After refreshing checkout, use the showtimeId to discover the auditorium layout for seat selection.


Retrieve the seating map for a showtime. Use this to display available seats to the user.

Terminal window
curl -X GET \
'https://api-beta.atomtickets.com/ordering/v1/discovery/auditoriums?showtimeId=ST-20260214-1930-AMC4&tickets=2' \
-H 'x-api-key: {AtomPartnerApiKey}'
{
"layoutArea": {
"rows": [
{
"rowLabel": "A",
"seats": [
{
"seatId": "A1",
"label": "A1",
"status": "available",
"seatType": "standard"
},
{
"seatId": "A2",
"label": "A2",
"status": "available",
"seatType": "standard"
},
{
"seatId": "A3",
"label": "A3",
"status": "occupied",
"seatType": "standard"
}
]
}
]
},
"legend": [
{ "type": "standard", "label": "Standard", "color": "#4CAF50" },
{ "type": "premium", "label": "Premium", "color": "#FF9800" }
],
"occupiedSeats": {
"A3": { "firstName": "J", "lastName": "D" }
},
"recommendedSeats": ["A1", "A2"],
"numAvailable": 42
}

With the auditorium layout retrieved, create an account (guest or authenticated) before leasing seats.


Create a guest account for users who do not want to register. The response provides auth credentials for subsequent requests.

Terminal window
curl -X POST \
https://api-beta.atomtickets.com/ordering/v1/customer/account/guest \
-H 'Content-Type: application/json' \
-H 'x-api-key: {AtomPartnerApiKey}' \
-d '{
"email": "guest@example.com",
"firstName": "Jane",
"lastName": "Doe",
"attributionMap": {
"affiliateName": "fever",
"campaign": "spring-2026"
}
}'
{
"authToken": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJHVUVTVC01NTAxMiJ9.signature",
"accountId": "GUEST-55012",
"identityId": "ID-99201",
"identityValue": "guest@example.com"
}

Authenticate a returning user with existing credentials. Use this instead of guest account creation.

Terminal window
curl -X POST \
https://api-beta.atomtickets.com/ordering/v1/customer/account/authenticate \
-H 'Content-Type: application/json' \
-H 'x-api-key: {AtomPartnerApiKey}' \
-d '{
"identityValue": "moviefan@example.com",
"password": "userpassword123"
}'
{
"token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJVU1ItODgyMzQifQ.signature",
"accountId": "USR-88234",
"identities": [
{
"identityId": "ID-44102",
"identityValue": "moviefan@example.com",
"type": "email"
}
],
"customer": {
"firstName": "Jane",
"lastName": "Doe"
},
"atomToken": "atom-token-value",
"privateKey": "private-key-value",
"signupPromoId": "PROMO-SIGNUP-001"
}

From this point forward, all requests require authentication headers. Use the authToken/token, and generate the required signatures.


Temporarily reserve selected seats. The lease locks the seats for a limited time while the user completes checkout. Use the same clientRequestId for this call, PreviewOrder, and CreateOrder.

Terminal window
curl -X POST \
https://api-beta.atomtickets.com/ordering/v1/inventory/lease \
-H 'Content-Type: application/json' \
-H 'x-api-key: {AtomPartnerApiKey}' \
-H 'X-Atom-Timestamp: 2026-02-13T12:00:00Z' \
-H 'X-Atom-AuthToken: {authToken}' \
-H 'X-Atom-DeviceSignature: {deviceSignature}' \
-H 'X-Atom-Signature: {signature}' \
-H 'X-Atom-DeviceId: partner-device-001' \
-H 'X-Atom-AdId: partner-ad-001' \
-d '{
"clientRequestId": "req-a1b2c3d4-5678-90ef-ghij-klmnopqrstuv",
"leaseItems": [
{
"productId": "PROD-ADULT-001",
"offerId": "OFFER-STD-001",
"seatIds": ["A1", "A2"]
}
]
}'
{
"leaseDurationSeconds": 600
}

Seats are held for leaseDurationSeconds (10 minutes). Proceed to preview and create the order before the lease expires.


Preview the full order with final pricing before committing. This step validates the order without charging.

Terminal window
curl -X POST \
https://api-beta.atomtickets.com/ordering/v2/customer/orders/preview \
-H 'Content-Type: application/json' \
-H 'x-api-key: {AtomPartnerApiKey}' \
-H 'X-Atom-Timestamp: 2026-02-13T12:00:00Z' \
-H 'X-Atom-AuthToken: {authToken}' \
-H 'X-Atom-DeviceSignature: {deviceSignature}' \
-H 'X-Atom-Signature: {signature}' \
-H 'X-Atom-DeviceId: partner-device-001' \
-H 'X-Atom-AdId: partner-ad-001' \
-d '{
"orderParameters": {
"lineItems": [
{ "productId": "PROD-ADULT-001", "offerId": "OFFER-STD-001", "quantity": 2 }
],
"channel": "Partner",
"clientVersion": "1.0.0",
"clientRequestId": "req-a1b2c3d4-5678-90ef-ghij-klmnopqrstuv",
"isGuestOrder": true,
"paymentProcessor": "PartnerPay",
"associateTags": {
"affiliateName": "fever"
}
}
}'
{
"receipt": {
"subtotal": 29.98,
"serviceFee": 3.5,
"tax": 2.7,
"totalAmount": 36.18,
"currency": "USD",
"lineItems": [
{
"productName": "Adult",
"quantity": 2,
"unitPrice": 14.99,
"subtotal": 29.98
}
]
},
"autoAddedItems": []
}

Review the receipt.totalAmount before creating the order.


Commit the order. The payment is captured and tickets are issued.

Terminal window
curl -X POST \
https://api-beta.atomtickets.com/ordering/v1/customer/orders \
-H 'Content-Type: application/json' \
-H 'x-api-key: {AtomPartnerApiKey}' \
-H 'X-Atom-Timestamp: 2026-02-13T12:00:00Z' \
-H 'X-Atom-AuthToken: {authToken}' \
-H 'X-Atom-DeviceSignature: {deviceSignature}' \
-H 'X-Atom-Signature: {signature}' \
-H 'X-Atom-DeviceId: partner-device-001' \
-H 'X-Atom-AdId: partner-ad-001' \
-d '{
"orderParameters": {
"lineItems": [
{ "productId": "PROD-ADULT-001", "offerId": "OFFER-STD-001", "quantity": 2 }
],
"channel": "Partner",
"clientVersion": "1.0.0",
"clientRequestId": "req-a1b2c3d4-5678-90ef-ghij-klmnopqrstuv",
"isGuestOrder": true,
"paymentProcessor": "PartnerPay",
"associateTags": {
"affiliateName": "fever"
}
}
}'
{
"orderId": "ORD-12345",
"eventId": "EVT-67890"
}

The order is now processing. Poll the order status endpoint to confirm fulfillment.


Poll this endpoint to check whether the order has been fulfilled by the vendor. Recommended polling interval is 2 seconds with a 10-second timeout.

Terminal window
curl -X GET \
https://api-beta.atomtickets.com/ordering/v1/customer/orders/ORD-12345/status \
-H 'x-api-key: {AtomPartnerApiKey}' \
-H 'X-Atom-Timestamp: 2026-02-13T12:00:00Z' \
-H 'X-Atom-AuthToken: {authToken}' \
-H 'X-Atom-DeviceSignature: {deviceSignature}' \
-H 'X-Atom-Signature: {signature}' \
-H 'X-Atom-DeviceId: partner-device-001' \
-H 'X-Atom-AdId: partner-ad-001'
{
"orderStatus": "fulfilled",
"orderStatusReason": null,
"orderStatusReasonCode": null
}

Once the status is fulfilled, retrieve the full order summary for ticket details and QR codes.


Retrieve the complete order details including ticket barcodes and QR code data for theater entry.

Terminal window
curl -X GET \
https://api-beta.atomtickets.com/ordering/v2/customer/orders/ORD-12345/summary \
-H 'x-api-key: {AtomPartnerApiKey}' \
-H 'X-Atom-Timestamp: 2026-02-13T12:00:00Z' \
-H 'X-Atom-AuthToken: {authToken}' \
-H 'X-Atom-DeviceSignature: {deviceSignature}' \
-H 'X-Atom-Signature: {signature}' \
-H 'X-Atom-DeviceId: partner-device-001' \
-H 'X-Atom-AdId: partner-ad-001'
{
"orderId": "ORD-12345",
"eventId": "EVT-67890",
"orderStatus": "fulfilled",
"receipt": {
"subtotal": 29.98,
"serviceFee": 3.5,
"tax": 2.7,
"totalAmount": 36.18,
"currency": "USD"
},
"venueInfo": {
"name": "AMC Loews Broadway 4",
"address": "1441 Third Street Promenade, Santa Monica, CA 90401"
},
"showtime": {
"startTime": "2026-02-14T19:30:00Z",
"auditorium": "Auditorium 7",
"screenType": "IMAX"
},
"tickets": [
{
"seatLabel": "A1",
"ticketType": "Adult",
"price": 14.99,
"vendorQrCodeData": "VNDR-QR-A1-ENC-7f8g9h0i1j2k3l4m5n6o",
"vendorBookingId": "VNDR-BK-90210"
},
{
"seatLabel": "A2",
"ticketType": "Adult",
"price": 14.99,
"vendorQrCodeData": "VNDR-QR-A2-ENC-9k0l1m2n3o4p5q6r7s8t",
"vendorBookingId": "VNDR-BK-90210"
}
],
"concessions": []
}

Cancel a confirmed order. Cancellation is only available if the showtime hasn’t passed.

Terminal window
curl -X DELETE \
https://api-beta.atomtickets.com/v1/customer/orders/ORD-12345 \
-H 'x-api-key: {AtomPartnerApiKey}' \
-H 'X-Atom-Timestamp: 2026-02-13T12:00:00Z' \
-H 'X-Atom-AuthToken: {authToken}' \
-H 'X-Atom-DeviceSignature: {deviceSignature}' \
-H 'X-Atom-Signature: {signature}' \
-H 'X-Atom-DeviceId: partner-device-001' \
-H 'X-Atom-AdId: partner-ad-001'
{
"orderId": "ORD-12345",
"cancellationStatus": "cancelled",
"refundAmount": 36.18,
"cancellationReason": "Customer requested cancellation"
}