Application ID

This is the application ID, you should send with each API request.

Guides


What Fields am I configured for?


Country Fields

Each verification request to Trulioo's GlobalGateway API contains a set of fields describing the individual being verified (eg. FirstGivenName, DayOfBirth etc..). It also includes the country for which the verification should be performed. The list of possible data fields varies by country. For example, Canada and the United States might have a StateProvince field, but a country like Singapore might not.

Get Fields

The Get Fields endpoint provides the full list of fields for a given country, including which are required by the datasources you're using.

If you're not sure which countries you're configured for, Get Country Codes endpoint will return the full list of country codes for your account.

The response you get from Get Fields will vary based on the requested country, and is tailored to your account configuration. Therefore, it will tell you everything you need to know about what data fields to provide when you want to verify an identity through Trulioo.

Example request

  • HTTP
GET https://gateway.trulioo.com/trial/configuration/v1/fields/Identity Verification/CN
        x-trulioo-api-key:{API key at top of page}
  • JSON
{
  "title": "DataFields",
  "type": "object",
  "properties": {
    "PersonInfo": {
      "title": "PersonInfo",
      "type": "object",
      "properties": {
        "FirstGivenName": {
          "type": "string",
          "description": "First name of the individual to be verified",
          "label": "First Name (名)"
        },
        "MiddleName": {
          "type": "string",
          "description": "Second given name of the individual to be verified",
          "label": "Middle Name"
        },
        "FirstSurName": {
          "type": "string",
          "description": "Last name of the individual to be verified",
          "label": "Last Name (姓)"
        },
        "ISOLatin1Name": {
          "type": "string",
          "description": "ISO Latin 1 Full name as it appears on passport",
          "label": "Passport Full Name"
        },
        "DayOfBirth": {
          "type": "int",
          "description": "Day of birth date (ie 23 for a date of birth of 23/11/1975)",
          "label": "Day Of Birth (日)"
        },
        "MonthOfBirth": {
          "type": "int",
          "description": "Month of birth date (ie 11 for a date of birth of 23/11/1975)",
          "label": "Month Of Birth (月)"
        },
        "YearOfBirth": {
          "type": "int",
          "description": "Year of birth date (ie 1975 for a date of birth of 23/11/1975)",
          "label": "Year Of Birth (年)"
        },
        "Gender": {
          "type": "string",
          "description": "Gender, may be 'M' for male or 'F' for female",
          "label": "Gender"
        },
        "AdditionalFields": {
          "type": "object",
          "description": "Family name and given names, together as found on identification documents",
          "label": "Full Name (姓名)",
          "properties": {
            "title": "AdditionalFields",
            "type": "object",
            "properties": {
              "FullName": {
                "type": "string",
                "description": "Family name and given names, together as found on identification documents",
                "label": "Full Name (姓名)"
              }
            },
            "required": [
              "FullName"
            ]
          }
        }
      },
      "required": [
        "FirstGivenName",
        "FirstGivenName",
        "FirstSurName",
        "FirstSurName",
        "AdditionalFields",
        "ISOLatin1Name"
      ]
    },
    "Location": {
      "title": "Location",
      "type": "object",
      "properties": {
        "BuildingNumber": {
          "type": "string",
          "description": "Building number of home address",
          "label": "Building Number (楼房号码)"
        },
        "BuildingName": {
          "type": "string",
          "description": "Building name of home address",
          "label": "Building Name (楼房名称)"
        },
        "UnitNumber": {
          "type": "string",
          "description": "Flat/Unit/Apartment number of primary residence",
          "label": "Unit Number"
        },
        "StreetName": {
          "type": "string",
          "description": "Street name of primary residence",
          "label": "Street Name (街道名称)"
        },
        "StreetType": {
          "type": "string",
          "description": "Street type of primary residence (Typically St, Rd etc)",
          "label": "Street Type (街道种类)"
        },
        "City": {
          "type": "string",
          "description": "City of home address",
          "label": "City (城市)"
        },
        "Suburb": {
          "type": "string",
          "description": "City or Suburb of primary residence",
          "label": "Suburb"
        },
        "County": {
          "type": "string",
          "description": "County of home address",
          "label": "County (县)"
        },
        "StateProvinceCode": {
          "type": "string",
          "description": "State or Province",
          "label": "State Province"
        },
        "PostalCode": {
          "type": "string",
          "description": "ZIP Code or Postal Code of primary residence",
          "label": "Postal Code"
        },
        "POBox": {
          "type": "string",
          "description": "Post Office Box",
          "label": "PO Box"
        },
        "AdditionalFields": {
          "type": "object",
          "description": "Street address of primary residence",
          "label": "Address 1",
          "properties": {
            "title": "AdditionalFields",
            "type": "object",
            "properties": {
              "Address1": {
                "type": "string",
                "description": "Street address of primary residence",
                "label": "Address 1"
              }
            },
            "required": []
          }
        }
      },
      "required": []
    },
    "Communication": {
      "title": "Communication",
      "type": "object",
      "properties": {
        "Telephone": {
          "type": "string",
          "description": "Telephone number of the individual to be verified",
          "label": "Telephone (固定电话号码)"
        },
        "EmailAddress": {
          "type": "string",
          "description": "Email Address",
          "label": "Email Address"
        }
      },
      "required": [
        "EmailAddress"
      ]
    },
    "NationalIds": {
      "title": "NationalIds",
      "type": "object",
      "properties": {
        "Number": {
          "type": "string"
        },
        "Type": {
          "type": "string",
          "value": "nationalid"
        },
        "DistrictOfIssue": {
          "type": "string",
          "description": "District where document was issued",
          "label": "District Of Issue (发证区)"
        },
        "CityOfIssue": {
          "type": "string",
          "description": "City where document was issued",
          "label": "City Of Issue (发证城市)"
        },
        "ProvinceOfIssue": {
          "type": "string",
          "description": "Province where document was issued",
          "label": "Province Of Issue (发证省)"
        },
        "CountyOfIssue": {
          "type": "string",
          "description": "County where document was issued",
          "label": "County Of Issue (发证县)"
        }
      },
      "required": [
        "ProvinceOfIssue",
        "nationalid"
      ]
    },
    "Passport": {
      "title": "Passport",
      "type": "object",
      "properties": {
        "Mrz1": {
          "type": "string",
          "description": "First line of the Machine Readable Zone (MRZ) of passport, 44 letters and digits, i.e. 'P<CZESPECIMEN<<VZOR<<<<<<<<<<<<<<<<<<<<<<<<<'",
          "label": "Passport MRZ Line 1 (护照第一行MRZ)"
        },
        "Mrz2": {
          "type": "string",
          "description": "Second line of the Machine Readable Zone (MRZ) of passport, 44 letters and digits, i.e. '99003853<1CZE1101018M1207046110101111<<<<<94'",
          "label": "Passport MRZ Line 2 (护照第二行MRZ)"
        },
        "Number": {
          "type": "string",
          "description": "Passport number of the individual to be verified",
          "label": "Passport Number (护照号)"
        },
        "DayOfExpiry": {
          "type": "int",
          "description": "Day of month of expiration of passport, 2 digits, i.e. '14'",
          "label": "Passport Day Of Expiry"
        },
        "MonthOfExpiry": {
          "type": "int",
          "description": "Month of year of expiration of passport, 2 digits, i.e. '08'",
          "label": "Passport Month Of Expiry"
        },
        "YearOfExpiry": {
          "type": "int",
          "description": "Year of expiration of passport, 4 digits, i.e. '1980'",
          "label": "Passport Year Of Expiry"
        }
      },
      "required": [
        "Mrz1",
        "Mrz2"
      ]
    },
    "Business": {
      "title": "Business",
      "type": "object",
      "properties": {
        "BusinessName": {
          "type": "string",
          "description": "The Primary or Registered name of the business",
          "label": "Business Name"
        },
        "BusinessRegistrationNumber": {
          "type": "string",
          "description": "Registration number of a business to be verified",
          "label": "Business Registration Number"
        },
        "DayOfIncorporation": {
          "type": "int",
          "description": "Day of Incorporation date",
          "label": "Day Of Incorporation"
        },
        "MonthOfIncorporation": {
          "type": "int",
          "description": "Month of Incorporation date",
          "label": "Month Of Incorporation"
        },
        "YearOfIncorporation": {
          "type": "int",
          "description": "Year of Incorporation date",
          "label": "Year Of Incorporation"
        },
        "JurisdictionOfIncorporation": {
          "type": "string",
          "description": "Jurisdiction Of Incorporation",
          "label": "Jurisdiction Of Incorporation"
        },
        "ShareholderListDocument": {
          "type": "boolean",
          "description": "Retrieve the shareholder list document of a company from the Government Registry",
          "label": "Shareholder List Document"
        }
      },
      "required": [
        "BusinessName",
        "BusinessRegistrationNumber"
      ]
    },
    "CountrySpecific": {
      "title": "CountrySpecific",
      "type": "object",
      "properties": {
        "CN": {
          "title": "CN",
          "type": "object",
          "properties": {
            "PassportMRZLine1": {
              "type": "string",
              "description": "First line of the Machine Readable Zone (MRZ) of passport, 44 letters and digits, i.e. 'P<CZESPECIMEN<<VZOR<<<<<<<<<<<<<<<<<<<<<<<<<'",
              "label": "Passport MRZ Line 1 (护照第一行MRZ)"
            },
            "PassportMRZLine2": {
              "type": "string",
              "description": "Second line of the Machine Readable Zone (MRZ) of passport, 44 letters and digits, i.e. '99003853<1CZE1101018M1207046110101111<<<<<94'",
              "label": "Passport MRZ Line 2 (护照第二行MRZ)"
            },
            "PassportDayOfExpiry": {
              "type": "string",
              "description": "Day of month of expiration of passport, 2 digits, i.e. '14'",
              "label": "Passport Day Of Expiry"
            },
            "PassportMonthOfExpiry": {
              "type": "string",
              "description": "Month of year of expiration of passport, 2 digits, i.e. '08'",
              "label": "Passport Month Of Expiry"
            },
            "PassportNumber": {
              "type": "string",
              "description": "Passport number of the individual to be verified",
              "label": "Passport Number (护照号)"
            },
            "PassportYearOfExpiry": {
              "type": "string",
              "description": "Year of expiration of passport, 4 digits, i.e. '1980'",
              "label": "Passport Year Of Expiry"
            }
          },
          "required": [
            "PassportMRZLine1",
            "PassportMRZLine2"
          ]
        }
      }
    }
  }
}

