For Relying Parties
Verify API
POST /v1/verify spins up a session, returns a QR/deep link, and handles the full OpenID4VP handshake. You receive status changes via webhook and can poll /v1/verify/{id} at any time.
POST /v1/verify HTTP/1.1
Host: api.nexiel.io
Authorization: Bearer <ACCESS_TOKEN>
Content-Type: application/json
{
"credential_types": ["age_attestation"],
"scope": ["age_over_18"],
"required_assurance_level": "substantial",
"metadata": {
"user_id": "user_123",
"context": "onboarding"
}
}{
"verification_id": "v_abc123",
"status": "pending",
"session_url": "https://nexiel.io/verify/abc123",
"qr_code": "image/png;base64,...",
"deep_link": "nexiel://verify/abc123",
"expires_at": "2025-01-16T10:30:00Z"
}Returns an eIDAS/EUDI-compliant PNG encoding the `openid4vp://` payload.
GET /v1/verify/v_abc123/qr?size=360 HTTP/1.1 Host: api.nexiel.io Authorization: Bearer <ACCESS_TOKEN> Accept: image/png
Scales between 160–1024 px via the `size` query param and regenerates the QR on each request, keeping the nonce/current authorization request in sync.
Signed with HMAC-SHA256 (`X-Nexiel-Signature`). Retries occur up to 5 times.
POST https://yourapp.com/webhooks/nexiel
X-Nexiel-Signature: t=1736947200,v1=...
{
"verification_id": "v_abc123",
"status": "verified",
"checks": { "age_over_18": true },
"assurance_level": "substantial",
"credential_type": "age_attestation",
"verified_at": "2025-01-15T10:30:00Z"
}Wallet bridges, kiosks, or QR generators call this.
GET /v1/verify/v_abc123/openid4vp HTTP/1.1 Host: api.nexiel.io Authorization: Bearer <ACCESS_TOKEN>
Returns the authorization request object, nonce, QR/deep link references, and presentation definition derived from your policy.
{
"verification_id": "v_abc123",
"status": "pending",
"expires_at": "2025-01-16T10:30:00Z",
"deep_link": "eudi-wallet://verify?request=v_abc123",
"qr_code_url": "https://cdn.nexiel.io/q/v_abc123.png",
"authorization_request": {
"response_type": "vp_token",
"response_mode": "direct_post",
"client_id": "https://verify.nexiel.io",
"redirect_uri": "https://api.nexiel.io/v1/verify/v_abc123/callback",
"nonce": "53b6ea29c56443ffa86e6c734f89f8f4",
"presentation_definition": {
"id": "pd_v_abc123",
"input_descriptors": [
{
"id": "descriptor_v_abc123",
"name": "Verification flow",
"constraints": {
"fields": [{ "path": ["$.credentialSubject.age_over_18"] }]
}
}
]
}
}
}• Fintech onboarding (KYC + AML evidence)
• Age-gated e-commerce (alcohol, gaming, adult content)
• Insurance underwriting & policy upgrades
• Rental and landlord onboarding with income/residency checks
• Healthcare provider authentication and prescription workflows
• Government digital services & benefits enrollment
• Staff ID verification for visitor access or contractors
• Gyms, student unions, and transport passes