ПрограмаЛояльності
Опис взаємодії
Взаємодія системи HMS Servio і Servio Restaurant із процесинговим центром відбуватиметься через звернення цих систем до WCF служби процесингу за протоколом JSON, кодування передавання даних UTF8, методом POST. Для цього протоколу всі типи і значення повинні передаватися в текстовому поданні. Тому необхідно використовувати такі формати для текстового представлення даних таких типів:
1. datetime - строкове подання дати у форматі "yyyy-MM-dd HH:mm:ss" 2. decimal - 18.2 - використовується округлення до 2х знаків після коми, як роздільник цілої та дробової частини виступає "." (крапка) 3. int - стандартне десяткове строкове подання цілого числа 4. string[N] - обмежений за розміром рядок, розмір рядка плаваючий від 0 до N символів. 5. string - необмежений за розміром рядок, розмір рядка плаваючий від 0 до 8000 символів. 6. bool - строкове представлення логічного типу, де "1" - істина (true), "0" - брехня (false)
Приклад запиту і відповіді у форматі JSON: запит POST http://localhost:8000/ServioLoyaltyService/PayBonusesRequest Content-Type: application/json; charset=utf-8 Host: localhost:8000 Content-Length: 241 Connection: Keep-Alive {"MagneticCardID": "5", "Transactions":[{"Sum": "300.3", "ServiceGroupID": "3"}]} результат HTTP/1.1 200 OK Content-Length: 186 Content-Type: application/json; charset=utf-8 Сервер: Microsoft-HTTPAPI/2.0 Дата: Wed, 06 Sep 2023 11:58:56 GMT {"Error":null,"MagneticCardID":5,"BonusBalance":0.00,"UserName":"666 666","Transactions":[{"BonusesToPay":0.00,"ServiceGroupID":3,"Sum":300.3,"TransactionDate": "2023-09-06 14:58:56"}]}
Функції протоколу
Протокол обміну представлений у вигляді окремих відкритих функцій, до яких може будьякий клієнт POS системи.
Get_eWallet_Info
Метод за номером магнітної картки та\або ідентифікатором компанії та\або кодом бронювання та\або коротким номером картки з програмою лояльності повертає інформацію щодо картки, учасника, якому вона належить, транзакцій і налаштувань програми лояльності. Метод підходить для POS і HMS.
Вхідні параметри:
• string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • int? CompanyAccount - ідентифікатор компанії HMS Servio. • string[20] AuthCode - код бронювання. (Не впливає на виконання запиту) • string[20] SynkLoyaltyCode - код синхронізації програми лояльності. (Не впливає на виконання запиту) • string[50] CardNumber - повний номер картки, за повним збігом якого шукають магнітну картку, що належить учаснику програми лояльності. • string[30] ShortCardNumber - короткий номер картки, за повним збігом якого (за наявності) шукають магнітну картку, що належить учаснику програми лояльності. • string[30] PhoneNumber - номер телефону, перевіряє збіг за останніми 9 цифрами з контактом або компанією програмою лояльності • int? PersonID - ІД персони
Результат функції:
• string Error - опис помилки, що виникла • eWallet[] eWallets - масив описів електронних гаманців eWallet. Елементи масиву структури з такими полями: ◦ int eWalletID - ID електронного гаманця o string[100] LoyaltyProgramName - назва програми лояльності
(string.Empty) o string[50] BonusStatusName - назва статусу програми лояльності o decimal BonusBalance - поточний бонусний баланс електронного гаманця o decimal AccumulatedBonuses - поточна кількість накопичених бонусів електронного гаманця
◦ string[50] DiscountStatusName - назва статусу програми лояльності o string[20] DiscountPriceListCode - код прейскуранта поточного дисконтного статусу, потрібен для синхронізації знижки за прейскурантом, якщо гаманець відноситься до дисконтної програми і для нього заведений код прейскуранта. (string.Empty) ◦ decimal DiscountTransactionsSum - сума всіх неанульованих транзакцій з урахуванням знижки, проведених для цього гаманця ◦ string[20] ServioSynkCode - код синхронізації програми лояльності o int? CompanyAccount - ідентифікатор компанії HMS Servio. ◦ string[30] MagneticCardShortNumber - короткий номер магнітної картки o string[30] MagneticCardFullNumber - довгий номер магнітної картки o decimal BonusSum - сума бонусів o decimal PaySum - сума на платіжній картці o decimal Credit - сума кредиту o decimal Accumulation - сума оборотів за карткою ◦ bool IsPayCard - прапор, що визначає налаштування лояльності "Робота з грошовими коштами" ◦ decimal ExtraMoneySum - сума екстра-грошей o bool IsSmartCard - ознака смарт карти (false) ◦ string ShortCode - короткий номер магнітної картки o decimal DayLimit - ліміт списання за день ◦ decimal WeekLimit - ліміт списання за тиждень o decimal MonthLimit - ліміт списання за місяць ◦ decimal YearLimit - ліміт списання за рік o bool UsePayLimits - ознака використання лімітів списання (false) ◦ bool UseCatLimits - ознака використання лімітів категорій (false) ◦ datetime ValidityStart - дата початку дії картки/сертифіката o datetime Validity - дата закінчення дії картки/сертифіката o bool Issue - ознака Issued (false) ◦ int Cardid - ІД картки ◦ string Comment - коментар (string.Empty) ◦ string Description - Примітка (string.Empty) ◦ decimal Discount - розмір знижки за карткою (0) ◦ string SynkLoyaltyCode - код лояльності з налаштувань програми лояльності ◦ int RoomNightBalance - кількість безкоштовних номероночей учасника o int MagneticCardID - ідентифікатор картки ◦ string UserName - ім'я власника ◦ string MobilePhone - номер телефону ◦ int DiscountGroupID - ідентифікатор дисконтної групи ◦ bool IsBonusProgram - приналежність до бонусної системи ◦ bool IsDiscountProgram - приналежність до дисконтної системи ◦ bool IsActive - ознака активності
За вхідними даними система шукає учасників, інформацію про них і налаштування програми лояльності в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Discount_Transaction_eWallet_Request
Метод виконує запит інформації щодо можливості надання знижки за ID магнітної картки та списком транзакцій. Метод підходить для POS і HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності. • string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • Transaction[] Transactions - масив транзакцій структур Transaction. Структура Transaction має такі поля: ◦ decimal Sum - сума транзакції. o DateTime TransactionDate - дата проведення транзакції в POS-системі. o int ServiceGroupCode - код групи послуг POS-системи. ◦ string[30] POSsystemAccount - Л/Рахунок у POS системі. (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ int BillitemID - ідентифікатор позиції рахунку
Результат функції:
• string Error - опис помилки, що виникла. • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту. • int MagneticCardID - ID учасника програми лояльності, якому належить картка із запиту. • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту. • DiscountTransaction[] DiscountTransactions - масив транзакцій для отримання знижки структур DiscountTransaction. Структура DiscountTransaction має такі поля: ◦ DateTime TransactionDate - дата проведення транзакції. ◦ decimal Sum - сума транзакції. o int ServiceGroupCode - код групи послуг POS-системи. ◦ string[30] POSsystemAccount - Л/Рахунок у POS системі. ◦ decimal Discount - величина знижки у валюті. ◦ decimal DiscountSum - сума транзакції з урахуванням знижки. ◦ string[20] DiscountPriceListCode - код прейскуранта поточного дисконтного статусу, не обов'язковий для заповнення, використовується при акцептуванні транзакцій зі знижкою за прейскурантом. ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Порожнє поле) ◦ string ErrorTransaction - опис помилки, що виникла для конкретної транзакції (Порожнє поле) ◦ int BillitemID - ідентифікатор позиції рахунку
Спочатку відбувається перевірка на дисконтний тип програми, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає карту в базі даних, якщо такої немає або вона неактивна, повертає помилку. Якщо карта є і вона активна, то система розраховує знижки для транзакцій. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Discount_Transaction_eWallet_Accept
Метод виконує підтвердження надання знижки за ID магнітної картки та списком транзакцій. Метод підходить для POS і HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності. • string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • int? BillID - ідентифікатор рахунку • int BaseExternalID - ідентифікатор зовнішньої системи • DiscountTransaction[] DiscountTransactions - масив транзакцій для отримання знижки структур DiscountTransaction. Структура DiscountTransaction має такі поля: o decimal Sum - сума транзакції. ◦ decimal DiscountSum - сума транзакції зі знижкою. (Не впливає на виконання запиту) ◦ DateTime TransactionDate - дата проведення транзакції. ◦ int ServiceGroupCode - код групи послуг POS системи. (Не впливає на виконання запиту) ◦ string[30] POSsystemAccount - Л/Рахунок у POS системі. (Не впливає на виконання запиту) ◦ decimal Discount - величина знижки у валюті. (Не впливає на виконання запиту) ◦ string[20] DiscountPriceListCode - код прейскуранта поточного дисконтного статусу, не обов'язковий для заповнення, використовується при акцептуванні транзакцій зі знижкою за прейскурантом. (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ десяткова? Quantity - кількість o string ErrorTransaction - опис виниклої помилки для конкретної транзакції. (Не впливає на виконання запиту) ◦ TransactionDetails Details - деталізація позицій рахунку. (Опціонально). Структура TransactionDetails має такі поля:
▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля:
• int ItemID - ID нарахування • int ServiceCode - Код послуги • string Name - Назва послуги • string ClassName - Назва класу послуги • string ClassCode - Код класу послуги • string SubClassName - Назва підкласу послуги • string SubClassCode - Код підкласу послуги • decimal Price - Ціна позиції • decimal Quantity - Кількість - Кількість • decimal Total - Підсумкова вартість
Результат функції:
• string Error - опис помилки, що виникла. • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal PayBonuses - загальна сума знижки за транзакціями із запиту
Спочатку відбувається перевірка на дисконтний тип програми, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає, повертає помилку про відсутність такої картки. Якщо картка є, то система бере учасника за даними з картки, розраховує знижки для транзакцій, додає транзакції в базу даних і оновлює інформацію про учасника в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Return_Discount_Transaction_eWallet_Request
Метод виконує запит інформації щодо можливості повернення транзакцій зі знижкою за ID магнітної картки та списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності. • string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • Transaction[] Transactions - масив транзакцій структур Transaction. Структура Transaction має такі поля: ◦ decimal Sum - сума транзакції. ◦ DateTime TransactionDate - дата проведення транзакції в POS системі. (Не впливає на виконання запиту) ◦ int ServiceGroupCode - код групи послуг POS-системи. ◦ string[30] POSsystemAccount - Л/Рахунок у POS системі. (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ decimal DiscountSum - сума транзакції зі знижкою. (Не впливає на виконання запиту) ◦ decimal Discount - величина знижки у валюті. (Не впливає на виконання запиту) ◦ string[20] DiscountPriceListCode - код прейскуранта поточного дисконтного статусу, не обов'язковий для заповнення, використовується при акцептуванні транзакцій зі знижкою за прейскурантом. (Не впливає на виконання запиту) o десяткова? Quantity - кількість
string ErrorTransaction - опис виниклої помилки для конкретної транзакції. (Не впливає на виконання запиту)
◦ TransactionDetails Details - деталізація позицій рахунку. (Опціонально). Структура TransactionDetails має такі поля:
▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля:
• int ItemID - ID нарахування • int ServiceCode - Код послуги • string Name - Назва послуги • string ClassName - Назва класу послуги • string ClassCode - Код класу послуги • string SubClassName - Назва підкласу послуги • string SubClassCode - Код підкласу послуги • decimal Price - Ціна позиції • decimal Quantity - Кількість - Кількість • decimal Total - Підсумкова вартість
Результат функції:
• string Error - опис помилки, що виникла. • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту. • int MagneticCardID - ID учасника програми лояльності, якому належить картка із запиту. • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту. • bool IsOTPNeed - ознака необхідності підтвердження операції паролем/пін-кодом (Завжди false) • DiscountTransaction[] DiscountTransactions - масив транзакцій для отримання знижки структур DiscountTransaction. Структура DiscountTransaction має такі поля: • DateTime TransactionDate - дата проведення транзакції. • decimal Sum - сума транзакції. o int ServiceGroupCode - код групи послуг POS-системи. o string[30] POSsystemAccount - Л/Рахунок у POS системі. o decimal Discount - величина знижки у валюті. o decimal DiscountSum - сума транзакції з урахуванням знижки. • string[20] DiscountPriceListCode - код прейскуранта поточного дисконтного статусу, не обов'язковий для заповнення, використовується при акцептуванні транзакцій зі знижкою за прейскурантом.
string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Порожнє поле)
• string ErrorTransaction - опис помилки, що виникла для конкретної транзакції (Порожнє поле) • TransactionDetails Details - деталізація позицій рахунку. Структура TransactionDetails має такі поля:
▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля:
◦ int ItemID - ID нарахування ◦ int ServiceCode - Код послуги ◦ string Name - Назва послуги ◦ string ClassName - Назва класу послуги ◦ string ClassCode - Код класу послуги ◦ string SubClassName - Назва підкласу послуги ◦ string SubClassCode - Код підкласу послуги ◦ decimal Price - Ціна позиції ◦ decimal Quantity - Кількість - Кількість ◦ decimal Total - Підсумкова вартість
Спочатку відбувається перевірка на дисконтний тип програми, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає карту в базі даних, якщо такої немає або вона неактивна, повертає помилку. Якщо карта є і вона активна, то система розраховує знижку для транзакцій. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Return_Discount_Transaction_eWallet_Accept
Метод виконує підтвердження повернення зі знижкою за ID магнітної картки та списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності. • string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • string CodeOTP - пароль/пін-код підтвердження операції. (Не впливає на виконання запиту) • DiscountTransaction[] DiscountTransactions - масив транзакцій для отримання знижки структур DiscountTransaction. Структура DiscountTransaction має такі поля:
decimal Sum - сума транзакції.
◦ decimal DiscountSum - сума транзакції зі знижкою. (Не впливає на виконання запиту) ◦ DateTime TransactionDate - дата проведення транзакції. o int ServiceGroupCode - код групи послуг POS-системи. ◦ string[30] POSsystemAccount - Л/Рахунок у POS системі. (Не впливає на виконання запиту) ◦ decimal Discount - величина знижки у валюті. (Не впливає на виконання запиту) ◦ string[20] DiscountPriceListCode - код прейскуранта поточного дисконтного статусу, не обов'язковий для заповнення, використовується при акцептуванні транзакцій зі знижкою за прейскурантом. (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ string ErrorTransaction - опис виниклої помилки для конкретної транзакції. (Не впливає на виконання запиту) ◦ TransactionDetails Details - деталізація позицій рахунку. Структура TransactionDetails має такі поля:
▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля:
• int ItemID - ID нарахування • int ServiceCode - Код послуги • string Name - Назва послуги • string ClassName - Назва класу послуги • string ClassCode - Код класу послуги • string SubClassName - Назва підкласу послуги • string SubClassCode - Код підкласу послуги • decimal Price - Ціна позиції • decimal Quantity - Кількість - Кількість • decimal Total - Підсумкова вартість
Результат функції:
• string Error - опис помилки, що виникла. • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal Discount - загальна сума знижки за транзакціями із запиту
Спочатку відбувається перевірка на дисконтний тип програми, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає, повертає помилку про відсутність такої картки. Якщо картка є, то система бере учасника за даними з картки, додає транзакції повернення з дисконтним типом і оновлює інформацію про учасника в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Add_eWallet_Bonuses_Request
Метод виконує запит інформації щодо можливості нарахування бонусів за ID магнітної картки та списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • int MagneticCardID - ID магнітної картки • int CustomerType - тип замовника в POS системі (Не впливає на виконання запиту) • int CustomerID - ID замовника в POS системі (Не впливає на виконання запиту) • Transaction[] Transactions - масив транзакцій структур Transaction. Структура Transaction має такі поля: ◦ DateTime TransactionDate - дата проведення транзакції в POS системі (Не впливає на виконання запиту) ◦ int ServiceGroupCode - код групи послуг POS системи o decimal Quantity - кількість послуг за транзакцією o decimal Sum - сума транзакції o string[30] POSsystemAccount - Л/Рахунок у POS системі (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ string ServiceProviderName - Найменування постачальника послуг (Не впливає на виконання запиту) ◦ string ServiceProviderID - ID постачальника послуг у POS системі (Не впливає на виконання запиту) ◦ TransactionDetails Details - деталізація позицій рахунку. (Опціонально). Структура TransactionDetails має такі поля:
▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека
decimal ReceiptSum - Сума чека
▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля:
• int ItemID - ID нарахування • int ServiceCode - Код послуги • string Name - Назва послуги • string ClassName - Назва класу послуги • string ClassCode - Код класу послуги • string SubClassName - Назва підкласу послуги • string SubClassCode - Код підкласу послуги • decimal Price - Ціна позиції • decimal Quantity - Кількість - Кількість • decimal Total - Підсумкова вартість
Результат функції:
• int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • int MagneticCardID - ID магнітної картки • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal BonusBalance - поточний бонусний баланс електронного гаманця • Transaction[] Transactions - масив транзакцій Transaction, за якими можливо виконати нарахування бонусів. Структура Transaction має такі поля: • DateTime TransactionDate - дата проведення транзакції в POS-системі
(Порожнє поле) o int ServiceGroupCode - код групи послуг POS системи o decimal Quantity - кількість послуг за транзакцією o decimal Sum - сума транзакції o string[30] POSsystemAccount - Л/Рахунок у POS системі o string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Порожнє поле)
• string ServiceProviderName - Найменування постачальника послуг o string ServiceProviderID - ID постачальника послуг у POS-системі o TransactionDetails Details - деталізація позицій рахунку. (Опціонально). Структура TransactionDetails має такі поля:
▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля:
◦ int ItemID - ID нарахування ◦ int ServiceCode - Код послуги ◦ string Name - Назва послуги ◦ string ClassName - Назва класу послуги ◦ string ClassCode - Код класу послуги ◦ string SubClassName - Назва підкласу послуги ◦ string SubClassCode - Код підкласу послуги ◦ decimal Price - Ціна позиції ◦ decimal Quantity - Кількість - Кількість ◦ decimal Total - Підсумкова вартість ◦ string Error - опис помилки, що виникла ◦ bool IsOTPNeed - ознака необхідності підтвердження операції паролем/пін-кодом
Спочатку відбувається перевірка на бонусний тип програми, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає карту в базі даних, якщо такої немає або вона неактивна, повертає помилку. Якщо картка є і вона активна, то система розраховує кількість бонусів для транзакцій. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Add_eWallet_Bonuses
Метод здійснює нарахування бонусів учаснику програми лояльності за ID магнітної картки та списком транзакцій. Метод підходить для POS і HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки. • string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • POSServiceProvider[] POSServiceProviders - Список сервіс провайдерів, які беруть участь в операції. (Опціонально). Структура POSServiceProvider має такі поля: ◦ string POSSProviderID - ID постачальника послуг у POS системі ◦ string CompanyName - Назва компанії ◦ bool IsCompany - Компанія чи фізособа ◦ рядок AddressLegal - Юридична адреса ◦ рядок ITN - ІПН ◦ string TaxIDCode - ЄДРПОУ(У) ◦ string JobPosition - Посада для підпису (наприклад: Директор) ◦ string Employee - Прізвище та ініціали для підпису (наприклад Пупкін В.П.) ◦ string AffilateCode - Код філії, якщо є ◦ string Bank_MFO - МФО банку з реквізитів рахунку ◦ string Bank_Name - Назва банку з реквізитів рахунку ◦ string Bank_Account - Рахунок у банку з реквізитів рахунку ◦ string IBAN - IBAN з реквізитів рахунку, якщо є ◦ string NDSNumber - Номер свідоцтва платника ПДВ, якщо є • Transaction[] Transactions - масив транзакцій для нарахування бонусів Transaction.
Структура Transaction має такі поля: o decimal Sum - сума транзакції. o DateTime TransactionDate - дата проведення транзакції в POS-системі.
◦ int ServiceGroupCode - код групи послуг POS-системи. ◦ string[30] POSsystemAccount - Л/Рахунок у POS системі. (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ десяткова? Quantity - кількість o TransactionDetails Details - деталізація позицій рахунку. (Опціонально). Структура TransactionDetails має такі поля:
▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля:
• int ItemID - ID нарахування • int ServiceCode - Код послуги • string Name - Назва послуги • string ClassName - Назва класу послуги • string ClassCode - Код класу послуги • string SubClassName - Назва підкласу послуги • string SubClassCode - Код підкласу послуги • decimal Price - Ціна позиції • decimal Quantity - Кількість - Кількість • decimal Total - Підсумкова вартість
Результат функції:
• int MagneticCardID - ID магнітної картки програми лояльності із запиту. • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту. • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal AddedBonuses - кількість нарахованих бонусів за транзакції • decimal BonusBalance - поточний бонусний баланс електронного гаманця • string Error - опис помилки, що виникла
Спочатку відбувається перевірка на бонусний тип програми, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає, повертає помилку про відсутність такої картки. Якщо картка є, то система бере учасника за даними з картки, розраховує кількість бонусів для транзакцій, додає транзакції в базу даних і оновлює інформацію про учасника в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Return_Add_eWallet_Bonuses_Request
Метод виконує запит інформації щодо можливості повернення транзакцій з нарахуванням бонусів за ID магнітної картки та списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • int MagneticCardID - ID магнітної картки • int CustomerType - тип замовника в POS системі (Не впливає на виконання запиту) • int CustomerID - ID замовника в POS системі (Не впливає на виконання запиту) • Transaction[] Transactions - масив транзакцій структур Transaction. Структура Transaction має такі поля: ◦ DateTime TransactionDate - дата проведення транзакції в POS системі ◦ int ServiceGroupCode - код групи послуг POS системи o decimal Quantity - кількість послуг за транзакцією ◦ decimal Sum - сума транзакції ◦ string[30] POSsystemAccount - Л/Рахунок у POS системі (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ string ServiceProviderName - Найменування постачальника послуг (Не впливає на виконання запиту) ◦ string ServiceProviderID - ID постачальника послуг у POS системі (Не впливає на виконання запиту) ◦ TransactionDetails Details - деталізація позицій рахунку. (Опціонально). Структура TransactionDetails має такі поля: ▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля: • int ItemID - ID нарахування • int ServiceCode - Код послуги • string Name - Назва послуги • string ClassName - Назва класу послуги • string ClassCode - Код класу послуги • string SubClassName - Назва підкласу послуги • string SubClassCode - Код підкласу послуги • decimal Price - Ціна позиції • decimal Quantity - Кількість - Кількість
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal BonusBalance - баланс бонусів учасника програми лояльності, якому належить картка із запиту • bool IsOTPNeed - ознака необхідності підтвердження операції паролем/пін-кодом (Завжди false) • Transaction[] Transactions - масив транзакцій Transaction, за якими можливо виконати скасування нарахування бонусів. Структура Transaction має такі поля: ◦ DateTime TransactionDate - дата проведення транзакції в POS системі ◦ int ServiceGroupCode - код групи послуг POS системи ◦ decimal Quantity - кількість послуг за транзакцією ◦ decimal Sum - сума транзакції ◦ string[30] POSsystemAccount - Л/Рахунок в POS системі ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Даний код повинен бути унікальним в межах POS системи серед не віддалених точок. ◦ string string ServiceProviderName - Найменування постачальника послуг ◦ string ServiceProviderID - ID постачальника послуг в POS системі ◦ TransactionDetails Details - деталізація позицій рахунку. (Опціонально). Структура TransactionDetails має такі поля: ▪ int BillID - ID рахунку в POS системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля: • int ItemID - ID нарахування • int ServiceCode - Код послуги • string Name - Назва послуги • string ClassName - Назва класу послуги • string ClassCode - Код класу послуги • string SubClassName - Назва підкласу послуги • string SubClassCode - Код підкласу послуги • decimal Price - Ціна позиції • decimal Quantity - Кількість • decimal Total - Підсумкова вартість
Спочатку відбувається перевірка на бонусний тип програми, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає або вона неактивна, повертає помилку. Якщо картка є і вона активна, то система бере учасника за даними з картки, розраховує кількість бонусів для повернення і якщо їхня кількість недостатня на балансі учасника, повертає помилку. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Return_Add_eWallet_Bonuses_Accept
Метод виконує підтвердження повернення транзакцій з нарахуванням бонусів за ID магнітної картки та списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • int MagneticCardID - ID магнітної картки • int CustomerType - тип замовника в POS системі (Не впливає на виконання запиту) • int CustomerID - ID замовника в POS системі (Не впливає на виконання запиту) • Transaction[] Transactions - масив транзакцій структур Transaction. Структура Transaction має такі поля: ◦ DateTime TransactionDate - дата проведення транзакції в POS системі ◦ int ServiceGroupCode - код групи послуг POS системи (Не впливає на виконання запиту) ◦ decimal Quantity - кількість послуг за транзакцією ◦ decimal Sum - сума транзакції o string[30] POSsystemAccount - Л/Рахунок у POS системі (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ string ServiceProviderName - Найменування постачальника послуг (Не впливає на виконання запиту) ◦ string ServiceProviderID - ID постачальника послуг у POS системі (Не впливає на виконання запиту) ◦ TransactionDetails Details - деталізація позицій рахунку (Опціонально). Структура TransactionDetails має такі поля: ▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля: • int ItemID - ID нарахування • int ServiceCode - Код послуги • string Name - Назва послуги • string ClassName - Назва класу послуги • string ClassCode - Код класу послуги • string SubClassName - Назва підкласу послуги • string SubClassCode - Код підкласу послуги • decimal Price - Ціна позиції • decimal Quantity - Кількість - Кількість • decimal Total - Підсумкова вартість • POSServiceProvider[] POSServiceProviders - Список сервіс провайдерів, які беруть участь в операції. (Не впливає на виконання запиту). Структура POSServiceProvider має такі поля: ◦ string POSSProviderID - ID постачальника послуг у POS системі ◦ string CompanyName - Назва компанії ◦ bool IsCompany - Компанія чи фізособа ◦ рядок AddressLegal - Юридична адреса ◦ рядок ITN - ІПН ◦ string TaxIDCode - ЄДРПОУ(У) ◦ string JobPosition - Посада для підпису (наприклад: Директор) ◦ string Employee - Прізвище та ініціали для підпису (наприклад Пупкін В.П.) ◦ string AffilateCode - Код філії, якщо є ◦ string Bank_MFO - МФО банку з реквізитів рахунку ◦ string Bank_Name - Назва банку з реквізитів рахунку ◦ string Bank_Account - Рахунок у банку з реквізитів рахунку ◦ string IBAN - IBAN з реквізитів рахунку, якщо є ◦ string NDSNumber - Номер свідоцтва платника ПДВ, якщо є
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal BonusBalance - баланс бонусів учасника програми лояльності, якому належить картка із запиту • decimal AddedBonuses - кількість нарахованих бонусів за транзакції Спочатку відбувається перевірка на бонусний тип програми, якщо ні - повертаємо
помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає, повертає помилку про відсутність такої картки. Якщо картка є, то система бере учасника за даними з картки, додає в бд транзакції повернення з типом транзакції нарахування бонусів і оновлює інформацію про учасника в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Pay_Transaction_eWallet_Bonuses_Request
Метод виконує запит інформації щодо можливості часткової оплати бонусами за ID магнітної картки та списком транзакцій. Метод підходить для POS і HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки. • string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • Transaction[] Transactions - масив транзакцій структур Transaction. Структура Transaction має такі поля: ◦ DateTime? TransactionDate - дата проведення транзакції в POS системі. (Не впливає на виконання запиту) ◦ int ServiceGroupCode - код групи послуг POS-системи. o decimal Sum - сума транзакції. ◦ string[30] POSsystemAccount - Л/Рахунок у POS системі. (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту)
Результат функції:
• string Error - опис помилки, що виникла. • int MagneticCardID - ID магнітної картки програми лояльності із запиту. • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту. • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту. • decimal BonusBalance - баланс бонусів учасника програми лояльності, якому належить картка із запиту. • PayTransaction[] PayTransactions - масив транзакцій для оплати бонусами PayTransaction. Структура PayTransaction має такі поля: o DateTime TransactionDate - дата проведення транзакції в POS-системі. o int ServiceGroupCode - код групи послуг POS-системи. o decimal Sum - сума транзакції. ◦ string[30] POSsystemAccount - Л/Рахунок у POS системі. (Порожнє поле) o decimal BonusesToPay - кількість бонусів, необхідних для оплати транзакції ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Даний код повинен бути унікальним в межах POS системи серед не віддалених точок. (Порожнє поле). o string ErrorTransaction - опис виниклої помилки для конкретної транзакції. (Порожнє поле)
Спочатку відбувається перевірка на бонусний тип програми, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає карту в базі даних, якщо такої немає або вона неактивна, повертає помилку. Якщо картка є і вона активна, то система розраховує кількість бонусів для транзакцій. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Pay_Transaction_eWallet_Bonuses_Accept
Метод виконує підтвердження транзакцій з частковою оплатою бонусами за ID магнітної картки та списком транзакцій. Метод підходить для POS і HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки. • string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • PayTransaction[] Transactions - масив транзакцій для оплати бонусами PayTransaction. Структура PayTransaction має такі поля: ◦ decimal Sum - сума транзакції. o DateTime TransactionDate - дата проведення транзакції в POS-системі. o int ServiceGroupCode - код групи послуг POS-системи. ◦ decimal BonusesToPay - кількість бонусів, необхідних для оплати транзакції. ◦ десяткова? Quantity - кількість o string[30] POSsystemAccount - Л/Рахунок у POS системі. (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ TransactionDetails Details - деталізація позицій рахунку. (Опціонально) Структура TransactionDetails має такі поля: • int BillID - ID рахунку в POS-системі • DateTime BillDate - Дата створення рахунку • int CurrencyCode - Міжнародний код валюти оплати • string ReceiptType - Тип чека • decimal ReceiptSum - Сума чека • string PaymentType - Назва типу оплати • PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля: ◦ int ItemID - ID нарахування
◦ int ServiceCode - Код послуги ◦ string Name - Назва послуги ◦ string ClassName - Назва класу послуги ◦ string ClassCode - Код класу послуги
◦ string SubClassName - Назва підкласу послуги
◦ string SubClassCode - Код підкласу послуги
◦ decimal Price - Ціна позиції
◦ decimal Quantity - Кількість - Кількість
◦ decimal Total - Підсумкова вартість
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal PayBonuses - загальна сума списаних бонусів • decimal BonusBalance - баланс бонусів учасника програми лояльності, якому належить картка із запиту
Спочатку відбувається перевірка на бонусний тип програми, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає, повертає помилку про відсутність такої картки. Якщо картка є, то система бере учасника за даними з картки, розраховує кількість бонусів для транзакцій, додає транзакції в базу даних і оновлює інформацію про учасника в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Return_Pay_Transaction_eWallet_Bonuses_Request
Метод виконує запит інформації щодо можливості повернення транзакції з частковою оплатою бонусами за ID магнітної картки та списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • int MagneticCardID - ID магнітної картки • int CustomerType - тип замовника в POS системі (Не впливає на виконання запиту) • int CustomerID - ID замовника в POS системі (Не впливає на виконання запиту) • Transaction[] Transactions - масив транзакцій структур Transaction. Структура Transaction має такі поля: o DateTime TransactionDate - дата проведення транзакції в POS системі o int ServiceGroupCode - код групи послуг POS системи o decimal Quantity - кількість послуг за транзакцією o decimal Sum - сума транзакції o string[30] POSsystemAccount - Л/Рахунок у POS системі (Не впливає на виконання запиту) o string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) o string ServiceProviderName - найменування постачальника послуг o string ServiceProviderID - ідентифікатор постачальника послуг TransactionDetails[] Details - деталізація позицій рахунку. Структура TransactionDetails має такі поля: ▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля: • int ItemID - ID нарахування • int ServiceCode - Код послуги • string Name - Назва послуги • string ClassName - Назва класу послуги • string ClassCode - Код класу послуги • string SubClassName - Назва підкласу послуги • string SubClassCode - Код підкласу послуги • decimal Price - Ціна позиції • decimal Quantity - Кількість - Кількість • decimal Total - Підсумкова вартість
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal BonusBalance - баланс бонусів учасника програми лояльності, якому належить картка із запиту • bool IsOTPNeed - ознака необхідності підтвердження операції паролем/пін-кодом (Завжди false) • PayTransaction[] PayTransactions - масив транзакцій для оплати бонусами PayTransaction. Структура PayTransaction має такі поля: o DateTime TransactionDate - дата проведення транзакції в POS системі o int ServiceGroupCode - код групи послуг POS системи (Порожнє поле) o decimal Sum - сума транзакції o decimal Quantity - кількість послуг за транзакцією o string[30] POSsystemAccount - Л/Рахунок у POS-системі (Порожнє поле) o decimal BonusesToPay - кількість бонусів, необхідних для оплати транзакції o string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Порожнє поле) o string ErrorTransaction - опис помилки, що виникла для конкретної транзакції (Порожнє поле) o string ServiceProviderName - найменування постачальника послуг o string ServiceProviderID - ідентифікатор постачальника послуг o TransactionDetails[] Details - деталізація позицій рахунку. Структура TransactionDetails має такі поля: ▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля: ◦ int ItemID - ID нарахування ◦ int ServiceCode - Код послуги ◦ string Name - Назва послуги ◦ string ClassName - Назва класу послуги ◦ string ClassCode - Код класу послуги ◦ string SubClassName - Назва підкласу послуги ◦ string SubClassCode - Код підкласу послуги ◦ decimal Price - Ціна позиції ◦ decimal Quantity - Кількість - Кількість ◦ decimal Total - Підсумкова вартість
Спочатку відбувається перевірка на бонусний тип програми, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає карту в базі даних, якщо такої немає або вона неактивна, повертає помилку. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Return_Pay_Transaction_eWallet_Bonuses_Accept
Метод виконує підтвердження повернення транзакцій з частковою оплатою бонусами за ID магнітної картки та списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • int MagneticCardID - ID магнітної картки • int CustomerType - тип замовника в POS системі (Не впливає на виконання запиту) • int CustomerID - ID замовника в POS системі (Не впливає на виконання запиту) • PayTransaction[] Transactions - масив транзакцій для оплати бонусами PayTransaction. Структура PayTransaction має такі поля:: ◦ DateTime TransactionDate - дата проведення транзакції в POS системі ◦ int ServiceGroupCode - код групи послуг POS системи ◦ decimal Quantity - кількість послуг за транзакцією ◦ decimal Sum - сума транзакції o string[30] POSsystemAccount - Л/Рахунок у POS системі (Не впливає на виконання запиту) ◦ decimal BonusesToPay - кількість бонусів, необхідних для оплати транзакції (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ рядок ErrorTransaction - f o string ServiceProviderName - найменування постачальника послуг ◦ string ServiceProviderName - ідентифікатор постачальника послуг ◦ TransactionDetails Details - деталізація позицій рахунку. (Опціонально). Структура TransactionDetails має такі поля: ▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля: • int ItemID - ID нарахування • int ServiceCode - Код послуги • string Name - Назва послуги • string ClassName - Назва класу послуги • string ClassCode - Код класу послуги • string SubClassName - Назва підкласу послуги • string SubClassCode - Код підкласу послуги • decimal Price - Ціна позиції • decimal Quantity - Кількість • decimal Total - Підсумкова вартість • POSServiceProvider[] POSServiceProviders - Список сервіс провайдерів, які беруть участь в операції. (Не впливає на виконання запиту). Структура POSServiceProvider має такі поля: o string POSSProviderID - ID постачальника послуг у POS системі o string CompanyName - Назва компанії o bool IsCompany - Компанія чи фізособа o рядок AddressLegal - Юридична адреса o рядок ITN - ІПН o string TaxIDCode - ЄДРПОУ(У) o string JobPosition - Посада для підпису (наприклад: Директор) o string Employee - Прізвище та ініціали для підпису (наприклад Пупкін В.П.) o string AffilateCode - Код філії, якщо є o string Bank_MFO - МФО банку з реквізитів рахунку o string Bank_Name - Назва банку з реквізитів рахунку o string Bank_Account - Рахунок у банку з реквізитів рахунку o string IBAN - IBAN з реквізитів рахунку, якщо є o string NDSNumber - Номер свідоцтва платника ПДВ, якщо є • string CodeOTP - пароль/пін-код підтвердження операції
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal BonusBalance - баланс бонусів учасника програми лояльності, якому належить картка із запиту • decimal PayBonuses - загальна кількість витрачених бонусів за транзакції
Спочатку відбувається перевірка на бонусний тип програми, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає, повертає помилку про відсутність такої картки. Якщо картка є, то система бере учасника за даними з картки, додає в бд транзакції повернення з типом оплати бонусами і оновлює інформацію про учасника в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Get_Certificates_Info
Метод за ID і номером сертифікатів повертає інформацію за знайденими сертифікатами. Метод підходить для HMS.
Вхідні параметри:
• string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • int? СertificateID - ID сертифіката • string[100] CertificateNumber - Номер сертифіката • string[20] CertificateCode - код оплати сертифіката (Не впливає на виконання запиту)
Результат функції:
• string Error - опис помилки, що виникла • Certificates[] - масив описів сертифікатів Certificate . Елементи масиву структури з такими полями: ◦ int CertificateID - ID сертифіката ◦ string CertificateNumber - Номер сертифіката ◦ string CertificateCode - код оплати сертифіката (Порожнє поле) ◦ string CertificateTypeName - тип сертифіката ◦ bool IsCertificateTypeActive - тип сертифіката активний? ◦ bool IsCertificateTypeDeleted - тип сертифіката видалено? ◦ DateTime? CertificateTypeActionStartDate - дата початку проведення акції типу сертифіката (Порожнє поле) ◦ DateTime? CertificateTypeActionEndDate - дата закінчення проведення акції типу сертифіката (Порожнє поле) ◦ decimal CertificateAmount - сума сертифіката o bool IsCertificateActive - статус сертифіката активний? ◦ string CertificateStatusName - назва статусу сертифіката ◦ DateTime? CertificateActivationDate - дата активації CertificateActivationDate ◦ DateTime? CertificateDeactivationDate - дата деактивації. ◦ int? AccountID - ідентифікатор власника o string[100] LoyaltyProgramName - назва програми лояльності гаманця (Порожнє поле) ◦ string UserName - ПІБ учасника з анкети електронного гаманця (якщо є гаманець і анкета учасника, інакше null).
Certificate_Transactions_Request
Метод виконує запит інформації щодо можливості оплати сертифікатом за ID сертифіката і списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • int CertificateID - ID сертифіката • CertificateTransaction[] CertificateTransactions - масив транзакцій структур Transaction. Структура Transaction має такі поля: ◦ DateTime TransactionDate - дата проведення транзакції в POS системі (Не впливає на виконання запиту) ◦ int ServiceGroupCode - код групи послуг POS системи (Не впливає на виконання запиту) ◦ decimal Sum - сума транзакції o string[30] POSsystemAccount - Л/Рахунок у POS системі (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ string ServiceProviderName - Найменування постачальника послуг (Не впливає на виконання запиту) ◦ int? PaymentID - ID нарахування. Необхідно для пошуку учасника програми лояльності. ◦ string TransactionError - опис виниклої помилки для конкретної транзакції (Не впливає на виконання запиту) ◦ DateTime PaymentConsumptionDate - дата споживання послуги (з нарахування) (Не впливає на виконання запиту)
Результат функції:
• int CertificateID - ID сертифіката • string CertificateStatusName - статус сертифіката • decimal CertificateAmount - ціна сертифіката • DateTime? CertificateDeactivationDate - дата деактивації. Найменша з цих двох: розрахована дата деактивації сертифіката і дата припинення дії типу сертифіката. (CertificateDeactivationDate буде null, якщо дата активації сертифіката == null) У цей день сертифікат ВЖЕ не діє. • int? AccountID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, який оплатив нарахування, якщо такий є. • CertificateTransaction[] CertificateTransactions - масив транзакцій для оплати сертифікатом CertificateTransaction. Структура CertificateTransaction має такі поля: ◦ DateTime TransactionDate - дата проведення транзакції в POS системі ◦ int ServiceGroupCode - код групи послуг POS системи ◦ decimal Sum - сума транзакції ◦ string[30] POSsystemAccount - Л/Рахунок у POS системі ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. ◦ string ServiceProviderName - Найменування постачальника послуг ◦ int? PaymentID - ID нарахування. Необхідно для пошуку учасника програми лояльності. ◦ string TransactionError - опис виниклої помилки для конкретної транзакції ◦ DateTime PaymentConsumptionDate - дата споживання послуги (з нарахування) • string Error - опис помилки, що виникла • bool IsOTPNeed - ознака необхідності підтвердження операції паролем/пін-кодом
Спочатку відбуваються перевірки на валідність сертифіката за CertificateID і суми транзакцій, якщо не проходимо якусь перевірку - повертаємо відповідну помилку. Далі намагаємося отримати дату оплати й учасника програми лояльності за PaymentID першої транзакції. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Certificate_Transactions_Accept
Метод виконує підтвердження оплати сертифіката за ID сертифіката і списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• string[32] POSCode - унікальний код POS-системи, за яким шукається зв'язка POSсистеми та користувача програми лояльності. • int CertificateID - ID сертифіката • int MagneticCardID - ідентифікатор карти • string CodeOTP - пароль/пін-код підтвердження операції • CertificateTransaction[] CertificateTransactions - масив транзакцій для оплати сертифікатом CertificateTransaction. Структура CertificateTransaction має такі поля: ◦ DateTime TransactionDate - дата проведення транзакції в POS системі o int ServiceGroupCode - код групи послуг POS системи (Не впливає на виконання запиту) ◦ decimal Sum - сума транзакції o int? PaymentID - ID нарахування. Необхідно для пошуку учасника програми лояльності. ◦ string[30] POSsystemAccount - Л/Рахунок у POS системі (Не впливає на виконання запиту) ◦ string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) ◦ DateTime PaymentConsumptionDate - дата споживання послуги (з нарахування) (Не впливає на виконання запиту) ◦ string ServiceProviderName - найменування постачальника послуг ◦ string TransactionError - опис виниклої помилки для конкретної транзакції • TransactionDetails Details - деталізація позицій рахунку. (Опціонально). Структура TransactionDetails має такі поля: ◦ int BillID - ID рахунку в POS-системі ◦ DateTime BillDate - Дата створення рахунку ◦ int CurrencyCode - Міжнародний код валюти оплати ◦ string ReceiptType - Тип чека ◦ decimal ReceiptSum - Сума чека ◦ string PaymentType - Назва типу оплати ◦ PositionInfo[] Items - Деталізація позицій чека. Структура PositionInfo має такі поля: ▪ int ItemID - ID нарахування ▪ int ServiceCode - Код послуги ▪ string Name - Назва послуги ▪ string ClassName - Назва класу послуги ▪ string ClassCode - Код класу послуги ▪ string SubClassName - Назва підкласу послуги ▪ string SubClassCode - Код підкласу послуги ▪ decimal Price - Ціна позиції ▪ decimal Quantity - Кількість - Кількість ▪ decimal Total - Підсумкова вартість
Результат функції: • string Error - опис помилки, що виникла • int CertificateID - ID сертифіката
• string CertificateStatusName - статус сертифіката • decimal CertificateStartBalance - вартість сетрифіката • decimal AllTransactionsSum - сума всіх проведених транзакцій • decimal CertificateFinishBalance - залишок сертифіката • int? AccountID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, який оплатив нарахування, якщо такий є.
Спочатку відбуваються перевірки на валідність сертифіката за CertificateID і суми транзакцій, якщо не проходимо якусь перевірку - повертаємо відповідну помилку. Далі намагаємося отримати дату оплати й учасника програми лояльності за PaymentID першої транзакції, якщо знайшли учасника - підвищуємо йому оборот грошей у бд. Додаємо транзакцію, змінюємо статус сертифіката на "Погашений" у бд. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Money_Input_Request
Метод виконує запит інформації щодо можливості покласти гроші на картку за ID магнітної картки. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal MoneyBalance - баланс лояльних грошей учасника програми лояльності, якому належить картка із запиту
Спочатку відбувається перевірка на використання лояльних грошей, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає або вона неактивна, повертає помилку. Якщо картка є і вона активна, то система бере учасника програми лояльності за карткою. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Money_Input
Метод виконує підтвердження поповнення лояльного балансу за ID магнітної картки та сумою поповнення. Метод підходить для HMS і для POS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності (для HMS) • int CardNumber - короткий або довгий номер магнітної картки програми лояльності (для POS) • decimal Summ - сума поповнення • DateTime? PaymentTime - час оплати (необов'язкове поле, якщо не вказувати, братиметься час готелю із запиту або час інсталяції)
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal MoneyBalance - баланс лояльних грошей учасника програми лояльності, якому належить картка із запиту • eWallet[] eWallets - результат аналогічний функції Get_eWallet_Info.
Спочатку відбувається перевірка на використання лояльних грошей, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає, повертає помилку про відсутність такої картки. Якщо карта є, то система бере учасника за даними з карти, додає транзакції в базу даних і оновлює інформацію про учасника в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Return_Money_Input_Request
Метод виконує запит інформації щодо можливості повернути покладені гроші на картку за ID магнітної картки. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності • decimal Sum - сума поповнення
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal MoneyBalance - баланс лояльних грошей учасника програми лояльності, якому належить картка із запиту
Спочатку відбувається перевірка на використання лояльних грошей, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає або вона неактивна, повертає помилку. Якщо картка є і вона активна, то система бере учасника програми лояльності за карткою, перевіряє, чи достатньо коштів на балансі учасника, якщо ні, повертає помилку. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Return_Money_Input_Accept
Метод виконує підтвердження повернення грошей з лояльного балансу за ID магнітної картки та сумою поповнення. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності • decimal Sum - сума поповнення
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal MoneyBalance - баланс лояльних грошей учасника програми лояльності, якому належить картка із запиту
Спочатку відбувається перевірка на використання лояльних грошей, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає, повертає помилку про відсутність такої картки. Якщо картка є, то система бере учасника програми лояльності за карткою, перевіряє, чи достатньо коштів на балансі учасника, якщо ні, повертає помилку, інакше додає транзакцію зняття з рахунку до бази даних і оновлює інформацію про учасника в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Pay_Transaction_eWallet_PayCard_Request
Метод виконує запит інформації щодо можливості оплати коштами з лояльного балансу за ID магнітної картки та списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності • Transactions [] - масив транзакцій структур Transaction. Структура Transaction має такі поля: ◦ decimal Sum - сума транзакції ◦ int ServiceGroupID - ID групи послуг транзакції ◦ decimal? Quantity - кількість ◦ datetime? TransactionDate - дата транзакції
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal MoneyBalance - баланс лояльних грошей учасника програми лояльності, якому належить картка із запиту • EC_ResponseTransaction[] Transactions - масив транзакцій для отримання знижки структур EC_ResponseTransaction. Структура EC_ResponseTransaction має такі поля: ◦ decimal Sum - сума транзакції ◦ int ServiceGroupID - ID групи послуг транзакції ◦ DateTime TransactionDate - час проведення транзакції ◦ decimal? Quantity - кількість
Спочатку відбувається перевірка на використання лояльних грошей, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає або вона неактивна, повертає помилку. Якщо картка є і вона активна, то система бере учасника програми лояльності та розраховує, чи вистачить лояльних грошей в учасника для транзакцій, якщо ні - повертаємо помилку. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Pay_Transaction_eWallet_PayCard_Accept
Метод виконує підтвердження оплати коштами з лояльного балансу за ID магнітної картки та списком транзакцій. Метод підходить для POS і HMS.
Вхідні параметри:
• string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту) • string[20] CardCode - короткий або повний код картки лояльності. • int BillID - ідентифікатор чека. • decimal? PaySum - сума до оплати лояльними грошима. • int? MagneticCardID - ID магнітної картки програми лояльності. • PayTransaction[] Transactions - масив транзакцій для оплати лояльними грошима PayTransaction. Структура PayTransaction має такі поля: o DateTime TransactionDate - дата проведення транзакції в POS системі o int ServiceGroupCode - код групи послуг POS системи o decimal Quantity - кількість послуг за транзакцією o decimal Sum - сума транзакції o string[30] POSsystemAccount - Л/Рахунок у POS системі (Не впливає на виконання запиту) o string[30] PointOfSalePOScode - код точки продажу в POS системі. Цей код має бути унікальним у межах POS системи серед не віддалених точок. (Не впливає на виконання запиту) o TransactionDetails Details - деталізація позицій рахунку. (Опціонально). Структура TransactionDetails має такі поля: ▪ int BillID - ID рахунку в POS-системі ▪ DateTime BillDate - Дата створення рахунку ▪ int CurrencyCode - Міжнародний код валюти оплати ▪ string ReceiptType - Тип чека ▪ decimal ReceiptSum - Сума чека ▪ string PaymentType - Назва типу оплати ▪ PositionInfo[] Items - Деталізація позицій чекаю Структура PositionInfo має такі поля: • int ItemID - ID нарахування • int ServiceCode - Код послуги • string Name - Назва послуги • string ClassName - Назва класу послуги • string ClassCode - Код класу послуги • string SubClassName - Назва підкласу послуги • string SubClassCode - Код підкласу послуги • decimal Price - Ціна позиції • decimal Quantity - Кількість - Кількість • decimal Total - Підсумкова вартість
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту
Спочатку відбувається перевірка на використання лояльних грошей, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає карту в базі даних, якщо такої немає або вона неактивна, повертає помилку. Якщо картка є і вона активна, то система бере учасника програми лояльності та розраховує, чи вистачить лояльних грошей в учасника для транзакцій, якщо ні - повертаємо помилку, інакше додає транзакції в базу даних і оновлює інформацію про учасника в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Return_Pay_Money_Request
Метод виконує запит інформації щодо можливості повернення транзакцій оплачених коштами з лояльного балансу за ID магнітної картки та списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності • Transactions [] - масив транзакцій структур Transaction. Структура Transaction має такі поля: ◦ decimal Sum - сума транзакції ◦ DateTime TransactionDate - час проведення транзакції
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • decimal MoneyBalance - баланс лояльних грошей учасника програми лояльності, якому належить картка із запиту • EC_ResponseTransaction[] Transactions - масив транзакцій для отримання знижки структур EC_ResponseTransaction. Структура EC_ResponseTransaction має такі поля: ◦ decimal Sum - сума транзакції ◦ DateTime TransactionDate - час проведення транзакції
Спочатку відбувається перевірка на використання лояльних грошей, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає карту в базі даних, якщо такої немає або вона неактивна, повертає помилку. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Return_Pay_Money_Accept
Метод виконує підтвердження повернення транзакцій оплати коштами з лояльного балансу за ID магнітної картки та списком транзакцій. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності • Transactions [] - масив транзакцій структур Transaction. Структура Transaction має такі поля: ◦ decimal Sum - сума транзакції ◦ DateTime TransactionDate - час проведення транзакції
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту
Спочатку відбувається перевірка на використання лояльних грошей, якщо ні - повертаємо помилку. Далі за MagneticCardID система шукає картку в базі даних, якщо такої немає або вона неактивна, повертає помилку. Якщо картка є і вона активна, то система бере учасника програми лояльності, додає в бд транзакцію повернення з типом зняття з рахунку і оновлює інформацію про учасника в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.
Departure_Transaction_Accept
Метод виконує підтвердження транзакції виселення і додає накопичені номероночі учаснику за потреби. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності. • decimal Duration - тривалість проживання гостя. • DateTime TransactionDate - дата проведення транзакції.
Результат функції:
• string Error - опис помилки, що виникла
Спочатку перевіряємо картку на валідність, потім додаємо транзакцію, потім за потреби додаємо накопичені номероночі учаснику програми лояльності.
Add_RoomNights_Accept
Метод виконує нарахування номероночей на баланс користувача за його карткою. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності. • int RoomNights - кількість номероночей.
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • int RoomNightBalance - баланс номероночей учасника програми лояльності
Спочатку беремо картку за айді та перевіряємо її валідність, потім додаємо номероночі учаснику, якому належить карта.
WriteOff_RoomNights_Accept
Метод виконує списання номероночей з балансу користувача за його карткою. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності. • int MaxRoomNights - максимальна кількість номероночей для оплати. • int GuestID - ідентифікатор гостя
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • int RoomNightBalance - баланс номероночей учасника програми лояльності • int RoomNightsApplied - кількість застосованих номероночей
Спочатку беремо картку за ID і перевіряємо її валідність, потім перевіряємо баланс учасника, якому належить картка, і якщо вистачає - списуємо номероночі.
Return_WriteOff_RoomNights_Accept
Метод виконує повернення списання номероночей з балансу користувача за його карткою. Метод підходить для HMS.
Вхідні параметри:
• int MagneticCardID - ID магнітної картки програми лояльності. • int RoomNights - кількість номероночей.
Результат функції:
• string Error - опис помилки, що виникла • int MagneticCardID - ID магнітної картки програми лояльності із запиту • int eWalletID - ID учасника програми лояльності, якому належить картка із запиту • string UserName - ім'я (ПІБ контакту або назва компанії) учасника програми лояльності, якому належить картка із запиту • int RoomNightBalance - баланс номероночей учасника програми лояльності Спочатку беремо картку за айді та перевіряємо її валідність, потім нараховуємо номероночі
учаснику, якому належить карта.
Get_eWallet_Secure_Info
Метод за номером телефону або електронною поштою, а також паролем, шукає учасників, інформацію про них і налаштування програми лояльності в базі даних.
Вхідні параметри:
• string PhoneNumber - номер телефону • string Mail - електронна пошта • string[50] Password - пароль учасника лояльності Результат функції: • string Error - опис помилки, що виникла • eWallet[] eWallets - масив описів електронних гаманців eWallet. Елементи масиву структури з такими полями: o int eWalletID - ID електронного гаманця o string[100] LoyaltyProgramName - назва програми лояльності (string.Empty) o string[50] BonusStatusName - назва статусу програми лояльності o decimal BonusBalance - поточний бонусний баланс електронного гаманця o decimal AccumulatedBonuses - поточна кількість накопичених бонусів електронного гаманця o string[50] DiscountStatusName - назва статусу програми лояльності o string[20] DiscountPriceListCode - код прейскуранта поточного дисконтного статусу, потрібен для синхронізації знижки за прейскурантом, якщо гаманець o decimal DiscountTransactionsSum - сума всіх неанульованих транзакцій з урахуванням знижки, проведених для даного гаманця o string[20] ServioSynkCode - код синхронізації програми лояльності o int? CompanyAccount - ідентифікатор компанії HMS Servio. o string[30] MagneticCardShortNumber - короткий номер магнітної картки o string[30] MagneticCardFullNumber - довгий номер магнітної картки o decimal BonusSum - сума бонусів o decimal PaySum - сума на платіжній картці o decimal Credit - сума кредиту o decimal Accumulation - сума оборотів по карті o bool IsPayCard - прапор, що визначає налаштування лояльності «Робота з грошовими коштами» o decimal ExtraMoneySum - сума екстра-грошей o bool IsSmartCard - ознака смарт карти (false) o string ShortCode - короткий номер магнітної картки o decimal DayLimit - ліміт списання за день o decimal WeekLimit - ліміт списання за тиждень o decimal MonthLimit - ліміт списання за місяць o decimal YearLimit - ліміт списання за рік o bool UsePayLimits - ознака використання лімітів списання (false) o bool UseCatLimits - ознака використання лімітів категорій (false) o datetime ValidityStart - дата початку дії картки/сертифіката o datetime Validity - дата закінчення дії картки/сертифіката o bool Issue - ознака Issued (false) o int Cardid - ІД картки o string Comment - коментар (string.Empty) o string Description - Примітка (string.Empty) o decimal Discount - розмір знижки за карткою (0) o string SynkLoyaltyCode - код лояльності з налаштувань програми лояльності o int RoomNightBalance - кількість безкоштовних номероночей учасника o int MagneticCardID - ідентифікатор картки o string UserName - ім'я власника o string MobilePhone - номер телефону o int DiscountGroupID - ідентифікатор дисконтної групи o bool IsBonusProgram - приналежність до бонусної системи o bool IsDiscountProgram - приналежність до дисконтної системи o bool IsActive - ознака активності o Files[] Files - структура інформації про пов'язані файли ▪ string ID - ідентифікатор файлу ▪ string Name - назва файлу ▪ DateTime DocumentDate - дата додавання документа (може змінюватися вручну)
Get_File
Метод повертає інформацію про файл за його ідентифікатором. Вхідні параметри:
• string FileID - ідентифікатор файл
Результат функції:
• string Error - опис помилки, що виникла • string Name - назва файлу • string Data - вміст файлу в Base64
Get_eWallet_Guests
Метод витягує всі бронювання (сутності Guest) за учасником лояльності (який визначається за ідентифікатором гаманця.) Якщо учасник лояльності:
• анкета (Client) - видає всіх гостей, де вказана ця анкета. • компанія - видає всіх гостей, закріплених за цією компанією.
Вхідні параметри:
• string eWalletID - ідентифікатор гаманця;
Результат функції:
• string Error - опис виниклої помилки; • eWalletGuests[] Guests - масив бронювань. Опис елементів: ◦ int GuestID - ідентифікатор гостя; ◦ string GuestName - ім'я гостя; ◦ int Status - ідентифікатор статусу; ◦ string StatusName - назва статусу; ◦ DateTime FirstDate - дата, з якої починається бронювання; ◦ DateTime LastDate - дата, з якої закінчується бронювання; ◦ string RoomNumber - номер кімнати; ◦ string RoomType - тип кімнати; ◦ string PriceName - назва прайс-листа;
Get_eWallet_Bills
Метод витягує всі рахунки (закриті або відкриті), які безпосередньо або побічно стосуються цього учасника лояльності. Якщо учасник лояльності:
- анкета (Client) - витягує рахунки: ◦ гостей, де закріплена ця анкета і гість є платником; ◦ особистих рахунків (PersonalAccount), де закріплена ця анкета і ЛС є платником; ◦ компаній, які закріплені за цією анкетою через таблицю інвесторів, і компанія є платником; - компанія - витягує всі рахунки компанії, де вона є платником.
Вхідні параметри:
• string eWalletID - ідентифікатор гаманця;
Результат функції:
• string Error - опис помилки, що виникла; • eWalletBill[] Bills - масив рахунків. Опис елементів: ◦ int BillID - ІД рахунку ◦ string Comment - коментар з приводу рахунку ◦ int ServiceProviderID - ІД провайдера сервісу ◦ decimal BillPaymentSum - Сума за всіма платежами ◦ decimal BillReceiptSum - Сума за всіма чеками ◦ decimal BillBalance - Баланс рахунку ◦ int BillCurrencyISO - Валюта чека в ISO форматі. 980 - гривня ◦ int BillStatus - ІД статусу ◦ string BillStatusName - ім'я статусу ◦ DateTime BillCreationDate - дата створення рахунку ◦ int HotelID - ІД готелю
Change_LoyaltyAccount_Password
Метод змінює пароль учасника лояльності, а також номер телефону та електронну пошту (за наявності).
Вхідні параметри:
- int eWalletID - ідентифікатор учасника - string OldPassword - старий пароль (для підтвердження) - string NewPassword - новий пароль - string NewPhoneNumber - номер телефону для заміни - string NewMail - електронна пошта для заміни
Результат функції:
- string Error - опис помилки
GetLastBonusTransactionsInfo
Метод витягує всі транзакції за учасником лояльності (який визначається за ідентифікатором гаманця) або за карткою лояльності.
Вхідні параметри:
• int eWalletID - ідентифікатор гаманця; • string CardNumber - номер картки лояльності • int CountRecords - кількість записів, які потрібно вивести • int CountSkipRecords - кількість записів, які потрібно пропустити від початку
Результат функції:
• string Error - опис помилки, що виникла; • TransactionInfo[] Transactions - масив транзакцій. Опис елементів: ◦ decimal Bonuses - кількість нарахованих бонусів; ◦ decimal Sum - сума транзакції; ◦ string TransactionDate - дата проведення транзакції;