> 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-presentation.md).

# Verifiable Presentation

## Get presentation states

> Get presentation states.<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":{"AuthorizationRequestsResponseDto":{"type":"object","properties":{"presentation_states":{"type":"array","items":{"$ref":"#/components/schemas/AuthorizationRequestResponseDto"}},"meta":{"$ref":"#/components/schemas/Meta"}},"required":["presentation_states","meta"]},"AuthorizationRequestResponseDto":{"properties":{"authorization_request_uri":{"type":"string"},"client_id":{"type":"string"},"meta":{"$ref":"#/components/schemas/AuthorizationRequestMetaWithRequestResponseDto"},"nonce":{"description":"Nonce provided by the verifier to be returned in the response","type":"string"},"selected_credentials":{"type":"array","items":{"$ref":"#/components/schemas/AuthorizationRequestSelectedCredentialResponseDto"}},"presentation_definition":{"oneOf":[{"$ref":"#/components/schemas/PresentationDefinition"},{"type":"null"}]},"dcql_query":{"oneOf":[{"$ref":"#/components/schemas/DcqlQuery"},{"type":"null"}]},"redirect_uri":{"type":"string"},"response_mode":{"description":"Parameter to ask the Wallet to send the response to the verifier. Possible values are 'direct_post'","enum":["post","direct_post"],"type":"string"},"response_type":{"description":"Response type of the request. Possible values are `vp_token`, `id_token`","enum":["id_token","vp_token","vp_token id_token"],"type":"string"},"response_uri":{"description":"Response uri of the request. Only relevant if response type is `direct_post`","type":"string"},"state":{"type":"string"},"verifier_state":{"description":"State provided by the verifier to be returned in the response","type":"string"}},"type":"object"},"AuthorizationRequestMetaWithRequestResponseDto":{"properties":{"request":{"description":"JWT respresentation of the request following RFC9101 (JAR)","type":"string"},"submission_status":{"enum":["pending","failed","success"],"type":"string"},"last_submitted_at":{"format":"date-time","type":"string"},"created_at":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"AuthorizationRequestSelectedCredentialResponseDto":{"type":"object","properties":{"input_descriptor_id":{"type":"string"},"credential_query_id":{"type":"string"},"credential":{"type":"object","properties":{"claims_to_disclose":{"description":"List of claims to disclose when presenting the credential. When a claim is nested, use object notation.\n\nExamples: `given_name`, `address.street` or `nationality.country[0]`\n","items":{"type":"string"},"type":"array"},"id":{"type":"string"},"kid":{"description":"Key to use for signing the presentation of the credential. If no key is specified, the key linked to the credential is used. If no key is linked to the credential, no signature is added to the presentation.","type":"string"}}}}},"PresentationDefinition":{"properties":{"id":{"type":"string"},"input_descriptors":{"items":{"$ref":"#/components/schemas/InputDescriptor"},"type":"array"},"submission_requirements":{"items":{"$ref":"#/components/schemas/SubmissionRequirement"},"type":"array"}},"required":["id","input_descriptors"],"type":"object"},"InputDescriptor":{"additionalProperties":false,"properties":{"constraints":{"additionalProperties":false,"properties":{"fields":{"items":{"properties":{"filter":{"additionalProperties":true,"description":"http://json-schema.org/draft-07/schema","type":"object"},"path":{"items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"limit_disclosure":{"enum":["required","preferred"],"type":"string"}},"type":"object"},"format":{"additionalProperties":true,"description":"http://identity.foundation/claim-format-registry/schemas/presentation-definition-claim-format-designations.json","type":"object"},"group":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"name":{"type":"string"},"purpose":{"type":"string"}},"required":["id","constraints"],"type":"object"},"SubmissionRequirement":{"oneOf":[{"additionalProperties":false,"properties":{"count":{"minimum":1,"type":"integer"},"from":{"type":"string"},"name":{"type":"string"},"rule":{"enum":["pick"],"type":"string"}},"required":["rule","from"]}],"type":"object"},"DcqlQuery":{"type":"object","properties":{"credentials":{"description":"A non-empty array of Credential Queries that specify the requested Credentials.\n","type":"array","items":{"type":"object","properties":{"id":{"description":"A string identifying the Credential in the response and, if provided, the constraints in credential_sets. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the Authorization Request, the same id MUST NOT be present more than once.\n","type":"string"},"format":{"description":"A string that specifies the format of the requested Credential.","type":"string"},"claims":{"description":"A non-empty array of objects that specifies claims in the requested Credential. Verifiers MUST NOT point to the same claim more than once in a single query. Wallets SHOULD ignore such duplicate claim queries.\n","type":"array","items":{"type":"object","properties":{"id":{"description":"REQUIRED if claim_sets is present in the Credential Query; OPTIONAL otherwise. A string identifying the particular claim. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the particular claims array, the same id MUST NOT be present more than once.\n","type":"string"},"values":{"type":"array","description":"Allowed value literals (string, number, boolean).","items":{}},"path":{"type":"array","description":"JSONPath-like segments; each entry can be string, number, or null.","items":{}},"intent_to_retain":{"type":"boolean"}},"required":["path"]}},"claim_sets":{"description":"A non-empty array containing arrays of identifiers for elements in claims that specifies which combinations of claims for the Credential are requested.\n","type":"array","items":{"type":"array","items":{"type":"string"}}},"meta":{"description":"An object defining additional properties requested by the Verifier that apply to the metadata and validity data of the Credential.\n\nIf empty, no specific constraints are placed on the metadata or validity of the requested Credential.\n","type":"object","properties":{"vct_values":{"description":"dc+sd-jwt specific - array of accepted vct values","type":"array","items":{"type":"string"}},"doctype_value":{"description":"mso_mdoc specific - accepted value of doctype","type":"string"},"type_values":{"description":"jwt_vc_json specific - array of array accepted types. \n\ne.g: [[\"IDCredential\"]]\n","type":"array","items":{"type":"array","items":{"type":"string"}}}}},"trusted_authorities":{"description":"A non-empty array of objects that specifies expected authorities or trust frameworks that certify Issuers, that the Verifier will accept. Every Credential returned by the Wallet SHOULD match at least one of the conditions present in the corresponding trusted_authorities array if present\n","type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}}}},"require_cryptographic_holder_binding":{"description":"A boolean which indicates whether the Verifier requires a Cryptographic Holder Binding proof. The default value is true, i.e., a Verifiable Presentation with Cryptographic Holder Binding is required. If set to false, the Verifier accepts a Credential without Cryptographic Holder Binding proof.\n","type":"boolean"},"multiple":{"description":"A boolean which indicates whether multiple Credentials can be returned for this Credential Query. If omitted, the default value is false.\n","type":"boolean"}},"required":["id","format","meta"]}},"credential_sets":{"description":"A non-empty array of Credential Set Queries that specifies additional constraints on which of the requested Credentials to return.\n","type":"array","items":{"type":"object","properties":{"options":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"required":{"type":"boolean"}},"required":["options"]}}},"required":["credentials"]},"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}/send":{"get":{"summary":"Get presentation states","description":"Get presentation states.\n","operationId":"PresentationController_findAll","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}},{"name":"order","required":false,"in":"query","description":"Presentation States response order. Default ordering: `DESC` (Supported: `ASC`, `DESC`)","schema":{"enum":["ASC","DESC"],"type":"string"}},{"name":"order_by","required":false,"in":"query","description":"Order Presentation States 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/AuthorizationRequestsResponseDto"}}},"description":"Presentation states 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 Presentation"]}}}}
```

## Register authorization request

> Parse the authorization request URI and get the following information.\
> \
> \- \`client\_id\`: The Client ID of the verifier.\
> \- \`client\_metadata\`: Verifier client metadata.\
> \- \`nonce\`: Nonce provided by the verifier to be returned in the response\
> \- \`presentation\_definition\`: What credentials the verifier is requesting from the Wallet in PEX format.\
> \- \`dcql\_query\`: What credentials the verifier is requesting from the wallet in DCQL format.\
> \- \`redirect\_uri\`: The redirect URI of the verifier.\
> \- \`response\_mode\`: How to return the response.\
> \- \`response\_type\`: Which parameters to use to return the presentation to the verifier.\
> \- \`response\_uri\`: Where to send the response.\
> \- \`verifier\_state\`: State passed by the verifier to link request and response.\
> \- \`meta.protocol\_version\`: Version of the protocol to be used. Supported values: \`openid4vp-v1\`. The default value is \`openid4vp-v1\`.\
> \
> This information informs the Wallet how to process the request and respond to the verifier.\
> \
> \## Request Parameters\
> \
> The following sections describe in more detail the parameters, their default values and behaviour.\
> \
> \### client\_id (required)\
> \
> Client ID is a parameter identifying the Relying Party (RP) - the entity requesting and consuming a Verifiable Presentation. It is used by the Holder's Wallet to fetch and validate client metadata, and to establish trust before releasing Verifiable Presentations.\
> \
> Client ID consists of two parts:\
> &#x20; \- prefix - to define the type of the identifier\
> &#x20; \- identifer - identifier value\
> \
> Supported prefixes are: \`redirect\_uri\`, \`decentralized\_identifier\` and \`x509\_san\_dns\`.\
> \
> \### client\_metadata (required)\
> \
> Client metadata, also called verifier metadata in this case can be implemented using static configuration values, as well as employ Dynamic Discovery.\
> \
> The static configuration is usually bound to an existing profile, for example.\
> \
> \- \[JWT VC Presentation Profile]\(<https://identity.foundation/jwt-vc-presentation-profile/)\\>
> \- \[HAIP]\(<https://openid.net/specs/openid4vc-high-assurance-interoperability-profile-sd-jwt-vc-1\\_0-00.html)\\>
> \
> They use specific, custom URL schemes such as \`openid-vc\` or \`haip\`. When these are used, values referred to in these profiles should be used as client metadata.\
> \
> Each network can define their own set of static configuration values for client metadata.\
> \
> The use of fedarations or trust schemes is not yet supported.\
> \
> Component does not support \`authorization\_signed\_response\_alg\` configuration. If one is provided together with \`response\_mode = direct\_post.jwt\` - Presentation Request will not be parsed and registered.\
> \
> \### nonce\
> \
> Nonce to be returned in the response to prevent replay attacks.\
> \
> \### presentation\_definition (required)\
> \
> Expresses which credentials a verifier asks a wallet to present. The syntax to do this should conform to DIF Presentation Exchange specification.\
> The structure of the definition is validated by a JSON schema associated with the \`presentation\_definition\` schema in the OpenAPI definition.\
> \
> It is also possible to use \`presentation\_definition\_uri\`. In this case the wallet performs a GET request to the \`presentation\_definition\_uri\` and parses the response.\
> The response is stored in the \`presentation\_definition\` attribute.\
> \
> Note that the service does not necessarily support all options defined in the Presentation Exchange specification.\
> \
> API expects \`presentation\_definition.input\_descriptors\[].format\` to be defined. If it is missing, authorization request is not going to be registered.\
> \
> \### response\_mode\
> \
> How the response is sent to the verifier. Possible values are\
> \
> \- \`direct\_post\`: In this mode, the Authorization Response is sent to the Verifier using an HTTPS POST request to an endpoint controlled by the Verifier. The Authorization Response parameters are encoded in the body using the application/x-www-form-urlencoded content type.\
> \
> \- \`direct\_post.jwt\`: In this mode, the Authorization Response is sent to the Verifier using an HTTPS POST request to an endpoint controlled by the Verifier. The Authorization Response is encoded as a JWE (JSON Web Encryption) and included in the body of the request, allowing for confidentiality and integrity protection. Unlike direct\_post, this mode ensures that the entire Authorization Response is encrypted when transmitted to the Verifier.\
> \
> When using \`direct\_post\` or \`direct\_post.jwt\`, note that the \`redirect\_uri\` must be returned after successfully posting the Authorization Response to the \`response\_uri\`.\
> \
> Note that \`fragment\` is currently not supported.\
> \
> \### response\_uri\
> \
> If the \`response\_mode\` is \`direct\_post\` this is the URI to send the response to.\
> \
> \### verifier\_state\
> \
> Opaque state that can be used to link the request and response. Is returned as the \`state\` parameter in the Authorization Response.\
> \
> \## Use of JAR (RFC9101)\
> \
> JAR (RFC9101) is a JWT representation of the request. The JWT is signed with the verifier's private key.\
> There are two ways to do this.\
> \
> \- \`request\`: The \`request\` parameter is the JWT representation of the request.\
> \- \`request\_uri\`: The \`request\_uri\` parameter is the URL of the request.\
> \
> In most cases \`request\_uri\` is used instead of \`request\` as it is more convenient, especially in situations when a QR code is used to represent the authorization request.\
> \
> The JAR contains the necessary information and is fetched, verified and subsequently parsed. See the previous section for more details.\
> \
> \## Examples\
> \
> Below are some examples of valid authorization requests and how they are parsed.\
> \
> \`\`\`\
> openid-vc://?request\_uri=<https://example.com/oidc/presentations/requests/c63aa3e9-dc7d-4753-9ac8-30bf7add6e4c/jwt\\&client\\_id=https://example.com/cb\\>
> \`\`\`\
> \
> This is an example where JAR is used. First, the \`request\_uri\` is used to fetch the request JWT. The JWT is validated and then parsed. The parsed request is stored in the \`metadata.request\` attribute.\
> All the required information, except for the \`client\_id\` is fetched from the JWT, validated and stored.<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":{"PresentationRequestSendRequestModelDto":{"properties":{"authorization_request_uri":{"type":"string"},"protocol_version":{"description":"Specification draft version presentation request uses. If not specified openid4vp-v1 is used.","type":"string","enum":["openid4vp-v1"]}},"type":"object","required":["authorization_request_uri"]},"AuthorizationRequestResponseDto":{"properties":{"authorization_request_uri":{"type":"string"},"client_id":{"type":"string"},"meta":{"$ref":"#/components/schemas/AuthorizationRequestMetaWithRequestResponseDto"},"nonce":{"description":"Nonce provided by the verifier to be returned in the response","type":"string"},"selected_credentials":{"type":"array","items":{"$ref":"#/components/schemas/AuthorizationRequestSelectedCredentialResponseDto"}},"presentation_definition":{"oneOf":[{"$ref":"#/components/schemas/PresentationDefinition"},{"type":"null"}]},"dcql_query":{"oneOf":[{"$ref":"#/components/schemas/DcqlQuery"},{"type":"null"}]},"redirect_uri":{"type":"string"},"response_mode":{"description":"Parameter to ask the Wallet to send the response to the verifier. Possible values are 'direct_post'","enum":["post","direct_post"],"type":"string"},"response_type":{"description":"Response type of the request. Possible values are `vp_token`, `id_token`","enum":["id_token","vp_token","vp_token id_token"],"type":"string"},"response_uri":{"description":"Response uri of the request. Only relevant if response type is `direct_post`","type":"string"},"state":{"type":"string"},"verifier_state":{"description":"State provided by the verifier to be returned in the response","type":"string"}},"type":"object"},"AuthorizationRequestMetaWithRequestResponseDto":{"properties":{"request":{"description":"JWT respresentation of the request following RFC9101 (JAR)","type":"string"},"submission_status":{"enum":["pending","failed","success"],"type":"string"},"last_submitted_at":{"format":"date-time","type":"string"},"created_at":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"AuthorizationRequestSelectedCredentialResponseDto":{"type":"object","properties":{"input_descriptor_id":{"type":"string"},"credential_query_id":{"type":"string"},"credential":{"type":"object","properties":{"claims_to_disclose":{"description":"List of claims to disclose when presenting the credential. When a claim is nested, use object notation.\n\nExamples: `given_name`, `address.street` or `nationality.country[0]`\n","items":{"type":"string"},"type":"array"},"id":{"type":"string"},"kid":{"description":"Key to use for signing the presentation of the credential. If no key is specified, the key linked to the credential is used. If no key is linked to the credential, no signature is added to the presentation.","type":"string"}}}}},"PresentationDefinition":{"properties":{"id":{"type":"string"},"input_descriptors":{"items":{"$ref":"#/components/schemas/InputDescriptor"},"type":"array"},"submission_requirements":{"items":{"$ref":"#/components/schemas/SubmissionRequirement"},"type":"array"}},"required":["id","input_descriptors"],"type":"object"},"InputDescriptor":{"additionalProperties":false,"properties":{"constraints":{"additionalProperties":false,"properties":{"fields":{"items":{"properties":{"filter":{"additionalProperties":true,"description":"http://json-schema.org/draft-07/schema","type":"object"},"path":{"items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"limit_disclosure":{"enum":["required","preferred"],"type":"string"}},"type":"object"},"format":{"additionalProperties":true,"description":"http://identity.foundation/claim-format-registry/schemas/presentation-definition-claim-format-designations.json","type":"object"},"group":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"name":{"type":"string"},"purpose":{"type":"string"}},"required":["id","constraints"],"type":"object"},"SubmissionRequirement":{"oneOf":[{"additionalProperties":false,"properties":{"count":{"minimum":1,"type":"integer"},"from":{"type":"string"},"name":{"type":"string"},"rule":{"enum":["pick"],"type":"string"}},"required":["rule","from"]}],"type":"object"},"DcqlQuery":{"type":"object","properties":{"credentials":{"description":"A non-empty array of Credential Queries that specify the requested Credentials.\n","type":"array","items":{"type":"object","properties":{"id":{"description":"A string identifying the Credential in the response and, if provided, the constraints in credential_sets. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the Authorization Request, the same id MUST NOT be present more than once.\n","type":"string"},"format":{"description":"A string that specifies the format of the requested Credential.","type":"string"},"claims":{"description":"A non-empty array of objects that specifies claims in the requested Credential. Verifiers MUST NOT point to the same claim more than once in a single query. Wallets SHOULD ignore such duplicate claim queries.\n","type":"array","items":{"type":"object","properties":{"id":{"description":"REQUIRED if claim_sets is present in the Credential Query; OPTIONAL otherwise. A string identifying the particular claim. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the particular claims array, the same id MUST NOT be present more than once.\n","type":"string"},"values":{"type":"array","description":"Allowed value literals (string, number, boolean).","items":{}},"path":{"type":"array","description":"JSONPath-like segments; each entry can be string, number, or null.","items":{}},"intent_to_retain":{"type":"boolean"}},"required":["path"]}},"claim_sets":{"description":"A non-empty array containing arrays of identifiers for elements in claims that specifies which combinations of claims for the Credential are requested.\n","type":"array","items":{"type":"array","items":{"type":"string"}}},"meta":{"description":"An object defining additional properties requested by the Verifier that apply to the metadata and validity data of the Credential.\n\nIf empty, no specific constraints are placed on the metadata or validity of the requested Credential.\n","type":"object","properties":{"vct_values":{"description":"dc+sd-jwt specific - array of accepted vct values","type":"array","items":{"type":"string"}},"doctype_value":{"description":"mso_mdoc specific - accepted value of doctype","type":"string"},"type_values":{"description":"jwt_vc_json specific - array of array accepted types. \n\ne.g: [[\"IDCredential\"]]\n","type":"array","items":{"type":"array","items":{"type":"string"}}}}},"trusted_authorities":{"description":"A non-empty array of objects that specifies expected authorities or trust frameworks that certify Issuers, that the Verifier will accept. Every Credential returned by the Wallet SHOULD match at least one of the conditions present in the corresponding trusted_authorities array if present\n","type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}}}},"require_cryptographic_holder_binding":{"description":"A boolean which indicates whether the Verifier requires a Cryptographic Holder Binding proof. The default value is true, i.e., a Verifiable Presentation with Cryptographic Holder Binding is required. If set to false, the Verifier accepts a Credential without Cryptographic Holder Binding proof.\n","type":"boolean"},"multiple":{"description":"A boolean which indicates whether multiple Credentials can be returned for this Credential Query. If omitted, the default value is false.\n","type":"boolean"}},"required":["id","format","meta"]}},"credential_sets":{"description":"A non-empty array of Credential Set Queries that specifies additional constraints on which of the requested Credentials to return.\n","type":"array","items":{"type":"object","properties":{"options":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"required":{"type":"boolean"}},"required":["options"]}}},"required":["credentials"]},"InvalidPresentationRequestUrlError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_presentation_request_url"],"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}/send":{"post":{"summary":"Register authorization request","description":"Parse the authorization request URI and get the following information.\n\n- `client_id`: The Client ID of the verifier.\n- `client_metadata`: Verifier client metadata.\n- `nonce`: Nonce provided by the verifier to be returned in the response\n- `presentation_definition`: What credentials the verifier is requesting from the Wallet in PEX format.\n- `dcql_query`: What credentials the verifier is requesting from the wallet in DCQL format.\n- `redirect_uri`: The redirect URI of the verifier.\n- `response_mode`: How to return the response.\n- `response_type`: Which parameters to use to return the presentation to the verifier.\n- `response_uri`: Where to send the response.\n- `verifier_state`: State passed by the verifier to link request and response.\n- `meta.protocol_version`: Version of the protocol to be used. Supported values: `openid4vp-v1`. The default value is `openid4vp-v1`.\n\nThis information informs the Wallet how to process the request and respond to the verifier.\n\n## Request Parameters\n\nThe following sections describe in more detail the parameters, their default values and behaviour.\n\n### client_id (required)\n\nClient ID is a parameter identifying the Relying Party (RP) - the entity requesting and consuming a Verifiable Presentation. It is used by the Holder's Wallet to fetch and validate client metadata, and to establish trust before releasing Verifiable Presentations.\n\nClient ID consists of two parts:\n  - prefix - to define the type of the identifier\n  - identifer - identifier value\n\nSupported prefixes are: `redirect_uri`, `decentralized_identifier` and `x509_san_dns`.\n\n### client_metadata (required)\n\nClient metadata, also called verifier metadata in this case can be implemented using static configuration values, as well as employ Dynamic Discovery.\n\nThe static configuration is usually bound to an existing profile, for example.\n\n- [JWT VC Presentation Profile](https://identity.foundation/jwt-vc-presentation-profile/)\n- [HAIP](https://openid.net/specs/openid4vc-high-assurance-interoperability-profile-sd-jwt-vc-1_0-00.html)\n\nThey use specific, custom URL schemes such as `openid-vc` or `haip`. When these are used, values referred to in these profiles should be used as client metadata.\n\nEach network can define their own set of static configuration values for client metadata.\n\nThe use of fedarations or trust schemes is not yet supported.\n\nComponent does not support `authorization_signed_response_alg` configuration. If one is provided together with `response_mode = direct_post.jwt` - Presentation Request will not be parsed and registered.\n\n### nonce\n\nNonce to be returned in the response to prevent replay attacks.\n\n### presentation_definition (required)\n\nExpresses which credentials a verifier asks a wallet to present. The syntax to do this should conform to DIF Presentation Exchange specification.\nThe structure of the definition is validated by a JSON schema associated with the `presentation_definition` schema in the OpenAPI definition.\n\nIt is also possible to use `presentation_definition_uri`. In this case the wallet performs a GET request to the `presentation_definition_uri` and parses the response.\nThe response is stored in the `presentation_definition` attribute.\n\nNote that the service does not necessarily support all options defined in the Presentation Exchange specification.\n\nAPI expects `presentation_definition.input_descriptors[].format` to be defined. If it is missing, authorization request is not going to be registered.\n\n### response_mode\n\nHow the response is sent to the verifier. Possible values are\n\n- `direct_post`: In this mode, the Authorization Response is sent to the Verifier using an HTTPS POST request to an endpoint controlled by the Verifier. The Authorization Response parameters are encoded in the body using the application/x-www-form-urlencoded content type.\n\n- `direct_post.jwt`: In this mode, the Authorization Response is sent to the Verifier using an HTTPS POST request to an endpoint controlled by the Verifier. The Authorization Response is encoded as a JWE (JSON Web Encryption) and included in the body of the request, allowing for confidentiality and integrity protection. Unlike direct_post, this mode ensures that the entire Authorization Response is encrypted when transmitted to the Verifier.\n\nWhen using `direct_post` or `direct_post.jwt`, note that the `redirect_uri` must be returned after successfully posting the Authorization Response to the `response_uri`.\n\nNote that `fragment` is currently not supported.\n\n### response_uri\n\nIf the `response_mode` is `direct_post` this is the URI to send the response to.\n\n### verifier_state\n\nOpaque state that can be used to link the request and response. Is returned as the `state` parameter in the Authorization Response.\n\n## Use of JAR (RFC9101)\n\nJAR (RFC9101) is a JWT representation of the request. The JWT is signed with the verifier's private key.\nThere are two ways to do this.\n\n- `request`: The `request` parameter is the JWT representation of the request.\n- `request_uri`: The `request_uri` parameter is the URL of the request.\n\nIn most cases `request_uri` is used instead of `request` as it is more convenient, especially in situations when a QR code is used to represent the authorization request.\n\nThe JAR contains the necessary information and is fetched, verified and subsequently parsed. See the previous section for more details.\n\n## Examples\n\nBelow are some examples of valid authorization requests and how they are parsed.\n\n```\nopenid-vc://?request_uri=https://example.com/oidc/presentations/requests/c63aa3e9-dc7d-4753-9ac8-30bf7add6e4c/jwt&client_id=https://example.com/cb\n```\n\nThis is an example where JAR is used. First, the `request_uri` is used to fetch the request JWT. The JWT is validated and then parsed. The parsed request is stored in the `metadata.request` attribute.\nAll the required information, except for the `client_id` is fetched from the JWT, validated and stored.\n","operationId":"PresentationController_create","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationRequestSendRequestModelDto"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizationRequestResponseDto"}}},"description":"Successful registration of the presentation authorization request."},"400":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InvalidPresentationRequestUrlError"}]}}},"description":"Bad Request - The request was invalid or cannot be otherwise served."}},"tags":["Verifiable Presentation"]}}}}
````

