> 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/credential-templates.md).

# Credential Templates

## List credential templates

> List credential templates created and managed by the Wallet. The list can be filtered, sorted, and paginated by using the available query parameters.<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":{"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":{"/issuer/templates":{"get":{"summary":"List credential templates","description":"List credential templates created and managed by the Wallet. The list can be filtered, sorted, and paginated by using the available query parameters.\n","operationId":"CredentialTemplatesController_findAll","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"}},"tags":["Credential Templates"]}}}}
```

## Create credential template

> Create a credential template by providing necessary information such as the linked schema, credential format, and other relevant metadata. The created template is then be used for issuing credentials.\
> \
> \---\
> \
> Restriction for \`dc+sd-jwt\` format:\
> \
> \- \`status\` is a registered JWT claims and MUST always be disclosed. \`status\` cannot be included in \*\*config.disclosure\_frame.\_sd\*\*<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":{"CreateCredentialTemplatePayloadDto":{"type":"object","properties":{"template":{"$ref":"#/components/schemas/CreateCredentialTemplateDto"}},"required":["template"]},"CreateCredentialTemplateDto":{"type":"object","properties":{"name":{"type":"string","maxLength":128},"schema_id":{"type":"string","format":"uuid"},"style":{"$ref":"#/components/schemas/CreateCredentialTemplateStyleDto"},"config":{"$ref":"#/components/schemas/CreateCredentialTemplateConfigDto"}},"required":["name","schema_id","style"]},"CreateCredentialTemplateStyleDto":{"type":"object","properties":{"text-color":{"type":"string"},"background":{"type":"string"},"image":{"type":"string","format":"uri"},"background-image":{"type":"string","format":"uri"}},"required":["text-color","background"]},"CreateCredentialTemplateConfigDto":{"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","maxItems":3,"items":{"type":"string"}}}},"CredentialTemplateResponseDto":{"type":"object","properties":{"template":{"$ref":"#/components/schemas/CredentialTemplateModelDto"}},"required":["template"]},"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"]},"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"}}},"paths":{"/issuer/templates":{"post":{"summary":"Create credential template","description":"Create a credential template by providing necessary information such as the linked schema, credential format, and other relevant metadata. The created template is then be used for issuing credentials.\n\n---\n\nRestriction for `dc+sd-jwt` format:\n\n- `status` is a registered JWT claims and MUST always be disclosed. `status` cannot be included in **config.disclosure_frame._sd**\n","operationId":"CredentialTemplatesController_create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCredentialTemplatePayloadDto"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialTemplateResponseDto"}}},"description":"Credential template successfully created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequestPayloadError"}}},"description":"Invalid request payload"}},"tags":["Credential Templates"]}}}}
```

## Get credential template

> Get credential template by ID The template contains necessary information for credential issuance such as the linked schema, credential format, and other relevant metadata.<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":{"CredentialTemplateResponseDto":{"type":"object","properties":{"template":{"$ref":"#/components/schemas/CredentialTemplateModelDto"}},"required":["template"]},"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"]},"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"},"CredentialTemplateNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["credential_template_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":{"/issuer/templates/{id}":{"get":{"summary":"Get credential template","description":"Get credential template by ID The template contains necessary information for credential issuance such as the linked schema, credential format, and other relevant metadata.\n","operationId":"CredentialTemplatesController_findOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialTemplateResponseDto"}}},"description":"Credential template successfully loaded"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidPathParamError"}}},"description":"Invalid path param"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialTemplateNotFoundError"}}},"description":"Credential template not found"}},"tags":["Credential Templates"]}}}}
```

## Update credential template

> Update credential template by providing necessary information such as the linked schema, credential format, and other relevant metadata. The updated template is then used for issuing credentials.<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":{"UpdateCredentialTemplatePayloadDto":{"type":"object","properties":{"template":{"$ref":"#/components/schemas/UpdateCredentialTemplateDto"}},"required":["template"]},"UpdateCredentialTemplateDto":{"type":"object","properties":{"name":{"type":"string","maxLength":128},"style":{"$ref":"#/components/schemas/CreateCredentialTemplateStyleDto"},"config":{"$ref":"#/components/schemas/CreateCredentialTemplateConfigDto"}},"required":["name","style"]},"CreateCredentialTemplateStyleDto":{"type":"object","properties":{"text-color":{"type":"string"},"background":{"type":"string"},"image":{"type":"string","format":"uri"},"background-image":{"type":"string","format":"uri"}},"required":["text-color","background"]},"CreateCredentialTemplateConfigDto":{"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","maxItems":3,"items":{"type":"string"}}}},"CredentialTemplateResponseDto":{"type":"object","properties":{"template":{"$ref":"#/components/schemas/CredentialTemplateModelDto"}},"required":["template"]},"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"]},"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"},"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"},"CredentialTemplateNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["credential_template_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":{"/issuer/templates/{id}":{"put":{"summary":"Update credential template","description":"Update credential template by providing necessary information such as the linked schema, credential format, and other relevant metadata. The updated template is then used for issuing credentials.\n","operationId":"CredentialTemplatesController_update","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCredentialTemplatePayloadDto"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialTemplateResponseDto"}}},"description":"Credential template successfully updated"},"400":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InvalidPathParamError"},{"$ref":"#/components/schemas/InvalidRequestPayloadError"}]}}},"description":"Invalid path param or payload"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialTemplateNotFoundError"}}},"description":"Credential template not found"}},"tags":["Credential Templates"]}}}}
```

## Delete credential template

> Delete credential template by ID. Deleted templates can no longer be used for credential issuance. Ensure to review the implications before deleting a credential template.<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"},"CredentialTemplateNotFoundError":{"properties":{"error":{"description":"Unique error identifier","enum":["credential_template_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":{"/issuer/templates/{id}":{"delete":{"summary":"Delete credential template","description":"Delete credential template by ID. Deleted templates can no longer be used for credential issuance. Ensure to review the implications before deleting a credential template.\n","operationId":"CredentialTemplatesController_deleteOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Credential template deleted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidPathParamError"}}},"description":"Invalid path param"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialTemplateNotFoundError"}}},"description":"Credential template not found"}},"tags":["Credential Templates"]}}}}
```
