Prenotazione

La camera, il trattamento e la tariffa scelti dall’ospite vengono inviati a HMS in una struttura BookingPushRQ. Lo stesso endpoint gestisce cancellazioni e modifiche, inviando type come Cancel o Modify. Per il processo completo consulta la guida Flusso di prenotazione.

Invia una prenotazione (BookingPushRQ)#

POST/external/online/channel/booking

Autenticazione: Authorization: Bearer · Corpo: application/json

Registra una o più prenotazioni in HMS. ID è il codice univoco della prenotazione generato dal tuo sistema; inviando Modify con lo stesso ID aggiorni il record, con Cancel lo cancelli. Quando si vendono più camere della stessa tipologia e con lo stesso trattamento, ogni camera è un elemento RoomStays separato con NumberOfUnits 1, 2, 3…

Per il tipo di pagamento carta di credito (9) i dati della carta vanno inseriti in PaymentCard; ometti il campo per gli altri tipi di pagamento. Trattare dati di carte ti fa rientrare nell’ambito PCI DSS.

Corpo della richiesta

BookingPushRQ.Bookings[]object[]obbligatorio
Elenco delle prenotazioni. Di solito un solo elemento.
hotelIDstringobbligatorio
ID dell’hotel.
IDstringobbligatorio
Codice univoco della prenotazione nel tuo sistema. Viene salvato anche come numero di voucher.
typestringobbligatorio
Tipo di operazione.
BookModifyCancel
createDateTimedatetime
Data e ora di creazione della prenotazione (ISO 8601).
checkinDate / checkoutDatedateobbligatorio
Date di check-in e check-out, YYYY-MM-DD.
RoomStays[]object[]obbligatorio
Camere vendute.
roomTypeIDstringobbligatorio
items[].id dall’elenco camere.
roomNamestring
Nome della tipologia di camera (informativo).
ratePlanIDstringobbligatorio
accommodationTypes[].id dall’elenco camere.
ratePlanNamestring
Nome del trattamento (informativo).
typestring
Tipo di operazione per la camera.
BookModifyCancel
NumberOfUnitsstringobbligatorio
Numero progressivo delle camere con la stessa tipologia e lo stesso trattamento: 1, 2, 3…
checkinDate / checkoutDatedateobbligatorio
Date di check-in e check-out della camera.
GuestCountobjectobbligatorio
Numero di adult e child.
PerDayRatesobject
currency e PerDayRate[]: stayDate, baseRate, hotelServiceFees.
Totalobjectobbligatorio
Totale della camera: amountAfterTaxes, amountOfTaxes, currency.
PaymentCardobject
Solo per il tipo di pagamento 9 (carta di credito). CardHolder{fullname, address, country, city}, cardNumber, expireDate (MMYY), cardCode, seriesCode (CVV).
PrimaryGuests[]object[]obbligatorio
Ospiti principali: name, surname, PhoneNumber, email, CountryCode.
ChildGuests[]object[]
Bambini. age è obbligatorio; name, surname, year, date, detail sono facoltativi.
SpecialRequest[]object[]
Note dell’ospite e condizioni di cancellazione: text. Vengono concatenate nelle note della prenotazione.
extras[]object[]
Extra e pacchetti venduti: name, note, person, piece, price, priceMode, priceTotal, stockID (id dall’elenco dei pacchetti).
Totalobjectobbligatorio
Totale complessivo: amountAfterTaxes, amountOfTaxes, extraTotal, currency.

Risposta

200 Oggetto BookingPushRS. In caso di successo Success: true e l’ID della prenotazione in HMS (HMS_ID); in caso di errore un messaggio Error e BookingConfirmNumbers[].Error[].

Risposte di errore

  • 200 Error: No available data could be found. (01, corpo vuoto o non interpretabile) · Hotel registration not found on HMS. (02, hotel non collegato al canale online) · Could not register. · Failed to parse information.
Richiesta
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": "Camera Standard",
                        "ratePlanID": "2",
                        "ratePlanName": "Pernottamento e colazione",
                        "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": "Arrivo in tarda serata, verso le 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"
                }
            }
        ]
    }
}'
Risposta · 200
{
    "BookingPushRS": {
        "Success": true,
        "BookingConfirmNumbers": [
            {
                "confirmTime": 1755500000,
                "bookingID": 48213,
                "bookingType": "Book",
                "HMS_ID": 48213
            }
        ]
    }
}
Risposta · 200 (errore)
{
    "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."
                    }
                ]
            }
        ]
    }
}
Ultimo aggiornamento: 21 settembre 2026Hai trovato un errore? Segnalacelo