Developers
Errors
Errors are structured and deliberately generic. Insurer diagnostics, upstream text and internal identifiers are never returned to the caller.
| Code | HTTP | Meaning |
|---|---|---|
| invalid_request | 400 | The payload failed validation. `error.details` lists each field problem. |
| pii_not_allowed | 400 | Personal data was present. Remove it — traveller identity is generated by EDME-GO. |
| not_allowed | 400 / 409 | The requested scenario or lifecycle transition is not permitted in the sandbox. |
| not_found | 404 | The reference does not exist in the current sandbox session. |
| rate_limited | 429 | Fair-use limit reached: 30 requests per 10 minutes. |
| upstream_unavailable | 503 | The sandbox is temporarily unavailable. Retry with backoff. |
Error shape
{
"ok": false,
"mode": "uat_gateway",
"request_id": "req_c19a4f70",
"error": {
"code": "pii_not_allowed",
"message": "The public sandbox never accepts traveller personal data.",
"details": ["travellers[0].email"]
},
"meta": { "sandbox": true }
}Retry guidance
- Retry only 429 and 503 responses, with exponential backoff and jitter.
- Never retry 400 or 404 — the request will fail identically.
- Always log
request_id; it is the reference our team needs.