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

Матеріал з expertsolution
Перейти до навігації Перейти до пошуку
Немає опису редагування
Немає опису редагування
Рядок 796: Рядок 796:
}
}
</pre>
</pre>
*перелік можливих значень поля DocumentType
<pre>
<pre>
*перелік можливих значень поля DocumentType
•Passport
•Passport
•InternationalPassport
•InternationalPassport

Версія за 08:19, 21 травня 2025

Формат запитів 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


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


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