Облачная Касса: Интеграция с Фискальным Процессингом: различия между версиями

Материал из Касса
Перейти к навигации Перейти к поиску
Строка 199: Строка 199:
* Адрес "боевого" контура ФП '''https://fp.bifit.com/processing-api/.../''' |800}}
* Адрес "боевого" контура ФП '''https://fp.bifit.com/processing-api/.../''' |800}}


 
'''POST''' запрос. Авторизация OAuth2.
<syntaxhighlight lang="JSON">
<syntaxhighlight lang="JSON">
https://fp-test.bifit.com/processing-api/oauth/token
https://fp-test.bifit.com/processing-api/oauth/token

Версия 12:45, 14 апреля 2022

Введение

Схема работы с ФП

Данное руководство описывает процедуру интеграции ИС (Информационной Системы) заказчика с Фискальным Процессингом (далее ФП) БИФИТ Онлайн. Описаны следующие процедуры:

  • Авторизация в ФП - процесс необходимый для подключения клиента к фискальному процессингу,
  • Формирование контент чека - формирование информации для дальнейшей отправки на фискализацию,
  • Отправка чека в ФП - передача контента чека в фискальный процессинг для дальнейшей фискализации,
  • Получение документа по ID - получение документа с фискальными признаками по его номеру.


Нумераторы

ReceiptType - тип фискального документа (тэг 1054)
 
  • SALE
  • SALE_RETURN
  • PURCHASE
  • PURCHASE_RETURN
 
  • Приход
  • Возврат прихода
  • Расход
  • Возврат расхода


TaxSystem - cистема налогообложения (тэг 1055). Если при регистрации устройства в ФНС было выбрано более одного режима налогообложения, то в TaxSystem необходимо указать, к какой системе налогообложения относится данный чек.
 
  • COMMON
  • SIMPLIFIED
  • SIMPLIFIED_WITH_EXPENSE
  • COMMON_AGRICULTURAL
  • PATENT
 
  • ОСН
  • УСН доход
  • УСН доход - расход
  • ЕСХН
  • ПАТЕНТ


CalculationMethod - признак способа расчета (тэг 1214).
 
  • PREPAY_FULL
  • PREPAY_PARTIAL
  • AVANS
  • FULL_PAY
  • PARTIAL_SETTLEMENT_AND_CREDIT
  • TRANSFER_ON_CREDIT
  • CREDIT_PAYMENT
 
  • Полная предварительная оплата до момента передачи предмета расчёта
  • Частичная предварительная оплата до момента передачи предмета расчёта
  • Аванс
  • Полная оплата, в том числе с учётом аванса (предварительной оплаты) в момент передачи предмета расчёта
  • Частичная оплата предмета расчёта в момент его передачи с последующей оплатой в кредит
  • Передача предмета расчёта без его оплаты в момент его передачи с последующей оплатой в кредит
  • Оплата предмета расчёта после его передачи с оплатой в кредит (оплата кредита)


vat - ставка НДС (тэг 1199).
 
  • WITHOUT_VAT
  • VAT_0
  • VAT_10
  • VAT_20
  • VAT_110
  • VAT_120
 
  • Без НДС
  • НДС 0%
  • НДС 10%
  • НДС 20%
  • НДС 10/110
  • НДС 20/120


PaymentType - тип оплаты.
 
  • CASH
  • CARD
  • PREPAY
  • POSTPAY
  • OTHER
 
  • (тэг 1031) Сумма оплаты наличными
  • (тэг 1081) Сумма оплата безналичными
  • (тэг 1215) Сумма оплаты предоплатой (зачётом аванса)
  • (тэг 1216) Сумма оплаты постоплатой (в кредит)
  • (тэг 1217) Сумма оплаты встречным предоставлением


