API Reservation10: відмінності між версіями

Матеріал з expertsolution
Перейти до навігації Перейти до пошуку
Рядок 343: Рядок 343:
     7. HotelIDs - int[], масив цілих чисел, ID готелю категорії номерів.
     7. HotelIDs - int[], масив цілих чисел, ID готелю категорії номерів.


=='''GetGroupRooms'''==
==GetGroupRooms==
Функція GetGroupRooms отримує за вхідними параметрами список категорій номерів із зазначенням кількості вільних номерів кожної категорії.
Функція GetGroupRooms отримує за вхідними параметрами список категорій номерів із зазначенням кількості вільних номерів кожної категорії.



Версія за 06:48, 15 травня 2025

Формат запитів JSON

Форматом переданих і прийнятих даних є протокол обміну JSON. Кодування запитів і відповідей UTF8. Приклад запиту і відповіді наведено нижче. {

  "firstName": "Ім'я",
  "lastName": "Прізвище",
  "адреса": {
      "streetAddress": "Швидке ш., 101, кв.101",
      "city": "Місто",
      "postalCode": 101101
  },
  "phoneNumbers": [
      "+380(98)-765-43-21",
      "+380(98)-123-45-67"
  ]

}

Формат даних

  • Формат дати/часу: "yyyy-MM-dd HH:mm:ss";
  • Формат дати: "yyyy-MM-dd"
  • Формат часу: "HH:mm"
  • Роздільник типів із плаваючою крапкою(double): "."

Опис функцій спілкування

GetCompanyInfo

Функція GetCompanyInfo повертає інформацію про компанію, або помилку.

Вхідні параметри:

  1. CompanyCode - string, довжина рядка до 20 символів. Ідентифікаційний код компанії.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Еrror, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки. Якщо компанія за кодом не знайдена код помилки - CompanyNotFound
   4. CompanyID - int, ідентифікатор компанії.
   5. CompanyCodeID - int, ідентифікатор коду компанії.
   6. CompanyName - string, назва компанії
   7. CompanyEmail - string, ел. пошта компанії
   8. CompanyFax - рядок, факс компанії
   9. ComanyPhoneNumber - string, номер контактного телефону компанії
   10. IsPrepayment - bool, працює за передоплатою

Get Rooms

Функція GetRooms отримує за вхідними параметрами список категорій номерів із зазначенням кількості вільних номерів кожної категорії.

Вхідні параметри:

   1. HotelID - int, від 1 до +∞, ID готелю
   2. DateArrival - date, дата заїзду - ведеться ігнорування часу.
   3. DateDeparture - date. Дата виїзду - ведеться ігнорування часу.
   4. TimeArrival - string, 5 символів - час заїзду (н/р: "14:00"), якщо час заїзду не вказано, передавати порожній рядок, у такому разі час заїзду буде проставлятися в автоматичному режимі.
   5. Adults - int, від 1 до 1000. Кількість дорослих людей
   6. Childs - int, від 0 до 1000. Якщо кількість дітей немає на формі (визначається параметром), приходить порожній рядок.
   7. ChildAges - int[], масив цілих чисел, що означають вік кожної дитини. Якщо кількість дітей більша за розмірність наступного за ним масиву вікових груп, то повертається помилка.
   8. IsExtraBedUsed - bool, логічне значення. Можливість використання додаткових місць для видачі номерів.
   9. CompanyCodeID - int, ідентифікатор коду компанії, 0 - немає, >0 - визначає ID компанії під якою відбувається бронювання
   10. TimeDeparture - string, 5 символів - час виїзду (н/р: "12:00"), якщо час виїзду не вказано, передавати порожній рядок, у такому разі час виїзду буде проставлятися в автоматичному режимі.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, , 1 - Function Еrror, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. RoomTypes - RoomType[], одновимірний масив JSON структур RoomType, у якому зберігається інформація за категоріями кімнат:
       a. ID - int, ID категорії номера в базі PMS.
       b. FreeRoom - int, кількість вільних номерів цієї категорії.
       c. MainPlacesCount - int, кількість основних місць у номері.
       d. NearestDateToReservation - Nullable<datetime>, дата найближчої можливої броні
   5. СontractConditions - СontractCondition[], одновимірний масив JSON структур СontractCondition, у якому зберігається інформація щодо умов договорів компанії. Це поле заповнюється тільки якщо CompanyID > 0, кількість елементів у масиві відповідає кількості умов договорів, що діють на дату заїзду:
       a. СontractConditionID - int, ідентифікатор умови договору компанії.
       b. СontractConditionName - string, назва умови договору компанії.
       c. PaidTypes - int[], масив кодів типів оплат доступних за цією умовою. Значення елементів масиву: 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата.
       d. ExpiredDate - datetime, дата закінчення поточного договору компанії.

GetPrices

Функція GetPrices отримує за вхідними параметрами список заявок на бронювання із зазначенням списку послуг і цін на кожен день проживання за кожною заявкою. Далі на сайті цю інформацію обробляють і групують у зручному для користувача вигляді.

