---
title: "POST /openid4vc/verifiers/sessions/create-request"
method: POST
path: "/openid4vc/verifiers/sessions/create-request"
tags: ["OpenID4VC Verification Sessions"]
---

# POST /openid4vc/verifiers/sessions/create-request

`POST /openid4vc/verifiers/sessions/create-request`

Create an OpenID4VC verification session by creating a authorization request

## Headers

- `x-tenant-id` string

## Request body

- OpenId4VcVerificationSessionsCreateRequestOptions
  - `requestSigner` OpenId4VcJwtIssuer, required
    - `method` 'did', required
    - `didUrl` string, required
  - `presentationExchange` object — A DIF Presentation Definition (v2) can be provided to request a Verifiable Presentation using OpenID4VP.
    - `definition` DifPresentationExchangeDefinitionV2, required
      - `id` string, required
      - `name` string
      - `purpose` string
      - `format` Format
        - `jwt` JwtObject
          - `alg` string[], required
        - `jwt_vc` JwtObject
          - `alg` string[], required
        - `jwt_vc_json` JwtObject
          - `alg` string[], required
        - `jwt_vp` JwtObject
          - `alg` string[], required
        - `jwt_vp_json` JwtObject
          - `alg` string[], required
        - `ldp` LdpObject
          - `proof_type` string[], required
        - `ldp_vc` LdpObject
          - `proof_type` string[], required
        - `ldp_vp` LdpObject
          - `proof_type` string[], required
        - `di` DiObject
          - `proof_type` string[], required
          - `cryptosuite` string[], required
        - `di_vc` DiObject
          - `proof_type` string[], required
          - `cryptosuite` string[], required
        - `di_vp` DiObject
          - `proof_type` string[], required
          - `cryptosuite` string[], required
        - `undefined` SdJwtObject
          - `undefined` string[]
      - `submission_requirements` SubmissionRequirement[]
        - `name` string
        - `purpose` string
        - `rule` 'all' | 'pick', required
        - `count` number, double
        - `min` number, double
        - `max` number, double
        - `from` string
        - `from_nested` SubmissionRequirement[]
      - `input_descriptors` InputDescriptorV2[], required
        - `id` string, required
        - `name` string
        - `purpose` string
        - `format` Format
          - `jwt` JwtObject
            - `alg` string[], required
          - `jwt_vc` JwtObject
            - `alg` string[], required
          - `jwt_vc_json` JwtObject
            - `alg` string[], required
          - `jwt_vp` JwtObject
            - `alg` string[], required
          - `jwt_vp_json` JwtObject
            - `alg` string[], required
          - `ldp` LdpObject
            - `proof_type` string[], required
          - `ldp_vc` LdpObject
            - `proof_type` string[], required
          - `ldp_vp` LdpObject
            - `proof_type` string[], required
          - `di` DiObject
            - `proof_type` string[], required
            - `cryptosuite` string[], required
          - `di_vc` DiObject
            - `proof_type` string[], required
            - `cryptosuite` string[], required
          - `di_vp` DiObject
            - `proof_type` string[], required
            - `cryptosuite` string[], required
          - `undefined` SdJwtObject
            - `undefined` string[]
        - `group` string[]
        - `issuance` Issuance[]
          - `manifest` string
        - `constraints` ConstraintsV2, required
          - `limit_disclosure` 'required' | 'preferred'
          - `statuses` Statuses
            - `active` PdStatus
              - …
            - `suspended` PdStatus
              - …
            - `revoked` PdStatus
              - …
          - `fields` FieldV2[]
            - `id` string
            - `path` string[], required
            - `purpose` string
            - `filter` FilterV2
              - …
            - `predicate` 'required' | 'preferred'
            - `name` string
          - `subject_is_issuer` 'required' | 'preferred'
          - `is_holder` HolderSubject[]
            - `field_id` string[], required
            - `directive` 'required' | 'preferred', required
          - `same_subject` HolderSubject[]
            - `field_id` string[], required
            - `directive` 'required' | 'preferred', required
      - `frame` object
  - `publicVerifierId` string, required — The public verifier id, used for hosting SIOP / OAuth2 endpoints and metadata

