---
id: config-list-digital-wallet-open-id-credential
title: "List credential"
description: "Lists all credentials stored in the holder's wallet with pagination support. The wallet sorts the records by the last update time and leaves out the credentials that you deleted. Use the query parameters to filter the list by status, credential type, expiry, or a search term. The wallet replaces a value that it cannot read with the default value and does not refuse the request."
sidebar_label: "List credential"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get 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"}>List credential</h1>

<MethodEndpoint method={"get"} path={"/v2/config/digital-wallet/openid/sdjwt/credentials"}></MethodEndpoint>



Lists all credentials stored in the holder's wallet with pagination support. The wallet sorts the records by the last update time and leaves out the credentials that you deleted. Use the query parameters to filter the list by status, credential type, expiry, or a search term. The wallet replaces a value that it cannot read with the default value and does not refuse the request.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Query Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"Number of records to skip for pagination. A negative or unreadable value falls back to `0`.","in":"query","name":"offset","required":false,"schema":{"type":"integer","default":0,"minimum":0}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"limit","in":"query","description":"Maximum number of records to return per page.","required":false,"schema":{"type":"integer","default":10}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"expired","in":"query","description":"Filter credentials by expiry status. When true, returns expired credentials; when false, returns active credentials.","required":false,"schema":{"type":"boolean"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"Search term to filter results by","in":"query","name":"search","required":false,"schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"Sort order for the returned records (ascending or descending).","in":"query","name":"sortOrder","required":false,"schema":{"type":"string","enum":["desc","asc"],"default":"desc"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"credentialStatus","in":"query","description":"Filter the list by the status of the credential in the wallet. The wallet matches the value exactly. A stored credential normally holds one of the three values `credential_pending`, `credential_acked` or `credential_accepted`.","required":false,"schema":{"type":"string","enum":["offer_sent","offer_received","token_issued","credential_issued","credential_pending","credential_acked","credential_accepted","credential_deleted","issuance_denied"]},"example":"credential_acked"}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"vct","in":"query","description":"Filter the list by the Verifiable Credential Type (`vct`) of an IETF SD-JWT VC credential.","required":false,"schema":{"type":"string"},"example":"urn:eu.europa.ec.eudi:pid:1"}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"doctype","in":"query","description":"Filter the list by the document type (`doctype`) of an ISO 18013-5 mDoc credential.","required":false,"schema":{"type":"string"},"example":"org.iso.18013.5.1.mDL"}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"type","in":"query","description":"Filter the list by one credential type in the credential definition of a W3C VC credential.","required":false,"schema":{"type":"string"},"example":"VerifiableAttestation"}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

The wallet returned the credentials.

</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"}>credential</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Credential records for the current page. The array is empty if the wallet holds no credential that matches the filters.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier of the credential record. This field holds the same value as `credentialId`."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for the credential stored in the holder's wallet."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialExchangeId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential exchange that produced this credential."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialToken"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The raw JWT, SD-JWT, or mDoc token of the issued Verifiable Credential as received from the issuer's OpenID for Verifiable Credentials Issuance (OID4VCI) Credential Endpoint."}}></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"}}>

