Presentation Endpoint (OpenID4VP)
The POST request to the presentation endpoint is where verifiable presentations are submitted by holders. This endpoint is part of the OpenID for Verifiable Presentations (OpenID4VP) protocol.
Endpoint
POST /presentationThe URL for this endpoint is provided in the Verifier Metadata (see Verifier Metadata).
Request model
Headers
Content-TypeString. MUST be equal toapplication/x-www-form-urlencodedorapplication/json.
Parameters
The request body MUST contain the following parameters (when using application/x-www-form-urlencoded):
vp_tokenString. A verifiable presentation token containing the verifiable presentation.presentation_submissionString (JSON). A Presentation Submission object when using presentation definitions.stateString. The state parameter value from the authorization request.
When using application/json, the request body is a JSON object containing the same parameters.
Example request
POST /presentation
Host: verifier.ishare.eu
Content-Type: application/x-www-form-urlencoded
vp_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...&presentation_submission={"id":"submission123","definition_id":"participant-credential","descriptor_map":[...]}&state=xyz789Response model
Success Response
The response is a JSON object or redirect containing:
vp_tokenString. The verifiable presentation token (if not already provided in request).presentation_submissionObject. The presentation submission object (if using presentation definitions).stateString. The state parameter value from the request.
Error Response
Error responses follow standard HTTP status codes and OAuth 2.0 error format:
errorString. (Required) Error code (e.g.,invalid_request,invalid_vp_token,presentation_rejected).error_descriptionString. Human-readable description of the error.error_uriString. URI pointing to a document describing the error.
Example response
{
"vp_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"presentation_submission": {
"id": "submission123",
"definition_id": "participant-credential",
"descriptor_map": [
{
"id": "participant-credential-descriptor",
"format": "vc+sd-jwt",
"path": "$.vp.verifiableCredential[0]"
}
]
},
"state": "xyz789"
}iSHARE-Specific Requirements
Within iSHARE, the following requirements apply:
The verifier MUST validate the verifiable presentation:
Verify the presentation signature
Verify all included credential signatures
Check credential expiration and status
Verify issuer trust status
The verifier MUST verify that the credentials in the presentation match the requested presentation definition or scope.
The verifier MUST verify that the holder is authorized to present the credentials.
All verifiable presentations MUST conform to the W3C Verifiable Credentials Data Model 2.0.
Credentials in presentations MUST use schemas published at schemas.ishare.eu.
Last updated