GH GambleHub

Цепочки выплат и приоритизация

1) Понятие цепочки выплат

Цепочка выплат (payout chain) — упорядоченный список рельсов/провайдеров, по которым оркестратор последовательно пытается выполнить выплату, пока не получит подтверждение отправки (`sent`) или зачисления (`settled`).
Цель — минимизировать время до денег при заданных ограничениях: KYC/AML, лимиты, ликвидность, стоимость, кат-оффы, гео/валюта, риск профиля.

Компоненты цепочки:
  • Primary rail (предпочтительный рельс для сегмента).
  • Fallbacks (альтернативы по SLA/стоимости/доступности).
  • Rules (условия переключений) и Constraints (жесткие запреты/лимиты).
  • Health signals (approve/settle/latency/ошибки) и Liquidity (балансы/префандинг).

2) Критерии приоритизации рельсов

1. SLA/скорость: мин/часы/банковские дни; наличие 24/7 (RTP/FPS/Pix) против D+N (ACH/SEPA).
2. Стоимость: фикс + %, FX-маржа, провайдерские сборы; внутренний cost-model.
3. Ликвидность: доступный остаток у провайдера/корсчета, требования префандинга.
4. Совместимость: валюта/страна получателя, формат реквизитов (IBAN/CLABE/Routing/Sort/PIX-ключ).
5. Лимиты: per-txn/daily/weekly у провайдера и у получателя (банк/кошелек).
6. Риск/KYC: уровень клиента, SoF/SoW, санкции/PEP, velocity, новый бенефициар.
7. Надежность: текущие метрики отказов, задержек, возвратов (reject/return).
8. Кат-оффы и календари: локальные праздники, cut-off банка; TZ отправителя/получателя.
9. Предпочтения продукта: VIP/аффилиаты/джекпоты — отдельные профили.

3) Матрица оркестрации (пример логики)

≤ €1k, EU, Full KYC → SEPA Instant → (фолбэк) SEPA SCT → (после cut-off) следующий BD.
≤ £250k, UK, 24/7, VIP → FPS (primary), при задержках > P95 — переключение на провайдера №2.
US ≤ $5k → RTP; если банк получателя не поддерживает — Same Day ACH; если окно закрыто — ACH Next Day.
BR → Pix (primary); при ризиках/лимитах банка → Pix с пониженным трешхолдом или e-wallet payout.
Карта (глобально) → Push-to-Card (OCT) для быстрых, но дорогих и лимитируемых отправок.
Кросс-бордер → локальный e-wallet (где есть) → иначе SWIFT с расчетом общих сборов и ETA.

Все численные пороги и списки — в конфигурации, а не в коде.

4) Архитектура оркестратора цепочек

Сервисы:
  • Decision Engine (policy) — применяет правила выбора рельса и фолбэков (декларативные политики, версионирование).
  • Payout Orchestrator — state machine: `requested → queued → processing → sent/failed → settled/returned`.
  • Liquidity/Treasury — балансы провайдеров, префандинг, авто-ребаланс, лимиты на провайдера/день.
  • Calendar/Scheduler — cut-off, праздники по странам/валютам, слоты отправки батчей.
  • Provider Adapter Layer — унификация API, маппинг статус-кодов, идемпотентность.
  • Reconciliation — авто-сверка реестров/выписок, загрузка UTR/ARN/Trace.
  • Compliance — KYC/AML/санкции/SoF/SoW и case-менеджмент.
Нефункциональные:
  • Идемпотентность (`requestId`), дедуп событий, DLQ/ретраи c backoff/jitter.
  • Observability: трассировка, события оркестрации, пер-провайдерные таймеры.

5) Фолбэк, деградация и «серые» сценарии

Time-based fallback: если `processing` превысил порог (например, 90-й перцентиль) — переключить на следующий рельс (с отменой/void первой попытки, если допустимо).
Health-based: при росте `reject/return` или падении approve — дерейтинг провайдера.
Liquidity-based: нехватка префандинга → временно скрыть быстрые рельсы, предложить медленный.
Risk-based: на высоком риске — запрет fast-rails, обязательный холд/step-up.
Grey window: вечера/праздники → автопланирование на ближайшее окно; честный ETA в UI.

6) Стоимость и рейтинг рельсов

Рассчитывайте эффективную стоимость:
  • `eff_cost = fixed_fee + percent_fee amount + FX_margin + failure_cost fail_prob + support_cost`.
Дальше вводите скоринговую функцию приоритизации:
  • `score = w_slaSLA + w_cost(1/eff_cost) + w_reliabilitysuccess_rate − w_riskrisk_score − w_opsoperational_load`.
  • Весá — конфигурируемые; сравнивайте по сегментам (гео/сумма/VIP).

7) Ликвидность и префандинг

