Холдирование средств

Холдированием денежных средств еще называют отложенную оплату, двухстадийные платежи или предавторизацию.

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

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

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

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

Примечание

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

Чтобы подключить и настроить холдирование, обратитесь в поддержку.

Совет

Для знакомства с платежными механиками API Яндекс Пэй используйте готовую Postman-коллекцию.

Скачать коллекцию

Стадии платежа

Платеж с использованием холдирования проходит в две стадии.

I стадия

Блокировка средств (предавторизация) и переход платежа в статус Платеж авторизован (AUTHORIZED).

На этой стадии вернуть деньги клиенту можно через отмену блокировки средств.

II стадия

Подтверждение списания магазином и переход платежа в статус Оплачен (CAPTURED).

На этой стадии вернуть деньги можно, воспользовавшись операцией возврата платежа.

Блокировка средств работает только при оплате картой

Если покупатель оплатит по СБП, то средства спишутся сразу без подтверждения со стороны магазина. Платеж перейдет в статус CAPTURED, минуя стадию блокировки и статус AUTHORIZED.

Учитывайте это при обработке статусов заказа.

Успешные статусы платежа в сценариях с холдированием средств представлены на схеме ниже. С остальными статусами можно ознакомиться в разделе Статусы, которые мы высылаем в интеграции.

Сценарий холдирования

  1. Сформируйте ссылку на оплату заказа с помощью метода /orders.

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

  3. Происходит блокировка средств на счете покупателя, платеж переходит в статус AUTHORIZED.

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

    Срок блокировки можно изменить в диапазоне от 1 до 5 дней через поддержку.

  4. Если настроен Callback URL, бэкенд магазина получает уведомление о событии ORDER_STATUS_UPDATED.

Списание средств (клир)

  1. Подтвердите списание средств за заказ с помощью метода /orders/{order_id}/capture.

    Если сумма покупки окажется меньше?

    Например, если покупатель решит не выкупать отдельные позиции в корзине, оставшаяся часть заблокированных средств будет возвращена. В данном случае передайте новые значения в параметре cart метода /orders/{order_id}/capture.

  2. Происходит списание средств со счета покупателя, платеж переходит в статус CAPTURED.

  3. Если настроен Callback URL, бэкенд магазина получает уведомление о событии ORDER_STATUS_UPDATED.

Отмена блокировки средств

Отменить блокировку средств можно только для платежей в статусе AUTHORIZED (деньги заблокированы, но еще не списаны).

  1. Отправьте запрос на получение деталей заказа с помощью метода /orders/{order_id}.
  2. Проверьте статус заказа в поле paymentStatus ответа:
    • Если статус AUTHORIZED, выполните отмену блокировки средств методом /orders/{order_id}/cancel. После отмены платеж перейдет в статус VOIDED, а деньги зачислятся обратно на счет клиента.
    • Если статус заказа отличается от AUTHORIZED, отменить блокировку невозможно. Рассмотрите возможность возврата платежа.

Автоклир

Если подтверждения списания средств или отмены блокировки не происходит по истечению периода холдирования, на стороне Яндекс Пэй происходит автоматическое списание (автоклир) денежных средств.

Совет

Чтобы избежать нежелательного списания денежных средств с карты покупателя, рекомендуем настроить автоматическую отмену блокировки с помощью метода /orders/{order_id}/cancel по истечению заданного времени. При этом срок автоматической отмены должен быть меньше, чем период холдирования, т.к. отменить можно только платежи в статусе AUTHORIZED.

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

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

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

Минимальная сумма возврата — 1 рубль.

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

Примечание

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

Проверьте актуальный статус платежа на любом этапе с помощью метода /orders/{order_id} или в личном кабинете, выбрав нужный платеж.

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

PENDING

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

FAILED

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

AUTHORIZED

Оплата успешна, денежные средства захолдированы.

CAPTURED

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

VOIDED

Оплата отменена, денежные средства расхолдированы. Терминальный статус.

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

FAILED

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

REFUNDED

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

PARTIALLY_REFUNDED

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

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

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

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

Сценарий

Действия

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

Среда