Вхідні параметри:

   1. HotelID - int, від 1 до +∞, ID готелю
   2. CompanyID - int, ідентифікатор компанії, 0 - немає, >0 - визначає ID компанії під якою відбувається бронювання
   3. DateArrival - date, дата заїзду - ведеться ігнорування часу.
   4. DateDeparture - date, дата виїзду - ведеться ігнорування часу.
   5. TimeArrival - string, 5 символів - час заїзду (н/р: "14:00"), якщо час заїзду не вказано, передавати порожній рядок, у такому разі час заїзду буде проставлятися в автоматичному режимі.
   6. Adults - int, від 1 до 1000. Кількість дорослих людей
   7. Childs - int, від 0 до 1000. Якщо кількість дітей немає на формі (визначається параметром), приходить порожній рядок.
   8. ChildAges - int[], масив цілих чисел, що означають вік кожної дитини. Якщо кількість дітей більша за розмірність наступного за ним масиву вікових груп, то повертається помилка.
   9. IsExtraBedUsed - bool, логічне значення. Можливість використання додаткових місць для видачі номерів.
   10. IsoLanguage - string, 2 символи, двобуквена iso назва мови для виведення запиту.
   11. RoomTypeIDs - int[], масив ідентифікаторів категорій номерів, для яких потрібно брати ціну.
   12. СontractConditionID - int, ідентифікатор умови договору, за якою необхідно отримати PriceLists.  0 - системна умова, >0  - ідентифікатор обраної умови.
   13. СontractConditionAddIDs - int[], масив ідентифікаторів умов договорів, за якими необхідно отримати PriceLists.
   14. PaidType - int, тип оплати 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата.
   15. NeedTransport - int, від 0 до 1, потрібно замовити транспорт 0 - не потрібно, 1 - потрібно
   16. IsTouristTax - int, параметр чи оподатковується цей гість, 1- оподатковується, 0 - не оподатковується. За замовчуванням 1.
   17. AgentCategory - int, категорія контрагента. 0 - не вказано (буде використано категорію, налаштовану для готелю за замовчуванням), 1 - Резидент, 2 - Нерезидент.
   18. AgentCategories - int[], масив категорій контрагентів (можливі значення елементів масиву як у полі AgentCategory). Якщо масив містить хоча б один елемент, то ціни за послугами-надбавками повертаються окремо від цін на основні послуги.
   19. TimeDeparture - string, 5 символів - час виїзду (н/р: "12:00"), якщо час виїзду не вказано, передавати порожній рядок, у такому разі час виїзду буде проставлятися в автоматичному режимі.
   20. LPAuthCode - string, 20 символів. Код бронювання програми лояльності.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Еrror, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. ValuteShort - рядок, скорочення базової валюти в зазначеній мові.
   5. PriceLists - PriceList[], одновимірний масив JSON структур PriceList, у якому зберігається інформація про прейскуранти, що повертаються, а також про ціни для цих прейскурантів на запитувані категорії кімнат: 
       a. PriceListID - int, ID прейскуранта в базі HMS;
       b. PriceListName - string, найменування прейскуранта;
       c. ConditionID - int, ID умови договору;
       d. IsNonReturnRate - int, ознака неповоротного тарифу, 1 - неповоротний тариф, 0 - поворотний тариф. 
       e. IsSpecRate- int, ознака спеціальної пропозиції, 1 - спеціальна пропозиція, 0 - звичайний тариф. 
       f. RoomTypes - RoomType[], одновимірний масив JSON структур RoomType, у якому зберігається інформація щодо цін для категорій кімнат:
           i. ID - int, ID категорії номера в базі HMS.
           ii. Services - Service[], одновимірний масив JSON структур Service, в якому зберігається інформація за цінами послуг. Кількість елементів у цьому масиві визначає кількість різних послуг:
               1. ServiceID - int, ідентифікатор послуги
               2. ServiceName - string, назва послуги
               3. ServiceCode - int, податковий код групи
               4. ServiceSystemCode - string, системний код
               5. ServiceTypeName - string, назва типу улуги
               6. PriceDates - PriceDate[], одновимірний масив JSON структур PriceDate, в якому зберігається інформація за цінами послуги для категорії кімнати для зазначеного часового проміжку. Кількість елементів у цьому масиві визначає кількість дат, що відображаються користувачеві на сайті:
                   a. Date - datetime, дата і час споживання послуги
                   b. Price - double, сума нарахування в поточний день
                   c. RackRatePrice - double, сума нарахування в поточний день за прейскурантом стійки
           iii. AgentCategories - AgentCategory[], одновимірний масив JSON структур Service, в якому зберігається інформація за цінами послуг-надбавок для різних категорій контрагентів. Заповнюється залежно від вхідного параметра. AgentCategories: якщо масив містить хоча б один елемент, то ціни на послуги-надбавки повертаються окремо від цін на основні послуги в даному полі; якщо масив не заповнено, то ціни на послуги-надбавки повертаються до RoomType.Services разом із рештою послуг.
               1. AgentCategory - int, категорія контрагента.
               2. Services - Service[], одновимірний масив JSON структур Service, в якому зберігається інформація за цінами послуг-надбавок для категорії контрагента.
                          iv. SaleRestrictions - JSON-структура, в якій міститься інформація щодо обмежень продажів для категорії кімнати на вказаний часовий проміжок:
               1. ClosedToSale - JSON-структура містить інформацію про обмеження "Заборона продажів":
                   a.  HasRestrictions - bool, ознака наявності обмеження
                   b. Message - string, текст повідомлення
               2. ClosedToArrive - JSON структура містить інформацію про обмеження "Заборона заїзду":
                   a.  HasRestrictions - bool, ознака наявності обмеження
                   b. Message - string, текст повідомлення
               3. EarlyReservation - JSON структура містить інформацію про обмеження "Раннє бронювання":
                   a.  HasRestrictions - bool, ознака наявності обмеження
                   b. Message - string, текст повідомлення
               4. MinStay - JSON структура містить інформацію про обмеження "Мінімальний період проживання":
                   a.  HasRestrictions - bool, ознака наявності обмеження
                   b. Days - int, кількість днів. 0 - якщо відсутні чинні обмеження на мінімальний період проживання.
                   c. Message - string, текст повідомлення
               5. MinPay - JSON структура містить інформацію про обмеження "Мінімальна передоплата":
                   a. Days - int, кількість днів.
                   b. Message - string, текст повідомлення
                   c. MinPayPaymentRules - MinPayPaymentRuleInfo[], одновимірний масив JSON структур MinPayPaymentRuleInfo, у якому зберігається інформація про обов'язковість оплат:
   i. TimeFromArriveDate - long, Час до заїзду (сек.), діє в більший бік, тобто в разі різниці між датою заїзду та датою бронювання, більшої за це значення, оплата буде обов'язковою, якщо меншою - ні.
   ii. TimeForPayment - long, час для оплати з дати бронювання (сек.)

AddRoomReservation

Функція AddRoomReservation створює нову бронь у базі за вхідними параметрами і повертає ID броні. Примітка: У разі вибору типу оплати-300 (безготівкова оплата) в HMS створюється автоматично рахунок на компанію.

Вхідні параметри:

   1. HotelID - int, від 1 до +∞, ID готелю
   2. DateArrival - date, дата заїзду - ведеться ігнорування часу.
   3. DateDeparture - date .Дата виїзду - ведеться ігнорування часу.
   4. TimeArrival - string, 5 символів - час заїзду (н/р: "14:00"), якщо час заїзду не вказано, передавати порожній рядок, у такому разі час заїзду буде проставлятися в автоматичному режимі.
   5. Adults - int, від 1 до 1000. Кількість дорослих людей
   6. Childs - int, від 0 до 1000. Якщо кількість дітей немає на формі (визначається параметром), приходить порожній рядок.
   7. ChildAges - int[], масив цілих чисел, що означають вік кожної дитини. Якщо кількість дітей більша за розмірність наступного за ним масиву вікових груп, то повертається помилка.
   8. IsExtraBedUsed - bool, логічне значення. Можливість використання додаткових місць для видачі номерів.
   9. GuestLastName - string, прізвище гостя
   10. GuestFirstName - string, ім'я гостя
   11. RoomTypeID - int, 1 до +∞, ID категорії номера
   12. CompanyID - int, ідентифікатор компанії, 0 - немає, >0 - визначає ID компанії під якою відбувається бронювання
   13. Company - рядок, назва компанії
   14. СontractConditionID - int, ідентифікатор умови договору компанії. 0 - системна умова, >0 - ідентифікатор обраної умови.
   15. PaidType - int, тип оплати 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата.
   16. Iso3Country - string, рядок 3 символи, iso позначення країни.
   17. Country - string, назва країни
   18. Address - рядок, адреса проживання
   19. Phone - рядок, телефон
   20. Fax - рядок, факс
   21. eMail - рядок, пошта
   22. NeedTransport - int, від 0 до 1, потрібно замовити транспорт 0 - не потрібно, 1 - потрібно
   23. Comment - string, рядок коментарів. Обріжеться під час вставки в базу.
   24. ClientInfo - string, додаткова інформація про людину, яка зробила бронь: IP-адреса, тощо.
   25. IsTouristTax - int, ознака включення тур.збору в автоматично створений рахунок, 1- включається, 0 - не включається
   26. AgentCategory - int, категорія контрагента. 0 - не вказано (буде використано категорію, налаштовану для готелю за замовчуванням), 1 - Резидент, 2 - Нерезидент.
   27. PriceListID - int, 1 до +∞, ID прейскуранта
   28. LoyaltyCardTypeID - int, ідентифікатор типу карти лояльності.
   29. LoyaltyCardNumber - string, 20 символів. Код бронювання програми лояльності.
   30. ContactName - string, до 50 символів. Контактна особа під час бронювання.
   31. TimeDeparture - string, 5 символів - час виїзду (н/р: "12:00"), якщо час виїзду не вказано, передавати порожній рядок, у такому разі час виїзду буде проставлятися в автоматичному режимі.
   32. BirthDate - date, дата народження.
   33. UTM_CAMPAIGN - string, 128 символів - UTM-мітка. Назва рекламної кампанії
   34. UTM_CONTENT - string, 128 символів - UTM-мітка. Інформація, яка допомагає розрізняти оголошення, якщо збігаються інші параметри
   35. UTM_MEDIUM - string, 128 символів - UTM-мітка. Тип трафіку
   36. UTM_SOURCE - string, 128 символів - UTM-мітка. Рекламна система
   37. UTM_TERM - string, 128 символів - UTM-мітка. Ключове слово, яке ініціювало показ оголошення

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Еrror, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. Account - int, від 1 до +∞, ID броні

SetReservationType

Функція SetReservationType змінює тип зазначеної броні на гарантовану. Додатково ця функція дає змогу проводити оплат і гарантувати захід, у цьому разі в поле Л/Рахунки додається префікс A і групи префікс G.

Вхідні параметри:

   1. Account - string, ідентифікатор бронювання. Строкове (10/11 символів) представлення Л/Рахунку гостя або заходу. Формат: "Префікс", "Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A' (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями.
   2. Amount - double, сума за перший день проживання
   3. RRN - string, RRN-код платіжної операції.
   4. OrderID - int, необов'язкове поле. Ідентифікатор платіжної операції сайту Reikartz.
   5. Services - Service[], одновимірний масив JSON структур Service, в якому зберігається інформація за цінами послуг. Кількість елементів у цьому масиві визначає кількість різних послуг:
       a. ServiceID - int, ідентифікатор послуги
       b. ServiceName - string, назва послуги, допускається порожнє значення 
       c. ServiceCode - int, бухгалтерський код послуги, допускається порожнє значення
       d. ServiceSystemCode - string, системний код, допускається порожнє значення
       e. ServiceTypeName - string, назва типу послуги, допускається порожнє значення
       f. PriceDates - PriceDate[], одновимірний масив JSON структур PriceDate, в якому зберігається інформація за цінами послуги для категорії кімнати для зазначеного часового проміжку. Кількість елементів у цьому масиві визначає кількість дат, що відображаються користувачеві на сайті:
           i. Date - datetime, дата і час споживання послуги
           ii. Price - double, сума нарахування в поточний день
           iii. CustomerAccount - string, ідентифікатор бронювання споживача послуги. Строкове (10/11 символів) представлення Л/Рахунку гостя або заходу. Формат: "Префікс", "Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A' (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями.
   6. ServiceProviderID - int, необов'язковий параметр, ідентифікатор постачальника послуг, використовуваного для виставлення рахунків під час оплати кредитною карткою.
   7. ServiceProviderName - string, найменування постачальника послуг, що використовується для виставлення рахунків під час оплати кредитною карткою.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1  Function Еrror, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.

SetReservationBill

Функція SetReservationBill функція є проміжною ланкою перед оплатою нарахування, вона створює на картці відповідної сутності рахунок і поміщає в нього зазначений список нарахувань послуг, за якими стягуватиметься оплата. Після формування рахунку і перерахунку податків функція повертає уточнений список послуг з остаточними цінами (Використовується для коригування вартості надбавки в рахунках з різними постачальниками). Ця функція дає змогу готувати захід, у цьому разі в поле Л/Рахунки додається префікс A і групи префікс G.

Вхідні параметри:

   1. Account - string, ідентифікатор бронювання. Строкове (10/11 символів) представлення Л/Рахунку гостя або заходу. Формат: "Префікс", "Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A' (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями.
   2. Amount - double, сума за перший день проживання
   3. Services - Service[], одновимірний масив JSON структур Service, в якому зберігається інформація за цінами послуг. Кількість елементів у цьому масиві визначає кількість різних послуг:
       a. ServiceID - int, ідентифікатор послуги
       b. ServiceName - string, назва послуги, допускається порожнє значення
       c. ServiceCode - int, бухгалтерський код послуги, допускається порожнє значення
       d. ServiceSystemCode - string, системний код, допускається порожнє значення
       e. ServiceTypeName - string, назва типу улуги, допускається порожнє значення
       f. PriceDates - PriceDate[], одновимірний масив JSON структур PriceDate, в якому зберігається інформація за цінами послуги для категорії кімнати для зазначеного часового проміжку. Кількість елементів у цьому масиві визначає кількість дат, що відображаються користувачеві на сайті:
           i. Date - datetime, дата і час споживання послуги
           ii. Price - double, сума нарахування в поточний день
           iii. CustomerAccount - string, ідентифікатор бронювання споживача послуги. Строкове (10/11 символів) представлення Л/Рахунку гостя або заходу. Формат: "Префікс", "Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A' (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями.
   4. ServiceProviderID - int, необов'язковий параметр, ідентифікатор постачальника послуг, використовуваного для виставлення рахунків під час оплати кредитною карткою.
   5. ServiceProviderName - string, найменування постачальника послуг, що використовується для виставлення рахунків під час оплати кредитною карткою.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1- Function Еrror, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. Account - string, ідентифікатор бронювання. Строкове (10/11 символів) представлення Л/Рахунку гостя або заходу. Формат: "Префікс", "Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A'
    (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями.
   5. Amount - double, сума за перший день проживання
   6. Services - Service[], одновимірний масив JSON структур Service, в якому зберігається інформація за цінами послуг. Кількість елементів у цьому масиві визначає кількість різних послуг:
       a. ServiceID - int, ідентифікатор послуги
       b. ServiceName - string, назва послуги
       c. ServiceCode - int, бухгалтерський код послуги
       d. ServiceSystemCode - string, системний код
       e. ServiceTypeName - string, назва типу улуги
       f. PriceDates - PriceDate[], одновимірний масив JSON структур PriceDate, в якому зберігається інформація за цінами послуги для категорії кімнати для зазначеного часового проміжку. Кількість елементів у цьому масиві визначає кількість дат, що відображаються користувачеві на сайті:
           i. Date - datetime, дата і час споживання послуги
           ii. Price - double, сума нарахування в поточний день
           iii. CustomerAccount - string, ідентифікатор бронювання споживача послуги. Строкове (10/11 символів) представлення Л/Рахунку гостя або заходу. Формат: "Префікс", "Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A' (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями.

RevertTransaction

Функція RevertTransaction для типу транзакції робить повернення за кредиткою Функція RevertTransaction дає змогу проводити повернення оплати з сайту. Додатково ця функція дає змогу проводити повернення оплати для заходу, у цьому разі в поле Л/Рахунки додається префікс A і групи префікс G.

Вхідні параметри:

   1. Account - string, ідентифікатор бронювання. Строкове (10/11 символів) представлення Л/Рахунку гостя або заходу. Формат: "Префікс", "Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A' (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями.
   2. Amount - double, сума повернення за транзакцією
   3. RRN - string, RRN-код платіжної операції.
   4. OrderID - int, необов'язкове поле. Ідентифікатор платіжної операції сайту Reikartz.
   5. Services - Service[], одновимірний масив JSON структур Service, в якому зберігається інформація за цінами послуг. Кількість елементів у цьому масиві визначає кількість різних послуг:
       a. ServiceID - int, ідентифікатор послуги
       b. ServiceName - string, назва послуги, допускається порожнє значення
       c. ServiceCode - int, бухгалтерський код послуги, допускається порожнє значення
       d. ServiceSystemCode - string, системний код, допускається порожнє значення
       e. ServiceTypeName - string, назва типу улуги, допускається порожнє значення
       f. PriceDates - PriceDate[], одновимірний масив JSON структур PriceDate, в якому зберігається інформація за цінами послуги для категорії кімнати для зазначеного часового проміжку. Кількість елементів у цьому масиві визначає кількість дат, що відображаються користувачеві на сайті:
           i. Date - datetime, дата і час споживання послуги
           ii. Price - double, сума нарахування в поточний день
           iii. CustomerAccount - string, ідентифікатор бронювання споживача послуги. Строкове (10/11 символів) представлення Л/Рахунку гостя або заходу. Формат: "Префікс", "Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A' (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.

GetAccountBill

Функція GetAccountBill формує і повертає рахунок у вигляді стисненого zip документа або папки в потрібному форматі.

Вхідні параметри:

   1. Account - int, від 1 до +∞, ID броні
   2. IsoLanguage - string, 2 символи, двобуквена iso назва мови для створення документа потрібною мовою.
   3. Format - int, необов'язкове поле формату документа, що повертається: 0 - PDF, 1 - HTML, 2 - Excel, 3 - Doc. За замовчуванням : 0.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. DocumentID - int, посилання на документ, який буде зроблено

GetAccountConfirm

Функція GetAccountConfirm формує і повертає підтвердження бронювання у вигляді стисненого zip документа або папки в потрібному форматі.

Вхідні параметри:

   1. Account - int, від 1 до +∞, ID броні
   2. IsoLanguage - string, 2 символи, двобуквена iso назва мови для створення документа потрібною мовою.
   3. Format - int, необов'язкове поле формату документа, що повертається: 0 - PDF, 1 - HTML, 2 - Excel, 3 - Doc. За замовчуванням : 0.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. DocumentID - int, посилання на документ, який буде зроблено

GetRoomTypesList

Функція GetRoomTypesList повертає список категорій номерів за готелем.

Вхідні параметри:

   1. HotelID - int, від 0 до +∞, ID готелю, якщо 0, то виводяться категорії номерів по всіх готелях

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. Count - визначає розмірність повернених масивів.
   5. IDs - int[], масив цілих чисел, ID категорій номерів у базі.
   6. ClassNames - string[], масив рядків, назви категорій номерів.
   7. HotelIDs - int[], масив цілих чисел, ID готелю категорії номерів.

GetGroupRooms

Функція GetGroupRooms отримує за вхідними параметрами список категорій номерів із зазначенням кількості вільних номерів кожної категорії.

Вхідні параметри:

   1. HotelID - int, від 1 до +∞, ID готелю
   2. BookingRequests - BookingRequest[], одновимірний масив JSON структур BookingRequest, у якому зберігається інформація щодо заявок на бронювання кімнат:
       a. DateArrival - date, дата заїзду - ведеться ігнорування часу.
       b. DateDeparture - date. Дата виїзду - ведеться ігнорування часу.
       c. TimeArrival - string, 5 символів - час заїзду (н/р: "14:00"), якщо час заїзду не вказано, передавати порожній рядок, у такому разі час заїзду буде проставлятися в автоматичному режимі.
       d. TimeDeparture - string, 5 символів - час виїзду (н/р: "20:00"), якщо час виїзду не вказано, передавати порожній рядок, у такому разі час виїзду буде проставлятися в автоматичному режимі.
       e. Adults - int, від 1 до 1000. Кількість дорослих людей
       f. Childs - int, від 0 до 1000. Якщо кількість дітей немає на формі (визначається параметром), приходить порожній рядок.
       g. ChildAges - int[], масив цілих чисел, що означають вік кожної дитини. Якщо кількість дітей більша за розмірність наступного за ним масиву вікових груп, то повертається помилка.
       h. IsExtraBedUsed - bool, логічне значення. Можливість використання додаткових місць для видачі номерів.
   3. IsoLanguage - string, 2 символи, двобуквена iso назва мови для виведення запиту.
   4. CompanyСodeID - int, ідентифікатор компанії, 0 - немає, >0 - визначає ID компанії під якою відбувається бронювання


Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2-Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. BookingRequestAnswers - BookingRequestAnswer[], одновимірний масив JSON структур BookingRequestAnswer, у якому зберігається інформація про знайдені категорії номерів за заявками на бронювання кімнат: 
       a. RoomTypes - RoomType[], одновимірний масив JSON структур RoomType, у якому зберігається інформація за категоріями кімнат:
           i. ID - int, ID категорії номера в базі PMS.
           ii. FreeRoom - int, кількість вільних номерів цієї категорії.
           iii. MainPlacesCount - int, кількість основних місць у номері.
           iv. NearestDateToReservation-Nullable<datetime>, дата найближчої можливої броні.
   5. СontractConditions - СontractCondition[], одновимірний масив JSON структур СontractCondition, у якому зберігається інформація щодо умов договорів компанії. Це поле заповнюється тільки якщо CompanyID > 0, кількість елементів у масиві відповідає кількості умов договорів, що діють на дату заїзду:
       a. СontractConditionID - int, ідентифікатор умови договору компанії.
       b. СontractConditionName - string, назва умови договору компанії.
       c. PaidTypes - int[], масив кодів типів оплат доступних за цією умовою. Значення елементів масиву: 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата.

AddGroupRoomReservation

Функція AddGroupRoomReservation створює нову групову бронь у базі за вхідними параметрами, і повертає ID броні групи в системі. Примітка: У разі вибору типу оплати-300 (безготівкова оплата) в HMS створюється автоматично рахунок на компанію.

Вхідні параметри:

   1. HotelID - int, від 1 до +∞, ID готелю
   2. GroupName - string, назва групи
   3. CompanyID - int, ідентифікатор компанії, 0 - немає, >0 - визначає ID компанії під якою відбувається бронювання
   4. Company - рядок, назва компанії
   5. Iso3Country - string, рядок 3 символи, iso позначення країни.
   6. Country - string, назва країни
   7. PaidType - int, тип оплати 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата.
   8. ContactName - string, контактна особа групи
   9. ContactEMail - string, електронна пошта контактної особи
   10. ContactInfo - string, інша контактна інформація по групі. Максимум 500 сивволів.
   11. Comment - string, рядок коментарів. Обріжеться під час вставки в базу
   12. ClientInfo - string, додаткова інформація про людину, яка зробила бронь: IP-адреса, тощо.
   13. СontractConditionID - int, ідентифікатор умови договору компанії. 0 - системна умова, >0  - ідентифікатор обраної умови.
   14. RoomReservations - RoomReservation[], одновимірний масив JSON структур RoomReservation, у якому зберігається інформація про заявки бронювання номерів групи:
       a. GuestName - string, необов'язкове поле - ім'я гостя. Якщо не вказано, в ім'я гостя підставляється назва групи.
       b. DateArrival - date дата заїзду - ведеться ігнорування часу.
       c. DateDeparture - date. Дата виїзду - ведеться ігнорування часу.
       d. TimeArrival - string, 5 символів - час заїзду (н/р: "14:00"), якщо час заїзду не вказано, передавати порожній рядок, у такому разі час заїзду буде проставлятися в автоматичному режимі.
       e. TimeDeparture - string, 5 символів - час виїзду (н/р: "20:00"), якщо час виїзду не вказано, передавати порожній рядок, у такому разі час виїзду буде проставлятися в автоматичному режимі.
       f. Adults - int, від 1 до 1000. Кількість дорослих людей
       g. Childs - int, від 0 до 1000. Якщо кількість дітей немає на формі (визначається параметром), приходить порожній рядок.
       h. ChildAges - int[], масив цілих чисел, що означають вік кожної дитини. Якщо кількість дітей більша за розмірність наступного за ним масиву вікових груп, то повертається помилка.
       i. IsExtraBedUsed - bool, логічне значення. Можливість використання додаткових місць для видачі номерів.
       j. RoomTypeID - int, 1 до +∞, ID категорії номера
       k. NeedTransport - int, від 0 до 1, потрібно замовити транспорт 0 - не потрібно, 1 - потрібно
       l. IsTouristTax - int, ознака включення тур.збору в автоматично створений рахунок, 1- включається, 0 - не включається
       m. AgentCategory - int, категорія контрагента. 0 - не вказано (буде використано категорію, налаштовану для готелю за замовчуванням), 1 - Резидент, 2 - Нерезидент.

Примітка: За поточною реалізацією протоколу формат параметра-int, в 11 версії формат буде виправлено на bool, згідно відповідності протоколу

       n. PriceListID - int, 1 до +∞, ID прейскуранта
       o. СontractConditionID - int, ідентифікатор умови договору компанії. 0 - умова з групи, >0 - ідентифікатор обраної умови.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. Account - int, від 1 до +∞, ID групової броні
   5. RoomReservations - RoomReservation[], одновимірний масив JSON структур RoomReservation, у якому зберігається інформація про заявки бронювання номерів групи:
           i. DateArrival - date, дата заїзду - ведеться ігнорування часу.
           ii. DateDeparture - date. Дата виїзду - ведеться ігнорування часу.
           iii. TimeArrival - string, 5 символів - час заїзду (н/р: "14:00"), якщо час заїзду не вказано, передавати порожній рядок, у такому разі час заїзду буде проставлятися в автоматичному режимі.
           iv. Adults - int, від 1 до 1000. Кількість дорослих людей
           v. Childs - int, від 0 до 1000. Якщо кількість дітей немає на формі (визначається параметром), приходить порожній рядок.
           vi. ChildAges - int[], масив цілих чисел, що означають вік кожної дитини. Якщо кількість дітей більша за розмірність наступного за ним масиву вікових груп, то повертається помилка.
           vii. IsExtraBedUsed - bool, логічне значення. Можливість використання додаткових місць для видачі номерів.
           viii. RoomTypeID - int, 1 до +∞, ID категорії номера
           ix. NeedTransport - int, від 0 до 1, потрібно замовити транспорт 0 - не потрібно, 1 - потрібно
           x. IsTouristTax - int, параметр чи оподатковується цей гість, 1- оподатковується, 0 - не оподатковується. За замовчуванням 1.
           xi. PriceListID - int, 1 до +∞, ID прейскуранта
           xii. GuestAccount - int, від 1 до +∞, ID індивідуальної броні гостя

GetGroupAccountBill

Функція GetGroupAccountBill формує і повертає рахунок групи у вигляді стисненого zip документа або папки в потрібному форматі.

Вхідні параметри:

   1. Account - int, від 1 до +∞, ID групової броні
   2. IsoLanguage - string, 2 символи, двобуквена iso назва мови для створення документа потрібною мовою.
   3. Format - int, необов'язкове поле формату документа, що повертається: 0 - PDF, 1 - HTML, 2 - Excel, 3 - Doc. За замовчуванням : 0.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. DocumentID - int, посилання на документ, який буде зроблено

GetGroupAccountConfirm

Функція GetGroupAccountConfirm формує і повертає групове підтвердження бронювання у вигляді стисненого zip документа або папки в потрібному форматі.

Вхідні параметри:

   1. Account - int, від 1 до +∞, ID групової броні
   2. IsoLanguage - string, 2 символи, двобуквена iso назва мови для створення документа потрібною мовою.
   3. Format - int, необов'язкове поле формату документа, що повертається: 0 - PDF, 1 - HTML, 2 - Excel, 3 - Doc. За замовчуванням : 0.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. DocumentID - int, посилання на документ, який буде зроблено

GetLoyaltyCardNumberInfo

Функція GetLoyaltyCardNumberInfo повертає інформацію за карткою лояльності. Якщо картки немає, то повертається помилка.

Вхідні параметри:

   1. CompanyID - int, ідентифікатор компанії, >0 - визначає ID компанії під якою відбувається бронювання
   2. LoyaltyCardTypeID - int, ідентифікатор типу карти лояльності.
   3. HotelID - int, від 1 до +∞, ID готелю
   4. LoyaltyCardNumber - string, номер картки лояльності.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. СontractConditionID - int, 0 - немає значення, ідентифікатор умови договору компанії.
   5. СontractConditionName - string, назва умови договору компанії.
   6. PaidTypes - int[], масив кодів типів оплат доступних за цією умовою. Значення елементів масиву: 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата.
   7. GuestLastName - string, прізвище гостя
   8. GuestFirstName - string, ім'я гостя
   9. PriceListID - int, 0 - немає значення, 1 до +∞ -  ID прейскуранта

GetLoyaltyCardTypes

Функція GetLoyaltyCardTypes повертає інформацію щодо заведених програм карт лояльності.

Вхідні параметри: Немає

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. LoyaltyCardTypes - LoyaltyCardType[], одновимірний масив JSON структур LoyaltyCardType, у якому зберігається інформація про типи програм лояльності:
       a. LoyaltyCardTypeID - int, ідентифікатор типу картки лояльності.
       b. LoyaltyCardTypeName - string, назва типу картки лояльності.


GetDocument

Функція GetDocument повертає інформацію щодо сформованого документа, поставленого для створення раніше.

Вхідні параметри:

   1. DocumentID - int, ідентифікатор документа для пошуку.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. IsReady - bool, логічне значення, що визначає, чи готовий документ на поточний момент. При цьому запит може бути опрацьовано, але документ не сформовано через помилку.
   5. DocumentCode - string, бінарний код документа або папки формату zip потрібного формату даних у вигляді рядка в Base64.

GetReservationInfo

Функція GetReservationInfo повертає інформацію щодо створеного бронювання, дані повертаються тільки для підтверджених бронювань. Додатково додано відображення даних за заброньованими заходами в разі якщо Л/Рахунок має префікс A і групи префікс G

Вхідні параметри:

   1. Account - string, ідентифікатор бронювання. Строкове (10/11 символів) представлення Л/Рахунку гостя або заходу. Формат: "Префікс", "Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A' (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями.

Значення, що повертається:

Повертається JSON структура з такими полями:

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. HotelID - int, від 1 до +∞, ID готелю
   5. AccountName - string, ПІБ гостя в бронюванні / назва заходу.
   6. DateArrival - datetime, дата і час заїзду.
   7. DateDeparture - datetime. Дата і час виїзду.
   8. Adults - int, від 1 до 1000. Кількість дорослих людей
   9. Childs - int, від 0 до 1000. Кількість дітей
   10. RoomTypeID - int, 1 до +∞, ID категорії номера / ID типу заходу
   11. RoomType -string, назва категорії номера/ назва типу заходу
   12. StatusID - int, код статусу бронювання
   13. StatusName - string, назва статусу бронювання гостя/заходу
   14. Email - рядок, електронна пошта гостя/заходу
   15. PaidType - int, тип оплати 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата.
   16. ServiceProviderID - int, ідентифікатор постачальника послуг, що використовується для виставлення рахунків під час оплати кредитною карткою.
   17. ServiceProviderName - string, найменування постачальника послуг, що використовується для виставлення рахунків під час оплати кредитною карткою.
   18. Services - Service[], одновимірний масив JSON структур Service, в якому зберігається інформація за цінами послуг. Кількість елементів у цьому масиві визначає кількість різних послуг:
       a. ServiceID - int, ідентифікатор послуги
       b. ServiceName - string, назва послуги
       c. ServiceCode - int, бухгалтерський код послуги
       d. ServiceSystemCode - string, системний код
       e. ServiceTypeName - string, назва типу улуги
       f. PriceDates - PriceDate[], одновимірний масив JSON структур PriceDate, в якому зберігається інформація за цінами послуги для категорії кімнати для зазначеного часового проміжку. Кількість елементів у цьому масиві визначає кількість дат, що відображаються користувачеві на сайті:
           i. Date - datetime, дата і час споживання послуги
           ii. Price - double, сума нарахування в поточний день
           iii. CustomerAccount - string, ідентифікатор бронювання споживача послуги. Строкове (10/11 символів) представлення Л/Рахунку гостя або заходу. Формат: "Префікс", "Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A' (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями.
           iv. IsPaid - bool, показує, чи було нарахування послуги оплачено. True - для повної та часткової оплати.
           v. IsPaidFromSite - bool, показує чи було нарахування послуги оплачено через сайт. Заповнюється, якщо IsPaid =  true.
           vi. PayAccount - string, особовий рахунок, від якого пройшла оплата.
           vii. OrderID - ідентифікатор платіжної операції сайту Reikartz.
           viii. ServiceProviderID - int, ідентифікатор постачальника послуг, що використовується для виставлення рахунків під час оплати кредитною карткою.
           ix. ServiceProviderName - string, найменування постачальника послуг, що використовується для виставлення рахунків під час оплати кредитною карткою.
   19. MinPays - MinPayInfo[], одновимірний масив JSON структур MinPayInfo, в якому міститься інформація про обмеження "Мінімальна передоплата":
                   a. Account - string, ID групи або гостя
                   b. Days - int, кількість днів.
                   c. CancelationDate - string, необов'язкове поле, дата ануляції броні (н/р: "2021-04-12 18:13:50 +03:00")