CASHDESK API:Создание онлайн заказа
Версия от 13:58, 14 февраля 2022; Mediawiki (обсуждение | вклад)
CASHDESK API
API (Application Programming Interface или интерфейс программирования приложений) — это совокупность инструментов и функций в виде интерфейса для создания новых приложений, благодаря которому одна программа будет взаимодействовать с другой.
Для работы с API сервиса БИФИТ Касса, пользователю необходимо получить токен доступа. Генерация токена происходит по правилам авторизации OAuth2. С инструкцией авторизации по API можно ознакомиться здесь.
Создание заказа в статусе НОВЫЙ
Подготовьте POST запрос следующего вида:
base URL: https://kassa.bifit.com/cashdesk-api/v1/protected/online_orders
В HEADERS укажите значение access_token согласно:
authorization: Bearer <значение acces_token>
В BODY запроса передайте заказа в JSON согласно структуре описанной в SWAGGER.
Пример JSON:
{
   "onlineOrder": {
       "visible": true,                                 //Признак видимости заказа
       "created": 1644828163053,                        //Время создания в формате UNIX TIME
       "changed": 1644828163053,                        //Время создания в формате UNIX TIME
       "organizationId": "<organization_id>",           //ID организации
       "tradeObjectId": "<trade_object_id>",            //ID торгового объекта
       "taxSystem": "COMMON",                           //Система налогообложения COMMON - ОСН (см. Таблица систем налогообложения)
       "externalId": "BFt-002",                         //Номер заказа в информационной системе интегратора
       "deliveryType": "COURIER",                       //Тип доставки COURIER - Курьером (либо SELF - Самовывоз)
       "deliveryAmount": null,                          //
       "deliveryTime": null,                            //Время доставки в формате UNIX TIME
       "paid": false,                                   //Признак оплаты заказа
       "orderTime": 1644828134297,
       "clientId": 124329,                              //ID клиента
       "address": "Адрес",                              //Адрес доставки
       "responsiblePersonLogin": "7xxxxxxxxxx",         //Логин (номер телефона) ответственного сотрудника. После создания заказа логин будет равен логину создателя заказа
       "discount": 0.00,                                //Величина скидки на заказ (не используется)
       "discountType": 0,                               //Тип скидки на заказ (не используется)
       "location": null,                                //GPS координаты курьера
       "totalAmount": 14500.00,                         //Итоговая стоимость заказа
       "comment": null,                                 //Комментарий к заказу
       "currentStatusType": "NEW",                      //Текущий статус заказа NEW - новый, только что созданный заказ (см. Таблица статусов заказов)
       "currentStatusTime": 1644828159791,              //Время изменения статуса заказа в формате UNIX TIME
       "substatusId": null,                             //ID пользовательского статуса
       "shopId": null,                                  //ID интернет витрины
       "endLockTime": null,
       "routeSheetDocumentId": null,                    //ID Маршрутного листа
       "routeSheetDocumentPosition": null,              //Номер позиции заказа в маршрутном листе
       "routeSheetDocumentNumber": null,
       "size": null,
       "actualDeliveryTime": null,
       "cashierName": null,                             //Имя кассира
       "clientName": null                               //Имя клиента
   },
   "onlineOrderItems": [
       {
           "nomenclatureId": 22090265,                  //ID номенклатурной позиции из справочника номенклатур
           "description": "Букет белых роз",            //Наименование товарной позиции
           "price": 3000,                               //Цена товарной позиции
           "vatValue": 20,                              //Величина ставки НДС (см. Таблица ставок НДС)
           "quantity": 1,                               //Кол-во
           "discount": 0,                               //% скидки
           "calculationMethod": null,                   //Признак способа расчёта (см. Таблица признаков способа расчётов (тэг 1214))
           "paymentSubject": "PRODUCT",                 //Признак предмета расчёта (см. Таблица признаков предмета расчётов (тэг 1212))
           "contractorAddress": null,                   //Адрес поставщика (при реализации агентских товаров и услуг) 
           "contractorInn": null,                       //ИНН поставщика (при реализации агентских товаров и услуг) 
           "contractorName": null,                      //Наименование организации поставщика (при реализации агентских товаров и услуг) 
           "contractorPhone": null,                     //Телефон поставщика (при реализации агентских товаров и услуг) 
           "organizationPhone": null,                   //Телефон 
           "contractorActivityType": null,              // 
           "markType": "UNKNOWN",                       //Тип маркировки (см. Таблица Типов маркировок) 
           "codeForOfd": null,
           "barcode": null,
           "vendorCode": null,
           "unitCode": 796,
           "editable": true,
           "total": null
       },
       {
           "id": 1822620,
           "onlineOrderId": 313626,
           "nomenclatureId": 22090204,
           "description": "Букет роз, 40 шт",
           "price": 7000,
           "vatValue": 20,
           "quantity": 1,
           "discount": 0,
           "calculationMethod": null,
           "paymentSubject": "PRODUCT",
           "contractorAddress": null,
           "contractorInn": null,
           "contractorName": null,
           "contractorPhone": null,
           "organizationPhone": null,
           "contractorActivityType": null,
           "markType": "UNKNOWN",
           "codeForOfd": null,
           "barcode": null,
           "vendorCode": null,
           "unitCode": 796,
           "editable": true,
           "total": null
       },
       {
           "id": 1822621,
           "onlineOrderId": 313626,
           "nomenclatureId": 22090243,
           "description": "Букет розовых и белых роз, 15 штук",
           "price": 4500,
           "vatValue": 20,
           "quantity": 1,
           "discount": 0,
           "calculationMethod": null,
           "paymentSubject": "PRODUCT",
           "contractorAddress": null,
           "contractorInn": null,
           "contractorName": null,
           "contractorPhone": null,
           "organizationPhone": null,
           "contractorActivityType": null,
           "markType": "UNKNOWN",
           "codeForOfd": null,
           "barcode": null,
           "vendorCode": null,
           "unitCode": 796,
           "editable": true,
           "total": null
       }
   ],
   "onlineOrderStatuses": [
       {
           "id": 1514412,
           "onlineOrderId": 313626,
           "statusType": "NEW",
           "substatusId": null,
           "statusDate": 1644828159791,
           "statusInfo": null,
           "userLogin": "79916871260"
       }
   ],
   "onlineOrderPayments": [],
   "properties": {
       "fullSettlement": true,
       "prepayment": false,
       "credit": false
   },
   "onlineOrderReceipts": [],
   "onlineOrderReceiptsItems": [],
   "onlineOrderReceiptsHistories": [],
   "responsiblePerson": {
       "lastName": "Иванов",
       "firstName": "Иван",
       "patronymic": "Иванович",
       "phoneNumber": "79916871260",
       "organizationId": "1579776541385873338810",
       "position": null,
       "userRole": "Администратор",
       "rolePerms": 4641661977478446448639
   },
   "client": {
       "organizationId": "1579776541385873338810",
       "address": "Адрес",
       "phone": "79999999999",
       "lastName": "Тестов",
       "firstName": "Тест",
       "patronymic": "Тестович",
       "organizationInn": "7743012365",
       "organizationName": "Сбер покупатель",
       "email": "",
       "comment": null,
       "status": "ACTIVE",
       "loyalty": "111111",
       "id": 124329
   },
   "organizationId": null,
   "cashierInfos": null
}
Систем налогообложения
| Значение нумератора | Описание | 
|---|---|
| COMMON | (ОСН - Общая система налогообложения) | 
| SIMPLIFIED | (УСН 6% с дохода) | 
| SIMPLIFIED_WITH_EXPENSE | (УСН 15% доход - расход) | 
| ENVD | (ЕНВД не используется с 01.01.2020) | 
| COMMON_AGRICULTURAL | (ЕСН или ЕСХН) | 
| PATENT | (ПАТЕНТНАЯ система налогообложения) | 
Статусы заказов
| Значение нумератора | Описание | 
|---|---|
| NEW | НОВЫЙ | 
| ACCEPTED | ПОДТВЕРЖДЕН | 
| DISTRIBUTED | РАСПРЕДЕЛЕН | 
| ISSUED | ВЫДАННЫЙ | 
| REFUSED | ОТКАЗ | 
| DELETED | УДАЛЕН | 
| FINISHED | ЗАВЕРШЕН | 
Ставки НДС
| Значение нумератора | Описание | 
|---|---|
| null | БЕЗ НДС | 
| 0 | НДС 0% | 
| 10 | НДС 10% | 
| 20 | НДС 20% | 
| 110 | НДС 10/110% | 
| 120 | НДС 20/120% | 
Признаки способа расчётов
| Значение нумератора | Описание | 
|---|---|
| null | ПОЛНАЯ ОПЛАТА | 
| FULL_PAY | ПОЛНАЯ ОПЛАТА | 
| PREPAY_FULL | 100% ПРЕДОПЛАТА | 
| PREPAY | ЧАСТИЧНАЯ ПРЕДОПЛАТА | 
Признаки предмета расчётов
| Значение нумератора | Описание | 
|---|---|
| PRODUCT | ТОВАР | 
| SERVICE | УСЛУГА | 
| EXCISABLE_PRODUCT | ПОДАКЦИЗНЫЙ ТОВАР | 
| JOB | РАБОТА | 
| GAMBLING_RATE | ИГРОВАЯ СТАВКА | 
Типы маркировок
| Значение нумератора | Описание | 
|---|---|
| UNKNOWN | БЕЗ МАРКИРОВКИ | 
| OTHER | МАРКИРОВКА (обувь, шины, духи, лег.пром, молоко) | 
- При создании заказа, есть несколько видов доставки. Ознакомьтесь с типами доставки:
- "COURIER" - в случае, если используется курьерская доставка
- "SELF" - самовывоз, в этом случае адрес доставки не требуется, место расчетов в чеке берется из ККТ/ТО
- "SERVICE" - не используется
 
- Каждому созданному заказу присваивается определенный статус. Ознакомьтесь со статусами заказов:
- "ACCEPTED" - статус “Подтвержден”, заказы в данном статусе доступны для отображения всем сотрудникам на МКТ. Используем при создании заказа.
- "DISTRIBUTED" - статус “Распределен”, заказы в данном статусе доступны для отображения на МКТ только тем сотрудникам, на которых эти заказы назначены.
- "REFUSED" - статус “Отменен”, заказ с таким статусом невозможно создать, можно добавить статус с помощью PUT запроса, либо перевести заказ в данный статус из клиентского ПО, отменить заказ можно только в статусах "DISTRIBUTED","ACCEPTED". Статус REFUSED необходимо использовать при отмене заказа в статусах DISTRIBUTED и ACCEPTED.
- "DELETED" - статус “Удален”, заказ с таким статусом невозможно создать, можно добавить статус с помощью PUT запроса, заказ, в статусе “Удален” не будет доступен для работы, удалить можно только заказ в статусе "currentStatusType": "NEW". Статус DELETED необходимо использовать при отмене заказа только в статусе NEW.
 
