Автопополнение
В панели администратора: Finance › Payment channels › Fees & limits (
/payments/fees), карточка Wallet & top-up (Billing › Policy), раздел Auto top-up (Stripe / PayPal). В портале клиента: Billing › Settings (/billing?settings=1).
Назначение
Когда баланс клиента опускается ниже нормы, NexCMP списывает средства через сохраненный способ оплаты и пополняет кошелек, предотвращая приостановку услуг. Фоновая задача проверяет клиентов каждые 5 минут.
Требования
| Параметр | Требование |
|---|---|
| Канал | Настроен Stripe и/или PayPal. |
| Сохраненный способ | У клиента сохранена карта или аккаунт PayPal. |
| Сайт | Основной сайт или сайт реселлера, платежи Stripe/PayPal которого принимает платформа. |
| Глобальный переключатель | Параметр Auto top-up enabled включен (по умолчанию включен). |
Принцип работы
После первого пополнения через Stripe или PayPal сервер сохраняет способ оплаты и включает автопополнение в режиме By usage — только если клиент никогда не настраивал автопополнение сам. Дополнительного флажка на экране депозита нет; сервер фиксирует время, IP-адрес и метод в качестве подтверждения. Если позже клиент отключит автопополнение, автоматически оно больше не включится.
| Режим | Триггер (баланс ниже ...) | Сумма списания |
|---|---|---|
| By usage (по умолчанию после первого пополнения) | стоимость следующих 24 часов работы сервисов (почасовые VM плюс предоплатные продления, наступающие через 24 часа), но не менее $5 | стоимость 24 часов, округленная вверх до целого доллара: не менее minimum top-up, не более максимального пополнения и дневного лимита |
| Fixed amount | порог, заданный клиентом (от $1 до $500) | сумма, заданная клиентом (от минимального пополнения до $1,000 и строго больше порога) |
Если запущенных сервисов нет, в режиме By usage списания не производятся.
При сравнении с порогом учитываются только реальные средства на балансе. Бонусные средства по промокодам хранятся отдельно и не учитываются (см. Promotions).
Комиссия обрабатывается как при обычном пополнении: если опция Customer pays top-up fee включена, с карты списывается сумма плюс комиссия, а на баланс поступает полная сумма; если выключена — на баланс зачисляется сумма за вычетом комиссии.
Настройка глобальных лимитов
Откройте Finance › Payment channels › Fees & limits (
/payments/fees).В Auto top-up (Stripe / PayPal) задайте:
Настройка По умолчанию Диапазон Значение Auto top-up enabled On on или off Значение Off немедленно останавливает все фоновые списания. Порог автопополнения по умолчанию (USD, резервный для фиксированного режима) $5.00 от $0 до $10,000 Используется только как начальный порог в фиксированном режиме. Макс. число автопополнений за 24 ч на клиента 3 от 1 до 50 Учитываются успешные попытки и попытки в обработке. Лимит суммы автопополнений за 24 ч на клиента (USD) $500.00 от $0 до $1,000,000 Общая сумма автосписаний за скользящие сутки. Нажмите Save Wallet & top-up.

Что видит клиент
- В портале клиент открывает Billing и нажимает Settings.
- На панели отображаются сохраненные методы, переключатель on/off, режим (By usage или Fixed amount), расчетный текущий расход, сумма следующего списания и блок Recent automatic top-ups.
- Переключение на Fixed amount позволяет указать порог и сумму. Выключение переключателя прекращает списания.

Проверка
- Под тестовым клиентом выполните первое пополнение с тестовой карты (Stripe). Откройте Billing › Settings: автопополнение включено.
- Запустите небольшую VM, чтобы появился расход, и снизьте баланс ниже порогового значения (например, через Customers › customer › Credit / debit).
- Примерно через 5 минут произойдет списание. В карточке клиента Overview › Payment в блоке Auto top-up history отобразится попытка со статусом Done, а клиенту отправится уведомление Top-up received.
Ограничения и примечания
- Одно списание за одно падение баланса. После списания задача ожидает, пока баланс снова не поднимется выше порогового значения или не истечет время ожидания: 1 час после успешного списания, 24 часа после незавершенного платежа, 30 минут после системной ошибки.
- Дневные лимиты. При достижении любого из дневных лимитов списание не выполняется, а в журнал записывается строка Daily limit reached (не чаще одного раза в 6 часов).
- Ошибки. Отклонение карты, истекший срок действия или недостаточность средств считаются ошибкой карты. Задача повторяет попытку через 1 час, затем через 6 часов, затем через 24 часа. После 3 последовательных ошибок карты автопополнение отключается, а клиент получает уведомление (Auto top-up failed). Платеж, требующий подтверждения клиентом (например, 3-D Secure), не считается ошибкой; клиенту предлагается его подтвердить.
- Без двойных списаний. Каждое списание блокируется атомарно при падении ниже порога и использует ключ идемпотентности на стороне шлюза.
- Удаление карты отключает автопополнение.
- Реселлеры. Если реселлер использует собственный платежный канал, клиент не может включить автопополнение (HTTP 403
feature_disabled).
Устранение неполадок
| Симптом | Причина | Решение |
|---|---|---|
| Клиент не может включить: "Top up once with a card or PayPal" | Нет сохраненного способа оплаты | Сначала выполните одно пополнение картой или через PayPal. |
Ошибка no_card (422) | Для выбранного шлюза нет сохраненного способа оплаты | Выберите шлюз, у которого он есть, или сохраните способ оплаты. |
Ошибка invalid_argument в сумме | Режим Fixed вне допустимого диапазона | Порог $1–$500, сумма между минимальным пополнением и $1,000, сумма превышает порог. |
| Списание не происходит, хотя баланс низкий | Глобальный переключатель выключен, нет запущенных сервисов в режиме By usage, достигнут дневной лимит или предыдущее списание все еще ожидает | Проверьте переключатель, историю и лимиты. |
| "N неудачных попыток подряд — автопополнение отключается после 3" | Постоянные сбои при оплате картой | Клиент заменяет карту, выполнив новое пополнение. |
| Статус Needs your confirmation | Банк требует 3-D Secure | Клиент один раз завершает обычное пополнение. |