Skip to main content
POST
Issue VP

Headers

API-Version
string

Pin request, response, and webhook shapes to a specific dated API version (YYYY-MM-DD). Omit to use the version pinned to your API key (set when the key is created; new keys default to the latest version). New integrations should target the latest version.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-07-06"

Path Parameters

vcId
string
required

URN of the credential to present.

Example:

"urn:via:credential:550e8400-e29b-41d4-a716-446655440000"

Body

application/json
targetVerifier
string

Domain or subdomain of the intended verifier (e.g. "organization.com"). When provided, the VP is bound to this audience via proof.domain and a challenge nonce.

Example:

"organization.com"

Response

Signed Verifiable Presentation and VP_CREATED receipt.

presentation
object
required

Signed W3C Verifiable Presentation (@context, type, holder, verifiableCredential, proof), exactly as returned by POST /credential/vp/:vcId — do not re-serialize or modify it. Provide this or presentationEncoded (at least one is required; presentationEncoded overrides and is recommended, since a base64 string avoids JSON formatting changes that can break the signature).

Example:
presentationEncoded
string
required

Base64-encoded JSON of the signed Verifiable Presentation above. Pass it back to POST /credential/verify as presentationEncoded (recommended) to avoid signature failures caused by JSON re-serialization in some HTTP clients.

Example:

"eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiXX0="

receipt
object
required

VP_CREATED receipt issued for this presentation