Test keys (sk_test_*) are issued instantly at registration so you can build immediately. Production keys (sk_live_*) are gated on how you reward members.
Yoyo Rewards Network (recommended) — vouchers, gift cards, coupons, and the marketplace. Requires KYB (Know Your Business) verification; once a Yoyo operator approves, your production key is issued.
Bring Your Own Rewards — you fulfil rewards yourself (internal coupons, external rewards, digital badges). No fulfilment risk, so a production key is issued immediately on submission.
curl -X POST https://loyalty-engine-production-e5cb.up.railway.app/v1/tenants/YOUR_TENANT_ID/kyb \
-H "X-API-Key: sk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"rewardPath": "yoyo",
"legalName": "Acme Events (Pty) Ltd",
"registrationNumber": "2026/123456/07"
}'rewardPath: "byo" → submission is NOT_REQUIRED; a live key is returned immediately in apiKey.rewardPath: "yoyo" → submission is PENDING; apiKey is null until approval.Check status any time with GET /tenants/:id/kyb. Statuses: NOT_REQUIRED, PENDING, APPROVED, REJECTED.
Live keys cannot be minted until the gate clears — this also applies to the standard POST /tenants/:id/api-keys endpoint. Requesting environment: "live" before KYB is cleared returns 403 PRODUCTION_ACCESS_DENIED. Test keys are never gated.