> ## 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.

Every payload is signed. Verify the `Eka-Webhook-Signature` header before trusting it — see [Webhook Signature](https://developer.eka.care/docs/webhooks/webhook-signature.md).

## 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](https://developer.eka.care/docs/hie-cm/webhooks/abha-created.md) |

## 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](https://developer.eka.care/docs/hie-cm/webhooks/locker-created.md) |
| `abha.subscription_modified` | Subscription period, categories or status changed. | [Subscription Updated](https://developer.eka.care/docs/hie-cm/webhooks/subscription-modify.md) |
| `abha.subscription_notify` | A HIP linked a new care context for this patient. Metadata only — raise consent to read it. | [New Care Context Linked](https://developer.eka.care/docs/hie-cm/webhooks/subscription-notify.md) |

## Consent & data

| Event | What it means | Reference |
| - | - | - |
| `abha.consent_update` | A consent request changed state (granted, denied, expired, revoked). | [Consent Update](https://developer.eka.care/docs/hie-cm/webhooks/consent-update.md) |
| `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](https://developer.eka.care/docs/hie-cm/webhooks/hiu-data-push.md) |

## Records you store yourself

| Event | What it means | Reference |
| - | - | - |
| `rec.uploaded` | A patient-uploaded document finished processing. | [Record Uploaded](https://developer.eka.care/docs/health-records/record-uploaded-webhook.md) |
| `rec.refresh` | The patient's record list changed and should be refetched. | [Record Refresh](https://developer.eka.care/docs/health-records/record-refresh-webhook.md) |

## 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](https://developer.eka.care/api-sdk/health-records/notifications/add-device.md) |
| Remove a device | [Delete Device](https://developer.eka.care/api-sdk/health-records/notifications/delete-device.md) |
| Configure your FCM credentials | [FCM Credentials](https://developer.eka.care/api-sdk/health-records/notifications/fcm-creds.md) |

## 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](https://developer.eka.care/docs/hie-cm/webhooks/link-care-context.md) |
| `abha.hip_data_fetch` | [Health Data Requested by HIU](https://developer.eka.care/docs/hie-cm/webhooks/hip-data-fetch.md) |
| Discovery request received | [Discovery Request Received](https://developer.eka.care/docs/hie-cm/webhooks/discover-care-context.md) |
| Link initiation — generate OTP | [Link Initiation](https://developer.eka.care/docs/hie-cm/webhooks/discover-link-init.md) |
| Link confirmation — verify OTP | [Link Confirmation](https://developer.eka.care/docs/hie-cm/webhooks/discover-link-confirm.md) |
| Scan & Share token received | [Scan and Share Token Received](https://developer.eka.care/docs/hie-cm/webhooks/hip-scan-and-share.md) |

> [!NOTE]
>
> If you pass FHIR data in the `data` field of the [Link API](https://developer.eka.care/api-sdk/hie-cm/care-contexts/link/hip-linking.md), or upload via the [Upload API](https://developer.eka.care/api-sdk/health-records/obtain-authorization.md), EKA serves the data on your behalf and `abha.hip_data_fetch` is never sent to you.


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