GH GambleHub

Multivalyuta kitabları və kursları

1) «Multivalyuta kitabları» nədir

Kitab (ledger) - eyni vaxtda bir neçə valyutada həyata keçirilən ikiqat yazıya malik tranzaksiya ledceri:
  • Wallet kitab: oyunçu hesabı (oyun/valyuta).
  • Settlement kitab: PSP/ekvayer ilə hesablaşmalar (settlement valyutası).
  • Treasury-kitab: bank hesabları, konvertasiya, hedcinq əməliyyatları.
  • Hesabat kitabı: hesabat valyutasında (məsələn, EUR) məhsul metriklərinin retrospektiv yenidən qiymətləndirilməsi olmadan.

Hər bir kitab əməliyyatın valyutasını, təqdimat valyutasını və tanınma anındakı məzənnəni qeyd edir.

2) Valyuta iyerarxiyası və siyasətçilər

1. Base/Reporting Currency - vahid hesabat valyutası (məsələn, EUR).
2. Wallet Currencies - pul kisələrinin valyutaları (USD/EUR/TRY/UAH və s.).
3. Settlement Currencies - PSP nə göndərir (məsələn, USD).
4. Bank Currencies - ticarət/xəzinə hesabının valyutası.

Qaydalar:
  • Məhsul metrikləri (ND/NGR/ARPPU) - hadisənin tarixi kursu ilə (adətən 'settled _ at').
  • Maliyyə/treyderlər - əlavə olaraq 'funded _ at' və 'payout _ at' -da məzənnə təyin edirlər.
  • Ərzaq vitrinlərində «gizli» yenidən qiymətləndirmə qadağandır.

3) Kurslar və onların mənbələri

Intraday reference (tick/minute): Refinitiv/ECB/banklar - hadisələrin normallaşdırılması üçün.
EOD (günün sonu): qalıqların yenidən qiymətləndirilməsi üçün (unrealized FX).
Effective FX: PSP/bank faylından (çevirmə faktı).
Triangulation: birbaşa kotirovka olmadıqda lövbər (EUR və ya USD) vasitəsilə.
Quote policy: `mid` либо `bid/ask` → `mid ± spread_bps`. Spread ayrıca saxlanılır.

Saxlayın: 'fx _ source', 'fx _ pair', 'fx _ rate', 'fx _ timestamp', 'quote _ type', 'spread _ bps' və triangulation marşrutu.

4) Tanıma nöqtələri və kurs təbəqələri

'authorize _ at' - kurs sabit deyil (heç bir tanınma tutulmadan).
'captured/settled _ at' - məhsul təbəqəsi və ND üçün tarixi kurs.
'funded _ at' - banka daxil olma kursu (FI/treasury üçün realized FX).
'payout _ at' - oyunçuya ödəmə kursu.
'eod' - qalıqların yenidən qiymətləndirilməsi üçün günün sonu kursu (unrealized FX).

5) Dəqiqlik, yuvarlaqlaşdırma, minimum vahidlər

Pul - valyuta kataloqunda bütün minor units (int) + 'scale'.
Kurslar - vergüldən sonra ən azı 8-10 işarə.
Yuvarlaqlaşdırma: hesabat üçün bank (half-even); UI - yerli qaydalar.
Ayrı sahələrə rəhbərlik edin: 'amount _ original', 'amount _ wallet', 'amount _ reporting', 'amount _ effective'.

6) Qoşa giriş və GL kartı (sadələşdirilmiş)

Kabel nümunələri:

6. 1. DEPOSIT_CAPTURED (GBP, hesabat - EUR)

Dt: AR: PSP (GBP)

Cc: Player Balance (cüzdan üzrə GBP/EUR)

Paralel olaraq 'fx _ rate _ settle (GBP → EUR)' və 'amount _ reporting' yazılır.

6. 2. FUNDING_RECEIVED (bank üçün USD)

Dt: Bank USD

Qt: AR: PSP GBP (ekvivalent bağlayın; fərq → Realized FX).

6. 3. WITHDRAWAL_PAID (TRY)

Дт: Liability: Player (TRY)

Kt: Bank TRY (və ya Bank EUR + konvertasiya; fərq - realized FX).

