---
title: "Going-live checklist"
description: "Verify charts, live credentials, checkout recovery, webhooks, accessibility, and operations before taking real money."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.seatlayer.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Going-live checklist

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.

> **A credential swap does not convert an event**
>
> Test and live modes are fixed when an event is created. Create production events using the live key; an existing sandbox event cannot be changed into a live event.

## Application readiness

1. **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.
2. **Complete the trusted checkout**

   Verify the browser sends only the hold id, the server inspects authoritative hold items, and your order id becomes `bookingRef`.
3. **Test payment compensation**

   Deliberately expire a hold after payment authorization. Confirm a booking `409` moves the order into reselection and voids/refunds correctly.
4. **Prove idempotent recovery**

   Simulate a booking response timeout and retry with the same order id. Confirm no duplicate sale, credit usage, or payment capture.
5. **Configure signed webhooks**

   Verify the signature against the raw body, deduplicate deliveries, acknowledge quickly, and separate test/live processing.
6. **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:

1. two buyers competing for the same final seat;
2. hold expiry on the payment page;
3. payment authorization followed by booking conflict;
4. successful booking with a lost HTTP response;
5. delayed and duplicate webhook delivery;
6. realtime disconnect and reconnect;
7. event sold out while a buyer is viewing it; and
8. 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](/integrations/best-practices) for the complete production standard and the [complete checkout example](/examples/complete-checkout) as the reference flow.

Source: https://docs.seatlayer.io/start/going-live/index.mdx
