Problem details

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"
}

Problem types

type suffixStatusMeaning
validation-failed422Field errors in errors (field → messages).
booking-rule-violation422Valid input that breaks a rule, such as minimum stay or occupancy. restrictions may list codes.
membership-required422A member-only rate requested without verified loyalty details.
loyalty-verification-failed422Member number and last name don't match.
promotion-invalid / promotion-ineligible422Unknown code, or not applicable (see reasons).
modification-not-allowed422The rate plan doesn't permit stay changes.
idempotency-key-reused422Same key, different request body.
idempotency-key-required400POST /reservations without an Idempotency-Key.
writes-disabled403The API is in read-only mode.
not-found404Unknown resource, or one that belongs to another partner.
room-unavailable409Inventory is gone. available_units shows what's left.
invalid-state409For example, cancelling a cancelled reservation or re-booking a used quote.
cancellation-fee-changed409The fee rose above your expected_fee.
idempotency-request-in-progress409Retry after Retry-After seconds.
quote-expired410Request a new quote.
rate-limited429See Retry-After.
internal-error500Unexpected server error. request_id identifies the failed request.

Request IDs

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.

Contacting support

Log the X-Request-ID of every failed call. Quoting it is the fastest way for your partner manager to trace what happened.