Изменения в протоколе для работы по 54-ФЗ

Attention. Это старая версия API. Переходите на API Яндекс.Кассы.
На этой странице описаны изменения, которые вносятся в Протокол приема платежей 3.0 для соблюдения условий 54-ФЗ. По закону интернет-магазины обязаны передавать в налоговую фискальные данные (с названиями и ценами товаров, ставкой НДС и другой необходимой информацией). Яндекс.Касса готова участвовать в этом процессе.

Термины

Онлайн-касса — специальный кассовый аппарат с фискальным накопителем (ККТ), подключается к интернету, постоянно находится в онлайне и передает фискальные данные в ОФД.

ОФД — оператор фискальных данных, посредник между онлайн-кассами и налоговой.

КЭП — квалифицированная электронная подпись, нужна для регистрации онлайн-кассы в налоговой.

Решение Яндекс.Кассы по 54-ФЗ

Чем поможет Яндекс.Касса

Яндекс.Касса может собирать данные в нужном виде и отправлять их в онлайн-кассу в момент оплаты или возврата. Из этих данных онлайн-касса сформирует чек и отправит его в ОФД, а ОФД — в налоговую.

Restriction.

Яндекс.Касса не отправляет электронный чек покупателю: даже если ему приходит электронное письмо об оплате, оно не считается полноценным чеком. Отправлять чеки покупателям можно через ОФД.

Что для этого нужно сделать
  1. Подключить онлайн-кассу одного из партнеров Яндекс.Кассы.
  2. Заключить договор с оператором фискальных данных (ОФД).
  3. Получить квалифицированную электронную подпись (КЭП).
  4. Зарегистрировать онлайн-кассу на сайте налоговой (в личном кабинете юрлица).
  5. Поменять настройки в личном кабинете Яндекс.Кассы.
  6. Передавать Яндекс.Кассе данные для формирования чека (то есть реализовать изменения протокола, описанные в этом документе).
Что меняется в протоколе
  • В запросы к Яндекс.Кассе добавляются новые параметры (например, название, цена и ставка НДС для каждого товара в заказе).
  • Проведение платежа или возврата зависит от отправки фискальных данных в онлайн-кассу: при некоторых настройках платежи перестанут проходить, если онлайн-касса не отвечает. (См. Отправка данных для чека)
Кому нужны эти доработки

Только тем, кто собирается использовать решение Яндекс.Кассы для отправки данных для чека в свою онлайн-кассу. Если вы собираетесь настраивать взаимодействие с онлайн-кассой самостоятельно, ничего менять не нужно.

Настройки в личном кабинете Яндекс.Кассы

В личном кабинете Яндекс.Кассы необходимо указать:

  • что вы будете использовать решение Яндекс.Кассы по работе 54-ФЗ;
  • партнера Яндекс.Кассы, у которого вы покупаете или арендуете онлайн-кассу;
  • когда отправлять фискальные данные вашей онлайн-кассе: до уведомления о платеже (paymentAviso) или вместе с ним:
  • электронный адрес, на который будут приходить письма с ошибками;
  • адрес вашего магазина (физический адрес или URL вашего сайта, он будет указан в чеке).

Помощь по настройкам в личном кабинете

Изменения в сценарии проведения оплаты

Процесс оплаты зависит от того, когда отправляются данные для чека: до уведомления об успешной оплате (paymentAviso) или вместе с ним, это настраивается в личном кабинете Яндекс.Кассы.

Подробнее в разделе Отправка данных для чека

Передача данных для чека в платежной форме

Параметры для передачи фискальных данных добавляются в стандартную платежную форму Яндекс.Кассы.

В форму добавляется один дополнительный параметр, в котором передаются все нужные данные (ym_merchant_receipt).

Подробнее в разделе Параметры для формирования чека

Возвраты: изменения в работе метода returnPayment

Метод returnPayment отвечает за проведение возвратов.

Параметры для чека нужно передавать только в случаях, когда состав чека меняется:

  • при частичном возврате;
  • если платеж, который нужно вернуть, проводился без отправки чека.

В этом случае в запросе появляется параметр receipt, в котором передаются параметры для чека (по товарам, за которые возвращаются деньги).

Параметры для чека не нужно передавать при полных возвратах (если при платеже уже отправлялся чек).

Подробнее в описании метода returnPayment.

Автоплатежи, повторы платежей, привязка карты: изменения в работе метода repeatCardPayment

Метод repeatCardPayment отвечает за повтор платежей с банковских карт и за привязку карт для платежей в конкретном магазине.

Параметры для чека нужно передавать, если:

  • меняется сумма платежа;
  • меняется состав заказа;
  • платеж, который нужно повторить, проводился без отправки чека.

В этом случае к запросу добавляется параметр ym_merchant_receipt, данные отправляются в формате JSON (так же, как в платежной форме).

В остальных случаях используются данные для чека, которые передавались при исходном платеже.

Подробнее в описании метода repeatCardPayment

Предавторизация: изменения в работе метода confirmPayment

Метод confirmPayment позволяет подтвердить отложенный платеж с банковской карты (если вы проводите платежи с карт с предавторизацией).

Параметры для чека нужно передавать, если:

  • сумма платежа отличается от исходной, переданной в платежной форме (проводится частичный клиринг).;
  • платеж, который нужно подтвердить, проводился без отправки чека.

В этом случае к запросу добавляется параметр ym_merchant_receipt, данные отправляются в формате JSON (так же, как в платежной форме).

В остальных случаях используются данные для чека, которые передавались при исходном платеже.

Подробнее в описании метода confirmPayment

Предавторизация: изменения в работе метода cancelPayment

Метод cancelPayment позволяет отменить отложенный платеж с банковской карты (если вы проводите платежи с карт с предавторизацией).

Параметры для чека нужно передавать, если платеж, который нужно отменить, проводился без отправки чека.

В этом случае к запросу добавляется параметр ym_merchant_receipt, данные отправляются в формате JSON (так же, как в платежной форме).

В остальных случаях используются данные для чека, которые передавались при исходном платеже.

Подробнее в описании метода cancelPayment

Инвойсинг: изменения в работе метода createInvoice

Метод createInvoice позволяет провести списание со счета пользователя во внешних платежных системах (Сбербанк Онлайн, Webmoney).

Данные для чека передаются обязательно, в параметре ym_merchant_receipt, в формате JSON (так же, как в платежной форме).