Before you switch
1
Your organization is approved
Live checks require an approved organization. A
pruva_live_... key on an unapproved org returns 403 not yet approved. Request approval from the dashboard and confirm it is granted.2
Every scope you use is active
Each scope must be activated for your organization. Confirm every scope your integration calls is active, not just the one you tested most. An inactive scope returns
403.3
Your live key allows those scopes
A key carries its own allowed-scope list. Make sure your live key permits every scope you will run, or issue one that does.
4
Your wallet is funded
Live checks are charged, including
not_found. Fund the wallet and set a low balance alert so checks are not refused for funds mid flow.5
You handle all three outcomes
Confirm your code handles
found, not_found, and failed distinctly, and does not treat not_found as an error. See Handling failed checks.6
Webhooks are verified
If you use webhooks, confirm your endpoint verifies the signature and returns
2xx promptly. See Verifying a webhook signature.7
Keys are stored safely
Your live API key is in a secret manager or environment variable, never in source control or the browser. Widget pages use the public key only.
The switch itself
Replace yourpruva_test_... key with a pruva_live_... key. No other code change is needed; the request, the endpoints, and the response shape are identical between environments.
After you switch
- Run one real check of each scope and confirm the result and the wallet debit look right.
- Watch your first live checks in the dashboard for a short while, especially the
chargedflag and anyfailedresults. - Keep the test key working in your staging environment so you can keep building without spending.
If a live check fails immediately, read the code first.
403 almost always means approval or scope activation; 402 means funds; 422 means the request body. See Errors.