Облачная Касса: Интеграция с Фискальным Процессингом: различия между версиями
Mediawiki (обсуждение | вклад) |
Mediawiki (обсуждение | вклад) |
||
Строка 403: | Строка 403: | ||
|}}<br> | |}}<br> | ||
{{ProductTable-2 | |||
|title-left= Request Body | |||
|title-right=JSON структура | |||
|content-left= | |||
* '''type''': тип фискального документа, см. раздел "Нумераторы" ('''ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ''') | |||
* '''taxSystem''': система налогообложения, см. раздел "Нумераторы" ('''ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ''') | |||
* '''cashier''': информация о кассире | |||
** '''name''': ФИО кассира, допускается вместе с ФИО указать должность кассира ('''ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ''') | |||
** '''inn''': ИНН кассира ('''не обязательный реквизит''') | |||
* '''client''': информация о клиенте | |||
** '''address''': электронный адрес или номер телефона ('''не обязательный реквизит''') | |||
* '''items''': массив, содержащий номенклатурные позиции | |||
** '''calculationMethod''': признак способа расчёта, см. раздел "Нумераторы" ('''ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ''') | |||
** '''paymentSubject''': признак предмета расчёта, см. раздел "Нумераторы" ('''ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ''') | |||
** '''name''': наименование товарной позиции ('''ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ''') | |||
** '''price''': цена товарной позиции с учетом примененной скидки/надбавки ('''ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ''') | |||
** '''quantity''': количество товарных позиций ('''ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ''') | |||
** '''vat''': НДС товарной позиции, по умолчанию передаётся значение "БЕЗ НДС" ('''не обязательный реквизит''') | |||
** '''total''': сумма товарной позиции с учетом примененных скидок/надбавок | |||
* '''total''': итоговая сумма чека. Содержит итоговую сумму всех товарных позиций в чеке ('''ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ''') | |||
* '''payments''': типы оплаты. В чеке должен быть указан хотя бы один тип оплаты ('''ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ''') | |||
** '''CASH''': сумма по типу оплаты наличными ('''не обязательный реквизит''') | |||
|content-right= | |||
<syntaxhighlight lang="JSON"> | |||
{ | |||
"type": "SALE", | |||
"taxSystem": "COMMON", | |||
"cashier": { | |||
"name": "Иванов И.И." | |||
}, | |||
"client": { | |||
"address": "7ХХХХХХХХХХ" | |||
}, | |||
"items": [ | |||
{ | |||
"calculationMethod": "FULL_PAY", | |||
"paymentSubject": "SERVICE", | |||
"name": "Услуга", | |||
"price": 100, | |||
"quantity": 1, | |||
"vat": "VAT_20", | |||
"total": 100 | |||
} | |||
], | |||
"total": 100, | |||
"payments": { | |||
"CASH": 100 | |||
} | |||
} | |||
</syntaxhighlight> | |||
|}}<br> | |||
В ответ вы получите идентификатор документа '''на процессинге (id)''' | В ответ вы получите идентификатор документа '''на процессинге (id)''' |
Версия 11:58, 15 апреля 2022
Введение
Данное руководство описывает процедуру интеграции ИС (Информационной Системы) заказчика с Фискальным Процессингом (далее ФП) БИФИТ Онлайн. Описаны следующие процедуры:
- Авторизация в ФП - процесс необходимый для подключения клиента к фискальному процессингу,
- Формирование контент чека - формирование информации для дальнейшей отправки на фискализацию,
- Отправка чека в ФП - передача контента чека в фискальный процессинг для дальнейшей фискализации,
- Получение документа по ID - получение документа с фискальными признаками по его номеру.
Нумераторы
ReceiptType - тип фискального документа (тэг 1054) | |
|
|
TaxSystem - cистема налогообложения (тэг 1055). Если при регистрации устройства в ФНС было выбрано более одного режима налогообложения, то в TaxSystem необходимо указать, к какой системе налогообложения относится данный чек. | |
|
|
CalculationMethod - признак способа расчета (тэг 1214). | |
|
|
vat - ставка НДС (тэг 1199). | |
|
|
PaymentType - тип оплаты. | |
|
|
PaymentSubject - признак предмета расчета (тэг 1212). | |
|
|
PaymentAddress - место расчётов (тэг 1187). | |
По умолчанию то, которое задано при регистрации. В этом поле можно указать адрес сайта, на котором сделан чек или место установки вендингового оборудования |
address - телефон или электронный адрес покупателя (тэг 1008). | |
Телефон передаётся в формате "7ХХХХХХХХХХ" |
items - массив товарных позиций (тэг 1059). | |
|
|
Авторизация при помощи токена коннектора
Токен коннектора - строка, содержащая символы и/или буквы и/или цифры. Это ссылка на одну или несколько облачных ККТ в сервисе БИФИТ Онлайн. Токен коннектора генерируется пользователем или партнером в ЛК БИФИТ Бизнес после оплаты аренды облачной ККТ. Таким образом, после авторизации по токену коннектора, все запросы обрабатываются на строго определенной/ых ККТ.
- Все ссылки будут указаны для тестового контура ФП! https://fp-test.bifit.com/processing-api/.../
- Для отладки интеграции в тестовом контуре, используйте токен коннектора: P5cKbUUD9uSSrSlGdzspLblvBnD0GzTAE0cLmAPSEMxJ79DtLE
- Адрес "боевого" контура ФП https://fp.bifit.com/processing-api/.../
Запрос | POST |
URL: https://fp-test.bifit.com/processing-api/oauth/token | https://fp-test.bifit.com/processing-api/oauth/token |
Request Body | type: x-www-form-urlencoded |
|
token: "P5cKbUUD9uSSrSlGdzspLblvBnD0GzTAE0cLmAPSEMxJ79DtLE"
client_id: "processing-connector-token"
client_secret: "processing-connector-token"
grant_type: "token"
|
Response | |
|
{
"access_token": "eyJhbGciOiJSUzI1NiI...YQqpk7w",
"token_type": "bearer",
"refresh_token": "eyJhbGciOiJSUzI1Ni.._782S_MQ",
"expires_in": 3599,
"scope": "read write",
"connector_id": 1,
"jti": "2f22e02e-4e72-4b68-991b-6aec065d996c"
}
|
Авторизация при помощи refresh_token
- По истечении времени жизни access_token (по умолчанию 1 час), Вы можете использовать механизм восстановления access_token по значению refresh_token, полученному при помощи авторизации по токену коннектора. Однако, для восстановления access_token, так же можно использовать повторную процедуру авторизации по токену коннектора.
- Все ссылки будут указаны для тестового контура ФП! https://fp-test.bifit.com/processing-api/.../
- Адрес "боевого" контура ФП https://fp.bifit.com/processing-api/.../
Авторизация OAuth2 | POST |
URL: https://fp-test.bifit.com/processing-api/oauth/token | https://fp-test.bifit.com/processing-api/oauth/token |
Request Body | type: x-www-form-urlencoded |
|
refresh_token: "eyJhbGciOiJSUzI1Ni.._782S_MQ"
client_id: "processing-connector-token"
client_secret: "processing-connector-token"
grant_type: "refresh_token"
|
Response | |
|
{
"access_token": "ero3UNcffhlKdn5e76i...edfr_JU",
"token_type": "bearer",
"refresh_token": "tjlsoduopUIy76sdsf.._78tyfbv",
"expires_in": 3599,
"scope": "read write",
"connector_id": 1,
"jti": "2f22e02e-4e72-4b68-991b-6aec065d996c"
}
|
Формирование контента чека
JSON структура | |
|
{
"type": "SALE",
"taxSystem": "COMMON",
"cashier": {
"name": "Иванов И.И."
},
"client": {
"address": "7ХХХХХХХХХХ"
},
"items": [
{
"calculationMethod": "FULL_PAY",
"paymentSubject": "SERVICE",
"name": "Услуга",
"price": 100,
"quantity": 1,
"vat": "VAT_20",
"total": 100
}
],
"total": 100,
"payments": {
"CASH": 100
}
}
|
- Полное описание всех полей присутствует в swagger`е по ссылке https://fp-test.bifit.com/processing-api/swagger-ui.html#
Отправка чека в фискальный процессинг
Запрос регистрации чека | POST |
https://fp-test.bifit.com/processing-api/protected/documents/registration/receipts | https://fp-test.bifit.com/processing-api/protected/documents/registration/receipts |
Request Headers | |
|
"authorization": "Bearer ero3UNcffhlKdn5e76i...edfr_JU"
"idempotency-key": "sdftfc-KF784mkd-skdhkaasca_lf34hKxsf"
|
Request Body | JSON структура |
|
{
"type": "SALE",
"taxSystem": "COMMON",
"cashier": {
"name": "Иванов И.И."
},
"client": {
"address": "7ХХХХХХХХХХ"
},
"items": [
{
"calculationMethod": "FULL_PAY",
"paymentSubject": "SERVICE",
"name": "Услуга",
"price": 100,
"quantity": 1,
"vat": "VAT_20",
"total": 100
}
],
"total": 100,
"payments": {
"CASH": 100
}
}
|
В ответ вы получите идентификатор документа на процессинге (id)
Примечание
Полученные данные имеют ознакомительный характер, актуальные запросы можно посмотреть по адресу:
- https://fp.bifit.com/processing-api/swagger-ui.html#/ основной контур
- https://fp-test.bifit.com/processing-api/swagger-ui.html#/ тестовый контур
Получение документа по ID
- Для получения чека по id необходимо выполнить GET-запрос по адресу https://fp-test.bifit.com/processing-api/protected/documents/{id} , где необходимо заменить {id} на полученный на предыдущем шаге идентификатор документа (id).
Ответ описан в swagger`е по ссылке https://fp-test.bifit.com/processing-api/swagger-ui.html#/
Пример:
curl -X GET \ https://fp-test.bifit.com/processing-api/protected/documents/{id}\ -H 'Authorization: Bearer access_token'
Оффлайн возможности фискального процессинга
Функционал фискального процессинга позволяет осуществлять формирование ссылки на чек даже в оффлайн режиме, путем генерации QR-кода с ссылкой на страницу отслеживания состояния чека.
Ссылка:
https://fp-test.bifit.com/processing-api/receipts/ + idempotency_key, сгенерированный при отправке чека.