T
Формат запитів JSON
Формат переданих і прийнятих даних – протокол обміну JSON. Кодування запиту та відповіді UTF8.
Запити повинні містити інформацію про авторизацію, відповіді повинні містити інформацію про версію протоколу, знімок часу в момент відповіді сервера, інформацію про помилку. Приклад запиту та відповіді наведено нижче.
Права доступу розрізняються залежно від пари користувач/пароль, які вводяться в кожному JSON-запиті в розділі «Облікові дані»:
{ "Credentials": { "UserName": "UserName", "Password": "User Password" }, }
Формат даних
- Формат дати/часу: "yyyy-MM-dd HH:mm:ss";
- Формат дати: "yyyy-MM-dd"
- Формат часу: "HH:mm"
- Роздільник типів із плаваючою крапкою(double): "."
Опис функцій спілкування
GetGuestsModified
Отримання інформації про гостей готелю.
Параметри: дані авторизації, готель (декілька?), час оновлення даних (обрізано те, що було раніше, якщо не вказано, то тільки для всіх гостей, що проживають,
або наступне бронювання, або останнє перебування в номері), масив з переборами відображених даних (проживання гостей (за замовчуванням, якщо не вказано), бронювання, виїзду, контактна інформація для гостей)
Вхідні параметри:
{ "Credentials" : { "UserName" : "UserName", "Password" : "User Password" }, // 0 – всі доступні готелі "Hotels" : [1, 2,...], // дата з часом, показувати номери, зміни у яких сталися після вказаного часу. "ModifiedDateFrom" : "2019-11-12 12:33:45", // необов’язковий фільтр за ідентифікаторами гостей "GuestsID" : ["1", .....] , // відповідно заброньовані, що проживають, останній виїхавший по номеру, анульований, незаїзд. "GuestStatus" : [0,2,3,-1,-2], // отримувати вартість гостя, за замовчуванням ні "isNeedCostInfo" : "0", // літерні коди класів послуг, нарахування по яких потрапляють у вартість "ServiceClasses":[""], // літерні коди підкласів послуг, нарахування по яких не потраплятимуть у вартість "ExcludeServiceSubclasses":[""], // виводити дані по анкетах у гостей, за замовчуванням ні "isNeedClientInfo" : "0", // вивантажувати фото клієнта "isNeedClientPhoto" : "0", // виводити дані по документах в анкетах, за замовчуванням ні "isNeedDocumentsInfo" : "0", // ПІБ гостя "GuestName" : "Петров Петро Петрович", // Номер телефону "PhoneNumber" : "0991232233", // Пошта "Mail" : "user@gmail.com", // Ідентифікатор анкети гостя "ClientID" : 654, // Вподобання "Preferences": [ { "Code": "carnumber", "Value": "333-44-55" } ], // Комплексний пошук по конкретних полях "ComplexSearch": { "SearchString": "+380991112233", "SearchObjects": ["GuestName", "Phone", "Email", "RoomNumber", "AccountNumber", "IdentityCard"] } }
Значення, що повертається:
{ "VersionInfo" : "0.1", // час, коли почали формувати відповідь на сервері у UTC (мілісекунди) "RequestTime" : "345356546", // код помилки, 0 – помилок немає "ErrorCode" : "0", "ErrorText" : "" , "Hotels" : [ "HotelInformation" : { "HotelID" : 1, "HotelName" : "Назва", "HotelShortName" : "КороткаНазва" }, "Guests" : [ { "Room" : { "RoomId" : 1, "RoomNumber" : "1001", "Floor" : "10", "RoomType" : { "RoomTypeName" : "", "RoomTypeShortName" : "", "RoomTypeId" : "", "Beds" : "1", "AddBeds" : "0" } }, "Guest" : #GuestInformation# } ] // Гості ] // Готелі }
GetClientsModified
Вхідні параметри:
{ "Credentials": { "UserName": "UserName", "Password": "User Password" }, // 0 – всі доступні готелі "Hotels": [1, 2, ...], // Дата з часом у UTC, показувати анкети, зміни у яких сталися після вказаного часу. "ModifiedDateFrom": "", // необов’язковий фільтр за ідентифікаторами клієнтів "ClientsID": [1, ...], // фільтри для анкет "Phones": [""], "Emails": [""], "FirstName": "", "LastName": "", "MiddleName": "", // серія та номер документа без роздільників "DocumentSeriesAndNumber": "", // ІПН документа "DocumentIIN": "", "Sex": true, // true - чоловічий, false - жіночий "BirthDay": "1982-08-01", // Вподобання "Preferences": [ { "Code": "carnumber", "Value": "333-44-55" } ], // Комплексний пошук по конкретних полях "ComplexSearch": { "SearchString": "+380991112233", "SearchObjects": ["LastName", "FirstName", "MiddleName", "Phone", "Email", "AccountNumber"] } }
Значення, що повертається:
{ "VersionInfo": "0.1", //время когда начали формировать ответ на сервере в UTC "RequestTime": "", //Код ошибки, 0 – нет ошибок "ErrorCode": "0", "ErrorText": "", "Clients": [ "Client": { "ClientID": "1", "FirsName": "", "MiddleName": "", "LastName": "", "BirthDay": "", "Email":"guest@gmail.com", "Phone":"+79997776655", "Comment":"Like smoking", "GuestsID":[1,2], "Documents": [ "PersonDocument": { "DocumentType": , "DocumentNumber": , "DocumentSeries": , "DocumentDateIssue": "", "DocumentDateEnd": "", "IIN": "", } ] } ]// Clients }
UpdateRooms
Вхідні параметри:
{ "Credentials": { "UserName": "UserName", "Password": "User Password" }, "Hotels": [ { "HotelInformation": { "HotelID": 1, "HotelName": "Name", "HotelShortName": "ShortName" }, "Rooms": [ { "Room": { "RoomId": 1, // код прибирання "CleanStatus": "clean", // код статусу продажу (sale, repair, repair not sale) "SaleStatus": "repair" } } ] } ] }
Значення, що повертається:
{ "VersionInfo": "0.1", // час, коли почали формувати відповідь на сервері у UTC (мілісекунди) "RequestTime": "123423234", // код помилки, 0 – помилок немає "ErrorCode": "0", "ErrorText": "" }
GetCustomerPayments
Вхідні параметри:
{ "Credentials": { "UserName": "UserName", "Password": "User Password" }, // 0 – всі доступні готелі "Hotels": [1, 2, ...], // масив з типом і кодом, кому надавалась послуга "Customers": [ { "CustomerId": 1, // тип контрагента (1 – гість, 2 – група, 3 – компанія, 4 – захід, 5 – цільовий рахунок) "CustomerType": 1 } ], // масив ідентифікаторів послуг (serviceid) для фільтру "Services": [1, 2, ...], // масив літерних кодів класів послуг для фільтру "ServiceClasses": [""], // масив літерних кодів підкласів послуг для фільтру "ServiceSubClasses": [""], // включати анульовані нарахування (за замовчуванням ні) "IncludeCanceled": "0", // дати періоду надання послуг, якщо якась дата не вказана — період відкритий "ConsumptionDateStart": "2020-01-01 14:00:00", "ConsumptionDateEnd": "2020-01-02 12:00:00", // початкова дата, з якої нарахування були змінені "ModifiedPaymentsFrom": "2020-01-01 14:00:00", // кінцева дата, до якої нарахування були змінені "ModifiedPaymentsTo": "2020-01-02 12:00:00", // типи номенклатури послуг "NomenclatureTypes": [0, 1] }
Значення, що повертається:
{ "Hotels": [ { "HotelInformation": { "HotelID": 1, "HotelName": "Name", "HotelShortName": "ShortName" }, // список контрагентів, хто користується послугою "Customers": [ { "CustomerID": 1, // тип контрагента (1 – гість, 2 – група, 3 – компанія, 4 – захід, 5 – цільовий рахунок) "CustomerType": 1, "CustomerName": "Василь Сухопаров", "ArrivalDate": "2013-06-07 08:54:00", "BookingSource": "Реклама", "CompanyOperatorID": null, "Consumer": "F0000029177", "ConsumerID": 29177, "ConsumerTypeID": 1, "CountryISO3": "UKR", "CountryName": "Україна", "DepartureDate": "2017-01-26 12:00:00", "Name": "Чуж Іннокентій Сидорович", "PriceListName": "Peggy", "RoomNumber": "23", "RoomTypeName": "Стандарт", "RoomTypeID": 1, "HousingName": "Корпус 1", "HousingID": 1, "Payments": [ { "PaymentID": 1, "PaymentType": 1, "ServiceID": 1, "ServiceClassName": "", "ServiceClassCode": "", "ServiceSubClassName": "", "ServiceSubClassCode": "", "ConsumptionDate": "2017-11-09 08:11:33", // статус оплати (0 – не оплачено, 1 – оплачено, 2 – частково оплачено) "NomenclatureTypes": 0, "NomenclatureTypeName": "Продукт", "PaymentStatus": 0, "PayAmount": "100.00", "PayAmountValuteISO": "RUB", "Quantity": "1.000", "Price": "10.00", "UsedQuantity": "1.000", "PriceValuteISO": "RUB", "IsPackagePayment": true, "TaxName": "", "TaxSum": "", "TaxRate": "", "TaxName2": "", "TaxSum2": "", "TaxRate2": "", "RestaurantReceipt": 1, "RestaurantBill": "", "ReceiptPayTypeID": 1, "ReceiptPayTypeName": "Карта", "IsReturned": false, "LastReceiptDate": "2013-06-07 08:54:00", "LastReceiptID": 1, "LastReceiptBillID": 1, "IsCanceled": false, "PackagePayments": [ { "PackagePaymentID": 1, "ServiceID": 1, "ServiceName": "", "ServiceClassName": "", "ServiceClassCode": "", "ServiceSubClassName": "", "ServiceSubClassCode": "", "Quantity": "1.000", "UsedQuantity": "1.000", "Price": "10.00", "PeriodDateFrom": "2017-11-08 08:00:00", "PeriodDateTo": "2017-11-10 10:00:00" } ] } ] } ] } ] }
GetUsers
Вхідні параметри:
{ "Credentials": { "UserName": "UserName", "Password": "User Password" }, // 0 – всі доступні готелі "Hotels": [1, 2, ...], // масив ідентифікаторів користувачів для фільтру. Якщо не вказано, то всі активні користувачі готелю "UsersID": [1, 2, ...] }
Значення, що повертається:
{ "ErrorCode": 0, "ErrorText": "", "RequestTime": "1585726829983", "VersionInfo": "0.1", "Hotels": [ { "HotelInformation": { "HotelID": 1, "HotelName": "Готель 1", "HotelShortName": "Г1" }, "Users": [ { "Email": "petrovich@gmail.com", "Phone": "56556756", "UserID": 372, "UserName": "Петров Петро Петрович" } ] } ] }
GetCompanies
Вхідні параметри:
{ "Credentials": { "UserName": "UserName", "Password": "User Password" }, // масив ідентифікаторів компаній для фільтру. Якщо не вказано, то всі відкриті компанії "CompaniesID": [1, 2, ...] }
Значення, що повертається:
{ "ErrorCode": 0, "ErrorText": "", "RequestTime": "1585727691299", "VersionInfo": "0.1", "Companies": [ { "CompanyID": 2, "CompanyName": "__Relax", "Email": "sdasd@sdasd.ru", "Phone": "123123" } ] }
GetActivitiesModified
Вхідні параметри:
{ "Credentials": { "UserName": "UserName", "Password": "User Password" }, // 0 – всі доступні готелі "Hotels": [1, 2, ...], // дата з часом, показувати заходи, зміни у яких сталися після вказаного часу "ModifiedDateFrom": "2019-11-12 12:33:45", // необов’язковий фільтр за ідентифікаторами заходів "ActivitiesID": [1, ...], // статуси заходів (-2, -1, 0, 3) "ActivityStatus": [0, ...], // необов’язковий фільтр за ідентифікаторами груп "GroupsID": [1, ...], // отримувати вартість, за замовчуванням ні "isNeedCostInfo": 0, // літерні коди класів послуг, нарахування по яких потрапляють у вартість "ServiceClasses": [""], // літерні коди підкласів послуг, нарахування по яких не потраплятимуть у вартість "ExcludeServiceSubclasses": [""], // комплексний пошук по конкретних полях "ComplexSearch": { "SearchString": "+380991112233", "SearchObjects": ["Name", "Phone", "Email", "AccountNumber"] } }
Значення, що повертається:
{ "ErrorCode": 0, "ErrorText": "", "RequestTime": "1595322549800", "VersionInfo": "0.1", "Hotels": [ { "Activities": [ { "ActivityID": 405, "ActivityName": "Мангал", "ActivityTypeID": 1, "ActivityTypeName": "Мангал 1", "Adults": 1, "Childs": 0, "Comment": "", "Company": null, "ContactName": "", "Cost": "388.66", "Country": null, "DecisionDate": "", "Email": "", "EndDate": "2012-06-08 02:00:00", "GroupID": null, "InfoSourceID": 1, "InfoSourceName": "Реклама", "Manager": { "Email": "", "Phone": "4242", "UserID": 1, "UserName": "Адмін" }, "OperatorCompany": { "CompanyID": 314, "CompanyName": "", "CompanyPrintCode": "", "CompanyPrintName": "", "CompanyPrintSertificate": "", "Email": "", "ITN": "", "Phone": "", "SegmentID": null, "SegmentName": "", "IndustryID": null, "IndustryName": "" }, "Payments": [ { "ConsumptionDate": "2012-06-08 02:00:00", "IsCanceled": false, "IsPackagePayment": false, "PackagePayments": [], "PayAmount": "0.00", "PayAmountValuteISO": "", "PaymentId": 556721, "PaymentStatus": 0, "PaymentType": 4, "Price": "388.66", "PriceValuteISO": "UAH", "Quantity": "1.000", "ServiceClassCode": "dwelling", "ServiceClassName": "Послуги проживання", "ServiceId": 89579, "ServiceName": "Проживання", "Tax2Name": "Акцизний збір", "Tax2Rate": "0.18", "Tax2Sum": "59.29", "TaxName": "ПДВ 18%", "TaxRate": "0.20", "TaxSum": "54.90", "UsedQuantity": "" } ], "Phone": "", "PaidTypeID": 1, "PaidTypeName": "Готівка", "PayStatus": 1, "CreationLoginID": 2, "PrepareTypeID": null, "PrepareTypeName": null, "PriceList": { "PriceListID": 24, "PriceListName": "Peggy", "Description": "", "IsChargeBonuses": false, "IsForInternet": false, "IsNonReturnRate": false, "IsRackRate": false, "IsSpecRate": false }, "ReservationTypeID": 1, "StartDate": "2012-06-05 08:00:00", "StatusID": 0, "StatusName": "Активне" } ], "HotelInformation": { "HotelID": 1, "HotelName": "Готель 1", "HotelShortName": "Г1" } } ] } Прайс-лист та сутності країн виглядають наступним чином: Country: {"CountryID":int, "CountryName":string, "CountryISO2":string, "CountryISO3":string}PriceList: {"PriceListID":int, "PriceListName":string}
GetGroupsModified
Вхідні параметри:
{ "Credentials": { "UserName": "UserName", "Password": "User Password" }, // 0 – всі доступні готелі "Hotels": [1, 2, ...], // дата з часом, показувати групи, зміни у яких сталися після вказаного часу "ModifiedDateFrom": "2019-11-12 12:33:45", // статуси груп (-3, -2, -1, 0, 1) "GroupStatus": [0, ...], // необов’язковий фільтр за ідентифікаторами груп "GroupsID": [1, ...], // отримувати вартість, за замовчуванням ні "isNeedCostInfo": 0, // літерні коди класів послуг, нарахування по яких потрапляють у вартість "ServiceClasses": [""], // літерні коди підкласів послуг, нарахування по яких не потраплятимуть у вартість "ExcludeServiceSubclasses": [""], // комплексний пошук по конкретних полях "ComplexSearch": { "SearchString": "+380991112233", "SearchObjects": ["Name", "Phone", "Email", "AccountNumber"] } }
Значення, що повертається:
{ "ErrorCode": 0, "ErrorText": "", "RequestTime": "1595328964995", "VersionInfo": "0.1", "Hotels": [ { "Groups": [ { "Activities": [ 571, 572, 573 ], "Adults": 5, "CanceledReason": null, "Childs": 0, "ChildsPay": 0, "Comment": "", "Company": null, "ContactName": "", "Cost": "650.00", "Country": null, "DecisionDate": "", "Email": "", "EndDate": "2012-06-30 12:00:00", "GroupID": 717, "GroupName": "sdvsdvsd", "Guests": [ 28571, 28572, 28573 ], "InfoSourceID": null, "InfoSourceName": "", "Manager": null, "ManagerID": 403, "PaidTypeID": 1, "PaidTypeName": "Готівка", "PersReservation": 2, "OperatorCompany": { "CompanyID": 285, "CompanyName": "Google", "CompanyPrintCode": "6756777777", "CompanyPrintName": "Google", "CompanyPrintSertificate": "", "Email": "", "ITN": "125154452115", "Phone": "", "SegmentID": null, "SegmentName": "", "IndustryID": null, "IndustryName": "" }, "PriceList": { "Description": "", "IsChargeBonuses": false, "IsForInternet": false, "IsNonReturnRate": false, "IsRackRate": false, "IsSpecRate": false, "PriceListID": 24, "PriceListName": "Peggy" }, "Payments": [ { "ConsumptionDate": "2012-06-30 12:00:00", "IsCanceled": false, "IsPackagePayment": true, "PackagePayments": [], "PayAmount": "0.00", "PayAmountValuteISO": "UAH", "PaymentId": 303327, "PaymentStatus": 0, "PaymentType": 2, "Price": "650.00", "PriceValuteISO": "UAH", "Quantity": "1.000", "ServiceClassCode": "dwelling", "ServiceClassName": "Послуги проживання", "ServiceId": 1, "ServiceName": "Проживання Pack", "ServiceSubClassCode": "dwelling", "ServiceSubClassName": "Проживання", "Tax2Rate": "", "Tax2Sum": "", "TaxRate": "", "TaxSum": "", "UsedQuantity": "" } ], "Phone": null, "PriceList": { "PriceListID": 31, "PriceListName": "Raquel8" }, "ReservationTypeID": 2, "StartDate": "2012-06-21 14:00:00", "StatusID": 0, "StatusName": "Активна" } ], "HotelInformation": { "HotelID": 1, "HotelName": "Готель 1", "HotelShortName": "Г1" } } ] }
UpdateGuest
Вхідні параметри:
{ "Credentials":{ "UserName":"username", "Password":"password" }, "GuestID":29177, "Comment":"", "UpdateFields":{ "ClientsToAdd":[49060], "ClientsToDelete":[1,2] } }
Значення, що повертається:
{ "VersionInfo" : "", Час, коли відповідь почала генеруватися на сервері в UTC (мілісекунди) "RequestTime" : "345356546", код помилки, 0 – помилок немає "ErrorCode" : "0", "ErrorText" : "" , }
AddClient
Вхідні параметри:
{ "Credentials":{ "UserName":"username", "Password":"password" }, "LastName":"External", //обязательное поле "Iso3Country":"UKR", //обязательное поле "Sex":true, "FirstName":"Service", "MiddleName":"Test", "BirthDay":"1991-02-02", "AdultOrChild":false, "Address":"Kiev, Yangelya 39a", "ClubCardNumber":1, "Email":"user@test.com", "Phone":"0991112233", "BlackList":true, "VIP":true, "Preferences":[{ "Code":"carnumber", "Value":"" }], "Documents": [ { "DocumentDateEnd": "2050-02-02", "DocumentDateIssue": "1991-02-02", "DocumentNumber": "000000", "DocumentSeries": "uu", "DocumentType": "Passport",//обязательное поле "IIN": "3333333333" } ] }
Значення, що повертається:
{ "VersionInfo" : "", Час, коли відповідь почала генеруватися на сервері в UTC (мілісекунди) "RequestTime" : "345356546", код помилки, 0 – помилок немає "ErrorCode" : "0", "ErrorText" : "" , }
- перелік можливих значень поля DocumentType
•Passport •InternationalPassport •ServicePassport •DiplomaticPassport •CertificationSoldier •SeamanPassport •MilitaryID •DrivingLicence •TemporaryIdentityCard •ForeignCitizenPassport •BirthCertificate •IdentityCard •InternationalPassportNew •InternationalBirthCertificate •ExternalInternationalPassport •UssrPassport •ExternalBirthCertificate •ForeignBirthCertificate •TemporaryAsylumCertificate •CisCitizenIdentityCard •ForeignCitizenServicePassport •NationalForeignCitizenPassport •TemporaryAsylumReview
Вхідні параметри:
Значення, що повертається: