> ## Documentation Index
> Fetch the complete documentation index at: https://developer.eka.care/llms.txt
> Use this file to discover all available pages before exploring further.

# 7 · PHR Webhooks

> Every asynchronous event a PHR app's cloud must handle, in one list.

ABDM is asynchronous. Discovery results, consent decisions and new-record notifications never come back on the request you made — they arrive later, on your webhook endpoint. A PHR app that only does request/response will silently miss records.

<Note>
  There is no self-service API to register an ABDM webhook URL. Share your endpoint with EKA (console or support) before you begin sandbox testing.
</Note>

Every payload is signed. Verify the `Eka-Webhook-Signature` header before trusting it — see [Webhook Signature](/api-reference/connect/webhooks/webhook-signature).

## Identity

| Event | What it means | Reference |
| - | - | - |
| `abha.created` | An ABHA address was successfully created. Provision the patient in your database from here rather than the client response. | [ABHA Address Created](/api-reference/user-app/abdm-connect/webhooks/abha-created) |

## Locker & subscriptions

| Event | What it means | Reference |
| - | - | - |
| `abha.locker_created` | Health locker set up. Carries `auto_approval_id` and `subscription_id` — store both. | [Locker Created](/api-reference/user-app/abdm-connect/webhooks/locker-created) |
| `abha.subscription_modified` | Subscription period, categories or status changed. | [Subscription Updated](/api-reference/user-app/abdm-connect/webhooks/subscription-modify) |
| `abha.subscription_notify` | A HIP linked a new care context for this patient. Metadata only — raise consent to read it. | [New Care Context Linked](/api-reference/user-app/abdm-connect/webhooks/subscription-notify) |

## Consent & data

| Event | What it means | Reference |
| - | - | - |
| `abha.consent_update` | A consent request changed state (granted, denied, expired, revoked). | [Consent Update](/api-reference/user-app/abdm-connect/webhooks/consent-update) |
| `abha.hiu_data_push` | A HIP pushed the encrypted FHIR bundle you asked for. Only if you manage data yourself. | [Health Data Received from HIP](/api-reference/user-app/abdm-connect/webhooks/hiu-data-push) |

## Records you store yourself

| Event | What it means | Reference |
| - | - | - |
| `rec.uploaded` | A patient-uploaded document finished processing. | [Record Uploaded](/api-reference/user-app/records/record-uploaded-webhook) |
| `rec.refresh` | The patient's record list changed and should be refetched. | [Record Refresh](/api-reference/user-app/records/record-refresh-webhook) |

## Turning events into patient notifications

Most of these events are only useful if the patient hears about them. Register the patient's device once, and push from your cloud when a webhook lands.

| Purpose | API |
| - | - |
| Register a device for push | [Add Device](/api-reference/user-app/notifications/add-device) |
| Remove a device | [Delete Device](/api-reference/user-app/notifications/delete-device) |
| Configure your FCM credentials | [FCM Credentials](/api-reference/user-app/notifications/fcm-creds) |

## Also HIP? Then add these

A PHR app that stores patient-uploaded records is a HIP, and if you serve that data yourself rather than letting EKA serve it, you must handle the HIP-side events too.

| Event | Reference |
| - | - |
| `abha.link_care_context` | [Care Context Linking Status](/api-reference/user-app/abdm-connect/webhooks/link-care-context) |
| `abha.hip_data_fetch` | [Health Data Requested by HIU](/api-reference/user-app/abdm-connect/webhooks/hip-data-fetch) |
| Discovery request received | [Discovery Request Received](/api-reference/user-app/abdm-connect/webhooks/discover-care-context) |
| Link initiation — generate OTP | [Link Initiation](/api-reference/user-app/abdm-connect/webhooks/discover-link-init) |
| Link confirmation — verify OTP | [Link Confirmation](/api-reference/user-app/abdm-connect/webhooks/discover-link-confirm) |
| Scan & Share token received | [Scan and Share Token Received](/api-reference/user-app/abdm-connect/webhooks/hip-scan-and-share) |

<Note>
  If you pass FHIR data in the `data` field of the [Link API](/api-reference/user-app/abdm-connect/care-contexts/link/hip-linking), or upload via the [Upload API](/api-reference/user-app/records/obtain-authorization), EKA serves the data on your behalf and `abha.hip_data_fetch` is never sent to you.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.