7) Məlumat arxitekturası (minimum model)


ref. currencies (
code PK, scale, symbol, is_crypto, is_active
)

ref. fx_rates_intraday (
pair PK, ts PK, rate, quote_type, source, spread_bps, triangulation_meta
)

ref. fx_rates_eod (
pair PK, date PK, rate, source
)

ledger. entries (
entry_id PK, book, -- WALLET      SETTLEMENT      TREASURY      REPORTING debit_account, credit_account,
amount_original, currency_original,
amount_reporting, reporting_currency,
fx_rate_at_settle, fx_source, fx_pair, fx_timestamp,
event_type, event_id, user_id, provider, method,
occurred_at, created_at, meta
)

treasury. funding_receipts (
funding_id PK, provider, bank_account,
currency, amount, fx_to_reporting, amount_reporting,
received_at, value_date, meta
)

treasury. balances (
date PK, account PK, currency PK, amount
)

dw. transactions_flat (
tx_id PK, user_id, provider, method, type, status,
amount_original, currency_original,
amount_reporting, reporting_currency, fx_rate_at_settle,
settled_at, funded_at, conversion_owner, meta
)

8) Normallaşdırma axını (ETL/ELT)

1. Ingest xammal → PSP statuslarının normallaşdırılması.
2. 'fx _ rates _ intraday' -dən 'settled _ at' -a tarixi kurs təyin etmək.
3. İstədiyiniz kitab (wallet/settlement) qoşa kabel yazmaq.
4. Ayrı idxal funding və effective FX.
5. Gündəlik reval qalıqları 'fx _ rates _ eod' (treasury-kitab).
6. Vitrinlərin (ND/NGR/LTV) retro yenidən qiymətləndirilmədən qurulması.

9) Yoxlama və sabitlik

Tx → File: bütün captured/settled PSP faylına daxil edilmişdir (məbləğlər/valyutalar/tarixlər üzrə).
File → Tx: fayldakı hər şey kitablarda/tellərdə əks olunur.
FX Reference vs Effective: saymaq 'slippage _ bps'; qapıdan çıxmaq üçün alert.
Triangulation yoxlama: 'A → B → C' ≈ 'A → C' bps tolerans daxilində.
İdempotentlik: 'event _ id' və 'idempotency _ key' - dubl müdafiəsi.

10) Tez-tez ssenarilər və onları necə aparmaq olar

Multi-wallet: Oyunçunun cüzdanı depozitdən fərqli valyutada ola bilər - məzənnənizlə daxili konvertasiya edin ('conversion _ owner =' MERCHANT 'siyasəti).
PSP-conversion: PSP marjasını təhlil etmək üçün 'fx _ effective', 'fx _ reference' və 'spread _ bps' saxlayın.
Kriptovalyutası: VWAP pəncərəsi üzrə qiymətləndirmə; Stablesdə funding - ikinci FX təbəqəsi.
Cross-wallet transfer: platforma daxilində hərəkət - FX gəliri olmadan, sadəcə kitablar arasında transfer.

11) SQL şablonları

11. 1. Tarixi məzənnə üzrə hesabat valyutasında məbləğin normallaşdırılması

sql
SELECT t. tx_id,
t. amount_original,
t. currency_original,
r. rate AS fx_rate_at_settle,
ROUND(t. amount_original r. rate, rep. scale) AS amount_reporting
FROM raw. transactions t
JOIN ref. fx_rates_intraday r
ON r. pair = CONCAT(t. currency_original, '/',:reporting_ccy)
AND r. ts = (
SELECT MAX(ts) FROM ref. fx_rates_intraday
WHERE pair = r. pair AND ts <= t. settled_at
)
JOIN ref. currencies rep ON rep. code =:reporting_ccy
WHERE t. settled_at BETWEEN:from AND:to;

11. 2. PSP yayılmasının ölçülməsi (effective vs reference)

sql
SELECT provider, method, DATE(settled_at) AS d,
SUM(original_amount fx_reference_rate) AS ref_in_reporting,
SUM(settlement_amount_in_reporting)   AS eff_in_reporting,
10000 (SUM(settlement_amount_in_reporting) /
NULLIF(SUM(original_amount fx_reference_rate),0) - 1) AS spread_bps
FROM dw. fx_settlement_view
WHERE settled_at BETWEEN:from AND:to
GROUP BY 1,2,3;

