API Reservation10

Матеріал з expertsolution
Версія від 11:31, 16 вересня 2025, створена Sydo (обговорення | внесок)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Опис протоколу для інтеграції зовнішнього модуля бронювання з Servio HMS


Формат запитів 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"), якщо час виїзду не вказано, передавати порожній рядок, у такому разі час виїзду буде проставлятися в автоматичному режимі.
   11. Isolanguage - string, 2 символи, двобуквена iso назва мови для виведення запиту.

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

Повертається 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. LoyaltyAuthCode - 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, ідентифікатор (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")

GetRoomType

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

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

   1. RoomTypeID - int, від 1 до +∞, ID категорії кімнати.

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

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

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

GetClientDocuments

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

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

   1. GuestCode - string, HEX рядок, 4 блоки по 4 символи з роздільником дефісом, що містить масив зашифрованих TripleDes алгоритмом даних. Перші 4 байти int32 представлення ID броні даних броні гостя, 5й байт перші 2 цифри року, 6й байт останні 2 цифри року, 7й байт місяць, 8й байт число місяця дати заїзду гостя.  Приклад і код виконання нижче.

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

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

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. HotelID - int, від 1 до +∞, ID готелю
   5. GuestID - int, від 1 до +∞, ID гостя
   6. GuestName - string, ПІБ гостя в бронюванні.
   7. DateArrival - datetime, дата і час заїзду.
   8. DateDeparture - datetime. Дата і час виїзду.
   9. Adults - int, від 1 до 1000. Кількість дорослих людей
   10. Childs - int, від 0 до 1000. Кількість дітей
   11. RoomTypeID - int, 1 до +∞, ID категорії номера
   12. StatusID - int, код статусу бронювання
   13. StatusName - string, назва статусу бронювання гостя.
   14. ClientDocumentTypes - ClientDocumentType[], одновимірний масив JSON структур ClientDocumentType, в якому зберігається інформація про типи реєстраційних документів клієнта:
       a. ClientDocumentTypeID - int, ідентифікатор типу реєстраційного документа.
       b. ClientDocumentTypeName - string, назва типу реєстраційного документа.
       c. ClientDocumentFields - string[], одновимірний масив кодів необов'язкових полів реєстраційного документа для цього типу документа
       d. ClientDocumentRequiredFields - string[], одновимірний масив кодів обов'язкових полів реєстраційного документа для цього типу документа
   15. Clients - Client[], одновимірний масив JSON структур Client, у якому зберігається інформація про заведені реєстраційні дані гостя:
       a. ClientID - int, ідентифікатор реєстраційних даних.
       b. LastName - string, до 50, прізвище 
       c. FirstName - string, до 50, ім'я 
       d. MiddleName - string, до 50, по батькові 
       e. BirthDate - datetime, дата народження 
       f. Iso3Nationality - string, 3 символи, iso код країни громадянства
       g. Address - рядок, адреса
       h. Email - рядок, пошта
       i. PhoneNumber - string, номер телефону
       j. CarNumber - string, номер машини
       k. AdultOrChild - boolean, дорослий чи дитина
       l. IsMan - boolean, стать, true - чоловік, false - жінка
       m. Vip - boolean, чи є VIP
       n. Comment - string, до 500, коментар
       o. DocumentPhotoURL - string, адреса для фото анкети
       p. ClientDocumentTypeID - int, ідентифікатор типу реєстраційного документа.
       q. ClientDocumentValues - ClientDocumentValue[], одновимірний масив JSON структур ClientDocumentValue, в якому зберігається інформація про значення полів реєстраційного документа, що засвідчує особу та закріплений за проживанням:
           i. ClientDocumentFieldCode - string, код поля реєстраційного документа.
           ii. ClientDocumentFieldValue - string, значення поля реєстраційного документа.

SetClientDocuments

Функція SetClientDocuments проставляє інформацію за списком паспортних даних гостя. Якщо додаються нові паспортні дані, то система перевіряє, збіг введених даних з уже заведеними в системі за такими полями: ПІБ, тип документа, номер і серія документа, дата народження, у разі відповідності даних поле з уже наявними в базі система автоматично підтягує старі дані й оновлює їх відповідно до решти полів.

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

   1. GuestID - int, від 1 до +∞, ID гостя
   2. Clients - Client[], одновимірний масив JSON структур Client, в якому зберігається інформація про заведені реєстраційні дані гостя:
       a. ClientID - int, ідентифікатор реєстраційних даних. Для нових реєстраційних даних значення обирається випадково з діапазону від -10000 до -1, у межах однієї транзакції ідентифікатори не повинні збігатися.
       b. LastName - string, до 50, прізвище для анкети - обов'язковий параметр
       c. FirstName - string, до 50, ім'я
       d. MiddleName - string, до 50, по батькові
       e. BirthDate - datetime, дата народження - обов'язковий параметр
       f. Iso3Nationality - string, 3 символи, iso код країни громадянства - обов'язковий параметр
       g. Address - рядок, адреса
       h. Email - рядок, пошта
       i. CarNumber - string, номер машини
       j. PhoneNumber - string, номер телефону
       k. AdultOrChild - boolean, дорослий чи дитина
       l. IsMan - boolean, стать, true - чоловік, false - жінка
       m. Vip - boolean, чи є VIP
       n. Comment - string, до 500, коментар
       o. DocumentPhotoURL - string, адреса для фото анкети
       p. DocumentScan - string, файл скану документа. Формат: "Розширення файлу"; "Тіло файлу у форматі base64", без пробілів, розширення також включає символ "."
       q. ClientDocumentTypeID - int, ідентифікатор типу реєстраційного документа.
       r. ClientDocumentValues - ClientDocumentValue[], одновимірний масив JSON структур ClientDocumentValue, у якому зберігається інформація про значення полів реєстраційного документа клієнта:
           i. ClientDocumentFieldCode - string, код поля реєстраційного документа.
           ii. ClientDocumentFieldValue - string, значення поля реєстраційного документа.

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

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

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

GetCompanyReferencedData

Функція GetCompanyReferencedData повертає дані довідників пов'язаних із компаніями.

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

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

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

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

SearchCompanies

Функція SearchCompanies здійснює пошук компаній за ЄДРПОУ або ІПН.

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

   1. ITN - рядок, ІПН компанії.
   2. EGRPOU- рядок, ЄДРПОУ компанії.

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

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

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. Companies - CompanyData [], одновимірний масив JSON структур CompanyData, в якому зберігається інформація про знайдені компанії:
       a. CompanyID - int, ідентифікатор компанії
       b. LegalFormID - int, ідентифікатор правової форми компанії
       c. Name - string, назва компанії
       d. ITN - рядок, ІПН компанії
       e. EGRPOU - рядок, ЄДРПОУ компанії.
       f. LegalAddress- рядок, юридична адреса компанії.

AddCompany

Функція AddCompany створює нову компанію.

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

   1. LegalFormID -  int, ідентифікатор правової форми компанії
   2. Name - string, назва компанії
   3. ITN - рядок, ІПН компанії
   4. EGRPOU - рядок, ЄДРПОУ компанії.
   5. ContactPerson - рядок, контактна особа.
   6. FactualAddress - рядок, фактична адреса компанії.
   7. LegalAddress- рядок, юридична адреса компанії.
   8. PostalAddress - рядок, поштова адреса компанії.
   9. PhoneNumber - string, контактний номер телефону.
   10. Email - рядок, контактний email.
   11. Comment - string, примітки.

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

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

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

CancelReservation

Функція CancelReservation здійснює ануляцію (скасування бронювання) гостя, групи або заходу, якщо це можливо.

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

   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, код помилки.

GetRoomTypesMinPrice

Функція GetRoomTypesMinPrice отримує мінімально можливу ціну за категоріями кімнат на 30 днів вперед. Значення функції отримується запитом аналогічним функції GetPrice, де в якості вхідних параметрів використовуються параметри індивідуального бронювання на 30 днів від поточної дати, 1 дорослого, без дітей, 1 місцеве розміщення без додаткових місць, без компанії, за прейскурантом для інтернету за замовчуванням. Отримане значення вартості проживання групується за днями і типами послуг і вибирається мінімальне значення.

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

   1. HotelID - int - готель для якого потрібно брати ціни
   2. RoomTypeIDs - int[], масив ідентифікаторів категорій номерів, для яких потрібно брати ціну, якщо порожній - то беремо весь готель

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

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

   4. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   5. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   6. ErrorCode - string, код помилки.
   7. Prices[] - одновимірний масив json, кількість елементів у ньому дорівнює кількості типів номерів у цьому готелі
       a. RoomTypeID - int
       b. DwellingPrice - double, за проживання
       c. ToursborPrice - double, турсбір

GetMinPrices

Функція GetMinPrices повертає мінімально можливі ціни за вказаними готелями з розбивкою за категоріями кімнат на вказаний період. Значення функції отримується запитом аналогічним функції GetPrice, де в якості вхідних параметрів використовуються параметри індивідуального бронювання на вказаний період, 1 дорослого, без дітей, 1 місцеве розміщення без додаткових місць, від зазначеної компанії, за прейскурантами, доступними компанії. Отримане значення вартості проживання групується за днями і типами послуг і вибирається мінімальне значення.

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

   1. HotelIDs - int[] - масив ідентифікаторів готелів, для яких потрібно брати ціни.
   2. StartDate - datetime, дата початку періоду.
   3. EndDate - datetime, дата закінчення періоду.
   4. CompanyCode - string, довжина рядка до 20 символів. Ідентифікаційний код компанії.

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

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

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string.
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
   3. ErrorCode - string, код помилки.
   4. ValuteShort - рядок, скорочення базової валюти в зазначеній мові.
   5. HotelsPrices - HotelsPrices[], одновимірний масив JSON структур HotelsPrices, в якому зберігається інформація за мінімальними цінами готелів на вказаний період:
       a. HotelID - int, ідентифікатор готелю
       b. HotelPrices - HotelPrices[], одновимірний масив JSON структур HotelPrices, в якому зберігається інформація за мінімальними цінами готелю на вказаний період:
           i. Date - datetime, дата на яку розраховані ціни.
           ii. MinPrice - мінімальна ціна готелю на дату.
           iii. Rooms[] - одновимірний масив цін із розбивкою за категоріями кімнат:
               1. RoomTypeID - int, ідентифікатор категорії кімнати.
               2. Price - мінімальна з цін бронювання в цій категорії на дату, серед прейскурантів доступних за кодом компанії.

GetAccountCancellation

Функція GetAccountCancellation формує і повертає документ ануляції бронювання у вигляді стисненого 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, посилання на документ, який буде зроблено

GetGroupAccountCancellation

Функція GetGroupAccountCancellation формує і повертає документ ануляції бронювання групи у вигляді стисненого 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, посилання на документ, який буде зроблено

AddFileToReservation

Функція AddFileToReservation додає до сутності файли документів.

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

   1. Account - string, ідентифікатор бронювання. Строкове (10/11 символів) представлення Л/Рахунку гостя, групи або заходу. Формат: "Префікс", "Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A' (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями.
   2.  FileName - string, назва файлу з розширенням. До прив'язки приймаються файли тільки з такими розширеннями ".png", ".jpg", ".jpeg", ".bmp", ".tiff", ".tif", ".gif", ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".odt", ".ods", ".txt", ".zip", ".rar", ".7z".
   3. FileBase64 - string,  Тіло файлу в base64 форматі. Розмір рядка має бути в межах від 100 до 4 000 000 символів.

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

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

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

GetBillInfo

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

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

   1. BillID - string, ідентифікатор рахунку.

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

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

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string;
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок;
   3. ErrorCode - string, код помилки;
   4. PayerID - int, ID платника;
   5. Status - int, статус рахунку: 0 - не збережений, 1 - відкритий, 2 - закритий, -1 - анульований;
   6. PayerPrintName - string, найменування платника;
   7. ValuteID - int, ID валюти;
   8. ValuteShort - string, скорочення валюти;
   9. ServiceProviderID - int, ID постачальника послуг;
   10. ServiceProviderName - string, найменування постачальника послуг;
   11. Services - Services[], одновимірний масив JSON структур Service, у якому зберігається така інформація:
       a. ServiceID - int, ідентифікатор послуги;
       b. ServiceName - string, назва послуги;
       c. ServiceCode - int, бухгалтерський код послуги;
       d. ServiceSystemCode - string, системний код;
       b. ServiceTypeName - string, назва типу улуги;
       e. PriceDates - PriceDate[], одновимірний масив JSON структур PriceDate, в якому зберігається інформація за цінами послуг для зазначеного проміжку часу:
           i. Date - datetime, дата і час споживання послуги;
           ii. PaymentID - int, ID нарахування;
           iii. CustomerAccount - string, ідентифікатор споживача послуги. Строкове (10/11 символів) представлення Л/Рахунку гостя або заходу. Формат: "Префікс""Натуральне число", де префікс - буква з множини { (порожньо = гість), 'A' (activity = захід), 'G' (group = група)}, "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями;
           iv. CustomerName - string, найменування споживача послуги;
           v. Quantity - десяткова, кількість;
           vi. Price - десяткова, ціна;
           vii. IsPaid - bool, показує чи було нарахування послуги оплачено. True - оплачено;
           viii. IsPaidFromSite - bool, чи було оплачено нарахування через сайт. True - якщо було оплачено через сайт;
           ix. OrderID - ідентифікатор платіжної операції сайту.

SetBillPayment

Функція SetBillPayment приймає ID наявного рахунка і список послуг для оплати, формує чек на оплату і оплачує за касою.

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

   1. BillID - int, ID рахунку для оплати;
   2. RRN - string, RRN-код платіжної операції;
   3. OrderID - int, необов'язкове поле. Ідентифікатор платіжної операції сайту Reikartz;
   4. 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 Еrror, 2 - Incorrect string.
2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок.
ErrorCode - string, код помилки.

GetReceiptBill

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

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

   1. BillID - int, 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, посилання на документ, який буде зроблено.

GetVariantRooms

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

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

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

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

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

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string;
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок;
   3. ErrorCode - string, код помилки;
   4.	RoomTypes - RoomTypes[], одновимірний масив JSON структур RoomType, у якому зберігається інформація за категоріями кімнат:
   a. ID - int, ID категорії номера в базі PMS.
   b. PeriodOfResidence - PeriodOfResidence[], одновимірний масив JSON структур PeriodOfResidence, у якому зберігається інформація щодо можливих періодів бронювання:
       i. FirstDate - DateTime, дата і час заїзду;
       ii. LastDate - DateTime, дата і час виїзду; iii.	FreeRoom - int, кількість.

GetRentals

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

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

   1. HotelID - int, від 1 до +∞, ID готелю;
   2. CompanyID - int, ідентифікатор компанії, 0 - немає, >0 - визначає ID компанії під якою відбувається бронювання;
   3. StartDate - date, дата початку прокату - ведеться ігнорування часу;
   4. EndDate - date, дата закінчення прокату прокату - ведеться ігнорування часу;
   5. StartTime - string, 5 символів - час початку прокату (н/р: "14:00"), якщо час не вказано, передавати порожній рядок, у такому разі час виїзду проставлятимуть в автоматичному режимі;
   6. EndTime - string, 5 символів - час закінчення прокату (н/р: "14:00"), якщо час не вказано, передавати порожній рядок, у такому разі час виїзду проставлятимуть в автоматичному режимі;
   7. LoyaltyAuthCode - string, Номер картки лояльності;
   8. ContractConditionID - int, ідентифікатор умови договору, за якою необхідно отримати PriceLists. 0 - системна умова, >0 - ідентифікатор обраної умови;
   9. ContractConditionAddIDs- int[], масив ідентифікаторів умов договорів, за якими необхідно отримати PriceLists;
   10. PaidType - int, тип оплати 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата.
   11. IsoLanguage - string, 2 символи, двобуквена iso назва мови для виведення запиту
   4. EndDate - date, дата закінчення прокату прокату - ведеться ігнорування часу;
   5. StartTime - string, 5 символів - час початку прокату (н/р: "14:00"), якщо час не вказано, передавати порожній рядок, у такому разі час виїзду проставлятимуть в автоматичному режимі;
   6. EndTime - string, 5 символів - час закінчення прокату (н/р: "14:00"), якщо час не вказано, передавати порожній рядок, у такому разі час виїзду проставлятимуть в автоматичному режимі;
   7. LoyaltyAuthCode - string, Номер картки лояльності;
   8. ContractConditionID - int, ідентифікатор умови договору, за якою необхідно отримати PriceLists. 0 - системна умова, >0 - ідентифікатор обраної умови;
   9. ContractConditionAddIDs- int[], масив ідентифікаторів умов договорів, за якими необхідно отримати PriceLists;
   10. PaidType - int, тип оплати 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата.
   11. IsoLanguage - string, 2 символи, двобуквена iso назва мови для виведення запиту.

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

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

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string;
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок;
   3. ErrorCode - string, код помилки;
   4. ValuteShort - string, рядок, скорочення базової валюти в зазначеній мові
   5. RentalTypes - RentalType[], одновимірний масив JSON структур RentalType, у якому зберігається інформація про типи прокатів:
       a. ID - int, ID типу прокату в базі PMS.
       b. RentalTypeName - string, найменування типу прокату
       c. FreeRentalResource - int, кількість вільних ресурсів прокату цього типу для бронювання.
       d. PriceLists - PriceList[], одновимірний масив JSON структур PriceList, у якому зберігається інформація про прейскуранти, що повертаються, а також про ціни для цих прейскурантів на запитувані категорії кімнат:
           i. PriceListID - int, ID прейскуранта в базі HMS;
           ii. PriceListName - string, найменування прейскуранта;
           iii. ConditionID - int, ID умови договору; iv. IsNonReturnRate - int, ознака неповоротного тарифу, 1 - неповоротний тариф, 0 - поворотний тариф.
   v. IsSpecRate- int, ознака спеціальної пропозиції, 1 - спеціальна пропозиція, 0 - звичайний тариф.
   vi. 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, сума нарахування в поточний день за прейскурантом стійки

AddRentalReservation

Функція AddRentalReservation створює нові броні прокатів у базі за вхідними параметрами, і повертає ID прокатів.

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

   1. HotelID - int, від 1 до +∞, ID готелю
   2. Account - string, ідентифікатор бронювання споживача прокату. Строкове (1013 символів) представлення Л/Рахунку гостя або персонального акаунта. 

Формат: "Префікс""Натуральне число""Суфікс", де префікс - буква з множини { (порожньо= гість), 'B' (персональний акаунт) "Натуральне число" - ідентифікатор відповідного об'єкта в системі Servio з провідними нулями, "Суфікс" - суфікс системи (необов'язковий параметр)

   3. Rentals- Rental[], одновимірний масив JSON структур Service, у якому зберігається інформація за цінами послуг. Кількість елементів у цьому масиві визначає кількість різних прокатів, які потрібно забронювати:
       a. RentalTypeID - int, ID типу прокату.
       b. StartDate - datetime, дата початку прокату.
       c. EndDate - datetime, дата закінчення прокату.

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

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

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

CancelRentals Функція CancelRentals здійснює ануляцію (скасування бронювання) прокатів. Вхідні параметри: 1. RentalIDs - int[], масив цілих чисел, що позначає ID прокатів. Значення, що повертається: Повертається JSON структура з такими полями:

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


UpdateHotelInfo

Оновлення інформації щодо готелів.

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

   1. HotelInfos - HotelInfo[], одновимірний масив JSON структур HotelInfo, у якому міститься така інформація:

1.1 HotelID - int, ID готелю для якого оновлюється інформація; 2.1 Base64Images - string[], масив рядків, що містять закодовані в Base64 формат послідовність байт вмісту файлів зображень; 3.1 HotelContacts - HotelContact[], одновимірний масив JSON структур HotelContact, у якому міститься опис інформації щодо готелю певною мовою і має такі поля:

       a. LanguageISO1Code - string, двобуквений код мови, для якої оновлюється інформація;
       b. HotelName- string, назва готелю відповідною мовою;
       c. HotelAddress - string, адреса готелю відповідною мовою;
       d. HotelDescription - string, опис готелю відповідною мовою.

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

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

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

UpdateRoomTypeInfo

Оновлення інформації за типами номерів готелю.

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

   1. RoomInfos - RoomInfo[], одновимірний масив JSON структур RoomInfo, у якому міститься така інформація:

1.1 RoomTypeID - int, ID типу номера для якого оновлюється інформація; 2.1 Base64Images - string[], масив рядків, що містять закодовані в Base64 формат послідовність байт вмісту файлів зображень; 3.1 RoomTypeDescriptions - RoomTypeDescription[], одновимірний масив JSON структур RoomTypeDescription, у якому міститься опис інформації за типом номера певною мовою і має такі поля:

       a. LanguageISO1Code - string, двобуквений код мови, для якої оновлюється інформація;
       b. RoomTypeDescription - string, опис номера певною мовою.

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

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

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

GetServicePrices

Отримання вартості певної послуги для певного прейскуранта.

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

   1. PriceListID - int, ідентифікатор прайс-листа для якого треба отримати вартість послуги;
   2. IsGroup - bool, true - розрахунок проводиться для групи, false - для гостя;
   3. Services - Service[], одновимірний масив JSON структур Service, у якому міститься така інформація:
       3.1. ServiceCode - int, код послуги;
       3.2. Quantity - десяткова, кількість;
       3.3. ConsumptionDate - datetime, дата і час споживання послуги.
   4. ISOCodeValute - string, необов'язковий параметр, 3 символи, трибуквена iso 
       назва валюти.

GetReservationInfoByEmail

Отримання інформації про бронювання по email.

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

   1. Email - string, email адреса, за якою шукатимуться броні;
   2. Limit - int, кількість записів, які будуть виведені у відповіді;
   3. Offset - int, кількість записів, які потрібно пропустити; 

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

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

   1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Error, 2 - Incorrect string;
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок;
   3. ErrorCode - string, код помилки;
   4. Length - int, загальна кількість броней, які знайшлися за заданим email;
   5. Reservations - Reservation[], одновимірний масив JSON структур Reservation, у якому міститься така інформація:
       5.1. Account - рядок, ідентифікатор бронювання;
       5.2. AccountName - string, ПІБ гостя в бронюванні / назва заходу.
       5.3. HotelID - int, ID готелю, якому належить бронь;
       5.4. DateArrival - DateTime, дата заїзду/дата початку заходу;
       5.5. DateDeparture - DateTime, дата виїзду/дата закінчення заходу;
       5.6. Adults - int, від 1 до 1000. Кількість дорослих людей;
       5.7. Childs - int, від 0 до 1000. Кількість дітей;
       5.8. RoomTypeID - int, 1 до +∞, ID категорії номера / ID типу заходу;
       5.9. RoomType -string, назва категорії номера/ назва типу заходу;
       5.10. StatusID - int, код статусу бронювання;
       5.11. StatusName - string, назва статусу бронювання гостя/заходу

OnlinePaymentInfo

Отримання інформації про нарахування та рахунки для оплати онлайн системою.

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

   1. Account - string, акаунт, про який необхідно отримати інформацію (формат:

<префікс><ідентифікатор доповнений зліва нулями до 10 символів>, префікси та їхні об'єкти: "" - гість, "G" - група, "A" - захід, "I" - рахунок)

   2. ValuteISOCode - string, код валюти згідно з ISO 4217 

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

   1. Result - int, результат виконання, 0 - OK, 1 - Function Error, 2 - Incorrect string
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок
   3. ErrorCode - string, код помилки
   4. HotelID - int, ідентифікатор готелю
   5. AccountName - string, найменування платника
   6. FirstDate - date, дата заїзду/початку
   7. LastDate - date, дата виїзду/кінця
   8. Adults - int, кількість дорослих
   9. Childs - int, кількість дітей
   10. TypeID - int, ідентифікатор типу/категорії
   11. TypeName - string, найменування типу/категорії
   12. StatusID - int, код статусу
   13. StatusName - string, назва статусу
   14. Email - рядок, електронна пошта
   15. Phone - рядок, контактний телефон
   16. ValuteISOCode - string, код валюти згідно з ISO 4217
   17. ValuteShort - string, скорочення валюти
   18. PaidType - int, код типу оплати 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата
   19. ServiceProviderID - int, ідентифікатор постачальника послуг, що використовується для виставлення рахунків під час оплати кредитною карткою
   20. ServiceProviderName - string, найменування постачальника послуг, що використовується для виставлення рахунків під час оплати кредитною карткою
   21. Services - ServiceInfo[], інформація за цінами послуг поза рахунком
       21.1. ServiceID - int, ідентифікатор послуги
       21.2. ServiceName - string, найменування послуги
       21.3. ServiceCode - int, крд послуги
       21.4. ServiceSystemCode - string, системний код послуги
       21.5. ServiceTypeName - string, назва типу послуги
       21.6. PriceDate - PriceDate[], інформація про ціни для проміжку часу
           21.6.1. Date - date, дата споживання
           21.6.2. Price - десяткова?, вартість
           21.6.3. TaxRate - decimal?, податкова ставка
           21.6.4. TaxAmount - decimal?, сума податку
           21.6.5. IsPaid - bool, ознака оплати (як повної так і часткової)
           21.6.6. CustomerAccount - особовий рахунок споживача
           21.6.7. PayAccount - особовий рахунок платника (присутній тільки для оплачених)
           21.6.8. ServiceProviderID - int, ідентифікатор постачальника послуг, що використовується для виставлення рахунків під час оплати кредитною карткою.
           21.6.9. ServiceProviderName - string, найменування постачальника послуг, що використовується для виставлення рахунків під час оплати кредитною карткою
   22. Bills - BillInfo[], інформація за рахунками
       22.1. BillID - int, ідентифікатор рахунку
       22.2. ServiceProviderID - int, ідентифікатор постачальника послуг у рахунку
       22.3. ServiceProviderName - string, найменування постачальника послуг у рахунку
       22.4. Services - ServiceInfo[], інформація щодо послуг у рахунку

GetHotelRooms

Отримання всіх активних кімнат готелю.

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

   1. HotelId - int, ID готелю, для якого потрібно отримати список кімнат. 

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

   1. Result - int, результат виконання, 0 - OK, 1 - Function Error, 2 - Incorrect string
   2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок
   3. ErrorCode - string, код помилки
   4. Rooms - Room[], інформація по кімнатах
       4.1. RoomId - int, ідентифікатор кімнати
       4.2. RoomNumber - string, номер кімнати