Decoded payload of the Verifiable Credential token. Contains the parsed claims from the W3C VC (JWT), IETF SD-JWT VC, or ISO 18013-5 mDoc/mDL credential. The field is `null` while the wallet waits for the credential.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Decoded payload of the Verifiable Credential token. Contains the parsed claims from the W3C VC (JWT), IETF SD-JWT VC, or ISO 18013-5 mDoc/mDL credential. The field is `null` while the wallet waits for the credential."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"credentialStatus"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `offer_sent`, `offer_received`, `token_issued`, `credential_issued`, `credential_pending`, `credential_acked`, `credential_accepted`, `credential_deleted`, `issuance_denied`]"} schema={{"type":"string","enum":["","offer_sent","offer_received","token_issued","credential_issued","credential_pending","credential_acked","credential_accepted","credential_deleted","issuance_denied"],"description":"Current status of the credential in the holder's wallet. A stored credential normally holds one of three values. `credential_pending` means the credential needs more steps, for example a transaction code or a call to the OID4VCI Deferred Credential Endpoint. `credential_acked` means the wallet received and stored the credential. `credential_accepted` means the holder accepted the credential. The other values come from the issuance lifecycle and can appear while the exchange is in progress."}}></SchemaItem><SchemaItem collapsible={false} name={"acceptanceToken"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Acceptance token (transaction_id in OID4VCI) returned for deferred issuance. The wallet uses this to poll the Deferred Credential Endpoint."}}></SchemaItem><SchemaItem collapsible={false} name={"deferredEndpoint"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL of the OID4VCI Deferred Credential Endpoint. Present for deferred issuance."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialIssuer"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Credential Issuer Identifier as defined in OID4VCI. Typically the issuer's base URL used to resolve the Credential Issuer Metadata."}}></SchemaItem><SchemaItem collapsible={false} name={"preAuthorisedCode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Pre-authorized code from the credential offer. Present for the OID4VCI Pre-Authorized Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"userPin"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Transaction code (tx_code) required for the OID4VCI 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 credential 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 credential record was last modified.","example":1750000600}}></SchemaItem><SchemaItem collapsible={false} name={"openIdOrganisationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier of the OpenID organisation (digital wallet deployment) that holds this credential."}}></SchemaItem><SchemaItem collapsible={false} name={"organisationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier of the organisation that holds this credential."}}></SchemaItem><SchemaItem collapsible={false} name={"userPinRequired"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the holder must provide a transaction code (tx_code) to complete the OID4VCI Pre-Authorized Code Flow Token Request."}}></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","enum":["","vc+sd-jwt","vp+sd-jwt","dc+sd-jwt","jwt_vc_json","jwt_vc","mso_mdoc"],"description":"Format of the received credential as defined in OID4VCI. `jwt_vc_json` and `jwt_vc` are W3C VC (JWT) formats, `vc+sd-jwt`, `vp+sd-jwt`, and `dc+sd-jwt` are IETF SD-JWT VC formats, and `mso_mdoc` is the ISO 18013-5 mDoc/mDL format. The field is empty until the wallet knows the format."}}></SchemaItem><SchemaItem collapsible={false} name={"presentationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier linking this credential to a presentation exchange, if received as part of a dynamic issuance flow involving OpenID for Verifiable Presentation (OpenID4VP)."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>issuer</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"}}>

Display information about the credential issuer, resolved from the Credential Issuer Metadata of the issuer. The wallet always returns the five fields, with empty strings when it cannot resolve the metadata.

</div><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Display name of the issuer."}}></SchemaItem><SchemaItem collapsible={false} name={"location"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Location of the issuer."}}></SchemaItem><SchemaItem collapsible={false} name={"cover"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL of the issuer's cover image."}}></SchemaItem><SchemaItem collapsible={false} name={"logo"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL of the issuer's logo image."}}></SchemaItem><SchemaItem collapsible={false} name={"description"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Description of the issuer."}}></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"}>credentialConfigurations</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"}}>

Credential configuration from the Credential Issuer Metadata of the issuer that applies to this credential. The keys follow the OID4VCI metadata format, for example `vct`, `doctype`, `credential_definition` and `display`.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Credential configuration from the Credential Issuer Metadata of the issuer that applies to this credential. The keys follow the OID4VCI metadata format, for example `vct`, `doctype`, `credential_definition` and `display`."}} 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"}>txCode</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"}}>

Transaction code (`tx_code`) parameters taken from the OID4VCI Credential Offer. The keys use snake case because they mirror the OID4VCI wire format. The wallet returns `{"length": 0, "input_mode": "", "description": ""}` when the offer has no transaction code.

</div><SchemaItem collapsible={false} name={"length"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Number of characters that the transaction code has. The value is `0` when the offer has no transaction code.","example":4}}></SchemaItem><SchemaItem collapsible={false} name={"input_mode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Input method for the transaction code, as defined in OID4VCI. `numeric` accepts digits only. `text` accepts alphanumeric characters. The wallet stores the value that the issuer sends and does not check it. The value is empty when the offer has no transaction code.","example":"numeric"}}></SchemaItem><SchemaItem collapsible={false} name={"description"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Instruction for the holder that explains how to get the transaction code."}}></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"}>authorizationDetails</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"}}>

