Run this checklist before directing real buyers to a live event. Complete the integration checks once per application and the inventory checks for every important event.
Application readiness
Secure live credentials
Store sk_live_… only in the production server secret manager. Confirm it is absent from browser bundles, mobile binaries, logs, and public configuration.
Complete the trusted checkout
Verify the browser sends only the hold id, the server inspects authoritative hold items, and your order id becomes bookingRef.
Test payment compensation
Deliberately expire a hold after payment authorization. Confirm a booking 409 moves the order into reselection and voids/refunds correctly.
Prove idempotent recovery
Simulate a booking response timeout and retry with the same order id. Confirm no duplicate sale, credit usage, or payment capture.
Configure signed webhooks
Verify the signature against the raw body, deduplicate deliveries, acknowledge quickly, and separate test/live processing.
Verify the buyer experience
Complete checkout on desktop and mobile, with keyboard navigation, accessible inventory, color/zoom constraints, and a browser without 3D support.
Event readiness
- The chart is published.
- The event was created with a live key.
- Event name, date, venue, currency, prices, and ticket tiers are correct.
- Capacity matches the authoritative venue plan.
- Accessible and companion seats are correctly related.
- Obstructed views, booths, tables, GA, sections, zones, and floors were reviewed.
- Intended sections are on sale and reveal rules are correct.
- Test holds, blocks, and bookings are absent from live inventory.
- The account has sufficient booking credits.
- Operations staff can access the intended control surface.
Environment checks
| Check | Expected production value |
|---|---|
| SDK/API origin | https://api.seatlayer.io unless SeatLayer supplied another |
| Secret key | sk_live_… in server secret storage |
| Event mode | Live |
| Webhook environment | Production routing tag or intentional wildcard |
livemode handling |
Production logic accepts true; test traffic is isolated |
| Logs | Event, hold, order, and payment correlated without secrets |
Failure rehearsal
Before launch, rehearse:
- two buyers competing for the same final seat;
- hold expiry on the payment page;
- payment authorization followed by booking conflict;
- successful booking with a lost HTTP response;
- delayed and duplicate webhook delivery;
- realtime disconnect and reconnect;
- event sold out while a buyer is viewing it; and
- an operator blocking inventory during active sales.
Launch evidence
Record:
- the production event key and your business event id;
- the chart version reviewed;
- the live credential/environment used, without the secret;
- automated check output;
- the successful manual order/booking reference;
- webhook delivery evidence; and
- the owner of rollback or buyer-support decisions.
Final decision
Do not launch when any of these remain unknown:
- who owns payment compensation;
- how an expired hold returns to selection;
- whether booking retries reuse the same reference;
- whether webhook signatures are verified;
- whether tenant/workspace ownership is enforced; or
- whether accessible inventory was validated.
Use Integration best practices for the complete production standard and the complete checkout example as the reference flow.