Skip to main content

VerificationSession

Full verification session resource. credentialData and verificationResult are present only when status is completed; failureReason only when status is failed.

sessionIduuid

Unique session identifier. Always present.

Example: 550e8400-e29b-41d4-a716-446655440000
statusstring

Session state. pending is non-terminal; completed and failed are terminal.

Possible values: [pending, completed, failed]

Example: completed
authorizationUrlstring

Original OpenID4VP URL. Always present.

Example: openid4vp://authorize?response_type=vp_token&client_id=...
createdAtdate-time

Session creation timestamp. Always present.

Example: 2025-01-15T10:00:00Z
updatedAtdate-time

Last update timestamp. Always present.

Example: 2025-01-15T10:01:12Z
expiresAtdate-time

Session expiry timestamp. Always present.

Example: 2025-01-15T10:02:00Z
externalIdstring

Your correlation ID. Present if provided at creation.

Example: kyc-check-99887
credentialTypestring

Requested credential type. Always present.

Example: VerifiedPerson
presentationDefinitionIdstring

Presentation definition used. Always present.

Example: verified-person-v1
configurationIdstring

Your configuration_id. Always present.

Example: your_configuration_id
trustNetworkIdstring

Trust network this verification belongs to. Always present.

Example: urn:uuid:1f0a8b3c-9e4d-4c2a-b1f7-3d5e6a7b8c9d
verifierMemberIdstring

Your verifier identity (URN) in the trust network. Always present.

Example: urn:uuid:8b6b2812-5c3e-4f1a-9d2b-7e8f9a0b1c2d
vpReceivedAtdate-time

When the VP token arrived. Present after the wallet submits.

Example: 2025-01-15T10:01:10Z
vendorVerifiedAtdate-time

When the backend completed verification. Present after verification.

Example: 2025-01-15T10:01:12Z
callbackDeliveredAtdate-time

When your webhook was notified. Present if a callback is configured.

Example: 2025-01-15T10:01:13Z
callbackAttemptsinteger

Number of webhook delivery attempts. Always present.

Example: 1
callbackDeliveryStatusstring

Webhook delivery state — independent of verification status. A session can be completed with callbackDeliveryStatus: exhausted when verification succeeded but your webhook endpoint was unreachable.

Possible values: [pending, delivered, exhausted]

Example: delivered
credentialData object

Extracted credential claims (e.g. givenName, dateOfBirth). Present only when status is completed.

property name*any

Extracted credential claims (e.g. givenName, dateOfBirth). Present only when status is completed.

Example: {"givenName":"Alice","dateOfBirth":"1990-01-15"}
verificationResult object

Detailed verification check results. Present only when the session status is completed.

signatureValidboolean

Credential signature verified.

Example: true
issuerTrustedboolean

Issuer is a trusted member of the trust network.

Example: true
policyCompliantboolean

All verification policies passed.

Example: true
revocationStatusstring

Revocation check outcome. Always verify this is not revoked before granting access.

Possible values: [not_revoked, revoked, unknown]

Example: not_revoked
issuerMemberIdstring

Issuer's identity (URN) in the trust network.

Example: urn:uuid:3c4d5e6f-7a8b-9c0d-1e2f-3a4b5c6d7e8f
checks object[]

Individual check results.

  • Array [
  • typestring

    Check category.

    Possible values: [signature, revocation, expiration, issuer_trust, policy, schema]

    Example: signature
    statusstring

    Check outcome.

    Possible values: [success, passed, failure, failed, skipped, warning]

    Example: success
    algorithmstring

    Cryptographic algorithm (signature checks only).

    Example: ES256
    mechanismstring

    Revocation mechanism (revocation checks only).

    Example: BitstringStatusList
    detailstring

    Additional context for the check.

  • ]
  • failureReasonstring

    Why verification failed. Present only when status is failed.

    ValueMeaningRecommended Action
    expiredSession TTL elapsed before holder presentedCreate a new session
    invalid_vpVP token was malformed or signature invalidWallet integration issue — check wallet logs
    issuer_not_trustedCredential issuer not in the trust networkContact iDen2 to add the issuer to your trust network
    revoked_credentialCredential has been revokedReject the holder; do not grant access
    audience_mismatchKB-JWT audience does not match client_idWallet integration issue — check holder key binding
    verifier_not_authorizedVerifier configuration issueCheck your verifier configuration and token scopes
    policy_violationVerification policy check failedReview your presentation definition policy
    internal_errorPlatform errorRetry; contact support if recurring

    Webhook delivery failures are tracked separately in callbackDeliveryStatus, not here.

    Possible values: [expired, invalid_vp, issuer_not_trusted, revoked_credential, audience_mismatch, verifier_not_authorized, policy_violation, internal_error]

    Example: issuer_not_trusted
    VerificationSession
    {
    "sessionId": "550e8400-e29b-41d4-a716-446655440000",
    "status": "completed",
    "authorizationUrl": "openid4vp://authorize?response_type=vp_token&client_id=...",
    "createdAt": "2025-01-15T10:00:00Z",
    "updatedAt": "2025-01-15T10:01:12Z",
    "expiresAt": "2025-01-15T10:02:00Z",
    "externalId": "kyc-check-99887",
    "credentialType": "VerifiedPerson",
    "presentationDefinitionId": "verified-person-v1",
    "configurationId": "your_configuration_id",
    "trustNetworkId": "urn:uuid:1f0a8b3c-9e4d-4c2a-b1f7-3d5e6a7b8c9d",
    "verifierMemberId": "urn:uuid:8b6b2812-5c3e-4f1a-9d2b-7e8f9a0b1c2d",
    "vpReceivedAt": "2025-01-15T10:01:10Z",
    "vendorVerifiedAt": "2025-01-15T10:01:12Z",
    "callbackDeliveredAt": "2025-01-15T10:01:13Z",
    "callbackAttempts": 1,
    "callbackDeliveryStatus": "delivered",
    "credentialData": {
    "givenName": "Alice",
    "dateOfBirth": "1990-01-15"
    },
    "verificationResult": {
    "signatureValid": true,
    "issuerTrusted": true,
    "policyCompliant": true,
    "revocationStatus": "not_revoked",
    "issuerMemberId": "urn:uuid:3c4d5e6f-7a8b-9c0d-1e2f-3a4b5c6d7e8f",
    "checks": [
    {
    "type": "signature",
    "status": "success",
    "algorithm": "ES256",
    "mechanism": "BitstringStatusList",
    "detail": "string"
    }
    ]
    },
    "failureReason": "issuer_not_trusted"
    }