2026-04-22 · architecture / fintech
【金融科技工程】金融科技工程全景:从支付到交易所的系统分类与读图
金融科技(FinTech)不是普通后端加一张账户表。钱的原子性、监管的硬边界、一个小数点的代价,把这个领域推进到工程强度最高的那一档。本文是【金融科技工程】25 篇的总目录与阅读地图:先交代为什么它比一般业务系统更难,再给出对账体、支付体、交易体、风控合规体四维分类,把后续 24 篇挂到骨架上,最后给出一份绿地项目的落地顺序建议。


























前面第 20 篇讲反欺诈、第 21 篇讲反洗钱与 KYC,它们回答的是”这个人是不是坏人、这笔交易是不是脏钱”。本篇进入另一个维度:这个人借了钱之后,到底会不会还。
这是整个金融业最古老的命题。2500 年前巴比伦的《汉谟拉比法典》里已经有对借贷利率的规定(谷物年息 33.3%、白银 20%);1956 年费埃哲(Fair Isaac Corporation)在斯坦福研究所写出第一版信用评分卡的时候,他们还在用打孔卡做逻辑回归。到了 2026 年,信用风险决策的形态已经完全不同:
工程上难在三件事。
第一,样本偏差。 你训练模型只能用”已放款并且有还款表现”的样本,但决策时要给”还没放款的人”打分——这就是经典的拒绝推断(Reject Inference)问题。一个线上跑了两年的模型,它看到的世界是被上一代模型筛选过的,越跑越窄。
第二,表现周期长。 一笔 12 期分期,你真正知道客户好坏要等 6–12 个月(所谓 MOB 6/MOB 12,Months On Book)。模型发布到观测到效果有半年以上的时间滞后,而经济周期、黑产策略、业务规则每周都在变。
第三,合规约束硬。 风控模型必须可解释(欧盟 GDPR 第 22 条、中国《个保法》第 24 条自动化决策条款)、不歧视(美国 ECOA Equal Credit Opportunity Act、Fair Housing Act)、利率不超红线(中国 LPR 4 倍 / 24%/36% 三线、美国各州 Usury Law)。一个在 AUC(Area Under Curve)上赢 2 个点的黑盒深度模型,可能因为拒绝解释不过合规评审。
本篇的目标读者:
本篇是系列第 22 篇,是继反欺诈(第 20 篇)、反洗钱(第 21 篇)之后的风控三部曲收官。之后第 23 篇进入对账系统,那是把本篇”资金-账本-催收”闭环落到账务口径的下游。
新接触风控的读者建议顺序读;有风控经验、主要想看工程与合规的读者可以直接跳到 §4–§10。
先把图画出来。一笔消费贷款从用户点”立即申请”到贷后回收,要经过十几个节点。
flowchart TB
A[用户发起申请<br/>APP/H5/商户收银台] --> B[反欺诈<br/>设备指纹/IP/黑名单]
B --> C[身份核验<br/>实名四要素/活体/OCR]
C --> D[数据采集<br/>征信/运营商/电商/社保]
D --> E[特征工程<br/>派生变量/WOE 编码]
E --> F[A 卡评分<br/>申请评分模型]
F --> G{决策引擎}
G -->|拒绝| R1[拒绝理由/挽回]
G -->|人工| R2[人工审核队列]
G -->|通过| H[额度模型]
H --> I[定价引擎<br/>基于 PD/LGD/EAD]
I --> J[合同签约/电子签名]
J --> K[资金方匹配<br/>自营/助贷/联合贷]
K --> L[放款指令<br/>支付通道]
L --> M[贷后监控<br/>B 卡行为评分]
M --> N{还款}
N -->|按时| O[正常结清/循环授信]
N -->|逾期| P[催收<br/>C 卡催收评分]
P --> Q1[M1 短信/IVR]
P --> Q2[M2 人工外呼]
P --> Q3[M3+ 委外/诉讼]
P --> S[展期/减免/核销]
S --> T[不良处置<br/>ABS/AMC/转让]
以一笔典型消费贷(额度 1–20 万元,期限 3–24 期)为例:
| 节点 | 耗时 | 核心工作 | 通过率 |
|---|---|---|---|
| 反欺诈 | 50ms | 设备指纹、代理 IP、黑名单、GPS 异常、申请频次 | 85–95% |
| 身份核验 | 1–5s | 公安四要素、运营商三要素、银行卡核身、活体+OCR | 90–97% |
| 征信拉取 | 200ms–2s | 人行征信、百行征信、三方数据并行 | 近 100% |
| 特征加工 | 50–200ms | 200–2000 个派生变量 | — |
| A 卡评分 | 10ms | LR/XGBoost 推理 | 20–60%(新户) |
| 额度定价 | 20ms | 规则 + 回归模型 | — |
| 合同/签约 | 用户侧 | 电子签名、利率明示、合规披露 | 80–95% |
| 放款 | 秒级–分钟 | 对接资金方、支付通道 | 近 100% |
端到端,纯线上流程目标是 30 秒内给结果、5 分钟内放款到账。这个体验是 2015 年之后才真正工程化下来的。
风控决策不是一个模型输出一个分数就完了,而是一棵决策树 + 规则集 + 模型集成的组合:
# 伪代码:一次授信决策
def credit_decision(application):
# 第一层:硬规则(Hard Rule)直接拒绝
if application.age < 18 or application.age > 65:
return reject("REJECT_AGE")
if application.id in blacklist:
return reject("REJECT_BLACKLIST")
if pboc_query(application.id).overdue_90d_count > 0:
return reject("REJECT_PBOC_OVERDUE")
# 第二层:反欺诈模型
fraud_score = fraud_model.predict(application)
if fraud_score > 0.85:
return reject("REJECT_FRAUD")
# 第三层:A 卡评分
credit_score = credit_a_card.predict(application)
if credit_score < 550:
return reject("REJECT_LOW_SCORE")
# 第四层:额度+定价
credit_limit = limit_model.predict(application, credit_score)
apr = pricing_engine.price(application, credit_score, credit_limit)
if apr > 24.0: # 红线
return reject("REJECT_APR_CEILING")
# 第五层:灰度/冠军挑战者(Champion/Challenger)
if ab_bucket(application) == "challenger":
credit_limit *= 1.2 # 挑战新策略
return approve(credit_limit, apr)真实生产环境里,这棵决策树有 50–200 个节点,每个节点都有独立的效果监控(通过率、坏账率、用户分布)。决策引擎框架常见选择:开源的 Drools、URule;自研的规则 DSL + 特征服务;大厂(蚂蚁 MYbank、微众 WeBank)内部有基于 Flink/Storm 的实时决策流。
下面给出一个接近生产的决策请求与响应契约(简化版),便于后续团队接入:
// 授信决策请求
message CreditDecisionRequest {
string request_id = 1; // 幂等键
string user_id = 2; // 去标识化 user id
string product_code = 3; // 产品:consumer_loan / card / bnpl_pay4
int64 apply_amount_cent = 4; // 申请金额(分)
int32 term_months = 5; // 期限
string scenario = 6; // 场景:shopping / cash / merchant_id
ApplicantInfo applicant = 7; // 申请人基础信息(已脱敏)
DeviceInfo device = 8; // 设备指纹、IP、GPS
repeated ConsentRecord consents = 9; // 数据授权记录
string channel = 10; // APP / H5 / 商户 SDK
}
message CreditDecisionResponse {
string request_id = 1;
Decision decision = 2; // APPROVE / REJECT / MANUAL / PENDING
int64 credit_limit_cent = 3;
double apr_bps = 4; // APR,基点
int32 credit_score = 5; // 300–900
repeated string reason_codes = 6; // 拒绝/降额原因码
string model_version = 7; // 模型指纹,用于审计回放
string policy_version = 8;
int64 decide_ts = 9;
}
message ConsentRecord {
string scope = 1; // pboc / telco / ecommerce / location
string grant_id = 2; // 唯一授权 ID
int64 granted_at = 3;
int64 expires_at = 4;
}三条工程要点:
request_id
必须是幂等键,同一次申请被网络重试时决策结果不变;model_version + policy_version
必须回写到数据仓库,任何一次决策都可以在半年后复现(合规审计硬要求);reason_codes
是结构化代码而非自由文本,下游用户界面、客诉、监管报送都统一读取。风控上线绝不能一把切。标准做法是冠军挑战者:
挑战者流量切分的关键:按 user_id 哈希稳定,同一用户每次申请走同一桶,避免同一用户两次申请分配到不同策略造成体验割裂。流量控制要做到按分层(例如”按 FICO 段分别切 10%“),否则挑战者可能只吃到了某一段人群。
FICO 评分(1989 年首次商用)是美国零售信贷的事实标准。FICO 8 长期占据贷款决策 90% 市场份额,2014 年推出 FICO 9(医疗欠账降权、接入租房数据),2020 年推出 FICO 10 和 FICO 10T(T 代表 Trended Data,轨迹数据,使用 24 个月余额变化序列而非截面快照)。
FICO 分数区间 300–850,五维权重:
| 维度 | 权重 | 含义 |
|---|---|---|
| Payment History | 35% | 还款历史、逾期记录、破产 |
| Amounts Owed | 30% | 当前负债、信用利用率(Utilization) |
| Length of Credit History | 15% | 账户平均年龄、最老账户 |
| Credit Mix | 10% | 信用卡、按揭、分期组合 |
| New Credit | 10% | 近期硬查询(Hard Inquiry)、新开户 |
VantageScore(2006 年三大征信局联合推出以对抗 FICO)。VantageScore 4.0 同样 300–850,2024 年 FHFA(Federal Housing Finance Agency)宣布房利美/房地美接受 VantageScore 4.0 替代 Classic FICO,这是美国信贷基础设施的重要变化。
人民银行征信中心(PBOC Credit Reference Center)二代格式于 2020 年 1 月 19 日全面上线,相对一代主要变化:
二代征信没有直接输出一个分数,只提供报告字段。大多数银行在二代数据之上自建评分(俗称”央行分”衍生模型)。
百行征信(2018 年成立,央行牌照)和朴道征信(2020 年获牌)是中国仅有的两家市场化个人征信机构,主要覆盖 PBOC 没有覆盖的互联网小贷、消费金融场景。2021 年”断直连”后,互联网平台不得直接向金融机构传送用户信用数据,必须经由持牌征信机构。
芝麻信用(蚂蚁集团,2015 年)分值 350–950,涵盖身份特质、履约能力、信用历史、人脉关系、行为偏好五维。芝麻信用不是征信,而是一种场景化的”信用评估”,不能用于金融机构授信决策(监管要求),但在租房、酒店免押、共享单车等 2000+ 场景广泛使用。
腾讯信用分(2015 年小范围测试,2018 年 1 月 30 日全面公测仅 24 小时后下线)是一个标志性事件:在”断直连”监管基调明确后,互联网公司自建征信业务被叫停,后续只能通过持牌机构做。
京东小白信用(2015 年上线)主要服务京东白条、京东金条场景,形态与芝麻信用类似。
分数不是随便给的。经典评分卡设计里,分数与 PD(Probability of Default,违约概率)有严格映射:
\[\text{Score} = A - B \cdot \ln\left(\frac{\text{PD}}{1-\text{PD}}\right)\]
其中 A、B 是校准常数,通常令”每加 20 分,坏好比翻一倍”(PDO=20,Points to Double the Odds)。例如基础点 600 分对应坏好比 1:20,620 分对应 1:40、640 分对应 1:80。
这个线性映射让业务方好理解:分数就是几何级数的 PD。这也是为什么传统评分卡依然不可替代——即便深度模型 AUC 更高,它输出的概率如果没有做同样的单调校准,业务上没法直接用来划段定价。
尽管学术界不断出新模型,银行、消费金融公司生产线上 60% 以上的申请评分(A 卡)依然是逻辑回归(Logistic Regression)+ WOE(Weight of Evidence,证据权重)分箱。原因:可解释、可拆分贡献、可审计、稳定。
WOE 定义(对第 i 个分箱):
\[\text{WOE}_i = \ln\left(\frac{\text{good}_i / \text{total\_good}}{\text{bad}_i / \text{total\_bad}}\right)\]
IV(Information Value,信息值)衡量一个变量的区分能力:
\[\text{IV} = \sum_i \left(\frac{\text{good}_i}{\text{total\_good}} - \frac{\text{bad}_i}{\text{total\_bad}}\right) \cdot \text{WOE}_i\]
IV 的经验解读:
| IV | 预测力 |
|---|---|
| < 0.02 | 无效 |
| 0.02–0.1 | 弱 |
| 0.1–0.3 | 中 |
| 0.3–0.5 | 强 |
| > 0.5 | 强到要怀疑是穿越变量 |
分箱(Binning)方法:等频、等距、卡方(ChiMerge)、决策树(最常用)。单调性约束是工程惯例——WOE 随分箱排序应单调或 U 型,避免”收入越高越容易违约”这种反业务直觉的结果。
GBDT(Gradient Boosting Decision Tree,梯度提升决策树)在 2014–2017 年从 Kaggle 比赛扩散到工业界,现在是消费金融风控的第二选择。XGBoost(陈天奇,2014)和 LightGBM(微软,2017)的核心差异:
| 维度 | XGBoost | LightGBM |
|---|---|---|
| 树生长 | Level-wise(同层分裂) | Leaf-wise(按增益分裂) |
| 速度 | 基线 | 5–10x 更快 |
| 类别特征 | 需要独热编码 | 原生支持 |
| 内存 | 较高 | 更低(直方图) |
LightGBM 在中国消费金融公司几乎是默认选择。一个典型 A 卡:300–800 个特征、100–500 万样本、训练 10–30 分钟、线上 P99 推理 5ms 以内。
DNN(深度神经网络)在风控的应用场景有限——特征多为结构化表格数据,DNN 对比 GBDT 优势不明显;但在序列场景(APP 行为序列、交易流水序列)上 LSTM/Transformer 有用武之地。
图神经网络(GNN)是近年热点。信贷欺诈与违约往往呈”团伙”特征:同一设备、同一 WiFi、同一紧急联系人出现多次。把用户-设备-商户-联系人建成异构图,用 GraphSAGE、GAT 做节点分类,能捕捉 GBDT 难以表达的关系特征。蚂蚁的 AGL(Ant Graph Learning)、腾讯的 Plato、阿里达摩院的 GraphScope 是这个方向的代表工业系统。
消费金融风控模型按生命周期阶段分类:
三张卡彼此独立训练、独立部署,但通过特征平台共享特征。
一个工业级 A 卡从立项到上线的标准流程,通常 2–4 个月:
flowchart LR
A[1. 样本定义] --> B[2. 观察期+表现期]
B --> C[3. 特征工程]
C --> D[4. 变量筛选<br/>IV/相关性/稳定性]
D --> E[5. 模型训练<br/>LR/GBDT]
E --> F[6. 模型评估<br/>AUC/KS/PSI]
F --> G[7. 模型解释<br/>SHAP/权重卡]
G --> H[8. 公平性测试]
H --> I[9. 独立验证]
I --> J[10. 冠军挑战者灰度]
J --> K[11. 全量上线]
K --> L[12. 持续监控]
L --> M{衰减?}
M -->|是| A
M -->|否| L
样本定义的关键是时间窗口对齐:
所有特征必须是观察点之前可得的信息;所有标签必须在表现期结束后才打。这一铁律如果违反,就是经典的 Target Leakage。
模型发布后最常见的衰减原因是总体稳定性偏移(Population Stability)。PSI 定义:
\[\text{PSI} = \sum_i (p_i^{\text{new}} - p_i^{\text{old}}) \cdot \ln\frac{p_i^{\text{new}}}{p_i^{\text{old}}}\]
其中 \(p_i\) 是第 i 分箱的样本占比。经验阈值:
| PSI | 含义 | 动作 |
|---|---|---|
| < 0.1 | 稳定 | 继续观察 |
| 0.1–0.25 | 轻度漂移 | 排查原因 |
| > 0.25 | 显著漂移 | 考虑重训 |
不仅模型输出要监控 PSI,核心特征也要逐个监控。一个常见场景:某运营商数据源停服 3 天,某特征缺失率从 2% 飙升到 40%,PSI 瞬间超标——这是特征层面的事故,不是模型本身的问题。
中国消费金融风控一张标准数据清单(2026 年合规边界下):
| 类别 | 数据项 | 来源 | 合规要点 |
|---|---|---|---|
| 征信 | 人行二代征信 | PBOC 征信中心 | 每次查询需用户授权、接入需银保监许可 |
| 征信 | 百行/朴道征信 | 持牌机构 | 互联网场景”断直连”必经通道 |
| 公共 | 社保、公积金、税务 | 政府数据平台 | 需用户授权”查询本人数据” |
| 运营商 | 通话详单、在网时长 | 三大运营商 | 用户授权 + 运营商返回脱敏字段 |
| 电商 | 下单金额、收货地址稳定性 | 平台内部(自营场景) | 不得跨主体传输明细 |
| 银行 | 代发工资、流水 | 开放银行 API | PSD2 式授权(中国有限开放) |
| 设备 | 设备指纹、IP、GPS | 客户端 SDK | 《个保法》明示、最小必要 |
| 关系 | 紧急联系人、通讯录 | 客户端授权 | 2019 年后禁止批量读取通讯录 |
关键法规:
工程上的直接后果:2021 年之后,所有外部数据源接入合同 + 用户授权链路 + 审计日志都要落地。任何一次”我们偷偷加了一个数据源上线”的操作,都可能导致罚单(2023 年某消金公司因违规收集通讯录被罚 2000 万元)。
现代风控系统的底座是特征平台(Feature Store):Tecton、Feast、阿里 MaxCompute + 自研 FeatureStore、蚂蚁 AntFeatureStore。一个特征从原始数据到模型输入经过:
数据源 → 接入层(授权检查、脱敏) → 离线计算(Spark/Flink)
→ 特征表(Hive/HBase/TiDB) → 在线服务(Redis/自研 KV)
→ 模型推理 → 决策
每个特征必须带血缘(Lineage)和授权标签:来自哪个数据源、是否个人敏感信息、最大保留期、允许用途。审计时要能在 5 分钟内回答”某用户的某次拒绝使用了哪 27 个特征,每个特征的出处是什么”。
特征平台的头号工程难题是在线-离线一致性(Online-Offline Consistency)。同一个特征”用户最近 30 天还款次数”:
两条路径的口径必须一致,否则出现训练-服务偏差(Training-Serving Skew)。治理手段:
生产上一份典型的风控数据访问权限矩阵:
| 角色 | 征信明细 | 运营商 | 设备 | 放款/还款 |
|---|---|---|---|---|
| 风控建模 | 脱敏样本 | 脱敏样本 | 脱敏样本 | 脱敏样本 |
| 在线决策 | 只读 API | 只读 API | 只读 API | 写入 |
| 客服/催收 | 摘要 | 无 | 无 | 摘要 |
| 审计 | 全量只读(留痕) | 全量只读 | 全量只读 | 全量只读 |
所有访问必须留审计日志(who、when、what、why),保留不少于 5 年。大型消金公司每天产生亿级风控决策日志,存储栈:Kafka → ClickHouse / Iceberg + Trino,冷数据归档到对象存储。
巴塞尔协议 III(Basel III)内部评级法(IRB,Internal Ratings-Based Approach)定义三个核心风险参数:
预期损失(Expected Loss,EL):
\[\text{EL} = \text{PD} \times \text{LGD} \times \text{EAD}\]
一笔贷款的利率分解:
\[\text{APR} = r_{\text{fund}} + r_{\text{ops}} + r_{\text{risk}} + r_{\text{profit}} + r_{\text{capital}}\]
举例:一个 PD=8%、LGD=70% 的客群,年化风险成本 ≈ 5.6%;加资金 5%、运营 3%、利润 3%、资本 2%,最终 APR 约 18.6%。如果这是首贷客群、LGD 上升到 80%、PD 上升到 12%,风险成本到 9.6%,APR 容易撞 24% 红线——这也解释了为什么利率红线卡死后,低分段客户直接被市场拒之门外。
差异化定价(Risk-Based Pricing):同一产品对不同客户给不同利率,这是市场化金融的基本逻辑。但在美国要受 ECOA(Equal Credit Opportunity Act,1974)和 FCRA(Fair Credit Reporting Act)约束:不得基于种族、肤色、宗教、国籍、性别、婚姻状况、年龄等受保护类别(Protected Classes)定价。
工程上的表现:
中国 2026 年还没有完全对标 ECOA 的立法,但《个保法》第 24 条的”自动化决策透明、不得对个人在价格等交易条件上实行不合理的差别待遇”已经埋下了伏笔。
额度模型不是简单地根据评分映射一个数字,而是一个优化问题:
\[\max_{L} \ \text{Expected Profit}(L) = L \cdot \text{Usage}(L) \cdot (r - \text{EL}(L)) - \text{Cost}(L)\]
其中 Usage(L) 是给定额度 L 下的预期动用率。一个关键观察:额度给太低,用户不用;额度给太高,坏客户套现走人。典型做法:
会计层面,国际财务报告准则 IFRS 9(中国对应”新金融工具准则”CAS 22,2019 年起分阶段实施)要求按三阶段模型计提减值:
| 阶段 | 定义 | 减值 |
|---|---|---|
| Stage 1 | 正常/低风险 | 12 个月预期损失 |
| Stage 2 | 信用风险显著增加(SICR) | 整个存续期预期损失 |
| Stage 3 | 已减值 | 整个存续期预期损失,按净额计息 |
SICR(Significant Increase in Credit Risk,信用风险显著增加)的判定是工程落地的难点:通常以 PD 相对初始增幅(如翻倍)、DPD > 30 天、或内评级下调 2 档为触发条件。风控系统必须把 PD 实时下推给财务系统,否则财报不准确。
还款日前 3 天、当天、逾期 D+1 是三个关键触达时点。传统短信 + APP Push 之外,AI Voicebot(智能外呼)是 2020 年后的主力:
代表厂商:腾讯云智能外呼、阿里云语音服务、科大讯飞、竹间智能;银行自建平台如招行掌上逾期机器人。
| 阶段 | 逾期天数 | 手段 | 回收率 |
|---|---|---|---|
| M0 | 0–30 天 | 短信、IVR、AI 外呼、APP 消息 | 70–90% |
| M1 | 31–60 天 | 人工外呼、信函 | 20–40% |
| M2 | 61–90 天 | 加强催收、上征信警告 | 10–25% |
| M3 | 91–180 天 | 委外催收、调解 | 5–15% |
| M3+ | 181 天+ | 诉讼、仲裁、核销 | 1–5% |
| 坏账 | — | 核销后仍可追偿 | 残值处置 |
委外催收(Collection Outsourcing)在 2020–2022 年经过大规模整顿。暴力催收、爆通讯录、骚扰联系人被监管重点打击;合规催收要求:每日通话不超 3 次、不得威胁、不得向无关第三人透露债务信息。
贷后风险的两套核心指标:
Vintage 曲线(账龄分析):按放款月份聚合,观察不同月份放款资产在 MOB 1、2、3、6、12 的累计逾期率。Vintage 曲线是消金公司最重要的资产质量监控工具,任何一代模型/产品/客群的好坏一眼就能从 Vintage 看出。
迁徙率(Roll Rate):相邻两个月逾期阶段之间的迁移概率。典型矩阵:
| 本月 下月 | 正常 | M1 | M2 | M3 | M4+ |
|---|---|---|---|---|---|
| 正常 | 97% | 3% | 0 | 0 | 0 |
| M1 | 50% | — | 50% | 0 | 0 |
| M2 | 20% | — | — | 80% | 0 |
| M3 | 10% | — | — | — | 90% |
| M4+ | 5% | — | — | — | 95% |
迁徙率反映催收效果和客群质量,比单一时点逾期率更稳定。典型消金公司:M1 回到正常的概率 40–60%、M2 到 M3 的概率 70–85%、M3+ 的资产基本视为不良。
传统 C 卡预测”未来 30 天是否催回”,按分数排序分配催收资源。但这种做法忽略了干预效应——高分客户本来就会自己还,花精力在他们身上是浪费。
增益模型(Uplift Model) 预测”干预带来的增量回收概率”,即:
\[\tau(x) = P(\text{回收} \mid x, \text{干预}) - P(\text{回收} \mid x, \text{不干预})\]
通过随机对照实验(RCT):对一批逾期账户随机不催收(Control)、轻催收、重催收,观察回收差异,训练 T-Learner / X-Learner 预测 uplift。催收资源优先分配给 uplift 最高的账户(所谓 “Persuadables”,可被说服者),而非单纯分数最高的。蚂蚁、招联、马上消费等内部 2022 年后均已将 uplift 模型用于 C 卡策略。
消费金融公司不是银行,自有资本有限。要扩表必须借用资本市场。主要方式:
ABS(Asset-Backed Securities,资产支持证券)将一批未来现金流(应收贷款)打包成证券,在交易所或银行间市场发行。典型结构:
发起人(消金公司)
│ 转让底层资产
▼
SPV(特殊目的载体)
│ 发行
▼
优先级 A 档(AAA,70–80%,低息)
优先级 B 档(AA,5–15%,中息)
次级档(发起人自持,5–15%,吸损)
增信方式:超额覆盖(Over-Collateralization)、现金储备账户、流动性支持、原始权益人风险自留 5%(证监会要求)。
2020 年 11 月 2 日、11 月 10 日,银保监会、央行等四部门先后发布《网络小额贷款业务管理暂行办法(征求意见稿)》和约谈蚂蚁集团,IPO 被暂缓。关键背景:花呗、借呗的主体是两家重庆网络小贷公司,通过循环发行 ABS 把 30 多亿注册资本放大到了 3000 多亿贷款余额(约 100 倍杠杆)。意见稿要求:
直接后果:2020 年底花呗、借呗 ABS 集中停发,蚂蚁集团启动整改,2021 年 6 月重庆蚂蚁消费金融有限公司(注册资本后扩至 230 亿元)成立,原小贷业务迁入消金牌照主体,杠杆限制从网络小贷的 4 倍升至消金公司的 10 倍左右,但仍远低于整改前的实际杠杆。这是中国消费金融监管史上最标志性的事件,直接改写了整个行业的资金结构。
2023 年后监管明确:实质重于形式,隐性增信视为联合贷。不少平台被要求补充资本金或退出。
平台对接一家资金方银行,典型工程链路:
平台风控通过 → 资金路由 → 资金方审批 API → 放款指令
↓
银行核心系统出账 → 通知平台 → 用户到账
↓
每日对账(余额、放款、还款)→ 差错处理
几个痛点:
BNPL(Buy Now Pay Later,先买后付)的核心产品结构:
全球主要玩家(2025 年末数据):
| 公司 | 总部 | 年交易额 | 用户规模 | 上市 |
|---|---|---|---|---|
| Klarna | 瑞典 | 约 1000 亿美元 | 1.5 亿 | 2025 年 NYSE |
| Affirm | 美国 | 约 300 亿美元 | 2000 万活跃 | 2021 Nasdaq |
| Afterpay | 澳洲 | — | — | 2021 被 Block 以 290 亿美元收购 |
| PayPal Pay in 4 | 美国 | 嵌入 PayPal | 亿级 | 母公司 Nasdaq |
| Zip | 澳洲 | 百亿美元级 | — | ASX |
中国没有”BNPL”这个原生品类,功能被切成:
监管上直接纳入消费信贷体系,APR 必须明示,不存在”零息误导”——2022 年后所有分期页面必须同时展示综合年化成本(APR)和手续费率(IRR),这是和 BNPL 西方玩法最大的制度差异。
BNPL vs 传统消费信贷的工程差异:
| 维度 | 传统消费贷 | BNPL |
|---|---|---|
| 接入场景 | 独立 APP | 商户收银台 SDK/API |
| 决策时延 | 5–30 秒 | < 2 秒(不能卡结账) |
| 额度粒度 | 单笔/整体额度 | 每笔独立审批 |
| 征信上报 | 全部上报 | 部分上报(各国分歧大) |
| 商户接入 | 线下为主 | Shopify/Stripe 插件、Web SDK |
| 对商户收益 | 提成 2–5% | MDR 3–6% |
Affirm 公开披露的技术栈是一个典型的现代 BNPL:
BNPL 模式在 2022–2024 年全球高利率环境下暴露了几个结构性问题:
2024 年 5 月 22 日,CFPB 发布解释规则(Interpretive Rule),明确 BNPL 的 Pay-in-4 产品属于 TILA(Truth in Lending Act)下的”信用卡”(Credit Card),需履行:
这一规则把 BNPL 从”灰色地带”拉入传统信用卡监管框架,Klarna、Affirm 等必须在 60 天内合规。
FCRA 则要求:拉取征信需”许可目的(Permissible Purpose)“、拒绝需出 Adverse Action Notice、消费者有争议权。
欧盟消费者信贷指令 2(Consumer Credit Directive 2,2023/2225)2023 年通过、2026 年 11 月全面适用,相比 CCD1(2008)主要变化:
《最高人民法院关于审理民间借贷案件适用法律若干问题的规定》(2020 年 8 月修订):民间借贷利率上限调整为”一年期贷款市场报价利率(LPR)的 4 倍”,2026 年 LPR ≈ 3.45% 对应 13.8%——但此规则仅适用民间借贷,不适用持牌金融机构。
持牌金融机构(银行、消金、信托):监管从未明文规定统一利率红线,但 2021 年监管指导”利率从严控制在 24% 以内”,24% 是事实上的红线。超过 24% 不等于违法,但超过 36% 部分在司法实践中不予保护。
APR 明示(2021 年 3 月 31 日央行公告):所有贷款产品、分期产品必须以年化利率(IRR 或 APR)形式展示,禁止只展示”月费率”。
互联网贷款管理办法(2020 年、2022 年过渡期结束)核心条款:
跨境开展消费金融业务(如中资背景的东南亚、拉美 BNPL/消金平台)必须同时满足:
常见合规架构:
2023–2025 年多家中资背景 BNPL 因数据合规争议(如菲律宾 NPC 对中资现金贷调查)被罚或退出市场,合规与技术是一体两面。
即便不把性别、种族直接入模,模型仍可能通过代理变量(Proxy Variable)间接学到:
美国 ECOA/Fair Housing Act 下的差异影响测试(Disparate Impact Test):
\[\text{DI} = \frac{\text{approval rate}_{\text{protected}}}{\text{approval rate}_{\text{majority}}}\]
经验阈值 0.8(80% Rule,也称 Four-Fifths Rule):若小于 0.8,监管推定存在差异影响,需要”业务必要性”辩护。
常见技术路线:
工具库:IBM AIF360、Google Fairness Indicators、Microsoft Fairlearn。
美国 OCC(Office of the Comptroller of the Currency)SR 11-7(Model Risk Management)和美联储 SR 11-7 要求金融机构建立模型风险管理框架:
中国银保监 2022 年《银行保险机构信息科技外包风险监管办法》和 2023 年”模型风险管理”专项检查把这套机制往国内拉齐。
下面给一个完整、可运行的 A 卡建模骨架,使用
scikit-learn + lightgbm + 手写
WOE。生产环境里通常会用
scorecardpy、toad
等风控专用库(国内 toad 最流行)。
import numpy as np
import pandas as pd
import lightgbm as lgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score
# -------- 1. 模拟数据:10 万申请,20 个特征,目标 y=1 表示首半年 90+ 逾期 --------
rng = np.random.RandomState(42)
N = 100_000
df = pd.DataFrame({
"age": rng.randint(18, 65, N),
"income": rng.lognormal(10.5, 0.6, N),
"pboc_overdue_12m": rng.poisson(0.3, N),
"credit_util": rng.beta(2, 5, N),
"query_cnt_3m": rng.poisson(1.2, N),
"account_age_m": rng.randint(0, 240, N),
"device_risk": rng.beta(2, 8, N),
"city_tier": rng.choice([1,2,3,4,5], N),
# ... 省略 12 个特征
})
# 构造带噪声的目标变量
logit = (-3.0
+ 0.8 * df["pboc_overdue_12m"]
+ 2.5 * df["credit_util"]
+ 0.3 * df["query_cnt_3m"]
- 0.00001 * df["income"]
+ 3.0 * df["device_risk"]
+ rng.normal(0, 0.5, N))
p = 1 / (1 + np.exp(-logit))
df["y"] = (rng.uniform(size=N) < p).astype(int)
print("坏样本率:", df["y"].mean()) # ~4%
# -------- 2. WOE 分箱(简化版:等频 + 计算 WOE/IV)--------
def woe_iv(x: pd.Series, y: pd.Series, n_bins=10):
bins = pd.qcut(x, n_bins, duplicates="drop")
tab = pd.crosstab(bins, y).rename(columns={0: "good", 1: "bad"})
tab["good_rate"] = tab["good"] / tab["good"].sum()
tab["bad_rate"] = tab["bad"] / tab["bad"].sum()
tab["woe"] = np.log((tab["good_rate"] + 1e-6) / (tab["bad_rate"] + 1e-6))
tab["iv_bin"] = (tab["good_rate"] - tab["bad_rate"]) * tab["woe"]
return tab, tab["iv_bin"].sum()
iv_summary = {}
for col in ["age","income","pboc_overdue_12m","credit_util",
"query_cnt_3m","account_age_m","device_risk"]:
_, iv = woe_iv(df[col], df["y"])
iv_summary[col] = iv
iv_df = pd.Series(iv_summary).sort_values(ascending=False)
print("IV 排序:\n", iv_df)
# -------- 3. 训练 LightGBM --------
features = [c for c in df.columns if c != "y"]
X_tr, X_te, y_tr, y_te = train_test_split(
df[features], df["y"], test_size=0.3, stratify=df["y"], random_state=1)
params = dict(
objective="binary", metric="auc",
learning_rate=0.05, num_leaves=31, min_data_in_leaf=200,
feature_fraction=0.9, bagging_fraction=0.8, bagging_freq=5,
verbose=-1,
)
dtr = lgb.Dataset(X_tr, y_tr)
dte = lgb.Dataset(X_te, y_te, reference=dtr)
model = lgb.train(params, dtr, num_boost_round=500, valid_sets=[dte],
callbacks=[lgb.early_stopping(30)])
# -------- 4. 评估:AUC、KS --------
pred = model.predict(X_te)
auc = roc_auc_score(y_te, pred)
def ks(y_true, y_score):
df_ = pd.DataFrame({"y": y_true, "s": y_score}).sort_values("s")
cum_bad = (df_["y"] == 1).cumsum() / (df_["y"] == 1).sum()
cum_good = (df_["y"] == 0).cumsum() / (df_["y"] == 0).sum()
return float((cum_good - cum_bad).abs().max())
print(f"AUC = {auc:.4f}, KS = {ks(y_te.values, pred):.4f}")
# -------- 5. 概率转分数(FICO 风格)--------
def prob_to_score(p, base=600, pdo=20, base_odds=1/20):
# Score = A - B * ln(p/(1-p))
B = pdo / np.log(2)
A = base + B * np.log(base_odds)
odds = p / (1 - p + 1e-12)
return A - B * np.log(odds)
scores = prob_to_score(pred)
print("分数分布:")
print(pd.Series(scores).describe())工业标准的评估指标:
生产模型上线前还要做反事实仿真(Counterfactual Simulation):用历史通过+历史拒绝样本,估算新模型的通过率、坏账率、规模曲线,交叉验证后才敢切量。
2021 年 6 月正式开业的重庆蚂蚁消费金融有限公司承接了原花呗、借呗业务。2022–2024 年经历三轮增资,注册资本从 80 亿提高到 230 亿元人民币,是国内注册资本最大的消金公司。股东结构经调整后:蚂蚁集团 50%、南洋商业银行 15.01%、国泰世华银行(中国)10%、舜宇光学 6%、博冠科技 4.99%、重庆渝富资本 6%、鱼跃医疗 3%、传化智联 5%。2024 年总资产超 3000 亿元,年化净利润十亿级。
工程上的典型能力:花呗、借呗的决策链路构建在阿里集团风控平台之上,每秒处理百万级决策,端到端 P99 < 200ms,特征规模据公开资料十万级。
招联消费金融股份有限公司(2015 年成立)股东为招商银行和中国联通各 50%。2023 年末资产超 1700 亿元,贷款余额超 1500 亿元,线上新一贷、信用付产品覆盖亿级用户。招联的特色是强依赖招商银行风控体系 + 联通运营商数据——后者在 2017 年前是其核心差异化优势,2021 年断直连后这一优势弱化。
马上消费金融股份有限公司(2015 年重庆百货发起)是少数较早布局 AI 风控、NLP 智能外呼的消金公司,自研”天启”反欺诈系统、“天镜”智能风控平台。2024 年资产规模约 700 亿。2021 年因数据合规问题被人行、银保监罚款 750 万元,是行业典型合规教训案例。
从百度金融独立出来(2018 年),定位助贷+联合贷+自营消金混合模式。度小满没有消金牌照,主要通过旗下重庆百度小贷公司和合作银行运作。其 AI 风控基于百度搜索、地图、输入法的脱敏信号——这也是 2021 年断直连后被挑战最多的部分。
放眼国际,同样是”数据驱动信用卡/消费贷”的代表:
这类对比提示一个工程取向:中国消费金融的技术栈深度不输国际同行,但产业结构差异决定了模型目标函数和业务拼图完全不同。
从零搭建消费金融风控系统,建议的最小可行栈:
| 层 | 选型 | 说明 |
|---|---|---|
| 决策编排 | Drools / URule / 自研 DSL | 规则+模型组合 |
| 特征平台 | Feast / Tecton / 自研 | 离线在线同源 |
| 模型训练 | Python + LightGBM + toad | 评分卡标配 |
| 模型服务 | Triton / 自研 gRPC | P99 < 20ms |
| 数据仓库 | Hive / MaxCompute / Snowflake | 离线特征 |
| 在线存储 | Redis / Aerospike / TiKV | 在线特征 |
| 流处理 | Flink | 实时行为特征、贷后监控 |
| 风控日志 | Kafka + ClickHouse | 决策审计 |
| 催收 | 智能外呼平台 + CRM | 分层执行 |
| 合规 | 模型文档 + 特征血缘 + 审计日志 | SR 11-7 等价框架 |
上线前 Checklist:
上一篇:《反洗钱与 KYC:客户尽调、交易监测、STR/SAR、FATF》
把当前热点继续串成多页阅读,而不是停在单篇消费。
2026-04-22 · architecture / fintech
金融科技(FinTech)不是普通后端加一张账户表。钱的原子性、监管的硬边界、一个小数点的代价,把这个领域推进到工程强度最高的那一档。本文是【金融科技工程】25 篇的总目录与阅读地图:先交代为什么它比一般业务系统更难,再给出对账体、支付体、交易体、风控合规体四维分类,把后续 24 篇挂到骨架上,最后给出一份绿地项目的落地顺序建议。
2026-04-22 · architecture / fintech
在代码里正确地表示"一笔钱"远比看起来难。本文系统梳理金额的数值建模(浮点、定点、Decimal、最小单位)、币种标准(ISO 4217)、本地化显示、汇率换算与数据库存储,并给出 Go、Python、Java、Rust 的工程化示例。
2026-04-22 · architecture / fintech
把 500 年历史的复式记账翻译成工程师可以落地的数据模型、SQL 表结构与余额计算策略,覆盖充值、下单、退款、分润、红包、多币种与冲销的真实场景,并对比 TigerBeetle、beancount、Ledger CLI、Square LedgerDB、Stripe Ledger 等开源与工业实现。
2026-04-22 · architecture / fintech
账务(Ledger)数据库是金融系统最硬的那块骨头。本文从 RPO/RTO 目标出发,对比 PostgreSQL、MySQL、OceanBase、TiDB、CockroachDB、Oracle、TigerBeetle 等主流选型,讲分片维度、热点账户拆解、索引设计、冷热归档、MVCC 并发控制与审计合规,辅以蚂蚁、Stripe、PayPal、Square 的真实演进路径。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。