Процесс проведения оплаты по платежным табличкам
Оплата по платежной табличке проходит с помощью кассовой ссылки — это уникальная ссылка, зашифрованная в QR-коде и NFC-метке на табличке. Чтобы провести платеж, нужно записать сумму в кассовую ссылку — передать информацию о платеже. Оплата по платежной табличке проходит через СБП.
Перед приемом платежей нужно подготовить табличку — активировать кассовую ссылку.
В этом разделе описан процесс приема платежа и работы с кассовой ссылкой.
Особенности
Единственный доступный способ приема платежей по платежным табличкам — СБП (Система Быстрых Платежей ЦБ РФ). Такие платежи проходят через НСПК (Национальная Система Платежных Карт). Всё платежное взаимодействие происходит через НСПК — выбор пользователем банка или платежного сервиса, списание денег со счета, проведение возврата и т.д.
Для платежей в офлайне недоступны дополнительные опции, которые работают для платежей в интернете: автоплатежи, двухстадийные платежи и другие.
Если вы компания или ИП, то при приеме оплаты и возврате платежей вам нужно формировать чеки с помощью онлайн-кассы. Это регламентирует закон 54-ФЗ. При платежах через платежные таблички вам нужно самостоятельно отправлять данные онлайн-кассе. Решения ЮKassa для работы по 54-ФЗ при платежах в офлайне недоступны.
Этапы платежа
В API ЮKassa для приема платежей в офлайне есть две ключевые сущности: кассовая ссылка и платеж. Они неразрывно связаны друг с другом: чтобы принять платеж, вы записываете сумму в кассовую ссылку. Таким образом, процесс платежа по платежной табличке состоит из двух этапов:
- Запись суммы — вы передаете в ЮKassa данные о платеже, ЮKassa записывает в ссылку сумму, и оплата становится доступна.
- Оплата пользователем — пользователь сканирует QR-код или прикладывает устройство к NFC-метке, переходит по кассовой ссылке, а после подтверждает платеж в приложении своего банка или платежного сервиса.
Запись суммы
Чтобы принять платеж, вы записываете сумму в кассовую ссылку. Для этого создаете по API платеж, в котором указана сумма платежа, идентификатор кассовой ссылки и срок, в течение которого пользователь может заплатить (срок действия оплаты). При создании платежа данные для оплаты передаются в кассовую ссылку.
Срок действия оплаты может составлять от 1 до 20 минут. Это время, в течение которого пользователь может отсканировать QR-код или приложить телефон к NFC-метке. По умолчанию QR-код и NFC-метка работают 20 минут, но вы можете настроить это время самостоятельно при создании платежа. Если указанный срок истек, а пользователь не успел заплатить, вы создаете новый платеж.
Оплата пользователем
В процессе платежа пользователь совершает следующие действия:
- выбирает банк или платежный сервис на странице СБП;
- переходит в приложение банка или платежного сервиса для подтверждения платежа;
- подтверждает платеж.
Пользователь может сразу перейти в приложение банка или платежного сервиса, минуя страницу СБП. Это возможно в двух случаях: если на устройстве установлено только одно платежное приложение или если банк выбран основным для оплаты по СБП (эта опция настраивается на стороне банка или платежного сервиса).
Как проходит платеж для покупателя
Платежные таблички можно использовать для приема платежей с участием кассира или на кассах самообслуживания. При этом под кассиром подразумевается любой человек, который принимает оплату — например, кассир на обычной кассе или курьер, который доставляет товар пользователю.
С точки зрения пользователя эти сценарии различаются только переходом к оплате и записью суммы в кассовую ссылку. Сам процесс оплаты одинаковый.
Оплата с участием кассира
Как для пользователя проходит платеж с участием кассира:
- Пользователь обращается к кассиру со своим заказом.
- Кассир при необходимости сканирует товары, сообщает сумму покупки и предлагает выбрать способ оплаты.
- Пользователь выбирает оплату через СБП по платежной табличке.
- Кассир записывает сумму в кассовую ссылку на платежной табличке и сообщает, что можно переходить к оплате.
- Пользователь переходит в приложение банка или платежного сервиса одним из двух способов:
- Сканирование QR-кода с таблички — пользователь сканирует QR-код таблички либо в приложении банка или платежного сервиса, либо другим способом (например, через приложение камеры). При необходимости пользователь переходит на страницу СБП, выбирает свой банк и переходит в приложение.
- Оплата телефоном по NFC-метке — пользователь прикладывает смартфон к NFC-метке на табличке. На устройстве запрашивается разрешение перейти на страницу СБП. Пользователь на странице СБП выбирает свой банк, а затем переходит в его приложение.
- Пользователь подтверждает платеж в приложении своего банка или платежного сервиса.
- Кассир сообщает пользователю, что платеж прошел успешно.
- Кассир формирует чек и выдает его пользователю.
Оплата на кассе самообслуживания
Как для пользователя проходит платеж без участия кассира:
- Пользователь приходит на кассу со своим заказом.
- Пользователь самостоятельно сканирует товары, видит сумму покупки на вашей стороне и выбирает способ оплаты.
- Пользователь выбирает оплату через СБП по платежной табличке.
- Ваша система записывает сумму в кассовую ссылку на платежной табличке и сообщает пользователю, что можно переходить к оплате.
- Пользователь переходит в приложение банка или платежного сервиса одним из двух способов:
- Сканирование QR-кода с таблички — пользователь сканирует QR-код таблички либо в приложении банка или платежного сервиса, либо другим способом (например, через приложение камеры). При необходимости пользователь переходит на страницу СБП, выбирает свой банк и переходит в приложение.
- Оплата телефоном по NFC-метке — пользователь прикладывает телефон к NFC-метке на табличке. На устройстве запрашивается разрешение перейти на страницу СБП. Пользователь на странице СБП выбирает свой банк, а затем переходит в его приложение.
- Пользователь подтверждает платеж в приложении своего банка или платежного сервиса.
- Ваша система сообщает пользователю, что платеж прошел успешно.
- Касса формирует чек и выдает его пользователю.
Общий сценарий приема оплаты по платежной табличке
Прежде чем перейти к приему платежей, активируйте кассовую ссылку.
В этом разделе описан процесс оплаты по платежной табличке с участием кассира. Если вы принимаете платежи через кассу самообслуживания, процесс может немного отличаться.
Сценарий оплаты по платежной табличке
- Пользователь переходит к оплате по платежной табличке (например, обращается к кассиру).
- Кассир указывает сумму платежа в вашей системе.
- Вы создаете платеж — отправляете ЮKassa POST-запрос с идентификатором кассовой ссылки.
- ЮKassa записывает сумму в кассовую ссылку.
- ЮKassa возвращает вам созданный объект платежа в статусе
pending. - Ваша система сообщает кассиру, что можно переходить к оплате.
- Пользователь сканирует QR-код или прикладывает устройство к NFC-метке и переходит на страницу СБП для выбора банка или платежного сервиса.
- Пользователь выбирает банк или платежный сервис, переходит в приложение выбранного банка или сервиса, а затем подтверждает платеж.
- НСПК проводит платеж.
- НСПК сообщает ЮKassa об оплате.
- Если у вас настроены уведомления, ЮKassa присылает уведомление о переходе платежа в статус
succeeded. - Вы запрашиваете информацию о платеже — отправляете ЮKassa GET-запрос с идентификатором платежа.
- ЮKassa возвращает вам созданный объект платежа в актуальном статусе.
- Вы сообщаете пользователю результат проведения платежа.
Сценарии проведения платежа
При оплате по платежной табличке в ЮKassa есть три сценария проведения платежа:
Прием платежа
Чтобы принимать платежи через СБП в офлайне, нужно записать сумму в кассовую ссылку. Через API вы создаете платеж с суммой, идентификатором кассовой ссылки и сроком действия оплаты.
У каждого платежа в ЮKassa есть уникальный идентификатор. Рекомендуется сохранять его в вашей системе в связке с идентификатором кассовой ссылки. Это нужно, чтобы в дальнейшем вы могли соотнести платеж с конкретной платежной табличкой.
Если в личном кабинете вы подписались на входящие уведомления, после завершения оплаты ЮKassa пришлет уведомление об изменении статуса платежа.
При необходимости вы можете запросить информацию о кассовой ссылке и проверить, какой платеж был проведен последним.
Перезапись суммы
В один момент времени кассовая ссылка может содержать только одну сумму. В процессе оплаты может возникнуть ситуация, когда пользователь решает убрать какие-то позиции из заказа, добавить другие товары или заменить их. При изменении заказа меняется итоговая сумма платежа. В этом случае вам нужно перезаписать сумму в кассовой ссылке. Для этого вы создаете в ЮKassa новый платеж с актуальной суммой.
Перезаписать сумму платежа в кассовой ссылке можно только до подтверждения платежа пользователем. Если пользователь уже отсканировал QR-код и нажал в приложении банка или платежного сервиса кнопку подтверждения, ЮKassa не сможет перезаписать сумму — платеж уже будет в обработке. При создании нового платежа по этой ссылке ЮKassa вернет ошибку. В таком случае вы можете дождаться, пока платеж успешно завершится, затем сделать возврат и после этого создать новый платеж с измененной суммой.
Отмена платежа
Если вы уже записали сумму в кассовую ссылку, но пользователь решает заплатить другим способом (например, банковской картой), вы можете отменить созданный платеж. Для этого используйте идентификатор платежа, который сохранили ранее.
Отменить платеж можно только до подтверждения пользователем. Если пользователь уже отсканировал QR-код и нажал в приложении банка или платежного сервиса кнопку подтверждения, ЮKassa не сможет отменить платеж — он уже будет в обработке. При попытке отмены ЮKassa вернет ошибку. В таком случае вам нужно дождаться, пока платеж успешно завершится, а затем сделать возврат.
Жизненный цикл платежа
Каждому этапу жизненного цикла соответствует статус платежа.
Статусы платежа
pending — кассовая ссылка активирована, платеж создан и ожидает действий от пользователя.Из статуса
pending платеж может перейти в succeeded или canceled (если вы отменили платеж или что-то пошло не так).succeeded — платеж успешно завершен, деньги будут перечислены на ваш расчетный счет в соответствии с вашим договором с ЮKassa. Это финальный и неизменяемый статус.canceled — платеж отменен. Вы увидите этот статус, если вы отменили платеж самостоятельно, истекло время на принятие платежа или платеж был отклонен ЮKassa или платежным провайдером. Это финальный и неизменяемый статус.Чтобы узнать статус платежа, периодически отправляйте запросы, чтобы получить информацию о платеже, или подождите, когда придет уведомление от ЮKassa.
Что почитать еще