Transaction Risk Verification

API Format

Base URL

API

URLRequest MethodsContent-TypeOutput FormatCharacter Set
api-base-url?partner_code=xxx&partner_key=xxxPOSTapplication/jsonJSONUTF-8
Authentication
ParameterTypeDescriptionRequired/OptionalNotes
partner_codeStringPartner Coderequiredassigned by TD
partner_keyStringPartner Keyrequiredassigned by TD

Request

ParameterTypeRequired/OptionalDescriptionNotes
transaction_timeStringrequiredtransaction timeThe transaction time in format YYYYMMDDHHMMSS, e.g.20260416134043
transaction_amountStringrequiredtransaction amountThe amount of the transaction in the currency’s basic unit. If the transaction amount is USD 123.45, the element will contain the value 12345
transaction_currencyexponentStringrequiredThe transcation currency exponentIf the transaction amount is USD 123.45, then the exponent will contain 2.
transaction_currencyStringrequiredThe currency of the transaction amountas an ISO-4217 currency code, e.g.840
merchant_nameStringrequiredThe name of the business
merchant_countrycodeStringrequiredThe country code of the merchant associated with the transactionThe ISO-3166 country code, e.g.840 or US
mccStringrequiredThe Merchant Category Code associated with the transaction
ipStringoptionalPublic IP AddressIPV4 and IPV6 supported
billing_nameStringoptionalbilling nameCharacters <=45
billing_phone_country_idStringoptionalbilling phone country_ide.g.86
billing_phoneStringoptionalbilling phone
billing_emailStringoptionalbilling email
billing_address_country_idStringoptionalbilling address country_idThe ISO-3166 country code, e.g.840 or US
billing_address_state_idStringoptionalbilling address state_id
billing_address_postal_idStringoptionalbilling address postal_id
billing_address_cityStringoptionalbilling address city
billing_address_street1Stringoptionalbilling address street1Characters <=50
billing_address_street2Stringoptionalbilling address street2Characters <=50
shipping_nameStringoptionalshipping nameCharacters <=100
shipping_phone_country_idStringoptionalshipping phone country_ide.g.86
shipping_phoneStringoptionalshipping phone
shipping_emailStringoptionalshipping email
shipping_address_country_idStringoptionalshipping address country_idThe ISO-3166 country code, e.g.840 or US
shipping_address_state_idStringoptionalshipping address state_id
shipping_address_postal_idStringoptionalshipping address postal_id
shipping_address_cityStringoptionalshipping address city
shipping_address_street1Stringoptionalshipping address street1Characters <=50
shipping_address_street2Stringoptionalshipping address street2Characters <=50
user_agentStringoptionalThe user-agent string of the consumer device attempting to authorize your product or serviceThe user-agent must represent the HTTP client of the service consumer with details on the software originating the request
timezoneStringoptionalTime-zone of the consumer devicehe timezone must be a number of the time-zone offset, in minutes, from the date based on current host system settings to UTC, e.g.100 or -100
screen_widthStringoptionalThe screen width of the consumer device attempting to authorize with your product or service
screen_heightStringoptionalThe screen height of the consumer device attempting to authorize with your product or service
languageStringoptionalThe language of the consumer device. The language must be a string representing the language version as defined in BCP-47
colordepthStringoptionalThe device screen color depth value
modelStringoptionalMobile device manufacturer and modelAndroid: Build.MANUFACTURER + " " + Build.MODEL returns the mobile device manufacturer and model, For example,“samsung SM-G960U1”
iOS: utsname machine returns the device model, For example, “iPhone10.4”. Note: Apple as a manufacturer is not included because it is the same for all iOS devices.
major_os_versionStringoptionalMajor operating system version
minor_os_versionStringoptionalMinor operating system version
account_numberStringoptionalUnique identifier for the primary account number of the card
card_last4StringoptionalThe last four digits of the card number
card_expirydateStringoptionalThe expiry year and month of the card in YYMM format
card_binStringoptionalThe first digits of the card number
acquirer_merchant_idStringoptionalThe merchant ID that the transaction was processed under, as assigned by the acquirer
acquirer_binStringoptionalThe BIN (Bank Identification Number) of the acquirer
work_phone_country_idStringoptionalwork phone country_ide.g.86
work_phoneStringoptionalwork phone
extraStringoptionalExpand field, in Json string formatCan be empty

