Skip to main content
Verification allows a verifier organization to request that a holder prove they possess one or more credentials. CREDEBL supports two verification flows:
  • Connection-based proof request — send a proof request to a holder over an established DIDComm connection.
  • Out-of-band (OOB) proof request — generate a proof request invitation that a holder can accept without a pre-existing connection. Can also be sent via email.
Two request formats are supported:
  • Indy (AnonCreds) — request specific attributes and/or predicates from AnonCreds credentials, optionally restricting by credDefId or schemaId.
  • Presentation Exchange (DIF PE) — request credentials using a W3C Presentation Definition with input_descriptors.

Base path

All endpoints are rooted at /orgs/:orgId/proofs or /orgs/:orgId/verified-proofs.

Authentication

Every endpoint requires a JWT bearer token.

Role-based access

Endpoints

Send proof request

POST /orgs/:orgId/proofs — Request a proof from a connected holder.

Send OOB proof request

POST /orgs/:orgId/proofs/oob — Generate an OOB proof request invitation.

Verify presentation

POST /orgs/:orgId/proofs/:proofId/verify — Verify a submitted proof presentation.

List proof presentations

GET /orgs/:orgId/proofs — Retrieve all proof presentation records.

Get proof presentation

GET /orgs/:orgId/proofs/:proofId — Retrieve a specific proof record.

Get verified proof details

GET /orgs/:orgId/verified-proofs/:proofId — Get the verified attribute values from a completed proof.

Delete verification records

DELETE /orgs/:orgId/verification-records — Delete all verification records for an organization.

Send proof request

POST /orgs/:orgId/proofs Send a proof request to a connected holder. Two API versions are available that differ only in how connectionId is specified. Required roles: owner, admin, verifier

Path parameters

string
required
UUID of the verifier organization.

Query parameters

string
required
Proof request format. Enum: INDY (default) or PRESENTATIONEXCHANGE.

Request body

POST /orgs/:orgId/proofs (unversioned / default)
string
required
UUID of the single connection to send the proof request to.
object
Required when requestType is INDY. Contains an indy sub-object.
object
Required when requestType is PRESENTATIONEXCHANGE. A W3C Presentation Definition object.
string
Optional comment attached to the proof request.
string
Automatic proof acceptance mode. Enum: always, contentApproved, never.
string
Goal code for the proof request thread.
string
Attach this proof request to an existing thread.
boolean
Whether the verifier will confirm receipt.
string
DIDComm protocol version.

Examples

201 response

Send out-of-band proof request

POST /orgs/:orgId/proofs/oob Create an out-of-band proof request invitation. The holder can scan the resulting URL or QR code to respond without a pre-existing connection. The invitation can also be sent to one or more email addresses. Required roles: owner, admin, verifier

Path parameters

string
required
UUID of the verifier organization.

Query parameters

string
required
Proof request format. Enum: INDY (default) or PRESENTATIONEXCHANGE.

Request body

object
Proof format for Indy requests. Contains the indy sub-object with requested_attributes and requested_predicates.
object
W3C Presentation Definition. Required when requestType is PRESENTATIONEXCHANGE. Same structure as the connection-based flow.
string
Optional comment.
string
Goal code for the proof request thread.
string
DIDComm protocol version.
string
Automatic proof acceptance mode. Enum: always, contentApproved, never.
boolean
Return a shortened invitation URL. Defaults to true.
string[]
Optional array of email addresses to deliver the proof request invitation to. Each must be a valid email. Max size controlled by OOB_BATCH_SIZE environment variable.
boolean
Attempt to reuse an existing connection with the holder.
string
Optional display label for the OOB invitation.

Examples

201 response

Verify presentation

POST /orgs/:orgId/proofs/:proofId/verify Verify a proof presentation that a holder has submitted in response to a proof request. Required roles: owner, admin, verifier

Path parameters

string
required
UUID of the verifier organization.
string
required
UUID of the proof record to verify.

Examples

201 response

List proof presentations

GET /orgs/:orgId/proofs Retrieve all proof presentation records for an organization. Supports pagination, search, and sorting. Required roles: owner, admin, issuer, verifier, member, holder

Path parameters

string
required
UUID of the organization.

Query parameters

number
Page to retrieve. Min 1. Defaults to 1.
number
Records per page. Min 1, max 100. Defaults to 10.
Free-text search across proof records.
string
Field to sort by. Enum: createDateTime (default).
string
Sort direction. ASC or DESC (default).

Examples

200 response

Get proof presentation by ID

GET /orgs/:orgId/proofs/:proofId Retrieve the details of a specific proof presentation record, including the submitted proof data. Required roles: owner, admin, issuer, verifier, member, holder

Path parameters

string
required
UUID of the organization.
string
required
UUID of the proof record to retrieve.

Response

object

Examples

200 response

Get verified proof details

GET /orgs/:orgId/verified-proofs/:proofId Retrieve the revealed attribute values and verification status of a completed proof presentation. Required roles: owner, admin, issuer, verifier, member, holder

Path parameters

string
required
UUID of the organization.
string
required
ID of the verified proof record.

Examples

200 response

Delete verification records

DELETE /orgs/:orgId/verification-records Delete all verification records associated with an organization. This action is irreversible. Required roles: owner

Path parameters

string
required
UUID of the organization whose verification records will be deleted.

Examples

200 response