Запрос при работе по ФФД 1.2
Важно!
- При работе по ФФД 1.2 в запросе на фискализацию документа с агентским товаром в процессинг, данные агента необходимо указывать в описание товара.
- Нумераторы
Request Headers |
|
- authorization: переменная для передачи access_token. Введите тип токена (в нашем случае слово "Bearer") перед значением access_token
- idempotency-key: ключ идемпотентности. Уникальный идентификатор документа в рамках сервиса БИФИТ Онлайн. Ключ генерируется на стороне клиента и обеспечивает невозможность повторного выполнения запроса регистрации чека на сервере. Варианты формирования ключа:
- Используйте GUID для генерации ключа идемпотентности (Рекомендуется)
- Используйте правило генерации ключа: SHA256(Локальный номер документа & PIN(4 символа) & Сумма чека(ххх.хх) & ДатаВремя(ДД.ММ.ГГГГ ЧЧ:ММ)) для случаев, когда необходимо воспроизвести ключ по исходным данным с ИС отправителя запросов
- Локальный номер документа: Локальный инкрементируемый счетчик в ИС отправителя запросов;
- PIN: Зафиксированное значение в ИС отправителя запросов;
- Сумма чека: Сумма чека, переданная в переменную total;
- Время чека: Время зафиксированное в ИС отправителя;
|
authorization: "Bearer ero3UNcffhlKdn5e76i...edfr_JU"
idempotency-key: "sdftfc-KF784mkd-skdhkaasca_lf34hKxsf"
|
BODY запроса для агента типа "Банковский платежный агент/субагент".
Request Body |
JSON структура |
- type: тип фискального документа, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- taxSystem: система налогообложения, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- cashier: информация о кассире
- name: ФИО кассира, допускается вместе с ФИО указать должность кассира (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- client: информация о клиенте
- address: электронный адрес или номер телефона (не обязательный реквизит)
- items: массив, содержащий номенклатурные позиции
- calculationMethod: признак способа расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- paymentSubject: признак предмета расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- name: наименование товарной позиции (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- price: цена товарной позиции с учетом примененной скидки/надбавки (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- quantity: количество товарных позиций (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- vat: НДС товарной позиции, по умолчанию передаётся значение "БЕЗ НДС" (не обязательный реквизит)
- total: сумма товарной позиции с учетом примененных скидок/надбавок
- agent: массив, содержащий информацию об агенте
- transferPhones: телефон оператора перевода
- transferName: Наименование оператора перевода
- transferAddress: Адрес оператора перевода
- transferInn: ИНН оператора перевода
- receiverPhones: Телефон оператора по приему платежей
- operation: Операция платежного агента
- phones: Телефон платежного агента
- agentType: Признак агента
- shipper: Поставщик
- name: ФИО поставщика
- inn: ИНН поставщика
- total: итоговая сумма чека. Содержит итоговую сумму всех товарных позиций в чеке (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- payments: типы оплаты. В чеке должен быть указан хотя бы один тип оплаты (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- CASH: сумма по типу оплаты наличными (не обязательный реквизит)
|
{
"type": "SALE",
"taxSystem": "COMMON",
"cashier": {
"name": "Иванов И.И."
},
"client": {
"address": "test@test.com"
},
"items": [
{
"calculationMethod": "FULL_PAY",
"paymentSubject": "PRODUCT",
"name": "Тест agent запрос",
"price": 100.00,
"quantity": 1,
"vat": "VAT_20",
"total": 100.00,
"agent": {
"transferPhones": [ "+79999999999"],
"transferName": "string",
"transferAddress": "string",
"transferInn": "1234567890",
"receiverPhones": [
"+79999999999"
],
"operation": "string",
"phones": ["+79999999999"]
},
"agentType": "BANK_PAYMENT_AGENT",
"shipper": {
"name": "string",
"inn": "1234567890"}
}
],
"total": 100.00,
"payments": {
"CASH": 100.00
}
}
|
BODY запроса для агента типа "Платежный агент/субагент".
Request Body |
JSON структура |
- type: тип фискального документа, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- taxSystem: система налогообложения, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- cashier: информация о кассире
- name: ФИО кассира, допускается вместе с ФИО указать должность кассира (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- client: информация о клиенте
- address: электронный адрес или номер телефона (не обязательный реквизит)
- items: массив, содержащий номенклатурные позиции
- calculationMethod: признак способа расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- paymentSubject: признак предмета расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- name: наименование товарной позиции (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- price: цена товарной позиции с учетом примененной скидки/надбавки (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- quantity: количество товарных позиций (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- vat: НДС товарной позиции, по умолчанию передаётся значение "БЕЗ НДС" (не обязательный реквизит)
- total: сумма товарной позиции с учетом примененных скидок/надбавок
- agent: массив, содержащий информацию об агенте
- receiverPhones: Телефон оператора по приему платежей
- phones: Телефон платежного агента
- agentType: Признак агента (BANK_PAYMENT_AGENT, BANK_PAYMENT_SUBAGENT, PAYMENT_AGENT, PAYMENT_SUBAGENT, ATTORNEY, COMMISSIONER, AGENT)
- shipper: Поставщик
- name: ФИО поставщика
- inn: ИНН поставщика
- total: итоговая сумма чека. Содержит итоговую сумму всех товарных позиций в чеке (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- payments: типы оплаты. В чеке должен быть указан хотя бы один тип оплаты (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- CASH: сумма по типу оплаты наличными (не обязательный реквизит)
|
{
"type": "SALE",
"taxSystem": "COMMON",
"cashier": {
"name": "Иванов И.И."
},
"client": {
"address": "test@test.com"
},
"items": [
{
"calculationMethod": "FULL_PAY",
"paymentSubject": "PRODUCT",
"name": "Тест agent запрос",
"price": 100.00,
"quantity": 1,
"vat": "VAT_20",
"total": 100.00,
"agent": {
"receiverPhones": [
"+79999999999"
],
"phones": ["+79999999999"]
},
"agentType": "PAYMENT_AGENT",
"shipper": {
"name": "string",
"inn": "1234567890"}
}
],
"total": 100.00,
"payments": {
"CASH": 100.00
}
}
|
BODY запроса для агентов типа "Агент, Поверенный, Комиссионер".
Request Body |
JSON структура |
- type: тип фискального документа, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- taxSystem: система налогообложения, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- cashier: информация о кассире
- name: ФИО кассира, допускается вместе с ФИО указать должность кассира (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- client: информация о клиенте
- address: электронный адрес или номер телефона (не обязательный реквизит)
- items: массив, содержащий номенклатурные позиции
- calculationMethod: признак способа расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- paymentSubject: признак предмета расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- name: наименование товарной позиции (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- price: цена товарной позиции с учетом примененной скидки/надбавки (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- quantity: количество товарных позиций (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- vat: НДС товарной позиции, по умолчанию передаётся значение "БЕЗ НДС" (не обязательный реквизит)
- total: сумма товарной позиции с учетом примененных скидок/надбавок
- agentType: Признак агента (ATTORNEY, COMMISSIONER, AGENT)
- shipper: Поставщик (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- name: ФИО поставщика
- inn: ИНН поставщика
- total: итоговая сумма чека. Содержит итоговую сумму всех товарных позиций в чеке (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- payments: типы оплаты. В чеке должен быть указан хотя бы один тип оплаты (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- CASH: сумма по типу оплаты наличными (не обязательный реквизит)
|
{
"type": "SALE",
"taxSystem": "COMMON",
"cashier": {
"name": "Иванов И.И."
},
"client": {
"address": "79999999999"
},
"items": [
{
"calculationMethod": "FULL_PAY",
"paymentSubject": "SERVICE",
"name": "Услуга",
"price": 100,
"quantity": 1,
"vat": "VAT_20",
"total": 100,
"agentType":"AGENT",
"shipper":{
"name":"",
"inn":"1234567890"}
}
],
"total": 100,
"payments": {
"CASH": 100
}
}
|
Response |
|
- Ответ сервера содержит ID зарегистрированного чека
|
|
Запрос при работе по ФФД 1.05
Важно!
- При работе по ФФД 1.2 в запросе на фискализацию документа с агентским товаром в процессинг, данные агента необходимо указывать в описание товара.
- Нумераторы
Request Headers |
|
- authorization: переменная для передачи access_token. Введите тип токена (в нашем случае слово "Bearer") перед значением access_token
- idempotency-key: ключ идемпотентности. Уникальный идентификатор документа в рамках сервиса БИФИТ Онлайн. Ключ генерируется на стороне клиента и обеспечивает невозможность повторного выполнения запроса регистрации чека на сервере. Варианты формирования ключа:
- Используйте GUID для генерации ключа идемпотентности (Рекомендуется)
- Используйте правило генерации ключа: SHA256(Локальный номер документа & PIN(4 символа) & Сумма чека(ххх.хх) & ДатаВремя(ДД.ММ.ГГГГ ЧЧ:ММ)) для случаев, когда необходимо воспроизвести ключ по исходным данным с ИС отправителя запросов
- Локальный номер документа: Локальный инкрементируемый счетчик в ИС отправителя запросов;
- PIN: Зафиксированное значение в ИС отправителя запросов;
- Сумма чека: Сумма чека, переданная в переменную total;
- Время чека: Время зафиксированное в ИС отправителя;
|
authorization: "Bearer ero3UNcffhlKdn5e76i...edfr_JU"
idempotency-key: "sdftfc-KF784mkd-skdhkaasca_lf34hKxsf"
|
BODY запроса для агента типа "Банковский платежный агент/субагент".
Request Body |
JSON структура |
- type: тип фискального документа, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- taxSystem: система налогообложения, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- cashier: информация о кассире
- name: ФИО кассира, допускается вместе с ФИО указать должность кассира (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- client: информация о клиенте
- address: электронный адрес или номер телефона (не обязательный реквизит)
- agent: массив, содержащий информацию об агенте
- transferPhones: телефон оператора перевода
- transferName: Наименование оператора перевода
- transferAddress: Адрес оператора перевода
- transferInn: ИНН оператора перевода
- receiverPhones: Телефон оператора по приему платежей
- operation: Операция платежного агента
- phones: Телефон платежного агента
- agentType: Признак агента
- items: массив, содержащий номенклатурные позиции
- calculationMethod: признак способа расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- paymentSubject: признак предмета расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- shipper: Поставщик
- name: ФИО поставщика
- inn: ИНН поставщика
- name: наименование товарной позиции (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- price: цена товарной позиции с учетом примененной скидки/надбавки (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- quantity: количество товарных позиций (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- vat: НДС товарной позиции, по умолчанию передаётся значение "БЕЗ НДС" (не обязательный реквизит)
- total: сумма товарной позиции с учетом примененных скидок/надбавок
- total: итоговая сумма чека. Содержит итоговую сумму всех товарных позиций в чеке (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- payments: типы оплаты. В чеке должен быть указан хотя бы один тип оплаты (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- CASH: сумма по типу оплаты наличными (не обязательный реквизит)
|
{
"type": "SALE",
"taxSystem": "COMMON",
"cashier": {
"name": "Иванов И.И."
},
"client": {
"address": "test@test.com"
},
"agent": {
"transferPhones": [ "+79999999999"],
"transferName": "string",
"transferAddress": "string",
"transferInn": "1234567890",
"receiverPhones": [
"+79999999999"
],
"operation": "string",
"phones": ["+79999999999"]
},
"agentType": "BANK_PAYMENT_AGENT",
"items": [
{
"calculationMethod": "FULL_PAY",
"paymentSubject": "PRODUCT",
"shipper": {
"name": "string",
"inn": "1234567890"},
"name": "Тест agent запрос",
"price": 100.00,
"quantity": 1,
"vat": "VAT_20",
"total": 100.00
}
],
"total": 100.00,
"payments": {
"CASH": 100.00
}
}
|
BODY запроса для агента типа "Платежный агент/субагент".
Request Body |
JSON структура |
- type: тип фискального документа, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- taxSystem: система налогообложения, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- cashier: информация о кассире
- name: ФИО кассира, допускается вместе с ФИО указать должность кассира (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- client: информация о клиенте
- address: электронный адрес или номер телефона (не обязательный реквизит),
- agent: массив, содержащий информацию об агенте
- receiverPhones: Телефон оператора по приему платежей
- phones: Телефон платежного агента
- agentType: Признак агента (BANK_PAYMENT_AGENT, BANK_PAYMENT_SUBAGENT, PAYMENT_AGENT, PAYMENT_SUBAGENT, ATTORNEY, COMMISSIONER, AGENT)
- items: массив, содержащий номенклатурные позиции
- calculationMethod: признак способа расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- paymentSubject: признак предмета расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- shipper: Поставщик
- name: ФИО поставщика
- inn: ИНН поставщика
- name: наименование товарной позиции (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- price: цена товарной позиции с учетом примененной скидки/надбавки (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- quantity: количество товарных позиций (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- vat: НДС товарной позиции, по умолчанию передаётся значение "БЕЗ НДС" (не обязательный реквизит)
- total: сумма товарной позиции с учетом примененных скидок/надбавок
- total: итоговая сумма чека. Содержит итоговую сумму всех товарных позиций в чеке (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- payments: типы оплаты. В чеке должен быть указан хотя бы один тип оплаты (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- CASH: сумма по типу оплаты наличными (не обязательный реквизит)
|
{
"type": "SALE",
"taxSystem": "COMMON",
"cashier": {
"name": "Иванов И.И."
},
"client": {
"address": "test@test.com"
},
"agent": {
"receiverPhones": [
"+79999999999"
],
"phones": ["+79999999999"]
},
"agentType": "PAYMENT_AGENT",
"items": [
{
"calculationMethod": "FULL_PAY",
"paymentSubject": "PRODUCT",
"shipper": {
"name": "string",
"inn": "1234567890"},
"name": "Тест agent запрос",
"price": 100.00,
"quantity": 1,
"vat": "VAT_20",
"total": 100.00
}
],
"total": 100.00,
"payments": {
"CASH": 100.00
}
}
|
BODY запроса для агентов типа "Агент, Поверенный, Комиссионер".
Request Body |
JSON структура |
- type: тип фискального документа, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- taxSystem: система налогообложения, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- cashier: информация о кассире
- name: ФИО кассира, допускается вместе с ФИО указать должность кассира (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- client: информация о клиенте
- address: электронный адрес или номер телефона (не обязательный реквизит)
- agentType: Признак агента (ATTORNEY, COMMISSIONER, AGENT)
- items: массив, содержащий номенклатурные позиции
- calculationMethod: признак способа расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- paymentSubject: признак предмета расчёта, см. раздел "Нумераторы" (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- shipper: Поставщик (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- name: ФИО поставщика
- inn: ИНН поставщика
- phones: Телефон платежного агента
- name: наименование товарной позиции (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- price: цена товарной позиции с учетом примененной скидки/надбавки (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- quantity: количество товарных позиций (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- vat: НДС товарной позиции, по умолчанию передаётся значение "БЕЗ НДС" (не обязательный реквизит)
- total: сумма товарной позиции с учетом примененных скидок/надбавок
- total: итоговая сумма чека. Содержит итоговую сумму всех товарных позиций в чеке (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- payments: типы оплаты. В чеке должен быть указан хотя бы один тип оплаты (ОБЯЗАТЕЛЬНЫЙ РЕКВИЗИТ)
- CASH: сумма по типу оплаты наличными (не обязательный реквизит)
|
{
"type": "SALE",
"taxSystem": "COMMON",
"cashier": {
"name": "Иванов И.И."
},
"client": {
"address": "79999999999"
},
"agentType":"AGENT",
"items": [
{
"calculationMethod": "FULL_PAY",
"paymentSubject": "SERVICE",
"shipper":{
"name":"",
"inn":"1234567890",
},
"name": "Услуга",
"price": 100,
"quantity": 1,
"vat": "VAT_20",
"total": 100
}
],
"total": 100,
"payments": {
"CASH": 100
}
}
|
Response |
|
- Ответ сервера содержит ID зарегистрированного чека
|
|
См. также