PaymentSubject - признак предмета расчета (тэг 1212).
 
  • PRODUCT
  • EXCISABLE_PRODUCT
  • JOB
  • SERVICE
  • GAMBLING_RATE
  • GAMBLING_WIN
  • LOTTERY_TICKET
  • LOTTERY_WIN
  • PROVISION_RID
  • PAYMENT
  • AGENCY
  • COMPOUND_SUBJECT
  • OTHER_SUBJECT
  • PROPERTY_LAW
  • NON_OPERATING_INCOME
  • INSURANCE_CONTRIBUTIONS
  • TRADE_FEE
  • RESORT_FEE
  • PLEDGE
 
  • Товар
  • Подакцизный товар
  • Работа
  • Услуга
  • Ставка азартной игры
  • Выигрыш азартной игры
  • Лотерейный билет
  • Выигрыш лотереи
  • Предоставление РИД
  • Платеж
  • Агентское вознаграждение
  • Составной предмет расчета
  • Иной предмет расчета
  • Имущественное право
  • Внереализованный доход
  • Страховые взносы
  • Торговый сбор
  • Курортный сбор
  • Залог


PaymentAddress - место расчётов (тэг 1187).
По умолчанию то, которое задано при регистрации. В этом поле можно указать адрес сайта, на котором сделан чек или место установки вендингового оборудования


address - телефон или электронный адрес покупателя (тэг 1008).
Телефон передаётся в формате "7ХХХХХХХХХХ"


items - массив товарных позиций (тэг 1059).
 
  • CALCULATIONMETHOD
  • PAYMENTSUBJECT
  • NAME
  • PRICE
  • QUANTITY
  • VAT
  • TOTAL
 
  • (тэг 1244) Признак способа расчета
  • (тэг 1212) Признак предмета расчета
  • (тэг 1030) Наименование товарной позиции. Не может быть пустым
  • (тэг 1079) Цена, цена указывается в рублях 100.00
  • (тэг 1023) Количество. Количество указывается дробных числах, если вам надо указать 937 грамм, а цена у вас за один килограмм - 0.937
  • (тэг 1199) Ставка НДС
  • (тэг 1043) Сумма товарной позиции


Авторизация

Note.svg  Примечание

POST запрос. Авторизация OAuth2.

https://fp-test.bifit.com/processing-api/oauth/token

в теле (x-www-form-urlencoded) которого содержатся следующие параметры:

token: выданный токен доступа (P5cKbUUD9uSSrSlGdzspLblvBnD0GzTAE0cLmAPSEMxJ79DtLE) 
client_id:processing-connector-token 
client_secret:processing-connector-token 
grant_type:token

Пример:

curl -X POST https://fp-test.bifit.com/processing-api/oauth/token -H 'Content-Type: application/x-www-form-urlencoded' -d 'token=P5cKbUUD9uSSrSlGdzspLblvBnD0GzTAE0cLmAPSEMx J79DtLE&client_id=processing-connector-token&client_secret=processing-connector-token&grant_type=token'

в теле (x-www-form-urlencoded) которого содержатся следующие параметры:

refresh_token: полученный refresh_token
client_id:processing-connector-token
client_secret:processing-connector-token
grant_type:refresh_token

Пример:

curl -X POST \
https://fp-test.bifit.com/processing-api/oauth/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'refresh_token=...&client_id=processing-connector-token&client_
secret=processing-connector-token&grant_type=refresh_token'

На оба запроса получится ответ вида:

{
"access_token": "access_token", 
"token_type": "bearer", 
"refresh_token": "refresh_token", 
"expires_in": 3599,
"scope": "read write", "connector_id": 
connector_id,
"jti": "jti" }

Note.svg  Примечание

  • Ко всем последующим запросам, в Header`е необходимо указывать: 'Authorization: Bearer полученный_access_token

Формирование контента чека

Note.svg  Примечание

Пример:

{
 "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
}
}

Note.svg  Примечание
Полученные данные имеют ознакомительный характер, актуальные запросы можно посмотреть по адресу:

Отправка чека в фискальный процессинг

В Header`е указывается Idempotency-Key, который генерируется следующим образом:

SHA256("Номер чека(локальный счетчик на устройстве)/PIN(4 цифры)/Сумма чека(ххх.хх)/ДатаВремя(ДД.ММ.ГГГГ ЧЧ:ММ")

Пример:

curl -X POST \ 
https://fp-test.bifit.com/processing-api/protected/documents/registration/
receipts \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access_token' \ -H 'Idempotency-Key: 
idempotency_key' \ 
-d '{
 "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)

Note.svg  Примечание
Полученные данные имеют ознакомительный характер, актуальные запросы можно посмотреть по адресу:

Получение документа по 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, сгенерированный при отправке чека.