## Set the credentials to be presented

> Set the credentials to be presented as part of this presentation response.\
> \
> Each credential must be linked to an input descriptor from the credential definition. There is one important condition to present \`mso\_mdoc\` credentials. \`mso\_mdoc\` credential \`doctype\` attribute value must match \`input\_descriptors\[].id\` othwerwise submitting a presentation will fail. There are no such conditions for \`jwt\_vc\_json\` and \`dc+sd-jwt\` credential formats.\
> For credentials that support selective disclosure (\`dc+sd-jwt\`, \`mso\_mdoc\`), there is the possibility to use the \`claims\_to\_disclose\` property.\
> Use object notation to specify which claims to disclose. For example:\
> \
> \`\`\`\
> "claims\_to\_disclose": \["given\_name", "address.street\_address", "address.locality", "nationalities\[0]"]\
> \`\`\`\
> \
> \`\`\`\
> "claims\_to\_disclose": \["$\['org.iso.18013.5.1']\['birth\_date']", "$\['org.iso.18013.5.1']\['given\_name']"]\
> \`\`\`\
> \
> If a claim or a nested claim is not found in the credential or it doesn't support selective disclosure, it will be ignored.<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":{"PresentationRequestSetCredentialsRequestModelDto":{"properties":{"credentials":{"items":{"$ref":"#/components/schemas/AuthorizationRequestSelectedCredentialPayloadDto"},"type":"array"},"state":{"type":"string"}},"required":["state","credentials"],"type":"object"},"AuthorizationRequestSelectedCredentialPayloadDto":{"description":"input_descriptor_id OR credential_query_id MUST be present","properties":{"input_descriptor_id":{"type":"string"},"credential_query_id":{"type":"string"},"credential":{"properties":{"claims_to_disclose":{"description":"List of claims to disclose when presenting the credential. When a claim is nested, use object notation.\n\nExamples: `given_name`, `address.street` or `nationality.country[0]`\n","items":{"type":"string"},"type":"array"},"id":{"type":"string"},"kid":{"description":"Key to use for signing the presentation of the credential. If no key is specified, the key linked to the credential is used. If no key is linked to the credential, no signature is added to the presentation.","type":"string"}},"required":["id","kid"],"type":"object"}},"required":["credential"],"type":"object"},"PresentationRequestSetCredentialsResponseModelDto":{"properties":{"credentials":{"type":"array","items":{"$ref":"#/components/schemas/AuthorizationRequestSelectedCredentialResponseDto"}},"meta":{"$ref":"#/components/schemas/AuthorizationRequestMetaResponseDto"},"presentation_definition":{"oneOf":[{"$ref":"#/components/schemas/PresentationDefinition"},{"type":"null"}]},"dcql_query":{"oneOf":[{"$ref":"#/components/schemas/DcqlQuery"},{"type":"null"}]},"state":{"type":"string"}},"required":["state","credentials","presentation_definition","dcql_query","meta"],"type":"object"},"AuthorizationRequestSelectedCredentialResponseDto":{"type":"object","properties":{"input_descriptor_id":{"type":"string"},"credential_query_id":{"type":"string"},"credential":{"type":"object","properties":{"claims_to_disclose":{"description":"List of claims to disclose when presenting the credential. When a claim is nested, use object notation.\n\nExamples: `given_name`, `address.street` or `nationality.country[0]`\n","items":{"type":"string"},"type":"array"},"id":{"type":"string"},"kid":{"description":"Key to use for signing the presentation of the credential. If no key is specified, the key linked to the credential is used. If no key is linked to the credential, no signature is added to the presentation.","type":"string"}}}}},"AuthorizationRequestMetaResponseDto":{"properties":{"submission_status":{"enum":["pending","failed","success"],"type":"string"},"last_submitted_at":{"format":"date-time","type":"string"},"created_at":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"PresentationDefinition":{"properties":{"id":{"type":"string"},"input_descriptors":{"items":{"$ref":"#/components/schemas/InputDescriptor"},"type":"array"},"submission_requirements":{"items":{"$ref":"#/components/schemas/SubmissionRequirement"},"type":"array"}},"required":["id","input_descriptors"],"type":"object"},"InputDescriptor":{"additionalProperties":false,"properties":{"constraints":{"additionalProperties":false,"properties":{"fields":{"items":{"properties":{"filter":{"additionalProperties":true,"description":"http://json-schema.org/draft-07/schema","type":"object"},"path":{"items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"limit_disclosure":{"enum":["required","preferred"],"type":"string"}},"type":"object"},"format":{"additionalProperties":true,"description":"http://identity.foundation/claim-format-registry/schemas/presentation-definition-claim-format-designations.json","type":"object"},"group":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"name":{"type":"string"},"purpose":{"type":"string"}},"required":["id","constraints"],"type":"object"},"SubmissionRequirement":{"oneOf":[{"additionalProperties":false,"properties":{"count":{"minimum":1,"type":"integer"},"from":{"type":"string"},"name":{"type":"string"},"rule":{"enum":["pick"],"type":"string"}},"required":["rule","from"]}],"type":"object"},"DcqlQuery":{"type":"object","properties":{"credentials":{"description":"A non-empty array of Credential Queries that specify the requested Credentials.\n","type":"array","items":{"type":"object","properties":{"id":{"description":"A string identifying the Credential in the response and, if provided, the constraints in credential_sets. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the Authorization Request, the same id MUST NOT be present more than once.\n","type":"string"},"format":{"description":"A string that specifies the format of the requested Credential.","type":"string"},"claims":{"description":"A non-empty array of objects that specifies claims in the requested Credential. Verifiers MUST NOT point to the same claim more than once in a single query. Wallets SHOULD ignore such duplicate claim queries.\n","type":"array","items":{"type":"object","properties":{"id":{"description":"REQUIRED if claim_sets is present in the Credential Query; OPTIONAL otherwise. A string identifying the particular claim. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the particular claims array, the same id MUST NOT be present more than once.\n","type":"string"},"values":{"type":"array","description":"Allowed value literals (string, number, boolean).","items":{}},"path":{"type":"array","description":"JSONPath-like segments; each entry can be string, number, or null.","items":{}},"intent_to_retain":{"type":"boolean"}},"required":["path"]}},"claim_sets":{"description":"A non-empty array containing arrays of identifiers for elements in claims that specifies which combinations of claims for the Credential are requested.\n","type":"array","items":{"type":"array","items":{"type":"string"}}},"meta":{"description":"An object defining additional properties requested by the Verifier that apply to the metadata and validity data of the Credential.\n\nIf empty, no specific constraints are placed on the metadata or validity of the requested Credential.\n","type":"object","properties":{"vct_values":{"description":"dc+sd-jwt specific - array of accepted vct values","type":"array","items":{"type":"string"}},"doctype_value":{"description":"mso_mdoc specific - accepted value of doctype","type":"string"},"type_values":{"description":"jwt_vc_json specific - array of array accepted types. \n\ne.g: [[\"IDCredential\"]]\n","type":"array","items":{"type":"array","items":{"type":"string"}}}}},"trusted_authorities":{"description":"A non-empty array of objects that specifies expected authorities or trust frameworks that certify Issuers, that the Verifier will accept. Every Credential returned by the Wallet SHOULD match at least one of the conditions present in the corresponding trusted_authorities array if present\n","type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}}}},"require_cryptographic_holder_binding":{"description":"A boolean which indicates whether the Verifier requires a Cryptographic Holder Binding proof. The default value is true, i.e., a Verifiable Presentation with Cryptographic Holder Binding is required. If set to false, the Verifier accepts a Credential without Cryptographic Holder Binding proof.\n","type":"boolean"},"multiple":{"description":"A boolean which indicates whether multiple Credentials can be returned for this Credential Query. If omitted, the default value is false.\n","type":"boolean"}},"required":["id","format","meta"]}},"credential_sets":{"description":"A non-empty array of Credential Set Queries that specifies additional constraints on which of the requested Credentials to return.\n","type":"array","items":{"type":"object","properties":{"options":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"required":{"type":"boolean"}},"required":["options"]}}},"required":["credentials"]},"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}/send/set_credentials":{"post":{"summary":"Set the credentials to be presented","description":"Set the credentials to be presented as part of this presentation response.\n\nEach credential must be linked to an input descriptor from the credential definition. There is one important condition to present `mso_mdoc` credentials. `mso_mdoc` credential `doctype` attribute value must match `input_descriptors[].id` othwerwise submitting a presentation will fail. There are no such conditions for `jwt_vc_json` and `dc+sd-jwt` credential formats.\nFor credentials that support selective disclosure (`dc+sd-jwt`, `mso_mdoc`), there is the possibility to use the `claims_to_disclose` property.\nUse object notation to specify which claims to disclose. For example:\n\n```\n\"claims_to_disclose\": [\"given_name\", \"address.street_address\", \"address.locality\", \"nationalities[0]\"]\n```\n\n```\n\"claims_to_disclose\": [\"$['org.iso.18013.5.1']['birth_date']\", \"$['org.iso.18013.5.1']['given_name']\"]\n```\n\nIf a claim or a nested claim is not found in the credential or it doesn't support selective disclosure, it will be ignored.\n","operationId":"SendController_setCredentials","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationRequestSetCredentialsRequestModelDto"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationRequestSetCredentialsResponseModelDto"}}},"description":"Successful registration of the credential offer."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletNotFoundError"}}},"description":""}},"tags":["Verifiable Presentation"]}}}}
````

