Credential Designs: EuPid and Mdl
A credential design defines a credential type: its format bindings, its claims with display labels, and per-claim policy such as selective disclosure. This walkthrough creates two designs through the credential-design API (API reference):
- EuPid, a European personal identity credential in
dc+sd-jwtformat, bound by its verifiable credential type (vct) and credential configuration id. - Mdl, a mobile driving licence in
mso_mdocformat, bound by the ISO 18013-5 doctypeorg.iso.18013.5.1.mDL.
EuPid (SD-JWT)
SD-JWT claims carry an sdPolicy. Claims marked ALWAYS are selectively disclosable: the holder chooses whether to reveal them at presentation time. Here family name, given name, and issuing country are disclosable while date of birth and nationality are always present:
- Overview
- Request
- Response
Create EuPid SD-JWT design
Endpoint: POST /api/credential-design/v1/designs/credentials
Captured response: 201 Created
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
The display layer is attached separately. Upload the EuPid logo asset, create localized render variants, and attach those variants to the credential design:
- Overview
- Request
- Response
Upload EuPid logo asset
Endpoint: POST /api/credential-design/v1/designs/credentials/00000000-0000-4000-8000-000000000000/assets/en/LOGO
Captured response: 201 Created
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
- Overview
- Request
- Response
Create EuPid render variant (en)
Endpoint: POST /api/credential-design/v1/designs/render/variants
Captured response: 201 Created
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
- Overview
- Request
- Response
Create EuPid render variant (nl)
Endpoint: POST /api/credential-design/v1/designs/render/variants
Captured response: 201 Created
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
- Overview
- Request
- Response
Attach render variants to EuPid design
Endpoint: PUT /api/credential-design/v1/designs/credentials/00000000-0000-4000-8000-000000000000
Captured response: 200 OK
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
Mdl (ISO mdoc)
mdoc claims are namespace-qualified: every claim path starts with the ISO 18013-5 namespace. The portrait is transported as base64 image data and driving privileges as a structured array:
- Overview
- Request
- Response
Create Mdl mdoc design
Endpoint: POST /api/credential-design/v1/designs/credentials
Captured response: 201 Created
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
The Mdl uses the same asset and render-variant flow:
- Overview
- Request
- Response
Upload Mdl logo asset
Endpoint: POST /api/credential-design/v1/designs/credentials/00000000-0000-4000-8000-000000000000/assets/en/LOGO
Captured response: 201 Created
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
- Overview
- Request
- Response
Create Mdl render variant (en)
Endpoint: POST /api/credential-design/v1/designs/render/variants
Captured response: 201 Created
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
- Overview
- Request
- Response
Attach render variant to Mdl design
Endpoint: PUT /api/credential-design/v1/designs/credentials/00000000-0000-4000-8000-000000000000
Captured response: 200 OK
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
Listing designs
- Overview
- Request
- Response
List credential designs
Endpoint: GET /api/credential-design/v1/designs/credentials
Captured response: 200 OK
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
The issuer service uses the bound credentialConfigurationId values to publish entries in credential_configurations_supported. For SD-JWT VC credentials, the bound vct also drives the hosted VCT metadata; the render variants and assets above are what wallets use to display the branded credential.