GH GambleHub

Мультивалюталық кітаптар мен курстар

1) «Мультивалюталық кітаптар» дегеніміз не?

Кітап (ledger) - бір мезгілде бірнеше валютада жүргізілетін қосарланған жазбасы бар транзакциялық леджер (екі жақты өткізу):
  • Wallet кітабы: ойыншының шоты (ойын валютасы/валютасы).
  • Settlement кітабы: PSP/эквайрермен есеп айырысу (сеттлмент валютасы).
  • Treasury-кітабы: банк шоттары, айырбастау, хедж-мәмілелер.
  • Есеп беру кітабы: есепті валютадағы жиынтық (мысалы, EUR) азық-түлік өлшемдерін ретроспективті қайта бағалаусыз.

Әрбір кітап операция валютасын, ұсыну валютасын және тану сәтіндегі бағамды белгілейді.

2) Валюталар иерархиясы және саясаткерлер

1. Base/Reporting Currency - бірыңғай есептік валюта (мысалы, EUR).
2. Wallet Currencies - әмияндардың валюталары (USD/EUR/TRY/UAH және т.б.).
3. Settlement Currencies - PSP не жібереді (мысалы, USD).
4. Bank Currencies - мерчант/қазынашылық шотының валютасы.

Ережелер:
  • Азық-түлік өлшемдері (ND/NGR/ARPPU) - оқиғаның тарихи бағамы бойынша (әдетте 'settled _ at').
  • Қаржы/бухгалтерлер - бағамды 'funded _ at' және 'payout _ at' деп қосымша белгілейді.
  • Азық-түлік витриналарында «жасырын» қайта бағалауға тыйым салынады.

3) Курстар және олардың көздері

Intraday reference (tick/minute): Refinitiv/ECB/банктер - оқиғаларды қалыпқа келтіру үшін.
EOD (күннің соңы): қалдықтарды қайта бағалау үшін (unrealized FX).
Effective FX: PSP/банк файлынан (айырбастау фактісі).
Triangulation: зәкір арқылы (EUR немесе USD) тікелей баға белгілеу болмаған кезде.
Quote policy: `mid` либо `bid/ask` → `mid ± spread_bps`. Спред жеке сақталады.

'fx _ source', 'fx _ pair', 'fx _ rate', 'fx _ timestamp', 'quote _ type', 'spread _ bps' және triangulation бағытын сақтаңыз.

4) Тану нүктелері және курстардың қабаттары

'authorize _ at' - бағамды бекітпейміз (басып алусыз тану жоқ).
'captured/settled _ at' - азық-түлік қабаты мен ND үшін тарихи курс.
'funded _ at' - банкке түсу бағамы (FI/treasury үшін realized FX).
'payout _ at' - ойыншыға төлеу кезіндегі бағам.
'eod' - қалдықтарды қайта бағалау үшін күннің соңғы бағамы (unrealized FX).

5) Дәлдік, дөңгелектеу, ең аз бірліктер

Ақша - валюта анықтамалығында тұтас minor units (int) + 'scale'.
Курстар - үтірден кейін кемінде 8-10 таңба.
Дөңгелектеу: есептілік үшін банктік (half-even); UI - жергілікті ережелер.
'amount _ original', 'amount _ wallet', 'amount _ reporting', 'amount _ effective' деген бөлек өрістерді жүргізу.

6) Қос жазба және GL-карта (оңайлатылған)

Сымдар мысалдары:

6. 1. DEPOSIT_CAPTURED (GBP, есептік - EUR)

Дт: AR: PSP (GBP)

Кт: Player Balance (әмиян бойынша GBP/EUR)

Сонымен қатар 'fx _ rate _ settle (GBP → EUR)' және 'amount _ reporting' тіркейді.

6. 2. FUNDING_RECEIVED (банкке USD)

Дт: Bank USD

Кт: AR: PSP GBP (баламасы бойынша жабамыз; айырмасы → Realized FX).

6. 3. WITHDRAWAL_PAID (TRY)

Дт: Liability: Player (TRY)

Кт: Bank TRY (немесе Bank EUR + айырбастау; айырма - realized FX).

7) Деректер архитектурасы (ең аз модель)


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) Қалыпқа келтіру ағыны (ETL/ELT)

1. Шикізат ингесті → PSP мәртебесін қалыпқа келтіру.
2. 'fx _ rates _ intraday' -ден 'settled _ at' -ке тарихи курсты тағайындау.
3. Қос сымды қажетті кітапқа жазу (wallet/settlement).
4. Жеке импорт funding және effective FX.
5. 'fx _ rates _ eod' (treasury-кітап) бойынша күнделікті reval қалдықтары.
6. Витриналарды ретро-қайта бағалаусыз құру (ND/NGR/LTV).

