---
id: config-update-digital-wallet-open-id-credential-revocation-status
title: "Update credential revocation status"
description: "Updates the revocation status of an issued credential using the IETF Token Status List."
sidebar_label: "Update credential revocation status"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "put api-method"
info_path: docs/openid4vc-api/igrant-io-api-documentation
custom_edit_url: null
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```


import ApiTabs from "@theme/ApiTabs";
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";
import MimeTabs from "@theme/MimeTabs";
import ParamsItem from "@theme/ParamsItem";
import ResponseSamples from "@theme/ResponseSamples";
import SchemaItem from "@theme/SchemaItem";
import SchemaTabs from "@theme/SchemaTabs";
import Markdown from "@theme/Markdown";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";

<h1 className={"openapi__heading"}>Update credential revocation status</h1>

<MethodEndpoint method={"put"} path={"/v2/config/digital-wallet/openid/sdjwt/credential/history/{credentialExchangeId}/revocation-status"}></MethodEndpoint>



Updates the revocation status of an issued credential using the IETF Token Status List.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Path Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"Unique identifier of the credential exchange record tracking a single OID4VCI credential issuance lifecycle.","in":"path","name":"credentialExchangeId","required":true,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Header Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"Optional. Unique identifier of the sandbox organisation to use for this request. When you send this header, the service runs the operation in the context of the named sandbox organisation, that is, against the wallet of that sandbox organisation and not against the main wallet of the organisation. Leave the header out to use the main wallet.\n\nThe service reads this header only when you authenticate with a bearer access token. When you authenticate with an API key, the service takes the sandbox organisation from the API key and ignores this header. To run an API-key call in a sandbox organisation, bind the key to the sandbox organisation with `PUT /v2/config/admin/apikey/{apiKeyId}/sandbox-org` instead.\n\n`X-SubwalletId` is the deprecated name of this header. The service continues to accept it, but `X-SandboxOrgId` wins if you send both headers.\n\nThe sandbox organisation must exist, must belong to your organisation and must be deployed. An unknown identifier, an identifier of a sandbox organisation that is not deployed, and an identifier that belongs to a different organisation all make the call fail with HTTP 400.","in":"header","name":"X-SandboxOrgId","required":false,"schema":{"type":"string"},"example":"6889e1a4c5b2f30001a3d710"}}></ParamsItem></ul></div></details><MimeTabs className={"openapi-tabs__mime"}><TabItem label={"application/json"} value={"application/json-schema"}><details style={{}} className={"openapi-markdown__details mime"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-mime"}><h3 className={"openapi-markdown__details-summary-header-body"}>Body</h3><strong className={"openapi-schema__required"}>required</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}><div style={{"marginTop":"1rem","marginBottom":"1rem"}}>

New revocation status for the issued credential.

</div></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"revocationStatus"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`Operational`, `Revoked`, `Suspended`]"} schema={{"type":"string","description":"New revocation status. `Operational` reactivates a suspended credential. `Revoked` permanently invalidates. `Suspended` temporarily invalidates (can be reactivated).","enum":["Operational","Revoked","Suspended"]}}></SchemaItem></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Credential revocation status updated successfully

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credentialHistory</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Credential exchange record that tracks one OID4VCI issuance. The issuer always returns every field except `transactionData`. A field that has no value is returned with its empty value: `""` for a string, `0` for a number, `false` for a boolean and `null` for an object or an array.

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential exchange record. This field holds the same value as `CredentialExchangeId`.","example":"3a1f0c62-8f9a-4a17-9a4a-2f0f1c9d6a11"}}></SchemaItem><SchemaItem collapsible={false} name={"CredentialExchangeId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for the credential exchange record, tracking the full lifecycle of a single OID4VCI credential issuance.","example":"3a1f0c62-8f9a-4a17-9a4a-2f0f1c9d6a11"}}></SchemaItem><SchemaItem collapsible={false} name={"credentialExchangeId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Camel-case alias of `CredentialExchangeId`. The server sets both fields to the same value. Use this field in new integrations.","example":"3a1f0c62-8f9a-4a17-9a4a-2f0f1c9d6a11"}}></SchemaItem><SchemaItem collapsible={false} name={"organisationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the organisation that issues the credential."}}></SchemaItem><SchemaItem collapsible={false} name={"openIdOrganisationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the OpenID wallet deployment that processes this exchange."}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the data agreement that governs this issuance. The field is empty when the issuance uses a credential definition instead of a data agreement."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dataAttributeValues</strong><span className={"openapi-schema__name"}> object[]</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Attribute values supplied for a data agreement based issuance. The field is `null` when the issuance uses a credential definition.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Name of the data attribute, as defined in the data agreement."}}></SchemaItem><SchemaItem collapsible={false} name={"value"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Value of the data attribute for this holder."}}></SchemaItem><SchemaItem collapsible={false} name={"limitedDisclosure"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the issuer makes this attribute selectively disclosable."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={false} name={"isAccessed"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the holder opened the credential offer."}}></SchemaItem><SchemaItem collapsible={false} name={"isTokenAccessed"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the holder called the OID4VCI Token Endpoint for this exchange."}}></SchemaItem><SchemaItem collapsible={false} name={"issuanceMode"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `InTime`, `Deferred`]"} schema={{"type":"string","description":"Issuance mode used for this exchange. `InTime` means the credential was issued immediately via the OID4VCI Credential Endpoint. `Deferred` means the credential is pending via the Deferred Credential Endpoint.","enum":["","InTime","Deferred"]}}></SchemaItem><SchemaItem collapsible={false} name={"isPreAuthorised"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the issuance used the OID4VCI Pre-Authorized Code Flow. When `false`, the Authorization Code Flow was used."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialOffer"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The OID4VCI Credential Offer URI sent to the holder to start the issuance flow.","example":"openid-credential-offer://?credential_offer_uri=https://api.igrant.io/..."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialOfferEndpoint"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Credential offer endpoint of the holder wallet. The issuer sends the Credential Offer to this URL for issuer-initiated issuance."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialStatus"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `pending`, `ready`]"} schema={{"type":"string","enum":["","pending","ready"],"description":"Processing status of the credential. `pending` means the credential is being prepared. `ready` means it is available for the holder to retrieve."}}></SchemaItem><SchemaItem collapsible={false} name={"status"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `offer_sent`, `offer_received`, `token_issued`, `credential_issued`, `credential_acked`, `credential_accepted`, `credential_deleted`, `issuance_denied`]"} schema={{"type":"string","enum":["","offer_sent","offer_received","token_issued","credential_issued","credential_acked","credential_accepted","credential_deleted","issuance_denied"],"description":"Lifecycle status of the credential exchange in the OID4VCI protocol flow: `offer_sent` (Credential Offer sent to holder), `offer_received` (holder scanned or received the offer), `token_issued` (issuer released an access token), `credential_issued` (credential issued via Credential Endpoint), `credential_acked` (holder acknowledged receipt), `credential_accepted` (holder accepted credential), `credential_deleted` (holder deleted credential), `issuance_denied` (issuer denied issuance)."}}></SchemaItem><SchemaItem collapsible={false} name={"issuerState"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Value of the OID4VCI `issuer_state` parameter. The issuer uses it to bind the Authorization Request to this exchange."}}></SchemaItem><SchemaItem collapsible={false} name={"authorisationRequestState"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"State value of the OAuth 2.0 Authorization Request that the wallet sent."}}></SchemaItem><SchemaItem collapsible={false} name={"idTokenRequestState"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"State value of the ID Token Request that the issuer sent to the holder."}}></SchemaItem><SchemaItem collapsible={false} name={"idTokenRequest"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"ID Token Request that the issuer sent to the holder as a signed request object."}}></SchemaItem><SchemaItem collapsible={false} name={"authorisationCodeState"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"State value that the issuer returns together with the authorisation code."}}></SchemaItem><SchemaItem collapsible={false} name={"authorisationCode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"OAuth 2.0 authorisation code issued for the Authorization Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"preAuthorisedCode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Pre-authorised code issued for the OID4VCI Pre-Authorized Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"acceptanceToken"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Acceptance token that the holder uses to poll the OID4VCI Deferred Credential Endpoint."}}></SchemaItem><SchemaItem collapsible={false} name={"codeChallenge"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"PKCE code challenge that the wallet sent in the Authorization Request, as defined in RFC 7636."}}></SchemaItem><SchemaItem collapsible={false} name={"codeChallengeMethod"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"PKCE code challenge method, for example `S256`."}}></SchemaItem><SchemaItem collapsible={false} name={"redirectUri"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Redirect URI that the wallet registered for the Authorization Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"clientId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Client identifier of the holder's wallet, typically a DID or URL. Provided during the OID4VCI Token Request."}}></SchemaItem><SchemaItem collapsible={false} name={"did"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Decentralized Identifier of the issuer that signs the credential."}}></SchemaItem><SchemaItem collapsible={false} name={"userPin"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Transaction code (tx_code) for the Pre-Authorized Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Unix timestamp (in seconds) when this exchange record was created.","example":1750000000}}></SchemaItem><SchemaItem collapsible={false} name={"updatedAt"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Unix timestamp (in seconds) when this exchange record was last modified. The list operation sorts on this field.","example":1750000600}}></SchemaItem><SchemaItem collapsible={false} name={"limitedDisclosure"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the issuer makes the data agreement attributes selectively disclosable in the issued credential."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credential</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The credential payload being issued. Contains `type` and `credentialSubject` for W3C VC (JWT) format, or `vct`/`doctype` and `claims` for IETF SD-JWT VC / ISO 18013-5 mDoc/mDL formats.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"The credential payload being issued. Contains `type` and `credentialSubject` for W3C VC (JWT) format, or `vct`/`doctype` and `claims` for IETF SD-JWT VC / ISO 18013-5 mDoc/mDL formats."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>disclosureMapping</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Selective disclosure mapping for IETF SD-JWT VC credentials. Each entry maps a claim path to its disclosure setting.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Selective disclosure mapping for IETF SD-JWT VC credentials. Each entry maps a claim path to its disclosure setting."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"credentialLabel"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Label of the credential definition or data agreement that this issuance uses."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential definition that this issuance uses."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialDefinitionUri"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL of an external credential definition that this issuance uses."}}></SchemaItem><SchemaItem collapsible={false} name={"presentationDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of a presentation definition required for dynamic credential requests."}}></SchemaItem><SchemaItem collapsible={false} name={"presentationExchangeId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the presentation exchange session linked to a dynamic credential request."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>holder</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Metadata about the credential holder obtained during the OID4VCI exchange. The issuer returns only the `name` field. The default value before the holder starts the flow is `Unknown`.

</div><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the holder, typically a DID or display name resolved from wallet client metadata.","example":"Unknown"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"credentialFormat"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `vc+sd-jwt`, `vp+sd-jwt`, `dc+sd-jwt`, `jwt_vc_json`, `jwt_vc`, `mso_mdoc`]"} schema={{"type":"string","description":"Credential format used for this issuance. `jwt_vc_json` is W3C VC (JWT). `dc+sd-jwt` is IETF SD-JWT VC. `mso_mdoc` is ISO 18013-5 mDoc/mDL. Records created by earlier releases can also hold the legacy values `vc+sd-jwt`, `vp+sd-jwt` and `jwt_vc`.","enum":["","vc+sd-jwt","vp+sd-jwt","dc+sd-jwt","jwt_vc_json","jwt_vc","mso_mdoc"],"example":"dc+sd-jwt"}}></SchemaItem><SchemaItem collapsible={false} name={"supportRevocation"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether revocation is enabled for the issued credential."}}></SchemaItem><SchemaItem collapsible={false} name={"revocationStatus"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `Operational`, `Revoked`, `Suspended`]"} schema={{"type":"string","description":"Current revocation status: `Operational` (valid), `Revoked` (permanently invalidated), `Suspended` (temporarily invalidated). The field is empty when the credential definition does not support revocation.","enum":["","Operational","Revoked","Suspended"]}}></SchemaItem><SchemaItem collapsible={false} name={"clientAssertion"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"OAuth 2.0 client assertion JWT provided by the holder's wallet for client authentication."}}></SchemaItem><SchemaItem collapsible={false} name={"clientAssertionType"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Type of the client assertion token, for example `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`."}}></SchemaItem><SchemaItem collapsible={false} name={"clientAssertionVerified"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the holder's client assertion JWT was verified."}}></SchemaItem><SchemaItem collapsible={false} name={"walletUnitAttestation"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Wallet Unit Attestation (WUA) credential presented by the holder, certifying the wallet instance is genuine."}}></SchemaItem><SchemaItem collapsible={false} name={"walletUnitAttestationPoP"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Proof of Possession for the Wallet Unit Attestation."}}></SchemaItem><SchemaItem collapsible={false} name={"walletUnitAttestationVerified"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the Wallet Unit Attestation was verified."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>walletUnitValidity</strong><span className={"openapi-schema__name"}> object[]</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Array of wallet unit validity records containing attestation and proof of possession verification status.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>attestation</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Wallet unit attestation verification status.

</div><SchemaItem collapsible={false} name={"isExpired"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the attestation has expired."}}></SchemaItem><SchemaItem collapsible={false} name={"isRevoked"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the attestation has been revoked."}}></SchemaItem><SchemaItem collapsible={false} name={"isVerified"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the attestation was verified."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>proofOfPossession</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Proof of possession verification status.

</div><SchemaItem collapsible={false} name={"isExpired"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the proof of possession has expired."}}></SchemaItem><SchemaItem collapsible={false} name={"isVerified"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the proof of possession was verified."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"validatedAt"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Unix timestamp (in seconds) when the wallet unit validity was validated."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={false} name={"credentialToken"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The signed credential token (JWT, SD-JWT, or mDoc) issued to the holder."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>cnf</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Confirmation claim (`cnf`) containing the holder's public key JWK for key binding.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Confirmation claim (`cnf`) containing the holder's public key JWK for key binding."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"jti"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"JWT Token Identifier (`jti`), unique identifier for the issued credential token."}}></SchemaItem><SchemaItem collapsible={false} name={"proof"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Proof JWT provided by the holder in the OID4VCI Credential Request, demonstrating key possession."}}></SchemaItem><SchemaItem collapsible={false} name={"proofType"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Type of the proof provided in the Credential Request (e.g. `jwt`)."}}></SchemaItem><SchemaItem collapsible={false} name={"proofVerified"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the issuer verified the holder's proof of key possession."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>decodedWalletUnitAttestation</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Decoded payload of the holder's Wallet Unit Attestation credential.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Decoded payload of the holder's Wallet Unit Attestation credential."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"idToken"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"OpenID Connect ID Token shared by the holder during the issuance flow."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>idTokenDecoded</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Decoded payload of the holder's OpenID Connect ID Token.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Decoded payload of the holder's OpenID Connect ID Token."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"idTokenVerified"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the holder's OpenID Connect ID Token was verified."}}></SchemaItem><SchemaItem collapsible={false} name={"issuanceDeniedReason"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Human-readable reason why the issuer denied the credential issuance request."}}></SchemaItem><SchemaItem collapsible={false} name={"expiredCredentialTokens"} required={true} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"Array of previously issued credential tokens that have expired."}}></SchemaItem><SchemaItem collapsible={false} name={"expiredCredentials"} required={true} schemaName={"object[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Array of decoded expired credential payloads."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>transactionData</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Transaction data bound to this issuance, as defined in the OpenID4VP transaction data extension. This is the only field that the issuer leaves out when it has no value.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Transaction data bound to this issuance, as defined in the OpenID4VP transaction data extension. This is the only field that the issuer leaves out when it has no value."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credentialResponseEncryption</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Encryption parameters that the wallet requests for the OID4VCI Credential Response. The field is `null` when the wallet asks for a plain response.

</div><SchemaItem collapsible={false} name={"alg"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"JWE key management algorithm, for example `ECDH-ES`."}}></SchemaItem><SchemaItem collapsible={false} name={"enc"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"JWE content encryption algorithm, for example `A128GCM`."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>jwk</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Public JSON Web Key that the issuer uses to encrypt the Credential Response.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Public JSON Web Key that the issuer uses to encrypt the Credential Response."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Encryption parameters that the wallet requests for the OID4VCI Credential Response. The field is `null` when the wallet asks for a plain response.","properties":{"alg":{"type":"string","description":"JWE key management algorithm, for example `ECDH-ES`."},"enc":{"type":"string","description":"JWE content encryption algorithm, for example `A128GCM`."},"jwk":{"type":"object","additionalProperties":true,"description":"Public JSON Web Key that the issuer uses to encrypt the Credential Response."}}}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>issuerTrustServiceProvider</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Trust service provider record of the issuer, resolved from the trust list.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Trust service provider record of the issuer, resolved from the trust list."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>holderTrustServiceProvider</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Trust service provider record of the holder, resolved from the trust list.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Trust service provider record of the holder, resolved from the trust list."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"individualId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the individual recipient the credential offer was sent to."}}></SchemaItem><SchemaItem collapsible={false} name={"mapperId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Mapper identifier linking the credential offer to an external individual record."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialResponseInterval"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Minimum polling interval (in seconds) for the OID4VCI Deferred Credential Endpoint."}}></SchemaItem><SchemaItem collapsible={false} name={"signatureStamp"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the issuer adds a visible signature stamp to the issued document."}}></SchemaItem><SchemaItem collapsible={false} name={"signatureCoordinate"} required={true} schemaName={"integer[]"} qualifierMessage={"**Possible values:** `>= 4`, `<= 4`"} schema={{"type":"array","description":"Position of the signature stamp on the document page, given as four pixel coordinates.","items":{"type":"integer"},"minItems":4,"maxItems":4}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"credentialHistory\": {\n    \"id\": \"3a1f0c62-8f9a-4a17-9a4a-2f0f1c9d6a11\",\n    \"CredentialExchangeId\": \"3a1f0c62-8f9a-4a17-9a4a-2f0f1c9d6a11\",\n    \"credentialExchangeId\": \"3a1f0c62-8f9a-4a17-9a4a-2f0f1c9d6a11\",\n    \"organisationId\": \"string\",\n    \"openIdOrganisationId\": \"string\",\n    \"dataAgreementId\": \"string\",\n    \"dataAttributeValues\": [\n      {\n        \"name\": \"string\",\n        \"value\": \"string\",\n        \"limitedDisclosure\": true\n      }\n    ],\n    \"isAccessed\": true,\n    \"isTokenAccessed\": true,\n    \"issuanceMode\": \"\",\n    \"isPreAuthorised\": true,\n    \"credentialOffer\": \"openid-credential-offer://?credential_offer_uri=https://api.igrant.io/...\",\n    \"credentialOfferEndpoint\": \"string\",\n    \"credentialStatus\": \"\",\n    \"status\": \"\",\n    \"issuerState\": \"string\",\n    \"authorisationRequestState\": \"string\",\n    \"idTokenRequestState\": \"string\",\n    \"idTokenRequest\": \"string\",\n    \"authorisationCodeState\": \"string\",\n    \"authorisationCode\": \"string\",\n    \"preAuthorisedCode\": \"string\",\n    \"acceptanceToken\": \"string\",\n    \"codeChallenge\": \"string\",\n    \"codeChallengeMethod\": \"string\",\n    \"redirectUri\": \"string\",\n    \"clientId\": \"string\",\n    \"did\": \"string\",\n    \"userPin\": \"string\",\n    \"createdAt\": 1750000000,\n    \"updatedAt\": 1750000600,\n    \"limitedDisclosure\": true,\n    \"credential\": {},\n    \"disclosureMapping\": {},\n    \"credentialLabel\": \"string\",\n    \"credentialDefinitionId\": \"string\",\n    \"credentialDefinitionUri\": \"string\",\n    \"presentationDefinitionId\": \"string\",\n    \"presentationExchangeId\": \"string\",\n    \"holder\": {\n      \"name\": \"Unknown\"\n    },\n    \"credentialFormat\": \"dc+sd-jwt\",\n    \"supportRevocation\": true,\n    \"revocationStatus\": \"\",\n    \"clientAssertion\": \"string\",\n    \"clientAssertionType\": \"string\",\n    \"clientAssertionVerified\": true,\n    \"walletUnitAttestation\": \"string\",\n    \"walletUnitAttestationPoP\": \"string\",\n    \"walletUnitAttestationVerified\": true,\n    \"walletUnitValidity\": [\n      {\n        \"attestation\": {\n          \"isExpired\": true,\n          \"isRevoked\": true,\n          \"isVerified\": true\n        },\n        \"proofOfPossession\": {\n          \"isExpired\": true,\n          \"isVerified\": true\n        },\n        \"validatedAt\": 0\n      }\n    ],\n    \"credentialToken\": \"string\",\n    \"cnf\": {},\n    \"jti\": \"string\",\n    \"proof\": \"string\",\n    \"proofType\": \"string\",\n    \"proofVerified\": true,\n    \"decodedWalletUnitAttestation\": {},\n    \"idToken\": \"string\",\n    \"idTokenDecoded\": {},\n    \"idTokenVerified\": true,\n    \"issuanceDeniedReason\": \"string\",\n    \"expiredCredentialTokens\": [\n      \"string\"\n    ],\n    \"expiredCredentials\": [\n      {}\n    ],\n    \"transactionData\": {},\n    \"credentialResponseEncryption\": {\n      \"alg\": \"string\",\n      \"enc\": \"string\",\n      \"jwk\": {}\n    },\n    \"issuerTrustServiceProvider\": {},\n    \"holderTrustServiceProvider\": {},\n    \"individualId\": \"string\",\n    \"mapperId\": \"string\",\n    \"credentialResponseInterval\": 0,\n    \"signatureStamp\": true,\n    \"signatureCoordinate\": [\n      0\n    ]\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

The request is invalid. The issuer returns this status when no record matches `credentialExchangeId`, when `revocationStatus` is missing, or when the credential definition does not support revocation.

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

Unauthorized

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Internal server error

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      