GBG Developers

Guides   |   Triangulation


The triangulation function takes in two sets of personal details (e.g. from a Verify Person and Verify Document check) and compares them to ensure they refer to the same individual.

The minimum requirement for Triangulation is that both sets of data have a populated forename and surname and both have date of birth and/or address (i.e. one with dob and no address and the other with address and no dob is not sufficient).

The function expects that the addresses will have been through a validation / cleanse process before being used in the triangulation call.  The option on whether an address cleanse is used can be found on the Verify People and Verify Document Image API Documentation  

The function will return a result code and a description (see below table) which indicate the level of matching found between the two candidates.

Where addresses have been supplied then details of which were matched, if any, will also be returned (this will be available in the API response).

Code Description
-1  test mode response
0  no match
10  identical data (ignoring punctuation, white space and blank address lines)
20  same address and same person (independent of address)
30  blank address (one or both), same person (independent of address)
33  address failed quality check (one or both), same person (independent of address)
35  same person (independent of address), address matching not available
40  same address, same person (by address)
50  different address, same person (independent of address)
60  same address, different person


By default the two records compared are the last two in the chain of the verifications with Forename, Surname and Date of Birth or Address details.

For example:

The following verfications have been submitted in the corresponding order: Verify Document (Passport), Verify Document (Driving Licence) and Verify Person. Triangulation will only be carried out on the two most recent verifications (checks) by default, so in this case, the data provided from the Driving Licence and the Verify Person data will be compared against each other.

It is possible to run triangulation against a specific verification record. This can be done by adding the chosen verification-id into the 'triangulation-verification-id' field in the header of the final verification request - see example (this will allow users to do the comparison against the data you might have submitted in an earlier stage/verification).

Note: Triangulation will always be ran on the most recent verification performed for a Person ID, it is just which verification this is being compared to that can be changed.

Worked scenario:

If we use the example provided above again. Triangulation will be ran on the Verify Person check due to it being the final verification. A user can choose whether they want the Triangulation to be ran on the Passport or Driving Licence. By default, Triangulation will be ran on the Driving Licence due it being the latter verification of the two, however, if a user inputs the verification-id for the Passport Verify Document check into the 'triangulation-verification-id' field for the Verify Person check, Triangulation will be ran against the Passport and the Verify Person step.

Please view example scenarios for Triangulation below.

Data Provided Triangulation Result
Forename (Match), Surname (Match), Date of Birth (Match) and Address (Match) PASS
Forename (Match), Surname (Match) and DOB (Match) PASS
Forename (Match), Surname (Match) and Address (Match) PASS
Forename (Match), Surname (Match), DOB (Match) and Address (No Match) PASS
Forename (No Match), Surname (Match), DOB (Match) and Address (Match) FAIL
Forename (Match), Surname (No Match), DOB (Match) and Address (Match) FAIL
Forename (Match), Surname (Match), DOB (No Match) and Address (Match) PASS
Both checks have provided forename and surname, only one check has provided a Date of Birth NO TRIANGULATION PERFORMED
Both checks have provided forename and surname, only one check has provided an address NO TRIANGULATION PERFORMED
Both checks have provided forename and surname. Check X has provided a DOB and no Address and Check Y has provided an Address and no DOB NO TRIANGULATION PERFORMED


How triangulation works