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

# Age Estimation Webhooks

> Receive age estimation results via HTTP POST webhook callbacks from iDenfy with signed payloads, per-session URL overrides, and idempotent delivery.

When a session reaches a terminal state, a result notification is sent to your endpoint.

## Where It's Sent

iDenfy resolves the destination in this order:

1. The token's `webhook_url`, if set (per-session override).
2. Otherwise, the webhook URL configured on your account's **Age Estimation** notification (notification event type `AGE_ESTIMATION`) -- this is the default used when a token has no `webhook_url`.
3. If neither is configured, no notification is sent. The result is then only visible in the dashboard -- there is no Partner API endpoint for retrieving sessions, so configure a webhook if you need the result in your own systems.

If your Age Estimation notification is configured with a signing key, the webhook body is signed so you can verify authenticity. See [Callback Signing](/security/callback-signing).

## Payload

<Info>
  For the full payload schema and every field's type, see the [**API Reference**](/api-reference/age-estimation/age-estimation-result) page for this webhook.
</Info>

Only two statuses are ever delivered -- `COMPLETED` and `FAILED`. For what the accompanying `outcome` means, see [Statuses and Outcomes](/guides/dashboard/age-estimation/overview#statuses-and-outcomes).

The `estimatedAge` reported is the established age: when a document step-up produced an age, that exact document age is used; otherwise it is the AI face-estimated age. `scanRef` carries the step-up scan reference, or the token id when there is no scan ref.

<Note>
  The notification does not distinguish a document that was accepted cleanly from one that was accepted but flagged for possible fraud -- both report the same outcome.
</Note>

## Idempotency

Delivery may be retried, so handle notifications idempotently (e.g. keyed on `scanRef` / `clientId`).


## Related topics

- [Age Estimation Dashboard](/guides/dashboard/age-estimation/dashboard.md)
- [System Notifications for Webhooks and Emails](/guides/dashboard/settings/system-notifications-webhooks-emails.md)
- [Create session](/api-reference/age-estimation/create-session.md)
- [Age estimation result](/api-reference/webhooks/age-estimation-result.md)
- [Age Estimation Overview](/guides/dashboard/age-estimation/overview.md)
