"success": false; account-level errors (HTTP 402) may use a different format."success": false, it is an error, even with HTTP 200."status_code": 410 in the body.DELETE /car-rental/rate-types/{id}:{
"success": false,
"status_code": 410,
"errors": {
"id": ["This rate type can't be deleted because it has rates that depend on them"],
"error_message": "This rate type can't be deleted because it has rates that depend on them"
},
"data": []
}errors.error_message joins every message with line breaks, ready to show to a person.status_code 401 or 403 in the body and the message in errors.error_message.message.errors instead.errors lists the messages per field.{
"success": false,
"message": "422 Unprocessable Content",
"errors": {
"pick_up_date": ["The pick up date is required"],
"all_errors": ["The pick up date is required"]
},
"status_code": 422,
"data": []
}errors.all_errors, an array whose single entry joins every message with line breaks; it is not a field name.status_code 410 on others."status_code": 404, and so does deleting one on most endpoints; the message text varies.GET /fields/{dbcolumn} is the exception: an unknown field returns a real HTTP 410 "Field doesn't exists".id in the response.Retry-After header before you retry.{
"success": false,
"message": "Too Many Attempts.",
"status_code": 429,
"data": []
}| HTTP status | Meaning | What to do |
|---|---|---|
200 with "success": false | Business rule or authentication error | Read errors.error_message. |
| 400 | The filters parameter is not valid JSON | Fix the JSON. See Filtering and incremental sync. |
| 401 | The Authorization header is missing, or the user behind the token is disabled | See Authentication. |
| 3xx | The account moved to another region or was deactivated | Do not follow the redirect; contact HQ Support. |
| 402 | The account is suspended or not available in this region | Contact HQ Support. |
| 403 | The user's role does not allow this action, and the message can read Page not found | Use a user with the right role. |
| 404 | Unknown path or record | Check the base URL, the path and the ID. Some updates create a record instead (see above). |
| 405 | The path exists, but not with this HTTP method | Use the method shown in the endpoint reference. |
| 422 | Validation failed, or the record could not be saved | Read errors. |
| 429 | Rate limit exceeded | Wait Retry-After seconds. |
| 500 | Unexpected error | Retry later. If it persists, contact HQ Support with the request time, endpoint and payload. If message is You are not allowed to see this reservation, do not retry: the user cannot access that reservation. |