Guide
Production checklist
What has to be true before your integration touches a real person's data. Some steps are yours, some are Norvya's, and some belong to the practice or programme whose members you serve.
1. Finish in the sandbox
- Every call you will make in production answers in your sandbox (client ids start
nvy_sbx_). Same base URL, token endpoint and scopes; the credential decides the environment, and a sandbox credential can never reach live data or the reverse. - Your client handles
401(fetch a new token: tokens last about 15 minutes),403 insufficient_scope,404for members who are not yours,409gates, and429withRetry-After. The production limit per client is higher than the sandbox's but finite. Errors & limits - Your retries follow the idempotency rules, and your webhook receiver verifies signatures, rejects stale timestamps and de-duplicates on
Norvya-Delivery. Webhooks - You store
member_refvalues as opaque strings scoped to your organisation, never as a cross-partner identifier.
2. Agreements
- Business associate agreement. Required before protected health information is exchanged. The partner gate opens only for an organisation with a BAA on file (signed in the app or recorded by Norvya); a demo exemption never counts.
- Your market's own steps, listed under “Before production” on your solution page and on each family page. For example: a state immunization registry connection with an attested data-exchange agreement; NSSP syndromic onboarding; registration with each EHR vendor's programme for SMART launch and CDS Hooks; a licence for licensed measures and instruments. A family marked Built — gated stays off until its step is done.
3. Production credentials
- Your production client is created in Norvya by the organisation's administrator (or by Norvya), with the scopes your product needs and no more. The secret is shown once; Norvya stores only a hash. EMR vendors get one vendor credential from Norvya, then each practice approves it and chooses the scopes it allows.
- Before the first production client is issued, Norvya fixes the key that derives every partner's
member_refvalues (PSEUDONYM_SALT) and does not rotate it afterwards, so the references you store stay stable. This is an operator step on Norvya's side: ask us to confirm it is done before you go live. - Keep the secret in your server's secret store. Never put a production token in a browser, a mobile app or a shared Postman workspace; the portal's “Try it” panel refuses production tokens for that reason.
4. Cut over
- Swap the client id and secret; nothing else changes. Member references differ between the sandbox and production, so do not carry sandbox
member_refvalues over. - Register production webhook endpoints separately (each gets its own secret) and watch
GET /v1/usagefor your first days of calls. - Subscribe to the changelog (RSS) for behaviour changes.
To start, write to [email protected] with your organisation, market and the scopes you need.