Reserva

La habitación, el régimen y la tarifa que eligió el huésped se envían a HMS en una estructura BookingPushRQ. El mismo endpoint gestiona cancelaciones y modificaciones: basta con enviar type como Cancel o Modify. Consulta la guía Flujo de reserva para ver el proceso completo.

Enviar una reserva (BookingPushRQ)#

POST/external/online/channel/booking

Autenticación: Authorization: Bearer · Cuerpo: application/json

Registra una o varias reservas en HMS. ID es el código de reserva único que genera tu sistema; si envías Modify con el mismo ID, se actualiza el registro, y si envías Cancel, se cancela. Cuando se venden varias habitaciones del mismo tipo de habitación y régimen, cada habitación es un elemento RoomStays independiente, con NumberOfUnits 1, 2, 3…

Con el tipo de pago tarjeta de crédito (9), los datos de la tarjeta van en PaymentCard; omite este campo con los demás tipos de pago. Si manejas datos de tarjetas, quedas dentro del alcance de PCI DSS.

Cuerpo de la solicitud

BookingPushRQ.Bookings[]object[]obligatorio
Lista de reservas. Normalmente, un solo elemento.
hotelIDstringobligatorio
ID del hotel.
IDstringobligatorio
Código de reserva único en tu sistema. También se guarda como número de voucher.
typestringobligatorio
Tipo de operación.
BookModifyCancel
createDateTimedatetime
Fecha y hora de creación de la reserva (ISO 8601).
checkinDate / checkoutDatedateobligatorio
Fechas de entrada y salida, YYYY-MM-DD.
RoomStays[]object[]obligatorio
Habitaciones vendidas.
roomTypeIDstringobligatorio
items[].id de la lista de habitaciones.
roomNamestring
Nombre del tipo de habitación (informativo).
ratePlanIDstringobligatorio
accommodationTypes[].id de la lista de habitaciones.
ratePlanNamestring
Nombre del régimen (informativo).
typestring
Tipo de operación de la habitación.
BookModifyCancel
NumberOfUnitsstringobligatorio
Orden de las habitaciones con el mismo tipo de habitación y régimen: 1, 2, 3…
checkinDate / checkoutDatedateobligatorio
Fechas de entrada y salida de la habitación.
GuestCountobjectobligatorio
Número de adult y child.
PerDayRatesobject
currency y PerDayRate[]: stayDate, baseRate, hotelServiceFees.
Totalobjectobligatorio
Total de la habitación: amountAfterTaxes, amountOfTaxes, currency.
PaymentCardobject
Solo para el tipo de pago 9 (tarjeta de crédito). CardHolder{fullname, address, country, city}, cardNumber, expireDate (MMYY), cardCode, seriesCode (CVV).
PrimaryGuests[]object[]obligatorio
Huéspedes principales: name, surname, PhoneNumber, email, CountryCode.
ChildGuests[]object[]
Niños. age es obligatorio; name, surname, year, date y detail son opcionales.
SpecialRequest[]object[]
Notas del huésped y condiciones de cancelación: text. Se añaden a las observaciones de la reserva.
extras[]object[]
Extras y paquetes vendidos: name, note, person, piece, price, priceMode, priceTotal, stockID (id de la lista de paquetes).
Totalobjectobligatorio
Total general: amountAfterTaxes, amountOfTaxes, extraTotal, currency.

Respuesta

200 Objeto BookingPushRS. Si la operación tiene éxito, Success: true y el ID de reserva de HMS (HMS_ID); si falla, un mensaje en Error y BookingConfirmNumbers[].Error[].

Respuestas de error

  • 200 Error: No available data could be found. (01, cuerpo vacío o que no se puede analizar) · Hotel registration not found on HMS. (02, hotel no vinculado al canal online) · Could not register. · Failed to parse information.
Solicitud
curl -X POST "https://test.hms.gen.tr/external/online/channel/booking" \
  -H "Authorization: Bearer $HMS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "BookingPushRQ": {
        "Bookings": [
            {
                "hotelID": "1000",
                "ID": "4811174883",
                "type": "Book",
                "createDateTime": "2026-08-01T08:32:11:293Z",
                "checkinDate": "2026-08-18",
                "checkoutDate": "2026-08-20",
                "RoomStays": [
                    {
                        "roomTypeID": "2",
                        "roomName": "Habitación Estándar",
                        "ratePlanID": "2",
                        "ratePlanName": "Alojamiento y desayuno",
                        "type": "Book",
                        "NumberOfUnits": "1",
                        "checkinDate": "2026-08-18",
                        "checkoutDate": "2026-08-20",
                        "GuestCount": {
                            "adult": 2,
                            "child": 1
                        },
                        "PerDayRates": {
                            "currency": "TRY",
                            "PerDayRate": [
                                {
                                    "stayDate": "2026-08-18",
                                    "baseRate": "965.00",
                                    "hotelServiceFees": "0"
                                },
                                {
                                    "stayDate": "2026-08-19",
                                    "baseRate": "965.00",
                                    "hotelServiceFees": "0"
                                }
                            ]
                        },
                        "Total": {
                            "amountAfterTaxes": "1930.00",
                            "amountOfTaxes": "175.45",
                            "currency": "TRY"
                        }
                    }
                ],
                "PrimaryGuests": [
                    {
                        "name": "Ayşe",
                        "surname": "Demir",
                        "PhoneNumber": "+905551112233",
                        "email": "[email protected]",
                        "CountryCode": "TR"
                    }
                ],
                "ChildGuests": [
                    {
                        "age": 7
                    }
                ],
                "SpecialRequest": [
                    {
                        "text": "Llegada tarde, hacia las 23:00."
                    }
                ],
                "extras": [
                    {
                        "name": "Cena",
                        "note": "",
                        "person": 2,
                        "piece": 1,
                        "price": "400.00",
                        "priceMode": null,
                        "priceTotal": "400.00",
                        "stockID": 12
                    }
                ],
                "Total": {
                    "amountAfterTaxes": "2330.00",
                    "amountOfTaxes": "211.82",
                    "extraTotal": "400.00",
                    "currency": "TRY"
                }
            }
        ]
    }
}'
Respuesta · 200
{
    "BookingPushRS": {
        "Success": true,
        "BookingConfirmNumbers": [
            {
                "confirmTime": 1755500000,
                "bookingID": 48213,
                "bookingType": "Book",
                "HMS_ID": 48213
            }
        ]
    }
}
Respuesta · 200 (error)
{
    "BookingPushRS": {
        "Error": "Hotel registration not found on HMS.",
        "BookingConfirmNumbers": [
            {
                "bookingID": null,
                "bookingType": null,
                "confirmTime": 1755500000,
                "Error": [
                    {
                        "code": "02",
                        "text": "Hotel registration not found on HMS."
                    }
                ]
            }
        ]
    }
}
Última actualización: 21 de septiembre de 2026¿Has encontrado un error? Avísanos