Overview
With a credential template defined, you can now issue a specific credential by providing the template ID and the youth’s actual data. The API returns URIs that deliver the credential to the youth’s wallet.
Endpoint
Request
Request Body
Response
HTTP 200 OK
Key Response Fields
Two IDs, different purposes. The top-level id (iss_cm7d9cq5600pwk3zq3kmpg8uc) is the issuance ID — use this for revocation and webhook correlation. The nested credentials[0].id is the individual credential ID. For revocation, always use the top-level id, not credentials[0].id.
What Happens on the Youth’s Side
At this point, the credential exists as an offer — it hasn’t reached the youth’s wallet yet. The next step (Step 4) delivers it. But once delivered:
- If Thandi has already activated her wallet, the credential appears as a pending item she can accept or reject
- If she hasn’t activated yet, the credential waits in custody until she signs in
- She reviews the credential attributes in her wallet before accepting
- Once accepted, the credential is stored permanently in her wallet and available for presentation to verifiers
Tracking Issuance Status
Rather than polling, use webhooks to track what happens after issuance: