Субмерчанттар жана каскаддар
1) Түшүнүк базасы
Субмерчант - башкы мерчант/провайдер (PayFac/платформа/оператор) аркылуу төлөмдөрдү кабыл алуучу юридикалык жак. Акча агымдары мастер-MID/платформа эсебине барат, андан кийин платформа субмерчантка (split/sweep) төлөйт.
Каскад (cascading) - авторизацияны жогорулатуу жана наркын төмөндөтүү үчүн эрежелер (GEO, BIN, тариф, тобокелдик, жүк) боюнча бир нече PSP/эквайерлер/MID аркылуу транзакциянын ырааттуу же параллелдүү роутингинин стратегиясы.
PayFac модели - "мини-эквайер" катары платформа: субмерчант (KYB/PCI), субмайрды ыйгаруу, KYC/AML жана талаш-тартыштардын бирдиктүү эрежелери, борборлоштурулган settlement жана төлөмдөр.
2) Кайда жана качан iGaming керек
Multibrand/white-label: бир оператор, ондогон суббренддер/студиялар → MIDs/дескрипторлорду жана отчетторду жүргүзүү оңой.
Мазмун базары: платформа - MoR/PayFac, студиялар - субмерчанттар (revshare, сплиттер).
Жогорку тобокелдик/гео-микс: PSP каскаддары ийгиликсиздиктерди, инциденттердин шокторун жана төлөмдөрдүн баасын азайтат.
Жергиликтүү ыкмалар/төлөм коридорлору: Сиз учуу жана fallback боюнча провайдерди тандоо керек.
3) Жоопкерчилик жана ролдору
4) MID жана дескрипторлордун иерархиясы
Master MID (платформа)
─ Sub-MID (дер) бренддер/гео/ыкмалар боюнча
└─ Routing Profiles (PSP1→PSP2… Каскад)
Сунуштар:- суб-MID боюнча өзүнчө дескрипторлор: аз талаш.
- таза аналитика жана камдык контролдоо үчүн суб-MID боюнча/A2A/жергиликтүү ыкмаларды карталарды бөлүп.
- A/B үчүн багыттоо профилдерин (v1/v2) версиялоо
5) Каскаддар: кантип куруу керек
5. 1. Чечим "учуп"
Авторизацияда: эрежелер боюнча маршрутту тандоо (GEO, BIN/IIN, brand, debit/credit картасы, тобокелдик-класс, PSP лимити, учурдагы AR/DR, тариф/FX, SLA инциденттер).
5. 2. Каскаддын түрлөрү
Ырааттуу: PSP_A → (soft decline) → PSP_B → PSP_C.
Параллель (split-traffic):% ар кандай PSP боюнча трафик.
Sticky BIN: мыкты PSP үчүн ийгиликтүү BIN пулун бекитүү.
5. 3. Чектөөлөр
idempotency (эки capture эмес,).
PSP кайталап аракет менен макулдашуу (retry window, soft codes).
эске алуу 3DS саясаты жана ар бир каттам боюнча liability shift.
6) Settlement, T + N, камдар жана split
Ар бир PSP/эквайердин өзүнүн өчүрүү/T + N жана өзүнүн rolling reserve бар.
Платформа суб-MID деңгээлинде кирешелерди бириктирет жана релиз календары менен reserve-ledger жүргүзөт.
Субмерчанттарга төлөмдөр: net of fees & reserve + отчеттук мезгил боюнча алардын үлүшү (revshare/CPA).
Транзакция (platform/studio/affiliate/tax) же мезгил-мезгили менен бөлүкчөлөрдү колдоо.
7) Antifrod, 3DS жана субмерчант деңгээлиндеги лимиттер
A/B/C рыноктордун класстары үчүн ар кандай чеги-босого.
BIN/гео/текшерүү боюнча 3DS эрежелери (жүктөлгөн ./жумшак/кадам).
Velocity-лимиттер (киргизүү/корутундулар, карталарды аракет) жана субмерчант боюнча caps.
"Боз" субмерчанттары: катуу лимиттер, бир гана ак ыкмалар жана кийинкиге калтырылган төлөмдөр.
8) Тарифтер жана баа
PSP fees (interchange/scheme/markup/fixed) + FX slippage + платформанын үлүшү + резерв-эффект.
IC++ жана BIN-routing колдонуу каскадында blended-наркын азайтуу.
9) Маалыматтар жана минималдуу модели
sql
-- Directories
CREATE TABLE ref. submerchants (
sub_id BIGSERIAL PRIMARY KEY,
legal_name TEXT, brand TEXT, country TEXT, risk_class TEXT, status TEXT,
created_at TIMESTAMP, meta JSONB
);
CREATE TABLE ref. routing_profiles (
profile_id BIGSERIAL PRIMARY KEY,
name TEXT, version TEXT, enabled BOOLEAN, meta JSONB
);
CREATE TABLE ref. routing_rules (
rule_id BIGSERIAL PRIMARY KEY,
profile_id BIGINT REFERENCES ref. routing_profiles,
method TEXT, geo TEXT, bin_from TEXT, bin_to TEXT,
psp TEXT, mid TEXT, require_3ds BOOLEAN,
priority INT, soft_codes JSONB, enabled BOOLEAN, meta JSONB
);
-- Transactions linked to a sub-merchant and a route
CREATE TABLE payments. transactions (
id BIGSERIAL PRIMARY KEY,
sub_id BIGINT REFERENCES ref. submerchants,
profile_id BIGINT, rule_id BIGINT,
provider TEXT, mid TEXT, method TEXT, brand TEXT,
status TEXT, decline_code TEXT,
amount_original NUMERIC(18,6), currency_original TEXT,
amount_reporting NUMERIC(18,6), reporting_currency TEXT,
fx_reference_rate NUMERIC(18,10), fx_effective_rate NUMERIC(18,10),
authorized_at TIMESTAMP, captured_at TIMESTAMP, settled_at TIMESTAMP, funded_at TIMESTAMP,
user_id BIGINT, country_player TEXT, bin TEXT, three_ds_used BOOLEAN,
idempotency_key TEXT UNIQUE, meta JSONB
);
-- Phi and reserves for sub-merchant/provider/period
CREATE TABLE finance. settlement_fees (
sub_id BIGINT, provider TEXT, mid TEXT,
period_start TIMESTAMP, period_end TIMESTAMP,
interchange_amt NUMERIC, scheme_amt NUMERIC, markup_amt NUMERIC,
auth_amt NUMERIC, refund_amt NUMERIC, cb_amt NUMERIC, gateway_amt NUMERIC,
fx_spread_amt NUMERIC, reserve_delta NUMERIC, total_fees NUMERIC, currency TEXT
);
CREATE TABLE finance. reserve_ledger (
id BIGSERIAL PRIMARY KEY,
sub_id BIGINT, provider TEXT, mid TEXT,
hold_date DATE, release_due_date DATE,
hold_amount NUMERIC, released_amount NUMERIC,
cb_consumed NUMERIC, fines_consumed NUMERIC,
status TEXT, meta JSONB
);
-- Submerchant payments
CREATE TABLE payouts. submerchant_settlements (
sub_id BIGINT, period_start TIMESTAMP, period_end TIMESTAMP,
gross_sales NUMERIC, refunds NUMERIC, chargebacks NUMERIC,
fees_total NUMERIC, reserve_delta NUMERIC, revshare NUMERIC,
net_payable NUMERIC, currency TEXT, paid_at TIMESTAMP, statement_ref TEXT
);
10) SQL үлгүлөрү
10. 1. Субмерчант боюнча натыйжалуу наркы
sql
SELECT t. sub_id,
SUM(t. amount_reporting) AS volume_rep,
SUM(f. total_fees) AS fees_rep,
100. 0 SUM(f. total_fees) / NULLIF(SUM(t. amount_reporting),0) AS take_rate_pct
FROM payments. transactions t
JOIN finance. settlement_fees f
ON f. sub_id=t. sub_id
AND t. settled_at BETWEEN f. period_start AND f. period_end
WHERE t. settled_at BETWEEN:from AND:to
GROUP BY 1
ORDER BY take_rate_pct DESC;
10. 2. Эрежелер боюнча каскаддын натыйжалуулугу (AR/DR)
sql
SELECT r. profile_id, r. psp, r. mid,
COUNT() FILTER (WHERE t. status='APPROVED') AS approvals,
COUNT() FILTER (WHERE t. status='DECLINED') AS declines,
ROUND(100. 0 COUNT() FILTER (WHERE t. status='APPROVED') / NULLIF(COUNT(),0), 2) AS ar_pct
FROM payments. transactions t
JOIN ref. routing_rules r ON r. rule_id=t. rule_id
WHERE t. authorized_at BETWEEN:from AND:to
GROUP BY 1,2,3
ORDER BY ar_pct DESC;
10. 3. Субмерчант боюнча резерв-баланс
sql
SELECT sub_id,
SUM(hold_amount - released_amount - cb_consumed - fines_consumed) AS reserve_balance
FROM finance. reserve_ledger
WHERE hold_date <=:as_of
GROUP BY 1;
10. 4. net payable субмерчант эсептөө
sql
SELECT s. sub_id,
SUM(s. gross_sales - s. refunds - s. chargebacks
- s. fees_total + s. reserve_delta - s. revshare) AS net_payable
FROM payouts. submerchant_settlements s
WHERE s. period_start >=:from AND s. period_end <:to
GROUP BY 1;
11) Dashbord жана KPI
AR/DR каскады боюнча: GEO/BIN/ыкмасы/PSP, 3DS үлүшү, soft-decline бөлүштүрүү.
submerchant боюнча Take-Rate% жана компоненттик fees стек.
суб-MID боюнча CB Ratio/Refund Rate.
Субмерчанттар/PSP боюнча Reserve Balance & Release ETA.
Settlement SLA: T+N hit-rate, funding delays.
Payout Health: субмерчанттарга төлөмдөрдүн жыштыгы жана суммасы, кечигүү.
FX Slippage в каскадах (effective vs reference).
12) Алерталар жана босоголор
Routing Degradation: эреже боюнча АР> Y bps саат-саат түшүп.
CB Spike: субмерчант Chardzhbekov өсүшү> X bps w/w.
Reserve Imbalance: камдык башкаруучу туура эмес - P1.
Settlement Delay: PSP үчүн T + N бузуу → каскаддагы auto-switch.
Take-Rate Spike: наркынын өсүшү> босого (fees же FX).
Policy Drift: profile/rule/idempotency байланышсыз бүтүмдөр - P1.
Payout Delay: субмерчантка кечиктирилген төлөм> SLA.
13) Onbording жана комплаенс субмерчант
КУВ/санкциялар/РЕР: документтердин пакеттери, бенефициарлар, каражаттардын булактары.
PCI/коопсуздук: tokenization, субмерчант PAN сактоого тыюу салуу.
Кайтарымдар/бонустар саясаты: бирдиктүү стандарттар, SLA билеттери.
Агрегацияланган отчеттуулук: бренддер, геолор, ыкмалар боюнча өзүнчө.
Лимиттер/каппалар: күндүзгү/жумалык жүгүртүүлөр, payout-caps, жогорку тобокелдик үчүн кийинкиге калтырылган төлөмдөр.
14) Best practices (кыска)
1. Жол профилдерин версиялаңыз жана explain-logy чечимдерин сактаңыз.
2. Sticky BIN жана A/B PSP тесттерин AR туруктуулугу жана баасы үчүн сактаңыз.
3. Mappite fees/FX/резерви субмерчант деңгээлине чейин; SLA боюнча net-of-fees төлөө.
4. Idempotency + retry-policy soft-decline боюнча гана; PSP чектерин сактаңыз.
5. Дескрипторлор жана суб-MIDs - бренд/гео үчүн уникалдуу: азыраак талаш-тартыштар.
6. Release-календары жана missed-release алерттери менен камдык башкаруучу.
7. Ачык-айкын субмерчант отчеттор: чечмелөө fees, reserve, FX, талаш.
8. Failover ойнотмо: PSP/коридор кулашы - заматта reroute.
15) Киргизүү чек-тизмеси
- 'submerchants', 'routing _ profiles', 'routing _ rules' колдонмолору.
- KYB/KYC/AML протоколдору жана статустарды сактоо.
- idempotency жана soft-decline-логикасы менен Router.
- PSP файлдарын импорттоо → 'settlement _ fees' + reserve-ledger.
- Субмерчанттар үчүн payouts механизми + актылар/статменттер.
- Dashbord AR/DR/CB/fees/reserve + alert.
- Документтер: талаш-тартыш саясаты, 3DS эрежелери, чектөөлөр жана SLA.
Резюме
Субмерчанттар масштабды жана ийкемдүүлүктү, ал эми каскаддар туруктуулукту, конверсияны жана башкарылуучу наркты берет. MIDs иерархиясынын архитектурасы, версиялануучу роутинг профилдери, ачык-айкын fees/камдарды эсепке алуу жана катуу комплаенс татаал көп GEO төлөм контурун болжолдонгон системага айландырат: жогорку авторизация, төмөн төлөм, тез төлөмдөр жана минималдуу тобокелдик сюрприздери.