Error Response Format
Every error response follows the same structure:Error Codes
Validation Rules
Every field is validated on the server. One error is returned at a time — the first problem found. Fix it and resend to see the next, if there is one. Here are the rules for each field:Date Format
Strict ISO 8601. No exceptions.
When a date fails validation, the error message includes what you sent and what’s expected:
Phone Number Format
E.164 format required. Starts with+, followed by country code and number. No spaces, dashes, or parentheses.
Every phone number in these pages is drawn from the range reserved for
documentation and fiction, so an example copied into a live test cannot reach a
real person. A live check-in with a phone number can send that guest a welcome
message — use your own number, or a reserved one, never a plausible-looking
invented one.
Common Mistakes
Sending dates in DD.MM.YYYY format
Sending dates in DD.MM.YYYY format
This is the most common error in the first days of an integration, and it comes from sending a date in the format the source system displays rather than converting it first.Fix: Convert all dates to
YYYY-MM-DD before sending. For example, 18.02.2026 → 2026-02-18.Missing country code on phone numbers
Missing country code on phone numbers
Sending
2025550143 instead of +12025550143. The phone field requires the full international number with country code.Fix: Prepend the country code with + — +90 for Turkey, +49 for Germany, +44 for the United Kingdom.Sending roomNumber as an integer
Sending roomNumber as an integer
Sending
{"roomNumber": 301} instead of {"roomNumber": "301"}. Room numbers are strings because they can contain letters (e.g., "301A", "P2-105").Fix: Always send room numbers as strings: "301", not 301.Forgetting the Idempotency-Key header
Forgetting the Idempotency-Key header
All POST endpoints require an
Idempotency-Key header. Without it, you’ll receive a 400 error.Fix: Include Idempotency-Key: your_unique_key in every POST request. See Idempotency for key format recommendations.Reusing the same Idempotency-Key for different operations
Reusing the same Idempotency-Key for different operations
Each unique operation needs its own key. If you use the same key for two different guests on the same endpoint, the second request will return the first guest’s cached response.Fix: Use a key format like
{operation}_{pmsGuestId}_{date}. Example: checkin_RES2026001_20260218.Checking in a guest without checking out the previous one
Checking in a guest without checking out the previous one