Required Fields

The list of required fields received from Get Fields are made up of a combination of mandatory fields across multiple datasources. Therefore when sending a verification request to Trulioo, you do not necessarily have to include all the fields for the requested country. However, if a Datasource does not receive an input which it requires the verification will not be run against that particular datasource.

This will result in a 1001 error. Follow this link for a more thorough explanation.

My previous transactions


All verifications performed by Trulioo are logged as a transaction, so that each request received by Trulioo's GlobalGateway API leaves a record. The unique identifier for each record is the TransactionRecordID, which is returned as part of the Verify response. For users who want to review historical verification requests, Trulioo provides 3 separate endpoints that access details of a particular record by ID.

Get Transaction Record

Using the Get Transaction Record endpoint you can get a full record of a verify transaction (input data and resulting match signals.)

Request

  • HTTP
GET https://gateway.trulioo.com/trial/configuration/v1/fields/Identity Verification/CN
        x-trulioo-api-key:{API key at top of page}
  • JSON
{
  "InputFields": [
    {
      "FieldName": "PostalCode",
      "Value": "3108"
    },
    {
      "FieldName": "Suburb",
      "Value": "Doncaster"
    },
    {
      "FieldName": "State",
      "Value": "Victoria"
    },
    {
      "FieldName": "YearOfBirth",
      "Value": "1983"
    },
    {
      "FieldName": "YearOfBirth",
      "Value": "1983"
    },
    {
      "FieldName": "FirstName",
      "Value": "John"
    },
    {
      "FieldName": "MiddleName",
      "Value": "Henry"
    },
    {
      "FieldName": "LastName",
      "Value": "Smith"
    },
    {
      "FieldName": "DayOfBirth",
      "Value": "5"
    },
    {
      "FieldName": "MonthOfBirth",
      "Value": "3"
    },
    {
      "FieldName": "Gender",
      "Value": "M"
    },
    {
      "FieldName": "StreetNumber",
      "Value": "10"
    },
    {
      "FieldName": "UnitNumber",
      "Value": "3"
    },
    {
      "FieldName": "StreetName",
      "Value": "Lawford"
    },
    {
      "FieldName": "StreetType",
      "Value": "st"
    },
    {
      "FieldName": "Telephone",
      "Value": "03 9896 8785"
    },
    {
      "FieldName": "EmailAddress",
      "Value": "testpersonAU@gdctest.com"
    },
    {
      "FieldName": "DriverLicenceNumber",
      "Value": "076310691"
    },
    {
      "FieldName": "DriverLicenceState",
      "Value": "VIC"
    },
    {
      "FieldName": "DayOfExpiry",
      "Value": "3"
    },
    {
      "FieldName": "MonthOfExpiry",
      "Value": "4"
    },
    {
      "FieldName": "YearOfExpiry",
      "Value": "2021"
    },
    {
      "FieldName": "PassportNumber",
      "Value": "N1236548"
    },
    {
      "FieldName": "MedicareNumber",
      "Value": "5643513953"
    },
    {
      "FieldName": "AuImmiCardNumber",
      "Value": "EIS123456"
    },
    {
      "FieldName": "CitizenshipAcquisitionDay",
      "Value": "15"
    },
    {
      "FieldName": "CitizenshipAcquisitionMonth",
      "Value": "4"
    },
    {
      "FieldName": "CitizenshipAcquisitionYear",
      "Value": "1987"
    },
    {
      "FieldName": "CountryOfBirth",
      "Value": "Australia"
    },
    {
      "FieldName": "FamilyNameAtBirth",
      "Value": "Smith"
    },
    {
      "FieldName": "MedicareColor",
      "Value": "Blue"
    },
    {
      "FieldName": "MedicareMonthOfExpiry",
      "Value": "12"
    },
    {
      "FieldName": "MedicareReference",
      "Value": "2"
    },
    {
      "FieldName": "MedicareYearOfExpiry",
      "Value": "2017"
    },
    {
      "FieldName": "PassportCountry",
      "Value": "Australia"
    },
    {
      "FieldName": "PlaceOfBirth",
      "Value": "Melbourne"
    },
    {
      "FieldName": "RegistrationNumber",
      "Value": "565659"
    },
    {
      "FieldName": "RegistrationState",
      "Value": "NSW"
    },
    {
      "FieldName": "StockNumber",
      "Value": "ACD1234567"
    },
    {
      "FieldName": "FirstInitial",
      "Value": "J"
    },
    {
      "FieldName": "MiddleInitial",
      "Value": "J"
    }
  ],
  "UploadedDt": "2017-07-11T21:47:50",
  "Record": {
    "TransactionRecordID": "0ac8ccee-ab7a-495e-8b88-a6da1bdcb6ae",
    "RecordStatus": "match",
    "DatasourceResults": [
      {
        "DatasourceName": "Australia Citizen File",
        "DatasourceFields": [
          {
            "FieldName": "BuildingNumber",
            "Status": "match"
          },
          {
            "FieldName": "MiddleName",
            "Status": "match"
          },
          {
            "FieldName": "StreetName",
            "Status": "match"
          },
          {
            "FieldName": "UnitNumber",
            "Status": "match"
          },
          {
            "FieldName": "Suburb",
            "Status": "match"
          },
          {
            "FieldName": "StreetType",
            "Status": "match"
          },
          {
            "FieldName": "Telephone",
            "Status": "match"
          },
          {
            "FieldName": "DayOfBirth",
            "Status": "match"
          },
          {
            "FieldName": "FirstSurName",
            "Status": "match"
          },
          {
            "FieldName": "StateProvinceCode",
            "Status": "match"
          },
          {
            "FieldName": "MonthOfBirth",
            "Status": "match"
          },
          {
            "FieldName": "PostalCode",
            "Status": "match"
          },
          {
            "FieldName": "FirstInitial",
            "Status": "match"
          },
          {
            "FieldName": "YearOfBirth",
            "Status": "match"
          },
          {
            "FieldName": "FirstGivenName",
            "Status": "match"
          },
          {
            "FieldName": "MiddleInitial",
            "Status": "match"
          }
        ],
        "AppendedFields": [],
        "Errors": [],
        "FieldGroups": []
      },
      {
        "DatasourceName": "Australia Driver Licence",
        "DatasourceFields": [
          {
            "FieldName": "DriverLicenceDayOfExpiry",
            "Status": "match"
          },
          {
            "FieldName": "FirstInitial",
            "Status": "match"
          },
          {
            "FieldName": "StreetType",
            "Status": "match"
          },
          {
            "FieldName": "DriverLicenceMonthOfExpiry",
            "Status": "match"
          },
          {
            "FieldName": "FirstGivenName",
            "Status": "match"
          },
          {
            "FieldName": "UnitNumber",
            "Status": "match"
          },
          {
            "FieldName": "DriverLicenceYearOfExpiry",
            "Status": "match"
          },
          {
            "FieldName": "FirstSurName",
            "Status": "match"
          },
          {
            "FieldName": "PostalCode",
            "Status": "match"
          },
          {
            "FieldName": "DriverLicenceNumber",
            "Status": "match"
          },
          {
            "FieldName": "DayOfBirth",
            "Status": "match"
          },
          {
            "FieldName": "StateProvinceCode",
            "Status": "match"
          },
          {
            "FieldName": "DriverLicenceState",
            "Status": "match"
          },
          {
            "FieldName": "MonthOfBirth",
            "Status": "match"
          },
          {
            "FieldName": "Suburb",
            "Status": "match"
          },
          {
            "FieldName": "StreetName",
            "Status": "match"
          },
          {
            "FieldName": "YearOfBirth",
            "Status": "match"
          },
          {
            "FieldName": "RTACardNumber",
            "Status": "match"
          },
          {
            "FieldName": "BuildingNumber",
            "Status": "match"
          }
        ],
        "AppendedFields": [],
        "Errors": [],
        "FieldGroups": []
      },
      {
        "DatasourceName": "Australia Historical File",
        "DatasourceFields": [
          {
            "FieldName": "StreetName",
            "Status": "match"
          },
          {
            "FieldName": "FirstInitial",
            "Status": "match"
          },
          {
            "FieldName": "BuildingNumber",
            "Status": "match"
          },
          {
            "FieldName": "FirstGivenName",
            "Status": "match"
          },
          {
            "FieldName": "StreetType",
            "Status": "match"
          },
          {
            "FieldName": "FirstSurName",
            "Status": "match"
          },
          {
            "FieldName": "Suburb",
            "Status": "match"
          },
          {
            "FieldName": "MiddleInitial",
            "Status": "match"
          },
          {
            "FieldName": "Telephone",
            "Status": "match"
          },
          {
            "FieldName": "MiddleName",
            "Status": "match"
          },
          {
            "FieldName": "UnitNumber",
            "Status": "match"
          },
          {
            "FieldName": "PostalCode",
            "Status": "match"
          },
          {
            "FieldName": "StateProvinceCode",
            "Status": "match"
          }
        ],
        "AppendedFields": [],
        "Errors": [],
        "FieldGroups": []
      },
      {
        "DatasourceName": "Visa Verification",
        "DatasourceFields": [
          {
            "FieldName": "YearOfBirth",
            "Status": "match"
          },
          {
            "FieldName": "PassportNumber",
            "Status": "match"
          },
          {
            "FieldName": "PassportCountry",
            "Status": "match"
          },
          {
            "FieldName": "FirstGivenName",
            "Status": "match"
          },
          {
            "FieldName": "FirstSurName",
            "Status": "match"
          },
          {
            "FieldName": "MiddleName",
            "Status": "match"
          },
          {
            "FieldName": "DayOfBirth",
            "Status": "match"
          },
          {
            "FieldName": "FirstInitial",
            "Status": "match"
          },
          {
            "FieldName": "MonthOfBirth",
            "Status": "match"
          },
          {
            "FieldName": "MiddleInitial",
            "Status": "match"
          }
        ],
        "AppendedFields": [],
        "Errors": [],
        "FieldGroups": []
      }
    ],
    "Errors": []
  },
  "Errors": []
}

