Köp walýutaly kitaplar we kurslar
1) "Multivalýut kitaplar" näme
Kitap (ledger) - bir wagtyň özünde birnäçe walýutada geçirilýän goşa ýazgyly (iki taraplaýyn geçiriş) geleşik ledjeri:- Wallet-kitap: oýunçynyň hasaby (oýun/walýuta).
- Settlement-kitap: PSP/ekwaýer bilen hasaplaşyklar (settlementiň walýutasy).
- Treasury-kitap: bank hasaplary, konwersiýalar, hej-geleşikler.
- Hasabat kitaby: azyk ölçeglerine retrospektiv gaýtadan baha bermezden hasabat pulundaky (mysal üçin, EUR) jemleme.
Her kitap ykrar edilen pursadynda amalyň walýutasyny, tabşyrmagyň walýutasyny we hümmetini bellär.
2) Walýuta iýerarhiýasy we syýasatçylar
1. Base/Reporting Currency - ýeke-täk hasabat walýutasy (mysal üçin, EUR).
2. Wallet Currencies - gapjyklaryň walýutalary (USD/EUR/TRY/UAH we ş.m.).
3. Settlement Currencies - PSP tarapyndan iberilýän zat (mysal üçin, USD).
4. Bank Currencies - söwda/gazna hasabynyň walýutasy.
- Önüm metrikleri (ND/NGR/ARPPU) - wakanyň taryhy hümmeti boýunça (adatça 'settled _ at').
- Maliýe/buhgalterler - 'funded _ at' we 'payout _ at' -daky hümmeti goşmaça belleýärler.
- Azyk penjirelerinde "gizlin" gaýtadan bahalandyrmak gadagandyr.
3) Kurslar we olaryň çeşmeleri
Intraday reference (tick/minute): Refinitiv/ECB/banklar - wakalary kadalaşdyrmak üçin.
EOD (günüň ahyry): galyndylary gaýtadan bahalandyrmak üçin (unrealized FX).
Effective FX: PSP/bank faýlyndan (konwersiýa hakykaty).
Triangulation: gönüden-göni sitata ýok bolsa, labyryň üsti bilen (EUR ýa-da USD).
Quote policy: `mid` либо `bid/ask` → `mid ± spread_bps`. Spred aýratyn saklanylýar.
Saklaň: 'fx _ source', 'fx _ pair', 'fx _ rate', 'fx _ timestamp', 'quote _ type', 'spread _ bps', we triangulation ugry.
4) Ykrar ediş nokatlary we kurslaryň gatlaklary
'authorize _ at' - kursy düzetmeýäris (tutulmazdan ykrar edilmez).
'captured/settled _ at' - önüm gatlagy we ND üçin taryhy kurs.
'funded _ at' - banka girmegiň hümmeti (FI/treasury üçin realized FX).
'payout _ at' - oýunçy üçin töleg kursy.
'eod' - galyndylary gaýtadan bahalandyrmak üçin günüň gutarýan hümmeti (unrealized FX).
5) Takyklyk, tegelek, iň az birlikler
Pul - walýuta gollanmasynda tutuş minor units (int) + 'scale'.
Kurslar - vergülden soň azyndan 8-10 belgi.
Tegeleklemek: hasabat bermek üçin bank (half-even); UI - ýerli düzgünler.
Bölmek: 'amount _ original', 'amount _ wallet', 'amount _ reporting', 'amount _ effective'.
6) Goşa ýazgy we GL-kart (ýönekeýleşdirilen)
Simleriň mysallary:6. 1. DEPOSIT_CAPTURED (GBP, hasabat - EUR)
Dt: AR: PSP (GBP)
Kt: Player Balance (gapjyk boýunça GBP/EUR)
Şol bir wagtyň özünde 'fx _ rate _ settle (GBP → EUR)' we 'amount _ reporting' belleýäris.
6. 2. FUNDING_RECEIVED (banka USD)
Dt: Bank USD
Kt: AR: PSP GBP (ekwiwalent boýunça ýapýarys; tapawut → Realized FX).
6. 3. WITHDRAWAL_PAID (TRY)
Дт: Liability: Player (TRY)
Kt: Bank TRY (ýa-da Bank EUR + konwersiýa; tapawut - realized FX).
7) Maglumatlaryň arhitekturasy (iň pes 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) Kadalaşma akymy (ETL/ELT)
1. Çig mal ingest → PSP statusynyň kadalaşmagy.
2. 'settled _ at' -dan 'fx _ rates _ intraday' -a taryhy kursy bellemek.
3. Goşa geçirişi islenýän kitabyna ýazmak (wallet/settlement).
4. Aýry-aýry funding we effective FX importy.
5. "fx _ rates _ eod" (treasury-kitap) boýunça galyndylaryň gündelik reval.
6. Penjireleri (ND/NGR/LTV) retro-gaýtadan bahalandyrmazdan gurmak.
9) Deňeşdirme we yzygiderlilik
Tx → File: ähli captured/settled PSP faýlyna girdi (jemi/walýuta/seneler boýunça).
File → Tx: faýldaky hemme zat kitaplarda/geçirişlerde görkezilýär.
FX Reference vs Effective: 'slippage _ bps' hasaplamak; bosagadan çykmak üçin alert.
Triangulation barlagy: 'A → B → C' ≈ 'A → C' bps toleransynyň içinde.
Idempotentlik: 'event _ id' we 'idempotency _ key' - dubllardan goramak.
10) Ýygy-ýygydan ssenariýalar we olary nädip alyp barmaly
Multi-wallet: oýunçynyň gapjygy goýumdan başga walýutada bolup biler - nyrhyňyz boýunça içerki konwersiýa ediň ('conversion _ owner =' MERCHANT 'syýasaty).
PSP-conversion: PSP marjasyny seljermek üçin 'fx _ effective', 'fx _ reference' we 'spread _ bps' saklaň.
Kripto: VWAP penjiresi boýunça baha bermek; stabllarda funding - FX-iň ikinji gatlagy.
Cross-wallet transfer: platformanyň içinde hereket etmek - FX girdejisi bolmazdan, diňe kitaplaryň arasynda geçirmek.
11) SQL şablonlary
11. 1. Taryhy hümmet boýunça hasabat puluna mukdaryň kadalaşmagy
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 (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-galyndylary gaýtadan bahalandyrmak (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 we daşbordlar
PSP/MID usuly boýunça FX Slippage (bps).
Realized FX P&L (funding/payout) и Unrealized FX (EOD/EOM).
Walýutalar boýunça açyk FX Pozisiýasy vs syýasat çäkleri.
Hit-rate "wagtynda alnan" kurslar (stale-rates hadysalar).
PSP-conversion vs Merchant-conversion we onuň TCO paýy.
Tegelekleriň takyklygy (summalaryň gyşarmagy ≥ 1 minor unit - baýdak).
13) Alertler we bosagalar
Stale rate: pursatda kurs ýok → fallback-çeşme/retrai.
Triangulation mismatch: tapawut> X bps.
Spread spike: 'spread _ bps' maýorlardan/mainerlerden has ýokary.
Açyk pozisiýa breach: islendik walýuta boýunça çäkden ýokary.
Reval shock: gündelik gaýtadan bahalandyrma <− X σ ýa-da> + X σ - revyu.
14) Iň oňat amallar (gysgaça)
1. Önüm gatlagyny (taryhy FX) we FI/treasury (maliýe/töleg/reval) berk bölüň.
2. Minor units ulanyň we kurslary ýokary takyklyk bilen saklaň.
3. conversion_owner logyny düzüň we PSP (effective vs reference) marjasyny ölçäň.
4. Wakalaryň idempotentligini we ikitaraplaýyn barlagy amala aşyryň (Tx → File we File → Tx).
5. Triangulation üçin anchor walýutasyny saklaň we bps-de tapawutlary tassyklaň.
6. Galyndylary aýratyn GL bilen EOD prosedurasy bilen gaýtadan bahalandyryň.
7. Settle/funding kurslaryny belläniňizde DST/wagt zolaklaryny göz öňünde tutuň.
8. Tegelekleri yzygiderli synagdan geçiriň.
15) Girizmegiň çek-sanawy
- Hasabat walýutasy we taryhy FX syýasaty kesgitlenildi.
- Kurslaryň çeşmeleri: intraday + EOD, fallback we SLA täzelenmeleri.
- Modeller 'ledger. entries`, `fx_rates_`, `funding_receipts`, `balances`, витрина `transactions_flat`.
- Triangulation mehanizmi we ugur.
- Алерты: stale-rates, spread spike, triangulation mismatch, open position breach.
- KPI daşbordlary we PSP/Bank bilen deňeşdirme namalary.
- realized/unrealized FX üçin reval we aýry GL amallary.
- Tegelek we takyklyk synag toplumlary.
Gysgaça maglumat
Köp walýutaly kitaplar gatlaklaryň bölünişiginiň düzgünidir: önüm üçin taryhy FX, trezeri üçin hakyky, balanslar üçin EOD-gaýtadan bahalandyrma. Aç-açan kurs çeşmeleri, takyk maglumat modeli, goşa ýazgy we awtomatlaşdyrylan deňeşdirme bilen, analitikadan "walýuta sesini" aýyryp, audit geçiriň we global monetizasiýa wagtynda dolandyrylýan FX töwekgelçiligini alarsyňyz.