Error Response Format
All APIs return errors in a JSON:API-styleerrors array:
| Field | Description |
|---|---|
id | Unique error instance identifier — useful for support requests |
status | HTTP status code |
code | Machine-readable error code |
title | Short human-readable error category |
detail | Specific description of what went wrong |
The
errors field is always an array — even for single errors. Always parse errors[0] rather than treating the response as a flat object.HTTP Status Codes
| Status | Code | Description |
|---|---|---|
| OK | 200 | Request succeeded |
| Created | 201 | Resource created successfully |
| No Content | 204 | Request succeeded with no response body (e.g. revocation, webhook deletion) |
| Bad Request | 400 | Invalid or malformed parameters |
| Unauthorized | 401 | Authentication token is missing or expired |
| Not Found | 404 | The requested resource doesn’t exist |
| Internal Server Error | 500 | An unexpected server error — contact the YoID team |
Common Errors
401 Unauthorized — Token Expired
401 Unauthorized — Token Expired
Existing Account — Empty Temp Password
Existing Account — Empty Temp Password
Common in the YOMA ecosystem where youth interact with multiple partners. If Thandi was already onboarded by another partner,
POST /users returns 201 Created with an empty tempPassword — not an error code, not a different status. The only indicator is the empty string.What to do: Check tempPassword. If empty, the account already exists — skip onboarding emails and proceed directly to credential issuance.400 Bad Request — Validation Error
400 Bad Request — Validation Error
The request body contains invalid data.
404 Not Found — Resource Missing
404 Not Found — Resource Missing
A template ID, presentation ID, or credential ID is incorrect or has been deleted.Fix: Verify the ID is correct and the resource hasn’t been archived.
500 Internal Server Error
500 Internal Server Error
An unexpected server error. Not caused by your request. Retry after a short delay.Fix: If persistent, contact the YoID team at [email protected] and include the error
id.
