Чеки коррекции ФФД 1.2
Для отправки чеков коррекции, нужно сформировать специально сформированный пакет с данными.
Для фискализации чека коррекции, наш запрос должен выглядеть так:
{ "kassaid": "123456", "kassatoken": "12345678912345678912345678912345", "cms": "wordpress", "check_send_type": "email", "check_vend_address": "Адрес установки вендингового автомата (нужно только для вендинга)", "check_vend_mesto": "Место установки вендингового автомата (нужно только для вендинга)", "check_vend_num_avtovat": "Номер вендингового автомата (нужно только для вендинга)", "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. Не забудьте выставить данный параметр, иначе чек будет обрабатываться как обычный чек прихода/расхода!
После этого, данный запрос шифруется и отправляется к нам на сервер. Результаты фискализации вы сможете увидеть в личном кабинете.