Request Example

{
  "transaction_time": "20260416134043",
  "ip": "23.129.64.214",
  "billing_name": "xxxxxx",
  "billing_phone_country_id": "1",
  "billing_phone": "3143978691",
  "billing_email": "[email protected]",
  "billing_address_country_id": "840",
  "billing_address_state_id": "TX",
  "billing_address_postal_id": "63124",
  "billing_address_city": "Houston",
  "billing_address_street1": "912 Uclan Dr",
  "shipping_name": "xxxxx",
  "shipping_phone_country_id": "1",
  "shipping_phone": "3143978691",
  "shipping_email": "[email protected]",
  "shipping_address_country_id": "840",
  "shipping_address_state_id": "TX",
  "shipping_address_postal_id": "63124",
  "shipping_address_city": "Houston",
  "shipping_address_street1": "912 Uclan Dr",
  "extra": "",
  "transaction_amount": "12500",
  "transaction_currencyexponent": "2",
  "transaction_currency": "840",
  "merchant_name": "Acme Inc",
  "merchant_countrycode": "US",
  "mcc": "5411",
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
  "timezone": "600",
  "screen_width": "1512",
  "screen_height": "982",
  "language": "en-GB",
  "colordepth": "30",
  "endcustomerrefId": "45342",
  "model": "iPhone10.4",
  "major_os_version": "12",
  "minor_os_version": "0",
  "account_number": "4111111111111111",
  "card_last4": "1111",
  "card_expirydate": "2311",
  "card_bin": "411111",
  "acquirer_merchant_id": "ACME",
  "acquirer_bin": "444444",
  "work_phone_country_id": "1",
  "work_phone": "3143978691"
}

Response Parameter