## Response `200`

Ok

- OpenId4VcVerificationSessionsCreateRequestResponse
  - `verificationSession` OpenId4VcVerificationSessionRecord, required
    - `id` string, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time
    - `type` string, required
    - `publicVerifierId` string, required — The public verifier id, used for hosting SIOP / OAuth2 endpoints and metadata
    - `state` 'RequestCreated' | 'RequestUriRetrieved' | 'ResponseVerified' | 'Error', required
    - `errorMessage` string — Optional error message of the error that occurred during the verification session. Will be set when state is {@link OpenId4VcVerificationSessionState.Error}
    - `authorizationRequestJwt` string, required — The signed JWT containing the authorization request
    - `authorizationRequestUri` string, required — URI of the authorization request. This is the url that can be used to retrieve the authorization request
    - `authorizationResponsePayload` OpenId4VcSiopAuthorizationResponsePayload
      - `access_token` string
      - `token_type` string
      - `refresh_token` string
      - `expires_in` number, double
      - `state` string
      - `id_token` string
      - `vp_token` union
        - union[]
          - union
            - union — Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format. See {@link https://www.w3.org/TR/vc-data-model/#presentations VC data model} See {@link https://www.w3.org/TR/vc-data-model/#proof-formats proof formats}
              - …
            - string — Represents a selective disclosure JWT vc in compact form.
        - union — Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format. See {@link https://www.w3.org/TR/vc-data-model/#presentations VC data model} See {@link https://www.w3.org/TR/vc-data-model/#proof-formats proof formats}
          - IVerifiablePresentation
            - `id` string
            - `@context` union, required
              - …
            - `type` union
              - …
            - `verifiableCredential` W3CVerifiableCredential[]
              - …
            - `presentation_submission` PresentationSubmission — It expresses how the inputs are presented as proofs to a Verifier.
              - …
            - `holder` string
            - `verifier` string
            - `proof` union, required
              - …
          - string — Represents a Json Web Token in compact form.
        - string — Represents a selective disclosure JWT vc in compact form.
      - `presentation_submission` PresentationSubmission — It expresses how the inputs are presented as proofs to a Verifier.
        - `id` string, required — A UUID or some other unique ID to identify this Presentation Submission
        - `definition_id` string, required — A UUID or some other unique ID to identify this Presentation Definition
        - `descriptor_map` Descriptor[], required — List of descriptors of how the claims are being mapped to presentation definition
          - `id` string, required — ID to identify the descriptor from Presentation Definition Input Descriptor it coresponds to.
          - `path` string, required — The path where the verifiable credential is located in the presentation submission json
          - `path_nested` Descriptor — recursive
          - `format` string, required — The Proof or JWT algorith that the proof is in
      - `verifiedData` union
        - IPresentation
          - `id` string
          - `@context` union, required
            - union
              - …
            - ICredentialContextType[]
              - …
          - `type` union
            - string
            - string[]
          - `verifiableCredential` W3CVerifiableCredential[]
            - union — Represents a signed Verifiable Credential (includes proof), in either JSON, compact JWT or compact SD-JWT VC format. See {@link https://www.w3.org/TR/vc-data-model/#credentials VC data model} See {@link https://www.w3.org/TR/vc-data-model/#proof-formats proof formats}
              - …
          - `presentation_submission` PresentationSubmission — It expresses how the inputs are presented as proofs to a Verifier.
            - `id` string, required — A UUID or some other unique ID to identify this Presentation Submission
            - `definition_id` string, required — A UUID or some other unique ID to identify this Presentation Definition
            - `descriptor_map` Descriptor[], required — List of descriptors of how the claims are being mapped to presentation definition
              - …
          - `holder` string
          - `verifier` string
        - AdditionalClaims — Construct a type with a set of properties K of type T
  - `authorizationRequest` string, required

---

[API](https://skmtc.net/openwallet-foundation/apis/credo-rest-api.md) · [All operations](https://skmtc.net/openwallet-foundation/apis/credo-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openwallet-foundation/credo-rest-api/revisions/33596742b733/schema)
