> 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-wallet/demo-endpoints-1.md).

# Demo Endpoints

Public, unauthenticated endpoints that exist **only** to power the built-in demo Issue/Verify UI served at `/dashboard`. They are controlled solely by the `system.test_endpoints_enabled` configuration flag: when it is enabled they are publicly reachable (no admin session required), and when it is disabled every `/demo/*` endpoint returns `404`.

Each demo endpoint mirrors the behaviour of its protected counterpart exactly (same request/response shapes) and only exposes safe read/create actions — no destructive methods are exposed. Access control for these endpoints is expected to be handled at the gateway. Only enable `system.test_endpoints_enabled` in trusted demo/interop environments.

## List credential templates (demo)

> Demo variant of \`GET /issuer/templates\` for the built-in demo Issue/Verify UI. Publicly reachable without an admin session; returns 404 unless \`system.test\_endpoints\_enabled\` is enabled.<br>

```json
{"openapi":"3.1.0","info":{"title":"SVX Wallet","version":"1.2.0"},"tags":[{"name":"Demo Endpoints","description":"Public, unauthenticated endpoints that exist **only** to power the built-in demo Issue/Verify UI served at `/dashboard`. They are controlled solely by the `system.test_endpoints_enabled` configuration flag: when it is enabled they are publicly reachable (no admin session required), and when it is disabled every `/demo/*` endpoint returns `404`.\n\nEach demo endpoint mirrors the behaviour of its protected counterpart exactly (same request/response shapes) and only exposes safe read/create actions — no destructive methods are exposed. Access control for these endpoints is expected to be handled at the gateway. Only enable `system.test_endpoints_enabled` in trusted demo/interop environments.\n"}],"servers":[{"url":"/","description":"SVX Wallet deployment (relative)"}],"security":[{},{"bearerAuth":[]},{"mutualTLS":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"mutualTLS":{"type":"mutualTLS"}},"schemas":{"CredentialTemplatesResponseDto":{"type":"object","properties":{"templates":{"type":"array","items":{"$ref":"#/components/schemas/CredentialTemplateModelDto"}},"meta":{"$ref":"#/components/schemas/Meta"}},"required":["templates","meta"]},"CredentialTemplateModelDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"schema":{"$ref":"#/components/schemas/CredentialTemplateSchemaDto"},"style":{"$ref":"#/components/schemas/CredentialTemplateStyleDto"},"format":{"type":"string","enum":["dc+sd-jwt","jwt_vc_json","mso_mdoc"]},"config":{"$ref":"#/components/schemas/CredentialTemplateConfigDto"},"created_at":{"type":"string","format":"date-time"}},"required":["id","name","schema","style","format","config","created_at"]},"CredentialTemplateSchemaDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"schema_url":{"type":"string","format":"uri"},"name":{"type":"string"}},"required":["id","schema_url","name"]},"CredentialTemplateStyleDto":{"type":"object","properties":{"text-color":{"type":"string"},"background":{"type":"string"},"image":{"type":"string"},"background-image":{"type":"string"}},"required":["text-color","background","image","background-image"]},"CredentialTemplateConfigDto":{"type":"object","properties":{"vct":{"type":"string"},"valid_in":{"type":"integer"},"valid_at":{"type":"string","format":"date-time"},"expires_in":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"},"issuer_credential_configurations_supported_name":{"type":"string"},"disclosure_frame":{"type":"object","additionalProperties":true},"doctype":{"type":"string"},"type":{"type":"array","items":{"type":"string"}}},"required":["vct","valid_in","valid_at","expires_in","expires_at","issuer_credential_configurations_supported_name","disclosure_frame","doctype","type"]},"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"]},"InvalidPaginationParamError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_pagination_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"}}},"paths":{"/demo/issuer/templates":{"get":{"summary":"List credential templates (demo)","description":"Demo variant of `GET /issuer/templates` for the built-in demo Issue/Verify UI. Publicly reachable without an admin session; returns 404 unless `system.test_endpoints_enabled` is enabled.\n","operationId":"demoIssuerTemplatesFindAll","parameters":[{"in":"query","name":"order","required":false,"schema":{"type":"string","enum":["ASC","DESC"]}},{"in":"query","name":"order_by","required":false,"schema":{"type":"string"}},{"in":"query","name":"per_page","required":false,"schema":{"type":"integer","minimum":1,"maximum":50}},{"in":"query","name":"page","required":false,"schema":{"type":"integer","minimum":1}},{"in":"query","name":"search","required":false,"schema":{"type":"string"}},{"in":"query","name":"format","required":false,"schema":{"type":"string","enum":["dc+sd-jwt","jwt_vc_json","mso_mdoc"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialTemplatesResponseDto"}}},"description":"Credential templates successfully loaded"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidPaginationParamError"}}},"description":"Invalid query params"},"404":{"description":"Demo endpoints are disabled (`system.test_endpoints_enabled` is off)"}},"tags":["Demo Endpoints"]}}}}
```

## Create credential offer (demo)

> Demo variant of \`POST /issuer/offers\` for the built-in demo Issue/Verify UI. Publicly reachable without an admin session; returns 404 unless \`system.test\_endpoints\_enabled\` is enabled.<br>

```json
{"openapi":"3.1.0","info":{"title":"SVX Wallet","version":"1.2.0"},"tags":[{"name":"Demo Endpoints","description":"Public, unauthenticated endpoints that exist **only** to power the built-in demo Issue/Verify UI served at `/dashboard`. They are controlled solely by the `system.test_endpoints_enabled` configuration flag: when it is enabled they are publicly reachable (no admin session required), and when it is disabled every `/demo/*` endpoint returns `404`.\n\nEach demo endpoint mirrors the behaviour of its protected counterpart exactly (same request/response shapes) and only exposes safe read/create actions — no destructive methods are exposed. Access control for these endpoints is expected to be handled at the gateway. Only enable `system.test_endpoints_enabled` in trusted demo/interop environments.\n"}],"servers":[{"url":"/","description":"SVX Wallet deployment (relative)"}],"security":[{},{"bearerAuth":[]},{"mutualTLS":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"mutualTLS":{"type":"mutualTLS"}},"schemas":{"CredentialOfferRequest":{"properties":{"claims":{"description":"Claims to be included in the issued verifiable credential","properties":{},"type":"object"},"credential_configuration_ids":{"description":"Credential configuration identifiers to include in the offer.","items":{"type":"string"},"type":"array"},"grants":{"properties":{"authorization_code":{"properties":{"issuer_state":{"type":"string"}},"type":"object"},"urn:ietf:params:oauth:grant-type:pre-authorized_code":{"properties":{"pre-authorized_code":{"type":"string"},"tx_code":{"type":"object","description":"parameter to specify if tx_code will be required when using the pre-authorized_code to claim the credential offer.\n\nIf not provided, tx_code will not be required.\nIf empty object {} is set, tx_code will be required.\n","properties":{"length":{"type":"number","description":"specify the length of the tx_code.\nIn general tx_code will be sent separately of the credential offer and will require manual input, so a large value is not advised.\n"}}}},"type":"object"}},"type":"object"},"user_id":{"description":"user_id sent to the external resource server via resource hook","type":"string"}},"type":"object","required":["credential_configuration_ids","grants"]},"CredentialOfferResponse":{"properties":{"credential_offer_uri":{"type":"string","description":"credential offer URI\n"},"tx_code":{"type":"string","description":"randomly generated code that will be required when claiming the credential offer\n"}},"type":"object"},"InvalidCredentialOfferPayload":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_create_credential_offer_payload"],"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"]},"InvalidCredentialOfferClaims":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_create_credential_offer_claims"],"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"]}}},"paths":{"/demo/issuer/offers":{"post":{"summary":"Create credential offer (demo)","description":"Demo variant of `POST /issuer/offers` for the built-in demo Issue/Verify UI. Publicly reachable without an admin session; returns 404 unless `system.test_endpoints_enabled` is enabled.\n","operationId":"demoIssuerOffersCreate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialOfferRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialOfferResponse"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InvalidCredentialOfferPayload"},{"$ref":"#/components/schemas/InvalidCredentialOfferClaims"}]}}},"description":""},"404":{"description":"Demo endpoints are disabled (`system.test_endpoints_enabled` is off)"}},"tags":["Demo Endpoints"]}}}}
```

## List presentation templates (demo)

> Demo variant of \`GET /verifier/templates\` for the built-in demo Issue/Verify UI. Publicly reachable without an admin session; returns 404 unless \`system.test\_endpoints\_enabled\` is enabled.<br>

```json
{"openapi":"3.1.0","info":{"title":"SVX Wallet","version":"1.2.0"},"tags":[{"name":"Demo Endpoints","description":"Public, unauthenticated endpoints that exist **only** to power the built-in demo Issue/Verify UI served at `/dashboard`. They are controlled solely by the `system.test_endpoints_enabled` configuration flag: when it is enabled they are publicly reachable (no admin session required), and when it is disabled every `/demo/*` endpoint returns `404`.\n\nEach demo endpoint mirrors the behaviour of its protected counterpart exactly (same request/response shapes) and only exposes safe read/create actions — no destructive methods are exposed. Access control for these endpoints is expected to be handled at the gateway. Only enable `system.test_endpoints_enabled` in trusted demo/interop environments.\n"}],"servers":[{"url":"/","description":"SVX Wallet deployment (relative)"}],"security":[{},{"bearerAuth":[]},{"mutualTLS":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"mutualTLS":{"type":"mutualTLS"}},"schemas":{"PresentationTemplateType":{"type":"string","enum":["dcql","pex"]},"PaginatedPresentationTemplatesResponseDto":{"type":"object","properties":{"templates":{"type":"array","items":{"$ref":"#/components/schemas/PresentationTemplateModelDto"}},"meta":{"$ref":"#/components/schemas/Meta"}},"required":["templates","meta"]},"PresentationTemplateModelDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"purpose":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"input_descriptors":{"oneOf":[{"type":"array","items":{"$ref":"#/components/schemas/InputDescriptorPayload"}},{"type":"null"}]},"type":{"$ref":"#/components/schemas/PresentationTemplateType"},"dcql_query":{"anyOf":[{"$ref":"#/components/schemas/DCQLQueryPayload"},{"type":"null"}]}},"required":["id","name","purpose","created_at","updated_at","input_descriptors","type","dcql_query"]},"InputDescriptorPayload":{"type":"object","properties":{"id":{"type":"string"},"format":{"type":"object","additionalProperties":{"type":"object"}},"name":{"type":"string"},"purpose":{"type":"string"},"constraints":{"$ref":"#/components/schemas/ConstraintsDto"},"group":{"type":"array","items":{"type":"string"}}},"required":["id","constraints"]},"ConstraintsDto":{"type":"object","properties":{"limit_disclosure":{"type":"string","enum":["required","preferred"]},"fields":{"type":"array","items":{"$ref":"#/components/schemas/FieldsDto"}}}},"FieldsDto":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"purpose":{"type":"string"},"filter":{"$ref":"#/components/schemas/FilterDto"},"optional":{"type":"boolean"},"intent_to_retain":{"type":"boolean"}},"required":["path"]},"FilterDto":{"type":"object","properties":{"type":{"type":"string"},"const":{"description":"Any JSON value"},"pattern":{"type":"string"},"format":{"type":"string"},"exclusiveMinimum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"maximum":{"type":"number"},"enum":{"type":"array","items":{"type":"string"}},"not":{"$ref":"#/components/schemas/FilterNotPredicateDto"},"items":{"$ref":"#/components/schemas/FilterItemsDto"},"contains":{"$ref":"#/components/schemas/FilterContainsDto"}},"required":["type"]},"FilterNotPredicateDto":{"type":"object","properties":{"enum":{"type":"array","items":{"type":"string"}},"const":{"description":"Any JSON value"}}},"FilterItemsDto":{"type":"object","properties":{"type":{"type":"string"}},"required":["type"]},"FilterContainsDto":{"type":"object","properties":{"type":{"type":"string"},"const":{"description":"Any JSON value"}}},"DCQLQueryPayload":{"type":"object","properties":{"credentials":{"type":"array","items":{"$ref":"#/components/schemas/DCQLCredentialQueryDto"}},"credential_sets":{"type":"array","items":{"$ref":"#/components/schemas/DCQLCredentialSetQueryDto"}}},"required":["credentials"]},"DCQLCredentialQueryDto":{"type":"object","properties":{"id":{"type":"string"},"format":{"type":"string","enum":["dc+sd-jwt","jwt_vc_json","mso_mdoc"]},"multiple":{"type":"boolean"},"meta":{"type":"object","additionalProperties":true},"trusted_authorities":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"required":["type","values"]}},"require_cryptographic_holder_binding":{"type":"boolean"},"claims":{"type":"array","items":{"$ref":"#/components/schemas/DCQLClaimQueryDto"}},"claim_sets":{"type":"array","items":{"type":"array","items":{"type":"string"}}}},"required":["id","format"]},"DCQLClaimQueryDto":{"type":"object","properties":{"id":{"type":"string"},"namespace":{"type":"string"},"claim_name":{"type":"string"},"path":{"type":"array","description":"JSONPath-like segments; each entry can be string, number, or null.","items":{}},"values":{"type":"array","description":"Allowed value literals (string, number, boolean).","items":{}},"intent_to_retain":{"type":"boolean"}},"required":["path"]},"DCQLCredentialSetQueryDto":{"type":"object","properties":{"options":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"required":{"type":"boolean"}},"required":["options"]},"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"]},"InvalidPaginationParamError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_pagination_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"},"InvalidDateFilterValueError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_date_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"}}},"paths":{"/demo/verifier/templates":{"get":{"summary":"List presentation templates (demo)","description":"Demo variant of `GET /verifier/templates` for the built-in demo Issue/Verify UI. Publicly reachable without an admin session; returns 404 unless `system.test_endpoints_enabled` is enabled.\n","operationId":"demoVerifierTemplatesFindAll","parameters":[{"in":"query","name":"order","required":false,"schema":{"type":"string","enum":["ASC","DESC"]}},{"in":"query","name":"order_by","required":false,"schema":{"type":"string","enum":["name","created_at"]}},{"in":"query","name":"per_page","required":false,"schema":{"type":"integer","minimum":1,"maximum":50}},{"in":"query","name":"page","required":false,"schema":{"type":"integer","minimum":1}},{"in":"query","name":"search","required":false,"schema":{"type":"string","maxLength":50}},{"in":"query","name":"type","required":false,"schema":{"$ref":"#/components/schemas/PresentationTemplateType"}},{"in":"query","name":"created_at_from","required":false,"schema":{"type":"string","format":"date"}},{"in":"query","name":"created_at_to","required":false,"schema":{"type":"string","format":"date"}},{"in":"query","name":"updated_at_from","required":false,"schema":{"type":"string","format":"date"}},{"in":"query","name":"updated_at_to","required":false,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedPresentationTemplatesResponseDto"}}},"description":"Presentation templates successfully loaded"},"400":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InvalidPaginationParamError"},{"$ref":"#/components/schemas/InvalidDateFilterValueError"}]}}},"description":"Invalid query params"},"404":{"description":"Demo endpoints are disabled (`system.test_endpoints_enabled` is off)"}},"tags":["Demo Endpoints"]}}}}
```

## Create verifier presentation request (demo)

> Demo variant of \`POST /verifier/requests\` for the built-in demo Issue/Verify UI. Publicly reachable without an admin session; returns 404 unless \`system.test\_endpoints\_enabled\` is enabled.<br>

```json
{"openapi":"3.1.0","info":{"title":"SVX Wallet","version":"1.2.0"},"tags":[{"name":"Demo Endpoints","description":"Public, unauthenticated endpoints that exist **only** to power the built-in demo Issue/Verify UI served at `/dashboard`. They are controlled solely by the `system.test_endpoints_enabled` configuration flag: when it is enabled they are publicly reachable (no admin session required), and when it is disabled every `/demo/*` endpoint returns `404`.\n\nEach demo endpoint mirrors the behaviour of its protected counterpart exactly (same request/response shapes) and only exposes safe read/create actions — no destructive methods are exposed. Access control for these endpoints is expected to be handled at the gateway. Only enable `system.test_endpoints_enabled` in trusted demo/interop environments.\n"}],"servers":[{"url":"/","description":"SVX Wallet deployment (relative)"}],"security":[{},{"bearerAuth":[]},{"mutualTLS":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"mutualTLS":{"type":"mutualTLS"}},"schemas":{"CreatePresentationRequestPayloadDto":{"type":"object","properties":{"name":{"description":"Optional custom name for the presentation request. If omitted, the presentation template name is used.","type":"string"},"presentation_template_id":{"description":"Identifier of the presentation template to use for the request.","type":"string"},"response_mode":{"description":"Determines how the wallet submits the authorization response.","type":"string","enum":["direct_post","direct_post.jwt","dc_api","dc_api.jwt"]},"verifier_redirect_uri":{"description":"URI to redirect to after the wallet submits the authorization response.","type":"string"},"expected_origins":{"description":"List of expected origins for the Digital Credentials API response. At least one origin must be provided when specified.","type":"array","items":{"type":"string","maxLength":255},"minItems":1},"transaction_data":{"description":"Optional non-empty array of transaction data objects for the wallet to authorize as\npart of the presentation. Each entry is validated independently against the\ncredential_ids referenced by the presentation template.\n","type":"array","items":{"$ref":"#/components/schemas/TransactionDataDto"},"minItems":1}},"required":["presentation_template_id"]},"TransactionDataDto":{"type":"object","description":"Transaction data to associate with the presentation request, per the OpenID4VP\n[transaction_data](https://openid.net/specs/openid-4-verifiable-presentations-1_0.html#name-transaction-data-3)\nrequest parameter. `type` and `credential_ids` are always required; each `type` may define its own\nadditional properties, which are passed through as-is.\n","additionalProperties":true,"properties":{"type":{"description":"Identifies the transaction data category.\n","type":"string"},"credential_ids":{"description":"Non-empty array of ids that MUST already be present among the credentials referenced\nby the presentation template. Scopes which of the potentially multiple requested\ncredentials this transaction data applies to.\n","type":"array","items":{"type":"string"},"minItems":1}},"required":["type","credential_ids"]},"PresentationRequestResponseDto":{"type":"object","properties":{"presentation_request":{"$ref":"#/components/schemas/PresentationRequestModelDto"}},"required":["presentation_request"]},"PresentationRequestModelDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","description":"Display name of the presentation request."},"presentation_definition":{"oneOf":[{"$ref":"#/components/schemas/PresentationDefinition"},{"type":"null"}]},"dcql_query":{"oneOf":[{"$ref":"#/components/schemas/DCQLQueryPayload"},{"type":"null"}]},"transaction_data":{"type":["array","null"],"items":{"$ref":"#/components/schemas/TransactionDataDto"}},"status":{"type":"string","enum":["pending","failed","completed"]},"response_type":{"type":"string","enum":["vp_token","vp_token id_token"]},"response_mode":{"type":"string","enum":["direct_post","direct_post.jwt","dc_api","dc_api.jwt"]},"state":{"type":["string","null"]},"nonce":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"verifier_redirect_uri":{"type":["string","null"],"format":"uri"},"expected_origins":{"type":["array","null"],"items":{"type":"string"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name","presentation_definition","dcql_query","transaction_data","status","response_type","response_mode","state","nonce","expires_at","verifier_redirect_uri","expected_origins","created_at","updated_at"]},"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":{"type":"object","properties":{"filter":{"additionalProperties":true,"description":"http://json-schema.org/draft-07/schema","type":"object"},"path":{"items":{"type":"string"},"type":"array"},"optional":{"type":"boolean"}}},"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"},"DCQLQueryPayload":{"type":"object","properties":{"credentials":{"type":"array","items":{"$ref":"#/components/schemas/DCQLCredentialQueryDto"}},"credential_sets":{"type":"array","items":{"$ref":"#/components/schemas/DCQLCredentialSetQueryDto"}}},"required":["credentials"]},"DCQLCredentialQueryDto":{"type":"object","properties":{"id":{"type":"string"},"format":{"type":"string","enum":["dc+sd-jwt","jwt_vc_json","mso_mdoc"]},"multiple":{"type":"boolean"},"meta":{"type":"object","additionalProperties":true},"trusted_authorities":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"required":["type","values"]}},"require_cryptographic_holder_binding":{"type":"boolean"},"claims":{"type":"array","items":{"$ref":"#/components/schemas/DCQLClaimQueryDto"}},"claim_sets":{"type":"array","items":{"type":"array","items":{"type":"string"}}}},"required":["id","format"]},"DCQLClaimQueryDto":{"type":"object","properties":{"id":{"type":"string"},"namespace":{"type":"string"},"claim_name":{"type":"string"},"path":{"type":"array","description":"JSONPath-like segments; each entry can be string, number, or null.","items":{}},"values":{"type":"array","description":"Allowed value literals (string, number, boolean).","items":{}},"intent_to_retain":{"type":"boolean"}},"required":["path"]},"DCQLCredentialSetQueryDto":{"type":"object","properties":{"options":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"required":{"type":"boolean"}},"required":["options"]},"InvalidRequestPayloadError":{"properties":{"error":{"description":"Unique error identifier","enum":["invalid_request_payload"],"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":{"/demo/verifier/requests":{"post":{"summary":"Create verifier presentation request (demo)","description":"Demo variant of `POST /verifier/requests` for the built-in demo Issue/Verify UI. Publicly reachable without an admin session; returns 404 unless `system.test_endpoints_enabled` is enabled.\n","operationId":"demoVerifierRequestsCreate","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePresentationRequestPayloadDto"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationRequestResponseDto"}}},"description":"Presentation request successfully created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequestPayloadError"}}},"description":"Invalid request payload"},"404":{"description":"Demo endpoints are disabled (`system.test_endpoints_enabled` is off)"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":""}},"tags":["Demo Endpoints"]}}}}
```
