EUDI Wallet
Identity verification via EUDI wallet (France Identite).
How does it work?
EUDI Wallet uses the France Identite application as a digital identity wallet. Instead of uploading a PDF, the user presents their identity attributes directly from the application. Verification happens directly on the user's device — ZYKAY never sees personal data.
Already verified users get instant login (~1.7 seconds) via Face ID, without any additional interaction.
The user must have the France Identite (opens in a new tab) application installed and configured with their digital identity.
Rapid integration
Add data-client-proof-mode
A single additional attribute activates EUDI Wallet:
<script src="https://widget-app.zykay.com/v4/loader.min.js"
data-partner-id="pk_live_xxx"
data-success-path="/verified"
data-scopes="isAdult,isFrench,isUnique"
data-client-proof-mode="true"></script>The widget handles the rest
The widget displays a QR code (desktop) or a button (mobile). The ZYKAY app automatically routes the user to the optimal flow.
Exchange the grant_code
const hash = new URLSearchParams(window.location.hash.slice(1));
const grantCode = hash.get('grant_code');
if (grantCode) {
await fetch('/api/zykay/exchange', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ grant_code: grantCode })
});
}The backend does not change. The POST /v1/exchange API with HMAC signature works identically for both methods.
Comparison PDF vs EUDI Wallet
| PDF Verification | EUDI Wallet | |
|---|---|---|
| Scopes | All (8 scopes) | isAdult, isFrench, isEU, isUnique |
| Speed (first time) | ~30-60s | ~15s |
| Speed (return) | Identical | ~1.7s |
| Prerequisites | PDF France Identite | France Identite App |
| Frontend attribute | — | data-client-proof-mode="true" |
| Backend | POST /v1/exchange | Identical |
The isMale, isFemale, revealNationality and revealBirthYear scopes are not available with EUDI Wallet. If you include them in data-scopes with data-client-proof-mode="true", the check will fail.
Migrating from PDF Verification
If your integration already uses PDF verification, migrating to EUDI Wallet is done in two steps:
1. Check your scopes
Remove unsupported scopes if necessary:
- data-scopes="isAdult,isFrench,isMale"
+ data-scopes="isAdult,isFrench"2. Add the attribute
<script src="https://widget-app.zykay.com/v4/loader.min.js"
data-partner-id="pk_live_xxx"
data-success-path="/verified"
data-scopes="isAdult,isFrench"
+ data-client-proof-mode="true"></script>Your backend (POST /v1/exchange) does not require any modifications.
User journey
The ZYKAY application automatically optimizes the route according to the user's context. Three scenarios are possible, from slowest to fastest:
| Scenario | Duration | When |
|---|---|---|
| First visit | ~15s | User has never been verified |
| Later visit | ~15-30s | Cached data, no EUDI re-presentation |
| Instant connection | ~1.7s | Already verified user for your site |
Instant login automatically turns on for users who have already been verified for your site. No configuration is required on your part.
For details of each path, see Wallet Journey.
Next steps
- Wallet Journey — details of the three scenarios
- Available scopes — full reference
- Frontend integration — all widget attributes
- Backend (Exchange API) — exchange of
grant_code - Troubleshooting — resolving common issues