Key Features:
- Global Coverage
Data from multiple sources worldwide, including hard-to-reach markets, is available through a single integration. - Risk Insights
Predictive features and machine learning, powered by extensive personal data, advanced feature generation, and consortium data. - Tailored Solutions
A full-featured solution designed specifically for account opening, third-party fraud, and synthetic identity detection. - Onboarding Orchestration
Coordinated Person Verification using watchlist checks, and fraud
Request Parameters
Names and either a phone number or email are required with all other fields are optional, but every field helps improve predictiveness.
When submitting data to the Fraud Intelligence API, the following fields should be included in your request:
- First Name
- Last Name
- Date of Birth
- Phone
- IP Address
- Address
- City
- Postal Code
- State
- Country
Endpoint: https://api.trulioo.com/v3/personfraud/check
Example Request
{
"VerificationType": "Test",
"PackageId":"f84f09f0-213a-4499-8370-29f371edddd",
"CleansedAddress": false,
"CountryCode": "US",
"DataFields": {
"PersonInfo": {
"FirstGivenName": "Andrew",
"FirstSurName": "Smith",
"YearOfBirth": "1990"
},
"Location": {
"AdditionalFields": {
"Address1": "123 Main"
}
},
"Communication": {
"Telephone": "+9999999982",
"EmailAddress": "[email protected]"
},
"CountrySpecific": {
"US": {
"IPAddress": "0.0.0.0"
}
}
},
"VerboseMode": true
}
Example Response
{
"TransactionID": "4b69ecc6-bf5a-40ea-8f66-c5c3fbc5d234",
"UploadedDt": "2022-11-01T21:32:11.820572",
"CompletedDt": "2022-11-01T21:32:12.206823",
"CountryCode": "US",
"ProductName": "Identity Verification",
"Record": {
"TransactionRecordID": "202d6250-4331-2252-a725-74854ba444f3",
"RecordStatus": "nomatch",
"SecondaryRecordStatus": "match",
"DatasourceResults": [
{
"DatasourceName": "Trulioo Person Fraud",
"DatasourceFields": [],
"AppendedFields": [
"ScoreRiskSignals": {
"ScoreType": "Fraud",
"ReasonCodes": {
"PhoneToIPCountry": true,
"EmailAndPhoneLinked": true,
"EmailToPhoneProfileImage": null,
"NameAnomalous": true
},
"RiskLevel": "Medium",
"Score" : 450
},
"PhoneRiskSignals": {
"PhoneToName": "Match",
"PhoneLineType": "Mobile",
"PhoneFirstSeen": "2016-05-01"
"PhoneInfo": {
"PhoneValid": true,
"PhoneCarrier": "T-Mobile",
"PhoneIsDisposable": true,
"LastPortDate": "2017-05-29",
"IsBusiness": true
},
"PhoneOnlineAccounts": {
"PhoneNetworkingAccountsCount": 1,
"PhoneEcommerceAccountsCount": 2,
"PhonePlatformAccountsCount": 1,
"PhoneOtherAccountsCount": 3,
"PhoneCallingAccountsCount": 2,
"PhoneAllAccountsCount": 9
},
"PhoneDataBreachCount": 0
},
"EmailRiskSignals": {
"EmailFirstSeen": "2017-05-29",
"EmailToName": "Match",
"EmailInfo": {
"EmailValid": "valid",
"EmailIsDisposable": true,
"EmailType": "free",
"EmailDomainCreationDate": "2011-06-29",
"EmailDomainRegisteredTo": "Gabetti Property Solutions Spa",
"IsRandomlyGenerated": true,
"EmailHandleNameApplicantNameMismatch": true,
"EmailOrganizationType": "corporate"
},
"EmailOnlineAccounts": {
"EmailNetworkingAccountsCount": 2,
"EmailEcommerceAccountsCount": 2,
"EmailMessagingAccountsCount": 1,
"EmailOtherAccountsCount": 3,
"EmailAllAccountCount": 8
},
"EmailDataBreachCount": 0
},
"IPRiskSignals": {
"IPInfo": {
"ISPName": "Fastweb",
"IPCountry": "US",
"IPCity": "San Diego",
"IPConnectionType": "Commercial",
"IPCompanyDomain": "google.com",
"IPCompanyName": "Trulioo Inc."
},
"IPGeo": {
"IPCountry": "US",
"IPCity": "San Diego",
"IPLat": "47.561",
"IPLong": "-122.155",
"IPPostalCode": "20104"
},
"IPCategories": {
"Proxy": true,
"ProxyType": "datacenter",
"Tor": true,
"VPN": true,
"BlacklistCount": 2,
"CloudHost": true,
"IsRelay": true
}
},
"FeaturesRiskSignals": {
"VelocityEmailToDistinctPerson": 2,
"VelocityPhoneToDistinctPerson": 2,
"VelocityIPToDistinctPerson": 3
}
],
"Errors": [],
"FieldGroups": []
}
],
"Errors": [],
"Rule": {
"RuleName": "RuleScript - NameAnd2Tokens_v41",
"Note": "2 Record Match (FN/DOB/ID)",
"SecondaryRuleName": "RuleScript - NameAndDOB_v33",
"SecondaryRuleNote": "1 Records Match (FirstName AND LastName AND DOB) AND 1 Records Match (FirstName AND LastName)"
}
},
"Errors": []
}
Request and Response Structure
Upon submitting a request, the API will return a response containing several key elements. These elements provide insight into the potential risks associated with the submitted data:
Score: A risk score, including the type of score, associated reason codes, and the overall risk level.
Input
Customer Configuration
Field | Description | Required (Y/N) | Field Type | Notes |
---|---|---|---|---|
Product | Product category to do fraud check for a company with multiple products (Prepaid gift cards, loans, etc...) | No | String | If the company has multiple products, the product that this request originates from (e.g. mortgages, loans, seller onboarding etc., ) |
Channel | Channel where information was collected (online, App, Phone, etc...) | No | String | Channel where information was collected (Online, App, Phone, In-Person, etc...) |
UseCase | Use case of fraud check (3rd Party Application Fraud, Synthetic ID checks, Seller onboarding, Maintenance, etc...) | No | String |
Data Class:
Field | Description | Required (Y/N) | Field Type | Notes |
---|---|---|---|---|
TransactionID | ID of the transaction provided by Trulioo GG | Yes | String | Unique ID for the transaction ID, generated by Trulioo. Key used to map back to the transaction when feedback data is provided. This field is also returned in the response |
UserID | End user ID which Trulioo's customer identifies their end user | No | String | This can hold things like an applicant ID, application ID, transaction ID, etc. |
FirstGivenName | First name of the individual to be verified | Yes | String | |
FirstSurName | Last name of the individual to be verified | Yes | String | |
NationalID | National ID Number | No | String | |
EmailAddress | Email Address | Yes* | String | One of Email or Telephone is required |
Telephone | Telephone number of the individual to be verified | Yes* | One of Email or Telephone is required | |
IPAddress | IP Address, either in IPv4 or IPv6 format | No |
Date of Birth
Field | Description | Required (Y/N) | Field Type |
---|---|---|---|
DayOfBirth | Day of birth date (ie 23 for a date of birth of 23/11/1975) | No | DD |
MonthOfBirth | Month of birth date (ie 11 for a date of birth of 23/11/1975) | No | MM |
YearOfBirth | Year of birth date (ie 1975 for a date of birth of 23/11/1975) | No | YYYY |
Address
Field | Description | Required (Y/N) |
---|---|---|
Address1 OR UnitNumber, BuildingName, BuildingNumber, HouseNumber, StreetNumber, CivicNumber, StreetName, StreetType | Street address of primary residence | No |
UnitNumber HouseExtension | No | |
City | City of primary residence | No |
PostalCode | ZIP Code or Postal Code of primary residence | No |
StateProvinceCode | State of primary residence. US sources expect 2 characters. Australian sources expect 2 or 3 characters. | No |
Country | Country of physical address (ISO 3166-1 alpha-2) | No |
Output
Score
Field | Description | Field Type | Field Values | Notes |
---|---|---|---|---|
Score | Risk Score | Integer | 0-1000 | Trulioo Risk Score reflects the risk rating for a transaction. Higher scores indicate higher risk of potential fraud. |
ScoreType | Type of Fraud associated with risk score (3rd party fraud and synthetic fraud) | String | “Fraud” | This is defaulted to indicate “Fraud”. Should we be providing multiple scores, we will elaborate the score based on the type of fraud e.g. score = 750 score type = 3rd party fraud |
ReasonCodes | List of reason codes related to input data | String | See Reference object details below for a full list of reason codes we provide | |
RiskLevel | Risk category based on the Risk Score. | String | -Very Low -Low -Medium -High -Very High | Very Low: Score = 0 to 225. Strong and consistent positive signals Low: Score = 226 to 450. Multiple positive signals Medium: Score = 451 to 550. Partial information available High: Score = 551 to 775. Multiple negative signals Very High: Score = 776 to 1000. Many negative signals and almost no positive signals |
Email Info
Field | Description | Field Type | Field Values | Notes |
---|---|---|---|---|
EmailToName | The match status between the input name and the email address | String | -match -no match -not found | Identify whether input name is associated with the input email. |
EmailFirstSeen | The date when the input email address was first observed | Date | YYYY-MM-DD | Date when the input email address was first observed. If the input email has not been observed before, the date will be today |
EmailValid | Indicates whether the email address provided is a valid and functional email | String | -valid -invalid -unknown -null | Ex: Google LLC. This is typically useful when associated with a non-free email. Example: [email protected] |
EmailType | Indicates whether the email address provided belongs to a free email service provider or a company / paid account. | String | -is_free -business_website_exists -business_no_website -null | |
EmailIsDisposable | Indicates whether the email address provided belongs to a temporary email service provider | Boolean | -true -false -null | |
EmailDomainCreationDate | The date when the email domain was created | Date | -Date -null | Format: YYYY-MM-DD Ex: 2011-06-29 |
EmailDomainRegisteredTo | Indicates the individual or entity registered to the email domain | String | -String -Null | Ex: Google LLC. This is typically useful when associated with a non-free email. Example: [email protected] |
IsRandomlyGenerated | Indicates whether the email address provided is randomly generated | Boolean | Boolean | An example email would be [email protected] |
EmailHandleApplicantNameMatch | Indicates whether the email handle contains the input name | Boolean | Boolean |
Email Linked Accounts
Field | Description | Field Type | Field Values | Notes |
---|---|---|---|---|
EmailNetworkingAccountsCount | Number of networking accounts have been linked to the email address | Integer | Integer | |
EmailEcommerceAccountsCount | Number of ecommerce accounts have been linked to the email address | Integer | Integer | |
EmailMessagingAccountsCount | Number of messaging accounts have been linked to the email address | Integer | Integer | |
EmailOtherAccountsCount | Number of other accounts have been linked to the email address | Integer | Integer | |
EmailAllAccountsCount | Total number of accounts have been linked to the email address | Integer | Integer | Generally we find that users personal emails are associated with a number of different accounts. Fraudulent or throwaway emails rarely have this characteristic. |
Phone
Field | Description | Field Type | Field Values | Notes |
---|---|---|---|---|
PhoneToName | The match status between the input name and the phone number provided | String | - Match - No match - Not found - Null | Input first and last name provided are associated to the phone number |
PhoneLineType | The line type of phone number | String | - Landline - Mobile - VOIP - Toll-Free - Landline - Unknown - Other | Unknown is usually due to invalid |
PhoneFirstSeen | The date when the input phone number was first observed and associated with input name | Date | YYYY-MM-DD |
Phone Info
Field | Description | Field Type | Field Values | Notes |
---|---|---|---|---|
PhoneValid | Indicates whether the phone provided is a valid | Boolean | -True -False -Null | |
PhoneCarrier | Indicates the phone carrier associated with the input phone number | String | -String -Null | Ex: T-Mobile US |
PhoneIsDisposable | Indicates whether the input phone number belongs to a temporary phone service provider | Boolean | -True -False -Null | |
LastPortDate | Indicates the date of the last portability event of input phone number | Date | -Date -Null | Very recent port dates are higher risk. |
IsBusiness | Indicates whether the caller type of input phone number is business | Boolean | -True -False -Null | US only |
Phone Social Media Apps
Field | Description | Field Type | Field Values | External Notes |
---|---|---|---|---|
PhoneNetworkingAccountsCount | Number of networking accounts have been linked to the input phone number | Integer | 0,1,2, etc… | |
PhoneEcommerceAccountsCount | Number of ecommerce accounts have been linked to the input phone number | Integer | 0,1,2, etc… | |
PhoneOtherAccountsCount | Number of other accounts have been linked to the input phone number | Integer | 0,1,2, etc… | |
PhonePlatformAccountsCount | Number of platform accounts have been linked to the input phone number | Integer | 0,1,2, etc… | |
PhoneCallingAccountsCount | Number of calling accounts have been linked to the input phone number | Integer | 0,1,2, etc… | |
PhoneAllAccountsCount | Total number of accounts have been linked to the email address | Integer | 0,1,2, etc… | Generally we find that users personal phone is associated with a number of different accounts. Fraudulent or throwaway emails rarely have this characteristic. |
IP Categories
Field | Field Description | Type | Field Values | External Notes |
---|---|---|---|---|
Proxy | Indicates whether the input IP address is from a proxy | Boolean | -True -False -Null | |
ProxyType | The type of proxy from the input IP Address | String | -Datacenter -Residential -Rotating -Unknown -Null | |
Tor | Indicate whether the input IP address is associated to TOR | Boolean | -True -False -Null | |
VPN | Indicate whether the input IP Address is under a VPN | Boolean | -True -False -Null | |
BlacklistCount | Number of providers that have flagged the input IP Address as spam, suspicious traffic, etc…) | Integer | 0,1,2, etc... | |
CloudHost | Indicate whether the input IP Address is from a hosted network | Boolean | -True -False -Null | |
IsRelay | Indicate whether the input IP Address configured to act as relay | Boolean | -True -False -Null |
IP Geo
Field | Description | Type | Field Values | Notes |
---|---|---|---|---|
IPCountry | The name of the country where the the input IP Address is located (format is ISO 3166 alpha-2) | String | -String -Null | |
IPCity | The city where the input IP address is located | String | -String -Null | |
IPPostalCode | The postal code where the input IP Address is located | String | -String -Null | |
IPLat | The latitude of the input IP address’s geolocation | Float | 55.752 | |
IPLong | The longitude of the input IP address’s geolocation | Float | 110.133 |
IP Info
Field | Description | Type | Field Values | Notes |
---|---|---|---|---|
IPConnectionType | The usage classification type of Internet service provider (ISP) that owns the input IP Address | String | -String -Commercial -Content Delivery Network -Fixed Line -Mobile ISP -Reserved -University -Null | University Indicates whether the input IP address is from a proxy/ College / School |
ISPName | The name of the internet service provider that owns the input IP Address | String | -String -Null | Ex: Ignite Visibility |
IPCompanyDomain | The name of the domain of the company that registered to the input IP Address | String | -String -Null | Ex: google.com |
IPCompanyName | The name of the company that registered to the input IP Address | String | -String -Null | Ex: Apple Inc. |
Features Velocity
Field | Description | Type | Field Values | Notes |
---|---|---|---|---|
VelocityOfEmailToDistinctPerson | Number of times that the input email address is linked to the unique persons | Integer | 0,1,2, etc… | Indicates how many times we see the input email address is submitted with the input name under the same transaction |
VelocityOfPhoneToDistinctPerson | Number of times that the input phone is linked to the unique persons | Integer | 0,1,2, etc… | Indicates how many times we see the input phone number is submitted with the input name under the same transaction |
VelocityOfAddressToDistinctPerson | Number of times that the input address is linked to the unique persons | Integer | 0,1,2, etc… | Indicates how many times we see the input primary address is submitted with the input name under the same transaction |
Reference - Reason Code
Field | Description | Type | Field Values |
---|---|---|---|
PhoneToIPCountry | Indicate whether the country associated with the input phone number matches the country associated with the input IP Address | Boolean | -True -False |
EmailAndPhoneLinked | Indicate whether the input email address and input phone number are linked to each other | Boolean | -True -False |
EmailToPhoneProfileImage | Indicate whether all profile pictures obtained from both input email address and input phone number sources exhibit faces are match | Boolean | -True -False |
NameAnomalous | Indicates whether the name is anomalous | Boolean | -True -False |