Skip to content

18. Поддержка оплаты электронными сертификатами МИР

Anastasia Koreshkova edited this page Feb 20, 2024 · 5 revisions

Доступность: с версии 8.82.0

Электронный сертификат – это новый платежный инструмент, который предоставляет возможность самостоятельно приобретать отдельные виды товаров, работ и услуг за счет средств бюджетов при наличии оснований на получение мер государственной поддержки. Электронный сертификат выпускается к карте "Мир" любого банка, а оплата работает аналогично операциям с использованием банковских карт. Согласно нормам Федерального закона от 30.12.2020 № 491-ФЗ, граждане могут покупать отдельные виды товаров, работ и услуг с использованием электронного сертификата Национальной системы платежных карт (НСПК).

Подробнее о том, что такое электронный сертификат МИР и как им пользоваться можно почитать на официальном сайте НСПК.

Прием платежа с использованием электронного сертификата Модулькассой

Печать чека через приложение МодульКассы включает в себя:

  • прием оплаты (в том числе используя внешний эквайринг, поддерживающий прием электронных сертификатов МИР);
  • и фискализацию чека.

Поддержаны типы чеков:

  • продажа (DocumentType.SALE)
  • и возврат (DocumentType.RETURN).

Отмена для сертификатов не предусмотрена (т.к. на январь 2024 года эквайринг не поддерживает данную операцию), значение флага MoneyPosition.refundThroughCancel не учитывается, будет сделан возврат.

Для возврата средств на сертификат НСПК необходимо знать идентификатор корзины покупки. Для этого можно:

  • либо указать в чеке возврата идентификатор чека продажи в рамках МодульКассы в поле modulKassaId,
  • либо идентификатор корзины покупки (поле MoneyPosition.certificateDetails.basketId чека продажи) предложит ввести МодульКасса на соответствующем экране.

Если чек продажи был оплачен эл.сертификатом и банковской картой, то при возврате средств на карту необходимо указать RRN операции:

  • Если для чека возврата указать modulKassaId, то значение RRN МодульКасса подтянет сама.
  • Если modulKassaId не заполнено, МодульКасса запросит ввести RRN на соответствующем экране. Значение нужно взять из поля MoneyPosition.linkedId чека продажи.

Факт использования эл.сертификата при платеже будет отражаться в результате в поле MoneyPosition.certificateDetails.

От заполнения поля оплат в чеке зависит поведение МодульКассы. Варианты этого поведения описаны ниже.

Прием платежа с использованием эл.сертификата и фискализация чека, оплаты не заполнены

Если оплаты в чеке не были заполнены, МодульКасса предложит на экране подитога выбрать, каким способом оплатить чек.

Чтобы иметь возможность в МодульКассе принимать платежи эл.сертификатом, необходимо чтобы выполнялись следующие условия:

  1. В ЛК МодульКассы необходимо включить поддержку оплаты посредством эл.сертификата в разделе "Настройки - Сервисы". Также необходимо в точке продаж выполнить успешное подключение к НСПК, путем ввода ключей, выданных при регистрации в НСПК. Подробнее про ключи и регистрацию можно почитать здесь.
  2. На устройстве должно быть установлено приложение эквайринга, умеющее принимать платежи эл.сертификатами. Если таких приложений несколько, то выбирается первое из них. На январь 2024 года поддержка эл.сертификатов есть в платежном приложении "Эквайринг Skytech" версии 1.4.0.
  3. В чеке должен быть хотя бы один субсидированный товар. Субсидированный товар - у которого указан код ТРУ - InventPosition.truCode.

Если выполнены все три условия, на экране подитога в разделе способа оплаты "Другое" появится пункт "Электронный сертификат". Процесс оплаты по эл.сертификату включает в себя несколько этапов (все проходят на стороне МодульКассы):

  • проверку карты,
  • получение идентификатора корзины от НСПК,
  • проведение непосредственно платежа с использованием эл.сертификата.

Если НСПК одобрит не полную сумму по чеку для оплаты по сертификату, МодульКасса предложит варианты доплаты - наличными или той же банковской картой МИР.

Прием платежа с использованием эл.сертификата и фискализация чека, оплаты заполнены, но не произведены

Если оплата в чеке с помощью эл.сертификата была заполнена, но не произведена (MoneyPosition.paymentProcessed = false), то МодульКасса сразу перейдет в состояние оплаты выбранным эквайрингом.

Оплата с помощью эл.сертификата заполнена - означает, что уже проведены этапы проверки карты и получен идентификатор корзины от НСПК, остается непосредственно проведение платежа с использованием эл.сертификата. В этом случае в оплате с типом PaymentType.CARD необходимо, помимо прочих, заполнить поля:

  • sum - в виде общей суммы, одобренной по сертификату, плюс в случае необходимости доплата по безналу;
  • certificateDetails - с указанием одобренной НСПК суммой по сертификату и идентификатором корзины.

Для возврата также необходимо заполнить поля, описанные в общем пункте выше. В certificateDetails в данном случае необходимо указывать идентификатор корзины возврата от НСПК.

Если certificateDetails в оплате не указывать, МодульКасса будет считать, что это простая оплата банковской картой, без использования эл.сертификата.

Поддержана как полная оплата/возврат по эл.сертификату, так и с доплатой (и по карте, и наличными).

Прием платежа с использованием эл.сертификата и фискализация чека, оплаты заполнены и произведены

Если оплата в чеке с помощью эл.сертификата была заполнена и произведена (MoneyPosition.paymentProcessed = true), то переходим сразу на фискализацию чека.

Считается, что раз оплата была проведена сторонним эквайрингом, все необходимые данные клиенту по сумме средств, списанных с эл.сертификата, и идентификатор корзины НСПК должны быть отражены на банковском слипе, полученном от этого стороннего эквайринга. CertificateDetails в оплате заполнять не нужно, они при фискализации не учитываются.

Поддержка внешней платежной системы, обеспечивающей прием платежей электронными сертификатами

См. также Поддержка внешней платежной системы.

Если учитывать, что внешняя платежная система берет на себя весь цикл проведения платежа электронным сертификатом, включая:

  • проверку карты,
  • получение идентификатора корзины от НСПК,
  • проведение непосредственно платежа с использованием электронного сертификата,

то, для операций продажи, возврата и отмены поле certificate в соответствующем запросе (PayRequest/RefundRequest/CancelRequest) заполнено не будет.

После проведения соответствующей операции, необходимо заполнить поле certificate в результате операции (PayResult/RefundResult/CancelResult). В противном случае МодульКасса будет считать, что проведен обычный платеж простой банковской картой, а не эл.сертификатом.

Clone this wiki locally