Authorization details that the issuer returned in the OID4VCI Token Response. The field is `null` for the Pre-Authorized Code Flow.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"type"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Authorization detail type. The value is `openid_credential` for an OID4VCI credential issuance request.","example":"openid_credential"}}></SchemaItem><SchemaItem collapsible={false} name={"credential_configuration_id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential configuration in the Credential Issuer Metadata of the issuer.","example":"PhotoIdCredential"}}></SchemaItem><SchemaItem collapsible={false} name={"credential_identifiers"} required={true} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"Credential identifiers that the issuer returned in the OID4VCI Token Response. The wallet sends one of these values in the Credential Request."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={false} name={"revocationStatus"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `Operational`, `Revoked`, `Suspended`]"} schema={{"type":"string","description":"Current revocation status. `Operational` means valid, `Revoked` means permanently invalidated, `Suspended` means temporarily invalidated. The field is empty when the wallet never checked the status, or when the credential does not support revocation.","enum":["","Operational","Revoked","Suspended"]}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidAttestation"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Legal Person Identification (LPID) attestation credential of the issuer, used to verify the issuer's legal identity in the EUDI Wallet ecosystem."}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidAttestationPop"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Proof of Possession (PoP) for the issuer's LPID attestation, proving the issuer controls the associated private key."}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidVerified"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the issuer's LPID attestation has been successfully verified."}}></SchemaItem><SchemaItem collapsible={false} name={"autoPresent"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the wallet automatically presents this credential when a matching OpenID4VP Authorization Request is received."}}></SchemaItem><SchemaItem collapsible={false} name={"version"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `draft_13`, `draft_15`, `draft_17`, `version_01`]"} schema={{"type":"string","description":"Version of the OID4VCI issuance protocol used for this credential. The default is `draft_13`.","enum":["","draft_13","draft_15","draft_17","version_01"]}}></SchemaItem><SchemaItem collapsible={false} name={"kid"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Key Identifier (kid) of the cryptographic key used to sign or bind the credential."}}></SchemaItem><SchemaItem collapsible={false} name={"trustAnchor"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `did:key`, `x509`]"} schema={{"type":"string","description":"DID method or key type used as the trust anchor for verifying the issuer's identity. The default is `did:key`.","enum":["","did:key","x509"]}}></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={false} name={"requiresEncryption"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the issuer requires encrypted OID4VCI Credential Responses for this credential."}}></SchemaItem><SchemaItem collapsible={false} name={"isVerifiedWithTrustList"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the issuer of this credential was verified against a configured trust list."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>trustServiceProvider</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"}}>

Details of the trust service provider entry that matched the issuer during trust list verification. The field is `null` when the wallet found no match.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Details of the trust service provider entry that matched the issuer during trust list verification. The field is `null` when the wallet found no match."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"oAuthFlow"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `frontchannel`, `backchannel`]"} schema={{"type":"string","description":"OAuth 2.0 flow used for credential issuance. `frontchannel` uses browser redirects, `backchannel` uses server-to-server communication. The field is empty for the Pre-Authorized Code Flow.","enum":["","frontchannel","backchannel"]}}></SchemaItem><SchemaItem collapsible={false} name={"authorizationRequest"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"OAuth 2.0 authorization request URL for the Authorization Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"isWalletUnitAttestation"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, this credential is a Wallet Unit Attestation (WUA) and not a regular credential. Reissuance requests are not applicable to it."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></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"}>pagination</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"currentPage"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Current page number","example":1}}></SchemaItem><SchemaItem collapsible={false} name={"totalItems"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Total number of items available","example":25}}></SchemaItem><SchemaItem collapsible={false} name={"totalPages"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Total number of pages based on limit","example":3}}></SchemaItem><SchemaItem collapsible={false} name={"limit"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Number of items per page","example":10}}></SchemaItem><SchemaItem collapsible={false} name={"hasPrevious"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates if there's a previous page","example":false}}></SchemaItem><SchemaItem collapsible={false} name={"hasNext"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates if there's a next page","example":true}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"credential\": [\n    {\n      \"id\": \"string\",\n      \"credentialId\": \"string\",\n      \"credentialExchangeId\": \"string\",\n      \"credentialToken\": \"string\",\n      \"credential\": {},\n      \"credentialStatus\": \"\",\n      \"acceptanceToken\": \"string\",\n      \"deferredEndpoint\": \"string\",\n      \"credentialIssuer\": \"string\",\n      \"preAuthorisedCode\": \"string\",\n      \"userPin\": \"string\",\n      \"createdAt\": 1750000000,\n      \"updatedAt\": 1750000600,\n      \"openIdOrganisationId\": \"string\",\n      \"organisationId\": \"string\",\n      \"userPinRequired\": true,\n      \"credentialFormat\": \"\",\n      \"presentationId\": \"string\",\n      \"issuer\": {\n        \"name\": \"string\",\n        \"location\": \"string\",\n        \"cover\": \"string\",\n        \"logo\": \"string\",\n        \"description\": \"string\"\n      },\n      \"credentialConfigurations\": {},\n      \"txCode\": {\n        \"length\": 4,\n        \"input_mode\": \"numeric\",\n        \"description\": \"string\"\n      },\n      \"authorizationDetails\": [\n        {\n          \"type\": \"openid_credential\",\n          \"credential_configuration_id\": \"PhotoIdCredential\",\n          \"credential_identifiers\": [\n            \"string\"\n          ]\n        }\n      ],\n      \"revocationStatus\": \"\",\n      \"legalPidAttestation\": \"string\",\n      \"legalPidAttestationPop\": \"string\",\n      \"legalPidVerified\": true,\n      \"autoPresent\": true,\n      \"version\": \"\",\n      \"kid\": \"string\",\n      \"trustAnchor\": \"\",\n      \"expiredCredentialTokens\": [\n        \"string\"\n      ],\n      \"expiredCredentials\": [\n        {}\n      ],\n      \"requiresEncryption\": true,\n      \"isVerifiedWithTrustList\": true,\n      \"trustServiceProvider\": {},\n      \"oAuthFlow\": \"\",\n      \"authorizationRequest\": \"string\",\n      \"isWalletUnitAttestation\": true\n    }\n  ],\n  \"pagination\": {\n    \"currentPage\": 1,\n    \"totalItems\": 25,\n    \"totalPages\": 3,\n    \"limit\": 10,\n    \"hasPrevious\": false,\n    \"hasNext\": true\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

The organisation is not valid or a query parameter has a wrong value. Holder operations are also not available for a sandbox organisation.

</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>
      