Реализация холдирования средств на сайте
Представьте: клиент заказывает стройматериалы с доставкой. Стоимость доставки зависит от веса, который становится известен только после сборки. Если сразу списать всю сумму, при отмене или уточнении стоимости придётся делать возврат. Это увеличивает операционные расходы на 25-40% и ухудшает пользовательский опыт. Возвраты и chargeback обходятся бизнесу в 2-3% от оборота. Мы решаем эту проблему с помощью двухстадийных платежей — холдирования. Оно блокирует средства на карте, но не списывает их до подтверждения. В результате chargeback сокращается в 2 раза, а клиенты получают прозрачный процесс.
Холдирование — это авторизация платежа без немедленного списания. Деньги блокируются на карте покупателя, но остаются в банке. Продавец может захватить (capture) только фактическую сумму или отменить холд, если сделка не состоялась. На практике это сокращает количество chargeback на 30-40% и исключает возвраты переплат. Для бизнеса это означает более быстрый цикл отгрузки — в среднем в 1.5 раза.
Двухстадийная оплата особенно актуальна для услуг с переменной стоимостью, предзаказов и отложенного списания. Она даёт гибкость бизнесу и безопасность клиенту.
Какие проблемы решает холдирование?
- Отмена заказа. Деньги не уходят продавцу до подтверждения — при отмене холд снимается автоматически или по запросу. Это исключает длительные возвраты.
- Переменная стоимость. Доставка, вес, комплектация — итоговая цена неизвестна заранее. Холдирование позволяет авторизовать максимальную сумму, а списать реальную, используя partial capture.
- Подтверждение качества. Услуга оказана, клиент доволен — только тогда захват средств. Это снижает risk для сервисных компаний.
Как работает двухстадийная оплата?
Процесс включает две операции: authorize (блокировка) и capture (списание). Между ними проходит от нескольких минут до 7–30 дней в зависимости от банка. Мы настраиваем платежный шлюз, обрабатываем статусы и гарантируем корректную отмену холда.
Stripe
В Stripe холдирование включается параметром capture_method: manual:
$paymentIntent = \Stripe\PaymentIntent::create([ 'amount' => $order->total_cents, 'currency' => 'eur', 'capture_method' => 'manual', 'payment_method_types' => ['card'], 'metadata' => ['order_id' => $order->id], ]); После 3DS-подтверждения статус — requires_capture. Деньги заблокированы. Для списания:
\Stripe\PaymentIntent::capture($order->stripe_payment_intent_id, [ 'amount_to_capture' => $finalAmountCents, // меньше или равно исходной сумме ]); Stripe поддерживает partial capture — можно списать меньше, остаток автоматически разблокируется. Это удобно, когда финальная стоимость оказалась ниже.
YooKassa
Аналогично в YooKassa:
$payment = $client->createPayment([ 'amount' => ['value' => '1500.00', 'currency' => 'RUB'], 'capture' => false, 'payment_method_data' => ['type' => 'bank_card'], 'confirmation' => ['type' => 'redirect', 'return_url' => $returnUrl], 'description' => 'Заказ #' . $order->id, ], uniqid('', true)); Списание:
$client->capturePayment( ['amount' => ['value' => '1500.00', 'currency' => 'RUB']], $order->yookassa_payment_id, uniqid('', true) ); Отмена холда
Если заказ отменён до списания — обязательно отменяем авторизацию, иначе деньги останутся заблокированными до истечения срока. В Stripe:
\Stripe\PaymentIntent::cancel($order->stripe_payment_intent_id, [ 'cancellation_reason' => 'abandoned', ]); В YooKassa — $client->cancelPayment(...).
Сравнение платежных систем
| Параметр | Stripe | YooKassa | CloudPayments |
|---|---|---|---|
| Способ включения | capture_method: manual |
capture: false |
Двухстадийный режим |
| Partial capture | Да (amount_to_capture) | Да | Да (с ограничениями) |
| Срок холда | 7–31 день | 7 дней | 7 дней |
| Отмена холда | Через API | Через API | Через API |
Типичные сценарии использования холдирования
| Сценарий | Действие | Результат |
|---|---|---|
| Отмена заказа до подтверждения | Автоматическая отмена холда через API | Средства разблокируются в течение 1–3 дней |
| Частичная отгрузка | Partial capture на сумму отгруженного товара | Остаток разблокируется автоматически |
| Услуга с почасовой оплатой | Авторизация максимальной суммы, списание по факту | Клиент не переплачивает |
| Истечение срока холда | Уведомление менеджера за 2 дня до истечения | Возможность продлить или списать |
Почему холдирование выгоднее одностадийной оплаты?
Одностадийная оплата — это немедленное списание. При отмене нужно делать возврат, который может занять 3–10 дней. При холдировании возврат не требуется — просто отмена авторизации. Это экономит время и деньги. По нашим данным, переход на двухстадийную оплату снижает операционные затраты на возвраты на 50% и увеличивает конверсию в повторные покупки на 10-15%.
Мониторинг истекающих холдов
Мы настраиваем фоновые задачи, которые уведомляют менеджеров за 1–2 дня до истечения срока — вы успеваете провести захват или продлить авторизацию. Для этого используются cron-скрипты или очереди (Redis/Beanstalkd). Гарантируем, что ни один холд не снимется незамеченным.
Что входит в работу
- Анализ бизнес-логики и выбор шлюза.
- Интеграция API платежной системы (настройка авторизации, захвата, отмены).
- Разработка обработчиков статусов и сценариев ошибок.
- Тестирование на песочнице и боевом контуре.
- Документация по использованию и поддержка при релизе.
Наш опыт и гарантии
Мы реализовали холдирование для 15+ проектов: маркетплейсы, доставка еды, фитнес-клубы. Опыт работы с платежными шлюзами — 5 лет. Гарантируем корректную обработку всех кейсов: отмена, частичный захват, истечение срока. Код проходит код-ревью и покрывается тестами. Ваши клиенты увидят прозрачный процесс оплаты без скрытых списаний.
Сроки и стоимость
Срок интеграции — от 3 до 10 рабочих дней в зависимости от сложности CMS и специфики шлюза. Стоимость рассчитывается индивидуально. Свяжитесь с нами для предварительной оценки вашего проекта. Получите консультацию по внедрению холдирования в вашем бизнесе.







