CASHDESK API:Создание онлайн заказа: различия между версиями
Перейти к навигации
Перейти к поиску
Mediawiki (обсуждение | вклад) |
Merkulov (обсуждение | вклад) |
||
(не показаны 24 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
== CASHDESK | == CASHDESK API== | ||
'''API''' (Application Programming Interface или интерфейс программирования приложений) — это совокупность инструментов и функций в виде интерфейса для создания новых приложений, благодаря которому одна программа будет взаимодействовать с другой. | '''API''' (Application Programming Interface или интерфейс программирования приложений) — это совокупность инструментов и функций в виде интерфейса для создания новых приложений, благодаря которому одна программа будет взаимодействовать с другой. | ||
Строка 5: | Строка 5: | ||
Для работы с API сервиса БИФИТ Касса, пользователю необходимо получить токен доступа. Генерация токена происходит по правилам авторизации OAuth2. С инструкцией авторизации по API можно ознакомиться <b>[https://kassa.bifit.com/wiki/index.php?title=ИНСТРУКЦИИ:Авторизация_при_интеграции_по_API здесь]</b>. | Для работы с API сервиса БИФИТ Касса, пользователю необходимо получить токен доступа. Генерация токена происходит по правилам авторизации OAuth2. С инструкцией авторизации по API можно ознакомиться <b>[https://kassa.bifit.com/wiki/index.php?title=ИНСТРУКЦИИ:Авторизация_при_интеграции_по_API здесь]</b>. | ||
= Создание заказа | = Создание заказа = | ||
Подготовьте POST запрос следующего вида: | Подготовьте POST запрос следующего вида: | ||
Строка 15: | Строка 15: | ||
В '''BODY''' запроса передайте | В '''BODY''' запроса передайте заказ в JSON согласно структуре описанной в [https://kassa.bifit.com/cashdesk-api/v1/swagger-ui.html#/online_orders/createOnlineOrderUsingPOST SWAGGER]. | ||
''Пример JSON:'' | ''Пример JSON:'' | ||
Строка 21: | Строка 21: | ||
{ | { | ||
"onlineOrder": { | "onlineOrder": { | ||
"visible": true, //Признак видимости заказа | "visible": true, ''//Признак видимости заказа'' | ||
"created": 1644828163053, // | "created": 1644828163053, ''//Время создания в формате UNIX TIME'' | ||
"changed": 1644828163053, // | "changed": 1644828163053, ''//Время создания в формате UNIX TIME'' | ||
"organizationId": "<''organization_id''>", | "organizationId": "<''organization_id''>", ''//ID организации'' | ||
"tradeObjectId": "<''trade_object_id''>", | "tradeObjectId": "<''trade_object_id''>", ''//ID торгового объекта'' | ||
"taxSystem": "COMMON", //Система налогообложения '''COMMON''' - ОСН (см. | "taxSystem": "COMMON", ''//Система налогообложения '''COMMON''' - ОСН (см. [[#Систем налогообложения|Таблица систем налогообложения]])'' | ||
"externalId": "BFt-002", | "externalId": "BFt-002", ''//Номер заказа в информационной системе интегратора'' | ||
"deliveryType": "COURIER", | "deliveryType": "COURIER", ''//Тип доставки '''COURIER''' - Курьером (либо '''SELF''' - Самовывоз)'' | ||
"deliveryAmount": null, | "deliveryAmount": null, ''//'' | ||
"deliveryTime": null, | "deliveryTime": null, ''//Время доставки в формате UNIX TIME'' | ||
"paid": false, | "paid": false, ''//Признак оплаты заказа'' | ||
"orderTime": 1644828134297, | "orderTime": 1644828134297, | ||
"clientId": 124329, | "clientId": 124329, ''//ID клиента'' | ||
"address": "Адрес", | "address": "Адрес", ''//Адрес доставки'' | ||
"responsiblePersonLogin": " | "responsiblePersonLogin": "7xxxxxxxxxx", ''//Логин (номер телефона) ответственного сотрудника. После создания заказа логин будет равен логину создателя заказа'' | ||
"discount": 0.00, | "discount": 0.00, ''//Величина скидки на заказ ('''не используется''')'' | ||
"discountType": 0, | "discountType": 0, ''//Тип скидки на заказ ('''не используется''')'' | ||
"location": null, | "location": null, ''//GPS координаты курьера'' | ||
"totalAmount": 14500.00, | "totalAmount": 14500.00, ''//Итоговая стоимость заказа'' | ||
"comment": null, | "comment": null, ''//Комментарий к заказу'' | ||
"currentStatusType": "NEW", | "currentStatusType": "NEW", ''//Текущий статус заказа NEW - новый, только что созданный заказ (см. [[#Статусы заказов|Таблица статусов заказов]])'' | ||
"currentStatusTime": 1644828159791, | "currentStatusTime": 1644828159791, ''//Время изменения статуса заказа в формате UNIX TIME'' | ||
"substatusId": null, | "substatusId": null, ''//ID пользовательского статуса'' | ||
"shopId": null, | "shopId": null, ''//ID интернет витрины'' | ||
"endLockTime": null, | "endLockTime": null, | ||
"routeSheetDocumentId": null, | "routeSheetDocumentId": null, ''//ID Маршрутного листа'' | ||
"routeSheetDocumentPosition": null, | "routeSheetDocumentPosition": null, ''//Номер позиции заказа в маршрутном листе'' | ||
"routeSheetDocumentNumber": null, | "routeSheetDocumentNumber": null, | ||
"size": null, | "size": null, | ||
"actualDeliveryTime": null, | "actualDeliveryTime": null, | ||
"cashierName": null, | "cashierName": null, ''//Имя кассира'' | ||
"clientName": null | "clientName": null ''//Имя клиента'' | ||
}, | }, | ||
"onlineOrderItems": [ | "onlineOrderItems": [ | ||
{ | { | ||
"nomenclatureId": 22090265, ''//ID номенклатурной позиции из справочника номенклатур'' | |||
"description": "Букет белых роз", ''//Наименование товарной позиции'' | |||
"nomenclatureId": 22090265, | "price": 3000, ''//Цена товарной позиции'' | ||
"description": "Букет белых роз", | "vatValue": 20, ''//Величина ставки НДС (см. [[#Ставки НДС|Таблица ставок НДС]])'' | ||
"price": 3000, | "quantity": 1, ''//Кол-во'' | ||
"vatValue": 20, | "discount": 0, ''//% скидки'' | ||
"quantity": 1, | "calculationMethod": null, ''//Признак способа расчёта (см. [[#Признаки способа расчётов|Таблица признаков способа расчётов (тэг 1214)]])'' | ||
"discount": 0, | "paymentSubject": "PRODUCT", ''//Признак предмета расчёта (см. [[#Признаки предмета расчётов|Таблица признаков предмета расчётов (тэг 1212)]])'' | ||
"calculationMethod": null, | "contractorAddress": null, ''//Адрес поставщика (при реализации агентских товаров и услуг)'' | ||
"paymentSubject": "PRODUCT", | "contractorInn": null, ''//ИНН поставщика (при реализации агентских товаров и услуг)'' | ||
"contractorAddress": null, | "contractorName": null, ''//Наименование организации поставщика (при реализации агентских товаров и услуг)'' | ||
"contractorInn": null, | "contractorPhone": null, ''//Телефон поставщика (при реализации агентских товаров и услуг)'' | ||
"contractorName": null, | "organizationPhone": null, ''//Телефон'' | ||
"contractorPhone": null, | "contractorActivityType": null, ''//'' | ||
"organizationPhone": null, | "markType": "UNKNOWN", ''//Тип маркировки (см. [[#Типы маркировок|Таблица Типов маркировок]])'' | ||
"contractorActivityType": null, | "codeForOfd": null, ''//Код маркировки (КМ)'' | ||
"markType": "UNKNOWN", | "barcode": null, ''//Штрих код позиции (EAN-8, EAN-13)'' | ||
"codeForOfd": null, | "vendorCode": null, ''//Артикул производителя'' | ||
"barcode": null, | "unitCode": 796, ''//Код единицы измерения по ОКЕИ'' | ||
"vendorCode": null, | "editable": true, ''//Признак редактируемости позиции в приложении'' | ||
"unitCode": 796, | "total": null | ||
"editable": true, | |||
"total": null | |||
}, | }, | ||
{ | { | ||
"nomenclatureId": 22090204, | "nomenclatureId": 22090204, | ||
"description": "Букет роз, 40 шт", | "description": "Букет роз, 40 шт", | ||
Строка 106: | Строка 102: | ||
}, | }, | ||
{ | { | ||
"nomenclatureId": 22090243, | "nomenclatureId": 22090243, | ||
"description": "Букет розовых и белых роз, 15 штук", | "description": "Букет розовых и белых роз, 15 штук", | ||
Строка 130: | Строка 124: | ||
"total": null | "total": null | ||
} | } | ||
], | ], | ||
"properties": { ''//Свойства'' | |||
"fullSettlement": true, ''//Курьеру разрешено принимать полную оплату'' | |||
"prepayment": false, ''//Курьеру запрещено принимать предоплату'' | |||
"credit": false ''//Курьеру запрещено передавать заказ в кредит'' | |||
"properties": { | |||
"fullSettlement": true, | |||
"prepayment": false, | |||
"credit": false | |||
}, | }, | ||
"client": { | "client": { | ||
"organizationId": " | "organizationId": "<''organization_id''>", ''//ID организации'' | ||
"address": "Адрес", | "address": "Адрес", ''//Адрес доставки'' | ||
"phone": "79999999999", | "phone": "79999999999", ''//Номер телефона клиента'' | ||
"lastName": " | "lastName": "Иванов", ''//Фамилия клиента'' | ||
"firstName": " | "firstName": "Иван", ''//Имя клиента клиента'' | ||
"patronymic": " | "patronymic": "Иванович", ''//Отчество клиента клиента'' | ||
" | "email": "", ''//Электронная почта клиента, сюда будет отправлен чек'' | ||
"comment": null, ''//Комментарий'' | |||
"comment": null, | |||
}, | }, | ||
"organizationId": null, | "organizationId": null, | ||
Строка 180: | Строка 144: | ||
} | } | ||
=== Систем налогообложения === | === Систем налогообложения === | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ Таблица систем налогообложения | ||
|- | |- | ||
! | ! Значение нумератора !! Описание | ||
|- | |- | ||
| '''COMMON''' || (ОСН - Общая система налогообложения) | | '''COMMON''' || (ОСН - Общая система налогообложения) | ||
Строка 190: | Строка 154: | ||
| '''SIMPLIFIED''' || (УСН 6% с дохода) | | '''SIMPLIFIED''' || (УСН 6% с дохода) | ||
|- | |- | ||
| '''SIMPLIFIED_WITH_EXPENSE''' || | | '''SIMPLIFIED_WITH_EXPENSE''' || (УСН 15% доход - расход) | ||
|- | |- | ||
| | |'''ENVD''' || ('''ЕНВД не используется с 01.01.2020''') | ||
|- | |||
| '''COMMON_AGRICULTURAL''' || (ЕСН или ЕСХН) | |||
|- | |||
| '''PATENT''' || (ПАТЕНТНАЯ система налогообложения) | |||
|} | |||
=== Статусы заказов === | |||
{| class="wikitable" | |||
|+ Таблица статусов заказов | |||
|- | |||
! Значение нумератора !! Описание | |||
|- | |||
| '''NEW''' || НОВЫЙ | |||
|- | |||
| '''ACCEPTED''' || ПОДТВЕРЖДЕН | |||
|- | |||
| '''DISTRIBUTED''' || РАСПРЕДЕЛЕН | |||
|- | |||
|'''ISSUED''' || ВЫДАННЫЙ | |||
|- | |||
| '''REFUSED''' || ОТКАЗ | |||
|- | |||
| '''DELETED''' || УДАЛЕН | |||
|- | |||
| '''FINISHED''' || ЗАВЕРШЕН | |||
|} | |||
=== Ставки НДС === | |||
{| class="wikitable" | |||
|+ Таблица ставок НДС | |||
|- | |||
! Значение нумератора !! Описание | |||
|- | |||
| '''null''' || БЕЗ НДС | |||
|- | |||
| '''0''' || НДС 0% | |||
|- | |||
| '''10''' || НДС 10% | |||
|- | |||
|'''20''' || НДС 20% | |||
|- | |||
| '''110''' || НДС 10/110% | |||
|- | |||
| '''120''' || НДС 20/120% | |||
|} | |||
=== Признаки способа расчётов === | |||
{| class="wikitable" | |||
|+ Таблица признаков способа расчётов (тэг 1214) | |||
|- | |||
! Значение нумератора !! Описание | |||
|- | |||
| '''null''' || ПОЛНАЯ ОПЛАТА | |||
|- | |||
| '''FULL_PAY''' || ПОЛНАЯ ОПЛАТА | |||
|- | |||
| '''PREPAY_FULL''' || 100% ПРЕДОПЛАТА | |||
|- | |||
|'''PREPAY''' || ЧАСТИЧНАЯ ПРЕДОПЛАТА | |||
|} | |||
=== Признаки предмета расчётов === | |||
{| class="wikitable" | |||
|+ Таблица признаков предмета расчётов (тэг 1212) | |||
|- | |||
! Значение нумератора !! Описание | |||
|- | |||
| '''PRODUCT''' || ТОВАР | |||
|- | |||
| '''SERVICE''' || УСЛУГА | |||
|- | |||
| '''EXCISABLE_PRODUCT ''' || ПОДАКЦИЗНЫЙ ТОВАР | |||
|- | |||
|'''JOB''' || РАБОТА | |||
|- | |||
|'''GAMBLING_RATE''' || ИГРОВАЯ СТАВКА | |||
|} | |||
=== Типы маркировок === | |||
{| class="wikitable" | |||
|+ Таблица типов маркировок | |||
|- | |- | ||
! Значение нумератора !! Описание | |||
|- | |- | ||
| | | '''UNKNOWN ''' || БЕЗ МАРКИРОВКИ | ||
|- | |- | ||
| | | '''OTHER''' || МАРКИРОВКА (обувь, шины, духи, лег.пром, молоко) | ||
|} | |} | ||
{{ Note |'''''Примечание'''''<br> | {{ Note |'''''Примечание'''''<br> |
Текущая версия на 17:16, 23 марта 2022
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, //Штрих код позиции (EAN-8, EAN-13) "vendorCode": null, //Артикул производителя "unitCode": 796, //Код единицы измерения по ОКЕИ "editable": true, //Признак редактируемости позиции в приложении "total": null }, { "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 }, { "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 } ], "properties": { //Свойства "fullSettlement": true, //Курьеру разрешено принимать полную оплату "prepayment": false, //Курьеру запрещено принимать предоплату "credit": false //Курьеру запрещено передавать заказ в кредит }, "client": { "organizationId": "<organization_id>", //ID организации "address": "Адрес", //Адрес доставки "phone": "79999999999", //Номер телефона клиента "lastName": "Иванов", //Фамилия клиента "firstName": "Иван", //Имя клиента клиента "patronymic": "Иванович", //Отчество клиента клиента "email": "", //Электронная почта клиента, сюда будет отправлен чек "comment": null, //Комментарий }, "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.