Submit a vp_token for verification
Submit a holder's presentation (the SD-JWT VC verifiable presentation, including the Key-Binding JWT) against a presentation request and verify it. The service consumes the request's single-use nonce, verifies the issuer signature (resolving the key by kid), the holder key binding, the aud and nonce bindings, the algorithm allow-list, expiry, and revocation via the Token Status List, then checks the credential's issuer against the tenant's trusted-issuer registry. A presentation request is single-use: a second response (replay) is rejected with 422. Authenticated with the tenant API key.
Path parameters
UUID of the presentation request being answered. Scoped to the authenticated tenant; an unknown, soft-deleted, or sibling-tenant id returns 404.
Request body
Example request
{
"vp_token": "eyJhbGciOiJFUzI1NiIsInR5cCI6ImRjK3NkLWp3dCJ9.eyJpc3MiOiJ...~WyJzYWx0IiwiZ2l2ZW5fbmFtZSIsIkFkYSJd~eyJhbGciOiJFUzI1NiIsInR5cCI6ImtiK2p3dCJ9.eyJub25jZSI6Ii4uLiJ9.sig"
}Response
Verification succeeded (verdict verified). Returns the verification result with the disclosed claims and the per-check booleans.
Example response
{
"uuid": "b2c3d4e5-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
"verdict": "verified",
"disclosed_claims": {
"given_name": "Ada",
"family_name": "Lovelace",
"birth_date": "1815-12-10"
},
"checks": {
"signature": true,
"key_binding": true,
"aud": true,
"nonce": true,
"alg_allowlist": true,
"not_expired": true,
"not_revoked": true
}
}