WinUpGo
Axtarış
CASWINO
SKYSLOTS
BRAMA
TETHERPAY
777 FREE SPINS + 300%
Kriptovalyuta Casino Kriptovalyutalar Torrent Gear - universal torrent axtarış! Torrent Gear

Balans və pul kisələri: multi-wallet arxitekturası

1) Niyə multi-wallet və hansı məqsədlər

Bir qeyd «balans = sayı» iGaming reallığını əhatə etmir. Ayrı-ayrı cüzdanlar/alt hesablar lazımdır: real pul (cash), bonus vəsaitləri, veyjer-hovuz, frispins, comp-point, bəzən - valyuta cüzdanları (EUR/USD/BRL).

Memarlıq məqsədləri:
  • Pul dəqiqliyi (double-entry, auditoriya).
  • Debet siyasəti (məsələn, əvvəlcə bonus/vager, sonra cash).
  • Sürət (p95 API ≤ 250-400 ms, real vaxt dərəcəsi/quruluş).
  • Təhlükəsizlik və uyğunluq (KYC/AML, məsuliyyətli oyun limitləri, tənzimləyicilər).
  • Miqyaslı: pik → on minlərlə əməliyyat/san, milyardlarla postinq/ay.

2) Məlumat modeli: «Ledger + Subwallets»

Minimal varlıqlar

Account: oyunçu/marka/market.

Wallet: `{type: CASHBONUSWAGERFSPOINTS, currency, status}`.
LedgerEntry (двойная запись): `debit_account`, `credit_account`, `amount`, `currency`, `operation_id`, `category`, `created_at`.
Posting: atom biznes əməliyyat, birləşdirir 2 + LedgerEntry.
Hold/Reservation: bahis/çıxarış üçün vəsaitlərin müvəqqəti bloklanması.
Policy: Hesabdan çıxarma/qəbul etmə prioritet qaydaları.
FXRate: kurs/dəqiqlik/yuvarlaqlaşdırma qaydaları.
Limit: gündəlik/aylıq/məsuliyyətli oyun.

Cədvəllər nümunəsi (sadələşdirilmiş)

sql
-- Double-entry üçün balans hesabları (xidməti hesablar daxil olmaqla)
accounts(id, owner_user_id, type, currency, status,...)

-- Kabel (ikiqat qeyd, biznes əməliyyatına keçid)
ledger_entries(id, posting_id, debit_account_id, credit_account_id,        amount_minor, currency, category, operation_id, created_at)

-- Holdlər (ehtiyatlar)
holds(id, account_id, amount_minor, currency, reason, expires_at, state,    operation_id, created_at)

-- Silinmə siyasəti (prioritetlər)
spend_policies(id, market, wallet_priority jsonb, updated_at)

-- Cross-valyuta məzənnələri fx_rates (ccy_from, ccy_to, rate, precision, valid_from)

Qayda: həqiqət kabel jurnalında yaşayır ('ledger _ entries'). Cari balans - ya aqreqat (materiallaşdırılmış snapshot), ya da jurnaldan hesablanır (bahalı, lakin yeganə həqiqət).


3) Pul kisələrinin növləri və davranışları

Pul kisəsiNə üçünSiz əlavə edə bilərsinizYazmaq olarXüsusi qaydalar
CASHReal pulPSP/manual hesablamalar/qaytarmalarDərəcələr, alış-veriş, nəticəAML/KYC təsir; əməliyyatlar mühasibat uçotuna düşür
BONUSBonus pulPromo/kampaniyalarDərəcələr (qaydalara əsasən)Birbaşa çıxarılmır, veycer yerinə yetirildikdə Cash-ə çevrilir
WAGERDondurulmuş bonusların uçotuBonusdan avtomobilOyun provayderinin xeyrinə silinirSettle/ləğv edildikdə azad etmə qaydası
FS (FreeSpins)Fırlanma paketləriKampaniyalarSlotlarda ödəməPul ekvivalenti T&C ilə sabit
POINTSLoyallıq/KompüterlərAktivlikMağaza/StatuslarPul deyil; AML hesabatlarına daxil edilmir

4) Silinmə siyasəti və prioritet qaydası

Alqoritmi dəqiq rəsmiləşdirin: Nümunə (slots/casino):

1. Əvvəlcə WAGER-dən silin (əgər aktiv vager varsa).

2. Sonra BONUS bitməyib.

3. Qalıq - CASH.

Nümunə (idman):

1. İlk CASH (tənzimləyici/vergi).

2. Sonra WAGER tərcümə BONUS (freebet).

Postings-də "siyasət həlli 'ni atribut kimi saxlayın ki, sapport və audit" niyə belə yazıldığını "görsün.


5) Pul və əməliyyatların həyat dövrü

Depozit

1. 'POST/wallet/deposit' → pending qeydini (PSP inbox colback) yaradır.

2. PSP vebhuk (imzası HMAC, idempotentlik 'operation _ id') → credit CASH, category = 'DEPOSIT'.

3. «wallet _ updated» hadisəsini dərc edirik.

