API без PII — короткий чек

DeepLoyalty API без ПІІ — короткий чек

Загальна схема

Загальна схема — Співставлення транзакцій

Авторизація

Усі запити до API використовують Bearer Token для авторизації.

Як згенерувати Bearer Token

Для генерації токена використовуйте JWT Authorization.

Приклад:

{
  "Authorization": "Bearer {{authToken}}"
}

Зверніть увагу: токен має термін дії.


Надіслати чек (Ритейлер)

Метод: PUT

URL: /v1/receiptNI/short

Опис об’єкта

ПараметрТипОбов’язковийОпис
retailer_iduuidТакID ритейлера
order_idstringТакID чека
date_timedatetimeТакДата/час покупки. Формат yyyy-mm-dd HH:MM:SS — місцевий час України
rrnstringТакReference Retrieval Number
pan_maskstringТакМаскований номер картки
added_bonusesnumberТакНараховані бонуси на основі даних чеку в гривнях
sum_before_discountednumberТакСума до знижки
sum_after_discountednumberТакСума після знижки
paid_by_bonusnumberТакСплачені бонуси в гривнях
fiscal_idstringТакID фіскального чека
fiscal_urlstringТакПосилання на відсканований фіскальний чек. Як створити посилання — How to create fiscal url. Якщо в полі немає значення, надішліть два пробіли: " "
terminal_idstringТакID терміналу
terminal_auth_codestringТакКод терміналу
card_idstringНіID картки лояльності — мінімум 2 символи, якщо поле передано
store_idstringТакID магазину
cashier_idstringТакID касира

Body:

{
  "retailer_id": "d516012c-a832-11ec-b909-0242ac120002",
  "order_id": "0224be24-a833-11ec-b909-0242ac120002",
  "date_time": "2022-03-20 18:20:03",
  "rrn": "232353634574657",
  "pan_mask": "446892..67",
  "added_bonuses": 5.34,
  "sum_before_discounted": 863.56,
  "sum_after_discounted": 853.56,
  "paid_by_bonus": 10.90,
  "terminal_id": "AF12312",
  "terminal_auth_code": "123",
  "fiscal_id": "333335",
  "fiscal_url": "https://cabinet.tax.gov.ua/cashregs/check?id=3000895246&fn=236070&date=2022-11-25",
  "card_id": "0123456789",
  "store_id": "127",
  "cashier_id": "099"
}

Успішна відповідь

HTTP-код: 201

Помилка відповіді

HTTP-код: 400

Тіло відповіді:

{
  "status": 400,
  "code": 1001,
  "message": "Save to queue error"
}

Коди помилок

ПараметрТипОпис
1000numberПомилка валідації
1001numberПомилка збереження в чергу

Webhook з чеком (Банк)

Цей об’єкт надсилається банку платформою DeepLoyalty після повної обробки чеку.

Метод: PUT

Ендпоінт: /api/receipt/deepLoyalty/short-order

Заголовки:

X-Token — токен автентифікації

Опис основного об’єкта

ПараметрТипОбов’язковийОпис
retailer_iduuidТакID ритейлера
order_idstringТакID чека
date_timedatetimeТакДата/час покупки. Формат yyyy-mm-dd HH:MM:SS — місцевий час України
rrnstringТакReference Retrieval Number
pan_maskstringТакМаскований номер картки
added_bonusesnumberТакНараховані бонуси на основі даних чеку в гривнях
sum_before_discountednumberТакСума до знижки
sum_after_discountednumberТакСума після знижки
paid_by_bonusnumberТакСплачені бонуси в гривнях
fiscal_idstringТакID фіскального чека
fiscal_urlstringТакПосилання на відсканований фіскальний чек. Як створити посилання — How to create fiscal url. Якщо в полі немає значення, надішліть два пробіли: " "
terminal_idstringТакID терміналу
terminal_auth_codestringТакКод терміналу
card_idstringНіID картки лояльності — мінімум 2 символи, якщо поле передано
store_idstringТакID магазину
cashier_idstringТакID касира
is_reviewbooleanТакПоказувати користувачу опитування про роботу менеджера чи ні
cardIssuingbooleanНіЧи підключений ритейлер до карток лояльності чи ні
trace_iduuidТакУнікальний ідентифікатор для співставлення транзакцій між ритейлером і банком

Body:

{
  "bank_id": "d516012c-a832-11ec-b909-0242ac120002",
  "retailer_id": "c4a12b27-21db-4c55-9b1e-00b914f3ffd8",
  "order_id": "0224be24-a833-11ec-b909-0242ac120002",
  "date_time": "2022-03-20 18:20:03",
  "rrn": "232353634574657",
  "pan_mask": "446892..67",
  "added_bonuses": 5.34,
  "sum_before_discounted": 863.56,
  "sum_after_discounted": 853.56,
  "fiscal_id": "243842857245235",
  "fiscal_url": "https://...",
  or an array with two links for refills:
  "fiscal_url": ["https://cabinet.tax.gov.ua/cashregs/check?id=1138464&fn=3000514999&date=2024-06-12&time=07:21&sm=81.00",
  "https://cabinet.tax.gov.ua/cashregs/check?id=1138465&fn=3000514999&date=2024-06-12&time=07:21&sm=1249.72"],
  "paid_by_bonus": 10,
  "terminal_id": "AF12312",
  "terminal_auth_code": "qwe123",
  "card_id": "10093423334",
  "store_id": "1001",
  "is_review": true,
  "cardIssuing": false,
  "trace_id": "0224be24-a833-11ec-b909-0242ac120002"
}

Успішна відповідь

HTTP-код: 200

Тіло відповіді:

{
  "request_id": "64faf2b8-7840-4ff4-898b-3870c7c41762"
}

Оновити чек (Банк)

Банк знаходить і співставляє транзакцію за 4 параметрами:

  • sum_after_discounted
  • terminal_auth_code
  • terminal_id
  • date_time

Метод: PATCH

URL: /receiptNI/short

HEADERS:

Authorization Bearer {{authToken}}

Content-Type application/json

Опис об’єкта

ПараметрТипОбов’язковийОпис
request_idstringТакID чека, повернутий банком під час збереження чека
bank_iduuidТакID банку
transaction_idstringТакID транзакції банку (якщо транзакцію знайдено); якщо транзакцію не знайдено, це поле не обов’язкове
statusuuidТакСтатус транзакції
customer_idstringТакID клієнта (якщо транзакцію знайдено); якщо транзакцію не знайдено, це поле не обов’язкове
trace_iduuidТакУнікальний ідентифікатор для співставлення транзакцій між ритейлером і банком

Значення статусів

СтатусОпис
d0bd04ba-62d0-4161-a31d-d82be5349591Знайдено
20cb9c82-074e-4ace-bc41-9a9bedc736cdНе знайдено
5130bf10-9560-4997-a672-ee8cf8a51c2eБанк витратив час на пошук

Body:

{
  "request_id": "64faf2b8-7840-4ff4-898b-3870c7c41762",
  "bank_id": "d516012c-a832-11ec-b909-0242ac120002",
  "transaction_id": "39d1ab13-10e4-4549-9885-1c6250641aab",
  "trace_id": "43f1ab67-10t6-6543-1234-1c545433aab"
  "status":
  "customer_id":
}

Успішна відповідь

HTTP-код: 201

Помилка відповіді

HTTP-код: 400

Тіло відповіді:

{
  "status": 400,
  "code": 1001,
  "message": "Save to queue error"
}

Коди помилок

ПараметрТипОпис
1000numberПомилка валідації
1001numberПомилка збереження в чергу