Komissiýanyň we gijikdirmeleriň azalmagy: nyrhlary kesmek we tölegleriň marşrutlaşdyrylmagy
Makalanyň doly teksti
1) Maksady: töwekgelçilige gözegçiligi ýitirmezden has çalt we arzan tölemek
Tizlik: "sowuk" garaşyşlardan az (3-DS, bank batçlary, tory tassyklamak).
Bahasy: PSP/bank/tor komissiýasyny we konwersiýa spredini azaltmak.
Ygtybarlylyk: zero-loss invariantlar: bir debet/karz, öňünden aýdyp boljak kurs.
Ylalaşyk: sebitleýin düzgünler, sank-skrining, iberilmezden öň RG/AML.
2) Keş bilen kurslaryň hyzmaty (FX): nädip dogry tertipleşdirmeli
2. 1 Çeşmeler we kalibrlemek
Bahalar: likwidlik üpjün edijileri/FX-API/PSP/kassa nyrhlary.
Kadalaşma: ýeke-täk format 'pair/base/quote/scale', mid-rate + marja ('markup _ bps'), almak wagty 'as _ of'.
PSP-de kalibrlemek: PSP bölegi jogapda "täsirli kursy" yzyna gaýtarýar; rate cards per usulyny/PSP/geo saklaň.
2. 2 Keş we TTL
Gyzgyn nagt pul (Redis) ýygy-ýygydan jübütlere (EUR, EUR, GBP, USD, BRL we ş.m.).
TTL üýtgewsizligi boýunça: G10 - 30-120 c, EM - 10-30 c; stabllar - 60-300 c (üpjün ediji boýunça).
Grace window: eýýäm başlanan intentleri tamamlamak üçin "çüýrän" kurs N sekundyny ulanmaga rugsat.
2. 3 Süýşmek goragy (slippage)
Müşderä "expires _ at" we rugsat berilýän drift bilen wagtlaýyn kotirovka berilýär (mysal üçin, 20 bps ±).
Ýerine ýetirilende:- bazar drift → içinde giden bolsa, "bron edilen" kursy ulanýarys;
- markanyň syýasaty boýunça → re-quote (gaýtalanýan tassyklama) ýa-da "best-effort" bar bolsa.
- Netijeler üçin - budgeted FX: öwrülişik üçin çykdajylaryň çägi, geleşik geçende ret edilýär.
2. 4 Idempotentlik we atomarlyk
FX-amallaryň ählisinde geleşigiň jemi/jübüti/görnüşi bilen baglanyşykly 'X-Idempotency-Key' bar.
Ledger-e ýazmak we kursy düzmek - bir saga: 'quote. lock → debit/credit → quote. release`.
Pul ýazgylaryndaky nyrhlar ýüzýän nokatsyz minor units + scale ýaly saklanýar.
2. 5 API (standart)
Kotirowkany kabul et
GET /v1/fx/quote? base=EUR"e=USD&side=buy&amount_minor=100000
→ 200 {
"pair":"EUR/USD","rate":"1. 08123","markup_bps":15,  "expires_at":"2025-10-23T12:00:15Z","quote_id":"q_abc"
}Kursy bron et
POST /v1/fx/execute
Headers: X-Idempotency-Key: fx_exec_001
{
"quote_id":"q_abc","amount_minor":100000,"pair":"EUR/USD"
}
→ 200 {"status":"filled","avg_rate":"1. 08125","fx_entry_id":"fx_77"}3) Tölegleriň marşrutlaşdyrylmagy: iň çalt we arzan ýoly saýlamak
3. 1 Ugrukdyryş faktorlary
Geo/walýuta/usul: kart/SEPA/SWIFT/ewallet/kripto.
Komissiýalar: fix +% + FX-markup, PSP/bankyň gizlin ýygymlary.
SLA: p95 'submit → settled', success-rate, kodlardan ýüz öwürmek.
Kesmek we hasaplaşyk penjireleri: banklar (SEPA T + 0/T + 1), kripto-torlar (ýük/gaz), dynç günleri.
Töwekgelçilikler: sanksiýalar/AML/velocity-limitleri/chargeback-profili.
Elýeterliligi: kanallaryň ýagdaýy/PSP, söwdanyň çäkleri, gazna galyndylary.
3. 2 Kaskadlar we bandit strategiýalar
Deterministic rules "berk" talaplar üçin (ýurisdiksiýalar, ygtyýarnamalar, mukdar).
Ýokardan - ε -greedy/UCB birnäçe laýyk PSP-leriň arasynda saýlamak üçin: iň az 'cost _ per _ success' we gijikdirme.
Az traffikli täze kanallara Warm-up + zaýalananda çalt durmak.
3. 3 "Akylly" retralar
Diňe retryable-kodlary gaýtalaýarys (timeouts, transient, bank offline).
Hedged-requests (seýrek, seresaplylyk bilen): ýeňilenleri ýatyrmak bilen 2 PSP-e paralel işe girizmek - kanuny taýdan rugsat berilýän bolsa, VIP/kritiki mukdarda.
Goşa hasapdan çykarylmazlyk üçin hemişe PSP nyşanlary bilen.
3. 4 Meýilnamalary hasaba almak
Cut-off senenamasy (SEPA, SWIFT, ýerli shemalar), ýurtlar boýunça "baýramçylyklar".
Scheduler: eger kesmek üçin  3. 5 Kripto-routing 'fee _ per _ byte/throughput/ETA', adres we ýol düzgünleriniň ak sanawlary (VASP arasynda Travel Rule). Dynamic gas: maxFee/maxPriority hasaplamasy. 3. 6 API (standart) 4) Netting, batching we on-us optimizasiýa On-us (ekosistemanyň içinde): daşarky PSP bolmasa özara hasaplaşyk → nol komissiýasy, derrew SLA. Netting: "Ledger" -e jikme-jik geçirmek bilen ownuk nagt pullary bir daşarky geçirmä (banklar/kripto) jemlemek. Batching: SEPA-faýllar, kripto-batçi (UTXO consolidation/stablecoin batch) - lomaý gazyň/komissiýanyň hasabyna bahany peseldýärler. 5) Bahasyna we tizligine gönükdirilen telemetriýa we SLO 6) Gözegçilik we audit JSON-yň gurluşly ýazgylary: 'trace _ id', 'route _ id', 'payment _ id', 'psp _ ref', 'fx _ quote _ id', ýalňyşlyk kodlary. OpenTelemetry: span 'route. select → fx. quote → wallet. debit → psp. submit → webhook. settled`. WORM-audit: FX marjasyny, routing düzgünlerini, ileri tutulýan ugurlary, senenamany kesmek. 7) Gazna we galyndylar per kanal/PSP/tor ätiýaçlyklary, traffigiň çaklamalaryny göz öňünde tutup awtomatiki gaýtadan balans. Iň az galyndy syýasaty we maliýeleşdirilmedik ýagdaýynda "no new payouts" duralgasy. Hedge: awto-swap stablow/fiata, spred ýazmak üçin meýilnama boýunça. 8) Reconciliation (deňeşdirmeler) we hasabatlar FX-reýestri: quote_id, execute_id, töleg, geçiriş Ledger. PSP/bank/Ledger torunyň gündelik hasabatlary: kategoriýalar 'match/timing/missing/amount _ mismatch'. FX-PnL-iň aýratyn hasabaty: amala aşyrylan spred, kotirowkalaryň bahasy, re-quote-ýitgiler. 9) Binagärlik bloklary (mikroservisler) fx-service: fid ýygnamak, kesmek, slippage-syýasatlar, API quote/execute. router-service: düzgünler, bandit-logika, cut-off senenamasy, kanallaryň ýagdaýy. treasury-service: galyndylar, gaýtadan balans, býudjetler. payments-orchestrator: saglar, idempotentlik, webhuklar, DLQ. Везде — outbox/CDC, partition-keys по `tenant/brand/region`. 10) Çek-listler 11) Gyzyl baýdaklar (anti-patternler) "Bazar" hümmeti boýunça 'quote _ id' we hereket ediş möhleti kesgitlenmezden öwrülişik. Slippage çäklendirmeleriniň ýoklugy → oýunçy üçin negatiw garaşylmadyk. Routing kodda telemetriýa we A/B. bolmazdan "gaty tikilýär" Yza çekilmeýän PSP kodlaryna retrailer (mysal üçin, hard decline). Ignor cut-off/senenamalar → yzygiderli gijikdirmeler T + 1 +. Netting/batching ýokary komissiýalarda öçürildi. Gol/tassyklama penjiresi bolmadyk webhuklar → repleýler. Ýok outbox/CDC → "ýitirilen" wakalar we hasabatlarda gapma-garşylyklar. 12) Netije Komissiýalaryň we gijikdirmeleriň azalmagy "jadyly" bir geçiş däl-de, çözgüt ulgamy: süýşmekden goramak bilen kesilen we dolandyrylýan kurslar, kaskadlar we bandit-logika bilen akylly marşrut, meýilnamalary we galyndylary hasaba almak, üstesine netting we batching. Idempotentlik, outbox/CDC, SLO-telemetriýa we WORM-audit goşuň - we tölegleriňiz has çalt, arzan we bir gezek gidip başlaýar, oýunçy, maliýe we düzgünleşdiriji üçin aç-açan bolup galýar.Marşruty saýlamak
POST /v1/payments/route
{
"amount":{"minor_units":5000,"currency":"EUR"},  "method":"card","geo":"DE","direction":"payout"
}
→ 200 {
"route_id":"rt_001",  "candidates":[
{"psp":"A","eta_sec":420,"cost_minor":85,"success_rate":0. 91},   {"psp":"B","eta_sec":360,"cost_minor":120,"success_rate":0. 96}
],  "recommend":"B"
}Ýerine ýetiriş (idempotentlik bilen)
POST /v1/payments/submit
Headers: X-Idempotency-Key: pay_001
{ "route_id":"rt_001","psp":"B", "fx_quote_id":"q_abc" }
→ 202 {"payment_id":"pm_777","status":"SUBMITTED"}
Platforma/operator
Integrasiýa/PSP/FX üpjün edijileri
