Ödənişlərin avtomatlaşdırılması və limitlərə nəzarət
Məqalənin tam mətni
1) Ödənişləri niyə avtomatlaşdırmaq lazımdır
Sürət və proqnozlaşdırma: oyunçular sürətli və şəffaf cashouts gözləyir.
Risk və uyğunluq: RG/AML/sanksiyalar, velocity və marka/oyunçu/kanal limitləri.
Miqyası: turnirlərdən və «isti» efirlərdən sonra zirvələr - on minlərlə müraciət.
Xərclər: PSP/hesablar/şəbəkələr üzrə komissiyaların və xəzinə qalıqlarının optimallaşdırılması.
Əsas məqsəd hər hansı bir nasazlıq zamanı birdəfəlik, yoxlanıla bilən və idarə edilə bilən ödənişdir.
2) Payout nüvəsinin rol modeli
Payout Orchestrator - status maşın və dastanlar: müraciətləri qəbul edir, limitləri və qaydaları yoxlayır, marşrutlaşdırır, retrait, nəticəni qeyd edir.
Risk & Compliance - RG/AML/KYT, sank-skrininq, «dörd göz».
Treasury - kanallar üzrə ehtiyatlar, qalıqların idarə edilməsi, hedcinq.
Wallet/Ledger - balans həqiqətinin mənbəyi; debet/kompensasiya yalnız onun vasitəsilə.
PSP/Bank/Kastodi/Kripto-prosessor - son icraçı.
3) Standart flow ödəniş (state machine)
1. request → Ön/CRM/API müraciət.
2. precheck → RG/AML: özünü istisna/itki/vaxt limitləri, sank-list/RER, KYT (kripto/cüzdan üçün), KYC-status.
3. limits → velocity və limitlərin yoxlanılması: per player/brand/region/method (gündəlik/həftəlik/aylıq).
4. deduct → idempotent 'wallet. debit` (или `hold`→`commit`) с `X-Idempotency-Key`.
5. route → kanal/merchant/şəbəkə seçimi (qaydalar + qiymət + dönüşüm + mövcudluq).
6. submit → PSP/bank/kastodiyə göndərmə (mTLS + imzalar).
7. await_settlement → vebhuk və ya pull yoxlama ilə təsdiq ('settled '/' failed') gözləmək.
8. notify → şin/BI hadisələri, oyunçu - status/ETA.
9. reconcile → Ledger ilə PSP/bank/zəncir hesabatlarının müqayisəsi.
10. compensate → ilə 'failed' - Ledger-ə qayıdış (idempotent), kanalın yenidən seçilməsi, eskalasiya.
İnvariantlar:- Balans yalnız Ledger vasitəsilə dəyişir.
- «İtirilmiş/dubl edilmiş ödənişlər» = 0 - idempotentlik və dedupla təmin edilir.
- Bütün keçidlər - atomik olaraq ('trace _ id', 'payout _ id').
4) Limitlər və velocity: düzgün hesab necə
4. 1 Limit növləri
Tənzimləyici/RG: gündəlik/həftəlik çıxış limitləri, özünü istisna, soyutma.
Frod/velocity: əməliyyatların miqdarı/miqdarı, müraciətlərin tezliyi, rekvizitlərin dəyişdirilməsi, cihaz/ASN/geo.
Kassa: kanal/merchant/hesab/şəbəkə limitləri, xəzinədarlıq qalıqları.
Əməliyyat otaqları: «əl revyu» və «dörd göz» eşikləri (VIP/böyük məbləğlər).
4. 2 Anbar və Satış
Paylanmış sayğaclar (Redis + TTL + Lua/atomic) 1h/24h/7d pəncərələrinə.
Qabaqcıl qaydalar üçün OLAP proyeksiyaları (sürüşmə pəncərələri, nümunələr).
Sayğacların idempotentliyi: yalnız 'submitted' -ə müraciət edildikdə artım.
Explainability: Hər bir imtina üçün - səbəb kodu və «hansı limit işlədi».
5) Kanalların orkestri (PSP/banklar/kriptolar)
5. 1 Marşrutlaşdırma
Geo, valyuta, məbləğ, sürət, dəyər, risk, əlçatanlıq, SLO düşərgələri qaydaları.
Kaskadlar: PSP1 → PSP2 uğursuz olduqda; kriptovalyutası üçün - A → B şəbəkəsi
Dönüşüm və qiymət optimallaşdırılması üçün A/B və bandit yanaşma.
5. 2 Kanal xüsusiyyətləri
Kartlar/banklar: status maşınları 'submitted → processing → settled', sxemlər üzrə geri qaytarmalar/geri qaytarmalar (SEPA/SWIFT).
E-wallets: ani, lakin ciddi limitlər və sanq-ekran.
Kriptovalyutası: on-chain final (N təsdiq), ünvan KYT, VASP arasında Travel Rule, ağ ünvan siyahıları, MRS/multisig, qaz idarəetmə.
6) Təhlükəsizlik və uyğunluq
mTLS + OAuth2/bütün S2S imzalar, per brand/region açarları, tokenlər qısamüddətli və kanala bağlıdır.
KUS/CUT/' submit '-ə qədər sank-skrininq; kriptovalyutası üçün - risk-skor/tx.
RBAC/ABAC və «dörd göz» əl hərəkətləri/eşik məbləğləri.
WORM-audit: Limitlərin/qaydaların/hədlərin və əl müdaxilələrinin dəyişməz jurnalları.
PII/rezidentlik: məlumatlar və qeydlər - regionlar üzrə, şifrələmə at-rest/in-transit, RLS.
7) İdempotentlik və dastanlar (pul yolları)
Hər bir qeyd əməliyyatı 'X-Idempotency-Key' daşıyır; təkrar → eyni nəticə (köhnə body ilə 200).
Сага `deduct→submit→settled`:- 'submit' düşsə - kompensasiya ('wallet. release/credit`).
- 'settled' gəlməyibsə - retrai/təkrar sorğu, dedup 'payout _ id'.
- Heç bir manual balans düzəlişləri - yalnız kompensasiya hadisələri.
8) API müqavilələri (istinad fraqmentləri)
Ərizə yarat
POST /v1/payouts
Headers: X-Idempotency-Key: po_001, X-Trace-Id: tr_a1b2
{
"player_id":"p_123",  "amount":{"amount":250. 00,"currency":"EUR"},  "method":"sepa",  "destination":{"iban":"DE89..."},  "metadata":{"brand_id":"A","region":"EU"}
}
→ 202 {"payout_id":"po_001","status":"REQUESTED","eta":"2025-10-23T18:00:00Z"}PSP/bank/kastodi veb-hook
POST /webhooks/payouts
X-Signature: sha256=...
{
"event_id":"uuid",  "payout_id":"po_001",  "psp_ref":"psp_77",  "status":"SETTLED",  "occurred_at":"2025-10-23T16:21:05Z"
}Soyunma/kompensasiya
POST /v1/payouts/po_001/compensate
Headers: X-Idempotency-Key: po_001_comp
→ 200 {"status":"COMPENSATED"}9) Müşahidə və SLO
SLO (göstəricilər):- `payout. request → submit 'p95 ≤ 120-300 ms (daxili yol),' submit → settled 'p95: kartlar/evallet ≤ 5-30 dəq, SEPA ≤ T + 0/T + 1 bankları, kripto ≤ 10 dəq (şəbəkə vasitəsilə), «itirilmiş/dublyaj ödənişlər» = 0.
- latency p50/p95/p99 mərhələlər üzrə, error-rate (biznes/4xx/5xx), retry storms, queue/DLQ lag, kanallar üzrə success-rate, cost per success, PSP/bank kodları üzrə uğursuzluq, limit-işləmə (RG/AML/velocity).
- Trace: OpenTelemetry (edge → limits → wallet → router → PSP), 'trace _ id' vebhuklarda.
- Alertlər: breach SLO, artım 'IDEMPOTENCY _ MISMATCH', sıçrayış 'missing _ platform', xüsusi geo/kanalda success-rate düşməsi.
10) Xəzinədarlıq və qalıqlar
Kanallar/satıcılar/şəbəkələr üzrə ehtiyatlar, avtomatik rebalans.
Hədd siyasəti: hesablarda/cüzdanlarda minimum və maksimum, maliyyələşdirilmədikdə «yeni ödənişlərin dayandırılması».
Valyuta/kripto hedcinq, komissiya və məzənnə fərqlərinin uçotu.
Maliyyə vitrinləri: plan-fakt, kanal vasitəsilə geri çəkilmə dəyəri, «asılmış» ödənişlərin aging.
11) Reconciliation (müqayisə)
PSP/bankların/kastodilərin/zəncirlərin gündəlik hesabatları → normallaşma → «payouts» reyestri və Ledger qeydləri ilə müqayisə.
Категории: `match`, `timing`, `missing_psp`, `missing_platform`, `amount_mismatch`.
'timing' üçün avto qaydalar, 'mismatch' üçün biletlər, eşiklər üzrə alertlər.
Kripto üçün - 'txid/network/confirmations' ilə müqayisə.
12) Xaos təcrübələri və DR
PSP/bankın düşməsi: alternativ kaskad, kanal üçün 'pause new payouts' rejimi.
Webhook gecikməsi: dövri pull statusları, 'event _ id' dedupu.
Regional outage: aktiv-passiv/aktiv-aktiv (RPO ≤ 5 dəq, RTO ≤ 30 dəq).
Qaz-tikanlar/reorglar (kriptovalyutalar): dinamik fee, əlavə təsdiq, gecikmiş aşağı prioritet ödənişlər.
13) Çek vərəqləri
Platforma/operator
- Idempotentlik 'wallet. debit/credit/compensate`, `X-Idempotency-Key` везде.
- Velocity/RG/AML/KYT/' submit '.
- Routing və kanal kaskadları, açarları/sertifikatları per brand/region.
- WORM-audit limitləri/qaydaları/əl hərəkətləri, «dörd göz» astanalarında.
- SLO dashboard və alert, OpenTelemetry, DLQ vebhuk üçün.
- T + 1 gündəlik yoxlama, mismatch vitrinləri, eskalasiya.
- Xəzinə eşikləri və avto-rebalans; stop moda ('no new payouts').
- DR/xaoc-təlimlər: PSP/bank/şəbəkənin düşməsi, gecikmələr/vebhook ikiqat.
Provayder/PSP/Bank/Kastodi
- Imzalanmış vebhuks (HMAC/EdDSA) + timestamp/nonce, 2xx-ə qədər təkrar çatdırılma zəmanəti.
- Normallaşdırılmış uğursuzluq səbəbləri kodları, T + 1 hesabatları, faylların bütövlüyü (hash/PGP).
- Pull-yoxlamalar üçün mövcud status API.
14) Anti-nümunələr (qırmızı bayraqlar)
Ledger-də aydın əmr olmadan webhuk üzrə debet/kredit balans.
İdempotentliyin olmaması → ikiqat silinmə/kompensasiya.
Bir neçə marka/bölgə üçün ümumi açarlar/sertifikatlar.
Velocity limitləri təsdiqlənmiş göndərişlərə görə deyil, «müraciətə görə» hesab olunur.
DB-də ödəniş/balans statuslarının əl ilə düzəldilməsi.
Webhook üçün DLQ/Dedup yoxdur → «yapışmış» statuslar.
T + 1 yoxlama; əl Excel uyğun.
CUT/ağ siyahılar/çox faktorlu təsdiqlər olmadan kriptovalyutalar.
15) Yekun
Ödənişlərin avtomatlaşdırılması pul və risklərin orkestrləşdirilməsidir: sərt limitlər və velocity, idempotent pul komandaları, kanalların ağlabatan marşrutlaşdırılması, «default» uyğunluğu, müşahidə və gündəlik yoxlama. Belə payout-konveyer tez və bir dəfə ödəyir, uğursuzluqlara və zirvələrə davamlıdır, oyunçu, tənzimləyici və maliyyə hesabatı üçün şəffafdır və eyni zamanda xəzinədarlığın dəyəri və risklərinə nəzarət edir.
