Базовая механика

Базовая механика — это минимальный набор методов API Яндекс Пэй, с которыми можно принимать оплату в онлайн-магазине. Механика не рассматривает методы, с которыми можно настроить платежи по подписке, холдирование средств или привязать карту к аккаунту, но дает основополагающее представление о том, как работает сервис под капотом.

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

Изучите эту страницу прежде, чем переходить к подключению других механик.

Примечание

Данная механика поддерживает все способы оплаты: полная оплата (банковской картой или СБП с кешбэком), в Сплит.

Как это работает?

Настройте бэкенд и фронтенд своего магазина так, чтобы выполнялись следующие этапы проведения оплаты:

Схема проведения оплаты

image

Этап 1. Формирование корзины

  1. Покупатель формирует корзину товаров на сайте продавца и нажимает кнопку оплаты Яндекс Пэй.

  2. События после нажатия кнопки:

    1. Yandex Pay SDK вызывает callback на фронтенде магазина.

    2. Фронтенд магазина создает заказ на бэкенде магазина.

    3. Бэкенд магазина передает заказ в бэкенд Яндекс Пэй методом /orders.

    4. В ответ бэкенд Яндекс Пэй возвращает ссылку для перенаправления покупателя на фронтенд проведения оплаты в Яндекс Пэй.

    5. Фронтенд магазина получает ссылку на заказ Пэй, которую транслирует в Yandex Pay SDK.

  3. Yandex Pay SDK загружает с бэкенда Яндекс Пэй информацию о корзине товаров, которую необходимо оплатить покупателю.

  4. Yandex Pay SDK отображает покупателю форму оплаты с информацией о корзине товаров.

    • В случае Web SDK: происходит перенаправление на полученную ссылку для оплаты.
    • В случае Mobile SDK: открывается формы для оплаты.

    Важно

    Запрещено встраивать Яндекс Пэй в WebView при подключении в мобильных приложениях. Это небезопасно.

Этап 2. Авторизация покупателя и оплата

  1. Покупатель авторизуется со своим Яндекс ID, если не был авторизован.

  2. Покупатель выбирает способ оплаты покупки (Пэй или Сплит) и нажимает Оплатить.

    • При оплате сразу с кешбэком пользователь выбирает сохраненную в Яндексе банковскую карту или СБП-привязку к счету.

    • Если выбран Сплит, то покупатель выбирает количество платежей и совершает первый платеж со своих привязанных карт либо привязывает новую.
  3. Яндекс Пэй проводит платеж, списывая денежные средства с выбранной карты покупателя.

  4. Яндекс Пэй уведомляет продавца о статусе платежа через вызов /webhook, если был настроен Callback URL. Также бэкенд магазина может самостоятельно получить статус заказа через запрос /orders/{order_id}.

  5. Яндекс Пэй перенаправляет покупателя на полученные в методе /orders ссылки для успешных или неуспешных оплат.

  6. Деньги за покупку поступят продавцу на следующие сутки.

Возврат оплаты

Провести возврат можно двумя способами:

  • в личном кабинете в разделе Платежи;
  • при помощи запросов к API.

Статусы, которые мы высылаем в интеграции

Примечание

Статусы AUTHORIZED, VOIDED, CONFIRMED и RECURRING в текущей интеграции не используются.

Статусы при проведении оплаты:

PENDING

Оплата еще в процессе, нужно запросить статус платежа позже. Не отправляется в нотификации.

FAILED

Оплата завершилась неудачно. Терминальный неуспешный статус.

CAPTURED

Оплата совершена. Терминальный успешный статус.

Статусы при проведении возврата:

FAILED

Процедура возврата неуспешна. Терминальный неуспешный статус.

REFUNDED

Возврат совершен. Терминальный успешный статус.

PARTIALLY_REFUNDED

Частичный возврат совершен. Терминальный успешный статус.

Сценарии тестирования механики

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

Если вы настроили интеграцию по API Яндекс Пэй, в ходе тестирования рекомендуем использовать тестовые сценарии:

