次級和級聯
1)概念基礎
子商是通過主要商人/提供商(PayFac/平臺/運營商)接受付款的法人實體。現金流流向平臺的MID/帳戶主機,然後平臺支付子客戶(split/sweep)。
級聯(cascading)是通過多個PSP/收購商/MID(GEO,BIN,關稅,風險,負擔)進行串行或並行路由交易的策略,以增強授權並降低成本。
PayFac模型是一個平臺,稱為「迷你購買者」:子購買者(KYB/PCI),子中位數分配,單一KYC/AML規則和Disputs,集中安置和付款。
2)在iGaming中何時何地需要
多品牌/白色標簽:一個運營商,數十個子品牌/工作室→更容易維護MID/描述符和報告。
內容市場:平臺-MoR/PayFac,工作室-子客戶(revshare,拆分)。
高風險/地理混合:PSP級聯減少故障、事件沖擊和支付成本。
本地支付方法/走廊:需要即時選擇提供商並返回。
3)責任與角色
4) MID和描述符層次結構
Master MID(平臺)
按品牌/地理/方法劃分的Sub-MID └─
└─ Routing Profiles (PSP1→PSP2…級聯)
建議:- 子圖-MID上的單個描述符:較少的分配。
- 將卡/A2A/本地方法按子中點劃分,用於凈分析和儲備控制。
- 為A/B測試路由配置文件(v1/v2)。
5)Cascades: 如何建造
5.1.「即時」解決方案"
授權:根據規則(GEO、BIN/IIN、品牌、debit/credit卡、風險等級、PSP限制、當前AR/DR 、關稅/FX、事件SLA)選擇路線。
5.2.級聯類型
串行:PSP_A → (soft decline) → PSP_B → PSP_C。
並行(split-traffic):用於基準標記和裝飾的不同的PSP的流量百分比。
Sticky BIN:將成功的BIN池固定為最佳PSP。
5.3.限制因素
計數idempotency(以免被捕獲)。
與PSP協調重復嘗試(retry window,軟代碼)。
考慮每條路線上的3 DS策略和liability shift。
6)定居點,T+N,儲備金和拆分
每個PSP/收購商都有自己的剪切/T+N和滾動儲備。
該平臺將收入匯總在次中MID級別,並使用發布日歷維護預留接收器。
在報告期內,向次貸方支付的款項為:net of fees&reserve+其份額(revshare/CPA)。
支持交易拆分(platform/studio/affiliate/tax)或逐條交易。
7)反氟化物,3 DS和子商級限制
A/B/C市場類別的不同評分閾值。
BIN/geo/支票的 3 DS規則(*/軟/步)。
Velocity限制(輸入/推斷,卡嘗試)和次要限制。
「灰色」次級:限制更嚴格,只有白色方法和遞延付款。
8)票價和收費率
按子訂單計算效率:PSP fees(交換/計劃/標記/固定)+FX slippage+平臺份額+儲備效果。
使用IC++和BIN路由來降低級聯中的寬松成本。
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 payable submerchant
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) Dashbords和KPI
按級聯AR/DR:通過GEO/BIN/方法/PSP,3 DS份額,軟決策共享。
Take-Rate%和子商品的成分堆棧。
CB Ratio/Refund Rate在sub-MID上。
備用平衡和發行ETA,按次級/PSP。
Settlement SLA: T+N hit-rate, funding delays.
Payout Health:向次貸方支付的頻率和金額,延遲。
級聯中的FX Slippage(效果與參考)。
12)Alerta和急流
Routing Degradation:在規則上下降AR> Y bps每小時。
CB Spike: submerchant> X bps w/w的充電器增長。
Reserve Imbalance: 儲備貸款人-P1.
Settlement Delay: PSP →自動開關在級聯中違反T+N。
Take-Rate Spike:價值增長>閾值(fees或FX)。
Policy Drift:不綁定到profile/rule/idempotency-P1的事務。
Payout Delay:拖欠次級客戶>SLA。
13)子商品的討價還價和合規性
KED/制裁/RER:一攬子文件、受益人、資金來源。
PCI/安全性:令牌化,禁止在子客戶處存儲PAN。
退款/獎金政策:統一標準,SLA字幕。
匯總報告:按品牌,地理,方法分開。
上限/上限:白天/周營業額,支付上限,高風險的遞延付款。
14)最佳實踐(簡稱)
1.驗證路由配置文件,並存儲解決方案的explain-log。
2.保持粘性BIN和PSP A/B測試,以實現AR和價格的可持續性。
3.Mappite fees/FX/儲備金至次要水平;通過SLA支付網絡費用。
4.Idempotency+僅通過軟鎖定策略進行;遵守PSP限制。
5.描述符和sub-MID是品牌/地理所獨有的:分布較少。
6.帶有發行日歷和未發布版本的Alert 的備用Ledger。
7.向子銷售代表透明報告:解密功能、儲備、FX、分配。
8.Failover-playbooks: PSP/走廊的倒塌是一個瞬間的 reroute。
15)實施支票
- 參考書「submerchants」,「routing_profiles」,「routing_rules」。
- KYB/KYC/AML協議和狀態存儲。
- 具有idempotency和soft-decline邏輯的路由器。
- 導入PSP設置文件→ 'settlement_fees'+reserve-ledger。
- 付給次貸方的機制+行為/狀態。
- Dashbords AR/DR/CB/fees/reserve+alerta。
- 文件:分配政策、3 DS規則、限制和SLA。
總結
子計量器提供規模和靈活性,級聯提供可持續性,轉換和管理成本。MID層次結構,可轉換的路由配置文件,透明的功能/備份會計和嚴格的合規性將復雜的multi-GEO支付回路轉換為可預測的系統:高授權,低收取,快速支付和最低風險驚喜。