GiftingStack
Sign in Get started
Docs menu

Docs

Go live

Everything you built against the test environment works the same way live. This checklist covers what is different.

Checked against the API and the live OpenAPI on 2026-10-21.

Before you start

  • Plan. Live keys need the Starter plan or above. On the free Test plan, creating a live key is refused (403 plan_required). The dashboard's Plan & billing page shows your plan.
  • Store sales. Your fee is measured from verified store sales, web sales you declare, bonus coins above a 20% allowance and coins spent on gifts that no sale accounts for (the web spending floor), so verify every live store purchase before you credit it. Every credit names its kind (receipt_id, price + currency, or bonus: true); a credit without one is 400 sale_kind_required, on test too, so check your integration in test first (How your fee is measured).

Checklist

  • Create a live key in the dashboard (switch the environment to Live). It is shown once. Store it in your server's secret manager, not in code.
  • Switch your server to the live key and keep the test key for your test deployment. A live key never sees test data and the other way round: there is nothing to migrate, and users, balances and gifts start empty.
  • Build the live gift catalog. Each environment has its own catalog. A new project starts with both catalogs empty: add a ready-made set or your own gifts and prices in the Live environment too, with the same gift ids your app expects.
  • Create the live webhook endpoint. Endpoints belong to one environment: add your production URL for Live, copy its secret into your server and check a test event. Make sure your handler verifies the signature and ignores repeated event ids (Webhooks).
  • Verify store purchases and credit them with the receipt. On live, an App Store or Google Play sale is a credit with the receipt_id from POST /v1/receipts/verify (the price comes from the store). For Google Play, give the service account the View financial data permission in Play Console: on live a receipt without its price is not credited (422 price_missing). A sale in your own web shop is a credit with price and currency; free coins are a credit with bonus: true and neither (How your fee is measured, Receipt validation).
  • Check your credit path with a real small purchase: a unique reference per purchase, a fresh Idempotency-Key per request, the same key on retries (Idempotency).
  • Mint client tokens per signed-in user from your backend with the live key, and handle 401 invalid_client_token by fetching a new token (Client tokens).
  • Handle errors the way users should see them: insufficient_balance opens your coin store, 429 backs off (Errors, Rate limits).
  • Remove test keys from production configuration. Revoke any key that was ever pasted into a chat, a ticket or a repository.
  • Know your limits. Live has no test caps (50 users, 5,000 operations a month). The request limit per project environment follows your plan: 300, 1,000 or 10,000 requests per 10 seconds on Starter, Growth and Scale.
  • Gift rooms (live gift events for viewers) need a paid plan: up to 1,000 viewers per room on Starter, 5,000 on Growth, 20,000 on Scale (more on request). Test rooms work on every plan with up to 20 viewers (Gift rooms).
  • Store notifications are optional. Turn them on so refunds are reported to you and subtracted from the fee (Receipt validation).
  • Privacy. Make sure you can delete a user from your own deletion flow (Users and privacy), and that your own privacy notice covers the data you send us.

What can stop live

We may suspend the live environment (your test environment and data stay) if an invoice stays unpaid 7 days after we asked you to pay it, or if you report your sales incorrectly (for example store sales credited without their receipt, or a web-sale price below what your user paid). We tell you what we found and give you 7 days to correct it, unless it repeats an earlier case. While suspended, your secret key can still read and delete users, but everything else, including all app traffic, answers 403 project_suspended. The rules are in the Terms (section 11).

Support and status

Write to support@giftingstack.com and include the request_id of a failing call. This address is also the contact for service status and for security reports.

Questions or something unclear? support@giftingstack.com.