Skip to content

Going live checklist

Everything to check before you switch from test keys to live keys and send real orders.

Your test integration becomes a live one by swapping the key — products and SKUs are shared between modes. Before you do, work through this list.

Account

  • Verify your email address. You need a verified email to create live keys and use live mode in the dashboard (Settings → Profile shows the status).
  • Live mode is enabled. GET /account with a live key returns "live_mode_enabled": true. If live keys return 403 live_mode_disabled, contact support.
  • Branding is set (Settings → Branding): brand name, logo, support email, packing slip message and return address. They appear on packing slips, the tracking page and customer emails — under your brand, never ours.
  • Order settings (Settings → Orders): auto-confirm, what happens when credits run out (hold, hold and release manually, or reject), customer shipment emails, low-balance alert.
  • Team access: invite teammates with the least role they need (developers manage keys and webhooks; finance manages the wallet).

Credits

  • Buy credits (Wallet → Buy credits). Bigger top-ups earn bonus credits. Top-ups start at $100.
  • Turn on auto-recharge so orders never wait for credits: save a card or bank account and pick a threshold and amount.
  • Subscribe to wallet.low_balance or keep the low-balance email alert on.

Keys & security

  • Create a live key (sk_live_…) with only the scopes your integration needs. Store it in your secrets manager — never in code or in the browser.
  • Optional: restrict it to your server's egress IPs with an IP allowlist.
  • Plan rotation: know how to roll the key with an overlap.

Webhooks

  • Create a live webhook endpoint — test endpoints do not receive live events. Live endpoints must use HTTPS on a public host.
  • Store the live signing secret (it is different from the test one) and verify every signature.
  • Respond 2xx within 15 seconds and process asynchronously; handle duplicates by event id.
  • Reconcile: if your endpoint was down, list missed events with GET /events (30 days).

Orders

  • Idempotency: every POST /orders sends an Idempotency-Key derived from your store's order id, and external_id is set. See Idempotency.
  • Errors: you log error.code and request_id, retry only 409 idempotency_in_progress, 429 and 5xx, and alert on the rest. See Errors.
  • Holds: you handle order.on_hold (show it in your back office; most holds resolve themselves).
  • Shipping: every shipping option of your store maps to economy, standard, express or priority.
  • Non-production items: your integration skips store line items whose SKU is not one of your products (gift cards, digital goods).
  • Tracking: your store is updated from order.shipped / shipment.created (or you use our customer emails).

Final test

  • Order a sample to yourself with the live key to check print quality and packaging.
  • Watch your first orders in the dashboard (Orders, Developers → Logs, Developers → Webhooks).

Questions? Contact support@swaglists.com — include request ids (Request-Id header) for API questions.