Изменения в SDK, касаемые онлайн-чеков

С первого сентября 2025 года в силу вступили новые требования ФФД (Приказ от 26.03.2025 ЕД-7-20/236), в рамках которых изменились обязательные реквизиты в чеках, формируемых интернет магазинами.

Теперь, если ККТ применяется при осуществлении расчета в безналичном порядке в сети «Интернет», в чеках требуется передавать следующие реквизиты:

При этом, всегда требуется формировать два чека:

  1. Чек с признаками способа расчета (тег 1214) «Предоплата 100%» в позициях, который оплачен «Безналичными» (тег 1081). Этот чек должен формироваться, например, после оплаты заказа на сайте.
  2. Чек с признаками способа расчета (тег 1214) «Полный расчет» в позициях, который оплачен «Предоплатой (Авансом)» (тег 1215). Этот чек должен формироваться после фактической передачи товара или оказания услуги.

В обоих чеках должны присутствовать реквизиты интернет-расчетов.

Рассказываем, как это сделать через Java SDK смарт-терминала.

Минимальные требования

Как доработать приложение для соответствия новым требованиям

Изменения в объекте печатной группы

Признак receiptFromInternet в печатной группе теперь считается устаревшим:

public PrintGroup(
           String identifier,
           Type type,
           String orgName,
           String orgInn,
           String orgAddress,
           TaxationSystem taxationSystem,
           boolean shouldPrintReceipt,
           @Nullable Purchaser purchaser,
           @Nullable MedicineAttribute medicineAttribute,
@deprecated Используйте {@link ru.evotor.framework.receipt.Receipt.Header#receiptFromInternet}

           boolean receiptFromInternet
   ) 

Чтобы соответствовать новым требованиям, используйте новые параметры в конструкторах команд PrintXXXXReceiptCommand и OpenXXXXReceiptCommand.

Если формируете чек через команды PrintXXXXReceiptCommand

Вызовите команду PrintSellReceiptCommand. Обязательно заполните номер телефона или email покупателя, в поле paymentPlace (Место расчета) укажите интернет адрес сайта, на котором приобретался товар или услуга, в поле receiptFromInternet укажите true:

PrintSellReceiptCommand(
   listDocs,
   null,
   "79159084679",
   "example@example.com",
   null,
   null,
   "internet-market.ru",
   null,
   true
).process(
   this
)

Обратите внимание, что поле paymentPlace обязательно для заполнения, место расчетов, указанное при регистрации не подходит для формирования онлайн-чеков.

Если формируете чек через интерфейс смарт-терминала или команды OpenXXXXReceiptCommand

Вызовите команду OpenSellReceiptCommand. Обязательно заполните номер телефона или email покупателя (setPurchaserContactData).

OpenSellReceiptCommand(
       @Nullable List<PositionAdd> changes,
       @Nullable SetExtra extra,
       @Nullable SetPurchaserContactData setPurchaserContactData,
       @Nullable SetInternetRequisites setInternetRequisites
)

Заполните интернет-реквизиты (setInternetRequisites):

data class SetInternetRequisites(
   val receiptFromInternet: Boolean,
   val paymentPlace: String
)