Успешная оплата с последующим клиром (списанием средств) по инициативе продавца

  1. Создайте заявку на оплату методом /orders и откройте ссылку на оплату клиенту. В корзине должно быть несколько товаров одного productId.
  2. Перейдите по ссылке и оплатите покупку.
  3. Завершите бронь заказа и вызовите метод для клира средств /orders/{order_id}/capture.
  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус AUTHORIZED.

  2. По факту клира средств от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус CAPTURED.

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

Test, Prod

Успешная оплата с отменой покупки до клира средств

  1. Создайте заявку на оплату методом /orders и откройте ссылку на оплату клиенту.

  2. Перейдите по ссылке и оплатите покупку.
  3. Инициируйте отмену заказа методом /orders/{order_id}/cancel.
  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус AUTHORIZED.

  2. По факту отмены от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус VOIDED.

Test, Prod

Успешная оплата с автоклиром средств (заказ без принудительного клира)

  1. Создайте заявку на оплату методом /orders и откройте ссылку на оплату клиенту.

  2. Перейдите по ссылке и оплатите покупку.
  3. Оставьте заявку на 5 суток.
  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус AUTHORIZED.

  2. По факту автоклира средств от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус CAPTURED.

Test, Prod

Успешная оплата с частичным клиром средств

  1. Создайте заявку на оплату методом /orders и откройте ссылку на оплату клиенту.

  2. Перейдите по ссылке и оплатите покупку.
  3. Завершите бронь заказа с изменением состава в меньшую сторону и вызовите метод для клира средств /orders/{order_id}/capture на итоговую корзину.
  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус AUTHORIZED.

  2. По факту клира средств от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус CAPTURED.

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

Test, Prod

Успешная оплата с частичным возвратом после клира средств

  1. Создайте заявку на оплату методом /orders и откройте ссылку на оплату клиенту.

  2. Перейдите по ссылке и оплатите покупку.
  3. Подтвердите покупку orders/{order_id}/capture.
  4. Выберите несколько товаров к возврату (не все) и осуществите возврат методом /v2/orders/{order_id}/refund с последующей проверкой статуса возврата.
  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус AUTHORIZED.

  2. По факту клира средств от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус CAPTURED.

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

Test, Prod

Успешная оплата с полным возвратом после клира средств

  1. Создайте заявку на оплату методом /orders и откройте ссылку на оплату клиенту.

  2. Перейдите по ссылке и оплатите покупку.
  3. Выберите все товары к возврату и осуществите возврат методом /v2/orders/{order_id}/refund с последующей проверкой статуса возврата.

  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус AUTHORIZED.

  2. По факту клира средств от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус CAPTURED.

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

Test, Prod

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

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

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

Prod

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

  1. Создайте заявку на оплату методом /orders и откройте ссылку на оплату клиенту.

  2. Перейдите по ссылке и оплатите покупку банковской картой.
  3. Завершите бронь заказа и вызовите метод для клира средств /orders/{order_id}/capture.
  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус AUTHORIZED.

  2. По факту клира средств от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус CAPTURED.

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

Prod

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

  1. Создайте заявку на оплату методом /orders и откройте ссылку на оплату клиенту.

  2. Перейдите по ссылке и оплатите покупку Сплитом.
  3. Завершите бронь заказа и вызовите метод для клира средств /orders/{order_id}/capture.
  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус AUTHORIZED.

  2. По факту клира средств от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус CAPTURED.

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

Prod

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

  1. Создайте заявку на оплату методом /orders и откройте ссылку на оплату клиенту.

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

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

Prod

Успешная оплата СБП с частичным возвратом

  1. Создайте заявку на оплату методом /orders и откройте ссылку на оплату клиенту.

  2. Перейдите по ссылке и оплатите покупку через СБП.
  3. Выберите несколько товаров к возврату (не все) и осуществите возврат методом /v2/orders/{order_id}/refund с последующей проверкой статуса возврата.
  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус CAPTURED.

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

Prod

Успешная оплата СБП с полным возвратом

  1. Создайте заявку на оплату методом /orders и откройте ссылку на оплату клиенту.

  2. Перейдите по ссылке и оплатите покупку через СБП.
  3. Выберите все товары к возврату и осуществите возврат методом /v2/orders/{order_id}/refund с последующей проверкой статуса возврата.

  1. По факту оплаты от Яндекс пришел webhook или на опрос статуса /orders/{order_id} получен статус CAPTURED.

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

Prod