OpenEUDI SDK Snelstart: uw eerste verificatie in 5 minuten

Een stapsgewijze handleiding om de OpenEUDI SDK te installeren, een verificatiesessie aan te maken en het resultaat te verwerken — allemaal in minder dan 5 minuten met DEMO-modus.

eIDAS Pro Team
24 maart 2026
6 min leestijd

Vereisten

  • Node.js 20+ geïnstalleerd
  • Een TypeScript-project (of JavaScript met ESM)
  • Een terminal en uw favoriete editor

Dat is alles. Geen API-sleutels, geen registratie, geen WRPAC-certificaat. DEMO-modus werkt direct.

Stap 1: installeren

npm install @openeudi/core

Of met uw voorkeurspakketbeheerder:

pnpm add @openeudi/core
yarn add @openeudi/core

Stap 2: een verifier aanmaken

import { VerificationService, DemoMode, InMemorySessionStore } from '@openeudi/core';

// Initialize in DEMO mode — no credentials needed
const service = new VerificationService({
  mode: new DemoMode(),
  store: new InMemorySessionStore(),
});

De optie mode bepaalt hoe de SDK zich gedraagt:

ModeGedragToepassing
new DemoMode()Rondt na 3 seconden automatisch afShowcases, salesdemo's, landingspagina's
new MockMode()Simuleert wallet-reacties met configureerbare dataIntegratietests, CI/CD-pipelines
new ProductionMode(config)Echte EUDI Wallet-verificatieLive verificaties (vereist WRPAC, dec. 2026+)

Stap 3: een verificatiesessie aanmaken

const session = await service.createSession({ type: 'AGE' });

// session.qrCodeUrl contains a data URL for the QR code image
// session.sessionId is the unique session identifier
// session.deepLink is for mobile-to-mobile flows

De array attributes bepaalt wat u wilt verifiëren. eIDAS Pro is ontworpen rond privacy-first booleaanse attributen — u krijgt een ja/nee-antwoord, nooit ruwe persoonsgegevens:

AttribuutRetourneertBeschrijving
age_over_18BooleaansIs de gebruiker 18 jaar of ouder?
age_over_21BooleaansIs de gebruiker 21 jaar of ouder?
age_over_16BooleaansIs de gebruiker 16 jaar of ouder?
age_over_14BooleaansIs de gebruiker 14 jaar of ouder?

Landcompliance (welke landen zijn toegestaan) wordt geconfigureerd in uw merchant-instellingen als whitelist of blacklist — de SDK controleert dit automatisch zonder persoonsgegevens van de gebruiker op te vragen.

Let op: in DEMO-modus retourneren attributen synthetische data. In PRODUCTION-modus bewijst de wallet het booleaanse resultaat cryptografisch zonder de onderliggende geboortedatum prijs te geven.

Stap 4: de QR-code tonen

De sessie bevat een QR-code die de gebruiker scant met zijn EUDI Wallet-app.

// In a web context
const img = document.createElement('img');
img.src = session.qrCodeUrl;
document.getElementById('qr-container').appendChild(img);

// In React
function VerificationQR({ session }) {
  return <img src={session.qrCodeUrl} alt="Scan with your EUDI Wallet" />;
}

// In Next.js (using next/image)
import Image from 'next/image';
function VerificationQR({ session }) {
  return <Image src={session.qrCodeUrl} alt="Scan with your EUDI Wallet" width={256} height={256} />;
}

Stap 5: wachten op het resultaat

// Event-based (recommended for web apps)
service.on('verified', (result) => {
  console.log('Verification successful!');
  console.log('Verified:', result.verified);     // true
  console.log('Country allowed:', result.countryAllowed); // true (based on your whitelist)
  console.log('Session ID:', result.sessionId);
  console.log('Timestamp:', result.verifiedAt);
});

service.on('failed', (error) => {
  console.log('Verification failed:', error.reason);
  // 'timeout' | 'rejected' | 'invalid_credential' | 'network_error'
});

service.on('expired', () => {
  console.log('Session expired — generate a new QR code');
});

Of gebruik de promise-based API:

try {
  const result = await session.waitForResult({ timeout: 120000 }); // 2 min timeout
  console.log('Verified:', result.verified);
} catch (error) {
  console.log('Failed or timed out:', error.reason);
}

Volledig voorbeeld: Express.js API-route

import express from 'express';
import { VerificationService, DemoMode, InMemorySessionStore } from '@openeudi/core';

const app = express();
const service = new VerificationService({
  mode: new DemoMode(),
  store: new InMemorySessionStore(),
});

// Create a new verification session
app.post('/api/verify', async (req, res) => {
  const session = await service.createSession({ type: 'AGE' });

  res.json({
    sessionId: session.sessionId,
    qrCodeUrl: session.qrCodeUrl,
  });
});

// Check session status (or use SSE for real-time)
app.get('/api/verify/:sessionId', async (req, res) => {
  const status = await service.getSessionStatus(req.params.sessionId);
  res.json(status);
});

// SSE endpoint for real-time updates
app.get('/api/verify/:sessionId/events', (req, res) => {
  res.setHeader('Content-Type', 'text/event-stream');
  res.setHeader('Cache-Control', 'no-cache');
  res.setHeader('Connection', 'keep-alive');

  service.on('verified', (result) => {
    res.write(`data: ${JSON.stringify({ type: 'verified', result })}\n\n`);
    res.end();
  });

  service.on('failed', (error) => {
    res.write(`data: ${JSON.stringify({ type: 'failed', error })}\n\n`);
    res.end();
  });
});

app.listen(3000, () => console.log('Server running on port 3000'));

Wat gebeurt er in DEMO-modus?

Als u deze code uitvoert in DEMO-modus:

  1. Wordt een QR-code gegenereerd (visueel identiek aan een echte)
  2. Rondt de sessie na 3 seconden automatisch af
  3. Wordt synthetische verificatiedata geretourneerd (age_over_18: true, countryAllowed: true)
  4. Vuurt uw onVerified-callback met het resultaat

Er is geen echte wallet bij betrokken. Zo kunt u de volledige verificatie-UI en backend-flow bouwen en testen voordat EUDI Wallets worden gelanceerd.

Volgende stappen

  • Schakel over naar MockMode om te testen met configureerbare reacties (succes, falen, timeout)
  • Voeg de WooCommerce-plugin toe aan uw WordPress-winkel voor verificatie bij het afrekenen
  • Lees de API-referentie voor geavanceerde configuratie (aangepaste QR-stijlen, sessie-opties, foutafhandeling)
  • Doe mee aan de GitHub-discussies om problemen te melden of functies aan te vragen

Wanneer EUDI Wallets in december 2026 worden gelanceerd, wijzigt u new DemoMode() naar new ProductionMode(config) en voegt u uw WRPAC-gegevens toe — of gebruikt u de managed service van eIDAS Pro om het certificaatbeheer volledig over te slaan.


OpenEUDI is MIT-gelicentieerd. De SDK bevindt zich momenteel in ontwikkeling — geef de GitHub-repo een ster om op de hoogte te blijven van de eerste release.

Gerelateerde artikelen

Dit artikel delen

Help anderen meer te weten komen over eIDAS-verificatie