Rezervare

Camera, tipul de masă și tariful alese de oaspete sunt transmise către HMS într-o structură BookingPushRQ. Același endpoint gestionează anulările și modificările, prin trimiterea câmpului type cu valoarea Cancel sau Modify. Pentru procesul complet, consultați ghidul Fluxul de rezervare.

Transmiterea unei rezervări (BookingPushRQ)#

POST/external/online/channel/booking

Autentificare: Authorization: Bearer · Corp: application/json

Înregistrează una sau mai multe rezervări în HMS. ID este codul unic al rezervării, generat în sistemul dumneavoastră; trimiterea Modify cu același ID actualizează înregistrarea, iar Cancel o anulează. Când se vând mai multe camere cu același tip de cameră și tip de masă, fiecare cameră este un element RoomStays separat, cu NumberOfUnits 1, 2, 3…

Pentru tipul de plată card de credit (9), datele cardului se trimit în PaymentCard; pentru celelalte tipuri de plată omiteți acest câmp. Prelucrarea datelor de card vă aduce în sfera de aplicare a PCI DSS.

Corpul cererii

BookingPushRQ.Bookings[]object[]obligatoriu
Lista de rezervări. De obicei un singur element.
hotelIDstringobligatoriu
ID-ul hotelului.
IDstringobligatoriu
Codul unic al rezervării în sistemul dumneavoastră. Se salvează și ca număr de voucher.
typestringobligatoriu
Tipul operațiunii.
BookModifyCancel
createDateTimedatetime
Momentul creării rezervării (ISO 8601).
checkinDate / checkoutDatedateobligatoriu
Datele de check-in și check-out, YYYY-MM-DD.
RoomStays[]object[]obligatoriu
Camerele vândute.
roomTypeIDstringobligatoriu
items[].id din lista de camere.
roomNamestring
Denumirea tipului de cameră (informativ).
ratePlanIDstringobligatoriu
accommodationTypes[].id din lista de camere.
ratePlanNamestring
Denumirea tipului de masă (informativ).
typestring
Tipul operațiunii pentru cameră.
BookModifyCancel
NumberOfUnitsstringobligatoriu
Numărul de ordine al camerelor cu același tip de cameră/masă: 1, 2, 3…
checkinDate / checkoutDatedateobligatoriu
Datele de check-in și check-out pentru cameră.
GuestCountobjectobligatoriu
Numărul de adulți (adult) și de copii (child).
PerDayRatesobject
currency și PerDayRate[]: stayDate, baseRate, hotelServiceFees.
Totalobjectobligatoriu
Totalul camerei: amountAfterTaxes, amountOfTaxes, currency.
PaymentCardobject
Doar pentru tipul de plată 9 (card de credit). CardHolder{fullname, address, country, city}, cardNumber, expireDate (MMYY), cardCode, seriesCode (CVV).
PrimaryGuests[]object[]obligatoriu
Oaspeții principali: name, surname, PhoneNumber, email, CountryCode.
ChildGuests[]object[]
Copiii. age este obligatoriu; name, surname, year, date, detail sunt opționale.
SpecialRequest[]object[]
Notele oaspetelui și condițiile de anulare: text. Se concatenează în observațiile rezervării.
extras[]object[]
Servicii suplimentare/pachete vândute: name, note, person, piece, price, priceMode, priceTotal, stockID (id din lista de pachete).
Totalobjectobligatoriu
Totalul general: amountAfterTaxes, amountOfTaxes, extraTotal, currency.

Răspuns

200 Obiect BookingPushRS. La succes: Success: true și ID-ul rezervării în HMS (HMS_ID); la eșec: un mesaj Error și BookingConfirmNumbers[].Error[].

Răspunsuri de eroare

  • 200 Error: No available data could be found. (01, corp gol sau imposibil de parsat) · Hotel registration not found on HMS. (02, hotelul nu este conectat la canalul online) · Could not register. · Failed to parse information.
Cerere
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": "Cameră Standard",
                        "ratePlanID": "2",
                        "ratePlanName": "Mic dejun inclus",
                        "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 târziu, în jurul orei 23:00."
                    }
                ],
                "extras": [
                    {
                        "name": "Cină",
                        "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"
                }
            }
        ]
    }
}'
Răspuns · 200
{
    "BookingPushRS": {
        "Success": true,
        "BookingConfirmNumbers": [
            {
                "confirmTime": 1755500000,
                "bookingID": 48213,
                "bookingType": "Book",
                "HMS_ID": 48213
            }
        ]
    }
}
Răspuns · 200 (eroare)
{
    "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."
                    }
                ]
            }
        ]
    }
}
Ultima actualizare: 21 septembrie 2026Ați găsit o greșeală? Anunțați-ne