OpenID4VCI Protocol

Accept an offer (demo: server-side PoP)

Accept a credential offer through Didit's server-side demo shortcut. Didit redeems the OpenID4VCI (OpenID for Verifiable Credential Issuance) offer, creates a holder key, and returns the issued SD-JWT VC (Selective-Disclosure JWT Verifiable Credential). Use this only for demo flows where the server accepts the offer for the holder.

post/v1/credential-offers/{uuid}/accept

Path parameters

uuidstring uuid required

Send the offer UUID.

Request body

object required

Response

Didit accepted the offer and minted the credential.

vctstring

You receive the VCT (Verifiable Credential Type) as a top-level convenience field.

Example response

{
  "credential": {
    "claims": [
      {
        "label": "<redacted>",
        "name": "<redacted>",
        "selective_disclosure": true,
        "value": "<redacted>"
      },
      {
        "label": "<redacted>",
        "name": "<redacted>",
        "selective_disclosure": true,
        "value": "<redacted>"
      }
    ],
    "credential_name": "<redacted>",
    "expires_at": "<redacted>",
    "format": "<redacted>",
    "id": "<redacted>",
    "issued_at": "<redacted>",
    "issuer": {
      "did": "<redacted>",
      "domain": "<redacted>",
      "id": "<redacted>",
      "name": "<redacted>"
    },
    "sd_jwt": "<redacted>",
    "status": "<redacted>",
    "subject": "<redacted>",
    "vct": "<redacted>"
  },
  "holder_jwk": {
    "crv": "P-256",
    "kty": "EC",
    "x": "gAKpvhAnew8YslTtTF7YdOp8LQEgyV4kaR5a7nSe6YE",
    "y": "wG9wk6df7491AtKC9F13X9nvhAwigohTd5nJC7PPrR0"
  },
  "vct": "AirlineLoyalty"
}

Changes

Changed in 2 of the 8 revisions of this API.616

  • 9addd64b04b1512See the full diff
    • for the path request parameter uuid, the type/format was changed from string/ to string/uuid

      request-parameter-type-changed

    • the credential/claims/items/ response's property type/format changed from string/ to object/ for status 200

      response-property-type-changed

    • the credential/expires_at response's property type/format changed from string/date-time to string/ for status 200

      response-property-type-changed

    • the credential/id response's property type/format changed from string/uuid to string/ for status 200

      response-property-type-changed

    • the credential/issued_at response's property type/format changed from string/date-time to string/ for status 200

      response-property-type-changed

    • added the optional property credential/claims/items/label to the response with the 200 status

      response-optional-property-added

    • added the optional property credential/claims/items/name to the response with the 200 status

      response-optional-property-added

    • added the optional property credential/claims/items/selective_disclosure to the response with the 200 status

      response-optional-property-added

    • added the optional property credential/claims/items/value to the response with the 200 status

      response-optional-property-added

    • added the optional property credential/issuer/did to the response with the 200 status

      response-optional-property-added

    • added the optional property credential/issuer/domain to the response with the 200 status

      response-optional-property-added

    • added the optional property credential/issuer/id to the response with the 200 status

      response-optional-property-added

    • added the optional property credential/issuer/name to the response with the 200 status

      response-optional-property-added

    • added the optional property holder_jwk/crv to the response with the 200 status

      response-optional-property-added

    • added the optional property holder_jwk/kty to the response with the 200 status

      response-optional-property-added

    • added the optional property holder_jwk/x to the response with the 200 status

      response-optional-property-added

    • added the optional property holder_jwk/y to the response with the 200 status

      response-optional-property-added

  • 1ee4908e9af414See the full diff
    • added required request body

      request-body-added-required

    • for the path request parameter uuid, the type/format was generalized from string/uuid to string/

      request-parameter-type-generalized

    • added the media type application/json for the response with the status 200

      response-media-type-added

    • added the non-success response with the status 400

      response-non-success-status-added

    • added the non-success response with the status 404

      response-non-success-status-added

    This revision also has 111 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog