Skip to main content

Risk signals

Risk Signals are additional services that are typically used to augment the standard services. They include:

  • Risk Signal: Address Validation
    • Address Validation
    • Proof of Residency
  • Risk Signal: Department of Motor Vehicles Check
  • Risk Signal: Device Risk
  • Risk Signal: Global Identity Check (formerly Ekyc Verification)
  • Risk Signal: Email Verification
  • Risk Signal: Government Database Check
  • Risk Signal: Mexican INE Data & Face Validation
  • Risk Signal: Phone Verification
  • Risk Signal: SSN Verification
  • Risk Signal: Geo IP Verification
  • Risk Signal: eKYC Checks

Risk Signal: Address Validation

Address Validation determines if the address extracted from a government-issued ID (e.g. passport, driver’s license, ID card) exists in the real world. Jumio checks the address against a number of trusted data sources (e.g. USPS, Royal Mail) to properly format and ensure that the address exists in a given jurisdiction.

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

KeyTypeMandatoryDescription
firstNamestringnoFirst name of the subject.
middleNamestringnoMiddle name of the subject.
lastNamestringnoLast name of the subject.
dateOfBirthLocalDatenoDate of birth in YYYY-MM-DD format only
socialSecurityNumberstringMust include one of:
- socialSecurityNumber
- personalNumber
- idNumber
SSN of the subject.
personalNumberstringMust include one of:
- socialSecurityNumber
- personalNumber
- idNumber
For Brazil, this will be the CPF number.
addressObjectYes
address.line1stringno
address.line2stringno
address.citystringYesCity of residence as it appears on the Id.
address.postalCodestringYesPostal or zip code.
address.subdivisionstringYesCity subdivision of residence as it appears on the Id.
address.countrystringYesCountry in ISO-3166-1 Alpha-3 Code or ISO-3166-1 Alpha-2 Code format.
id.idNumberstringMust include one of:
- socialSecurityNumber
- personalNumber
- idNumber
Primary id number on the identity document.

Example Prepared Data Body

{
"firstName": "John",
"middleName": "",
"lastName": "Smith",
"dateOfBirth": "1972-11-16",
"socialSecurityNumber": "123456789",
"address": {
"line1": "12345 SW Address Ln",
"postalCode": "97201",
"city": "Portland",
"subdivision": "OR",
"country": "USA"
}
}

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Example Response

"capabilities": {
"addressValidation": [{
"id": "f72b219b-1878-4631-82e3-a16340dfda7a",
...
"decision": {
"type": "WARNING",
"details": {
"label": "ALERT"
}
},
"data": {
"reasonMessage": "Administrative Area Change, SubAdministrative Area Change,Unknown Street,Locality Partial,Geocoded to Community Level"
}
}]

Decision Details Labels

Decision TypeLabelDescription
PASSEDOK
REJECTEDDENY
WARNINGALERT
WARNINGNOT_ENOUGH_DATA
NOT_EXECUTEDUNSUPPORTED_COUNTRY
NOT_EXECUTEDTECHNICAL_ERROR

Data: Reason Messages

Address Validation Messages

Short DescriptionLong Description
Administrative Area PartialThe address has been partially verified to the Administrative Area (State) Level, which is NOT the highest level possible with the reference data.
Locality PartialThe address has been partially verified to the Locality (City) Level, which is NOT the highest level possible with the reference data.
Thoroughfare PartialThe address has been partially verified to the Thoroughfare (Street) Level, which is NOT the highest level possible with the reference data.
Premise PartialThe address has been partially verified to the Premise (House or Building) Level, which is NOT the highest level possible with the reference data.
Administrative Area FullThe address has been verified to the Administrative Area (State) Level, which is the highest level possible with the reference data.
Locality FullThe address has been verified to the Locality (City) Level, which is the highest level possible with the reference data.
Thoroughfare FullThe address has been verified to the Thoroughfare (Street) Level, which is the highest level possible with the reference data.
Premises FullThe address has been verified to the Premise (House or Building) Level, which is the highest level possible with the reference data.
SubPremises FullThe address has been verified to the SubPremise (Suite) or PO Box Level, which is the highest level possible with the reference data.

Geocode Status Messages

Short DescriptionLong Description
Geocoded to Street LevelThe record was coded to the street level (Zip+4 for US, full postal code for CA).
Geocoded to the Neighborhood LevelThe record was geocoded down to neighborhood level (Zip+2 for US).
Geocoded to Community LevelThe record was coded to the community level (ZIP centroid for US, 3-digit postal code for CA).
Geocoded to State LevelThe record was geocoded to the state (administrative area) level.
Geocoded to Rooftop LevelThe record was geocoded down to the rooftop level, meaning the point is within the property boundaries, usually the center.
Geocoded to Interpolated Rooftop LevelThe record was geocoded down to the rooftop level using interpolation (educated estimations using street coordinates). The point may be in or close to the property boundaries.

Address Error Messages

Short DescriptionLong Description
Postal Code Error/General ErrorThe address could not be verified at least up to the postal code level.
Unknown StreetCould not match the input street to a unique street name. Either no matches or too many matches found.
Component Mismatch ErrorThe combination of directionals (N, E, SW, etc) and the suffix (AVE, ST, BLVD) is not correct and produced multiple possible matches.
Multiple MatchThe address was matched to multiple records. There is not enough information available in the address to break the tie between multiple records.
Sub Premise Number InvalidAn address element after the house number, in most cases the sub-premise, was not valid.
Sub Premise Number MissingAn address element after the house number, in most cases the sub-premise, was missing.
Premise Number InvalidThe premise (house or building) number for the address is not valid.
Premise Number MissingThe premise (house or building) number for the address is missing.
Box Number InvalidThe PO (Post Office Box), RR (Rural Route), or HC (Highway Contract) Box number is invalid.
Box Number MissingThe PO (Post Office Box), RR (Rural Route), or HC (Highway Contract) Box number is missing.
PMB Number MissingUS Only. The address is a Commercial Mail Receiving Agency (CMRA) and the Private Mail Box (PMB or #) number is missing.

Portal View

Open a transaction in the Portal to review the response. The risk signal is labeled Address Validation as shown in the figure below.

Supported Countries

The following countries are supported by Address Validation today. The Address and Geocoding fields are further classified as follows.

Verification LevelGeoCode Level
AV-2LocalityG-2Locality
AV-3ThoroughfareG-3Thoroughfare
AV-4PremisesG-4Interpolated Rooftop
AV-5Delivery PointG-5Rooftop
Country/Territory NameISO2RegionAddressGeocoding
Aland IslandsAXWEAV-4G-4
AlbaniaALEEAV-3G-2
American SamoaASNAAV-4G-3
AndorraADWEAV-4G-5
AngolaAOMEAAV-3G-4
ArgentinaARSAAV-4G-4
AustraliaAUAPAAV-5G-5
AustriaATWEAV-5G-5
AzerbaijanAZEEAV-4G-4
BahamasBSCACAV-4G-4
BahrainBHMEAAV-4G-4
BangladeshBDASIAAV-4G-4
BelarusBYEEAV-3G-4
BelgiumBEWEAV-4G-5
BermudaBMCACAV-4G-4
Bosnia and HerzegovinaBAEEAV-4G-5
BotswanaBWMEAAV-4G-4
BrazilBRSAAV-5G-5
Brunei DarussalamBNASIAAV-4G-4
BulgariaBGEEAV-4G-5
CanadaCANAAV-5G-5
Cayman IslandsKYCACAV-4G-4
ChileCLSAAV-4G-4
ColombiaCOSAAV-4G-4
Costa RicaCRCACAV-3G-3
CroatiaHREEAV-4G-4
CyprusCYWEAV-4G-4
Czech RepublicCZEEAV-4G-5
DenmarkDKWEAV-4G-5
EgyptEGMEAAV-4G-5
EstoniaEEEEAV-4G-5
EswatiniSZMEAAV-3G-4
FinlandFIWEAV-4G-4
FranceFRWEAV-5G-5
French GuianaGFSAAV-4G-5
GermanyDEWEAV-5G-5
GibraltarGIWEAV-4G-4
GreeceGRWEAV-4G-4
GuadeloupeGPCACAV-4G-5
GuamGUNAAV-5G-3
GuatemalaGTCACAV-3G-4
GuernseyGGWEAV-5G-4
Hong KongHKASIAAV-5G-4
HungaryHUEEAV-4G-5
IcelandISWEAV-4G-4
IndiaINASIAAV-4G-5
IndonesiaIDASIAAV-4G-5
IrelandIEWEAV-5G-4
Isle of ManIMWEAV-5G-4
IsraelILMEAAV-4G-5
ItalyITWEAV-4G-5
JapanJPASIAAV-5G-5
JerseyJEWEAV-5G-4
JordanJOMEAAV-4G-4
KazakhstanKZEEAV-4G-5
Korea, Republic ofKRASIAAV-5G-4
KuwaitKWMEAAV-3G-3
LatviaLVEEAV-4
LebanonLBMEAAV-4G-4
LiechtensteinLIWEAV-4G-5
LithuaniaLTEEAV-4G-4
LuxembourgLUWEAV-4G-5
MacaoMOASIAAV-4G-4
MacedoniaMKEEAV-4G-5
MalaysiaMYASIAAV-4G-5
MaltaMTWEAV-4G-5
Marshall IslandsMHNAAV-4G-3
MartiniqueMQCACAV-4G-5
MayotteYTMEAAV-4G-5
MexicoMXNAAV-4G-4
MicronesiaFMNAAV-4G-3
MonacoMCWEAV-4G-5
MontenegroMEEEAV-4G-4
MoroccoMAMEAAV-4G-4
MozambiqueMZMEAAV-3G-4
NamibiaNAMEAAV-4G-4
NetherlandsNLWEAV-5G-5
New ZealandNZAPAAV-4G-4
NigeriaNGMEAAV-3G-4
Northern Mariana IslandsMPNAAV-4G-4
NorwayNOWEAV-4G-4
OmanOMMEAAV-4G-4
PalauPWNAAV-4G-3
PanamaPACACAV-4G-5
ParaguayPYSAAV-4G-4
PeruPESAAV-4G-4
PhilippinesPHASIAAV-4G-4
PolandPLEEAV-4G-5
PortugalPTWEAV-4G-4
Puerto RicoPRNAAV-5G-3
QatarQAMEAAV-4G-4
RéunionREMEAAV-4G-5
RomaniaROEEAV-4G-5
RussiaRUEEAV-5G-5
Saint BarthélemyBLCACAV-2G-4
Saint Pierre and MiquelonPMNAAV-4G-5
San MarinoSMWEAV-4G-4
Saudi ArabiaSAMEAAV-4G-5
SerbiaRSEEAV-4
SingaporeSGASIAAV-4G-5
SlovakiaSKEEAV-4G-5
SloveniaSIEEAV-4G-4
South AfricaZAMEAAV-4G-5
SpainESWEAV-4G-5
Sri LankaLKASIAAV-3G-4
SurinameSRSAAV-4G-4
SwedenSEWEAV-4G-4
SwitzerlandCHWEAV-4G-4
TaiwanTWASIAAV-4G-5
ThailandTHASIAAV-4G-5
TunisiaTNMEAAV-4G-4
TurkeyTREEAV-4G-5
UkraineUAEEAV-4G-5
United Arab EmiratesAEMEAAV-4G-4
United KingdomGBWEAV-5G-5
United States of AmericaUSNAAV-5G-5
United States Virgin IslandsVINAAV-5G-3
UruguayUYSAAV-4G-4
VietnamVNASIAAV-4G-5
ZimbabweZWMEAAV-4G-4

Risk Signal: Proof of Residency

Jumio Proof of Residence checks with government, credit and commercial data sources from around the world to corroborate that the physical address on an ID document exists. Jumio then determines if the person being verified online actually lives at the extracted address.

The following countries are support by Proof of Residency today:

  • Australia
  • Canada
  • France
  • Germany
  • Italy
  • Mexico
  • Spain
  • United Kingdom
  • United States

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

KeyTypeMandatoryDescription
firstNamestringYesFirst name of the subject.
middleNamestringYesMiddle name of the subject.
lastNamestringYesLast name of the subject.
emailstringYesPrimary email address of the subject.
phoneNumberstringYesPrimary phone number of the subject.
addressobjectYes
id.idNumberstringPrimary id number on the identity document.

Example Prepared Data Body

{
    "firstName": "Billy",
    "lastName": "Buck",
    "middleName": "Bob",
    "email": "billybuckbob@gmail.com",
    "phoneNumber": "6441234567",
     "address": {
            "line1": "1835 ne",
            "postalCode": "95051",
            "city": "Malarkey",
            "state": "WA",
            "subdivision": "WA",
            "country": "USA"
       },
    "id": {
        "idNumber": "abc123"                
    }
}        

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Example Response

"capabilities": {
        "proofOfResidency": [
            {
                "id": "debbccf1-b03f-425d-aa1b-771251dbc465",
                "credentials": [
                    {
                        "id": "07a5046c-21dd-436b-82c3-4fc0a94c636a",
                        "category": "DATA"
                    }
                ],
                "decision": {
                    "type": "REJECTED",
                    "details": {
                        "label": "DENY"
                    }
                },
                "data": {
                    "reasonMessage": "Unknown Street"
                }
            }
        ]
    }

Decision Details Labels

Decision TypeLabelDescription
PASSEDOK
REJECTEDDENY
WARNINGALERT
WARNINGNOT_ENOUGH_DATA
NOT_EXECUTEDUNSUPPORTED_COUNTRY
NOT_EXECUTEDTECHNICAL_ERROR

Portal View

Open a transaction in the Portal to review the response. The risk signal is labeled Address Validation as shown in the figure below.

Risk Signal: Department of Motor Vehicles Check

The Jumio Department of Motor Vehicles (DMV) check is used to validate that a US driver’s license or ID card issued by the DMV is valid.

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

KeyTypeMandatoryDescription
firstNamestringYes
middleNamestringNo
lastNamestringYes
dateOfBirthstringYesin YYYY-MM-DD format
address fields
address.line1
address.line2
address.city
address.postalCode
address.subdivision

address.country
string
string
string
string
string

string
Yes
No
Yes
Yes
Yes
State name can be provided here.
See Supported States.
country should be ISO Alpha 3 Code only
id.idNumberstringYesnumber for ID being provided
id.issuingDatestringYesin YYYY-MM-DD format only
id.expiryDatestringYesin YYYY-MM-DD format only
id.typestringYesonly possible values are: 
_ DRIVING_LICENSE
_ PERMIT
* ID_CARD

Example Prepared Data Body

{
"firstName": "J\*\*\*\*",
"middleName": "J\*\*\*\*",
"lastName": "\*\*\*\*h",
"dateOfBirth": "1972-\*\*-1\*",
"address": {
"line1": "\*\*\*\*\* SW Address Ln",
"postalCode": "9\*\*\*1",
"city": "\*\*\*\*",
"subdivision": "OR",
"country": "USA"
},
"id": {
"idNumber": "0\*\*\*\*\*812",
"type": "DRIVING\_LICENSE",
"issuingDate": "20\*\*-01-\*\*",
"expiryDate": "20\*\*-01-\*\*"
}
}

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Example Response

"drivingLicenseVerification": \[
{
"id": "bd91fa85-8ef8-42d2-a064-954a30c10ed6",
"credentials": \[
{
"id": "51c426f0-3e34-4c62-a552-85a73e9d52de",
"category": "DATA"
}
\],
"decision": {
"type": "WARNING",
"details": {
"label": "ALERT"
}
},
"data": {
"nameMatch": "MATCH",
"firstNameMatch": "MATCH",
"lastNameMatch": "MATCH",
"middleNameMatch": "MATCH",
"addressMatch": "NOT\_MATCH",
"addressLine1Match": "NOT\_MATCH",
"addressLine2Match": "NOT\_MATCH",
"cityMatch": "MATCH",
"stateMatch": "MATCH",
"zipCodeMatch": "MATCH",
"dobMatch": "MATCH",
"idNumberMatch": "MATCH",
"expiryDateMatch": "MATCH",
"issuingDateMatch": "MATCH"
},
}

Decision Details Labels

Decision TypeLabelDescription
PASSEDOKProvided data matches DMV data.
REJECTEDDENYProvided data does not match DMV data.
WARNINGALERTProvided data partially matches DMV data.
NOT_EXECUTEDUNSUPPORTED_COUNTRYProvided address.country value is not supported. Must be USA.
NOT_EXECUTEDUNSUPPORTED_STATEProvided address.subdivision value is not supported. Must be a USA state listed below.
NOT_EXECUTEDTECHNICAL_ERRORVerify the provided data is correct and retry, or contact Support.

Data

KeyPossible ValuesDescription
nameMatchMATCH
NOT_MATCH
First and last name both match.
firstNameMatchMATCH
NOT_MATCH
First name matches.
lastNameMatchMATCH
NOT_MATCH
Last name matches.
middleNameMatchMATCH
NOT_MATCH
Middle name matches.
addressMatchMATCH
NOT_MATCH
All address values match.
addressLine1MatchMATCH
NOT_MATCH
Line1 address value matches.
addressLine2MatchMATCH
NOT_MATCH
Line2 address value matches.
cityMatchMATCH
NOT_MATCH
City address value matches.
stateMatchMATCH
NOT_MATCH
State address value matches.
zipCodeMatchMATCH
NOT_MATCH
Postal code address value matches.
dobMatchMATCH
NOT_MATCH
Date of birth matches.
idNumberMatchMATCH
NOT_MATCH
The number of the license, permit, or ID card matches.
expiryDateMatchMATCH
NOT_MATCH
Expiration date matches.
issuingDateMatchMATCH
NOT_MATCH
Issue date matches.

Supported States

The following states are supported by our DMV check today. Currently, this is available in the USA only.

StateAbbrv Code
ALABAMAAL
ARKANSASAR
ARIZONAAZ
COLORADOCO
CONNECTICUTCT
DISTRICT OF COLUMBIADC
DELAWAREDE
FLORIDAFL
GEORGIAGA
HAWAIIHI
IOWAIA
IDAHOID
ILLINOISIL
INDIANAIN
KANSASKS
KENTUCKYKY
MASSACHUSETTSMA
MARYLANDMD
MAINEME
MICHIGANMI
MISSOURIMO
MISSISSIPPIMS
MONTANAMT
NORTH CAROLINANC
NORTH DAKOTAND
NEBRASKANE
NEW JERSEYNJ
NEW MEXICONM
NEVADANV
OHIOOH
OREGONOR
RHODE ISLANDRI
SOUTH DAKOTASD
TENNESSEETN
TEXASTX
VIRGINIAVA
VERMONTVT
WASHINGTONWA
WISCONSINWI
WEST VIRGINIAWV
WYOMINGWY

Risk Signal: Device Risk

Device Risk provides an overall risk & reputation assessment of the device used to initiate a transaction. Data about the device are captured and passed as a credential to be evaluated by the transaction workflow. How the device data is captured and uploaded depends on the integration channel:

  • Integrations using the Jumio Web Client do not require any additional integration work. The Web Client is pre-configured to support Device Risk.
  • Mobile apps need to integrate an SDK to generate a blackbox string containing the required device data and then upload the blackbox as a Prepared Data credential using the REST API. See Device Risk with Mobile SDK.
  • Integrations that use the Jumio Web SDK must implement a reverse proxy to download required third-party scripts. See Device Risk with Web SDK.
  • Web application integrations that want to use Device Risk as a standalone service can acquire the device data as a blackbox string and upload it as Prepared Data. See Device Risk with REST API.

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Example Response

"deviceRiskVerification": \[
{
"id": "96d466c7-b47a-48b8-a1c3-ca1c84365aa4",
"credentials": \[
{
"id": "08c7bca9-2836-4c5b-8717-859a9d9b255e",
"category": "DATA",
"label": "DATA"
}
\],
"decision": {
"type": "REJECTED",
"details": {
"label": "HIGH\_RISK"
}
},
"data": {
"deviceModel": "WINDOWS",
"deviceOS": "WINDOWS NT 6.1",
"browser": "CHROME",
"trueIP": "50.165.158.124",
"ipLocationCity": "MARIETTA",
"ipLocationCountry": "USA",
"ipLocationLatitude": "33.9525",
"ipLocationLongitude": "-84.55",
"ipLocationRegion": "GEORGIA",
"metaDataAge": "292784828",
"deviceAlerts": \[
"Transactions Per Device- 15 in 1 day",
"Owned Evidence Exists",
"Device Risk Global",
"IP Address Risk Global"
\],
"browserCookiesEnabled": true,
"browserLanguage": "EN-US",
"browserVersion": "35.0.1916.114",
"deviceFirstSeen": "2017-08-24T19:40:59.163Z",
"deviceScreen": "900X1600",
"isp": "COMCAST",
"flashEnabled": true,
"browserTimezone": "+06:00",
"deviceIsNew": false
}

Decision Details Labels

Decision TypeLabelDescription
PASSEDLOW_RISK
REJECTEDHIGH_RISK
WARNINGMEDIUM_RISK
NOT_EXECUTEDPERMISSION_DENIEDCannot be executed because the required permissions or credentials are missing. Verify your API key and access rights.
NOT_EXECUTEDDATA_NOT_FOUND
NOT_EXECUTEDBAD_REQUESTMalformed or missing required parameters. Ensure that all mandatory fields are included and correctly formatted before retrying.
NOT_EXECUTEDTECHNICAL_ERROR

Data

KeyTypeDescription
deviceModelstringDevice model name and model version. For Apple devices, this refers to the hardware identifier (such as iPhone6.1), not the public product model (such as iPhone 6s).
deviceOSstringFor Web, UserAgent header. eg "iOS", "Mac OS X", "Android", "Windows" or "Linux". 

For mobile SDKs it's constant "Android" or "iOS"
browserstringDetected browser. eg Chrome Mobile, Chrome, Mobile Safari, Firefox, Safari
trueIpstringIP properties for the Real IP address.
ipLocationCitystringCity associated with the IP address.
ipLocationCountrystringAlpha-3 country code of the country associated with the IP address.
ipLocationLatitudestringLattitude associated with the IP address.
ipLocationLongitudestringLongitude associated with the IP address.
ipLocationRegionstringState/region name associated with the IP address.
metaDataAgestringAge of the blackbox, in seconds.
deviceAlertsarray of stringsMessages indicating the reasons why a WARNING or REJECTED decision type was returned. See Device Alerts.
browserCookiesEnabledbooleanWhether JavaScript cookies are enabled.
browserLanguagestringBrowser default language.
browserVersionstringBrowser version.
deviceFirstSeenstringDate/time the device was first seen by Iovation.
deviceScreenstringThe screen resolution.
ispstringInternet service provider of the stated IP address.
flashEnabledbooleanWhether Flash is enabled.
browserTimezonestringBrowser timezone.
deviceIsNewbooleanWhether the device has ever been seen by Iovation.

Device Alerts

AlertDescription
Owned Evidence ExistsThere is direct or indirect evidence against the account or device. The evidence has been placed by the subscriber
Other Subscriber Financial EvidenceDirect or indirect Financial evidence has been placed by other Iovation subscribers against the account or device
Other Subscriber ATO EvidenceDirect Account TakeOver evidence has been placed by other Iovation subscribers against the device
Other Subscriber Policy Fraud EvidenceDirect or indirect Policy Fraud evidence has been placed by other Iovation subscribers against the account or device
Other Subscriber ID Theft EvidenceDirect or indirect ID Theft evidence has been placed by other Iovation subscribers against the account or device
Other Subscriber Miscellaneous EvidenceDirect or indirect Miscellaneous evidence has been placed by other Iovation subscribers against the account or device
Other Subscriber Cheating EvidenceDirect or indirect Cheating evidence has been placed by other Iovation subscribers against the account or device
High Risk CountryTransactions sent from countries on a defined list will cause the rule to fire
Proxy in UseTransaction is sent via a proxy service to obfuscate the true location of the end user
Geolocation MismatchIf the stated IP is different that the Real IP Iovation collects, this rule looks at the geographical location of each - define if difference is at Country, Region or City level
Transactions Per DeviceNumber of transactions associated to the same device
Countries Per DeviceNumber of countries the device has been seen from
Transactions per IPNumber of Transactions per IP
Timezone/Geolocation MismatchWhen the timezone the device is configured is different than the timezone the Real IP determines - define # of minutes
Device Not ProvidedNo blackbox is received, this could be due to direct action by the end user or an issue with the integration. The absence of a device ID can be correlated to increased risk in many cases
Invalid BlackboxBlackbox cannot be decrypted or parsed. Usually this is an indication that there may be a problem with the integration with Iovation
Suspect Device DataCorrupt or incomplete blackbox. This is due to direct action by the end user
TOR Exit Node IPDetects when a user is accessing the TOR network to remain anonymous online
Device Risk GlobalLooks at other devices in the Iovation network with similar characteristics to the device the transaction is coming from. Risk is determined when a minimum of 70% of those devices are associated with evidence of fraud at any of Iovation’s subscribers.
IP Address RiskRisk assessment based on all devices seen at any of Iovation’s subscribers’ sites that have been seen with the same IP address. Risk is determined when a minimum of 70% of those devices are associated with evidence of fraud at any of Iovation’s subscribers.
ISP Watch ListISP is on a list of ISPs to watch for
Jailbreak / Root DetectedDevice has been jailbroken (iOS devices) or rooted (Android devices).

Risk Signal: Device Risk with Web SDK

Prior to executing a workflow that includes Device Risk, the Jumio Web SDK dynamically downloads third-party JavaScripts to access the required device data. Implement a reverse proxy in your own domain to redirect the script requests through your own servers. This avoids potential problems with browsers canceling third-party requests.

To Configure the Reverse Proxy

  1. Set up a proxy configuration within your domain.
  2. Specify a URI for iojs on your site. Using the URI, forward any requests beginning with: http://my.domain.com/iojs
  3. Direct the proxy to forward the requests to the following URL:
    `https://first.iovation.com`

Example NGINX Configuration

Edit the default.conf configuration file and add the following lines to the server section:

server {
.. other configuration entries ...
location /iojs/ {
proxy\_pass https://first.iovation.com/;
}
... }

With a successful implementation there should be two upload calls after the end user presses the Start button. The second one should contain a request with a random string.

If you open the network tab of the developer console you should see that four files were fetched, with no errors.

Risk Signal: Device Risk with Mobile SDK

To use Device Risk with a mobile app:

  • Integrate the Iovation Device Risk SDK.
  • Upload the blackbox string obtained from the Iovation SDK as a Prepared Data credential using the Jumio REST API.
  • Either:
    • Call the finalize API to process the transaction, if you are using Device Risk as a standalone capability.
    • Continue the customer journey using one of the Jumio Mobile SDKs.

Integrating the Iovation SDK

Iovation provides an SDK for generating the blackbox:

Uploading the Blackbox as Prepared Data

A request to update or create an account that references a workflow that calls Device Risk will include a DATA credential with a "device_risk" part. The JSON object for the credential will include the bearer token and URL for uploading the blackbox obtained from the Iovation SDK.

"credentials": [
{
"id": "9d79ed28-947b-4b83-9dfc-80b64467d70c",
"category": "DATA",
"label": "DATA",
"allowedChannels": [
"API"
],
"api": {
"token": "eyJhbGciOiJIUzUxMiIsInppcCI6IkdaSVAifQ.H4sIAAAAAAAA_5XLOw4CMQxF0b2kxlLiycemQ1S07MCfpBugQIIRYu8EdkD3dHXeK_Tn4R72IVWuudREuBQOuyBmJ5_dY3LWVqEYEmSfS6s4dGRjSUqRypf_MI0xWSNAFZs4G6gLg3R1cmyiC078GP0fbuc-pl6343W9yWX7pt-_GblFHpBT6ZCxDWAaCj0NKdFVEWN4fwAX03Be4wAAAA.wR-1U9aOdOk4gJiDc665u2i4-clB8-g2CATM1YODcFuDec5_gumFa2wJh7eoMPGoZoJmWXEEMDZaG6VjSLajZw",
"parts": {
"device_risk": "https://api.amer-1.jumio.ai/api/v1/accounts/d01d9b76-5c28-4d76-b6ad-e29c9a1b8085/workflow-executions/8ff5c278-2bac-4d4c-bda9-aebd8d27ab32/credentials/9d79ed28-947b-4b83-9dfc-80b64467d70c/parts/DEVICE_RISK"
},
"workflowExecution": "https://api.amer-1.jumio.ai/api/v1/accounts/d01d9b76-5c28-4d76-b6ad-e29c9a1b8085/workflow-executions/8ff5c278-2bac-4d4c-bda9-aebd8d27ab32"
}
}
]

Prepared Data

KeyTypeMandatoryDescription
sessionIdstringYesBlackbox obtained from Iovation SDK.

Example: Prepared Data Body

{
"sessionId": "0400l1oURA1kJHkNf94lis1ztsLfEt3/IFXXN1MYH/C7FN9WGrecBg4p0ON8Qk5xXP5yzri4ipiY+gcauEKiR3CD0f5bxgCPh2s4xV2jOAT9QDo46MvqbksKpwyCiDVa0KzS3EXoW3wRrlco8IG1qk9lAIBU13+e+YkwDXMzdeKt5csId7H9j3oUV2HkUixgPRKu8cFCb3XpK0LXm0XBtvk2RW2s0fO33l4+w84qwFGsHzXgiEms7PTw/N/7HinDpb16xsYSmrsKhFi8VDdLGBfK9PH/LgnAtMTg3G/gqjChOr3UE93P7lQ6YY1QqVXhJlc0TMj6Y82LrlflYU9iUMb03U590nH6wX2EU2IImCqOVt1Lb3Rq69nPqNh+4KFmyEtnhFqIBpUqh4gjqERo3lTicqoN6O+jq/sPjofZbR2X0CIID6FY6p00ehQugOFx8rWe05+m/s9uEinvsD8Ae2HMhGn9cJjqZjvIjNXsgMEghG088ZC6JnyJ5fPoP5g1QwsRQTMzPSNXu7gXqEkpOTPbD6jApGyavAPnx7yacWI+PSIAtXVX6KlFBPc3vlN6JaM3rjS2HZzFE1aixPMqjFULp9I8UWAJoym9T+HoQVdeZcRmg6J8uARU7CENZVhLgl43xKmKi0E5mbJ5wzug8QBi+7I+vS3zO1UWbqNLtKFF+Ej3oU6k968Na6nSLy2F7Hp7vFQ3SxgXyvTx/y4JwLTE4P4M9O7lUiDQIMyfBSWv/vuXVqFEs8cInVHsazfWk+JVPmEazlvGoKjmhhOQo4K74RCU9nsEY/2KXawrAyogf4PM8fwrGTmgzskUPUHB2KBz1PnBUfUaSr7ZOMtF4ceNvkYBKknoROYtYNJHJfSFZ+1EZnuQG7VXjwuFGpzshDlVv912gmTa+7D6oxNEfoZFV+DscBxLl+dLDzomaz9kojls8my31ramZUkmPOslRT8GUQ50p/wnlDZFRarIuC6RSZndk1PYFXQ2ZFBv5giE92SxAiJ6dZ3B8hEON+BvWb01b3apMSFR1WXZKbyG5meGt9kxpLMTusENhXF7hmR8PZ+DB82UHqdjtxv/OsaDA0k7CA2/2p99K8A/smYGPMGbNwgNv9qffSvAV5uQhSymIGAIDb/an30rwFKAZUfejFreCA2/2p99K8DalO9KDtKoXAsmmx9bqOcfryRVak4KySGXmXf+xzrSIocc4vivspj4G/86xoMDSTttIJAL1chbPonJeh0dRqi1FcOv46vzrKfU0HnrAUrLxC+HGoczCbjhGgbsrJKKTCS7DlYuPBTitwMZUgt2Da8GGUoKbb/pm4aia9S/YqbWZmDZurZubUAT+4QNFcISoxS+h0qcCpIEPAjeTrc3OBfUlFXF00bch/Du5a/0VxS7QpGUdmUMUwCxekHRr9G3NpEKmK/Oz7gQwFgFqUSspd+3g2jcOWRd8azW3CGQ1LX2fL7Y6qSQNeXSEo1QEv4tzQmMYND4T0JKUQpbJRlMGw9q9ftyks+99NcozimYay8uUBzvFuMPm89GC3/vUxT+kSwZvf7wOdzePZmoxa72mXhf2khAqKdWEtdu52KFGFNCVBYxtvKFLh9PlTnlXrCxqIyVT31SgfbGSYEVm3q9npvKMXDe/htBXCHlccEEM2wYZqR/mwMsZEA87Q3z0zIaBGVK0Bgv1jhwxuZpe1KXZSaa8cG+2KdGP22HPmnClNMvcbqLSUV0LG8JzcmmERYC1Gz1LaL75tS477GWfT72CsVv+YtO8ArCh3ufb5p0+N9t6zGsdGil6G+M6QwuNtanQnlQQ16gTYXgqAk39+502nZNVrIc/x4UXaZ40s6qimpeCXTaMl686fnTbuOr37uPFjN8X/YvUDvtEZoVugXwRLvf23Q+XdyVtqdQQ16gTYXgqAk39+502nZNVrIc/x4UXaZ40s6qimpeCXTaMl686fnTbuOr37uPFjMO6L3qtdOASyFHJHhMvyClUmK+W/pTqArcD2srI+H9ZislHmuQbhrvLso5bgIo9tjDN7aLd8tmN9AySWY3fRRS4G+b9j512CI2ABfLQqcPrHcgqn9KYunPLxn0jBuM6kkWhDITwJ+fFCXJ91CNvJuTS6HnmJ1CatHwiZNgJIhJCRjnWnKRJDonIGgE3xZCAEVZK4DLpvXThE0MH6wQTRkvIzqIEVc5bblnbChVFMXIW0rc/2p5wHg8dXfE0inMWYCgtI1MfSxvOq8EG2IhA5WZxSRwl/ssA2Q5gBtsn0VVkGahu173HCRKGUUtl+nD/05VSWkufaJbp2P8L5YARpWvKSQzticzU/R3N/8WxtfBooYOzIDfWTaRUxfSnsGHojxyyO66aVU6MdA4zKpFNgetzfpP6gdqigpGvWm5lSpMPg=="
}

Risk Signal: Device Risk with REST API

To use Device Risk as a standalone service you can:

  • Integrate a JavaScript from Iovation to capture the blackbox data from the end user's device.
  • Upload the blackbox string as a Prepared Data credential using the Jumio REST API.
  • Call the finalize API to process the transaction.

Integrating the Iovation JavaScript

Download the loader.js JavaScript file from Iovation for generating the blackbox.

Multi-Domain Recognition

The Iovation script will dynamically load additional resources from both your domain (the First-party domain) and TransUnion's domain (the Third-party domain). Including scripts from both of these domains allows the following:

  • Third-Party JavaScript: Share fraud history for devices and accounts across TransUnion subscribers.
  • First-Party JavaScript: Collect device information for users whose browsers are configured to disable third-party JavaScript, or that block the TransUnion domain.
ℹ️   This script will load the appropriate resources from both sets of domains. Components loaded by the script are dynamically generated and therefore not included with the script provided, nor should they be directly included on your page.

Retrieving the dynamic first party script will require you to implement a reverse proxy in your own domain to redirect the script requests through your own servers. This avoids potential problems with browsers canceling the requests.

Configuring the JavaScript

To configure the Iovation JavaScript you must define settings for a configuration object that is used by the JavaScript. If the object is not defined, default values will be used.

The configuration object has various sections and looks something like the following:

/* Copyright(c) 2016, iovation, inc. All rights reserved. */
window.io_global_object_name = "IGLOO";
window.IGLOO = window.IGLOO || {
"bbout_element_id" : "iobb",
"bb_callback": null,
"loader" : {
"uri_hook" : "iojs",
"version" : "general5",
"subkey" : "5FExse+oA1134BhiwCF2EeQ1TfisPJGha4CpVG2nd7E="
}
};

You will receive a configuration script in addition to the collection script. You can include these separately, combine them or in-line the definition on your page.

ℹ️   It is critical that the configuration comes before TransUnion's loader script otherwise configuration variables will not be used once the script starts running.

Configuration script sections

TransUnion Global Object Name

Before delving into the options available, a quick word on the io_global_object_name, IGLOO, by default. In earlier versions of the scripts, TransUnion configured the script through the use of global variables. While this approach is simple enough, it can add a lot of additional variables to the window object which has the potential to collide with other scripts.

To remedy this, TransUnion has created an object that encapsulates all of the settings and functionality and you can change the ID to prevent potential collisions by changing the name.

window.io\_global\_object\_name = "<your custom name>"

If you do change the value, references functions and values as follows:

window.<your custom name>.xxxxx

Change the following as well:

window.IGLOO = window.IGLOO ||

to match your new custom name.

TransUnion configuration object has 2 main components:

  • Generic settings that indicate how to retrieve a device print and restrictions on what information is collected, for instance Flash values
  • Loader settings that indicate how to access first-party components and basic debug and versioning information

Each set of configuration options belongs in a specific section of the object:

/* Copyright(c) 2016, iovation, inc. All rights reserved. */
window.io_global_object_name = "IGLOO";
window.IGLOO = window.IGLOO || {
// generic settings go here as
// "option" : value
...
"loader" : {
// loader configuration options go here as
// "option" : value
}
};

Generic Configuration Options

ParameterTypeDefault ValueDescription
bbout_element_idstring, optionalThe ID of the HTML element to populate with the blackbox from the third-party JavaScript. If bb_callback is specified, this parameter has no effect.
bb_callbackfunction, optionalThis JavaScript function is an event handler that is called when a collection method has finished updating a blackbox. This must be a function, not a string

Declare the function as follows:

"bb_callback" : function ( bb, complete) {
// code to process blackbox here
}

The variables store the following:
- bb – the updated value of the blackbox
- complete – a boolean value indicating whether all the collection methods have completed.
enable_ripboolean, optionaltrue

Loader Configuration Options

ParameterTypeDefault ValueDescription
uri_hookstring, optionaliojsLocation of dynamic first party components. This should be a reference to the web directory being proxied. You can use relative or absolute references, but should not use a complete URL.

For example, if your reverse proxy is accessed from http://mysite.com/iov/wdp/...., and your page is loaded from: http://mysite.com/app/mypage.html, you would use: "uri_hook" : "/iov/wdp" If the reverse proxy is accessed at http://mysite.com/app/iojs and your page is at http://mysite.com/app/page.html, you might use: "uri_hook" : "iojs"

This should not be a URL (i.e. include http(s)://host:port) as this will fail and the scripts must be loaded from the same domain as the page.
subkeystring, optionalThis will be an TransUnion assigned value that tracks requests from your site. This is primarily used for debugging and troubleshooting purposes.
versionstring, requiredgeneral5This is the version of the script to load.

The value should either correspond to a specific version you wish to use, or one of the following aliases to get the latest version of the code:

- general5 - the latest stable version of the JavaScript
- early5 - the latest available version of the JavaScript

general5 and early5 may be the same code, however, any new changes will be released on early5 prior to general5. Once the new release has been vetted in production and deemed satisfactory, general5 will be updated to match early5.
trace_handlerfunction, optionalThis JavaScript function can be used to provide tracing messages for the script. This will provide information on the progress of the script and is useful for debugging purposes.

Declare the function as follows:

"trace_handler" : function (message) {
// process/record trace message here
}

where message is the trace message provided by the script.

Example Configuration File

/* Copyright(c) 2016, iovation, inc. All rights reserved. */
window.io_global_object_name = "IGLOO";
window.IGLOO = window.IGLOO || {
"bbout_element_id" : "iobb",
"loader" : {
"uri_hook" : "/iojs",
"version" : "general5",
"subkey" : "5FExse+oA1134BhiwCF2EeQ1TfisPJGha4CpVG2nd7E="
}
};

Define the bb_callback Function

The callback interface allows you to manage blackbox generation in a more event-driven manner. As blackbox collection progresses,the script fires update events as collection methods complete. These events trigger a user-defined callback function to update the page with the new blackbox value. When all of the collection methods are completed, a Boolean flag is set indicating no further updates are expected and the value is the final blackbox value.

In the JavaScript configuration parameters, set the bb_callback parameter to a function that processes the blackbox value, and that has the following signature:

function bb_update_callback( bb, complete)

Where:

  • bb is the updated value of the blackbox
  • complete is a boolean value that indicates whether all collection methods (Flash, etc.) are complete
/\* Copyright(c) 2016, iovation, inc. All rights reserved. \*/
window.io\_global\_object\_name = "IGLOO";
window.IGLOO = window.IGLOO || {
"bb\_callback": function ( bb, complete ) {
var bb\_field = document.getElementById( "bb" );
bb\_field.value = bb;
},
"loader" : {
"version" : "general5",
"subkey" : "5FExse+oA1134BhiwCF2EeQ1TfisPJGha4CpVG2nd7E="
}
};
ℹ️   If bb_callback and bbout_element_id are both specified, the hidden field specified in bbout_element_id will not be populated, unless explicitly done so by the function specified in bb_callback.

To Configure the Reverse Proxy:

  1. Set up a proxy configuration within your domain.

  2. Specify a URI for iojs on your site. Using the URI, forward any requests beginning with: http://my.domain.com/iojs

  3. Direct the proxy to forward the requests to the following URL:

    `https://first.iovation.com`

Example NGINX Configuration

Edit the default.conf configuration file and add the following lines to the server section:

server {
.. other configuration entries ...
location /iojs/ {
proxy\_pass https://first.iovation.com/;
}
... }

Uploading the Blackbox as Data--> Device Risk Credential

A request to update or create an account that references a workflow that calls Device Risk will include a DATA credential with a "device_risk" part. The JSON object for the credential will include the bearer token and URL for uploading the blackbox obtained from the Iovation SDK.

"credentials": [
{
"id": "9d79ed28-947b-4b83-9dfc-80b64467d70c",
"category": "DATA",
"label": "DATA",
"allowedChannels": [
"API"
],
"api": {
"token": "eyJhbGciOiJIUzUxMiIsInppcCI6IkdaSVAifQ.H4sIAAAAAAAA_5XLOw4CMQxF0b2kxlLiycemQ1S07MCfpBugQIIRYu8EdkD3dHXeK_Tn4R72IVWuudREuBQOuyBmJ5_dY3LWVqEYEmSfS6s4dGRjSUqRypf_MI0xWSNAFZs4G6gLg3R1cmyiC078GP0fbuc-pl6343W9yWX7pt-_GblFHpBT6ZCxDWAaCj0NKdFVEWN4fwAX03Be4wAAAA.wR-1U9aOdOk4gJiDc665u2i4-clB8-g2CATM1YODcFuDec5_gumFa2wJh7eoMPGoZoJmWXEEMDZaG6VjSLajZw",
"parts": {
"device_risk": "https://api.amer-1.jumio.ai/api/v1/accounts/d01d9b76-5c28-4d76-b6ad-e29c9a1b8085/workflow-executions/8ff5c278-2bac-4d4c-bda9-aebd8d27ab32/credentials/9d79ed28-947b-4b83-9dfc-80b64467d70c/parts/DEVICE_RISK"
},
"workflowExecution": "https://api.amer-1.jumio.ai/api/v1/accounts/d01d9b76-5c28-4d76-b6ad-e29c9a1b8085/workflow-executions/8ff5c278-2bac-4d4c-bda9-aebd8d27ab32"
}
}
]

Prepared Data

KeyTypeMandatoryDescription
sessionIdstringYesBlackbox obtained from Iovation SDK.

Example: Prepared Data Body

{
"sessionId": "0400l1oURA1kJHkNf94lis1ztsLfEt3/IFXXN1MYH/C7FN9WGrecBg4p0ON8Qk5xXP5yzri4ipiY+gcauEKiR3CD0f5bxgCPh2s4xV2jOAT9QDo46MvqbksKpwyCiDVa0KzS3EXoW3wRrlco8IG1qk9lAIBU13+e+YkwDXMzdeKt5csId7H9j3oUV2HkUixgPRKu8cFCb3XpK0LXm0XBtvk2RW2s0fO33l4+w84qwFGsHzXgiEms7PTw/N/7HinDpb16xsYSmrsKhFi8VDdLGBfK9PH/LgnAtMTg3G/gqjChOr3UE93P7lQ6YY1QqVXhJlc0TMj6Y82LrlflYU9iUMb03U590nH6wX2EU2IImCqOVt1Lb3Rq69nPqNh+4KFmyEtnhFqIBpUqh4gjqERo3lTicqoN6O+jq/sPjofZbR2X0CIID6FY6p00ehQugOFx8rWe05+m/s9uEinvsD8Ae2HMhGn9cJjqZjvIjNXsgMEghG088ZC6JnyJ5fPoP5g1QwsRQTMzPSNXu7gXqEkpOTPbD6jApGyavAPnx7yacWI+PSIAtXVX6KlFBPc3vlN6JaM3rjS2HZzFE1aixPMqjFULp9I8UWAJoym9T+HoQVdeZcRmg6J8uARU7CENZVhLgl43xKmKi0E5mbJ5wzug8QBi+7I+vS3zO1UWbqNLtKFF+Ej3oU6k968Na6nSLy2F7Hp7vFQ3SxgXyvTx/y4JwLTE4P4M9O7lUiDQIMyfBSWv/vuXVqFEs8cInVHsazfWk+JVPmEazlvGoKjmhhOQo4K74RCU9nsEY/2KXawrAyogf4PM8fwrGTmgzskUPUHB2KBz1PnBUfUaSr7ZOMtF4ceNvkYBKknoROYtYNJHJfSFZ+1EZnuQG7VXjwuFGpzshDlVv912gmTa+7D6oxNEfoZFV+DscBxLl+dLDzomaz9kojls8my31ramZUkmPOslRT8GUQ50p/wnlDZFRarIuC6RSZndk1PYFXQ2ZFBv5giE92SxAiJ6dZ3B8hEON+BvWb01b3apMSFR1WXZKbyG5meGt9kxpLMTusENhXF7hmR8PZ+DB82UHqdjtxv/OsaDA0k7CA2/2p99K8A/smYGPMGbNwgNv9qffSvAV5uQhSymIGAIDb/an30rwFKAZUfejFreCA2/2p99K8DalO9KDtKoXAsmmx9bqOcfryRVak4KySGXmXf+xzrSIocc4vivspj4G/86xoMDSTttIJAL1chbPonJeh0dRqi1FcOv46vzrKfU0HnrAUrLxC+HGoczCbjhGgbsrJKKTCS7DlYuPBTitwMZUgt2Da8GGUoKbb/pm4aia9S/YqbWZmDZurZubUAT+4QNFcISoxS+h0qcCpIEPAjeTrc3OBfUlFXF00bch/Du5a/0VxS7QpGUdmUMUwCxekHRr9G3NpEKmK/Oz7gQwFgFqUSspd+3g2jcOWRd8azW3CGQ1LX2fL7Y6qSQNeXSEo1QEv4tzQmMYND4T0JKUQpbJRlMGw9q9ftyks+99NcozimYay8uUBzvFuMPm89GC3/vUxT+kSwZvf7wOdzePZmoxa72mXhf2khAqKdWEtdu52KFGFNCVBYxtvKFLh9PlTnlXrCxqIyVT31SgfbGSYEVm3q9npvKMXDe/htBXCHlccEEM2wYZqR/mwMsZEA87Q3z0zIaBGVK0Bgv1jhwxuZpe1KXZSaa8cG+2KdGP22HPmnClNMvcbqLSUV0LG8JzcmmERYC1Gz1LaL75tS477GWfT72CsVv+YtO8ArCh3ufb5p0+N9t6zGsdGil6G+M6QwuNtanQnlQQ16gTYXgqAk39+502nZNVrIc/x4UXaZ40s6qimpeCXTaMl686fnTbuOr37uPFjN8X/YvUDvtEZoVugXwRLvf23Q+XdyVtqdQQ16gTYXgqAk39+502nZNVrIc/x4UXaZ40s6qimpeCXTaMl686fnTbuOr37uPFjMO6L3qtdOASyFHJHhMvyClUmK+W/pTqArcD2srI+H9ZislHmuQbhrvLso5bgIo9tjDN7aLd8tmN9AySWY3fRRS4G+b9j512CI2ABfLQqcPrHcgqn9KYunPLxn0jBuM6kkWhDITwJ+fFCXJ91CNvJuTS6HnmJ1CatHwiZNgJIhJCRjnWnKRJDonIGgE3xZCAEVZK4DLpvXThE0MH6wQTRkvIzqIEVc5bblnbChVFMXIW0rc/2p5wHg8dXfE0inMWYCgtI1MfSxvOq8EG2IhA5WZxSRwl/ssA2Q5gBtsn0VVkGahu173HCRKGUUtl+nD/05VSWkufaJbp2P8L5YARpWvKSQzticzU/R3N/8WxtfBooYOzIDfWTaRUxfSnsGHojxyyO66aVU6MdA4zKpFNgetzfpP6gdqigpGvWm5lSpMPg=="
}

Risk Signal: Device Risk (Deprecated Version)

ℹ️   This topic is provided for customers using a version of Device Risk offered prior to October, 2023. While you are encouraged to migrate to the updated version, will continue to be supported.

Device Risk provides an overall risk & reputation assessment of the device used to initiate a transaction. Device Risk looks at signals such as emulator and remote tool usage, rooted mobile devices, OS (Operating System) anomalies, use of VPNs (Virtual Private Networks), use of proxies, and IP (Internet Protocol) type. Device Risk is used to determine whether or not a fraudster is using GPS emulation, device rooting or VPN to trick your online identification workflow.

Device Intelligence identifies devices via cookies and device fingerprinting. Based on the data gathered, it can effectively flag suspicious devices (emulators / scripts) and sessions (proxies / VPNs / remote desktop), which are typically used to create synthetic accounts. In addition, with our Native App SDK, we can perform precise location (GPS), tampered app and rooted device detection.

Use Case

Identify suspicious behavior and/or activity by analyzing emulator and remote login usage, rooted mobile devices, OS anomalies, use of VPNs and proxies, and IP type. This is a fundamental risk check that assists in catching fraud faster. This risk check also saves on time and costs by assessing risk at the beginning of a transaction workflow.

Common examples that indicate high risk devices are shown in the figures below.

Prerequisites

Additional prerequisites may be required depending on the integration channel(s) you use.

Web Client

The Jumio Web Client is pre-configured to support Device Risk. No additional integration work is required on your part.

Mobile SDK Channels

For SDK usage, please integrate the Jumio Device Risk library. Once included, the library will execute when used with a workflow that contains the device service. Please work with your support engineer to determine the appropriate workflow for your needs.

REST APIs

Prior to executing a workflow that includes Device Risk, a JavaScript SDK must be integrated with the client that is initiating the workflow. Consult with your support engineer for additional information.

The following table describes the Urls for JS SDK.

RegionURL
UShttps://{customer-subdomain}.web.amer-1.jumio.ai/device-fingerprint-web/0.3.0/index.js
SGPhttps://{customer-subdomain}.web.apac-1.jumio.ai/device-fingerprint-web/0.3.0/index.js
EUhttps://{customer-subdomain}.web.emea-1.jumio.ai/device-fingerprint-web/0.3.0/index.js

The integration steps are as follows:

  1. Download script.
  2. Initiate sdk as:
acquireDeviceFingerprint({
    development: false,
    datacenter: 'eu',
    token: authorizationToken,
    logCallback: () => null,
})
  1. The function will return a Promise that gets resolved once the device fingerprint was generated and sent.

Required Credentials

If your integration uses the Web Client or the Mobile SDKs, the required data is uploaded for you. If you are integrating via the REST APIs, consult with your solution engineer.

Prepared Data

KeyTypeMandatoryDescription
SessionstringYesUnique session ID generated while fingerprinting

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Response Structure

Retrieval API Capability Response

"deviceRiskVerification": [
            {
                "id": "a66cbedc-816f-4be8-8aad-574cf9c935fe",
                "credentials": [
                    {
                        "id": "91d6bf21-74f4-4f1b-bb5c-28de3670bafb",
                        "category": "DATA"
                    }
                ],
                "decision": {
                    "type": "PASSED",
                    "details": {
                        "label": "LOW_RISK"
                    }
                },
                "data": {
                    "remoteSoftwareUsed": false,
                    "emulatorUsed": false,
                    "suspectedProxyUsedRisk": "low",
                    "suspectedOSAnomalyRisk": "low",
                    "suspectedVPNUsedRisk": "low",
                    "deviceOS": "Windows",
                    "browser": "Chrome",
                    "ipType": "Fixed Line ISP",
                    "sessionIPCount": 1,
                    "trueIP": "73.92.174.212"
                }
            }
        ]

Decision Details Labels

Decision TypeLabelDescription
PASSEDLOW_RISK
REJECTEDHIGH_RISK
WARNINGMEDIUM_RISK
NOT_EXECUTEDPERMISSION_DENIEDCannot be executed because the required permissions or credentials are missing. Verify your API key and access rights.
NOT_EXECUTEDDATA_NOT_FOUND
NOT_EXECUTEDBAD_REQUESTMalformed or missing required parameters. Ensure that all mandatory fields are included and correctly formatted before retrying.
NOT_EXECUTEDTECHNICAL_ERROR

Data

KeyTypeDescription
remoteSoftwareUsedbooleantrue/false
emulatorUsebooleantrue/false
suspectedProxyUsedRiskstringhigh/medium/low
suspectedOSAnomalyRiskstringhigh/medium/low
suspectedVPNUsedRiskstringhigh/medium/low
rootedMobileDeviceUsed*booleantrue/false
suspectedRemoteSessionRisk*stringhigh/medium/low
deviceOSstringFor Web, UserAgent header. eg "iOS", "Mac OS X", "Android", "Windows" or "Linux". 

For mobile SDKs it's constant "Android" or "iOS"
browserstringDetected browser. eg Chrome Mobile, Chrome, Mobile Safari, Firefox, Safari
ipTypestring"Commercial", "Government", "Military", "Education", "Library", "Fixed Line ISP", "Mobile ISP", "Data Center", "Fixed Line ISP / Mobile ISP" and "Unknown

*Available only in SDK installation.

Portal View

Open a transaction in the Portal to review the response. The risk signal is labeled Device Risk Verification as shown in the figure below.

The response details appear as shown in the screenshot below.

Risk Signal: Global Identity Check (formerly Ekyc Verification)

Global Identity Check is a service that produces a quick overall identity risk assessment by validating and linking the User name, address, email, telephone, and IP address against publicly known directories. Global Identity Check assesses the overall risk of an identity and delivers an overall risk score.

The service provides an overall identity risk score which translates to a passed, rejected or warning outcome.

The overall outcome is determined by looking for linkages, validations and behavior of the input elements across two primary sources of information:

  • Identity graph
  • Identity network.

Identity Graph

The Identity Graph is used to validate the identity elements.

For example:

  • Does this email belong to the person?
  • What type of phone number is this?

The Identity graph is built from over 70 trusted and thoroughly vetted database sources includingTelcos, Government, Agencies, utilities, Voter registration, and Census data.

Identity Network

The Identity Network focuses on how the identity elements are used online.

For example:

  • When was this email first/last used?
  • How many times has this address been used?
  • Why is this phone number associated with 50 IP addresses?

The network analyzes patterns of how information is being used in digital interactions. It is made up of more than 400M global monthly queries that surface usage patterns of identity data.

Use Case: Lightweight Verification for Onboarding

Onboarding at a Financial Institution will require vetting of the provided personal information as part of an accounting opening process. Global Identity Check offers a lightweight check to validate Name, Address, Email and Phone information.

It is often combined with other risk signals like Device and more stringent checks on Name, Address, DOB and SSN. The outcome of these checks often drive the authentication methods given to the customer.

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

To use Prepared Data with global identity check as a standalone capability use workflow key 10007.

KeyTypeMandatoryDescription
firstNamestringnoFirst name of the subject.
middleNamestringnoMiddle name of the subject.
lastNamestringnoLast name of the subject.
addressobjectyes
address.line1stringno
address.line2stringno
address.citystringyesCity of residence as it appears on the Id.
address.postalCodestringyesPostal or zip code.
address.subdivisionstringnoCity subdivision of residence as it appears on the Id.
address.countrystringyesCountry in ISO-3166-1 Alpha-3 Code or ISO-3166-1 Alpha-2 Code format.
phoneNumberstringyesPhone number of the subject in E.164 format. Country code is required.
emailstringnoOptimal to include.
ipAddressstringnoThe IP address entered as a string. Either IPv4 or IPv6 format is accepted.

Example: Prepared Data Body

{
"firstName": "M***in",
"lastName": "C***g",
"email": "m***inc***g@gmail.com",
"phoneNumber": "+65644***8",
"ipAddress": "122.23.23.233",
"address": {
"line1": "153 Rd",
"line2": null,
"city": "Singapore",
"postalCode": "42***1",
"country": "SGP"
}
}

Example Response

"capabilities": {
"globalIdentityCheck": [{
"id": "d1c96816-3beb-490d-9243-7e58cc9ed2f1",
"credentials": [{
"id": "81e9001e-e4d3-4836-8bda-d475330e8224",
"category": "DATA"
}],
"decision": {
"type": "REJECTED",
"details": {
"label": "HIGH_RISK"
}
},
"data": {
"emailValid": false,
"emailDomainCreationDate": "1995-08-13",
"emailMatchToName": "no - match",
"emailFirstSeenDays": 4682,
"phoneValid": true,
"phoneMatchToName": "match",
"phoneLineType": "MOBILE",
"phoneCarrier": "Singapore Telecommunications Ltd (singtel)",
"phoneCountryCode": "SG",
"phoneLastSeenDays": 49.0,
"phoneEmailFirstSeenDays": 646.0,
"phoneMatchToAddress": "country-match",
"addressValidityLevel": "valid",
"addressMatchToName": "match",
"ipRisk": false,
"ipRiskScore": 0.951,
"ipLastSeenDays": 4.0,
"ipGeolocationCountryCode": "US",
"ipGeolocationSubdivision": "Oregon",
"ipAddressDistance": 8127.0,
"identityNetworkScore": 0.934,
"identityRiskScore": 469
}
}]
}
}
}]
}

Decision Details Labels

Decision TypeLabelDescription
PASSEDLOW_RISK
REJECTEDHIGH_RISK
WARNINGMEDIUM_RISK
NOT_EXECUTEDVALIDATION_FAILED
NOT_EXECUTEDNOT_ENOUGH_DATA
NOT_EXECUTEDPRECONDITION_NOT_FULFILLED
NOT_EXECUTEDTECHNICAL_ERROR

Data

ParameterTypeDescription
emailValidboolean- true
- false

True if the email address is valid.
emailDomainCreationDatestringDate that the email domain was created in "YYYY-MM-DD" format.
emailMatchToNamestring- "not-found"
- "match"
- "no-match"

The match status between either of the input names and the queried entity.
emailFirstSeenDaysstring- null: input email is missing
- 0: never seen before, high risk
- 1-90: very high Risk 
- 91-365: neutral risk
- 366+: low risk
phoneValidboolean- true
- false

True if the phone number is valid.
phoneMatchToNamestring- "not-found"
- "match"
- "no-match"

The match status between either of the input names and the queried entity.
phoneLineTypestring- Null: when phone number is invalid, or line type is unknown (occurs rarely for some international numbers)
- Landline
- Fixed-VoIP
- Mobile
- Voicemail
- Toll-free
- Premium
* Non-fixed-VoIP
- Other
phoneCarrierstringThe company that provides voice and/or data services for the phone number. Carriers are returned at the MVNO level.
phoneCountryCodestringThe ISO-3166 alpha-2 country code associated with the phone number.
phoneLastSeenDaysintegerCount of days since the phone was last observed in the Identity Network. If the phone has not been observed before, last_seen_days will be 0.
phoneEmailFirstSeenDaysintegerCount of days since the combination of phone and email was first observed in the Identity Network. If that combination has not been observed before, first_seen_days will be 0.
phoneMatchToAddressstring- match – Phone location matches input address line 1, address line 2, city, state, and postal code.
- postal-match – Phone location postal code matches input address postal code.
- zip4-match – Phone location postal code zip+4 matches input address postal code zip+4.
- city-state-match – Phone location city and state matches input address city and state.
- metro-match – Phone location is in the same metro area as input address.
- country-match – Phone location country matches input address country.
- no-match – Phone location does not match input address
addressValidityLevelstring- "valid_to_house_number"
- "missing_address"
- "invalid"
- "valid"
- "valid_to_street"
- "valid_to_country"
- "valid_to_city"
- "Valid_to_house_number_missing_apt"

The most granular level to which the address could be validated. Ex. If the

address was only valid to the city level (but not to the house level), it would

return “valid_to_city”.
addressMatchToNamestring- "not-found"
- "match"
- "no-match"

The match status between either of the input names and the queried entity.
addressValidityLevelstringThe most granular level to which the address could be validated. Ex. If the address was only valid to the city level (but not to the house level), it would return “valid_to_city”.

- missing_address – An input address was not provided.
- invalid – The input address is not valid.
- valid – The input address is valid.
- valid_to_country – The input address could only be validated to the country level. This means the country of the input address is valid, but the other elements of the input address were unable to be confirmed as valid or invalid.
- valid_to_city – The input address was validated to the city level. This means the country, state, city, and postal code of the input address are valid, but the street, house number, and subpremise of the input address were unable to be confirmed as valid or invalid.
- valid_to_street – The input address was validated to the street level. This means the country, state, city, postal code, and street of the input address are valid, but the house number and subpremise of the input address were unable to be confirmed as valid or invalid.
- valid_to_house_number – The input address was validated to the street and house number level. This means the country, state, city, postal code, street, and house number of the input address are valid, but the subpremise of the input address was unable to be confirmed as valid or invalid.
- valid_to_house_number_missing_apt – The input address was validated to the street and house number level. This means the country, state, city, postal code, street, and house number of the input address are valid, but the subpremise of the input address was missing and thus unable to be confirmed as valid or invalid.
ipRiskboolean- true
- false

True if the IP address is considered risky, based on multiple IP data points and velocity calculations.
ipRiskScorenumberComprehensive risk score associated with an IP address, with a higher score indicating a riskier IP address. A number between 0 and 1 rounded to three decimal places.
ipLastSeenDaysintegerCount of days since the IP address was last observed in the Identity Network. If the IP address has not been observed before, last_seen_days will be 0.
ipGeolocationCountryCodestringThe ISO-3166 alpha-2 country code associated with the geolocation of the IP address.
ipGeolocationSubdivisionstringMore granular detail about the IP address location.
identityNetworkScoreDoubleThe Identity Network Score is a machine learning prediction that provides insight into how risky a digital interaction is based on activity patterns of the identity elements that are being used.

Null: when we experience a service timeout, or did not get enough inputs

Range: 0.000 - 1.000:

- <.33: low risk.

- 33-.8: uncertain

- >.8: high risk
identityRiskScoreIntegerNull: when we experience a service timeout

- Range: 0 - 500
- <250: low risk
- 250-350: uncertain
- >350: high risk

Activity patterns that the Network Score focuses on include the following:

  • Velocity: how often element(s) are used
  • Popularity: At how many merchants element(s) are used
  • Volatility: how often element(s) are used with other elements
  • Age/maturity: when elements were first/last seen

The Network Score is derived from an Identity Network, which is made up of more than 400M global monthly queries that surface usage patterns of identity data provided by our network of customers.

The Identity Risk Score is a comprehensive risk score calculated in real time that combines authoritative data (match statuses, metadata, linkages) from the Identity Graph as well as usage patterns of elements in the Identity Network

To return a score, we need at least one valid element. For best results, we recommend sending as much of the following information as possible:

  • Name
  • Phone
  • Address
  • Email Address

Risk Signal: Email Verification

Email Verification enables you to assess the risk of email addresses provided by the end user. Email verification is a fundamental risk check that analyzes an email address to provide an overall risk. Email verification, adds email intelligence as a layer of defense to fraud prevention. It assesses risks by evaluating email address metadata points such as domain details, email details, and risk indicators.

Use Case

For those with onboarding and account login workflows, who wish to understand and assess the risks of a given email address.

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

To use Prepared Data with email verification as a standalone capability use workflow key 10066.

KeyTypeMandatoryDescription
Email addressStringyesEmail Address of Applicant

Example Prepared Data Body

{
"email": "martin***ng@gmail.com"
}

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Example Response

"capabilities": {
"emailVerification": [
{
"id": "e9f21fbb-4b89-4410-8f71-5040c2c303de",
"credentials": [
{
"id": "09df1028-17bf-4a7e-a17c-c6c9c47a30e5",
"category": "DATA"
}
],
"decision": {
"type": "PASSED",
"details": {
"label": "LOW_RISK"
}
},
"data": {
"emailVerificationStatus": "Verified",
"firstVerifiedAt": "2022-08-08T16:33:01.000Z",
"totalHits": "2",
"emailExists": true,
"domainExists": true,
"domainName": "jumio.com",
"domainCompany": "Jumio",
"domainRiskLevel": "VERY_LOW"
"domainCreationDate": "1995-08-13T04:00:00.000Z",
"advice": "LOWER_FRAUD_RISK",
"domainCountry": "USA",
"domainCategory": "Webmail",
"domainCorporate": false
}
}
]
}

Decision Details Labels

Decision TypeLabelDescription
PASSEDLOW_RISK
REJECTEDHIGH_RISK
WARNINGMEDIUM_RISK
NOT_EXECUTEDPERMISSION_DENIEDCannot be executed because the required permissions or credentials are missing. Verify your API key and access rights.
NOT_EXECUTEDBAD_REQUESTMalformed or missing required parameters. Ensure that all mandatory fields are included and correctly formatted before retrying.
NOT_EXECUTEDPRECONDITION_NOT_FULFILLED
NOT_EXECUTEDTECHNICAL_ERROR

Data

ParameterTypeDescription
firstVerificationDatebooleantrue/false

True if the email address is valid.
statusbooleantrue/false

True if the phone number is valid.
totalHitsstring
emailExistsbooleantrue/false
domainExistsbooleantrue/false
domainNamestringThe email domain.
domainCompanystringOwner of the domain.
domainRiskLevelstringPossible values:
- LOW
- MEDIUM
- HIGH
domainCreationDatestringThe creation date of the domain. This field may be blank for some queries. Returned in UTC format: YYYY-MM-DDThh:mm:ssZ
advicestringPossible values are:
- FRAUD_REVIEW
- UNCLEAR_RISK
- LOWER_FRAUD_RISK
- MODERATE_FRAUD_RISK
- DATA_REVIEW
domainCountrystringThe country that issued the domain. Can be any ISO 3166-1 alpha-3 country code, and XKX for Kosovo.

Examples: USA, AUT, DEU, FRA
domainCategorystringvalue is webmail
domainCorporatebooleantrue/false

A true value indicates that the domain has been identified as belonging to a known corporation.

Risk Signal: Government Database Check

The objective of the Government Database check is to provide additional confidence and assurance that the Information extracted from a government ID or document is real and valid by vetting it against an authoritative government source or database tied to the specific country of origin.

For example, this could involve validating a driving License number against an authoritative source like the DMV in the United States to make sure that the information is genuine and exists at the state that issued the license

Other examples include validating Names, Date of Birth or National ID numbers from passports or ID cards against their respective issuing authorities. For example, the Government Database checks that, an Australian passport number is verified via the Document Verification Service (DVS), which is managed by the Australian Government Attorney General's Department.

Some government checks require additional or specialized data or configuration. See the following:

  • Risk Signal: Argentina Renaper Check
  • Risk Signal: Mexican INE Credential Validation (Lista Nominal)
  • Risk Signal: Mexican INE Data & Face Validation
  • Risk Signal: Mexican CURP Validation (Renapo)
  • Risk Signal: Brazilian CPF Number & Biometric Check
  • Risk Signal: Colombian Registraduria Check
  • Risk Signal: Thai DOPA Check

Refer to the figure below for a visual of how the Government Database check works.

Use Cases

Use Case 1

Extract the information from the ID document via Jumio’s ID Verification service and send the data to the pertinent authoritative data source to validate the information. Jumio will respond with a risk level of one of the following:

  • Accept - Match
  • Warning - Partial Match
  • Reject - No Match

The risk level is sent to our customers with an overall decision and metadata pertaining to individual elements supplied.

Use Case 2

Customers provide personal information that they have collected from their consumers. Jumio provides an overall risk assessment based upon that information tied to the government database that it is configured to. Jumio will respond with a risk level of one of the following:

  • Accept - Match
  • Warning - Partial Match
  • Reject - No Match

The risk level is sent to our customers with an overall decision and metadata pertaining to individual elements supplied.

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

KeyTypeMandatoryDescription
firstNamestringno
middleNamestringno
lastNamestringno
dateOfBirthLocalDatenoDate of birth in YYYY-MM-DD format only
socialSecurityNumberstringnoeither socialSecurityNumber, personalNumber or idNumber should be provided
personalNumberstringnoeither socialSecurityNumber, personalNumber or idNumber should be provided
addressObjectnoOnly the fields which are mentioned are required
address fields

address.line1

address.line2

address.city

address.postalCode

address.subdivision

address.country
stringnopostalCode AKA Zip code

subdivision AKA state

country should be ISO Alpha 3 Code only
idObjectnoSee in next row
id.idNumberstringnoeither socialSecurityNumber, personalNumber or idNumber should be provided
id.subTypestringconditionalNot required for all countries. Only required for countries where id Type is not sufficient.

For more details, connect with Jumio Platform Integration Squad

Example Prepared Data Body

{
    "firstName": "KARLA B***D",
    "lastName": "V***AVICENCIO ***",
    "dateOfBirth": "1***-04-27",
    "address": {
        "line1": "",
        "postalCode": "",
        "city": "",
        "subdivision": "",
        "country": "MEX"
    },
    "id": {
        "idNumber": "VIMK98**27MDFLN***",
        "type": "ID_CARD"


    }
}

Example Response

"capabilities": {
"govtIdVerification": [
            {
"id": "f06b17ba-d760-4aac-9e43-59510ab0d928",
               "credentials": [
                   {
                       "id": "c0015c70-8518-4a6f-801e-ec71c230eb89",
                       "category": "ID"
                   }
               ],
 
               "decision": {
                   "type": "PASSED",
                   "details": {
                       "label": "OK"
                   }
               }
 
               "data": {
                   "country": "MEX",
                   "type": "ID_CARD",
                   "completeNameMatch": "MATCH",
                   "initialNameMatch": "MATCH",
                   "firstNameMatch": "MATCH",
                   "lastNameMatch": "MATCH",
                   "nationalIdMatch": "NOT_MATCH",
                   "dobDayMatch": "MATCH",
                   "dobMonthMatch": "MATCH",
                   "dobYearMatch": "MATCH",
                   "dobMatch": "MATCH",
                   "addressMatch": "NOT_MATCH",
                   "score": 10,                 }]
}
 

Decision Details Labels

Decision TypeLabelDescription
PASSEDLOW_RISK
REJECTEDHIGH_RISK
WARNINGMEDIUM_RISK
NOT_EXECUTEDPERMISSION_DENIEDCannot be executed because the required permissions or credentials are missing. Verify your API key and access rights.
NOT_EXECUTEDBAD_REQUESTMalformed or missing required parameters. Ensure that all mandatory fields are included and correctly formatted before retrying.
NOT_EXECUTEDPRECONDITION_NOT_FULFILLED
NOT_EXECUTEDTECHNICAL_ERROR

Data

ParameterTypeValues
CountrystringCountry of Government Check
typestringType of ID used if applicable
completeNameMatchstringMatch, Not_Match
initialNameMatchstringMatch, Not_Match
firstNameMatchstringMatch, Not_Match
lastNameMatchstringMatch, Not_Match
nationalIdMatchstringMatch, Not_Match
"dobDayMatchstringMatch, Not_Match
dobMonthMatchstringMatch, Not_Match
dobYearMatchstringMatch, Not_Match
dobMatchstringMatch, Not_Match
addressMatchstringMatch, Not_Match
scoreint10 - Pass 20 - Warning, 30 - Reject

Portal View

Open a transaction in the Portal to review the response. The risk signal is labeled Government ID Verification as shown in the figure below.

Risk Signal: Argentina Renaper Check

Jumio has a database check service available for Renaper in Argentina. This check allows you to validate the Documento Nacional de Identidad (DNI) and personal identifiable information.

This service connects with the National Registry of Persons (Renaper – Registro Nacional de las Personas). Renaper is the national agency that is responsible for the registration and identification of all individuals who are domiciled in the Argentinian territory or jurisdiction of all Argentina.

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

To use the Renaper Check along with the standard Jumio IDIV service use workflow key 10054.

To use Prepared Data with the Renaper Check as a standalone capability use workflow key 10020.

KeyTypeMandatoryDescription
firstNamestringyes
lastNamestringyes
middleNamestringno
sexstringyesM   - Male         F - Female
dateOfBirthLocalDateyesDate of birth in YYYY-MM-DD format only
addressObjectyesOnly the fields which are mentioned  are required
address fields

address.line1

address.line2

address.city

address.postalCode

address.subdivision

address.country
string

string

string

string

string

string
no

yes
postalCode AKA Zip code

subdivision AKA state

country should be ISO Alpha 3 Code only "ARG"
idObjectyesSee in next row
id.idNumberstringyesDNI # example "12345678"
id.TypestringconditionalID_CARD
id.subTypestringconditionalNATIONAL_ID
id.issuingDatestringconditional
id.expiryDatestringconditional

Example Prepared Data Body

"firstName": "XXXXI",
"lastName": "XXXXXXI",
"sex":"M",
"middleName": "",
"dateOfBirth": "1997-01-10",
"address": {
"line1": "",
"postalCode": "",
"city": "",
"state": "",
"subdivision": "",
"country": "ARG"
},
"id": {
"idNumber": "12345678",
"type": "ID\_CARD",
"subType": "NATIONAL\_ID"

}

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Example Response

"govtIdVerification": [
{
"id": "79e0fa63-0ff5-4bab-99b2-bb9c49637ba2",
"credentials": [
{
"id": "1ceaf3c0-2689-43ea-93aa-187c2ba5da51",
"category": "DATA"
}
],
"decision": {
"type": "PASSED",
"details": {
"label": "OK"
}
},
"data": {
"country": "ARG",
"type": "ID_CARD",
"firstNameMatch": "MATCH",
"lastNameMatch": "MATCH",
"nationalIdMatch": "MATCH",
"dobMatch": "MATCH",
"addressMatch": "NOT_MATCH",
"sexMatch": "MATCH",
"message": "Not Deceased"
},

}
}

Decision Details Labels

Decision TypeLabelDescription
NOT_EXECUTEDPRECONDITION_NOT_FULFILLEDProvided data is incomplete or incorrectly formatted.
NOT_EXECUTEDTECHNICAL_ERRORThe service encountered an error and was unable to process the request.
NOT_EXECUTEDPERMISSION_DENIEDThe request is not authorized to access the service.
PASSEDOK
WARNINGALERT
REJECTEDDENY

Data

KeyTypeDescription
countrystringARG
typestringID_CARD
firstNameMatchstring- MATCH
- NOT_MATCH
lastNameMatchstring- MATCH
- NOT_MATCH
nationalIdMatchstring- MATCH
- NOT_MATCH
dobMatchstring- MATCH
*- NOT_MATCH
addressMatchstring- MATCH
- NOT_MATCH
sexMatchstring- MATCH
- NOT_MATCH
messagestringNot Deceased

Risk Signal: Argentina Renaper Biometric Verification

Biometric Verification checks a Selfie provided by the end user against the photo on record with Renaper. The ID number and selfie are provided as inputs, along with optional name and gender data, and a decision on the risk is returned in the response.

Supported Credentials

The Renaper number can be uploaded as Prepared Data. Alternatively, it can be extracted by an upstream capability in a workflow. The Selfie can be uploaded through the API, or obtained as part of the customer journey.

To use the API to upload Prepared Data and the Selfie use workflow key 10093. The Selfie will be checked by the Usability capability prior to calling the biometricVerification capability.

To use Renaper Verification along with the standard Jumio IDIV service use workflow key 10094.

The following value can be uploaded as Prepared Data.

KeyTypeMandatoryDescription
firstNamestringyes
lastNamestringyes
middleNamestringno
sexstringyesM   - Male
F - Female
id.idNumberstringyesDNI # example "12345678"

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Example Response

"biometricVerification": [
{
"id": "4c9de7c7-0e91-4476-a303-dde196357ec5",
"credentials": [
{
"id": "b0e79c4e-b0e9-4121-bc93-a67b8e1ffc85",
"category": "ID"
},
{
"id": "233641de-2a97-4764-9153-180308145a00",
"category": "SELFIE"
}
],
"decision": {
"type": "WARNING",
"details": {
"label": "MEDIUM_RISK"
}
},
"data": {
"nameMatch": "MATCH",
"faceMatch": "PARTIAL_MATCH",
"idNumberMatch": "MATCH",
"genderMatch": "MATCH"
}
}

Decision Details Labels

Decision TypeLabelDescription
PASSEDLOW_RISKThe provided Selfie matches the photo on record.
REJECTEDHIGH_RISKThe provided Selfie does not match the photo on record.
WARNINGMEDIUM_RISKIt cannot be determined whether or not the provided Selfie matches the photo on record.
NOT_EXECUTEDTECHNICAL_ERRORVerify the provided data is correct and retry, or contact Support.
NOT_EXECUTEDPERMISSION_DENIEDCannot be executed because the required permissions or credentials are missing. Verify your API key and access rights.
NOT_EXECUTEDBAD_REQUESTMalformed or missing required parameters. Ensure that all mandatory fields are included and correctly formatted before retrying.

Data

KeyPossible ValuesDescription
nameMatchMATCH
NOT_MATCH
To be a MATCH the concatenated firstName and lastName value of the input data must exactly match what is in theRenaper database.
faceMatchMATCH
NOT_MATCH
Selfie matches the photo on record.
idNumberMatchMATCH
NOT_MATCH
Input matches valid Renaper number.
genderMatchMATCH
NOT_MATCH
Input matches gender on record.

Risk Signal: Mexican INE Data & Face Validation

Jumio has a number of database check services available for Mexico. These checks allow you to validate Mexican National IDs and personal identifiable information.

This service connects with the Mexican National Electoral Institute (Instituto Nacional Electoral, INE) to validate INE ID numbers, owner information and biometric information. There are 2 services that are available for INE:

  1. Data Validation of Voting credential at INE:
    1. Verifies that the data registered at INE’s nominal database matches those presented by the user.
    2. Validates that the credential is a valid document.
  2. Biometric Validation of Voting credential at INE:
    1. Verifies that the face of the user matches that registered in the INE.
ℹ️   The data validation and Biometric validation services both require a direct contract with the INE. Please see your Jumio Sales representative for more information. We work with a partner to directly integrate with INE.
Service NameDescriptionRequired FieldsVerifiable Fields
Mexico INE Data ValidationInput is verified against the INE- Elector Key
- OCR
- Issue #
- Name
- Paternal Surname
- Maternal Surname
- CURP #(National Id)
- OCR#
- Elector Key
- Registration Year
- Issuing Year
- Issuing Number
Mexico INE Face ValidationInput is verified against the INE- Elector Key
- OCR
- Issue #
- Selfie Image
- Name
- Paternal Surname
- Maternal Surname
- Face Match
- OCR#
- Elector Key
- Registration Year
- Issuing Year
- Issuing Number
- CURP #(Id number)

Customer Onboarding

Due to the nature of the integration with INE, we will work with our partner to stand up a dedicated secure infrastructure that is required by the Mexican Government to access INE. Once the contract with INE is signed, our production team will work you and our partner (FIMPE) to start the onboarding process.

Our production team needs the following information:

AWS Region and Stage where Middleware needs to be deployed.

  • Tenant Information:
  • Tenant GUID
  • Tenant Id
  • Tenant Name

FIMPE Middleware Key files(provided by FIMPE):

  • INSTITUTONACIONALELECTORAL_publica.key
  • MW_KEYS_TO_SVBI_PRIVATE_MW_KEY
  • publica.key
  • privada.key
  • FIMPE SVBI Port Number(provided by FIMPE)

The estimated time needed for completion:

  • 4-5 days/client to setup the environments
  • 2 days/client for the Engineering team to test and certify the setup and functionality.

Required Credentials

Prepared Data: INE Data

KeyTypeMandatoryDescription
firstNamestringno
paternalSurnamestringno
maternalSurnamestringno
addressObjectnoOnly the fields which are mentioned are required
address.country
stringno
country should be set to “MEX”
idObjectnoSee in next row
id.idNumberstringnoCURP ID number # example "XXXX910225XXXXXS09"
id.TypestringconditionalID_CARD
id.subTypestringno
id.issuingDatestringno
id.expiryDatestringno
ineObjectyesSee in next row
ine.cicstringnoCIC number of the elector credential
ine.ocrstringyesOCR number of the elector credential
ine.issuingNumberstringyesIssuing Number - Numeric
ine.electorKeystringyesElector Key - 18 Characters
ine.registrationYearstringnoYYYY
ine.issuingYearstringnoYYYY

Example Request

{
"firstName": "XXXXX",
"paternalSurname": "XXXXXX",
"maternalSurname": "XXXXX",
"address": {
"country": "MEX"
},
"id": {
"idNumber": "XYZA891218ABCEFG01",
"type": "ID\_CARD",
"subType": "",
"issuingDate": "",
"expiryDate": ""
},
"ine": {
"cic": "201112341",
"ocr": "0000345678911", <mandatory>
"issuingNumber": "02", <mandatory>
"electorKey": "ABCDEF12341809C100",<mandatory>
"registrationYear": 2008,
"issuingYear": 2019
}
}

Response

ParameterTypeNote
idstringUUID of the capability
credentialsarray(Credential)
decisionobject
decision.typestringPossible values:
- NOT_EXECUTED
- PASSED
- REJECTED
- WARNING


If CURP # is a mismatch decision = REJECT ,risk score 100 else:

If elector key, ocr and name is a match, decision = PASS , risk score is 0, else decision=WARNING, risk score is 50
decision.detailsobject
decision.details.labelstringPossible values:
- OK
- DENY
- ALERT
- NOT_ENOUGH_DATA
- TECHNICAL_ERROR
- PERMISSION_DENIED
- BAD_REQUEST
- PRECONDITION_NOT_FULFILLED
dataobject
data.completeNameMatchstringMATCH / NOT_MATCH
data.nationalIdMatchstringMATCH / NOT_MATCH
data.ocrMatchstringMATCH / NOT_MATCH
data.issuingNumberMatchstringMATCH / NOT_MATCH
data.registrationYearMatchstringMATCH / NOT_MATCH
data.issuingYearMatchstringMATCH / NOT_MATCH
data.electorKeyMatchstringMATCH / NOT_MATCH
data.paternalSurnameMatchstringMATCH / NOT_MATCH
data.maternalSurnameMatchstringMATCH / NOT_MATCH

Credential

KeyTypeDescription
idstringUUID of credential used
categorystringcategory of credential used

Capability Response

"govtIdVerification": [
{
"id": "d1858198-d2f2-4235-97f7-5f9cb088a2ae",
"credentials": [
{
"id": "21135260-f435-4052-93a7-a943f12d5f2c",
"category": "ID"
}
],
"decision": {
"type": "WARNING",
"details": {
"label": "ALERT"
}
},
"data": {
"completeNameMatch": "NOT_MATCH",
"nationalIdMatch": "MATCH",
"ocrMatch": "MATCH",
"issuingNumberMatch": "NOT_MATCH",
"registrationYearMatch": "NOT_MATCH",
"issuingYearMatch": "MATCH",
"electorKeyMatch": "MATCH",
"paternalSurnameMatch": "MATCH",
"maternalSurnameMatch": "MATCH"
}
}
]

Required Credentials

Prepared Data: INE Data with Biometric (Selfie)

KeyTypeMandatoryDescription
firstNamestringno
paternalSurnamestringno
maternalSurnamestringno
addressObjectnoOnly the fields which are mentioned are required
address.country
stringno
country should be set to “MEX”
idObjectnoSee in next row
id.idNumberstringnoCURP ID number # example "XXXX910225XXXXXS09"
id.TypestringconditionalID_CARD
id.subTypestringno
id.issuingDatestringno
id.expiryDatestringno
ineObjectyesSee in next row
ine.cicstringnoCIC number of the elector credential
ine.ocrstringyesOCR number of the elector credential
ine.issuingNumberstringyesIssuing Number - Numeric
ine.electorKeystringyesElector Key - 18 Characters
ine.registrationYearstringnoYYYY
ine.issuingYearstringnoYYYY
note

Biometric (Selfie) needs to be sent with Prepared Data.

Example Request

{
"firstName": "XXXXX",
"paternalSurname": "XXXXXX",
"maternalSurname": "XXXXX",
"address": {
"country": "MEX"
},
"id": {
"idNumber": "XYZA891218ABCEFG01",
"type": "ID_CARD",
"subType": "",
"issuingDate": "",
"expiryDate": ""
},
"ine": {
"cic": "201112341",
"ocr": "0000345678911", <mandatory>
"issuingNumber": "02", <mandatory>
"electorKey": "ABCDEF12341809C100",<mandatory>
"registrationYear": 2008,
"issuingYear": 2019
}
}

Response

ParameterTypeNote
idstringUUID of the capability
credentialsarray(Credential)
decisionobject
decision.typestringPossible values:
- NOT_EXECUTED
- PASSED
- REJECTED
- WARNING


If CURP is a mismatch and face similarity is <=50 % decision = REJECT , risk score is 100 else: If the elector key, ocr and name is a match with similarity >=85%, decision = PASS , risk score = 0 else decision=WARNING. Risk score = 50
decision.detailsobject
decision.details.labelstringPossible values:
- OK
- DENY
- ALERT
- NOT_ENOUGH_DATA
- TECHNICAL_ERROR
- PERMISSION_DENIED
- BAD_REQUEST
- PRECONDITION_NOT_FULFILLED
dataobject
data.NameMatchstringMATCH / NOT_MATCH
data.faceMatchstringMATCH / NOT_MATCH
data.ocrMatchstringMATCH / NOT_MATCH
data.issuingNumberMatchstringMATCH / NOT_MATCH
data.registrationYearMatchstringMATCH / NOT_MATCH
data.issuingYearMatchstringMATCH / NOT_MATCH
data.electorKeyMatchstringMATCH / NOT_MATCH
data.paternalSurnameMatchstringMATCH / NOT_MATCH
data.maternalSurnameMatchstringMATCH / NOT_MATCH
data.idNumberMatchstringMATCH / NOT_MATCH

Credential

KeyTypeDescription
idstringUUID of credential used
categorystringcategory of credential used

Capability Response

"biometricVerification": [
{
"id": "c0015f7b-0999-4682-a1a6-a10241a01f7c",
"credentials": [
{
"id": "36b715ee-2822-488d-ac2a-159536645411",
"category": "DATA"
},
{
"id": "adce826e-a43d-45d4-84f7-80e2b917fda1",
"category": "SELFIE"
}
],
"decision": {
"type": "REJECTED",
"details": {
"label": "HIGH_RISK"
}
},
"data": {
"nameMatch": "NOT_MATCH",
"faceMatch": "NOT_MATCH",
"ocrMatch": "MATCH",
"issuingNumberMatch": "NOT_MATCH",
"registrationYearMatch": "NOT_MATCH",
"issuingYearMatch": "MATCH",
"electorKeyMatch": "MATCH",
"paternalSurnameMatch": "MATCH",
"maternalSurnameMatch": "MATCH",
"idNumberMatch": "MATCH"
}
]
}

Risk Signal: Mexican INE Credential Validation (Lista Nominal)

Jumio has a number of database check services available for Mexico. These checks allow you to validate Mexican National IDs and personal identifiable information.

This service connects with THE Mexican National Electoral Institute (Instituto Nacional Electoral, INE) to validate INE ID numbers and relevant data.

Service NameDescriptionRequired FieldsVerifiable Fields
Mexico INE Credential ValidationInput is verified against the INE Nominal list- Elector key
- CIC
- Citizen ID/OCR
- Issue #
- Type
- Elector key Match / No Match
- OCR/Citizen I
- CIC
- Issuing number

Required fields may vary due to version of the INE card.

Supported Credentials

Nominal List

The following is a nominal list of required values. They can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

KeyTypeMandatoryDescription
firstNamestringno
lastNamestringno
middleNamestringno
paternalSurnamestringno
maternalSurnamestringno
sexstringnoH - Male M - Female
emailstringno
phoneNumberstringno
ipAddressstringno
socialSecurityNumberstringnosocialSecurityNumber,
dateOfBirthLocalDatenoDate of birth in YYYY-MM-DD format only
addressObjectyesOnly the fields mentioned are required
address.countrystringyescountry should be MEX (ISO Alpha 3 Code for Mexico)
idObjectnoSee in next row
id.idNumberstringnoID number # example "XXXX910225XXXXXS09"
id.TypestringconditionalID_CARD
id.subTypestringno
id.issuingDatestringno
id.expiryDatestringconditional
ineObjectnoSee in next row
ine.cicstringconditionalCIC number of the elector credential
ine.citizenIDstringconditionalCitizen Identification Number
ine.ocrstringconditionalOCR number of the elector credential
ine.electorKeystringconditionalElector Key - 18 Characters
ine.issuingNumberstringconditionalIssue number of the elector credential
ine.typestringconditionalType of card - C, D, E, F, G or H

The table below also outlines the required inputs that are dependent on the card type.

AttributeUseTypeDescription
cicMandatory if it’s type:
- D
- E
- F
- G
- H
StringCIC number of the elector credential
ocrMandatory if it’s type:
- C
- D
StringOCR number of the elector credential
claveElector / electorKeyMandatory if it’s type:
- C
StringElector Key
numeroEmision / issueNumberMandatory if it’s type:
-C
StringIssue number of the elector credential
identificadorCiudadan / citizenIDMandatory if it’s type:
- E
- F
- G
- H
StringCitizen identification number

Capability Request (Card Type H)

{
"firstName": "xxxxx",
"lastName": "xxxxxx",
"middleName": "",
"email": "",
"phoneNumber": "",
"ipAddress": "",
"socialSecurityNumber": "",
"dateOfBirth": "1972-02-17",
"address": {
"country": "MEX"
},
"id": {
"idNumber": "XXXX700923XXXXXX10",
"type": "ID\_CARD",
"subType": "",
"issuingDate": "",
"expiryDate": ""
},
"ine": {
"cic":"156885641",
"citizenID":"093418420",
"ocr":"3614093418420",
"electorKey":"XXXXXX92082030X700",
"issuingNumber":"08",
"type":"H"

Capability Request (Card Type E)

{
"firstName": "xxxxx",
"lastName": "xxxxxx",
"middleName": "",
"email": "",
"phoneNumber": "",
"ipAddress": "",
"socialSecurityNumber": "",
"dateOfBirth": "1972-02-17",
"address": {
"country": "MEX"
},
"id": {
"idNumber": "XXXX700923XXXXXX10",
"type": "ID\_CARD",
"subType": "",
"issuingDate": "",
"expiryDate": ""
},
"ine": {
"cic":"156885641",
"citizenID":"093418420",
"type":"E"
}
}

Response

"govtIdVerification": [
{
"id": "49726009-a68a-4ad0-a099-98c0a4613b2e",
"credentials": [
{
"id": "86d416e5-76b8-49ec-9ad2-20b530b8e947",
"category": "DATA"
}
],
"decision": {
"type": "PASSED",
"details": {
"label": "OK"
}
},
"data": {
"ocr": "MATCH",
"issueNumber": "MATCH",
"registrationYear": "MATCH",
"issueYear": "MATCH",
"electorKey": "MATCH",
"message": "Valid as ID and you can vote"
},

Decision Details Labels

Decision TypeLabelDescription
PASSEDOK
REJECTEDDENY
WARNINGALERT
NOT_EXECUTEDPERMISSION_DENIED
NOT_EXECUTEDNOT_ENOUGH_DATA
NOT_EXECUTEDBAD_REQUESTThe request was malformed or missing required fields.
NOT_EXECUTEDPRECONDITION_NOT_FULFILLED
NOT_EXECUTEDTECHNICAL_ERROR

Data

ParameterTypeNote
ocrstring
issueNumberstringMATCH / NOT_MATCH
registrationYearstringMATCH / NOT_MATCH
issueYearstringMATCH / NOT_MATCH
electorKeystringMATCH / NOT_MATCH
messagestringValid as ID and you can vote

Risk Signal: Mexican CURP Validation (Renapo)

Jumio has a number of database check services available for Mexico. These checks allow you to validate Mexican National IDs and personal identifiable information.

This service connects with the Mexican National Population Registry (Registro Nacional de Población / RENAPO) to validate that the Unique Population Registry Code (Clave Única de Registro de Población / CURP) number present on the ID card exists and its owner matches the data.

Service NameDescriptionRequired FieldsVerifiable Fields
Mexico CURP ValidationInput is verified against the RENAPO (Registro Nacional de Población e Identificación Personal). This stands for the National Census and Personal Identification Registry.Curp ID- CURP ID#
- First Name
- Paternal Name
- Maternal Name
- Date of Birth (DOB)
- Gender
- Address (state)

Curp Validation

Required Credentials

Prepared Data

KeyTypeMandatoryDescription
firstNamestringno
lastNamestringno
middleNamestringno
paternalSurnamestringno
maternalSurnamestringno
sexstringnoH   - Male
M - Female
emailstringno
phoneNumberstringno
ipAddressstringno
socialSecurityNumberstringnoeither socialSecurityNumber, personalNumber or idNumber should be provided
dateOfBirthLocalDatenoDate of birth in YYYY-MM-DD format only
addressObjectyesOnly the fields mentioned below are required
address.countrystringyesCountry should be MEX (ISO Alpha 3 Code for Mexico)
idObjectnoSee in next row
id.idNumberstringnoCURP # example "XXXX910225XXXXXS09"
id.TypestringconditionalID_CARD
id.subTypestringconditional
id.issuingDatestringconditional
id.expiryDatestringconditional
ℹ️   If CURP (nationalID) is present, we validate the CURP and surface match/no match for address (state), gender, name (first name), Date of Birth (DOB), and nationalID, if provided.
ℹ️   If Curp/nationalID is not present, we validate KYC namely name (full name, paternal surname, maternal surname, gender, DOB, and address (state). All fields are mandatory except maternal surname.
ℹ️   10054 may not work, since extraction does not extract paternal and maternal surnames. It is extracted as full name and we are unable to bifurcate).

Response

ParameterTypeNote
idstringUUID of the capability
credentialsarray(Credential)
decisionobject
decision.typestringPossible values:

- NOT_EXECUTED
- PASSED
- REJECTED
- WARNING
decision.detailsobject
decision.details.labelstringPossible values:

- OK
- DENY
- ALERT
- NOT_ENOUGH_DATA
-TECHNICAL_ERROR
- PERMISSION_DENIED
- BAD_REQUEST
- PRECONDITION_NOT_FULFILLED
dataobject
data.nationalidMatchstringPossible values:

- Match
- NoMatch
data.reasonMessagestringPossible values:

- Verification Successful
- WITHOUT RENAPO RESPONSE
- DOES NOT RESPOND
- INCORRECT DATA
- REFERENCE ALREADY EXIST
- UNEXPECTED ERROR
data.firstNameMatchstringMatch,  NoMatch
data.dobMatchstringMatch,  NoMatch
data.sexMatchstringMatch,  NoMatch
data.paternalSurnameMatchstringMatch,  NoMatch
data.maternalSurnameMatchstringMatch,  NoMatch
data.stateKeyMatchstringMatch, NoMatch

Credential

KeyTypeDescription
idstringUUID of credential used
categorystringcategory of credential used

Capability Request (with Curp)

{
"firstName": "LXXXX MXXXXXX",
"lastName": "AXXXXi",
"middleName": "",
"sex": "H",
"email": "",
"phoneNumber": "",
"ipAddress": "",
"socialSecurityNumber": "",
"dateOfBirth": "1991-02-25",
"address": {
"country": "MEX"
},
"id": {
"idNumber": "XXX910225XXXXXS09", (Mandatory)
"type": "ID\_CARD",
"subType": "",
"issuingDate": "",
"expiryDate": ""
}
}

Capability Response (Curp ID)

"govtIdVerification": [
{
"id": "439e2649-d1f4-4418-a9e7-14cba6522124",
"credentials": [
{
"id": "45591915-55b2-42fc-a615-8f170c5558b4",
"category": "DATA"
}
],
"decision": {
"type": "PASSED",
"details": {
"label": "OK"
}
},
"data": {
"firstNameMatch": "NOT_MATCH",
"nationalIdMatch": "MATCH",
"sexMatch": "MATCH",
"stateKeyMatch": "NOT_MATCH",
"reasonMessage": "Verification Successful"
}
}
]
}

Capability Response (No Curp ID)

"govtIdVerification": [
{
"id": "bd84dbf7-35dc-4136-bc54-8faea1f09116",
"credentials": [
{
"id": "b8d793ab-8f65-47c1-8025-9f00a477b5fb",
"category": "DATA"
}
],
"decision": {
"type": "PASSED",
"details": {
"label": "OK"
}
},
"data": {
"firstNameMatch": "MATCH",
"dobMatch": "MATCH",
"sexMatch": "MATCH",
"paternalSurnameMatch": "MATCH",
"maternalSurnameMatch": "MATCH",
"stateKeyMatch": "MATCH",
"reasonMessage": "Verification Successful"
}
}
]
}

Risk Signal: Brazilian CPF Number Check

The Jumio CPF check allows customers to validate the CPF Number. CPF is the Brazilian Individual Taxpayer Registry Identification number, referred to as Cadastro de Pessoas Fisicas (Portuguese for “Natural Persons Register”). A CPF number is a permanent number printed on current driver’s licenses (DL) & ID versions. A CPF number is assigned to both Brazilians and resident aliens who are subject to taxes in Brazil.

The CPF Number Validation service will send the extracted CPF number from the DL & ID to the Tax ID database in order to:

  • Retrieve the status of the CPF number.
  • Compare the name returned from the database with the name provided for the transaction.
  • Map the results and return the status of the match.

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

To use Prepared Data with the CPF Number Check as a standalone capability use workflow key 10005.

KeyTypeMandatoryDescription
id.idNumberstringyesfor Brazil, this will be CPF number
id.typestringnoID_CARD or DL
firstNamestringMust include firstName or lastName, and may include both.*first name
lastNamestringMust include firstName or lastName, and may include both.*last name
dateOfBirthstringnoYYYY-MM-DD. Will influence risk score if provided.
address.countrystringyescountry should be ISO Alpha 3 Code only

* The concatenated values of the firstName and lastName fields are matched against the name on record for the CPF number.

Example Prepared Data Body

{
"firstName": "pris****",
"lastName": "da *****",
"dateOfBirth":"1982-MM-08",
"address": {
"country": "BRA"
},
"id":{
"idNumber":"28908936***",
"type":"ID_CARD"
}

}

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Example Response

"braCpfValidation": [
{
"id": "efbb1f08-****-43d3-b4e6-******30bb76",
"credentials": [
{
"id": "20d0613b-11d6-4d25-97e9-60fffad*****",
"category": "DATA"
}
],
"decision": {
"type": "PASSED",
"details": {
"label": "OK"
}
},
"data": {
"nameMatch": "MATCH",
"cpfMatch": "MATCH",
"dateOfBirthMatch": "MATCH"
}
}]

Decision Details Labels

Decision TypeLabelDescription
PASSEDOKThe provided data matched
REJECTEDDENYThe provided data did not match what was on record.
WARNINGALERTThe CPF number is valid but either the name or DOB do not exactly match.
NOT_EXECUTEDNOT_ENOUGH_DATAThe provided data was inadequate to process the transaction.
NOT_EXECUTEDTECHNICAL_ERROR

Data

KeyPossible ValuesDescription
nameMatchMATCH

NOT_MATCH
To be a MATCH the concatenated firstName and lastName value of the input data must exactly match what is in the CPF database.
cpfMatchMATCH

NOT_MATCH
CPF number matches.
dateOfBirthMatchMATCH

NOT_MATCH
Date of birth matches.

Brazilian CPF Biometric Verification

Biometric Verification checks a Selfie provided by the end user against the photo on record with the Brazilian CPF data. The CPF number and selfie are provided as inputs, and a decision on the risk is returned in the response.

Supported Credentials

The CPF number can be uploaded as Prepared Data. Alternatively, it can be extracted by an upstream capability in a workflow. The Selfie can be uploaded through the API, or obtained as part of the customer journey.

To use the API to upload Prepared Data and the Selfie use workflow key 10006. The Selfie will be checked by the Usability capability prior to calling the biometricVerification capability.

To use Biometric Verification along with the standard Jumio IDIV service and the CPF Number check service, use workflow key 10021.

The following value can be uploaded as Prepared Data.

KeyTypeMandatoryDescription
personalNumberstringyesThe CPF number

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Example Response

"biometricVerification":[
{
"id":"14be80df-e3b4-4ce8-aa55-bccf52464ae4",
"credentials":[
{
"id":"d20757d8-2979-4805-b64b-30e75afec88f",
"category":"DATA"
},
{
"id":"487578ce-36d4-45d1-bdd0-fe5702ba2443",
"category":"SELFIE"
}
],
"decision":{
"type":"PASSED",
"details":{
"label":"LOW_RISK"
}
},
"data":{
"nameMatch":"MATCH",
"dobMatch":"MATCH",
"pincodeMatch":"NOT_MATCH",
"cityMatch":"NOT_MATCH",
"faceMatch":"MATCH"
}
}

Decision Details Labels

Decision TypeLabelDescription
PASSEDLOW_RISKThe provided Selfie matches the photo on record.
REJECTEDHIGH_RISKThe provided Selfie does not match the photo on record.
WARNINGMEDIUM_RISKIt cannot be determined whether or not the provided Selfie matches the photo on record.
NOT_EXECUTEDTECHNICAL_ERRORVerify the provided data is correct and retry, or contact Support.
NOT_EXECUTEDPERMISSION_DENIEDCannot be executed because the required permissions or credentials are missing. Verify your API key and access rights.
NOT_EXECUTEDBAD_REQUESTMalformed or missing required parameters. Ensure that all mandatory fields are included and correctly formatted before retrying.

Data

KeyPossible ValuesDescription
nameMatchMATCH

NOT_MATCH
To be a MATCH the concatenated firstName and lastName value of the input data must exactly match what is in the CPF database.
pincodeMatchMATCH

NOT_MATCH
CPF number matches.
dobMatchMATCH

NOT_MATCH
Date of birth matches.
faceMatchMATCH

NOT_MATCH
Selfie matches the photo on record.

Risk Signal: Colombian Registraduria Check

Jumio has a database check service available for the Colombian Registraduria database. This check verifies that a provided Colombian ID number and related user information corresponds to existing government records.

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

To use with the standard Jumio IDIV service use workflow key 10054.

To use Prepared Data with the Colombian Registradurias Check as a standalone capability use workflow key 10020.

KeyTypeMandatoryDescription
firstNamestringyes
lastNamestringyes
middleNamestringno
paternalSurnamestringno
maternalSurnamestringno
dateOfBirthLocalDateyesDate of birth in YYYY-MM-DD format only
idObjectyesSee in next row
id.idNumberstringyesNUIP number. Do not include periods.

Example: "1234567890"
id.typestringyes- DRIVING_LICENSE
- PERMIT
- ID_CARD
id.issuingDatestringnoDate the ID was issued in YYYY-MM-DD format only
addressobjectyes
address.countrystringyesCOL

Country in ISO-3166-1 Alpha-3 Code or ISO-3166-1 Alpha-2 Code format.

Example Prepared Data Body

{
"firstName": "XXXXXX",
"lastName": "XXXXXX",
"dateOfBirth": "1959-04-22",
"paternalSurname": "XXXXXX",
"maternalSurname": "XXXXXX",
"address": {
"country": "COL" )
},
"id": {
"idNumber": "XXXXXXXXXX",
"type": "ID_CARD",
"issuingDate": "1977-09-01"
}
}

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Example Response

"govtIdVerification": [
{
"id": "721a8178-162e-4ff4-8ab3-4194ceb0e310",
"credentials": [
{
"id": "6248205a-3194-4a23-b5be-515306729583",
"category": "DATA",
"label": "DATA"
}
],
"decision": {
"type": "PASSED",
"details": {
"label": "OK"
}
},
"data": {
"completeNameMatch": "MATCH",
"firstNameMatch": "MATCH",
"lastNameMatch": "MATCH",
"nationalIdMatch": "MATCH",
"dobMatch": "MATCH",
"issuingDateMatch": "MATCH",
"paternalSurnameMatch": "MATCH",
"maternalSurnameMatch": "MATCH",
"statusCode": "0",
"statusDescription": "Valid/Active"
}
}
]

Decision Details Labels

Decision TypeLabelDescription
NOT_EXECUTEDPRECONDITION_NOT_FULFILLEDProvided data is incomplete or incorrectly formatted.
NOT_EXECUTEDTECHNICAL_ERRORThe service encountered an error and was unable to process the request.
NOT_EXECUTEDPERMISSION_DENIEDThe request is not authorized to access the service.
PASSEDOK
WARNINGALERTThe NUIP number is valid but other data may not match.
REJECTEDDENYThe NUIP number is invalid or does not match the provided data.

Data

KeyTypeDescription
firstNameMatch*string- MATCH
- NOT_MATCH
lastNameMatch*string- MATCH
- NOT_MATCH
completeNameMatch*string- MATCH
- NOT_MATCH
nationalIdMatchstring- MATCH
- NOT_MATCH
dobMatchstring- MATCH
- NOT_MATCH
issuingDateMatchstring- MATCH
- NOT_MATCH
paternalSurnameMatch*string- MATCH
- NOT_MATCH
maternalSurnameMatch*string- MATCH
- NOT_MATCH
statusCodestringStatus code number.
statusDescriptionstringDescription of the status associated with the status code.

* The firstNameMatch, lastNameMatch, paternalSurnameMatch, and maternalSurnameMatch fields will be returned only if the granular name values are provided as Prepared Data. If the name is extracted from an ID document, only the completeNameMatch field will be returned, as shown in the following example:

"govtIdVerification": [
{
"id": "7502be48-390c-4796-989e-5000e59c7e8e",
"credentials": [
{
"id": "38317d8c-7b5f-4b8f-b21a-f3757b1b86c1",
"category": "ID"
}
],
"decision": {
"type": "PASSED",
"details": {
"label": "OK"
}
},
"data": {
"country": "COL",
"type": "ID_CARD",
"completeNameMatch": "MATCH",
"nationalIdMatch": "MATCH",
"dobMatch": "MATCH",
"issuingDateMatch": "MATCH","statusCode": "0",
"statusDescription": "Valid/Active"
},

Risk Signal: Phone Verification

Phone Verification enables our customers to assess the risk of a provided phone number. Phone verification is a fundamental risk check that analyzes a phone number to provide an overall risk. This adds phone intelligence as a layer of defense to fraud prevention.

Phone verification provides the overall risk and reputation of a phone number by looking at the risk and usage of patterns of the phone number along with metadata around the type of phone.

Use Case

For those with onboarding and account login workflows who wish to understand and assess the risk of a given phone number.

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

To use Prepared Data with phone verification as a standalone capability use workflow key 10065.

KeyTypeMandatoryDescription
phoneNumberStringyesPhone number of the subject in E.164 format.

Must include country code.

Example Prepared Data Body

{
"phoneNumber": "+65644***8"
}

Response

capabilities ": {
"phoneVerification": [{
"id": "94d8b738-07c2-45b8-8b7d-5e5f5dc89947",
"credentials": [{
"id": "48655c2f-5e5f-46e0-bb42-22c980c630fd",
"category": "DATA"
}],
"decision": {
"type": "PASSED",
"details": {
"label": "LOW_RISK"
}
},
"data": {
"phoneType": "MOBILE",
"carrier": "Vi",
"blocked": false,
"riskInsights": {
"relativeRisk": [
"LOW ACTIVITY"
],
"applicationToPersonTraffic": [
"SEEN IN THE LAST 1 DAY",
"LOW LONG-TERM ACTIVITY",
"NO RANGE ACTIVITY"
],
"personToPersonTraffic": [
"NO P2P DATA ANALYZED"
]
}
}
]

Decision Details Labels

Decision TypeLabelDescription
PASSEDLOW_RISK
REJECTEDHIGH_RISK
WARNINGMEDIUM_RISK
NOT_EXECUTEDPERMISSION_DENIEDThe request is not authorized to access the service.
NOT_EXECUTEDBAD_REQUESTThe request was malformed or missing required fields.
NOT_EXECUTEDPRECONDITION_NOT_FULFILLED
NOT_EXECUTEDTECHNICAL_ERROR

Data

ParameterTypeNote
phoneTypestringPossible values:
- FIXED_LINE
- INVALID
- MOBILE
- OTHER
- PAGER
- PAYPHONE
- PERSONAL
- PREPAID
- TOLLFREE
- VOIP
carrierstringPhone Carrier Name
blockedbooleanTrue / False
riskInsights.relativeRiskstring arrayThe risk category. This is determined based on weighting the risk and trust signals indicated by the other risk insights. See Relative Risk Values.
riskInsights.applicationToPersonTrafficstring arrayReasons specific to application-to-person messaging (a2p). These are automated messages sent to a human, such as verification codes, appointment reminders, etc. These reasons are organized into multiple sub-categories. See Application to Person Values.
riskInsights.personToPersonTrafficstring arrayNot used at this time. The value will always be "NO P2P DATA ANALYZED"

Relative Risk Values

ValueDescription
low activityNot enough activity or attributes to classify the transaction as either risky or trustworthy.
low regular activityTrustworthy category, based on past behavior.
regular activityMost trustworthy category, based on past behavior.
low-risk irregular activityRisky category, based on past behavior.
medium-risk irregular activityHigh-risk category, based on past behavior.
high-risk irregular activityHighest-risk category, based on past behavior.
irregular number typeThis number has risky static attributes (like VOIP phone type or being on a blocklist).

Application to Person Values

CategoryValueDescription
Activityno long-term activityMuch less than expected activity, or none at all, for this number over the past 90 days. Cannot classify.
Activityhigh long-term activityMore than expected activity for this number over the past 90 days.
Activityhigh short-term activityMore than expected activity for this number over the last 24 hours.
Activitymoderate long-term activityExpected activity for this number over the past 90 days.
Activitymoderate short-term activityExpected activity for this number over the last 24 hours.
Activitysparse long-term activitySparse, regular volume of verification traffic on this number over the past 90 days.
Activitycontinuous long-term activityContinuous, regular volume of verification traffic on this number over the past 90 days.
Activityvery high long-term activityVery high volume of verification traffic on this number over the past 90 days.
Activityno activityVery low volume of verification traffic, or none at all, was ever observed on this number.
Activitylow long-term activityLow volume of verification traffic on this phone number over the past 90 days.
Activitylow short-term activityLow volume of verification traffic on this phone number over the past 24 hours. Very low volume of verification traffic, or none at all over the past 90 days.
Activitylow activityLess than expected activity for this number.
Rangeno range activityVery little activity, or none at all, for a risky range that this number belongs to over the past 90 days. Also returned if the number does not belong to a risky range.
Rangelow range activitySome activity for a risky range that this number belongs to over the past 90 days.
Rangemoderate short-term range activitySignificant activity for a risky range that this number belongs to over the last 24 hours.
Rangemoderate long-term range activitySignificant activity for a risky range that this number belongs to over the past 90 days.
Rangehigh short-term range activityVery significant activity for a risky range that this number belongs to over the last 24 hours.
Rangehigh long-term range activityVery significant activity for a risky range that this number belongs to over the past 90 days.
Rangevery high long-term range activityExtremely significant activity for a risky range that this number belongs to over the past 90 days.
Rangevery high short-term range activityExtremely significant activity for a risky range that this number belongs to over the last 24 hours.
Risky Servicesmoderate activity on risky servicesSignificant activity on this number to or from risky services over the past 90 days.
Risky Serviceshigh activity on risky servicesVery significant activity on this number to or from risky services over the past 90 days.
Risky Serviceslong-term activity on risky servicesVerification traffic on risky services on this number over the past 90 days.
Risky Servicesshort-term activity on risky servicesVerification traffic on risky services on this number over the past 24 hours.
Risky Serviceshigh long-term activity on risky servicesHigh volume of verification traffic on risky services on this number over the past 90 days.
Risky Serviceshigh short-term activity on risky servicesHigh volume of verification traffic on risky services on this number over the past 24 hours.
Risky Serviceslong-term range activity on risky servicesVerification traffic on risky services on the range this number belongs to over the past 90 days.
Risky Servicesshort-term range activity on risky servicesVerification traffic on risky services on the range this number belongs to over the past 24 hours.
Risky Serviceshigh long-term range activity on risky servicesHigh volume of verification traffic on risky services on the range this number belongs to over the past 90 days.
Risky Serviceshigh short-term range activity on risky servicesHigh volume of verification traffic on risky services on the range this number belongs to over the past 24 hours.
Risky Servicesvery high short-term activity on risky servicesVery high volume of verification traffic on risky services on this number over the past 90 days.
Risky Servicesvery high long-term activity on risky servicesVery high volume of verification traffic on risky services on this number over the past 24 hours.
Risky Servicesvery high short-term range activity on risky servicesVery high volume of verification traffic on risky services on the range this number belongs to over the past 90 days.
Risky Servicesvery high long-term range activity on risky servicesVery high volume of verification traffic on risky services on the range this number belongs to over the past 24 hours.
Othermachine-like activityBehavior pattern that suggests this number is being used by a bot. Although we expect a submitted number engaged in A2P traffic to communicate with automated systems, we don’t expect the user of that number to be an automated system.
Othermachine-like range activityExtremely high volume of verification traffic in a very short period (less than 1 hour) on the range this number belongs to.
Recencyseen in the last 1 dayThis number was seen in verification traffic in the last 1 day.
Recencyseen in the last 7 daysThis number was seen in verification traffic in the last 7 days.
Recencyseen in the last 15 daysThis number was seen in verification traffic in the last 15 days.
Recencyseen in the last 1 monthThis number was seen in verification traffic in the last 1 month.
Recencyseen in the last 2 monthsThis number was seen in verification traffic in the last 2 months.
Recencyseen in the last 3 monthsThis number was seen in verification traffic in the last 3 months.
Recencyseen more than 3 months agoThis number was not seen in verification traffic in the last 3 months.

Risk Signal: SSN Verification

The Jumio eKYC SSN (Social Security Number) verification service allows a customer to submit personal identifiable information from applicants within the United States. The SSN verification service confirms that a name, address, and Social Security Number are valid and connected to the end user.

This service connects to US data sources such as credit bureaus, SSA, utilities, telecom, USPS, bell companies, and other proprietary sources.

Service NameDescriptionRequired FieldsVerifiable Fields
SSN VerificationInput is verified against the US data sources such as credit bureaus, SSA, utilities, telecom, USPS, bell companies, and other proprietary sources.Name, Address and SSN

Optional: Date of Birth (DOB)
- Name
- Address
- SSN
- DOB
- Phone
- Deceased Indicator

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

KeyTypeMandatoryDescription
firstNamestringyes
lastNamestringyes
middleNamestringno
paternalSurnamestringno
maternalSurnamestringno
sexstringno
emailstringno
phoneNumberstringnoPhone number of the subject in E.164 format.
ipAddressstringno
socialSecurityNumberstringyessocialSecurityNumber, 4 or 9 digit
dateOfBirthLocalDatenoDate of birth in YYYY-MM-DD format only
addressObjectYesOnly the fields mentioned are required
address.line1stringYes
address.line2Yes
address.citystringYes
address.postalCodestringYespostal code AKA Zip code
address.subdivisionstringYessubdivision AKA state
address.countrystringYescountry should be ISO Alpha 3 Code only

Example Prepared Data Body

{
"firstName": "xxxxx",
"lastName": "xxxx",
"middleName": "",
"sex": "M",
"nationality": "",
"phoneNumber2": "",
"phoneNumber": "+555****333",
"ipAddress": "54.190.251.42",
"socialSecurityNumber": "123*****",
"dateOfBirth": "1970-01-31",
"address": {
"line1": "123 main street",
"postalCode": "9***6"
}
}

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

Example Response

ekycSsnVerification": [
{
"id": "4da5f259-aaed-4fd9-8283-6a02d5a18476",
"credentials": [
{
"id": "a94b913f-3fde-4f98-898f-88a0cbaef8b8",
"category": "DATA"
}
],
"decision": {
"type": "WARNING",
"details": {
"label": "MEDIUM_RISK"
}
},
"data": {
"addressMatch": "match",
"nameMatchToSsn": "match",
"nameMatchToAddress": "partial-match",
"phoneMatch": "no-match",
"ssnMatch": "match",
"dateOfBirthMatch": "no-match",
"isDeceased": false,
"isSSNIssuedPriorYOB": false
}
}

Decision Details Labels

Decision TypeLabelDescription
NOT_EXECUTEDPRECONDITION_NOT_FULFILLEDProvided data is incorrectly formatted.
NOT_EXECUTEDNOT_ENOUGH_DATARequired data is not available.
NOT_EXECUTEDTECHNICAL_ERRORThe service encountered an error and was unable to process the request.
PASSEDLOW_RISKProvided data matches available records.
WARNINGMEDIUM_RISKPartial matches of provided name to address.
REJECTEDHIGH_RISKProvided data does not match available records.

Data

KeyTypeDescription
addressMatchstring- match
- no-match
- partial-match
nameMatchToSsnstring- match
- no-match
- partial-match
nameMatchToAddressstring- match
- no-match
- partial-match
This would be instances where part of the address elements (street number, street name, city, State, Zip) have a mismatch or are missing. For example:
- Exact match on first and last name; No match to street name (all other fields match)
- Exact match on first and last name; No match to street number (all other fields match)
phoneMatchstring- match
- no-match
- partial-match
ssnMatchstring- match
- no-match
- partial-match
dateOfBirthMatchstring- match
- no-match
- partial-match
isDeceasedstringThe SSN belongs to a deceased person:

- true
- false
isSSNIssuedPriorYOBstringThe SSN was issued by the SSA prior to the provided Year of Birth:

- true
- false

Risk Signal: Geo IP Verification

Geo IP Verification provides an overall risk and reputation assessment of an IP address associated with an end user.

Supported Credentials

The IP address can be uploaded as Prepared Data. In this case you are expected to obtain the IP address prior to initiating the Jumio transaction. For example you can use to use Geo IP Verification as a standalone service by using workflow key 10118 and uploading the IP address as prepared data.

Alternatively, if you are using Geo IP Verification in a workflow that requires other credentials, and are acquiring those credentials through the Web Client or one of the SDKs, Jumio can obtain the IP address from the end-user device with no additional calls from your integration. For example you can use Geo IP Verification along with the standard IDIV service by using workflow key 10120. The end-user experience with the web client or SDK integration will be the same as the standard IDIV service, and no additional integration effort is required.

KeyTypeMandatoryDescription
ipAddressstringYesThe IP address entered as a string. Either IPv4 or IPv6 format is accepted.

Example Prepared Data Body

{
"ipAddress": "122.23.23.233"
}

Response

Response data is available for transactions that include the risk signal. For information on transaction data see Viewing or Retrieving Workflow Transactions.

**Example Response

"capabilities": {
"geoIpVerification": [
{
"id": "8a1d3dde-f1e5-4832-96c7-1389ad122ab1",
"credentials": [
{
"id": "1230b511-6e82-4c01-a7a3-4e3bcd3a37b1",
"category": "DATA"
}
],
"decision": {
"type": "PASSED",
"details": {
"label": "LOW_RISK"
}
},
"data": {
"country": "USA",
"state": "WA",
"city": "Fort Lauderdale",
"isp": "Google",
"organization": "Google",
"latitude": 26.1995,
"longitude": -80.0984,
"accuracyRadius": 1000,
"anonymousVPN": true,
"satelliteProvider": true
}
}
]
}

Decision Details Labels

Decision TypeLabelDescription
PASSEDLOW_RISKNo significant risk of fraudulent activity is associated with the IP address.
REJECTEDHIGH_RISKSignificant risk of fraudulent activity is associated with the IP address. See the Data fields for additional information.
WARNINGMEDIUM_RISKModerate risk of fraudulent activity is associated with the IP address. See the Data fields for additional information.
NOT_EXECUTEDTECHNICAL_ERRORVerify the provided data is correct and retry, or contact Support.

Data

KeyTypeDescription
countrystringAlpha-3 standard country code of IP address
statestring2 letter symbol code specifying state
citystringName of the city of the IP address
ispstringName of the Internet Service Provider
organizationstringOrganization of the Internet Service Provider
accuracyRadiusintegerAccuracy in kilometers of IP address location from provided coordinates
latitudenumber (double)Latitude of the IP address
longitudenumber (double)Longitude of the IP address
torExitNode*booleantrue when the IP address is a Tor Browser Exit Node
anonymousbooleanwhether the IP address is associated with an anonymizer such as a VPN or other proxy
proxyTypestringReturned if a proxy is used. Example: ANONYMOUS, RESIDENTIAL, PUBLIC
userTypestringSpecifies the behavior observed with typical users. Example: BUSINESS, RESIDENTIAL, HOSTING, CAFE, CELLULAR
highBillingPostalCodeVelocity*booleanThe IP address has been used to submit transactions with many different billing addresses in a short period of time.
highEmailVelocity*booleanThe IP address has been used to submit transactions with many different email addresses in a short period of time.
highIssuerIdVelocity*booleanThe IP address has been used to submit transactions with a high number of Issuer IDs (credit cards, prepaid cards etc.).
highRiskDevicesActivity*booleanThe IP address has been used by a high risk device.
highRiskEmailsActivity*booleanA high risk email address was seen on this IP address in past network transactions.
highRiskNetworkActivity*booleanHigh risk actors are seen on this IP address.

* Only provided if the value is true, indicating potential fraud.

Risk Signal: eKYC Checks

eKYC Checks provide a comprehensive global check on individual data elements such as name, address, date of birth, phone number or national ID (if provided). Checks provide a match/partial/no match response. This supports account onboarding use cases such as opening a bank account or a gaming account where you need to verify that the name, address, DOB, ID, and/or phone number are valid.

eKYC Checks supports both 1+1 and 2+2 checks. A 1+1 check looks for a single match of the input data against sources per country. A 2+2 checks and looks for two matches of the input data against different sources within the same country. See eKYC Checks Supported Countries for additional information.

Prerequisite

The Creating or Updating Accounts request body may include an optional ekycCheck object that includes a searchType value. Allowed values are:

  • one if requesting a 1+1 check
  • two if requesting a 2+2 check

If the object is not included in the request body the default value is one.

Example Account Request Body

{
"customerInternalReference": "myCompany",
"workflowDefinition": {
"key": 10148,
"capabilities": {
"ekycCheck": {
"searchType": "one"
}
}
},
...
}

Supported Credentials

The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.

To use Prepared Data with eKYC Checks as a standalone capability use workflow key 10148.

KeyTypeMandatoryDescription
firstNamestringyesFirst name of the subject.
lastNamestringyesLast name of the subject.
dobstringnoDate of birth, YYYY/MM/DD format.
addressObjectyes
address.line1stringyes
address.line2stringno
address.citystringyesCity of residence as it appears on the Id.
address.postalCodestringyesPostal or zip code.
address.subdivisionstringnoCity subdivision of residence as it appears on the Id.
address.countrystringyesCountry in ISO-3166-1 Alpha-3 Code or ISO-3166-1 Alpha-2 Code format.
phoneNumberStringnoPhone number of the subject in E.164 format.

Country code is required.
emailStringnoOptimal to include.
idObjectnoSee next row.
id.idNumberstringnoNational ID number.
id.typestringnoType of national ID.

Example: Prepared Data Body

{
"firstName": "B***",
"lastName": "S****",
"email": "b***j@gmail.com",
"dob": "1977/01/01",
"phoneNumber": "+91-9880001234",
"id": {
"idNumber": "VIMK98**27MDFLN***",
"type": "ID_CARD
},
"address": {
"line1": "34",
"postalCode": "560029",
"city": "",
"state": "",
"subdivision": "",
"country": "MEX"
}
}

Response

"ekycCheck": [
{
"id": "f5b4ef7b-bbf4-4c89-89d0-5dcd868d6bbf",
"credentials": [
{
"id": "1da85c03-7c5f-4865-ab88-698197defbc7",
"category": "DATA",
"label": "DATA"
}
],
"decision": {
"type": "PASSED",
"details": {
"label": "LOW_RISK"
}
},
"data": {
"completeNameMatch": "MATCH",
"initialNameMatch": "MATCH",
"firstNameMatch": "MATCH",
"lastNameMatch": "MATCH",
"nationalIdMatch": "MATCH",
"addressMatch": "MATCH",
"addressLine1Match": "MATCH",
"addressLine2Match": "MATCH",
"cityMatch": "MATCH",
"zipOrPinCodeMatch": "MATCH",
"dateOfBirthMatch": "MATCH",
"dateOfBirthDayMatch": "MATCH",
"dateOfBirthMonthMatch": "MATCH",
"dateOfBirthYearMatch": "MATCH",
"phoneMatch": "MATCH",
"datasourceType": "United_States Postal,United_States Telco,United_States Commercial",
"searchType": "2+2"
}

Decision Details Labels

Decision TypeLabelDescription
PASSEDLOW_RISK
REJECTEDHIGH_RISK
WARNINGMEDIUM_RISK
NOT_EXECUTEDVALIDATION_FAILED
NOT_EXECUTEDNOT_ENOUGH_DATA
NOT_EXECUTEDPRECONDITION_NOT_FULFILLED
NOT_EXECUTEDTECHNICAL_ERROR

Data

ParameterTypeDescription
completeNameMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the combined first and last name values.
initialNameMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the middle initial .
firstNameMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the first name.
lastNameMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the last name.
nationalIdMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the ID.
addressMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the complete address.
addressLine1Matchstring- "MATCH"
- "NOT_MATCH"

The match status of the address first line.
addressLine2Matchstring- "MATCH"
- "NOT_MATCH"

The match status of the address second line.
cityMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the address city.
zipOrPinCodeMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the address zip or PIN code.
dateOfBirthMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the entire date of birth.
dateOfBirthDayMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the date of birth day.
dateOfBirthMonthMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the date of birth month.
dateOfBirthYearMatchstring- "MATCH"
- "NOT_MATCH"

The match status of the date of birth year.
phoneMatchstringThe match status of the phone number.
datasourceTypestringThe country and the type of data source. The country name is spelled out with underscores replacing spaces. The possible types are:

- Credit
- Government
- Commercial
- Consumer
- Utility
- Proprietary
- Telco
- Postal

Multiple sources may be listed, separated by a comma.
searchTypestring- "2+2"
- "1+1"

Whether a MATCH must be found in 1 database or two databases.

eKYC Checks Supported Countries

Country NameISO# of SourcesNameAddressDOBPhoneNational ID1+12+2
ArgentinaAR2yesyesyesnoyesyesyes
AustraliaAT15yesyesyesyesyesyesyes
AustriaAU2yesyesyesnonoyesyes
BelgiumBE9yesyesyesyesnoyesyes
BrazilBR23yesyesyesyesyesyesyes
CanadaCA3yesyesyesyesnoyesyes
ChileCL2yesyesyesnoyesyesyes
ChinaCN2yesyesyesyesyesyesyes
ColombiaCO4yesyesyesnoyesyesno
Czech RepublicCZ1yesyesyesnonoyesno
DenmarkDK4yesyesyesyesyesyesyes
FinlandFI3yesyesyesyesyesyesyes
FranceFR14yesyesyesyesnoyesyes
GermanyDE9yesyesyesyesnoyesyes
GhanaGH1yesyesyesnoyesyesno
GibraltarGI2yesyesyesyesnoyesno
GreeceGR1yesyesyesyesnoyesno
Hong KongHK2yesyesyesyesyesyesno
IndiaIN5yesnoyesyesyesyesyes
IndonesiaID2yesnoyesyesyesyesyes
IrelandIE3yesyesyesnonoyesno
ItalyIT15yesyesyesyesnoyesyes
JapanJP5yesyesyesyesnoyesno
KenyaKE2yesyesyesnoyesyesno
LuxembourgLU1yesyesyesyesnoyesno
MalaysiaMX2yesyesyesyesyesno
MexicoMY7yesyesyesyesyesyesyes
NigeriaNG4yesyesyesnoyesyesyes
NetherlandsNL10yesyesyesyesnoyesyes
New ZealandNZ2yesyesyesnonoyesyes
NorwayNO2yesyesyesyesnoyesyes
PeruPE3yesyesyesnoyesyesno
PhilippinesPH2yesyesyesyesyesyesyes
PolandPL4yesyesyesnoyesyesyes
PortugalPT4yesyesyesyesnoyesyes
RomaniaRO2yesyesyesnoyesyesno
SingaporeSG2yesyesyesyesnoyesno
SlovakiaSK1yesyesnononoyesno
South AfricaZA8yesyesyesyesyesyesyes
SpainES9yesyesyesyesnoyesyes
SwedenSE4yesyesyesyesnoyesyes
SwitzerlandCH3yesyesyesyesnoyesyes
ThailandTH1yesyesyesnoyesyesno
TurkeyTR4yesyesyesnonoyesno
United Arab EmiratesAE1yesyesnoyesnoyesyes
United KingdomGB19yesyesyesyesnoyesyes
United StatesUS6yesyesyesyesyesyesyes
VietnamVN1yesnoyesyesnoyesyes

Table of Contents