API Errors and Codes
The IZO™+ Multi Cloud Connect API reports problems with standard HTTP status codes and a small JSON error body. Beyond transport-level errors, the order journey also reports per-component validation states inside otherwise successful responses, so a 200 does not always mean every component succeeded: always check the component status.
HTTP status codes
|
Status |
Meaning |
When you see it |
|
200 |
Success |
The request was accepted; inspect the body (including any component-level status). |
|
400 |
Bad request |
A required field or query parameter is missing or failed validation. |
|
401 |
Unauthorised |
The bearer token is missing, invalid, or expired. |
|
500 |
Internal error |
An unexpected server-side error; safe to retry with backoff. |
Error response shapes
400 and 500 return a JSON object with these fields:
{
"reason": "Bad Request",
"message": "One or more fields failed validation.",
"referenceError": "NA",
"code": "INTERNALERROR"
}
|
Field |
Meaning |
|
reason |
Short reason phrase (for example Bad Request). |
|
message |
Human-readable detail (for example One or more fields failed validation.). |
|
referenceError |
A reference for support, or NA. |
|
code |
A machine code. The specification currently enumerates INTERNALERROR. |
401 returns an authentication-challenge object:
{
"faultcode": "Server",
"faultstring": "Authentication challenge issued"
}
Treat a 401 as a signal to obtain a fresh token and retry once (see Authentication and Tokens).
Component validation states
Qualification can succeed at the request level (solutionStatus: SUCCESS, HTTP 200) while individual components are still validating or have failed. Each component in the quote carries its own status, message, and validationStatus. Observed values include:
|
Field |
Example values |
|
solutionStatus |
SUCCESS (with errorCode populated on failure) |
|
component status / message |
SUCCESS / OK |
|
validationStatus |
Component validation is in progress, Component validation failed, and settled success states |
Poll GET /quote/validationStatus (or re-fetch the quote) until every component reaches a settled state before checkout.