Boeking

De kamer, het verzorgingstype en het tarief die de gast heeft gekozen, worden als BookingPushRQ-structuur naar HMS doorgestuurd. Hetzelfde endpoint verwerkt ook annuleringen en wijzigingen: zet type dan op Cancel of Modify. Zie de handleiding Boekingsflow voor het volledige proces.

Boeking doorsturen (BookingPushRQ)#

POST/external/online/channel/booking

Authenticatie: Authorization: Bearer · Body: application/json

Legt een of meer boekingen vast in HMS. ID is de unieke boekingscode die je zelf aanmaakt; stuur je Modify met dezelfde ID, dan wordt het record bijgewerkt, met Cancel wordt het geannuleerd. Worden meerdere kamers van hetzelfde kamertype en verzorgingstype verkocht, dan is elke kamer een apart RoomStays-item met NumberOfUnits 1, 2, 3…

Bij betaalmethode creditcard (9) gaan de kaartgegevens in PaymentCard; laat dit veld weg bij andere betaalmethoden. Omdat je kaartgegevens verwerkt, val je onder PCI DSS.

Body van het verzoek

BookingPushRQ.Bookings[]object[]verplicht
Lijst met boekingen. Meestal één item.
hotelIDstringverplicht
Hotel-ID.
IDstringverplicht
Unieke boekingscode in jouw systeem. Wordt ook opgeslagen als vouchernummer.
typestringverplicht
Soort bewerking.
BookModifyCancel
createDateTimedatetime
Tijdstip waarop de boeking is aangemaakt (ISO 8601).
checkinDate / checkoutDatedateverplicht
In- en uitcheckdatum, YYYY-MM-DD.
RoomStays[]object[]verplicht
Verkochte kamers.
roomTypeIDstringverplicht
items[].id uit de kamerlijst.
roomNamestring
Naam van het kamertype (ter informatie).
ratePlanIDstringverplicht
accommodationTypes[].id uit de kamerlijst.
ratePlanNamestring
Naam van het verzorgingstype (ter informatie).
typestring
Soort bewerking voor de kamer.
BookModifyCancel
NumberOfUnitsstringverplicht
Volgnummer van kamers met hetzelfde kamer- en verzorgingstype: 1, 2, 3…
checkinDate / checkoutDatedateverplicht
In- en uitcheckdatum van de kamer.
GuestCountobjectverplicht
Aantallen adult en child.
PerDayRatesobject
currency en PerDayRate[]: stayDate, baseRate, hotelServiceFees.
Totalobjectverplicht
Totaal voor de kamer: amountAfterTaxes, amountOfTaxes, currency.
PaymentCardobject
Alleen bij betaalmethode 9 (creditcard). CardHolder{fullname, address, country, city}, cardNumber, expireDate (MMYY), cardCode, seriesCode (CVV).
PrimaryGuests[]object[]verplicht
Hoofdgast(en): name, surname, PhoneNumber, email, CountryCode.
ChildGuests[]object[]
Kinderen. age is verplicht; name, surname, year, date en detail zijn optioneel.
SpecialRequest[]object[]
Opmerkingen van de gast en annuleringsvoorwaarden: text. Wordt samengevoegd in de opmerkingen bij de boeking.
extras[]object[]
Verkochte extra’s/pakketten: name, note, person, piece, price, priceMode, priceTotal, stockID (id uit de pakketlijst).
Totalobjectverplicht
Totaalbedrag: amountAfterTaxes, amountOfTaxes, extraTotal, currency.

Antwoord

200 BookingPushRS-object. Bij succes Success: true en de boekings-ID in HMS (HMS_ID); bij een fout een Error-melding en BookingConfirmNumbers[].Error[].

Foutantwoorden

  • 200 Error: No available data could be found. (01, lege of onleesbare body) · Hotel registration not found on HMS. (02, hotel niet gekoppeld aan het online kanaal) · Could not register. · Failed to parse information.
Verzoek
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": "Standaardkamer",
                        "ratePlanID": "2",
                        "ratePlanName": "Logies en ontbijt",
                        "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": "Laat inchecken, rond 23:00."
                    }
                ],
                "extras": [
                    {
                        "name": "Diner",
                        "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"
                }
            }
        ]
    }
}'
Antwoord · 200
{
    "BookingPushRS": {
        "Success": true,
        "BookingConfirmNumbers": [
            {
                "confirmTime": 1755500000,
                "bookingID": 48213,
                "bookingType": "Book",
                "HMS_ID": 48213
            }
        ]
    }
}
Antwoord · 200 (fout)
{
    "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."
                    }
                ]
            }
        ]
    }
}
Laatst bijgewerkt: 21 september 2026Fout gevonden? Laat het ons weten