National Ids: Supported Types


In Trulioo's Verify call one of the input fields provided is DataFields.NationalIds.Type. For this field we have multiple types that are available. A break down of these ID types is as follows.

Supported Types: NationalID, Health, SocialService, TaxIDNumber

China - National ID Number
Finland - PIC
France - InseeNumber
Hong Kong - Identity Number
Malaysia - National Registration ID Card (NRIC) Number
Mexico - CURP
Singapore - National Registration ID Card (NRIC) Number
Sweden - Personal Identification Number (PIN)
Spain - Documento Nacional de Identidad (DNI)
Turkey - Türkiye Cumhuriyeti Kimlik Numarası (T.C. Kimlik No.)
India - Aadhaar Card Number

Australia - Australia Medicare
UK - NHS Number

Australia - Tax File Number
Canada - Social Insurance Number
Ireland - Personal Public Service Number
Italy - Codice Fiscale
Mexico - Registro Federal de Contribuyentes (Tax Number)
UK National Insurance Number (NI)
US - Social Security Number
Russia - Individual insurance account number, SNILS (11 Digits)
India - Permanent Account Number (PAN)

Russia - Taxpayer Personal Identification Number, INN (12 digits)

What Is Address Cleansing?


The Trulioo Address Validation Service corrects the address for countries all over the world. It adds missing components such as region or city, it formats the address to local country standards, and it validates the address exists in the country to the level of building, street, city, or postal code. An address validated to the building is very precise, whereas an address validated to the postal code means the service could not validate the address to a point any closer than the geographic region of postal code.

