Skip to main content
Most integrations don’t need this page. If you can issue against a published preset, do that. See Issue a credential. Custom templates are for cases where you need a credential shape that no preset covers (private credentials, internal-only schemes, experiments).

Overview

A credential template defines the schema for a verifiable credential: what attributes it carries, their types, and which are always disclosed. Create it once and reuse it to issue many credentials with different data. Use a custom template when:
  • No published preset matches the credential you want to issue.
  • You’re building a private or internal credential that shouldn’t live in a shared catalogue.
  • You need fine-grained control over alwaysDisclosed, attribute types, or the type URI.
The type field you set in a credential template is what verifiers later match against in the credential presentation flow.

Pick the right endpoint for your format

The API exposes a separate POST endpoint per credential format. Use the one that matches the credential you want to define:
  • SD-JWT: POST /templates/credentials/sd-jwt
  • mDoc: POST /templates/credentials/mdoc
A generic POST /templates/credentials exists too (it dispatches by credentialFormat in the body), but the format-specific endpoints have a single, format-shaped request body and are simpler to work with.

Request (SD-JWT)

Attribute fields

Each attribute is a field on the credential. The following properties configure each one:

Response

HTTP 201 Created

Key response fields

Save the id from the response. You’ll need it as the credentialTemplateId in Issue a credential.