# Go-live checklist

Work through this before switching to live traffic.

- [ ] Omno has **removed the test providers** from your account.
- [ ] Your **live merchant PSPs** are authorized and added to your Routers (and Direct Link Routes).
- [ ] Your webhook handling is **idempotent** and handles **out-of-order** statuses — including the `TIMEOUT → SUCCESS` upgrade for pay-ins. See [Webhooks](/guides/concepts/webhooks).
- [ ] Your balance logic **ignores test-provider IDs** (`merchantPspId` / `processorPspId`).
- [ ] You take the **final status only from a webhook or a GET** on the transaction, never from a redirect or SDK event.
- [ ] **Cashier sessions are created on demand** (right before opening), not at page load — they expire 15 minutes after creation. See [Sessions & tokens](/guides/concepts/sessions-and-tokens).
- [ ] Your frontend uses a **Web SDK version that supports the Cashier `token`** (`@omno-payment/checkout-js` ≥ 1.0.29). See [Versions & compatibility](/cashier/sdk/versions).
- [ ] If you use **Hosted Payment Fields**, your **checkout domain is registered** with Omno (`frame-ancestors`). See [HPF → Integration steps](/hosted-payment-fields/integrate).


## Build it →

- [Testing in production](/guides/testing) · [Choose your integration](/guides/choose-your-integration)