- 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.
- Indy (AnonCreds) — request specific attributes and/or predicates from AnonCreds credentials, optionally restricting by
credDefIdorschemaId. - 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
| Operation | Required roles |
|---|---|
| Send proof requests | owner, admin, verifier |
| Read proof presentations | owner, admin, issuer, verifier, member, holder |
| Delete verification records | owner |
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
UUID of the verifier organization.
Query parameters
Proof request format. Enum:
INDY (default) or PRESENTATIONEXCHANGE.Request body
- v1 — single connection
- v2 — multiple connections
POST /orgs/:orgId/proofs (unversioned / default)UUID of the single connection to send the proof request to.
Required when
requestType is INDY. Contains an indy sub-object.Required when
requestType is PRESENTATIONEXCHANGE. A W3C Presentation Definition object.Optional comment attached to the proof request.
Automatic proof acceptance mode. Enum:
always, contentApproved, never.Goal code for the proof request thread.
Attach this proof request to an existing thread.
Whether the verifier will confirm receipt.
DIDComm protocol version.
Examples
201 response
| Status | Description |
|---|---|
400 Bad Request | requestType is INDY but proofFormats is missing; or requestType is PRESENTATIONEXCHANGE but presentationDefinition is missing. |
401 Unauthorized | Missing or invalid bearer token. |
403 Forbidden | User does not have owner, admin, or verifier role. |
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
UUID of the verifier organization.
Query parameters
Proof request format. Enum:
INDY (default) or PRESENTATIONEXCHANGE.Request body
Proof format for Indy requests. Contains the
indy sub-object with requested_attributes and requested_predicates.W3C Presentation Definition. Required when
requestType is PRESENTATIONEXCHANGE. Same structure as the connection-based flow.Optional comment.
Goal code for the proof request thread.
DIDComm protocol version.
Automatic proof acceptance mode. Enum:
always, contentApproved, never.Return a shortened invitation URL. Defaults to
true.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.Attempt to reuse an existing connection with the holder.
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
UUID of the verifier organization.
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
UUID of the organization.
Query parameters
Page to retrieve. Min
1. Defaults to 1.Records per page. Min
1, max 100. Defaults to 10.Free-text search across proof records.
Field to sort by. Enum:
createDateTime (default).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
UUID of the organization.
UUID of the proof record to retrieve.
Response
Examples
200 response
| Status | Description |
|---|---|
400 Bad Request | proofId is not a valid UUID. |
404 Not Found | No proof record found with that ID. |
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
UUID of the organization.
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
UUID of the organization whose verification records will be deleted.
Examples
200 response
| Status | Description |
|---|---|
400 Bad Request | orgId is not a valid UUID. |
401 Unauthorized | Missing or invalid bearer token. |
403 Forbidden | User does not have the owner role. |