---
id: ext-age-verification
title: "Age Verification"
description: "Verify customer age using digital credentials presented from an EUDI Wallet"
hide_title: false
sidebar_label: Age Verification
keywords: [age verification, EUDI Wallet, digital credentials, PID, Passport, PhotoID, Organisation Wallet, European Business Wallet, compliance, identity verification]
slug: /extensions/age-verification
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```


import NoteBox from '@site/src/components/NoteBox';
import ApiEndpoints from '@site/src/components/ApiEndpoint';

Age Verification extension enables organisations to verify a customer's age using digital credentials such as PID, Passport, PhotoID, or the EU's Age Verification credential, presented from their EUDI Wallet, ensuring compliance with age-restricted services.

## How it works

1. The organisation enables the Age Verification extension from the dashboard.
2. An administrator selects which identity credentials to accept and configures the required age limit.
3. When a customer needs to verify their age, a verification request is triggered using the configured presentation definition.
4. The customer presents the requested credential from their EUDI Wallet.
5. The system verifies the credential and checks whether the customer meets the age requirement.

## Configuration

### Step 1: Choose identity credentials

Select at least one credential type to accept for age verification:

| Credential | Standard | Description |
|---|---|---|
| **Person Identification Data (PID)** | EWC RFC003 | National identity data issued under the EUDI framework |
| **Passport** | ICAO 9303 | Machine-readable travel document |
| **PhotoID** | EWC RFC013 | Photo identification credential |
| **Age Verification** | EU Age Verification Blueprint | Age Verification as per the European Commission |

Each credential type can be individually enabled or disabled. Note that certain credential types may be automatically disabled depending on the selected age limit (e.g., Passport is not available for the "Above 18" age limit).

### Step 2: Set age limit

Choose one of the following age thresholds:

- **Above 18 years**
- **Above 21 years**
- **Above 65 years**

Only one age limit can be active at a time. Changing the age limit may affect which credential types are available.

### Integration

Once configured, the system automatically generates a **Presentation Definition** that encodes the selected credential requirements and age threshold. This presentation definition can be viewed from the extension configuration page and is used when initiating verification requests via the API.

**API endpoints:**

<ApiEndpoints endpoints={[
  { method: 'get', path: '/v3/config/extension/age-verification', description: 'Retrieve current configuration' },
  { method: 'put', path: '/v3/config/extension/age-verification/identity-credential', description: 'Update credential and age limit settings' },
]} />

<NoteBox title="Caution:" variant="caution">
Disabling the Age Verification extension deletes its configuration. This action is not reversible.
</NoteBox>

<NoteBox title="Tip:" variant="tip">
Prefer to set up age verification yourself using the OpenID4VC APIs? Follow the <a href="/docs/eu-age-verification/">Age Verification developer workflow</a> to issue and verify age verification attestations step by step.
</NoteBox>