Быстрые рельсы требуют предоплаты: держите минимумы на счетах провайдеров.
Auto-rebalance: правила свипов между кошельками/банками по порогам.
Circuit-breakers: при остатке < порога — автоматический дерейтинг метода в цепочке.
Cashbook: отделяйте бухгалтерию обещанных выплат от фактических дебетов; контроль кассового разрыва.

8) Планирование: батчи, кат-оффы и календари

Batching снижает стоимость SWIFT/ACH/SEPA SCT, но увеличивает латентность — регулируйте по сумме/приоритету.
Cut-off aware: если запрос пришел после cut-off — сразу показывайте ETA на следующий BD.
Holiday API: храните региональные праздники; для кросс-TZ показывайте локальное время получателя.

9) Риск и KYC в цепочках

Новый бенефициар/крупная сумма → cool-off + step-up, запрет fast-rails.
Пороговые суммы → требование SoF/SoW; до предоставления — «медленный» рельс.
Гео/санкции/PEP → жесткий deny, альтернативные маршруты отсутствуют.
Velocity: N выплат/день/неделя; превышение → downgrade рельса в цепочке.

10) Статусы и артефакты

Единая модель:
  • `requested → queued → processing → sent(UTR/ARN) → settled | failed | returned | on_hold | canceled`.
  • Храните: `payoutId`, `beneficiaryId`, `rail`, `provider`, `amount/currency`, `fees`, `ETA`, `UTR/ARN/Trace`, reason-codes, `attempts[]`.

11) Сверка и журналирование

Daily auto-recon: загрузка реестров, матчинг по `payoutId/UTR/amount/date`.
Full-recon: периодический сквозной контроль (реестры/выписки/GL).
Алерты: «успех без реестра», «aging processing», «double send», «молчание провайдера».

12) UX и коммуникация

Показ ETA по рельсу и причине выбора («быстрее/дешевле/после cut-off»).
Прозрачные статусы с UTR/ARN/Trace.
Для фолбэка — явное уведомление: «переключили на {rail} из-за задержки/ликвидности; новый ETA…».
Для VIP — опция «ускорить» (другой рельс/комиссия).
Для новых получателей — предупреждение о холде/step-up.

13) KPI и SLO

On-time rate (% выплат, пришедших до обещанного ETA).
Median/P95 time-to-settle по рельсам/провайдерам/гео.
Reject/Return rate и распределение причин.
Fallback rate и его влияние на SLA/стоимость.
Liquidity uptime (время доступности быстрых рельсов).
Cost per payout и доля FX.
Support load (тикеты/1k выплат) и NPS по выводам.

14) Чек-лист запуска цепочек

1. Каталог рельсов: страны/валюты/лимиты/комиссии/ETA/cut-off/праздники.
2. Policy Engine: декларативные правила приоритизации + explain-причины решения.
3. Здоровье провайдеров: метрики, health-пробы, автодерейтинг.
4. Treasury: префандинг, лимиты на провайдера, авто-ребаланс.
5. Идемпотентность и DLQ: защита от дублей/повторов, безопасные ретраи.
6. Webhooks/HMAC: верификация подписей, тайм-ауты, повтор доставки.
7. Recon: daily + full, алерты на рассинхроны.
8. UX: ETA, статусы, UTR/ARN, тексты причин фолбэка/холдов.
9. KYC/AML: step-up на новые бенефициары/крупные суммы, SoF/SoW процедуры.
10. Тест-набор: успех/отказ/возврат, фолбэк по времени/ликвидности, cut-off/праздники, деградация провайдера.

15) Мини-псевдокод решателя


rail_list = rank_by(score(amount, geo, kyc, risk, sla, cost, liquidity, health))
for rail in rail_list:
if violates_constraints(rail, geo, kyc, sanctions, limits): continue if not has_liquidity(rail): continue attempt = send_payout(rail)
if attempt. status in {SENT, SETTLED}: return success(attempt)
if is_retryable(attempt): continue return fail_with_reason(best_reason_collected)

Резюме

Цепочки выплат — это интеллектуальная маршрутизация между скоростью, ценой, риском и операционной готовностью. Храните правила и метрики в конфиге, решайте на основе скоринговой функции с учетом ликвидности и здоровья провайдеров, обеспечьте идемпотентность, фолбэк и честный ETA. Так вы снижаете стоимость и возвраты, удерживаете SLA и доверие пользователей — особенно в чувствительных сегментах вроде iGaming и кросс-бордера.

Contact

Свяжитесь с нами

Обращайтесь по любым вопросам или за поддержкой.Мы всегда готовы помочь!

Начать интеграцию

Email — обязателен. Telegram или WhatsApp — по желанию.

Ваше имя необязательно
Email необязательно
Тема необязательно
Сообщение необязательно
Telegram необязательно
@
Если укажете Telegram — мы ответим и там, в дополнение к Email.
WhatsApp необязательно
Формат: +код страны и номер (например, +380XXXXXXXXX).

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