Buchung

Das vom Gast gewählte Zimmer, die Verpflegungsart und der Preis werden als BookingPushRQ-Struktur an HMS übermittelt. Derselbe Endpunkt verarbeitet auch Stornierungen und Änderungen, wenn type als Cancel oder Modify gesendet wird. Den vollständigen Ablauf beschreibt der Leitfaden Buchungsablauf.

Buchung übermitteln (BookingPushRQ)#

POST/external/online/channel/booking

Authentifizierung: Authorization: Bearer · Body: application/json

Erfasst eine oder mehrere Buchungen in HMS. ID ist der eindeutige Buchungscode, den Sie auf Ihrer Seite erzeugen; ein Modify mit derselben ID aktualisiert den Datensatz, ein Cancel storniert ihn. Werden mehrere Zimmer desselben Zimmertyps und derselben Verpflegungsart verkauft, ist jedes Zimmer ein eigenes RoomStays-Element mit NumberOfUnits 1, 2, 3…

Bei der Zahlungsart Kreditkarte (9) werden die Kartendaten unter PaymentCard gesendet; bei anderen Zahlungsarten lassen Sie das Feld weg. Wenn Sie Kartendaten verarbeiten, unterliegen Sie PCI DSS.

Request-Body

BookingPushRQ.Bookings[]object[]erforderlich
Liste der Buchungen. In der Regel ein Element.
hotelIDstringerforderlich
Hotel-ID.
IDstringerforderlich
Eindeutiger Buchungscode in Ihrem System. Wird auch als Voucher-Nummer gespeichert.
typestringerforderlich
Vorgangsart.
BookModifyCancel
createDateTimedatetime
Erstellungszeitpunkt der Buchung (ISO 8601).
checkinDate / checkoutDatedateerforderlich
Anreise- und Abreisedatum, YYYY-MM-DD.
RoomStays[]object[]erforderlich
Verkaufte Zimmer.
roomTypeIDstringerforderlich
items[].id aus der Zimmerliste.
roomNamestring
Name des Zimmertyps (zur Information).
ratePlanIDstringerforderlich
accommodationTypes[].id aus der Zimmerliste.
ratePlanNamestring
Name der Verpflegungsart (zur Information).
typestring
Vorgangsart für das Zimmer.
BookModifyCancel
NumberOfUnitsstringerforderlich
Laufende Nummer der Zimmer mit demselben Zimmertyp und derselben Verpflegungsart: 1, 2, 3…
checkinDate / checkoutDatedateerforderlich
Anreise- und Abreisedatum des Zimmers.
GuestCountobjecterforderlich
Anzahl adult und child.
PerDayRatesobject
currency und PerDayRate[]: stayDate, baseRate, hotelServiceFees.
Totalobjecterforderlich
Zimmersumme: amountAfterTaxes, amountOfTaxes, currency.
PaymentCardobject
Nur bei Zahlungsart 9 (Kreditkarte). CardHolder{fullname, address, country, city}, cardNumber, expireDate (MMYY), cardCode, seriesCode (CVV).
PrimaryGuests[]object[]erforderlich
Hauptgast bzw. Hauptgäste: name, surname, PhoneNumber, email, CountryCode.
ChildGuests[]object[]
Kinder. age ist erforderlich; name, surname, year, date, detail sind optional.
SpecialRequest[]object[]
Gästehinweise und Stornobedingungen: text. Wird in die Buchungsbemerkungen übernommen.
extras[]object[]
Verkaufte Extras/Pakete: name, note, person, piece, price, priceMode, priceTotal, stockID (id aus der Paketliste).
Totalobjecterforderlich
Gesamtsumme: amountAfterTaxes, amountOfTaxes, extraTotal, currency.

Antwort

200 BookingPushRS-Objekt. Bei Erfolg Success: true und die HMS-Buchungs-ID (HMS_ID); bei Fehlschlag eine Error-Meldung und BookingConfirmNumbers[].Error[].

Fehlerantworten

  • 200 Error: No available data could be found. (01, leerer oder nicht auswertbarer Body) · Hotel registration not found on HMS. (02, Hotel nicht mit dem Online-Kanal verbunden) · Could not register. · Failed to parse information.
Anfrage
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": "Standardzimmer",
                        "ratePlanID": "2",
                        "ratePlanName": "Übernachtung mit Frühstück",
                        "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": "Späte Anreise, gegen 23:00 Uhr."
                    }
                ],
                "extras": [
                    {
                        "name": "Abendessen",
                        "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"
                }
            }
        ]
    }
}'
Antwort · 200
{
    "BookingPushRS": {
        "Success": true,
        "BookingConfirmNumbers": [
            {
                "confirmTime": 1755500000,
                "bookingID": 48213,
                "bookingType": "Book",
                "HMS_ID": 48213
            }
        ]
    }
}
Antwort · 200 (Fehler)
{
    "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."
                    }
                ]
            }
        ]
    }
}
Zuletzt aktualisiert: 21. September 2026Fehler gefunden? Schreiben Sie uns