Go-live checklist
What to check before an integration or a custom storefront moves from the sandbox to production, and what to watch after.
Moving from the sandbox to production changes hosts, credentials and data at once. Walk this list before the first production call, then watch the first day of traffic.
Credentials and access
- A production API key, created in the production tenant at
https://kentro.app. Sandbox keys do not work in production. - Its permission group holds only the scopes the integration uses, and the key is bound to the sales channels it writes into. See API keys and scopes.
- The secret sits in a secrets manager, not in code, configuration files or logs.
- A record of which system holds which key, and who can rotate it.
Hosts and ids
- Every host switched:
apis.kentro.devtoapis.kentro.live(Channel API, Store API, authentication),pixel.kentro.devtopixel.kentro.live, and Kentro OS fromhttps://kentro.cctohttps://kentro.app. - No sandbox id left in configuration: channel ids, warehouse ids, product ids and storefront hosts all differ in production. Read production ids with
GET /v1/channelsand from production documents.
Requests
- An
Idempotency-Keyon every Channel API write, built from the source system's own ids so a retry reuses it. externalIdon every create, andonDuplicatechosen on purpose (updatefor feeds that replay,errorwhere a duplicate is a bug).- Money in the right form: decimal strings in currency units on the Channel API, integers in minor units on the Store API.
- One day of real traffic replayed against production with
X-Dry-Run: true, every document answering2xx.
Errors and limits
- Branching on error codes, not on messages; retries only for
429,503,409 in_progressand network failures, with the same idempotency key. See Errors, retries and rate limits. - The request id (
requestIdorX-Request-Id) logged with every refusal. - Peak volume estimated against the Channel API defaults (1,200 writes and 6,000 reads per minute per tenant), with bulk loads going through
POST /v1/orders/importandPOST /v1/products/import. - Bearer tokens refreshed before their 15 minutes run out.
Data
- History loaded with
X-Import-Mode: historical, so old documents send no confirmation emails, packing slips, accounting exports or EDI documents. - Incremental sync watermarks (
updatedSince) set to the go-live moment, and each poll walking its pages to the end before advancing.
Custom storefronts
- The production storefront is published, its custom domain verified, and
X-Storefront-Hostis the live host. - Every Store API call comes from the server; no key or token appears in a browser bundle.
- Refresh on the first
401,X-Expected-Buyeron every call, andX-Storefront-Client-Ipset from the buyer's address. - Checkout tested end to end in the sandbox: a paid order, a decline, a provider authentication step (
needs_action) and a lostcheckout.startanswer recovered withcheckout.status. Cache-Control: no-storerespected: nothing buyer-specific cached across requests.
Kentro Pixel
- A production property (
pk_live_key) with its allowed origins, consent wired to the site's consent banner, revenue sent from the server with a server key, and events visible in the property'sDebugger. See Measure with Kentro Pixel.
After launch
- Watch the first day's
4xx,5xxand429rates and the request ids behind them. - Keep the sandbox key: changes are tested there first.
- Disable the keys of retired integrations.
- Read the Developer changelog for changes that affect the integration.
Updated about 12 hours ago
Did this page help you?

