Skip to content

Как движутся деньги

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

Счёт мерчанта

У мерчанта может быть несколько счетов — как минимум по одному на валюту, а обычно ещё и отдельные под разные способы приёма. Счёт хранит три разные суммы, и путать их нельзя.

Баланс — деньги, доступные мерчанту.

Удержание (hold) — принятые деньги, которые пока недоступны. Это страховка: если по платежу придёт возврат или чарджбэк, списывать будет откуда. По истечении срока удержание снимается и сумма переходит в доступный баланс.

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

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

Что происходит при финализации

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

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

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

Комиссии

Комиссия настраивается на уровне мерчанта и счёта и может состоять из процента и фиксированной части. Отдельно существуют комиссии на выплаты и на конвертацию. Если валюта платежа не совпадает с валютой счёта, применяется курс, и его источник фиксируется — курсы приходят из внешних источников и логируются, чтобы потом можно было доказать, почему конвертация прошла именно так.

Обратное движение

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

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

Внутренняя база знаний. Нашли неточность — поправьте страницу или заведите вопрос в разделе «Открытые вопросы».