Оплата рахунку і закриття замовлення

Повідомлення

payBill
{
    "rID" : "2021-03-13 00:32:04.942046#UP57RxE",
    "operation" : "payBill",
    "billId" : "5B100B39-CE42-4F3D-8770-807A28CA0500",
    "sum" : 129.20,
    "tips" : 19.24,
    "fiscalData":[
        {"key":"ЕКВАЙЕР", "value":"Universal Bank"},
        {"key":"...", "value":"..."}
    ]
}
❗️ Обов'язкові елементи запиту: rID, operation, billId, sum. 
  fiscalData- Блок інформації щодо транзакції для друку на фіскальному чеку.

Відповідь

Відповідь обробки операції необхідно надіслати в наступному вигляді:

Payload example:/callback/payBill
JSON
{
  "billId": "string"
  "guests": [
    {
      "dishes": [
        {
          "category": "Кухня",
          "categoryId": "18afdzgu53a",
          "checkNumber": "string",
          "count": 1.3,
          "dishId": "string",
          "linkedTo": "string",
          "name": "Шаурма царська",
          "orderNumber": 12365,
          "positionId": "string",
          "sum": 34.56,
          "taxCategory": "налоги",
          "taxCategoryId": "18afdzgu534",
          "type": "modifier"
        }
      ],
      "name": "Гость 1"
    }
  ],
  "orderNumber": 235,
  "rID": "2021-04-01 09:39:06.021078#BpOI0gO",
  "stackTraceMessage": "string",
  "state": "SUCCESS",
  "substate": "string",
  "waiter": "Петро",
  "waiterId": "f14da21a-5be9-4736-9ece-420bd310bc8a"
}
Error response samples

HTTP status codes: 400 | 500

{
  "errCode": {},
  "errText": "string",
  "errTitle": "string",
  "errType": "FULLSCREEN",
  "fieldErrors": [
    {
      "field": "string",
      "message": "string"
    }
  ]
}

Результатом закриття замовлення у POS-системі можуть бути 2 статуси - FAIL та SUCCESS. Для статусу FAIL існують суб-статуси, які дозволяють правильно комунікувати проблему співробітникам закладу.

Важливим є реалізація усіх підстатусів, тому як Expirenza має знати у якому суб-статусі знаходиться замовлення, а ресторан має знати що саме пішло не так.

Якщо наведені вище сценарії не покривають всіх потреб вашої інтеграції, будь ласка, зверніться до аккаунт-менеджера ресторану з детальним описом потреби вашої інтеграції.

Ми розглянемо можливість додавання додаткового суб-статусу в Expirenza API.

Підстатуси FAIL

WRONG_REQUEST_SUM

Description:

Сума, що прийшла у запиті для оплати, більша або менша від суми замовлення в POS-системі.

Така ситуація може виникнути, якщо замовлення було відредаговано у проміжку між отриманням оплати від гостя та закриттям замовлення у POS-системі.

Обробка substate:

  1. Система спише оплату з гостя та покаже повідомлення “Оплата успішна”;.

  2. Система надішле персоналу повідомлення в бот з рекомендацією повернути замовлення у початковий стан (скасувати зміни), щоб розблокувати закриття замовлення, або повернути оплату гостю та попросити оплатити заново.

  3. Система повторюватиме спроби закрити замовлення з певним інтервалом.


CASHIERS_SHIFT_CLOSED

Description:

Неможливо закрити замовлення через те, що в POS-системі закрита касова зміна.

Обробка substate:

  1. Система спише оплату з гостя та покаже повідомлення “Оплата успішна”.

  2. Система відправить персоналу повідомлення у бот з рекомендацією відкрити касову зміну, щоб розблокувати закриття замовлення у POS-системі.

  3. Система повторюватиме спроби закрити замовлення з певним інтервалом.


PRINTER_ERROR

Description:

Неможливо закрити замовлення через проблему з фіскальним принтером.

Обробка substate:

  1. Система спише оплату з гостя та покаже повідомлення "Оплата успішна".

  2. Система надішле персоналу повідомлення у бот з рекомендацією виправити проблему з фіскальним принтером, щоб розблокувати закриття замовлення у POS-системі.

  3. Система повторюватиме спроби закрити замовлення з певним інтервалом.

CLOSE_ORDER_BLOCKED

Description:

Закриття замовлення заблоковано відкладеною подачею страв.

Наприклад: У замовленні є нероздрукований “бігунок” на кухню або бар.

Обробка substate:

  1. Система спише оплату з гостя та покаже повідомлення “Оплата успішна”.

  2. Система надішле персоналу повідомлення в бот з рекомендацією видалити бігунки або передати на кухню нероздруковані “бігунки”, щоб розблокувати закриття замовлення у POS-системі.

  3. Система повторюватиме спроби закрити замовлення з певним інтервалом.


BILL_IN_USE

Description:

Замовлення заблоковане іншим модулем POS-системи.

Наприклад:На даний час замовлення відкрито на касовій станції та редагується офіціантом.

Обробка substate:

  1. Система спише оплату з гостя та покаже повідомлення "Оплата успішна".

  2. Система відправить персоналу повідомлення у бот з рекомендацією вийти з режиму редагування замовелння на робочій станції, щоб розблокувати закриття замовлення у POS-системі.

  3. Система повторюватиме спроби закрити замовлення з певним інтервалом.


OTHER_ERROR

Description:

Інші помилки під час закриття замовлення.

Обробка суб-статусу:

  1. Система спише оплату з гостя та покаже повідомлення “Оплата успішна”.

  2. Система надішле персоналу повідомлення у бот з рекомендацією звернутися до служби підтримки постачальника POS-системи для закриття замовлення.

  3. Система не робитиме повторних спроб закрити таке замовлення, а здійснить виплату ресторану за даними замовелння отриманими перед оплатою.

Last updated