The Verification API is used for real-time access to our risk verification results.
API Format
Base URL
- China:https://cn.apitd.net/fraud/identity/v3
- America:https://us.apitd.net/fraud/identity/v3
- Singapore:https://sg.apitd.net/fraud/identity/v3
- Germany:https://de.apitd.net/fraud/identity/v3
API
URL | Request Methods | Content-Type | Output Format | Character Set |
---|---|---|---|---|
api-base-url?partner_code=xxx&partner_key=xxx | POST | application/json | JSON | UTF-8 |
example: https://sg.apitd.net/fraud/identity/v3?partner_code=test_code&partner_key=test_key
Authentication
Parameter | Type | Description | Required/Optional | Notes |
---|---|---|---|---|
partner_code | String | Partner Code | required | assigned by TD |
partner_key | String | Partner Key | required | assigned by TD |
Request
Parameter | Type | Description | Required/Optional | Notes |
---|---|---|---|---|
channel | String | Channel | required | assigned by TD |
session_id | String | Session ID | required | The session ID is a unique identifier assigned by the website server to a specific user during the visit, which is usually stored in the form of a cookie, form parameter, or URL |
decision_event | String | Verification Event | required | enumeration: register login modify |
event_time | String | The Actual Time of the Event | required | ISO 8601, format YYYY-MM-DDTHH:mm:ss.sssZ, example: 2021-10-12T14:20:50.521+07:00 |
account_id | String | Account ID | required | |
terminal | Terminal | Device Information | required | |
ext | Ext | Extended Field | conditionally required: required when the extended field is used for policy. | extended field registered in the TD system |
event_detail | Object | Event Information | required | event data object corresponding to the decision_event |
The mapping relationship between the event_detail event data and the decision_event is as follows:
Our API design restricts each request to only include data related to a single business event. This means that you cannot simultaneously pass multiple requests with different types of business event data, such as register and login. Adhering to this rule will help improve system performance and reliability, ensuring that each business event is processed correctly.
Request Example
Let's take the example of a register event.
{
"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": 1,
"phone_number": "6165793816"
},
"email": "[email protected]"
},
"profile": {
"person": {
"name": {
"first_name": "Pierre",
"middle_name": "",
"last_name": "Laurent",
"nickname": "Snochy"
},
"sex": "male",
"birthdate": "1998-01-01"
},
"address": {
"country": "FR",
"region": "Grand Est",
"city": "Strasbourg City",
"district": "Ketali Lorem",
"detail": "3213 Building,lorem Street",
"zip_code": "310000"
},
"education": "master",
"profession": "XXX",
"annual_income": {
"currency": "USD",
"amount_local": 100000,
"amount_usd": 100000,
"amount_cny": 680000
}
},
"invite": {
"inviter_id": "567890",
"inviter_phone": {
"country_code": 1,
"phone_number": "18700001112"
},
"invite_code": "NOHHD",
"invite_medium": "WeChat"
}
}
}
Response Parameter
Parameter | Type | Description | Required/Optional | Notes |
---|---|---|---|---|
code | Integer | API Status Code | required | |
message | String | Status Message | required | specific abnormal reasons will be provided if the API is abnormal |
sequence_id | String | Unique ID of Response | required | A unique ID used to mark each request |
score | Integer | Risk Score | required | range: 0 - 100 |
result | String | Decision Result | required | enumeration: decline review accept |
reasons | Array | Decision Reasons | required | |
id | String | Decision Reason ID | required | each decision reason has a unique id |
reason | String | Decision Reason | required |
API Status Code
code | Description |
---|---|
200 | Success |
301 | Service not purchased |
302 | Traffic blocked |
303 | Traffic insufficient |
304 | Service expired |
305 | Daily maximum volume reached |
9001 | {Parameter} empty |
9002 | {Parameter} check error |
9003 | {Parameter} length or size exceeds 1024 |
9004 | Either black_box or ip exists |
9200 | System error |
9201 | Unknown error |
9202 | Illegal Content-Type |
9203 | No corresponding strategy configuration |
Response Example
{
"code": 200,
"message": "",
"sequence_id": "1648777165770866F82AC7F326307055",
"score": 60,
"result": "review",
"reasons": [
{
"id": "IDMQ0QB2",
"reason": "Gang Risk"
}
]
}