9) Салыстыру және консистенттілік

Tx → File: барлық captured/settled PSP файлына түсті (сома/валюта/күн бойынша).
File → Tx: файлдағы барлық нәрсе кітаптарда/сымдарда көрсетілген.
FX Reference vs Effective: 'slippage _ bps' санау; табалдырықтан шығуға алерт.
triangulation тексеру: 'A → B → C' ≈ 'A → C' bps-толеранс шегінде.
Сәйкестік: 'event _ id' және 'idempotency _ key' - қосарланудан қорғау.

10) Жиі сценарийлер және оларды қалай жүргізу керек

Multi-wallet: ойыншының әмияны депозиттен басқа валютада болуы мүмкін - бағамыңыз бойынша ішкі айырбастауды жасаңыз ('conversion _ owner =' MERCHANT 'саясаты).
PSP-conversion: PSP маржасын талдау үшін 'fx _ effective', 'fx _ reference' және 'spread _ bps' сақтаңыз.
Крипто: VWAP-терезе бойынша бағалау; стейблдердегі funding - FX екінші қабаты.
Cross-wallet transfer: платформа ішіндегі қозғалыс - FX кірісі жоқ, жай ғана кітаптар арасында тасымалдау.

11) SQL үлгілері

11. 1. Тарихи бағам бойынша есепті валютадағы соманы қалыпқа келтіру

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-қалдықтарды қайта бағалау (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 және дашбордтар

FX Slippage (bps) PSP/әдісі/MID бойынша.
Realized FX P&L (funding/payout) и Unrealized FX (EOD/EOM).
Валюталар бойынша Open FX Position vs саясат лимиттері.
Hit-rate «уақытында алынған» курстар (stale-rates инциденттер).
PSP-conversion vs Merchant-conversion және оның TCO үлесі.
Дөңгелектеу дәлдігі (сомалардың ауытқуы ≥ 1 minor unit - жалау).

13) Алерттар мен табалдырықтар

Stale rate: оқиға кезінде курс жоқ → fallback-дереккөз/ретрай.
Triangulation mismatch: сәйкессіздік> X bps.
Spread spike: 'spread _ bps' мажорлар/мейнерлер шегінен жоғары.
Open position breach: кез келген валюта бойынша шектен асып кету.
Reval shock: күндізгі қайта бағалау <− X σ немесе> + X σ - ревю.

14) Best practices (қысқаша)

1. Азық-түлік қабатын (тарихи FX) және FI/treasury (funding/payout/reval) қатаң бөліңіз.
2. minor units пайдаланыңыз және курстарды жоғары дәлдікпен сақтаңыз.
3. conversion_owner логин жасап, PSP (effective vs reference) маржасын өлшеңіз.
4. Оқиғаның үйлесімділігін және екі жақты салыстыруды жүзеге асырыңыз (Tx → File және File → Tx).
5. triangulation үшін anchor-валютасын сақтаңыз және айырмашылықтарды bps-де валидациялаңыз.
6. Қалдықтарды жеке GL-мен EOD-процедурамен қайта бағалаңыз.
7. settle/funding курстарын тағайындау кезінде DST/таймзондтарды ескеріңіз.
8. Дөңгелектеуді үнемі тестілеңіз (property-based tests scale шегінде).

15) Енгізу чек-парағы

  • Reporting currency және тарихи FX саясаты анықталған.
  • Курстардың көздері: intraday + EOD, fallback және SLA жаңартулары.
  • Модельдер 'ledger. entries`, `fx_rates_`, `funding_receipts`, `balances`, витрина `transactions_flat`.
  • triangulation механизмі және бағыт.
  • Алерты: stale-rates, spread spike, triangulation mismatch, open position breach.
  • KPI дашбордтары және PSP/банкпен салыстыру актілері.
  • realized/unrealized FX үшін reval және бөлек GL рәсімдері.
  • Дөңгелектеу және сақтау дәлдігінің тест-жинақтары.

Түйіндеме

Мультивалюталық кітаптар - бұл қабаттарды бөлу пәні: өнім үшін тарихи FX, трежери үшін нақты, баланс үшін EOD-қайта бағалау. Ашық бағам көздері, нақты деректер моделі, қосарлы жазба және автоматтандырылған салыстыру арқылы сіз «валюталық шуды» талдаудан алып тастап, аудитті қамтамасыз етіп, жаһандық монетизация кезінде басқарылатын FX тәуекелін аласыз.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Telegram
@Gamble_GC
Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.