> For the complete documentation index, see [llms.txt](https://docs.meeco.me/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.meeco.me/openapi-docs/svx-api/verifiable-credential.md).

# Verifiable Credential

## Import credential

> Import an existing credential from a known format into a Wallet.\
> \
> Depending on how key binding is performed, the import process associates the credential with the given \`did\` and/or \`kid\` if managed by the wallet:\
> \- \`did\`: The DID used for binding a DID to the credential.\
> \- \`kid\`: The key ID used for binding the key to the credential.\
> \
> If the \`did\` or \`kid\` is not managed by the wallet, fields are ignored. They can later be updated with \`PATCH /wallets/{walletId}/credentials/{credentialId}\`.<br>

```json
{"openapi":"3.1.0","info":{"title":"SVX Wallet API","version":"4.0.1"},"servers":[{"url":"https://zyfla-wallet-sandbox.meeco.cloud","description":"SVX Wallet deployment (relative)"}],"security":[{},{"bearerAuth":[]},{"mutualTLS":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"mutualTLS":{"type":"mutualTLS"}},"schemas":{"CredentialImportRequestModelDto":{"properties":{"credential":{"description":"The encoded string representation of the credential to be imported.\n\nFor `jwt_vc_json` and `dc+sd-jwt` credential formats, the string is expected to be a compact JWT.\n\nFor `mso_mdoc` the expected string value is the base64url-encoded representation of the CBOR-encoded IssuerSigned structure, as defined in [ISO.18013-5]\nSupports the following docTypes:\n  - org.iso.18013.5.mDL\n","type":"string"},"format":{"description":"Credential format identifier. When not provided, credential will be assumed to be a compact JWT.","enum":["dc+sd-jwt","jwt_vc_json","vc+sd-jwt","mso_mdoc"],"type":"string"},"meta":{"description":"Additional information about the credential to be imported.","properties":{"did":{"description":"A DID managed by the wallet used to perform credential key binding.","type":"string"},"kid":{"description":"An ID for a key managed by the wallet used to perform credential key binding.","type":"string"}}}},"required":["credential"],"type":"object"},"CredentialResponseDto":{"properties":{"credential":{"$ref":"#/components/schemas/CredentialResponseModelDto"}},"required":["credential"],"type":"object"},"CredentialResponseModelDto":{"properties":{"created_at":{"description":"The date and time when the credential was added to a Wallet.","format":"date-time","type":"string"},"credential":{"description":"The encoded string representation of the credential.","type":"string"},"format":{"description":"Format of the credential.","enum":["dc+sd-jwt","vc+sd-jwt","jwt_vc_json","mso_mdoc"],"type":"string"},"id":{"description":"A unique identifier of the credential.","type":"string"},"meta":{"properties":{"claims":{"$ref":"#/components/schemas/ClaimObject","description":"Object containing a list of name/value pairs. Each pair is a claim about the subject in the credential.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee Appendix A.2.2 in OpenID for Verifiable Credential Issuance for more information.\n"},"order":{"description":"Array designating the order that claims or credential_definition.credentialSubject attribute should be displayed.","items":{"type":"string"},"type":"array"},"credential_definition":{"$ref":"#/components/schemas/CredentialDefinition","description":"Object containing the detailed description of the credential type of the W3C VC Data Model.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee Appendix A.1.1.2 in OpenID for Verifiable Credential Issuance for more information.\n"},"did":{"description":"A DID managed by the wallet used to perform credential key binding.","type":"string"},"display":{"$ref":"#/components/schemas/CredentialDisplayObject","description":"Array of objects, where each object contains information on how to display the credential.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee section 11.2.3 in OpenID for Verifiable Credential Issuance for more information.\n"},"issuer_display":{"$ref":"#/components/schemas/IssuerDisplayObject","description":"Array of objects, where each object contains issuers name for a different locale.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee section 11.2.3 in OpenID for Verifiable Credential Issuance for more information.\n"},"kid":{"description":"An ID for a key managed by the wallet used to perform credential key binding.","type":"string"},"vct":{"description":"The Credential type of the SD-JWT VC.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee Appendix A.2.2 in OpenID for Verifiable Credential Issuance for more information.\n","type":"string"},"doctype":{"description":"The docType of the first document in the mso_mdoc","type":"string"}},"type":"object"}},"required":["id","format","credential","meta","created_at"],"type":"object"},"ClaimObject":{"type":"object","additionalProperties":{"properties":{"display":{"type":"array","items":{"$ref":"#/components/schemas/DisplayClaimObject"}},"mandatory":{"type":"boolean"}}}},"DisplayClaimObject":{"properties":{"locale":{"pattern":"^[a-zA-Z]{2,3}(-[a-zA-Z]{2})?(-[a-zA-Z]{2,3})?$","type":"string"},"name":{"type":"string"}},"type":"object"},"CredentialDefinition":{"properties":{"credentialSubject":{"additionalProperties":true,"description":"Object containing a list of name/value pairs, where each name identifies a claim offered in the Credential.","type":"object"},"type":{"description":"Array designating the types a certain Credential type supports, according to VC Data Model, Section 4.3.","items":{"type":"string"},"type":"array"}},"required":["type"],"type":"object"},"CredentialDisplayObject":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"locale":{"pattern":"^[a-zA-Z]{2,3}(-[a-zA-Z]{2})?(-[a-zA-Z]{2,3})?$","type":"string"},"background_color":{"type":"string"},"text_color":{"type":"string"},"logo":{"properties":{"alt_text":{"type":"string"},"uri":{"format":"uri","type":"string"}},"type":"object"}}}},"IssuerDisplayObject":{"type":"array","items":{"type":"object","properties":{"locale":{"pattern":"^[a-zA-Z]{2,3}(-[a-zA-Z]{2})?(-[a-zA-Z]{2,3})?$","type":"string"},"name":{"type":"string"}}}},"InvalidPathParamError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_path_param"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"InvalidCredentialDataError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_credential_data"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"WalletNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["wallet_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"}}},"paths":{"/wallets/{walletId}/credentials/import":{"post":{"summary":"Import credential","description":"Import an existing credential from a known format into a Wallet.\n\nDepending on how key binding is performed, the import process associates the credential with the given `did` and/or `kid` if managed by the wallet:\n- `did`: The DID used for binding a DID to the credential.\n- `kid`: The key ID used for binding the key to the credential.\n\nIf the `did` or `kid` is not managed by the wallet, fields are ignored. They can later be updated with `PATCH /wallets/{walletId}/credentials/{credentialId}`.\n","operationId":"CredentialsController_import","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialImportRequestModelDto"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialResponseDto"}}},"description":"Credential imported"},"400":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InvalidPathParamError"},{"$ref":"#/components/schemas/InvalidCredentialDataError"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletNotFoundError"}}},"description":""}},"tags":["Verifiable Credential"]}}}}
```

## Get credentials

> Fetch a paginated list of credentials stored inside the Wallet.<br>

```json
{"openapi":"3.1.0","info":{"title":"SVX Wallet API","version":"4.0.1"},"servers":[{"url":"https://zyfla-wallet-sandbox.meeco.cloud","description":"SVX Wallet deployment (relative)"}],"security":[{},{"bearerAuth":[]},{"mutualTLS":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"mutualTLS":{"type":"mutualTLS"}},"schemas":{"CredentialsResponseDto":{"properties":{"credentials":{"items":{"$ref":"#/components/schemas/CredentialResponseModelDto"},"type":"array"},"meta":{"allOf":[{"$ref":"#/components/schemas/Meta"}]}},"required":["credentials","meta"],"type":"object"},"CredentialResponseModelDto":{"properties":{"created_at":{"description":"The date and time when the credential was added to a Wallet.","format":"date-time","type":"string"},"credential":{"description":"The encoded string representation of the credential.","type":"string"},"format":{"description":"Format of the credential.","enum":["dc+sd-jwt","vc+sd-jwt","jwt_vc_json","mso_mdoc"],"type":"string"},"id":{"description":"A unique identifier of the credential.","type":"string"},"meta":{"properties":{"claims":{"$ref":"#/components/schemas/ClaimObject","description":"Object containing a list of name/value pairs. Each pair is a claim about the subject in the credential.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee Appendix A.2.2 in OpenID for Verifiable Credential Issuance for more information.\n"},"order":{"description":"Array designating the order that claims or credential_definition.credentialSubject attribute should be displayed.","items":{"type":"string"},"type":"array"},"credential_definition":{"$ref":"#/components/schemas/CredentialDefinition","description":"Object containing the detailed description of the credential type of the W3C VC Data Model.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee Appendix A.1.1.2 in OpenID for Verifiable Credential Issuance for more information.\n"},"did":{"description":"A DID managed by the wallet used to perform credential key binding.","type":"string"},"display":{"$ref":"#/components/schemas/CredentialDisplayObject","description":"Array of objects, where each object contains information on how to display the credential.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee section 11.2.3 in OpenID for Verifiable Credential Issuance for more information.\n"},"issuer_display":{"$ref":"#/components/schemas/IssuerDisplayObject","description":"Array of objects, where each object contains issuers name for a different locale.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee section 11.2.3 in OpenID for Verifiable Credential Issuance for more information.\n"},"kid":{"description":"An ID for a key managed by the wallet used to perform credential key binding.","type":"string"},"vct":{"description":"The Credential type of the SD-JWT VC.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee Appendix A.2.2 in OpenID for Verifiable Credential Issuance for more information.\n","type":"string"},"doctype":{"description":"The docType of the first document in the mso_mdoc","type":"string"}},"type":"object"}},"required":["id","format","credential","meta","created_at"],"type":"object"},"ClaimObject":{"type":"object","additionalProperties":{"properties":{"display":{"type":"array","items":{"$ref":"#/components/schemas/DisplayClaimObject"}},"mandatory":{"type":"boolean"}}}},"DisplayClaimObject":{"properties":{"locale":{"pattern":"^[a-zA-Z]{2,3}(-[a-zA-Z]{2})?(-[a-zA-Z]{2,3})?$","type":"string"},"name":{"type":"string"}},"type":"object"},"CredentialDefinition":{"properties":{"credentialSubject":{"additionalProperties":true,"description":"Object containing a list of name/value pairs, where each name identifies a claim offered in the Credential.","type":"object"},"type":{"description":"Array designating the types a certain Credential type supports, according to VC Data Model, Section 4.3.","items":{"type":"string"},"type":"array"}},"required":["type"],"type":"object"},"CredentialDisplayObject":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"locale":{"pattern":"^[a-zA-Z]{2,3}(-[a-zA-Z]{2})?(-[a-zA-Z]{2,3})?$","type":"string"},"background_color":{"type":"string"},"text_color":{"type":"string"},"logo":{"properties":{"alt_text":{"type":"string"},"uri":{"format":"uri","type":"string"}},"type":"object"}}}},"IssuerDisplayObject":{"type":"array","items":{"type":"object","properties":{"locale":{"pattern":"^[a-zA-Z]{2,3}(-[a-zA-Z]{2})?(-[a-zA-Z]{2,3})?$","type":"string"},"name":{"type":"string"}}}},"Meta":{"type":"object","properties":{"order_by":{"type":"string"},"order":{"type":"string","enum":["ASC","DESC"]},"order_from_params":{"type":"boolean"},"per_page":{"type":"number"},"per_page_from_params":{"type":"boolean"},"records_count":{"type":"number"},"page":{"type":"number"},"page_count":{"type":"number"}},"required":["order_by","order","order_from_params","per_page","per_page_from_params","records_count","page","page_count"]},"InvalidPathParamError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_path_param"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"InvalidOrderFilterValueError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_order_filter_value"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"InvalidPerPageFilterValueError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_per_page_filter_value"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"WalletNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["wallet_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"LoadCredentialsError":{"properties":{"error":{"description":"Unique error identifier","enum":["load_credentials_error"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"InternalServerError":{"properties":{"error":{"description":"Unique error identifier","enum":["internal_server_error"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"}}},"paths":{"/wallets/{walletId}/credentials":{"get":{"summary":"Get credentials","description":"Fetch a paginated list of credentials stored inside the Wallet.\n","operationId":"CredentialsController_findAll","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}},{"name":"order","required":false,"in":"query","description":"Issuance state response order. Default ordering: `DESC` (Supported: `ASC`, `DESC`)","schema":{"enum":["ASC","DESC"],"type":"string"}},{"name":"order_by","required":false,"in":"query","description":"Order Issuance state by an attribute, defaults to: `created_at` (Supported: `created_at`)","schema":{"enum":["created_at"],"type":"string"}},{"name":"per_page","required":false,"in":"query","description":"Number of records per page","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"page","required":false,"in":"query","description":"Page number (starting from 1)","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialsResponseDto"}}},"description":"Wallet credentials successfully loaded"},"400":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InvalidPathParamError"},{"$ref":"#/components/schemas/InvalidOrderFilterValueError"},{"$ref":"#/components/schemas/InvalidPerPageFilterValueError"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletNotFoundError"}}},"description":""},"500":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/LoadCredentialsError"},{"$ref":"#/components/schemas/InternalServerError"}]}}},"description":""}},"tags":["Verifiable Credential"]}}}}
```

## Get credential by ID

> Fetch credential information by ID stored inside the Wallet<br>

```json
{"openapi":"3.1.0","info":{"title":"SVX Wallet API","version":"4.0.1"},"servers":[{"url":"https://zyfla-wallet-sandbox.meeco.cloud","description":"SVX Wallet deployment (relative)"}],"security":[{},{"bearerAuth":[]},{"mutualTLS":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"mutualTLS":{"type":"mutualTLS"}},"schemas":{"CredentialResponseDto":{"properties":{"credential":{"$ref":"#/components/schemas/CredentialResponseModelDto"}},"required":["credential"],"type":"object"},"CredentialResponseModelDto":{"properties":{"created_at":{"description":"The date and time when the credential was added to a Wallet.","format":"date-time","type":"string"},"credential":{"description":"The encoded string representation of the credential.","type":"string"},"format":{"description":"Format of the credential.","enum":["dc+sd-jwt","vc+sd-jwt","jwt_vc_json","mso_mdoc"],"type":"string"},"id":{"description":"A unique identifier of the credential.","type":"string"},"meta":{"properties":{"claims":{"$ref":"#/components/schemas/ClaimObject","description":"Object containing a list of name/value pairs. Each pair is a claim about the subject in the credential.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee Appendix A.2.2 in OpenID for Verifiable Credential Issuance for more information.\n"},"order":{"description":"Array designating the order that claims or credential_definition.credentialSubject attribute should be displayed.","items":{"type":"string"},"type":"array"},"credential_definition":{"$ref":"#/components/schemas/CredentialDefinition","description":"Object containing the detailed description of the credential type of the W3C VC Data Model.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee Appendix A.1.1.2 in OpenID for Verifiable Credential Issuance for more information.\n"},"did":{"description":"A DID managed by the wallet used to perform credential key binding.","type":"string"},"display":{"$ref":"#/components/schemas/CredentialDisplayObject","description":"Array of objects, where each object contains information on how to display the credential.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee section 11.2.3 in OpenID for Verifiable Credential Issuance for more information.\n"},"issuer_display":{"$ref":"#/components/schemas/IssuerDisplayObject","description":"Array of objects, where each object contains issuers name for a different locale.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee section 11.2.3 in OpenID for Verifiable Credential Issuance for more information.\n"},"kid":{"description":"An ID for a key managed by the wallet used to perform credential key binding.","type":"string"},"vct":{"description":"The Credential type of the SD-JWT VC.\n\nSnapshot from Credential Issuer Metadata taken at the time of issuance.\nSee Appendix A.2.2 in OpenID for Verifiable Credential Issuance for more information.\n","type":"string"},"doctype":{"description":"The docType of the first document in the mso_mdoc","type":"string"}},"type":"object"}},"required":["id","format","credential","meta","created_at"],"type":"object"},"ClaimObject":{"type":"object","additionalProperties":{"properties":{"display":{"type":"array","items":{"$ref":"#/components/schemas/DisplayClaimObject"}},"mandatory":{"type":"boolean"}}}},"DisplayClaimObject":{"properties":{"locale":{"pattern":"^[a-zA-Z]{2,3}(-[a-zA-Z]{2})?(-[a-zA-Z]{2,3})?$","type":"string"},"name":{"type":"string"}},"type":"object"},"CredentialDefinition":{"properties":{"credentialSubject":{"additionalProperties":true,"description":"Object containing a list of name/value pairs, where each name identifies a claim offered in the Credential.","type":"object"},"type":{"description":"Array designating the types a certain Credential type supports, according to VC Data Model, Section 4.3.","items":{"type":"string"},"type":"array"}},"required":["type"],"type":"object"},"CredentialDisplayObject":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"locale":{"pattern":"^[a-zA-Z]{2,3}(-[a-zA-Z]{2})?(-[a-zA-Z]{2,3})?$","type":"string"},"background_color":{"type":"string"},"text_color":{"type":"string"},"logo":{"properties":{"alt_text":{"type":"string"},"uri":{"format":"uri","type":"string"}},"type":"object"}}}},"IssuerDisplayObject":{"type":"array","items":{"type":"object","properties":{"locale":{"pattern":"^[a-zA-Z]{2,3}(-[a-zA-Z]{2})?(-[a-zA-Z]{2,3})?$","type":"string"},"name":{"type":"string"}}}},"InvalidPathParamError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_path_param"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"WalletNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["wallet_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"CredentialNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["credential_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"LoadCredentialError":{"properties":{"error":{"description":"Unique error identifier","enum":["load_credential_error"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"InternalServerError":{"properties":{"error":{"description":"Unique error identifier","enum":["internal_server_error"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"}}},"paths":{"/wallets/{walletId}/credentials/{vcId}":{"get":{"summary":"Get credential by ID","description":"Fetch credential information by ID stored inside the Wallet\n","operationId":"CredentialsController_findOne","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}},{"in":"path","name":"vcId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialResponseDto"}}},"description":"Wallet credential by ID successfully loaded"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidPathParamError"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/WalletNotFoundError"},{"$ref":"#/components/schemas/CredentialNotFoundError"}]}}},"description":""},"500":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/LoadCredentialError"},{"$ref":"#/components/schemas/InternalServerError"}]}}},"description":""}},"tags":["Verifiable Credential"]}}}}
```

## Delete credential by ID

> Deletes credential by ID stored inside the Wallet<br>

```json
{"openapi":"3.1.0","info":{"title":"SVX Wallet API","version":"4.0.1"},"servers":[{"url":"https://zyfla-wallet-sandbox.meeco.cloud","description":"SVX Wallet deployment (relative)"}],"security":[{},{"bearerAuth":[]},{"mutualTLS":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"mutualTLS":{"type":"mutualTLS"}},"schemas":{"InvalidPathParamError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_path_param"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"WalletNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["wallet_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"CredentialNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["credential_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"DeleteCredentialError":{"properties":{"error":{"description":"Unique error identifier","enum":["delete_credential_error"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"InternalServerError":{"properties":{"error":{"description":"Unique error identifier","enum":["internal_server_error"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"}}},"paths":{"/wallets/{walletId}/credentials/{vcId}":{"delete":{"summary":"Delete credential by ID","description":"Deletes credential by ID stored inside the Wallet\n","operationId":"CredentialsController_remove","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}},{"in":"path","name":"vcId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Wallet credential by ID successfuly removed"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidPathParamError"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/WalletNotFoundError"},{"$ref":"#/components/schemas/CredentialNotFoundError"}]}}},"description":""},"500":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DeleteCredentialError"},{"$ref":"#/components/schemas/InternalServerError"}]}}},"description":""}},"tags":["Verifiable Credential"]}}}}
```

## Patch credential by ID

> Patches credential stored inside a Wallet.\
> \
> Used to update \`did\` and \`kid\` fields in the meta data of the credential. Note that the \`did\` and \`kid\` need to reference an existing DID and Key Id.\
> This is used to associate an (existing) Key and/or DID controlled by the wallet with the credential to make it easier to reference that Key and/or DID when presenting credentials for example.<br>

```json
{"openapi":"3.1.0","info":{"title":"SVX Wallet API","version":"4.0.1"},"servers":[{"url":"https://zyfla-wallet-sandbox.meeco.cloud","description":"SVX Wallet deployment (relative)"}],"security":[{},{"bearerAuth":[]},{"mutualTLS":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"mutualTLS":{"type":"mutualTLS"}},"schemas":{"CredentialPatchRequestModelDto":{"properties":{"meta":{"description":"Additional information about the credential to be imported.","properties":{"did":{"description":"A DID managed by the wallet used to perform credential key binding.","type":"string"},"kid":{"description":"An ID for a key managed by the wallet used to perform credential key binding.","type":"string"}}}}},"WalletNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["wallet_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"CredentialNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["credential_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"KeyNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["key_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"DidNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["did_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"DidKidAssociationNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["did_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"PatchCredentialError":{"properties":{"error":{"description":"Unique error identifier","enum":["patch_credential_error"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"InternalServerError":{"properties":{"error":{"description":"Unique error identifier","enum":["internal_server_error"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"}}},"paths":{"/wallets/{walletId}/credentials/{vcId}":{"patch":{"summary":"Patch credential by ID","description":"Patches credential stored inside a Wallet.\n\nUsed to update `did` and `kid` fields in the meta data of the credential. Note that the `did` and `kid` need to reference an existing DID and Key Id.\nThis is used to associate an (existing) Key and/or DID controlled by the wallet with the credential to make it easier to reference that Key and/or DID when presenting credentials for example.\n","operationId":"CredentialsController_patch","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}},{"in":"path","name":"vcId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialPatchRequestModelDto"}}},"required":true},"responses":{"204":{"description":"Wallet credential successfully patched"},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/WalletNotFoundError"},{"$ref":"#/components/schemas/CredentialNotFoundError"},{"$ref":"#/components/schemas/KeyNotFoundError"},{"$ref":"#/components/schemas/DidNotFoundError"},{"$ref":"#/components/schemas/DidKidAssociationNotFoundError"}]}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PatchCredentialError"},{"$ref":"#/components/schemas/InternalServerError"}]}}},"description":""}},"tags":["Verifiable Credential"]}}}}
```

## Verify credential by ID

> Verify a credential by ID stored inside the Wallet. The verification process checks the validity of the credential and returns a list of errors and warnings if any.\
> \
> \*\*Checks performed:\*\*\
> \
> \- \`format\`.\
> \- \`signature\`.\
> \- \`expiration\` date is validated when the \`expirationDate\` attribute is present.\
> \- \`issued at\` date is validated when the \`iat\` attribute is present.\
> \- The \`dc+sd-jwt\` format also supports URL instead of DID as the value for the issuer attribute. URL will be used to construct .well-known endpoint to retrieve the public key.\
> \- Verifiable credential \`schema\` if present.\
> \- Verifiable credential \`revocation\` list status and its validity if present\
> \
> \
> &#x20; Credential schema and revocation status related checks are not considered critical and will be returned under \`warnings\` attribute. It is up for the client application to decide how these should be handled. All other failed checks will be served under \`errors\` attribute.\
> \
> \
> &#x20; \*\*Verification options\*\*\
> \
> &#x20; You can optionally specify checks for the provided credential. If specified, only these checks will run. \
> &#x20; By default, \`format\`, \`signature\`, \`expiration\` checks are mandatory and can not be taken out from checks list. No further checks will be performed if credential is imposible to parse.\
> &#x20; \
> &#x20; \`\`\`\
> &#x20; GET wallets/{walletId}/credentials/{vcId}/verify?checks=format,signature,expiration,revocation\_status\
> &#x20; \`\`\`\
> \
> &#x20; \`failed\_to\_verify\_jwt\` and \`failed\_to\_verify\_mso\_mdoc\` error might appear in both: errors and warnings list. \
> &#x20; In case of \`dc+sd-jwt\` it wraps any error that \`@meeco/sd-jwt-vc\` might throw. \
> &#x20; In case of \`jwt\_vc\_json\` it wraps any error that \`did-jwt-vc\` might throw. \
> &#x20; In case of \`mso\_mdoc\` it wraps any error that \`@owf/mdoc\` might report.<br>

````json
{"openapi":"3.1.0","info":{"title":"SVX Wallet API","version":"4.0.1"},"servers":[{"url":"https://zyfla-wallet-sandbox.meeco.cloud","description":"SVX Wallet deployment (relative)"}],"security":[{},{"bearerAuth":[]},{"mutualTLS":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"mutualTLS":{"type":"mutualTLS"}},"schemas":{"CredentialVerificationResponseDto":{"properties":{"checks":{"type":"array","items":{"type":"string","enum":["format","signature","expiration","nonce","schema","revocation_status"]}},"errors":{"items":{"$ref":"#/components/schemas/CredentialVerificationCheckModelDto"},"type":"array"},"id":{"type":"string"},"warnings":{"items":{"$ref":"#/components/schemas/CredentialVerificationCheckModelDto"},"type":"array"}},"required":["id","checks","warnings","errors"],"type":"object"},"CredentialVerificationCheckModelDto":{"properties":{"error":{"type":"string"},"extra_info":{"type":"object"},"message":{"type":"string"}},"required":["error","message","extra_info"],"type":"object"},"InvalidPathParamError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_path_param"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"WalletNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["wallet_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"CredentialNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["credential_not_found"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"VerifyCredentialError":{"properties":{"error":{"description":"Unique error identifier","enum":["verify_credential_error"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"},"InternalServerError":{"properties":{"error":{"description":"Unique error identifier","enum":["internal_server_error"],"type":"string"},"extra_info":{"description":"Object that may contain more information about the error","type":"object"},"message":{"description":"User friendly error message","type":"string"}},"required":["error","message","extra_info"],"type":"object"}}},"paths":{"/wallets/{walletId}/credentials/{vcId}/verify":{"get":{"summary":"Verify credential by ID","description":"Verify a credential by ID stored inside the Wallet. The verification process checks the validity of the credential and returns a list of errors and warnings if any.\n\n**Checks performed:**\n\n- `format`.\n- `signature`.\n- `expiration` date is validated when the `expirationDate` attribute is present.\n- `issued at` date is validated when the `iat` attribute is present.\n- The `dc+sd-jwt` format also supports URL instead of DID as the value for the issuer attribute. URL will be used to construct .well-known endpoint to retrieve the public key.\n- Verifiable credential `schema` if present.\n- Verifiable credential `revocation` list status and its validity if present\n\n\n  Credential schema and revocation status related checks are not considered critical and will be returned under `warnings` attribute. It is up for the client application to decide how these should be handled. All other failed checks will be served under `errors` attribute.\n\n\n  **Verification options**\n\n  You can optionally specify checks for the provided credential. If specified, only these checks will run. \n  By default, `format`, `signature`, `expiration` checks are mandatory and can not be taken out from checks list. No further checks will be performed if credential is imposible to parse.\n  \n  ```\n  GET wallets/{walletId}/credentials/{vcId}/verify?checks=format,signature,expiration,revocation_status\n  ```\n\n  `failed_to_verify_jwt` and `failed_to_verify_mso_mdoc` error might appear in both: errors and warnings list. \n  In case of `dc+sd-jwt` it wraps any error that `@meeco/sd-jwt-vc` might throw. \n  In case of `jwt_vc_json` it wraps any error that `did-jwt-vc` might throw. \n  In case of `mso_mdoc` it wraps any error that `@owf/mdoc` might report.\n","operationId":"CredentialsController_verify","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}},{"in":"path","name":"vcId","required":true,"schema":{"type":"string"}},{"in":"query","name":"checks","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","enum":["format","signature","expiration","schema","revocation_status"]}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialVerificationResponseDto"}}},"description":"Credential verification complete"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidPathParamError"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/WalletNotFoundError"},{"$ref":"#/components/schemas/CredentialNotFoundError"}]}}},"description":""},"500":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/VerifyCredentialError"},{"$ref":"#/components/schemas/InternalServerError"}]}}},"description":""}},"tags":["Verifiable Credential"]}}}}
````