Сценарий

Действия

Ожидаемый результат

Среда

Успешная оплата. Callback URL задан в ЛК

  1. Задайте Callback URL в ЛК.
  2. Проведите оплату через сервис Пэй/Сплит.
  3. Проверьте изменение статуса в CRM на успешный на основании webhook.
  1. Получен webhook с статусом заказа CAPTURED.
  2. На основании полученного из Яндекс статуса на стороне продавца сформирован чек продажи и передан клиенту и в ФНС.

Test, Prod

Успешная оплата. Callback URL не задан в ЛК

  1. Не задавайте Callback URL в ЛК.
  2. Проведите оплату через сервис Пэй/Сплит.
  3. Проверьте изменение статуса в CRM на успешный на основании опроса статуса.
  1. В методе orders/{order_id} получен статус заказа CAPTURED. Webhook не отправляется.
  2. На основании полученного из Яндекс статуса на стороне продавца сформирован чек продажи и передан клиенту и в ФНС.

Test, Prod

Частичный возврат любого способа оплаты через API

  1. Проведите оплату через сервис Пэй/Сплит.
  2. В кассовом ПО или CRM выберите несколько товаров к возврату и осуществите его.

  1. Частичный возврат осуществлен и получен статус заказа PARTIALLY_REFUNDED в webhook или на метод orders/{order_id}.
  2. На основании полученного из Яндекс статуса на стороне продавца сформирован чек возврата и передан клиенту и в ФНС.

Test, Prod

Полный возврат любого способа оплаты через API

  1. Проведите оплату через сервис Пэй/Сплит.
  2. В кассовом ПО или CRM выберите весь чек к возврату и осуществите его.

  1. Полный возврат осуществлен и получен статус заказа REFUNDED в webhook или на метод orders/{order_id}.
  2. На основании полученного из Яндекс статуса на стороне продавца сформирован чек возврата и передан клиенту и в ФНС.

Test, Prod

Успешная оплата банковской картой

  1. Проведите оплату через сервис Пэй/Сплит с использованием банковской карты.
  2. Проверьте изменение статуса в CRM на успешный на основании опроса статуса.
  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса orders/{order_id} получен статус CAPTURED.
  2. На основании полученного из Яндекс статуса на стороне продавца сформирован чек продажи и передан клиенту и в ФНС.

Prod

Частичный возврат любого способа оплаты через ЛК

  1. Проведите оплату через сервис Пэй/Сплит.
  2. В ЛК Яндекс Пэй найдите платеж и сделайте частичный возврат товаров.

Частичный возврат осуществлен и получен статус заказа PARTIALLY_REFUNDED в webhook.

Prod

Полный возврат любого способа оплаты через ЛК

  1. Проведите оплату через сервис Пэй/Сплит.
  2. В ЛК Яндекс Пэй найдите платеж и сделайте полный возврат товаров.

Полный возврат осуществлен и получен статус заказа REFUNDED в webhook или на метод orders/{order_id}.

Prod

Успешная оплата Сплит

  1. Проведите оплату через сервис Пэй/Сплит с использованием Сплита.
  2. Проверьте изменение статуса в CRM на успешный на основании опроса статуса.
  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса orders/{order_id} получен статус CAPTURED.

  2. На основании полученного из Яндекс статуса на стороне продавца сформирован чек продажи и передан клиенту и в ФНС.

Prod

Успешная оплата СБП

  1. Проведите оплату через сервис Пэй/Сплит с использованием СБП.
  2. Проверьте изменение статуса в CRM на успешный на основании опроса статуса.
  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса orders/{order_id} получен статус CAPTURED.
  2. На основании полученного из Яндекс статуса на стороне продавца сформирован чек продажи и передан клиенту и в ФНС.

Prod

Проверка ежедневного отчета о продажах

Оставьте без возврата успешные продажи на сумму не менее 500 рублей.

На следующий день после тестов получен ежедневный отчет с операциями. Проверьте начисленную комиссию за успешную оплату.

Prod