OpenEUDI SDK Quickstart: Ihre erste Verifizierung in 5 Minuten

Eine Schritt-für-Schritt-Anleitung, um das OpenEUDI SDK zu installieren, eine Verifizierungssitzung zu erstellen und das Ergebnis zu verarbeiten - alles in weniger als 5 Minuten im DEMO-Modus.

eIDAS Pro Team
24. März 2026
6 Min. Lesezeit

Voraussetzungen

  • Node.js 20+ installiert
  • TypeScript-Projekt (oder JavaScript mit ESM)
  • Ein Terminal und Ihr bevorzugter Editor

Das ist alles. Keine API-Keys, keine Registrierung, kein WRPAC-Zertifikat. Der DEMO-Modus funktioniert sofort.

Schritt 1: installieren

npm install @openeudi/core

Oder mit Ihrem bevorzugten Paketmanager:

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

Schritt 2: einen Verifier erstellen

import { createVerifier } from '@openeudi/core';

// Initialisierung im DEMO-Modus - keine Credentials erforderlich
const verifier = createVerifier({
  mode: 'demo', // 'demo' | 'mock' | 'production'
});

Die Option mode steuert das Verhalten des SDK:

ModusVerhaltenAnwendungsfall
demoSchließt nach 3 Sekunden automatisch abShowcases, Sales-Demos, Landingpages
mockSimuliert Wallet-Antworten mit konfigurierbaren DatenIntegrationstests, CI/CD-Pipelines
productionReale EUDI-Wallet-VerifikationLive-Verifikationen (erfordert WRPAC, Dez. 2026+)

Schritt 3: eine Verifizierungssitzung erstellen

const session = await verifier.createSession({
  attributes: ['age_over_18'],
  // Länderspezifische Compliance wird über Ihre Merchant-Konfiguration
  // (Whitelist/Blacklist) gesteuert - sie wird nicht vom Nutzer abgefragt
});

// session.qrCode enthält eine Data-URL für das QR-Code-Bild
// session.sessionId ist die eindeutige Sitzungs-ID
// session.deepLink ist für Mobile-to-Mobile-Flows gedacht

Das Array attributes beschreibt, was Sie verifizieren möchten. eIDAS Pro ist auf datenschutzorientierte boolesche Attribute ausgelegt: Sie bekommen eine Ja/Nein-Antwort, niemals rohe personenbezogene Daten.

AttributRückgabeBeschreibung
age_over_18BooleschIst der Nutzer 18 oder älter?
age_over_21BooleschIst der Nutzer 21 oder älter?
age_over_16BooleschIst der Nutzer 16 oder älter?
age_over_14BooleschIst der Nutzer 14 oder älter?

Länderspezifische Regeln (welche Länder erlaubt sind) werden in den Merchant-Einstellungen als Whitelist oder Blacklist konfiguriert. Das SDK setzt diese Regeln automatisch durch, ohne personenbezogene Daten vom Nutzer anzufordern.

Hinweis: Im DEMO-Modus liefern Attribute synthetische Daten. Im PRODUCTION-Modus beweist das Wallet den Bool-Wert kryptografisch, ohne das zugrunde liegende Geburtsdatum preiszugeben.

Schritt 4: den QR-Code anzeigen

Die Sitzung enthält einen QR-Code, den der Nutzer mit seiner EUDI-Wallet-App scannt.

// Im Web-Kontext
const img = document.createElement('img');
img.src = session.qrCode;
document.getElementById('qr-container').appendChild(img);

// In React
function VerificationQR({ session }) {
  return <img src={session.qrCode} alt="Mit Ihrem EUDI Wallet scannen" />;
}

// In Next.js (mit next/image)
import Image from 'next/image';
function VerificationQR({ session }) {
  return <Image src={session.qrCode} alt="Mit Ihrem EUDI Wallet scannen" width={256} height={256} />;
}

Schritt 5: auf das Ergebnis warten

// Event-basierte API (für Web-Apps empfohlen)
session.onVerified((result) => {
  console.log('Verifizierung erfolgreich!');
  console.log('Über 18:', result.ageOver18);     // true
  console.log('Land erlaubt:', result.countryAllowed); // true (gemäß Ihrer Whitelist)
  console.log('Session-ID:', result.sessionId);
  console.log('Zeitstempel:', result.verifiedAt);
});

session.onFailed((error) => {
  console.log('Verifizierung fehlgeschlagen:', error.reason);
  // 'timeout' | 'rejected' | 'invalid_credential' | 'network_error'
});

session.onExpired(() => {
  console.log('Session abgelaufen - neuen QR-Code generieren');
});

Oder über die Promise-basierte API:

try {
  const result = await session.waitForResult({ timeout: 120000 }); // 2 Minuten Timeout
  console.log('Verifiziert:', result.ageOver18);
} catch (error) {
  console.log('Fehlgeschlagen oder Timeout:', error.reason);
}

Vollständiges Beispiel: Express.js-API-Route

import express from 'express';
import { createVerifier } from '@openeudi/core';

const app = express();
const verifier = createVerifier({ mode: 'demo' });

// Neue Verifizierungssitzung erstellen
app.post('/api/verify', async (req, res) => {
  const session = await verifier.createSession({
    attributes: ['age_over_18'],
  });

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

// Sitzungsstatus abrufen (oder SSE für Echtzeit nutzen)
app.get('/api/verify/:sessionId', async (req, res) => {
  const status = await verifier.getSessionStatus(req.params.sessionId);
  res.json(status);
});

// SSE-Endpunkt für Echtzeit-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');

  const session = verifier.getSession(req.params.sessionId);

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

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

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

Was passiert im DEMO-Modus?

Wenn Sie diesen Code im DEMO-Modus ausführen:

  1. wird ein QR-Code erzeugt, der optisch wie ein echter aussieht
  2. wird die Sitzung nach 3 Sekunden automatisch abgeschlossen
  3. werden synthetische Verifikationsdaten zurückgegeben (age_over_18: true, countryAllowed: true)
  4. feuert Ihr onVerified-Callback mit dem Ergebnis

Es ist kein echtes Wallet beteiligt. So können Sie die gesamte UI- und Backend-Logik bauen und testen, bevor EUDI Wallets live gehen.

Nächste Schritte

  • Wechseln Sie in den MOCK-Modus, um konfigurierbare Antworten zu testen (Erfolg, Fehler, Timeout)
  • Fügen Sie das WooCommerce-Plugin hinzu, um Checkout-Verifikationen in Ihrem WordPress-Shop umzusetzen
  • Lesen Sie die API-Referenz für erweiterte Konfigurationen (QR-Styling, Session-Optionen, Fehlerbehandlung)
  • Beteiligen Sie sich an den GitHub-Diskussionen, um Bugs zu melden oder Funktionen anzufragen

Wenn die EUDI Wallets im Dezember 2026 live gehen, ersetzen Sie mode: 'demo' durch mode: 'production' und ergänzen Ihre WRPAC-Credentials - oder Sie nutzen den Managed Service von eIDAS Pro und sparen sich das Zertifikatsmanagement.


OpenEUDI ist MIT-lizenziert. Das SDK befindet sich noch in Entwicklung - markieren Sie das GitHub-Repository, um über den ersten Release informiert zu werden.

Verwandte Artikel

Diesen Artikel teilen

Helfen Sie anderen, mehr über eIDAS-Verifizierung zu erfahren