ჯავშანი
სტუმრის მიერ არჩეული ოთახი, კვების ტიპი და ტარიფი HMS-ს გადაეცემა BookingPushRQ სტრუქტურით. იგივე ენდპოინტი ამუშავებს გაუქმებასა და ცვლილებასაც — ამისთვის type ველში გაგზავნეთ Cancel ან Modify. სრული პროცესისთვის იხილეთ სახელმძღვანელო დაჯავშნის პროცესი.
ჯავშნის გადაცემა (BookingPushRQ)#
/external/online/channel/bookingავთენტიფიკაცია: Authorization: Bearer · ტანი: application/json
HMS-ში აღრიცხავს ერთ ან მეტ ჯავშანს. ID თქვენს მხარეს გენერირებული უნიკალური ჯავშნის კოდია; როცა იმავე ID მნიშვნელობით აგზავნით Modify, ჩანაწერი განახლდება, Cancel კი მას გააუქმებს. როცა ერთი და იმავე ოთახის ტიპისა და კვების ტიპის რამდენიმე ოთახი იყიდება, თითოეული ოთახი ცალკე RoomStays ელემენტია, ხოლო NumberOfUnits იზრდება: 1, 2, 3…
გადახდის ტიპისთვის საკრედიტო ბარათი (9) ბარათის მონაცემები PaymentCard ველში იგზავნება; სხვა გადახდის ტიპებისთვის ეს ველი არ გაგზავნოთ. ბარათის მონაცემების დამუშავებისას PCI DSS-ის მოთხოვნები თქვენზეც ვრცელდება.
მოთხოვნის ტანი
BookingPushRQ.Bookings[]object[]სავალდებულოhotelIDstringსავალდებულოIDstringსავალდებულოtypestringსავალდებულოBookModifyCancelcreateDateTimedatetimecheckinDate / checkoutDatedateსავალდებულოYYYY-MM-DD.RoomStays[]object[]სავალდებულოroomTypeIDstringსავალდებულოitems[].id ოთახების სიიდან.roomNamestringratePlanIDstringსავალდებულოaccommodationTypes[].id ოთახების სიიდან.ratePlanNamestringtypestringBookModifyCancelNumberOfUnitsstringსავალდებულოcheckinDate / checkoutDatedateსავალდებულოGuestCountobjectსავალდებულოadult და child რაოდენობები.PerDayRatesobjectcurrency და PerDayRate[]: stayDate, baseRate, hotelServiceFees.TotalobjectსავალდებულოamountAfterTaxes, amountOfTaxes, currency.PaymentCardobjectCardHolder{fullname, address, country, city}, cardNumber, expireDate (MMYY), cardCode, seriesCode (CVV).PrimaryGuests[]object[]სავალდებულოname, surname, PhoneNumber, email, CountryCode.ChildGuests[]object[]age სავალდებულოა; name, surname, year, date, detail — არასავალდებულო.SpecialRequest[]object[]text. ემატება ჯავშნის შენიშვნებს.extras[]object[]name, note, person, piece, price, priceMode, priceTotal, stockID (id პაკეტების სიიდან).TotalobjectსავალდებულოamountAfterTaxes, amountOfTaxes, extraTotal, currency.პასუხი
200 BookingPushRS ობიექტი. წარმატებისას — Success: true და HMS-ის ჯავშნის ID (HMS_ID); შეცდომისას — Error შეტყობინება და BookingConfirmNumbers[].Error[].
შეცდომის პასუხები
- 200
Error: No available data could be found. (01, ტანი ცარიელია ან ვერ დამუშავდა) · Hotel registration not found on HMS. (02, სასტუმრო ონლაინ არხთან დაკავშირებული არ არის) · Could not register. · Failed to parse information.
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": "სტანდარტული ოთახი",
"ratePlanID": "2",
"ratePlanName": "საუზმით",
"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": "გვიანი ჩასახლება, დაახლოებით 23:00-ზე."
}
],
"extras": [
{
"name": "ვახშამი",
"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"
}
}
]
}
}'const res = await fetch("https://test.hms.gen.tr/external/online/channel/booking", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.HMS_TOKEN}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"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": "სტანდარტული ოთახი",
"ratePlanID": "2",
"ratePlanName": "საუზმით",
"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": "გვიანი ჩასახლება, დაახლოებით 23:00-ზე."
}
],
"extras": [
{
"name": "ვახშამი",
"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"
}
}
]
}
})
});
const data = await res.json();$ch = curl_init('https://test.hms.gen.tr/external/online/channel/booking');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('HMS_TOKEN'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'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' => 'სტანდარტული ოთახი',
'ratePlanID' => '2',
'ratePlanName' => 'საუზმით',
'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' => 'გვიანი ჩასახლება, დაახლოებით 23:00-ზე.',
],
],
'extras' => [
[
'name' => 'ვახშამი',
'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',
],
],
],
],
]),
]);
$data = json_decode(curl_exec($ch), true);{
"BookingPushRS": {
"Success": true,
"BookingConfirmNumbers": [
{
"confirmTime": 1755500000,
"bookingID": 48213,
"bookingType": "Book",
"HMS_ID": 48213
}
]
}
}{
"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."
}
]
}
]
}
}