Reserva

O quarto, o regime de alimentação e a tarifa escolhidos pelo hóspede são enviados ao HMS em uma estrutura BookingPushRQ. O mesmo endpoint trata cancelamentos e alterações: basta enviar type como Cancel ou Modify. Veja o guia Fluxo de reserva para o processo completo.

Enviar uma reserva (BookingPushRQ)#

POST/external/online/channel/booking

Autenticação: Authorization: Bearer · Corpo: application/json

Registra uma ou mais reservas no HMS. ID é o código único da reserva gerado do seu lado; enviar Modify com o mesmo ID atualiza o registro, e Cancel o cancela. Quando vários quartos do mesmo tipo de quarto e regime de alimentação são vendidos, cada quarto é um item RoomStays separado, com NumberOfUnits 1, 2, 3…

No tipo de pagamento cartão de crédito (9), os dados do cartão vão em PaymentCard; omita o campo nos demais tipos de pagamento. Ao manipular dados de cartão, você fica sujeito aos requisitos do PCI DSS.

Corpo da requisição

BookingPushRQ.Bookings[]object[]obrigatório
Lista de reservas. Geralmente um único item.
hotelIDstringobrigatório
ID do hotel.
IDstringobrigatório
Código único da reserva no seu sistema. Também é gravado como número do voucher.
typestringobrigatório
Tipo de operação.
BookModifyCancel
createDateTimedatetime
Data e hora de criação da reserva (ISO 8601).
checkinDate / checkoutDatedateobrigatório
Datas de check-in e check-out, YYYY-MM-DD.
RoomStays[]object[]obrigatório
Quartos vendidos.
roomTypeIDstringobrigatório
items[].id da lista de quartos.
roomNamestring
Nome do tipo de quarto (informativo).
ratePlanIDstringobrigatório
accommodationTypes[].id da lista de quartos.
ratePlanNamestring
Nome do regime de alimentação (informativo).
typestring
Tipo de operação do quarto.
BookModifyCancel
NumberOfUnitsstringobrigatório
Sequência dos quartos com o mesmo tipo de quarto/regime: 1, 2, 3…
checkinDate / checkoutDatedateobrigatório
Datas de check-in e check-out do quarto.
GuestCountobjectobrigatório
Quantidades de adult e child.
PerDayRatesobject
currency e PerDayRate[]: stayDate, baseRate, hotelServiceFees.
Totalobjectobrigatório
Total do quarto: amountAfterTaxes, amountOfTaxes, currency.
PaymentCardobject
Somente para o tipo de pagamento 9 (cartão de crédito). CardHolder{fullname, address, country, city}, cardNumber, expireDate (MMYY), cardCode, seriesCode (CVV).
PrimaryGuests[]object[]obrigatório
Hóspede(s) principal(is): name, surname, PhoneNumber, email, CountryCode.
ChildGuests[]object[]
Crianças. age é obrigatório; name, surname, year, date e detail são opcionais.
SpecialRequest[]object[]
Observações do hóspede e condições de cancelamento: text. São concatenadas às observações da reserva.
extras[]object[]
Extras/pacotes vendidos: name, note, person, piece, price, priceMode, priceTotal, stockID (id da lista de pacotes).
Totalobjectobrigatório
Total geral: amountAfterTaxes, amountOfTaxes, extraTotal, currency.

Resposta

200 Objeto BookingPushRS. Em caso de sucesso, Success: true e o ID da reserva no HMS (HMS_ID); em caso de falha, uma mensagem em Error e BookingConfirmNumbers[].Error[].

Respostas de erro

  • 200 Error: No available data could be found. (01, corpo vazio ou ilegível) · Hotel registration not found on HMS. (02, hotel não vinculado ao canal online) · Could not register. · Failed to parse information.
Requisição
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": "Quarto Standard",
                        "ratePlanID": "2",
                        "ratePlanName": "Café da manhã incluído",
                        "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": "Check-in tardio, por volta das 23:00."
                    }
                ],
                "extras": [
                    {
                        "name": "Jantar",
                        "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"
                }
            }
        ]
    }
}'
Resposta · 200
{
    "BookingPushRS": {
        "Success": true,
        "BookingConfirmNumbers": [
            {
                "confirmTime": 1755500000,
                "bookingID": 48213,
                "bookingType": "Book",
                "HMS_ID": 48213
            }
        ]
    }
}
Resposta · 200 (erro)
{
    "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 atualização: 21 de setembro de 2026Encontrou um erro? Avise-nos