击穿"拆东墙补西墙"的共债黑盒
在消费金融与小额信贷领域,"多头借贷"(借款人在多家机构同时借款)是导致坏账的核心元凶。传统的征信报告往往存在数据滞后性,难以实时捕捉借款人为了"以贷养贷"而在短时间内进行的疯狂申贷行为。一旦共债链条断裂,金融机构将面临巨大的资金损失。
天远多头借贷行业风险版 API 专为解决这一痛点设计。它不仅提供基础的黑名单筛查,更通过 5 类细分维度(通用、短周期、长周期、非银行、银行),输出 0-100 分的量化风险子分。结合借款人在 7天至 720天内 的跨平台申请轨迹,该接口能帮助风控系统精准识别"急用钱"、"多平台撸口子"的高危人群,是构建现代化贷前风控模型的数据基石。
Python 接口集成实战
本节演示如何使用 Python 对接该接口。由于接口返回的数据结构较为特殊(RiskCode 列表形式),我们在示例代码中增加了数据清洗逻辑,将复杂的 List 转换为易于查询的 Dict 结构。
前置配置
- API Endpoint :
https://api.tianyuanapi.com/api/v1/DWBG7F3A - 鉴权方式: AES-128-CBC 加密传输
- 输入参数: 姓名、身份证号、手机号
核心代码实现
Python
jsx
import requests
import json
import time
import base64
# 生产环境建议使用 PyCryptodome 库
# from Crypto.Cipher import AES
class MultiHeadRiskService:
def __init__(self, access_id, access_key):
self.url = "https://api.tianyuanapi.com/api/v1/DWBG7F3A"
self.access_id = access_id
self.access_key = access_key
def query_risk_profile(self, name, id_card, mobile):
"""
查询多头借贷风险详情
"""
# 1. 构造带时间戳的请求URL
timestamp = int(time.time() * 1000)
request_url = f"{self.url}?t={timestamp}"
payload = {
"name": name,
"id_card": id_card,
"mobile_no": mobile
}
try:
# 2. 数据加密 (AES-128-CBC)
encrypted_data = self._encrypt_payload(json.dumps(payload))
headers = {
"Access-Id": self.access_id,
"Content-Type": "application/json"
}
# 3. 发送请求
response = requests.post(request_url, json={"data": encrypted_data}, headers=headers, timeout=8)
if response.status_code == 200:
res_json = response.json()
if res_json.get("code") == 0:
# 解密响应数据
raw_data = self._decrypt_response(res_json.get("data"))
# 数据清洗:将 List 转为 Dict 方便业务使用
return self._parse_risk_report(raw_data)
else:
print(f"业务异常: [{res_json.get('code')}] {res_json.get('message')}")
return None
else:
print(f"HTTP请求失败: {response.status_code}")
return None
except Exception as e:
print(f"系统内部错误: {e}")
return None
def _parse_risk_report(self, raw_json):
"""
将 [{"riskCode": "41001", "riskCodeValue": "43"}, ...]
转换为 {"41001": 43, ...} 格式
"""
report_list = raw_json.get("riskInfo_report_v3.1", [])
risk_map = {}
for item in report_list:
# 兼容 value 可能是字符串的情况,统一转为 int 或保留原值
code = str(item.get("riskCode"))
value = item.get("riskCodeValue")
risk_map[code] = value
return risk_map
def _encrypt_payload(self, plain_text):
""" [占位] AES加密逻辑: IV + AES(PKCS7) -> Base64 """
return "base64_placeholder"
def _decrypt_response(self, cipher_text):
""" [占位] AES解密逻辑 """
# 模拟解密后的 JSON 结构
return {
"riskInfo_report_v3.1": [
{"riskCode": "41001", "riskCodeValue": "43"}, # 通用分
{"riskCode": "40001", "riskCodeValue": "5"}, # 7天总申请次数
{"riskCode": "17001", "riskCodeValue": "0"} # 1周内逾期平台数
]
}
# 调用示例
if __name__ == "__main__":
service = MultiHeadRiskService("YOUR_ACCESS_ID", "YOUR_ACCESS_KEY")
risk_profile = service.query_risk_profile("张三", "3201021990xxxx", "1380013xxxx")
if risk_profile:
# 业务决策示例
short_term_score = int(risk_profile.get("41002", 0)) # 短周期共债分
overdue_platforms = int(risk_profile.get("17001", 0)) # 1周内逾期平台数
print(f"短周期共债分: {short_term_score}")
if overdue_platforms > 0:
print("拒绝:存在近期逾期行为")
elif short_term_score > 80:
print("复审:短周期共债风险极高")
else:
print("通过:风险可控")
核心风险指标深度解码
天远多头借贷行业风险版 返回的数据量极大(数百个指标),开发者无需全部使用,应根据业务场景选取核心特征。以下是关键字段的解析与建议:
1. 风险评分模型 (0-100分)
| 风险代码 | 描述 | 开发者注意 (Developer Notes) |
|---|---|---|
41001 |
多头申请通用分 | 综合评估分。分值越高,风险越大。建议设定 60 分为初筛警戒线。 |
41002 |
短周期多头共债子分 | 聚焦 7天~3个月 的短期行为。若此分飙升,说明用户近期极度缺钱,存在"以贷养贷"嫌疑,是拒单的高权重指标。 |
41003 |
长周期多头共债子分 | 聚焦 6个月+ 的长期行为。反映用户的长期负债习惯,可用于定额定信策略。 |
2. 高危行为特征
| 风险代码 | 描述 | 业务含义 |
|---|---|---|
40001 |
7天内总申请次数 | 申请极其频繁(如 >10次),典型的高频借贷行为。 |
40049 |
7天内总申请平台数 | 相比次数,平台数更具参考价值。如果在 7 天内申请了 5 个不同的网贷平台,说明资金缺口很大。 |
40105 |
7天总申请夜晚次数 | 凌晨申请 (0点-7点) 占比高往往关联不良嗜好(如赌博)或极度焦虑,违约概率显著高于白天申请者。 |
17001 |
1周内逾期平台数 | 红线指标。一旦大于 0,建议直接拒单。 |
3. 欺诈与团伙风险
| 风险代码 | 描述 | 开发者注意 |
|---|---|---|
21007 |
圈团1浓度分 | 0-100分。检测是否属于欺诈团伙或中介代办。 |
31006 |
疑似准入风险 | 枚举值 1(低), 2(中), 3(高)。针对身份冒用或黑产攻击的防御指标。 |
构建精细化风控策略
基于该 API 丰富的数据维度,我们可以设计分层风控逻辑:
-
反欺诈熔断 (Anti-Fraud)
在流程最前端,优先检查 31006 (疑似准入风险) 和 1700x (逾期指标)。
- 策略 :若
31006 == 3或17001 > 0,直接拒绝,无需进入后续评分环节,节省征信查询成本。
- 策略 :若
-
多头借贷压力测试 (Debt Stress Test)
计算用户的"申贷加速度"。利用 40161 (7天相对过去30天新增总平台数)。
- 策略:如果 7 天内新增平台数占过去 30 天总数的 50% 以上,说明用户近期借贷需求激增,偿债压力断崖式上升,建议降低授信额度。
-
客群分层与差异化定价
结合 41005 (银行多头子分) 和 41004 (非银行多头子分)。
- 优质客群:银行分低,且非银分低 -> 给低息大额。
- 次级客群:银行分高(被银行拒绝多次),转战非银机构 -> 给高息小额,并缩短借款周期。
结语
天远多头借贷行业风险版 API 提供的不仅是数据,更是透视借款人真实财务状况的"X光机"。通过 Python 脚本将其无缝集成到业务系统中,金融机构可以将风控颗粒度从"月"精细化到"天"甚至"小时"(如深夜申请监测),从而在激烈的信贷市场中有效平衡规模增长与资产质量。
建议开发者在数据落库时,将 riskCode 与 riskCodeValue 进行扁平化存储(如 MongoDB),以便后续进行模型回溯与策略调优。