ParameterTypeDescriptionNotes
codeIntegerAPI Status Code
messageStringStatus Messagespecific abnormal reasons will be provided if the API is abnormal
sequence_idStringUnique ID of ResponseA unique ID used to mark each request
risk_scoreIntegerrisk score, range: 0 - 100
risk_score_reason_codeStringreason code explanation value for the risk scoreThe meaning can be found in Appendix 1
device_risk_scoreIntegerdevice risk score, range: 0 - 100
ip_risk_scoreIntegerip risk score, range: 0 - 100
ip_carrierStringip carrier
ip_connection_typeStringip Connection type descriptioncable-dsl
corporate
cellular
dialup
ip_geolocation_cityStringip geolocation city
ip_geolocation_country_codeStringip geolocation country_code
ip_geolocation_stateStringip geolocation state
ip_last_seen_daysIntegerNumber of days that have passed since the ip address was last seen
ip_proxyBooleana flag indicating whether the ip is suspected to be a proxy ip
ip_proxy_riskclassStringan indicator of the riskiness associated to the type of the proxy ip
billing_address_first_seen_daysIntegerNumber of days that have passed since the address was first seen
billing_address_last_seen_daysIntegerNumber of days that have passed since the address was last seen.
billing_address_shipping_address_relationshipStringThe relationship between billing and shipping addressmatch
city_match
seen_together
seen_with_others
no_relationship
null
billing_address_to_nameStringThe match status between either of the input names and the queried entitynot-found
match
no-match
billing_address_validity_levelStringThe most granular level to which the address could be validatedmissing_address
invalid
valid_to_country
valid_to_city
valid_to_street
valid_to_house_number
valid_to_house_number_missing_apt
valid
billing_email_disposableBooleantrue if the email domain is disposable
billing_email_domain_creation_dateStringThe date when the email domain was created. Format is YYYY-MM-DD
billing_email_first_seen_daysIntegerCount of days since the email was first observed in Identity Network. If the email has not been observed before, firstSeenDays will be 0
billing_email_last_seen_daysIntegerNumber of days that have passed since the email address was last seen
billing_email_risk_scoreIntegeremail risk score, range: 0 - 100
billing_email_to_nameStringThe match status between the input name and the queried entitynot-found
match
no-match
billing_email_validBooleantrue if the email address is validtrue
false
billing_email_velocityIntegerNumber of times email has been seen in last 180 days
billing_ip_address_distanceIntegerThe distance (in miles) between the IP address and the physical address
billing_phone_carrierStringThe company that provides voice and/or data services for the phone number
billing_phone_to_nameStringThe match status between either of the input names and the queried entitynot-found
match
no-match
billing_phone_typeStringThe line type of the phone numberlandline:Traditional wired phone line
fixed-voip:VOIP-based fixed line phones
non-fixed-voip:Skype, for example
mobile:Wireless phone line
voicemail:Voicemail-only service
toll-free:Callee pays for call
premium:Caller pays a premium for the call
other:Anything that does not match the previous categories
billing_phone_validBooleantrue if the phone number is validtrue
false
shipping_address_first_seen_daysIntegerNumber of days that have passed since the address was first seen
shipping_address_last_seen_daysIntegerNumber of days that have passed since the address was last seen
shipping_address_to_nameStringThe match status between either of the input names and the queried entitynot-found
match
no-match
shipping_address_validity_levelStringThe most granular level to which the address could be validatedmissing_address
invalid
valid_to_country
valid_to_city
valid_to_street
valid_to_house_number
valid_to_house_number_missing_apt
valid
shipping_ip_address_distanceIntegerThe distance (in miles) between the IP address and the physical address
shipping_phone_carrierStringThe company that provides voice and/or data services for the phone number
shipping_phone_to_nameStringThe match status between either of the input names and the queried entitynot-found
match
no-match
shipping_phone_typeStringThe line type of the phone numberlandline:Traditional wired phone line
fixed-voip:VOIP-based fixed line phones
non-fixed-voip:Skype, for example
mobile:Wireless phone line
voicemail:Voicemail-only service
toll-free:Callee pays for call
premium:Caller pays a premium for the call
other:Anything that does not match the previous categories
shipping_phone_validBooleantrue if the phone number is validtrue
false
browserStringThe name of the browser used to authorize your product or service
device_email_payment_first_seen_daysIntegerNumber of days since the device, email address and the account number were first seen in our network
device_ip_email_first_seen_daysIntegerNumber of days since the device, IP and email address were first seen in our network
device_ip_first_seen_daysIntegerNumber of days since the device and IP were first seen in our network
device_ip_payment_first_seen_daysIntegerNumber of days since the device, IP and the account number associated to the payment method were first seen in our network
device_ip_tz_differenceStringThe difference between the browser’s time zone and the IP’s time zoneNull: Invalid inputs
0 – Low Risk
1 - Medium Risk
2+ – High Risk
devicet_ypeStringThe device type used to authorize your product or service
platformStringThe device platform used to authorize your product or service
card_holder_name_first_seen_daysIntegerCount of days since the payment card and name was first observed in the network
card_holder_name_velocityIntegerCount of times the payment card and name have been observed in the network over the past 90 days
merchant_category_ratioStringA ratio of the purchase amount compared to the median purchase amount seen for other similar merchants in the same category. The higher the ratio means that the purchase amount is further from the median purchase amount observed.
work_phone_carrierStringThe company that provides voice and/or data services for the phone number
work_phone_to_nameStringThe match status between either of the input names and the queried entitynot-found
match
no-match
work_phone_typeStringThe line type of the phone numberlandline:Traditional wired phone line
fixed-voip:VOIP-based fixed line phones
non-fixed-voip:Skype, for example
mobile:Wireless phone line
voicemail:Voicemail-only service
toll-free:Callee pays for call
premium:Caller pays a premium for the call
other:Anything that does not match the previous categories
work_phone_validBooleantrue if the phone number is validtrue
false

API Status Code

code含义
200Success
301Service not purchased
302Traffic blocked
303Traffic insufficient
304Service expired
305Daily maximum volume reached
9600System error
9606Illegal parameter

Response Example