Bahis

1. 'POST/bet/place' → mənbə hesabında hold (ehtiyat) yaradır (CASH/BONUS/WAGER).

2. Bahis təsdiq edildikdə → köçürmə hold → debit mənbə, kredit xidməti «hesablaşma» hesabı provayder.

3. Ləğv edildikdə - release hold.

Settlement (nəticə)

Uduşlar: provayderin «hesablaşma» hesabının debit → kredit CASH və ya WAGER → BONUS → CASH siyasəti üzrə.

Uduzma: Provayderin «xərcləri» ilə qapadırıq → oyunçuya kredit vermədən.

1. KYC/AML yoxlama, məsuliyyətli oyun limitləri.

2. Hold məbləği.

3. PSP müvəffəqiyyəti → son debit CASH → kredit hesabı «ödəniş».

4. PSP → release hold.


6) İdempotentlik və exactly-once «mənasında»

Hər yerdə 'operation _ id' (UUID/təkmilləşdirilmiş ULID) unikal indeks ilə. Təkrar sorğu → keçmiş əməliyyat statusu.

PSP/oyun provayderi vebhukları: dedupe ilə inbox cədvəli 'event _ id + signature'. Emal - idempotent worker (Outbox-pattern).

Idempotency-Key HTTP müştəri üçün; TTL 24-72 saat ≥ saxlanılır.


7) Ehtiyatlar və holdlar (holds)

Hold - silinmə deyil, mövcud qalığın «dondurulması».

Qaydalar:
  • Holdun ömrü: seconds → minutes (bahis) və ya saat (çıxış).
  • Hold qismən və ya tamamilə ödənilə bilər (partial settle).
  • expire - avtomatik release və hadisə.
  • 'hold _ id' bet _ id/withdraw _ id 'əlaqəsini saxlayın.

8) Valyutalar, FX və yuvarlaqlaşdırma

Pul məbləğləri - minor vahidlərdə (cents), növü - bütöv.

Bank dairələri (round half to even) və ya T&C.

FX: 'CASH (EUR) ' CASH (USD) 'cüzdanları ayırmaq daha yaxşıdır. Ayrı bir əməliyyat kimi çevirmək:
  • 'debit EUR, credit FX_EURUSD' və' debit FX_EURUSD, credit USD '- audit üçün şəffafdır.
  • Mübahisə zamanı kursu avtomatlaşdırmaq qadağandır; bütün qaydalar - FX siyasətində.

9) Məsuliyyətli oyun və limitlər

Deposit/Bet/Loss/Session limitləri (gün/həftə/ay), «cooling-off», self-exclusion.

hold/debit əvvəl pre-check kimi həyata keçirilir.

Uğursuzluq qeydləri - ayrı bir audit-jurnalda, bir sapport və tənzimləyici üçün mövcuddur.


10) cüzdan ətrafında antifrod siqnalları

Cihaz klasterləri/ASN, tez-tez kiçik məbləğli depozitlər → böyük nəticələr, yuyucu nümunələr.

Velocity-limitləri BIN/ölkə/cihaz üzrə 'deposit/withdraw'.

Alıcılar üçün blok vərəqlər (cüzdan/IBAN), qatırların siyahısı.

Cüzdan hadisələri → feature store skoring (giriş/depozit/bahis).


11) Tutarlılıq və performans

Həqiqət vs cache

Həqiqət - ledger. API üçün «balans əldə edin» - materiallaşdırılmış snapshot ('user _ id + wallet _ type → balance_minor, version') saxlayın.

Yazmaq: DB → əlil cache əməliyyat.

«Ağır» floularda (canlı) 1-5 şort-TTL + çıxarılmadan/böyük bahisdən əvvəl həqiqətin məcburi yoxlanılması ilə uyğundur.

Skalasiya

'user _ id' (modul/sıralama) şərti, CASH vs BONUS altında ayrı-ayrı şard hovuzları.

Qaynar açarlar (VIP/botlar) - request coalescing by 'user _ id'.

Asinxron aqreqasiyalar (fonda 'posting' → «snapshot-updater» yığın).


12) API müqavilələri (psevdo)

Balans

http
GET /v1/wallets? types=CASH,BONUS
→ 200 {"wallets":[
{"type":"CASH","currency":"EUR","available":12050,"hold":500,"version":1942},  {"type":"BONUS","currency":"EUR","available":3000,"wager_req":15000}
]}

Bahis (hold ilə)

http
POST /v1/bets/place
{"bet_id":"b_123","amount":500,"currency":"EUR","source_policy":"casino_default", "idempotency_key":"ik_abc"}
→ 201 {"status":"HELD","hold_id":"h_789","expires_in":30}

Settlement

http
POST /v1/bets/settle
{"bet_id":"b_123","result":"WIN","payout":1250}
→ 200 {"status":"SETTLED","cash_delta":+1250}
http
POST /v1/withdrawals
{"withdraw_id":"w_456","amount":10000,"currency":"EUR","method":"sepa", "idempotency_key":"ik_def"}
→ 202 {"state":"PENDING","next_check_sec":2,"status_url":"/v1/withdrawals/w_456"}

