Error codes
Errors arrive in three shapes: authentication errors as HTTP 401, business-rule errors inside an HTTP 200 with success: false, and booking-push errors in BookingPushRS.Error. This page lists every code.
Authentication errors#
| HTTP | Response | Cause |
|---|---|---|
| 401 | {"success": false, "error": "Authentication required"} | Token missing, unknown or the Bearer format is malformed. |
| 200 | message: partner_is_not_found | Login: key pair did not match. |
| 200 | message: hotel_is_not_found | Login: no hotel for hotelSeoUrl. |
| 200 | message: hotel_permission_is_not_found | Login: the partner is not authorised for the hotel. |
message codes#
Snake_case text codes, returned together with success: false.
| message | Endpoint | Description |
|---|---|---|
hotel_id_is_not_found | Most | hotelID was not sent. |
start_date_is_not_found / end_date_is_not_found | Availability | Date parameter missing. |
online_cupon_is_not_found | Coupon | Code unknown, inactive, expired or not available. |
mail_host_is_not_found | E-mail settings | No SMTP configured for the online channel. |
hotel_company_info_could_not_found | Virtual POS details | No payment provider configured for the hotel. |
bank_info_is_not_found | Payment (type 3) | No bank account enabled for online sales. |
required_input_info_not_submitted | Payment (type 10) | A required field is missing; errors[] lists which ones. |
country_info_sent_incorrectly | Payment (type 10) | countryID is not in the country list. |
there_is_missing_info_in_the_shopping_cart | Payment (type 10) | A basket item lacks id, name, piece or price; errors[] points to it. |
Room list error codes#
The room list (POST /external/online/roomType) returns a numeric errorCode and a human-readable errorMessage. The message is translated according to the language parameter; write your code against errorCode.
| errorCode | Meaning | What to do |
|---|---|---|
10001 | Hotel not found | Check hotelID. |
10002 | Missing parameter (hotelID, startDate, endDate, adultCount) | Send the required fields. |
10003 | Hotel closed to online sales | The hotel must enable the online channel in the panel. |
10004 | No room type open to channels | The hotel must open room types for online sale. |
10022 | Invalid parameters | Check-in today or later, check-out after check-in, at most 30 nights, 1–40 adults, 0–10 children. |
20001 | Not enough adult availability | Suggest other dates or occupancy. |
20002 | Not enough child availability | No rooms with child capacity left. |
20003 / 20004 | Not enough adult and child availability | Total capacity cannot meet the request. |
When there is availability but a specific room type cannot be sold, its roomCount is 0 and the reason is in roomRestrictionMessage: closed_to_checkin, closed_to_checkout, passive_sales, minimum_stay, maximum_stay, closed_to_arrival, price_not_found.
Booking push errors#
Instead of Success: true, BookingPushRS carries an Error field:
{
"BookingPushRS": {
"Error": "Could not register.",
"BookingConfirmNumbers": [
{
"confirmTime": 1755500000,
"bookingID": 0,
"bookingType": "Book",
"HMS_ID": null
}
]
}
}| Error | Code | Cause |
|---|---|---|
| No available data could be found. | 01 | Empty body or JSON could not be parsed; Bookings[0].hotelID missing. |
| Hotel registration not found on HMS. | 02 | The hotel is not linked to the online channel, or the channel is inactive. |
| Could not register. | — | Error while saving (invalid room/board type ID, inconsistent dates). |
| Failed to parse information. | — | The structure lacks expected fields. |
Retry guidance#
- 401: log in once more and retry the request.
- 500 and network errors: up to 3 attempts at 1 s, 2 s, 4 s. When retrying a booking push, reuse the same
ID; aBookwith an existing code updates the record instead of creating a duplicate. - success: false: do not retry; fix the parameter or offer the guest an alternative.
- Include the full request (secrets and card data masked), the response and the time in support tickets.