Trulioo includes Validation codes in a Verify response where address cleansing is included. These validations can be found at the bottom of our Errors page.

Code Description

3001

State Province Changed
The state/province/region in the provided address was found to be incorrect, given the other address values such as city or postal code, and has been updated to a new value.

3002

City Changed
The city in the provided address was found to be incorrect, given other address values such as postal code, and has been updated to a new value.

3003

Street Info Changed
The street in the provided address has been updated to a new value.

3004

Postal Code Changed
The postal code in the provided address has been updated to a new value.

When enabled address cleansing should give higher match rates as the chances of matching on a fully entered and corrected address are higher.

Understanding Verify Responses


There is a lot of information in a Verify response. This page will help you understand what that information means and how to use it so you can get the most out of your verification results.

This is the unique ID for this particular verification. You can use this for your own reference, in the Get Transaction Record method to review a past transaction, or should you need to contact Trulioo support about a verification result.

  • JSON
"Record": {
  "TransactionRecordID": "0ac8ccee-ab7a-495e-8b88-a6da1bdcb6ae",

Trulioo provides you with a gateway to over 200 global datasources. Your verification response will contain an array of DatasourceResult objects for each datasource configured on your account. Each DatasourceResult contains a DatasourceName, and a DatasourceFields sub-array, which indicates the match status for each field sent to that datasource.

Some of the more common Datasources are:

  • Citizen: Data sourced from either a utility or government issued database that is enhanced and updated with other source files such as public data, change of address, postal data, property data, and data pooling with other organizations.
  • Consumer: Data sourced from direct marketing campaigns.
  • Credit: Data derived from a registered credit agency, or bureau, which manages consumer credit information on individuals with consumer credit history in that country.
  • Electoral Roll: Government collated and issued data, for all citizens in a country, who are enrolled to vote.
  • Government Issued: Government collated and issued databases, or information. This includes national insurance numbers, driver’s licenses and passports.
  • National ID: Government collated and issued data for countries which have a singular, national identification system with an associated number.
  • Property Files: Data issued by the government or other accredited sources detailing ownership of property within a given country.
  • Public Data/Resident Files: Mixed source which may include utility, consumer, and other public information.
  • Utility: Data issued for a national utility provider which includes telephone, gas, electricity, or water.
  • Telephone File: An automated, telephone number verification service, which details whether a landline or mobile number is valid and hence connects, or is disconnected.
  • Watchlists (OFAC, DFAT, EU, etc.)
  • Other Identity Validation: Validation of national identity numbers, social security numbers, national health numbers, or other key country indicators of identity. Also includes validation of the unique reference number at the bottom of global passport machine readable zone (MRZ), which specifies that is it valid and also includes the individual’s name and date-of-birth.

An example DatasourceResults array:

  • JSON
"DatasourceResults": [
  {
    "DatasourceName": "Australia Citizen File",
    "DatasourceFields": [
      {
        "FieldName": "BuildingNumber",
        "Status": "match"
       },
       {
         "FieldName": "MiddleName",
         "Status": "missing"
       },
       {
         "FieldName": "StreetName",
         "Status": "match"
       },
       {
         "FieldName": "UnitNumber",
         "Status": "missing"
       },
       {
         "FieldName": "Suburb",
         "Status": "match"
       },
       {
         "FieldName": "StreetType",
         "Status": "match"
       },
       {
         "FieldName": "Telephone",
         "Status": "nomatch"
       },
       {
         "FieldName": "DayOfBirth",
         "Status": "match"
       },
       {
         "FieldName": "FirstSurName",
         "Status": "match"
       },
       {
         "FieldName": "StateProvinceCode",
         "Status": "match"
       },
       {
         "FieldName": "MonthOfBirth",
         "Status": "match"
       },
       {
         "FieldName": "PostalCode",
         "Status": "match"
       },
       {
         "FieldName": "FirstInitial",
         "Status": "match"
       },
       {
         "FieldName": "YearOfBirth",
         "Status": "match"
       },
       {
         "FieldName": "FirstGivenName",
         "Status": "match"
       },
       {
         "FieldName": "MiddleInitial",
         "Status": "missing"
       }
     ],
     "AppendedFields": [],
     "Errors": [],
     "FieldGroups": []
   },
 .
 .
 .
 .
 ]

As shown in the example above, each DatasourceResult contains an array of DatasourceFields, which lists the fields this particular datasource has returned. Each DatasourceField consists of FieldName and Status.

FieldName describes the type of information that has been returned from the datasource, such as StreetName or YearOfBirth. You can use the API endpoint Get Fields to see all the fields available to you in a particular country. To ensure you get a response from every datasource, it is recommended that you include each field returned by Get Fields in your verification request if possible.

Status indicates whether or not a particular field matched what was on record in the datasource. It can take on the following values:

  • match - This field exists in the datasource and matches the value you input.
  • nomatch - This field exists in the datasource but does not match the value you input.
  • missing - Either no data was sent in the Verify Request or no information about this field could be found in the datasource.
  • censored - Due to the nature of the datasource, Trulioo cannot display the status of this particular field, although it was used toward the verification rule result (discussed below).

On occasion a datasource will respond with information that isn't a match signal for a specific field, but might still be useful for you to know. A common example is the "IsDeceased" appended field, which indicates whether or not the person whose identity you're trying to verify is deceased. This information is included in the AppendedFields section for that datasource (underneath the DatasourceResults object):

  • JSON
"AppendedFields": [
  "IsDeceased": "false"
],

The DatasourceResults object contains another section called "Errors", where you will be informed of any errors that occurred during the verification. Errors are returned on a per-datasource basis because even if there is an issue with one particular datasource, the rest of the transaction will continue with the other sources. An example is when a field is formatted incorrectly. If that field is required for one datasource, but optional for all other sources, only the first datasource will return an error. The malformed field can be ignored by the remaining datasources, which will return match signals for all other fields.

You can review the full list of error codes and their meanings here.

  • JSON
"Errors": [
  {
    "Code": "1001",
    "Message": "Missing required field: FirstSurName"
  },
  {
    "Code": "1005",
    "Message": "Missing Consent"
  }
]

At the end of the verification results is a Rule object, which describes how Trulioo used the match signals in the datasource result fields to evaluate whether or not the identity was verified. You can work with Trulioo support to configure your desired verification rules on a country-by-country basis, but the most commonly used rule is the Category 3 KYC rule shown below. This states that an individual will be verified if:

  • There is a match status on Family AND GivenInitial AND DOB
    OR
  • There is a match status on Family AND GivenInitial AND FullAddress
    OR
  • There is a match status on Family AND GivenInitial AND ID

"Family" can encompass a number of data fields based on country, but in many cases it simply means "surname".

If any of the criteria of the verification rule are met, then the individual is considered verified, and the overall RecordStatus will be returned as a match (see below).

  • JSON
"Rule": {
  "RuleName": "Category 3 KYC v3",
  "Note": "Match(FamilyAndGivenInitial, DOB) or Match(FamilyAndGivenInitial, FullAddress) or Match(FamilyAndGivenInitial, ID) MiddleName Ignored"
}

The final portion of the Verify response, RecordStatus indicates the overall match status of the identity you provided, based on the datasource fields in combination with the verification rule discussed above. A RecordStatus of "match" means the identity was verified (i.e. one or more datasources provided match signals that satisfied the verification rule). A RecordStatus of "nomatch" means the identity could not be verified.

  • JSON
"RecordStatus": "match",

The rich detail provided by Trulioo's response allows you to make your application's own matching logic as simple or thorough as you like. You can take the RecordStatus value and use that to determine whether or not an identity was verified, or you can dig into the specific datasource results and perform your own field-by-field matching.