{
  "code": 200,
  "message": "",
  "sequence_id": "1648777165770866F82AC7F326307055",
  "risk_score": 77,
  "risk_score_reason_code": "JB",
  "device_risk_score": 98,
  "ip_risk_score": 86,
  "ip_last_seen_days": 0,
  "ip_geolocation_country_code": "US",
  "ip_geolocation_city": "Colorado Springs",
  "ip_carrier": "xxxxxxx",
  "ip_geolocation_state": "Colorado",
  "ip_proxy": true,
  "ip_proxy_riskclass": "high",
  "ip_connection_type": "cable-dsl",
  "billing_email_risk_score": 89,
  "billing_email_valid": true,
  "billing_email_velocity": 9,
  "billing_email_disposable": false,
  "billing_email_to_name": "match",
  "billing_email_domain_creation_date": "1995-08-13",
  "billing_email_first_seen_days": 6979,
  "billing_email_last_seen_days": 0,
  "billing_phone_valid": true,
  "billing_phone_type": "premium",
  "billing_phone_carrier": "xxxxxx",
  "billing_phone_to_name": "no-match",
  "billing_ip_address_distance": 954,
  "billing_address_validity_level": "valid",
  "billing_address_to_name": "no-match",
  "billing_address_first_seen_days": 1437,
  "billing_address_last_seen_days": 0,
  "billing_address_shipping_address_relationship": "match",
  "shipping_phone_valid": true,
  "shipping_ip_address_distance": 954,
  "shipping_address_validity_level": "valid",
  "shipping_address_to_name": "no-match",
  "shipping_address_first_seen_days": 1011,
  "shipping_address_last_seen_days": 0,
  "shipping_phone_to_name": "no-match",
  "shipping_phone_type": "premium",
  "shipping_phone_carrier": "xxxxx",
  "devicet_ype": "Mac",
  "browser": "Chrome",
  "platform": "Mac OS X",
  "device_ip_tz_difference": 840,
  "device_ip_first_seen_days": 0,
  "device_ip_payment_first_seen_days": 0,
  "device_ip_email_first_seen_days": 0,
  "device_email_payment_first_seen_days": 0,
  "work_phone_to_name": "no-match",
  "work_phone_valid": true,
  "work_phone_type": "premium",
  "work_phone_carrier": "xxxxx",
  "card_holder_name_first_seen_days": 0,
  "card_holder_name_velocity": 0,
  "merchant_category_ratio": 2.6
}

附录1

Reason code含义
AAConsumer Identity is suspicious
ABIncreased Risk associated with Email
ACIncreased Risk associated with Email & IP
ADIncreased Risk associated with Email & Address
AEIncreased Risk associated with Email & Phone
AFIncreased Risk associated with Email & Name
AGIncreased Risk associated with IP
AHIncreased Risk associated with IP & Phone
AIIncreased Risk associated with IP & Address
AJIncreased Risk associated with IP & Name
AKIncreased Risk associated with Address
ALIncreased Risk associated with Address & Phone
AMIncreased Risk associated with Address & Name
ANIncreased Risk associated with Name
AOIncreased Risk associated with Name & Phone
APIncreased Risk associated with Phone
AQIncreased Risk associated with Device & Email
ARIncreased Risk associated with Device & IP
ASIncreased Risk associated with Address & Device
ATIncreased Risk associated with Device & Name
AUIncreased Risk associated with Device & Phone
AVIncreased Risk associated with Email & Payment
AWIncreased Risk associated with IP & Payment
AXIncreased Risk associated with Address & Payment
AYIncreased Risk associated with Name & Payment
AZIncreased Risk associated with Payment & Phone
JANew Consumer or not sufficient information
JBMedium Risk Signals associated with Email
JCMedium Risk Signals associated with Address
JDMedium Risk Signals associated with Phone
JEMedium Risk Signals associated with Name
JFMedium Risk Signals associated with IP
RAConsumer Trust Established across all elements
RBEstablished Credibility for Email
RCEstablished Credibility for Email & IP
RDEstablished Credibility for Email & Address
REEstablished Credibility for Email & Phone
RFEstablished Credibility for Email & Name
RGEstablished Credibility for IP
RHEstablished Credibility for IP & Phone
RIEstablished Credibility for IP & Address
RJEstablished Credibility for IP & Name
RKEstablished Credibility for Address
RLEstablished Credibility for Address & Phone
RMEstablished Credibility for Address & Name
RNEstablished Credibility for Name
ROEstablished Credibility for Name & Phone
RPEstablished Credibility for Phone
RQEstablished Credibility for Device & Email
RREstablished Credibility for Device & IP
RSEstablished Credibility for Address & Device
TYEstablished Credibility for Device & Name
RUEstablished Credibility for Device & Phone
RVEstablished Credibility for Email & Payment
RWEstablished Credibility for IP & Payment
RXEstablished Credibility for Address & Payment
RYEstablished Credibility for Name & Payment
RZEstablished Credibility for Payment & Phone