Run in production
Errors
Errors are RFC 9457 problem details. Switch on the type, and quote the request ID when you need help.
Errors are RFC 9457 problem details. Switch on the type, and quote the request ID when you need help.
Errors use RFC 9457 problem details with Content-Type: application/problem+json. Switch on type, not on title or detail, which may change.
{
"type": "https://developers.konghotels.example/problems/writes-disabled",
"title": "Write operations are disabled",
"status": 403,
"detail": "The Kong Hotels partner API is currently read-only. POST requests will be enabled in a later phase.",
"instance": "/quotes",
"request_id": "1929cbf3-f6ed-4611-83ec-6880c4458152"
}
type suffix | Status | Meaning |
|---|---|---|
validation-failed | 422 | Field errors in errors (field → messages). |
booking-rule-violation | 422 | Valid input that breaks a rule, such as minimum stay or occupancy. restrictions may list codes. |
membership-required | 422 | A member-only rate requested without verified loyalty details. |
loyalty-verification-failed | 422 | Member number and last name don't match. |
promotion-invalid / promotion-ineligible | 422 | Unknown code, or not applicable (see reasons). |
modification-not-allowed | 422 | The rate plan doesn't permit stay changes. |
idempotency-key-reused | 422 | Same key, different request body. |
idempotency-key-required | 400 | POST /reservations without an Idempotency-Key. |
writes-disabled | 403 | The API is in read-only mode. |
not-found | 404 | Unknown resource, or one that belongs to another partner. |
room-unavailable | 409 | Inventory is gone. available_units shows what's left. |
invalid-state | 409 | For example, cancelling a cancelled reservation or re-booking a used quote. |
cancellation-fee-changed | 409 | The fee rose above your expected_fee. |
idempotency-request-in-progress | 409 | Retry after Retry-After seconds. |
quote-expired | 410 | Request a new quote. |
rate-limited | 429 | See Retry-After. |
internal-error | 500 | Unexpected server error. request_id identifies the failed request. |
Every response, success or error, includes an X-Request-ID header. We reuse the gateway's Kong-Request-ID, or your own X-Request-ID if you send one.