For Developers

“How do I connect?

The right question — here is the answer, with real endpoints. Three flows cover almost every integration.

OID4VPOID4VCIDCQLOIDC ISO 18013-5 / -7SD-JWT VC

Authoritative reference: the integration docs above. The OpenAPI spec and the endpoints below are released to registered relying parties — ask us for access.

Flow 1 · most common

Verify a credential (OID4VP)

Your service asks for attributes; the user approves in their wallet; you receive cryptographically verified claims.

# 1. Create a presentation request — pick exactly the claims you need
GET /verifier/vp/request/?fields=family_name,given_name,age_over_18

# Response:
{
  "qr_uri":       "mdoc-openid4vp://…",   // show as QR (cross-device)
  "request_uri":  "…",                     // signed Request Object (JAR)
  "state":        "…",                     // your session handle
  "dcql_query":   { … }                    // what was asked, DCQL
}

# 2. The wallet fetches the signed request, the user consents.
# 3. Poll the session by `state` until it completes — you get the verdict
#    (issuer signature, device binding, revocation) and the claims as JSON.

Useful parameters: doctype= (request a specific credential type), credential_format=sd_jwt_vc (SD-JWT VC instead of mdoc), profile=final / haip (OID4VP 1.0 Final / HAIP wire profile).

Flow 2 · zero protocol knowledge

OpenID Connect bridge (SIOP v2)

Already speak OIDC? Then you already speak EUDI. The bridge turns a wallet presentation into a standard authorization-code flow.

# Exactly what your OIDC library does today:
GET /oidc/authorize?client_id=…&scope=openid+identity&redirect_uri=…&state=…

# … user approves in the wallet …

POST /oidc/token          // code → tokens, standard
GET  /oidc/userinfo       // verified claims, standard shape

# Scopes select the attribute set: `identity`, `age_over_18`, and more —
# see the integration docs for the full scope catalogue.

OIDC bridge documentation →

Flow 3 · issuers

Issue credentials (OID4VCI)

Standard OID4VCI: any conformant wallet can enrol your credentials — ours included, but never required.

# Discovery — everything a wallet needs to enrol:
GET /api/vci/.well-known/openid-credential-issuer

# Issue: create a credential offer for your subject, render it as a QR —
# the wallet does the rest (token, proof of possession, credential).
# Pre-authorized code and authorization code grants both supported;
# formats: mso_mdoc, dc+sd-jwt, jwt_vc_json, BBS+.
Proximity

Face-to-face, no internet

ISO/IEC 18013-5 device retrieval: the ForTrust Verifier app reads credentials over BLE and NFC with cached trust anchors and status lists — engagement by QR or NFC tap. For attended and unattended verification points where connectivity is not guaranteed.

Interop testing

Test against us before you ship

Partners get access to our interoperability lab: scripted issuance/presentation runs, wire-profile selection (pre-Final, Final, HAIP), and recorded evidence for every run. Bring your wallet or your verifier — leave with a report.

Request lab access →