---
title: "Create an OpenID4VP presentation request (DCQL)"
method: POST
path: "/v1/presentations/request"
tags: ["OpenID4VP Verification"]
---

# Create an OpenID4VP presentation request (DCQL)

`POST /v1/presentations/request`

Create an OpenID4VP (OpenID for Verifiable Presentations) presentation request. You provide the requested VCT (Verifiable Credential Type), requested claims, audience, and purpose, and the API returns a nonce plus a DCQL (Digital Credentials Query Language) query.

## Request body

- object
  - `requested_vct` string, required — Names the VCT (Verifiable Credential Type) you want the holder to present.
  - `requested_claims` string[] — Lists the claim names you want the holder to disclose.
  - `aud` string, required — Identifies your verifier audience for the presentation.
  - `purpose` string — Explains why you request the presentation.
  - `relying_party_id` string, uuid — You optionally scope this request to a registered relying party by UUID. When set, the relying party's per-RP trust rules apply on top of the tenant registry.

## Response `201`

Returns the created presentation request.

- object
  - `uuid` string, uuid — Identifies the presentation request.
  - `transaction_id` string, uuid — Binds the presentation request to the later verification result.
  - `dcql` object — Contains the DCQL (Digital Credentials Query Language) query the wallet evaluates.
    - `credentials` object[] — Lists the credential queries in the presentation request.
      - `id` string — Identifies the credential query inside the DCQL (Digital Credentials Query Language) payload.
      - `format` string — Names the credential format requested by this query.
      - `meta` object — Carries metadata that constrains matching credentials.
        - `vct_values` string[] — Lists accepted VCT (Verifiable Credential Type) values.
      - `claims` object[] — Lists the claim paths the verifier asks the holder to disclose.
        - `path` string[] — Identifies the requested claim path.
  - `requested_vct` string — Names the requested VCT (Verifiable Credential Type).
  - `requested_claims` string[] — Lists the claim names requested for disclosure.
  - `aud` string — Identifies the verifier audience for the presentation.
  - `nonce` string — Carries the nonce the wallet must bind into the presentation response.
  - `purpose` string — Explains why the verifier requests the presentation.
  - `trusted_iss` string — Returns the trusted issuer value configured for the request.
  - `status` 'pending' — Shows the initial state of the presentation request.
  - `created_at` string, date-time — Records when the presentation request was created.
  - `relying_party` string, uuid, nullable — You receive the relying party UUID this request is scoped to, or null when it is not scoped to one.
  - `trust_policy` string — You receive the effective trust policy for this request: `tenant` or `custom`.

---

[API](https://skmtc.net/didit-protocol/apis/didit-credentials-api.md) · [All operations](https://skmtc.net/didit-protocol/apis/didit-credentials-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/didit-protocol/didit-credentials-api/revisions/e4eddba66557/schema)
