Credentials

Issue a credential directly (management)

Issue a verifiable credential to a holder from a credential template. Provide the template id, the holder's public JWK (used as the credential's key-binding confirmation key so only that holder can present it), and the claim values keyed by claim name as declared on the template's schema. Optionally pass a source_session_id to bridge a Didit verification session to the issued credential (the capture-to-issue link). The credential is signed with the tenant's active signing key and returned as a dc+sd-jwt string. The referenced template must belong to the authenticated tenant, otherwise the request returns 404. Requires Authorization: Bearer <tenant API key>.

post/v1/credentials/issue

Request body

template_idstring uuid required

UUID of the credential template to issue from. Must reference a template owned by the authenticated tenant; otherwise the request returns 404. The template's schema determines the vct, format, and which claims are selectively disclosable.

holder_jwkobject required

The holder's public key as a JSON Web Key (JWK). It is bound into the credential as the key-binding confirmation (cnf) key, so only the wallet holding the matching private key can later present the credential.

claimsobject required

The credential claim values, keyed by claim name. Each key should match an attribute name declared on the template's schema; the corresponding value populates that claim in the issued credential.

source_session_idstring

Optional identifier of the Didit verification session whose captured data backs this credential (the capture-to-issue bridge). Stored on the issued credential for traceability. Defaults to an empty string.

Example request

{
  "template_id": "b2c3d4e5-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
  "holder_jwk": {
    "kty": "EC",
    "crv": "P-256",
    "x": "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU",
    "y": "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0"
  },
  "claims": {
    "given_name": "Ada",
    "family_name": "Lovelace",
    "membership_tier": "gold"
  },
  "source_session_id": "11111111-2222-3333-4444-555555555555"
}

Response

No response body

Changes