A PHR app is usually both a HIP and an HIU: a HIU when it fetches records from other providers on the patient’s behalf, and a HIP when it stores records the patient uploaded themselves (the health locker).
The two components
Every PHR integration has two halves, and it matters which half calls what.PHR App UI
The patient’s app or web client. Handles ABHA creation, login, consent screens, QR scanning, and record display. Never holds your
client_secret.PHR App Cloud
Your backend. Holds credentials, calls EKA’s ABDM Connect APIs, and receives webhooks — the asynchronous half of ABDM (linking status, consent updates, subscription notifications) only ever reaches your cloud.
The patient journey
Stage-by-stage API map
1 · ABHA Onboarding
Create an ABHA address via mobile OTP, Aadhaar OTP or face auth. Log the patient in and hold an ABHA Gateway session.
2 · Profile Management
Read and update the ABHA profile, run KYC, render the ABHA card and QR, delete the account.
3 · Scan & Share
Patient scans a facility QR to register instantly and get a token number.
4 · Discover & Link Records
Search providers, discover unlinked care contexts, and link them to the patient’s ABHA address.
5 · Consents & Subscriptions
List, approve, deny and revoke consent requests. Set up auto-approval and the health locker.
6 · Fetch & Display Records
List linked providers and care contexts, receive FHIR data, and let the patient upload their own documents.
7 · Webhooks
Every asynchronous event a PHR app must handle, in one list.
Errors
ABDM, gateway and EKA error codes and what to show the patient.
Where each stage comes from
If you are also tracking ABDM certification, this is how the PHR journey maps onto the milestone trees:Before you start
1
Get credentials
Sign up on the EKA developer console and provision your
client_id / client_secret, then exchange them for an access token.Authorization →2
Register your webhook URL
A PHR app cannot work on request/response alone — linking results, consent updates and subscription notifications all arrive as webhooks. Share your endpoint with EKA before you begin testing.PHR webhooks →
3
Understand the ABHA Gateway session
Most patient-scoped APIs need a live ABHA Gateway session on top of your partner token. When it expires, those APIs return HTTP
491 and you must re-authenticate the patient.User Session →
