Use Link webhooks to track consent changes and data export status per provider.Documentation Index
Fetch the complete documentation index at: https://docs.emergedata.ai/llms.txt
Use this file to discover all available pages before exploring further.
Authentication
Webhook deliveries are signed with HMAC-SHA256. Verify every request before processing. Headers sent by Emerge:| Header | Description |
|---|---|
X-Signature | HMAC-SHA256 signature (hex) |
X-Webhook-Version | Payload/header contract version (2.0) |
X-Attempt-Number | Delivery attempt number (starts at 1) |
Idempotency-Key | Stable id for deduplication |
Event types
| Event | Description |
|---|---|
consent.given | New consent granted |
consent.revoked | Consent revoked |
consent.expiring | Consent nearing expiry |
consent.reauthorized | Previously revoked/expired consent granted again |
data.ready | User’s data has landed and is queryable via the Query API |
data.failed | Data export failed — data will not be available via the Query API |
Payload format (v2)
All webhook events use:sources[] is event-specific:
consent.given:provider,scopes[],valid_until,is_reauthorized
consent.revoked:provider,revoked_at,reason(user_revoked|account_deleted)
consent.expiring:provider,valid_until,days_until_expiry
consent.reauthorized:provider,scopes[],valid_until,is_returning_user
data.ready:provider
data.failed:provider,error_code,error_message
Response examples
consent.given
consent.revoked
reason values:
user_revoked— user manually revoked consent via the Data Walletaccount_deleted— user deleted their account (GDPR right-to-erasure)
consent.expiring
consent.reauthorized
data.ready
data.failed
Handling webhooks
Delivery and retries
- A non-2xx response triggers retries with exponential backoff.
- Current max attempts:
5. - Always design handlers to be idempotent using
Idempotency-Key.