## Submit the presentation response to the verifier

> Generate the presentation response to present the credentials to the verifier.\
> \
> Based on the \`response\_type\`, the following parameters are included in the response:\
> \
> The response always includes:\
> \- \`vp\_token\`: A single JSON string or array of JSON strings representing the presentation.\
> \- \`presentation\_submission\`: A JSON object containing the mapping between the requested credentials and where to find them in the returned VP token. This follows the DIF Presentation Exchange specification.\
> \
> Optionally, the following is also included:\
> \- \`id\_token\`: A single JSON string that proves control of the wallet over key material.\
> \
> Depending on the \`response\_mode\` option, the response can be sent to the verifier using an HTTPS POST request or an HTTP redirect.\
> \
> In case of \`response\_mode=fragment\` (default), the response is sent via the front channel by opening the \`redirect\_uri\`, which is returned in the response to this request.\
> This \`redirect\_uri\` includes all the response parameters. Note that this is currently not supported.\
> \
> In case of \`response\_mode=direct\_post\` or \`response\_mode=post\`, the response is submitted via an HTTPS POST request to the \`response\_uri\`.\
> In this case, it is expected that a \`redirect\_uri\` is returned in the response to this request.\
> This \`redirect\_uri\` is also to be opened in the front channel, but is simply used to continue the verification process and not to transmit the response to the verifier.\
> \
> In case of \`response\_mode=direct\_post.jwt\`, the response is submitted via an HTTPS POST request to the \`response\_uri\` as a JWE.\
> In this case, it is expected that a \`redirect\_uri\` is returned in the response to this request.\
> This \`redirect\_uri\` is also to be opened in the front channel, but is simply used to continue the verification process and not to transmit the response to the verifier.\
> \
> The status of this submission can be tracked via the \`meta.submission\_status\` attribute. Note that in case of \`response\_mode=fragment\`, the status is always \`success\`.<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":{"PresentationRequestSubmitRequestModelDto":{"properties":{"client_id":{"type":"string"},"credentials":{"items":{"$ref":"#/components/schemas/AuthorizationRequestSelectedCredentialPayloadDto"},"type":"array"},"nonce":{"description":"Nonce provided by the verifier to be returned in the response","type":"string"},"presentation_definition":{"$ref":"#/components/schemas/PresentationDefinition"},"dcql_query":{"$ref":"#/components/schemas/DcqlQuery"},"redirect_uri":{"type":"string"},"response_mode":{"description":"Parameter to ask the Wallet to send the response to the verifier. Possible values are 'direct_post', 'post'.","enum":["direct_post","post"],"type":"string"},"response_type":{"description":"Response type of the request. Possible values are `vp_token`, `id_token`","enum":["vp_token","vp_token id_token","id_token"],"type":"string"},"response_uri":{"description":"Response uri of the request. Only relevant if response type is `direct_post`","type":"string"},"state":{"type":"string"},"verifier_state":{"description":"State provided by the verifier to be returned in the response","type":"string"}},"required":["state"],"type":"object"},"AuthorizationRequestSelectedCredentialPayloadDto":{"description":"input_descriptor_id OR credential_query_id MUST be present","properties":{"input_descriptor_id":{"type":"string"},"credential_query_id":{"type":"string"},"credential":{"properties":{"claims_to_disclose":{"description":"List of claims to disclose when presenting the credential. When a claim is nested, use object notation.\n\nExamples: `given_name`, `address.street` or `nationality.country[0]`\n","items":{"type":"string"},"type":"array"},"id":{"type":"string"},"kid":{"description":"Key to use for signing the presentation of the credential. If no key is specified, the key linked to the credential is used. If no key is linked to the credential, no signature is added to the presentation.","type":"string"}},"required":["id","kid"],"type":"object"}},"required":["credential"],"type":"object"},"PresentationDefinition":{"properties":{"id":{"type":"string"},"input_descriptors":{"items":{"$ref":"#/components/schemas/InputDescriptor"},"type":"array"},"submission_requirements":{"items":{"$ref":"#/components/schemas/SubmissionRequirement"},"type":"array"}},"required":["id","input_descriptors"],"type":"object"},"InputDescriptor":{"additionalProperties":false,"properties":{"constraints":{"additionalProperties":false,"properties":{"fields":{"items":{"properties":{"filter":{"additionalProperties":true,"description":"http://json-schema.org/draft-07/schema","type":"object"},"path":{"items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"limit_disclosure":{"enum":["required","preferred"],"type":"string"}},"type":"object"},"format":{"additionalProperties":true,"description":"http://identity.foundation/claim-format-registry/schemas/presentation-definition-claim-format-designations.json","type":"object"},"group":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"name":{"type":"string"},"purpose":{"type":"string"}},"required":["id","constraints"],"type":"object"},"SubmissionRequirement":{"oneOf":[{"additionalProperties":false,"properties":{"count":{"minimum":1,"type":"integer"},"from":{"type":"string"},"name":{"type":"string"},"rule":{"enum":["pick"],"type":"string"}},"required":["rule","from"]}],"type":"object"},"DcqlQuery":{"type":"object","properties":{"credentials":{"description":"A non-empty array of Credential Queries that specify the requested Credentials.\n","type":"array","items":{"type":"object","properties":{"id":{"description":"A string identifying the Credential in the response and, if provided, the constraints in credential_sets. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the Authorization Request, the same id MUST NOT be present more than once.\n","type":"string"},"format":{"description":"A string that specifies the format of the requested Credential.","type":"string"},"claims":{"description":"A non-empty array of objects that specifies claims in the requested Credential. Verifiers MUST NOT point to the same claim more than once in a single query. Wallets SHOULD ignore such duplicate claim queries.\n","type":"array","items":{"type":"object","properties":{"id":{"description":"REQUIRED if claim_sets is present in the Credential Query; OPTIONAL otherwise. A string identifying the particular claim. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the particular claims array, the same id MUST NOT be present more than once.\n","type":"string"},"values":{"type":"array","description":"Allowed value literals (string, number, boolean).","items":{}},"path":{"type":"array","description":"JSONPath-like segments; each entry can be string, number, or null.","items":{}},"intent_to_retain":{"type":"boolean"}},"required":["path"]}},"claim_sets":{"description":"A non-empty array containing arrays of identifiers for elements in claims that specifies which combinations of claims for the Credential are requested.\n","type":"array","items":{"type":"array","items":{"type":"string"}}},"meta":{"description":"An object defining additional properties requested by the Verifier that apply to the metadata and validity data of the Credential.\n\nIf empty, no specific constraints are placed on the metadata or validity of the requested Credential.\n","type":"object","properties":{"vct_values":{"description":"dc+sd-jwt specific - array of accepted vct values","type":"array","items":{"type":"string"}},"doctype_value":{"description":"mso_mdoc specific - accepted value of doctype","type":"string"},"type_values":{"description":"jwt_vc_json specific - array of array accepted types. \n\ne.g: [[\"IDCredential\"]]\n","type":"array","items":{"type":"array","items":{"type":"string"}}}}},"trusted_authorities":{"description":"A non-empty array of objects that specifies expected authorities or trust frameworks that certify Issuers, that the Verifier will accept. Every Credential returned by the Wallet SHOULD match at least one of the conditions present in the corresponding trusted_authorities array if present\n","type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}}}},"require_cryptographic_holder_binding":{"description":"A boolean which indicates whether the Verifier requires a Cryptographic Holder Binding proof. The default value is true, i.e., a Verifiable Presentation with Cryptographic Holder Binding is required. If set to false, the Verifier accepts a Credential without Cryptographic Holder Binding proof.\n","type":"boolean"},"multiple":{"description":"A boolean which indicates whether multiple Credentials can be returned for this Credential Query. If omitted, the default value is false.\n","type":"boolean"}},"required":["id","format","meta"]}},"credential_sets":{"description":"A non-empty array of Credential Set Queries that specifies additional constraints on which of the requested Credentials to return.\n","type":"array","items":{"type":"object","properties":{"options":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"required":{"type":"boolean"}},"required":["options"]}}},"required":["credentials"]},"PresentationRequestSubmitResponseModelDto":{"properties":{"meta":{"$ref":"#/components/schemas/AuthorizationRequestMetaResponseDto"},"redirect_uri":{"description":"Redirect URI to follow on the frontend.\n\nIn case of response_mode `fragment`, this contains the Authorization Response attributes and this is how they are passed to the verifier.\n\nIn case of response_mode `direct_post`, this is the URI that was returned after successfully posting the Authorization Response to the `response_uri` of the verifier.\n","type":"string"},"state":{"type":"string"}},"type":"object"},"AuthorizationRequestMetaResponseDto":{"properties":{"submission_status":{"enum":["pending","failed","success"],"type":"string"},"last_submitted_at":{"format":"date-time","type":"string"},"created_at":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"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"},"InvalidClaimsToDiscloseError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_claims_to_disclose_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}/send/submit":{"post":{"summary":"Submit the presentation response to the verifier","description":"Generate the presentation response to present the credentials to the verifier.\n\nBased on the `response_type`, the following parameters are included in the response:\n\nThe response always includes:\n- `vp_token`: A single JSON string or array of JSON strings representing the presentation.\n- `presentation_submission`: A JSON object containing the mapping between the requested credentials and where to find them in the returned VP token. This follows the DIF Presentation Exchange specification.\n\nOptionally, the following is also included:\n- `id_token`: A single JSON string that proves control of the wallet over key material.\n\nDepending on the `response_mode` option, the response can be sent to the verifier using an HTTPS POST request or an HTTP redirect.\n\nIn case of `response_mode=fragment` (default), the response is sent via the front channel by opening the `redirect_uri`, which is returned in the response to this request.\nThis `redirect_uri` includes all the response parameters. Note that this is currently not supported.\n\nIn case of `response_mode=direct_post` or `response_mode=post`, the response is submitted via an HTTPS POST request to the `response_uri`.\nIn this case, it is expected that a `redirect_uri` is returned in the response to this request.\nThis `redirect_uri` is also to be opened in the front channel, but is simply used to continue the verification process and not to transmit the response to the verifier.\n\nIn case of `response_mode=direct_post.jwt`, the response is submitted via an HTTPS POST request to the `response_uri` as a JWE.\nIn this case, it is expected that a `redirect_uri` is returned in the response to this request.\nThis `redirect_uri` is also to be opened in the front channel, but is simply used to continue the verification process and not to transmit the response to the verifier.\n\nThe status of this submission can be tracked via the `meta.submission_status` attribute. Note that in case of `response_mode=fragment`, the status is always `success`.\n","operationId":"SendController_submit","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationRequestSubmitRequestModelDto"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationRequestSubmitResponseModelDto"}}},"description":"Successful submission of presentation response"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletNotFoundError"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidClaimsToDiscloseError"}}},"description":""}},"tags":["Verifiable Presentation"]}}}}
```

