Чеки коррекции ФФД 1.2
Для отправки чеков коррекции, нужно сформировать специально сформированный пакет с данными.
Для фискализации чека коррекции, наш запрос должен выглядеть так:
{
"kassaid": "123456",
"kassatoken": "12345678912345678912345678912345",
"cms": "wordpress",
"check_send_type": "email",
"priznak_internet": "Признак применения ККТ при осуществлении расчета в безналичном порядке в сети «Интернет» (тег 1125)",
"check_vend_address": "Адрес установки вендингового автомата (нужно только для вендинга)",
"check_vend_mesto": "Место установки вендингового автомата (нужно только для вендинга) (если priznak_internet = 1, то здесь должен быть указан адрес сайта)",
"check_vend_num_avtovat": "Номер вендингового автомата (нужно только для вендинга)",
"timezone": "Применяется в случае наличия в чеке маркированных товаров. Номер часовой зоны места (адреса) осуществления расчетов в соответствии с законодательством Российской Федерации (тег 1011) [string] [ целое число от 1 до 11 ]",
"products_arr": [{
"name_tovar": "Товар 1, арт11112",
"price_piece_bez_skidki": 7744,
"skidka": 1297,
"kolvo": 2,
"price_piece": 7095,
"summa": 14191,
"stavka_nds": 6,
"priznak_sposoba_rascheta": 4,
"priznak_predmeta_rascheta": 1,
"priznak_agenta": "none",
"phone_oper_perevoda": "",
"operation_plat_agenta": "",
"phone_oper_priem_plat": "",
"name_oper_perevoda": "",
"address_oper_perevoda": "",
"inn_oper_perevoda": "",
"phone_postavshika": "",
"name_postavshika": "",
"discount": {
"type": "amount",
"value": 12.97
}
}, {
"name_tovar": "Товар 2",
"price_piece_bez_skidki": 155,
"skidka": 26,
"kolvo": 2,
"price_piece": 142,
"summa": 284,
"stavka_nds": 6,
"priznak_sposoba_rascheta": 4,
"priznak_predmeta_rascheta": 4,
"priznak_agenta": "none",
"phone_oper_perevoda": "",
"operation_plat_agenta": "",
"phone_oper_priem_plat": "",
"name_oper_perevoda": "",
"address_oper_perevoda": "",
"inn_oper_perevoda": "",
"phone_postavshika": "",
"name_postavshika": "",
"discount": {
"type": "amount",
"value": 0.26
}
}],
"korr_arr": {
"rezhim_nalog": "2",
"money_nal": 0,
"money_electro": 46561,
"money_predoplata": 0,
"money_postoplata": 0,
"money_vstrecha": 0,
"name_doc_korr": "Приказ директора 67 от 15 октября 2019 г.",
"date_doc_korr": "1571097600",
"client_email": "[email protected]",
"client_phone": "74992888105"
},
"itog_arr": {
"priznak_rascheta": 1,
"itog_cheka": 46561
}
}
Разберем, что здесь что.
Переменные kassaid и kassatoken - данные для авторизации.
В переменной cms мы указываем от какой cms идет взаимодействие [string]. Параметр обязательный, иначе мы не сможем понять, как ваш запрос обрабатывать. Особенно это касается вендинговых автоматов и платежных систем. Если у вас запрос типовой, то можете использовать стандартное значение «wordpress».
В соотвествии с изменениями в законодательстве, и, соотвественно, «форматах фискальных документов» ФНС, одна ККТ может применяться в составе нескольких автоматических устройств (вендинг). В данном случае при регистрации ККТ не указываются следующие параметры: Адрес расчетов, место расчета, номер автомата. Эти параметры должны указываться в процессе формирования чека. Поэтому, если вам необходимо сделать чек коррекции, для вендингового автомата, то необходимо указать данные переменные:
В переменной check_vend_address указываем адрес установки автомата [string] [max 256 symb]
В переменной check_vend_mesto указываем место установки автомата [string] [max 256 symb]
В переменной check_vend_num_avtovat указываем номер автомата [string] [max 20 symb]
Внимание! Если ваша касса создана в личном кабинете (тип кассы в личном кабинете) c типом «ИМ+Венд» или «Венд», то указание параметров вендинга - обязательно!
В массиве products_arr перечисляются товары для чека коррекции в ФФД 1.2
В массиве korr_arr описываются данные для чека коррекции.
В массиве itog_arr описываются итоги по чеку.
Подробнее разберем korr_arr.
- (1) В переменной rezhim_nalog нужно указать режим налогообложения [string]
- 0 – Общая
- 1 - Упрощенная доход
- 2 - Упрощенная доход минус расход
- 3 - Единый налог на вмененный доход
- 4 - Единый сельскохозяйственный налог
- 5 - Патентная система налогообложения
- (2) В переменной money_nal необходимо указать сумму денег которую получили Наличными без запятых и точек (в копейках)
- (3) В переменной money_electro необходимо указать сумму денег которую получили Безналичными без запятых и точек (в копейках)
- (4) В переменной money_predoplata необходимо указать сумму денег которую получили Предоплатой (зачетом аванса) без запятых и точек (в копейках)
- (5) В переменной money_postoplata необходимо указать сумму денег которую получили Постоплатой (в кредит) без запятых и точек (в копейках)
- (6) В переменной money_vstrecha необходимо указать сумму денег которую получили представлением без запятых и точек (в копейках)
- (7) В переменной name_doc_korr необходимо указать номер предписания налогового органа для коррекции (тег 1179)). Указывать нужно только, если у вас есть предписания от ФНС.
- (8) В переменной date_doc_korr необходимо (обязательно) указать только дату (Дата совершения корректируемого расчета (тег 1178)) в формате unixtime на 00:00:00. Например, если вы хотите указать дату 15 октября 2019 г. - то вы должны будете указать цифру: 1571097600. Еще пример, если вы хотите указать дату, 25 июня 2019 г. - то вы должны будете указать цифру: 1561420800. [string]
- (9) В переменной client_email необходимо указать email, кому будет отправлен чек ( если check_send_type = email )
- (10) В переменной client_phone необходимо указать номер телефона, кому будет отправлен чек ( если check_send_type = phone )
Обратите внимание! Суммы должны быть равны! sum1=sum2
sum1 = money_nal + money_nal + money_electro + money_predoplata + money_postoplata + money_vstrecha
sum2 = итог чека (itog_cheka)
Посчитайте в вашем чеке. Если эти суммы разные, то такой чек не будет фискализирован.
Подробнее разберем itog_arr.
- (1) В переменной priznak_rascheta, нужно указать признак расчета [string] [1,2,3,4].
- (2) В переменной itog_cheka, нужно указать итог суммы коррекции , без запятых и точек (в копейках)
В переменной priznak_rascheta необходимо указать признак расчета [int]:
- 1 - Приход
- 2 - Возврат прихода
- 3 - Расход
- 4 - Возврат расхода
Итак вот этот большой запрос на коррекцию после шифрования должен превратиться вот в такой небольшой запрос:
{
"ab":"GYBhagdYGWgahjGDHASgdjhas...ASDGd",
"de":"GYBhagdYGWgahjGDHASgdjhas...ASDGd",
"kassaid":"123456",
"kassatoken":"3212312312312",
"check_type":"korrcheckffd1-2",
"test":"1"
}
Разберем, что здесь что.
Переменные kassaid и kassatoken - данные для авторизации.
В переменной test мы прописываем, тестовый это запрос или «боевой». Внимание! Не забывайте его указывать! Потому, что если вы его не указали, мы автоматически считаем его тестовым и не проведем через онлайн кассы. (Возможные значения: 0; 1) (1 -запрос тестовый, 0 - запрос боевой). Этот объект придется еще раз указывать - поэтому не забывайте о нем. Зато они будут видны в личном кабинете nanokassa.ru
В переменной ab находится ключ для дешифровки пакета de. Объект ab зашифрован с помощью шифрования RSA.
В переменной de находится основной пакет с данными. Объект de зашифрован с помощью AES256-CTR. Ключ каждый раз разный. Ключ можно узнать только расшифровав пакет ab (RSA)
В переменной check_type находится параметр типа чека. Если это чек коррекции ФФД 1.2 - то параметр должен быть равен korrcheckffd1-2. Не забудьте выставить данный параметр, иначе чек будет обрабатываться как обычный чек прихода/расхода!
После этого, данный запрос шифруется и отправляется к нам на сервер. Результаты фискализации вы сможете увидеть в личном кабинете.