13) Kabel nümunələri (double-entry)

Depozit €100 (PSP fee €1, kommis. hesab - ayrıca)


Debit: PSP_Settlements(EUR)   10000
Credit: User. CASH(EUR)         10000

Debit: User. CASH (EUR) 100 (fee köçürülür)
Credit: PSP_Fees(EUR)          100

BONUS-dan €5 dərəcəsi (WAGER-ə tərcümə)


Debit: User. BONUS(EUR)       500
Credit: User. WAGER (EUR) 500 («vager» -ə keçid)
Debit: User. WAGER(EUR)       500
Credit: Provider. Settlement (EUR) 500 (məzənnə silindi)

Qalib €12. 5 → CASH


Debit: Provider. Settlement(EUR)  1250
Credit: User. CASH(EUR)         1250

Hold debet (HOLD xidməti hesabı vasitəsilə satış)


Debit: User. CASH(EUR)       500
Credit: User. HOLD (EUR) 500 (hold tərəfindən yaradılmışdır)
-- ilə settle
Debit: User. HOLD(EUR)       500
Credit: Provider. Settlement(EUR)   500
-- ləğv edildikdə
Debit: User. HOLD(EUR)       500
Credit: User. CASH(EUR)         500

14) Audit, dəyişməzlik və uyğunluq

Jurnal üçün WORM/immutability (obyekt saxlama/WAL arxivi).

Giriş meta jurnalları: kim oxudu/dəyişdirdi, kim əl ilə düzəlişlər etdi (yalnız əsaslandırma ilə «adjustment-posting» vasitəsilə).

GDPR/tənzimləyicilər: əməliyyatların 5-10 il müddətində saxlanması (yurisdiksiya üzrə), oyunçu üçün hesablaşmaların şəffaflığı (debet tarixi/veycer).


15) Arıza müqaviməti və DR

Multi-AZ tələb olunur; cüzdan üçün DR-region: zonada sync-replikasiya, regionda async; PITR aktivdir.

Promote standby - yalnız çek vərəqi ilə əl ilə (split-brain istisna).

Bərpa həftəlik yoxlanılır (test-restore), nəzarət hesabatları üzrə məbləğin müqayisəsi.


16) Cüzdan müşahidə

SLI: `deposit_success_ratio`, `withdraw_success_ratio`, `bet_hold_latency_p95`, `settlement_latency_p95`.

Тех: `ledger_postings_rate`, `db_connections_saturation`, `queue_lag_seconds`, `hold_expired_rate`.

Alerts: bazarda PSP success düşməsi, 'hold _ expired _ rate' artımı, oyun provayderi rasinkron (təsdiq yoxdur> N min).


17) Test və keyfiyyətə nəzarət

PSP/oyun provayderləri ilə müqavilə testləri (vebhuk/imza).

Property-based pul testləri: debet məbləği = = hər Posting kreditlərin məbləği.

Fuzz/chaos: PSP/provayderin gecikmələri, vebhukların təkrarlanması, şəbəkə fappi.

Yük: burst dərəcələri (60-120 s), soaks (4-8 s), nəzarət 'queue _ lag' və p99.


18) Production-hazırlıq yoxlama siyahısı

  • Ledger ikiqat qeyd, 'operation _ id' ilə Posting vasitəsilə bütün əməliyyatlar.
  • Aydın spend-policies və prioritet qaydası (postinq ilə birlikdə).
  • TTL/partial settle/expiry ilə Holds, bet/withdraw ilə əlaqə.
  • Inbox/Outbox, HMAC-vebhuks, bütün sərhədləri idempotent.
  • Fərdi CASH/BONUS/WAGER/FS/POINTS cüzdanları; valyuta bölünməsi.
  • FX və kiçik vahidlərdə dairəvi; konvertasiya - ayrıca əməliyyat.
  • hold/debit qədər məsuliyyətli oyun limitləri; uğursuzluq auditi.
  • Oxu Cache (qısa TTL) + Kritik hərəkətlər əvvəl həqiqəti məcburi yoxlama.
  • PITR/backup/DR skriptləri; əl promote, müntəzəm DR təlimləri.
  • Dashboard/Alert SLI + texniki; WORM qeydləri və giriş meta jurnalları.
  • Yük/xaos testləri; PSP/provayderlərlə reconciliation hesabatları.

Xülasə

Multi-wallet arxitekturası «çox balans nömrələri» deyil, ikili qeydlər, xərcləmə siyasətləri, rezerv və audit və oyunçular üçün şəffaf iz olan bir maliyyə sistemidir. Həqiqəti jurnalda saxlayın, hold və idempotentlik istifadə edin, cüzdan və valyutaları bölüşün, reconciliation və DR. cüzdan UX üçün sürətli, pul üçün dəqiq və pik yüklər və tənzimləyici yoxlamalar üçün sabit olacaq.

× Oyunlarda axtarış
Axtarışı başlatmaq üçün ən azı 3 simvol daxil edin.