Solution
Practice management & billing
Appointments both ways so the brief is ready before each visit, billable care-management events for the biller to confirm, and Good Faith Estimates, inside the practice-management system the practice already uses.
- Credential model
- OAuth 2.0 client credentials for your organisation. Authentication
- Before production
- A BAA with each practice. Their practice-management system remains the claims engine: Norvya submits no claims and posts no remittances.
- Sandbox
- A practice sandbox.
Families you'll use
| Family | Fit | Status |
|---|---|---|
| Billing & scheduling | Core | Built — gated |
| Events (webhooks) | Core | Built — gated |
| Clinical intelligence | Useful | Built — gated |
| Data in | Useful | Built — gated |
| EHR embedding: cards and chart documents | Useful | Built — gated |
| Enrolment & messaging | Useful | Built — gated |
Scopes to request
Ask only for what your product uses.
| Scope | Allows |
|---|---|
members.read | List the organisation's linked members as opaque member references. |
scheduling.read | Read your practice's appointments (booked in Norvya or sent by your system), one practice zone, cursor-paginated, plus the scheduling settings (treating practices only). |
scheduling.write | Send appointments from your practice-management system, idempotently by your own appointment id; cancel never deletes. Change whether Norvya sends its own reminders for them (treating practices only). |
billing.read | Read care-management time and remote-monitoring days per patient per month, with the program's published reference marks reached, as candidates for your biller's review (never a charge or an eligibility determination); billing candidates for staff review; and Good Faith Estimates (treating practices only). |
billing.estimates.write | Issue a No Surprises Act Good Faith Estimate for a patient from your system: your codes and your charges, the same required-contents check as Norvya's own screen (treating practices only). |
clinical.patient.match | Find the member_ref of one of your practice's patients from your own identifier (MRN) plus date of birth; exactly one match or 404 (medical practices only; tightly rate limited, audited). |
webhooks.manage | Register HTTPS webhook endpoints (payloads carry no PHI). Each event also needs its own scope: worklist / attention events clinical.panel.read, import events panel.import.write, population.export_completed population.export (medical practices only), member.at_risk fitness.roster.read, public_health.iis_ack_received public_health.immunizations.read, public_health.case_report_response public_health.case_reports.read. claims.import_completed needs claims.import.write (medical practices only). member.account_claimed needs members.claim_invite (medical practices only). hospital_at_home.escalation needs hospital_at_home.read (hospitals only). hospice.idg_review_due needs hospice.read (hospice agencies only). pharmacy.refill_due and pharmacy.discharge_episode_opened need pharmacy.patients.read; care_site.change_of_condition, care_site.incident_recorded and care_site.mar_exception need care_sites.read (pharmacies and care-facility operators, their own sites). travel.journey_updated and travel.leg_status_changed need travel.journeys.read, travel.nursing_visit_recorded travel.nursing.read, travel.invoice_issued travel.billing.read (medical-travel desks only). travel.inquiry_updated needs travel.inquiries.read, travel.journey_message_posted travel.messages.read (medical-travel desks only). instrument.batch_dispatched needs instruments.request (medical practices only). roster.enrolment_summary needs members.roster.read (medical practices only). older_adults.falls_tier_raised needs older_adults.read (medical practices only). employer.challenge_completed needs employer.challenges.read and occupational.exam_due occupational.read (employers only); medspa.adverse_event_reported needs medspa.aftercare.read (treating practices only). rehab.goal_met needs rehab.read; nutrition.caseload_flagged needs nutrition.read (medical practices only). cocm.review_due needs behavioral.read (medical practices only). derm.lesion_recheck_due and derm.patch_test_read_recorded need derm.read (medical practices only). |
Not callable yet
- Clinical intelligence Built — gated
- Data in Built — gated
- Enrolment & messaging Built — gated
Before production
Gate: A BAA with each practice. Their practice-management system remains the claims engine: Norvya submits no claims and posts no remittances.
Sandbox
Build and test against synthetic members before you touch real data. A practice sandbox. What a sandbox holds, its credentials, limits, resets and expiry are in the Sandbox guide. To request one, write to [email protected] with your organisation and market.
Every endpoint for this market
The families this solution uses, filtered to the scopes it requests. Each link opens the endpoint on its family page.
Platform Built — gated3
- GET
/v1/members - POST
/v1/oauth/token - GET
/v1/usage
Events (webhooks) Built — gated5
- GET
/v1/webhooks - POST
/v1/webhooks - DELETE
/v1/webhooks/{webhook_id} - GET
/v1/webhooks/{webhook_id}/deliveries - POST
/v1/webhooks/{webhook_id}/enable
EHR embedding: cards and chart documents Built — gated1
Billing & scheduling Built — gated17
- GET
/v1/appointments - GET
/v1/appointments/ext/{external_id} - PUT
/v1/appointments/ext/{external_id} - DELETE
/v1/appointments/ext/{external_id} - GET
/v1/appointments/{appointment_ref} - GET
/v1/billing/candidates - GET
/v1/billing/care-management - GET
/v1/good-faith-estimates/{estimate_ref} - POST
/v1/good-faith-estimates/{estimate_ref}/cancel - GET
/v1/good-faith-estimates/{estimate_ref}/pdf - POST
/v1/good-faith-estimates/{estimate_ref}/reissue - POST
/v1/good-faith-estimates/{estimate_ref}/reschedule - GET
/v1/patients/{member_ref}/care-management - GET
/v1/patients/{member_ref}/good-faith-estimates - POST
/v1/patients/{member_ref}/good-faith-estimates - GET
/v1/scheduling/settings - PUT
/v1/scheduling/settings