Перейти к содержанию

Холд, capture и зачет аванса

Двухстадийная оплата встречается в доставке, маркетплейсах и сценариях, где на момент блокировки денег точный состав заказа еще не известен. Типичный пример: покупатель оформил заказ на 1000, при сборке часть товаров отсутствует, финальная сумма стала 800.

Консервативная позиция

Холд следует рассматривать как расчет, если деньги покупателя заблокированы под оплату товаров или услуг. Практически это означает чек на аванс в момент hold, а не ожидание финального capture.

Базовый сценарий

Шаг Операция Сумма Тип оплаты Смысл
1 sell 1000 безналичная оплата Чек на полный аванс при hold.
2 sell_refund 200 возврат безнала Возврат выбывших товаров, если деньги реально возвращаются на карту.
3 sell 800 встречное предоставление Финальный чек с фактической корзиной и зачетом аванса.

В АТОЛ testonline для встречного предоставления в проверенных сценариях использовалось провайдерское значение типа оплаты. Прямое значение из ФФД 1.2 в АТОЛ v5 не принималось, поэтому сценарий нужно проверять на конкретном API провайдера.

Когда нужен другой сценарий

Условие Подход
Банк реально возвращает разницу на карту Частичный возврат + финальный чек с зачетом.
Разница остается на балансе/депозите Нужна отдельная методика учета баланса, без автоматического вывода о возврате.
Состав заказа полностью известен сразу Можно использовать обычный чек предоплаты или полного расчета по выбранной модели.
Исходный чек не был сформирован Рассматривать чек коррекции, а не обычный возврат.

Что проверено

Сценарии hold -> refund -> final sell прогонялись на АТОЛ testonline v4/v5. Для публикации как общего правила важно отделять нормативную позицию от поведения конкретного провайдера: API может принимать payload, но юридическая корректность сценария зависит от бизнес-события.