风险验证(必要)

身份反欺诈风险验证 API 用于您实时获取我们的风险验证结果。

API 方式

Base URL

API

URL请求方式Content-Type输出格式字符集
api-base-url?partner_code=xxx&partner_key=xxxPOSTapplication/jsonJSONUTF-8

示例:https://cn.apitd.net/fraud/identity/v2?partner_code=test_code&partner_key=test_key

认证参数
字段类型含义建议备注
partner_codeString合作方标识必须由 TD 分配
partner_keyString合作方密钥必须由 TD 分配

请求参数

字段类型含义建议备注
channelString渠道标识必须由 TD 分配
session_idString会话 ID必须会话 ID 是网站服务器为特定用户在访问期间分配的唯一标识,通常可以用 Cookie、表单字段或 URL 的形式存储
decision_eventString风险验证时的业务节点必须枚举值:
register:注册
login:登录
modify:个人信息变更
event_timeString业务真实发生时间必须符合 ISO 8601 标准,格式 YYYY-MM-DDTHH:mm:ss.sssZ ,例如 2021-10-12T14:20:50.521+07:00
account_idString账户 ID必须
terminalTerminal终端信息必须
extExt扩展信息条件必须:如果扩展信息用于本次决策则必须与 TD 约定好的扩展信息
event_detailObject业务事件信息必须与 decision_event 对应的业务事件数据对象

event_detail 业务事件数据与 decision_event 的映射关系

我们的 API 设计限制了每次请求只能涉及一个业务事件的数据。这意味着您无法同时传递多个不同的业务事件数据请求,例如营销和提现。遵守这一规则将有助于提高系统的性能和可靠性,并确保每个业务事件都能得到正确处理。

event_detaildecision_event
注册register
登录login
个人信息变更modify

请求示例

以注册事件为例

{
    "channel": "test",
    "session_id": "abc0123456789",
    "decision_event": "register",
    "event_time": "2021-10-12T14:20:50.521+07:00",
    "account_id": "123456789",
    "terminal": {
        "black_box": "aGPH1658920283672ropYaFxT7",
        "ip": "210.20.10.33"
    },
    "ext": {
        "ext_book_id": "LFOUHOFHOHFNOUH",
        "ext_book_num": 10
    },
    "event_detail": {
        "account": {
            "account_id": "123456789",
            "register_time": "2021-10-12T14:20:50.521+07:00",
            "login_time": "2021-10-12T14:25:50.521+07:00",
            "phone": {
                "country_code": 86,
                "phone_number": "18700001111"
            },
            "email": "[email protected]"
        },
        "profile": {
            "person": {
                "name": {
                    "first_name": "三",
                    "middle_name": "",
                    "last_name": "张",
                    "nickname": "HZhang"
                },
                "sex": "male",
                "birthdate": "1998-01-01"
            },
            "address": {
                "country": "CN",
                "region": "浙江省",
                "city": "杭州市",
                "district": "余杭区",
                "detail": "文一西路海创园 18 幢",
                "zip_code": "310000"
            },
            "education": "master",
            "profession": "XXX",
            "annual_income": {
                "currency": "CNY",
                "amount_local": 680000,
                "amount_usd": 100000,
                "amount_cny": 680000
            }
        },
        "invite": {
            "inviter_id": "567890",
            "inviter_phone": {
                "country_code": 86,
                "phone_number": "18700001112"
            },
            "invite_code": "NOHHD",
            "invite_medium": "WeChat"
        }
    }
}

响应参数

字段类型含义建议备注
codeIntegerAPI 状态码必须
messageString状态信息必须在 API 异常状态下会输出具体的异常原因
sequence_idString响应唯一码必须用于跟踪每次请求记录的唯一标识
scoreInteger风险分必须范围为 0 - 100
resultString决策结果必须枚举值:
decline:拒绝
review:核验
accept:通过
reasonsArray决策原因列表必须
idString决策原因 ID必须每个决策原因都会有一个唯一编码
reasonString决策原因必须

API 状态码

code含义
200成功
301未购买此服务
302流量已被禁用
303流量不足
304服务已过期
305日流量已封顶
9001{字段名}为空
9002{字段名}参数校验错误
9003{字段名}参数长度或者大小超过1024
9004black_box或ip至少存在一个
9200系统异常
9201未知异常
9202content-type不合法

响应示例

{
    "code": 200,
    "message": "",
    "sequence_id": "1648777165770866F82AC7F326307055",
    "score": 90,
    "result": "decline",
    "reasons": [
        {
            "id": "IDMQ0QB2",
            "reason": "存在团伙风险行为"
        }
    ]
}