## Get present credential state

> Get present credential state.<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":{"AuthorizationRequestResponseDto":{"properties":{"authorization_request_uri":{"type":"string"},"client_id":{"type":"string"},"meta":{"$ref":"#/components/schemas/AuthorizationRequestMetaWithRequestResponseDto"},"nonce":{"description":"Nonce provided by the verifier to be returned in the response","type":"string"},"selected_credentials":{"type":"array","items":{"$ref":"#/components/schemas/AuthorizationRequestSelectedCredentialResponseDto"}},"presentation_definition":{"oneOf":[{"$ref":"#/components/schemas/PresentationDefinition"},{"type":"null"}]},"dcql_query":{"oneOf":[{"$ref":"#/components/schemas/DcqlQuery"},{"type":"null"}]},"redirect_uri":{"type":"string"},"response_mode":{"description":"Parameter to ask the Wallet to send the response to the verifier. Possible values are 'direct_post'","enum":["post","direct_post"],"type":"string"},"response_type":{"description":"Response type of the request. Possible values are `vp_token`, `id_token`","enum":["id_token","vp_token","vp_token id_token"],"type":"string"},"response_uri":{"description":"Response uri of the request. Only relevant if response type is `direct_post`","type":"string"},"state":{"type":"string"},"verifier_state":{"description":"State provided by the verifier to be returned in the response","type":"string"}},"type":"object"},"AuthorizationRequestMetaWithRequestResponseDto":{"properties":{"request":{"description":"JWT respresentation of the request following RFC9101 (JAR)","type":"string"},"submission_status":{"enum":["pending","failed","success"],"type":"string"},"last_submitted_at":{"format":"date-time","type":"string"},"created_at":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"AuthorizationRequestSelectedCredentialResponseDto":{"type":"object","properties":{"input_descriptor_id":{"type":"string"},"credential_query_id":{"type":"string"},"credential":{"type":"object","properties":{"claims_to_disclose":{"description":"List of claims to disclose when presenting the credential. When a claim is nested, use object notation.\n\nExamples: `given_name`, `address.street` or `nationality.country[0]`\n","items":{"type":"string"},"type":"array"},"id":{"type":"string"},"kid":{"description":"Key to use for signing the presentation of the credential. If no key is specified, the key linked to the credential is used. If no key is linked to the credential, no signature is added to the presentation.","type":"string"}}}}},"PresentationDefinition":{"properties":{"id":{"type":"string"},"input_descriptors":{"items":{"$ref":"#/components/schemas/InputDescriptor"},"type":"array"},"submission_requirements":{"items":{"$ref":"#/components/schemas/SubmissionRequirement"},"type":"array"}},"required":["id","input_descriptors"],"type":"object"},"InputDescriptor":{"additionalProperties":false,"properties":{"constraints":{"additionalProperties":false,"properties":{"fields":{"items":{"properties":{"filter":{"additionalProperties":true,"description":"http://json-schema.org/draft-07/schema","type":"object"},"path":{"items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"limit_disclosure":{"enum":["required","preferred"],"type":"string"}},"type":"object"},"format":{"additionalProperties":true,"description":"http://identity.foundation/claim-format-registry/schemas/presentation-definition-claim-format-designations.json","type":"object"},"group":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"name":{"type":"string"},"purpose":{"type":"string"}},"required":["id","constraints"],"type":"object"},"SubmissionRequirement":{"oneOf":[{"additionalProperties":false,"properties":{"count":{"minimum":1,"type":"integer"},"from":{"type":"string"},"name":{"type":"string"},"rule":{"enum":["pick"],"type":"string"}},"required":["rule","from"]}],"type":"object"},"DcqlQuery":{"type":"object","properties":{"credentials":{"description":"A non-empty array of Credential Queries that specify the requested Credentials.\n","type":"array","items":{"type":"object","properties":{"id":{"description":"A string identifying the Credential in the response and, if provided, the constraints in credential_sets. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the Authorization Request, the same id MUST NOT be present more than once.\n","type":"string"},"format":{"description":"A string that specifies the format of the requested Credential.","type":"string"},"claims":{"description":"A non-empty array of objects that specifies claims in the requested Credential. Verifiers MUST NOT point to the same claim more than once in a single query. Wallets SHOULD ignore such duplicate claim queries.\n","type":"array","items":{"type":"object","properties":{"id":{"description":"REQUIRED if claim_sets is present in the Credential Query; OPTIONAL otherwise. A string identifying the particular claim. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the particular claims array, the same id MUST NOT be present more than once.\n","type":"string"},"values":{"type":"array","description":"Allowed value literals (string, number, boolean).","items":{}},"path":{"type":"array","description":"JSONPath-like segments; each entry can be string, number, or null.","items":{}},"intent_to_retain":{"type":"boolean"}},"required":["path"]}},"claim_sets":{"description":"A non-empty array containing arrays of identifiers for elements in claims that specifies which combinations of claims for the Credential are requested.\n","type":"array","items":{"type":"array","items":{"type":"string"}}},"meta":{"description":"An object defining additional properties requested by the Verifier that apply to the metadata and validity data of the Credential.\n\nIf empty, no specific constraints are placed on the metadata or validity of the requested Credential.\n","type":"object","properties":{"vct_values":{"description":"dc+sd-jwt specific - array of accepted vct values","type":"array","items":{"type":"string"}},"doctype_value":{"description":"mso_mdoc specific - accepted value of doctype","type":"string"},"type_values":{"description":"jwt_vc_json specific - array of array accepted types. \n\ne.g: [[\"IDCredential\"]]\n","type":"array","items":{"type":"array","items":{"type":"string"}}}}},"trusted_authorities":{"description":"A non-empty array of objects that specifies expected authorities or trust frameworks that certify Issuers, that the Verifier will accept. Every Credential returned by the Wallet SHOULD match at least one of the conditions present in the corresponding trusted_authorities array if present\n","type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}}}},"require_cryptographic_holder_binding":{"description":"A boolean which indicates whether the Verifier requires a Cryptographic Holder Binding proof. The default value is true, i.e., a Verifiable Presentation with Cryptographic Holder Binding is required. If set to false, the Verifier accepts a Credential without Cryptographic Holder Binding proof.\n","type":"boolean"},"multiple":{"description":"A boolean which indicates whether multiple Credentials can be returned for this Credential Query. If omitted, the default value is false.\n","type":"boolean"}},"required":["id","format","meta"]}},"credential_sets":{"description":"A non-empty array of Credential Set Queries that specifies additional constraints on which of the requested Credentials to return.\n","type":"array","items":{"type":"object","properties":{"options":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"required":{"type":"boolean"}},"required":["options"]}}},"required":["credentials"]},"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}/send/{state}":{"get":{"summary":"Get present credential state","description":"Get present credential state.\n","operationId":"SendController_findOne","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}},{"in":"path","name":"state","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizationRequestResponseDto"}}},"description":"Successful registration of the credential offer."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletNotFoundError"}}},"description":""}},"tags":["Verifiable Presentation"]}}}}
```

## Delete Verifiable Presentation State by ID

> Delete state of a presentation flow<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"},"AuthorizationRequestNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["authorization_request_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"},"DeletePresentationStateError":{"properties":{"error":{"description":"Unique error identifier","enum":["delete_presentation_state_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}/send/{state}":{"delete":{"summary":"Delete Verifiable Presentation State by ID","description":"Delete state of a presentation flow\n","operationId":"SendController_deleteOne","parameters":[{"in":"path","name":"walletId","required":true,"schema":{"type":"string"}},{"in":"path","name":"state","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Presentation State 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/AuthorizationRequestNotFoundError"}]}}},"description":""},"500":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DeletePresentationStateError"},{"$ref":"#/components/schemas/InternalServerError"}]}}},"description":""}},"tags":["Verifiable Presentation"]}}}}
```
