Documentation Index
Fetch the complete documentation index at: https://docs.didx.co.za/llms.txt
Use this file to discover all available pages before exploring further.
Three objects, easy to confuse
Three terms appear across the API and are easy to blur together. The mental model:Templates describe shape. Presets are pre-built shapes. Issuances describe specific events.
Template
Template
The schema for a credential or a presentation request. Defines what attributes exist, their types, and whether they are
alwaysDisclosed. Define once, use for many issuances.Example: a “University Student Card” credential template that specifies studentId, fullName, enrollmentDate, and degreeProgram.Templates live under /templates/credentials (for credential templates) and /templates/presentations (for presentation templates).Preset
Preset
A named, pre-built starting point for a credential or presentation template, defined at an ecosystem level. A bank, a university, or a national scheme authors presets relevant to its community. DIDx also publishes presets for cross-cutting patterns. Instead of defining every attribute from scratch, you can create a template “from preset” by referencing a
presetId (for example, didx:basic-identity), then override only the parts you need.Presets are exposed through /presets/credentials and /presets/presentations. Use them for common credential shapes where a standardised starting point already exists.Issuance / Presentation Request
Issuance / Presentation Request
The actual instance. A specific credential offered to a specific user, or a specific request sent to a specific user. This is the object that gets a status, a webhook, and an audit trail.An issuance progresses through one of these statuses:
A presentation request progresses through:
The same names appear as suffixes on the corresponding webhook event types — for example,
| Status | Meaning |
|---|---|
offered | The issuance has been created and the credential offered to the holder; awaiting holder acceptance. |
completed | The holder accepted the offer and the credential was issued in full. |
partiallyIssued | The holder accepted but only a subset of the offered credentials was successfully issued. |
failed | Issuance failed (for example, the holder rejected the offer or a downstream error occurred). |
expired | The offer was not actioned within its validity window. |
| Status | Meaning |
|---|---|
requested | The presentation request has been created and dispatched; awaiting holder response. |
verified | The holder presented credentials and verification succeeded. |
failed | Verification failed (for example, the holder rejected the request or a credential failed validation). |
expired | The request was not actioned within its validity window. |
openid4vc.issuance.offered, openid4vc.verification.verified. One additional webhook event, openid4vc.verification.data, is emitted only when the underlying Paradym project is configured to share presentation data via webhooks; this is not enabled by default.