11. 3. EOD-qalıqların yenidən qiymətləndirilməsi (unrealized FX)

sql
INSERT INTO treasury. fx_reval_ledger (date, currency, position_amount, rate_eod, amount_reporting_eod, reval_diff, type)
SELECT
:eod AS date, b. currency, b. amount,
e. rate AS rate_eod,
b. amount e. rate AS amount_reporting_eod,
b. amount (e. rate - COALESCE(l. rate_eod, e. rate)) AS reval_diff,
'UNREALIZED'
FROM treasury. balances b
JOIN ref. fx_rates_eod e
ON e. pair = CONCAT(b. currency, '/',:reporting_ccy) AND e. date =:eod
LEFT JOIN LATERAL (
SELECT rate_eod FROM treasury. fx_reval_ledger
WHERE currency=b. currency AND date=:eod - INTERVAL '1 day'
ORDER BY date DESC LIMIT 1
) l ON TRUE;

12) KPI və daşbordlar

PSP/metod/MID ilə FX Slippage (bps).
Realized FX P&L (funding/payout) и Unrealized FX (EOD/EOM).
Açıq FX Mövqe valyuta vs limitləri siyasət.
Hit-rate «vaxtında alınan» kursları (stale-rates hadisələr).
Pay PSP-conversion vs Merchant-conversion və onun TCO.
Dəyirmanların dəqiqliyi (məbləğlərin sapmaları ≥ 1 minor unit - bayraq).

13) Alertlər və eşiklər

Stale rate: hadisə zamanı heç bir kurs → fallback-mənbə/retray.
Triangulation mismatch: uyğunsuzluq> X bps.
Spread spike: 'spread _ bps' major/major həddindən yuxarıda.
Open position breach: hər hansı bir valyuta limitini aşmaq.
Reval shock: gündəlik yenidən qiymətləndirmə <− X σ və ya> + X σ - review.

14) Best practices (qısa)

1. Məhsul qatını (tarixi FX) və FI/treasury (maliyyə/payout/reval) ciddi şəkildə ayırın.
2. Minor units istifadə edin və kursları yüksək dəqiqliklə saxlayın.
3. conversion_owner loqotip və PSP marjasını ölçün (effective vs reference).
4. Hadisələrin idempotentliyini və ikitərəfli yoxlamanı həyata keçirin (Tx → File və File → Tx).
5. Triangulation üçün anchor valyuta saxlayın və bps-də uyğunsuzluqları doğrulayın.
6. Qalıqları ayrı bir GL ilə EOD proseduru ilə yenidən qiymətləndirin.
7. Settle/funding kursları təyin edərkən DST/taymzonları nəzərə alın.
8. Mütəmadi olaraq yuvarlaqlaşdırma test (property-based tests sərhədləri scale).

15) Giriş çek siyahısı

  • Reporting currency və tarixi FX siyasəti müəyyən edilmişdir.
  • Kurs mənbələri: intraday + EOD, fallback və SLA yeniləmələri.
  • Modellər 'ledger. entries`, `fx_rates_`, `funding_receipts`, `balances`, витрина `transactions_flat`.
  • Triangulation mexanizmi və log marşrutu.
  • Алерты: stale-rates, spread spike, triangulation mismatch, open position breach.
  • KPI daşbordları və PSP/Bank ilə yoxlama aktları.
  • realized/unrealized FX üçün reval prosedurları və ayrı GL.
  • Yuvarlaqlaşdırma və saxlama dəqiqliyi test dəstləri.

Xülasə

Multi-valyuta kitabları təbəqələrin bölünməsi intizamıdır: məhsul üçün tarixi FX, trejeri üçün faktiki, balans üçün EOD yenidən qiymətləndirilməsi. Şəffaf məzənnə mənbələri, dəqiq məlumat modeli, ikiqat qeyd və avtomatlaşdırılmış müqayisə ilə siz analitikadan «valyuta səs-küyünü» aradan qaldıracaq, audit təmin edəcək və qlobal monetizasiya zamanı idarə olunan FX riskini əldə edəcəksiniz.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.