> For the complete documentation index, see [llms.txt](https://docs.caf.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caf.io/caf-api/core-api/transaction-details/background-check/kyc/gdc2x2.md).

# Global identity double verification

The query functions to verify if a person's basic data is consistent. In other words, it assesses whether the name, date of birth, address, phone number, and document number indeed belong to that person.

Global Identity Verification 2x2 has an extra layer of validations because when querying a person through this service, the person will be checked against two different data sources in a single query. In other words, the basic data will be sent to two different providers and must be approved by both for the data to be considered reliable, sufficient, or insufficient.

To indicate the reliability of an individual, there are some possible combinations of data that take into account the results of both sources to define the final reliability score.

![](/files/wFNYqU8LN4zsc0hqigmi)

**Section**: `globalIdentityVerifications2x2`

**Supported countries:** Argentina, Australia\*, Austria, Belgium, Brazil, Canada\*, China, Denmark, Finland, France, Germany, Hong Kong\*, India\*, Italy, Mexico, Netherlands, Norway, Portugal, South Africa, Spain, Sweden, Switzerland, United Kingdom and United States.

**Note:** Australia, Canada, Hong Kong and India require authorization for consultation before being able to access the data (Onboarding process).

{% tabs %}
{% tab title="Parameters" %}

| Attribute    | Type   | Description                                            | Mandatory                       |
| ------------ | ------ | ------------------------------------------------------ | ------------------------------- |
| name         | string | Full name of the individual.                           | Yes                             |
| birthDate    | string | Date of birth of the individual.                       | Yes                             |
| address      | string | Address of the individual.                             | Yes                             |
| phoneNumber  | string | Phone number of the individual.                        | Yes                             |
| nationalId   | string | A government-issued identification number or document. | Yes/No (Depends on the country) |
| zipCode      | string | Zip code of the individual's address.                  | Yes                             |
| countryCode  | string | Country code of the individual.                        | Yes                             |
| dateFormat   | string | Date format of Birth Date.                             | No                              |
| {% endtab %} |        |                                                        |                                 |

{% tab title="Example body" %}

```javascript
body: JSON.stringify({
  workflowId: "6644843a90k8762k25929376",
  parameters: {
    name: "Mariana Oliveira",
    birthDate: "23/04/1995",
    phoneNumber: "+5551998765432",
    address: "Rua das Flores, 123",
    zipCode: "12345678",
    nationalId: "9876543210",
    countryCode: "BR",
    dateFormat: "dd/MM/yyyy",
  },
});
```

{% endtab %}
{% endtabs %}

**Note:** Some fields returned by this API are optional and their presence cannot be guaranteed.

{% tabs %}
{% tab title="Schema" %}

| Attribute              | Type   | Description                                                                                                                                               |
| ---------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| data                   | object | Object containing the main data.                                                                                                                          |
| data.detailList        | string | Details related to the query.                                                                                                                             |
| data.adaptation        | string | Indicator of adaptation.                                                                                                                                  |
| data.messages          | array  | List of messages providing details on the level of matches for each piece of data.                                                                        |
| data.messages\[].value | string | Indicates the match level of the data (Full match, No match, Partial match, etc.).                                                                        |
| data.messages\[].code  | string | Code indicating the type of data analyzed (FIRSTNAME, COMPLETENAME, PHONENUMBER, etc.).                                                                   |
| data.detailCode        | string | Detailed code specific to the process or request.                                                                                                         |
| data.query             | object | Information about the performed query.                                                                                                                    |
| data.query.options     | string | Internal value indicating the search type of the query.                                                                                                   |
| data.reliability       | string | Indicator of reliability (10, 20, 30).                                                                                                                    |
| data.statusCode        | string | Transaction status. Check our status guide.                                                                                                               |
| statusCode             | string | References the status of this query only, not the entire transaction. [Check our status guide](/caf-api/core-api/transaction-details/background-check.md) |
| {% endtab %}           |        |                                                                                                                                                           |

{% tab title="Example" %}

```json
{
  "data": {
    "detailList": "",
    "adaptation": "0",
    "messages": [
      {
        "value": "0;0;0;3;3;0;3;0;3;3;0;3;3;0;3;3;3;3;0;0;0;0;0;4;3",
        "code": "TEL7"
      },
      {
        "value": "1;1;1;3;3;1;3;2;3;0;0;4;3;0;3;0;0;3;0;1;1;1;1;4;3",
        "code": "GVT2"
      },
      {
        "value": "Full match was made on Complete Name",
        "code": "1MT-BR-GVT2-COMPLETENAME"
      },
      {
        "value": "Full match was made on First Initial",
        "code": "1MT-BR-GVT2-FIRSTINITIAL"
      },
      {
        "value": "Full match was made on First Name/Given Name",
        "code": "1MT-BR-GVT2-FIRSTNAME"
      },
      {
        "value": "Full match was made on Last Name/Surname ",
        "code": "1MT-BR-GVT2-LASTNAME"
      },
      {
        "value": "Full match was made on Postal Code/Zip Code",
        "code": "1MT-BR-GVT2-POSTALCODE"
      },
      {
        "value": "Full match was made on State/Province",
        "code": "1MT-BR-GVT2-PROVINCE"
      },
      {
        "value": "Datasource does not contain element Sub Premise Descriptors provided in Address Lines",
        "code": "4MT-BR-GVT2-SUBPREMISE"
      },
      {
        "value": "Datasource does not contain element Phone Number",
        "code": "4MT-BR-GVT2-PHONENUMBER"
      },
      {
        "value": "Partial match made on element Address Lines",
        "code": "3MT-BR-GVT2-ADDRESS"
      },
      {
        "value": "Full match was made on Date of Birth",
        "code": "1MT-BR-GVT2-DATEOFBIRTH"
      },
      {
        "value": "Full match was made on Day of Birth",
        "code": "1MT-BR-GVT2-DAYOFBIRTH"
      },
      {
        "value": "Full match was made on Month of Birth",
        "code": "1MT-BR-GVT2-MONTHOFBIRTH"
      },
      {
        "value": "Full match was made on Year of Birth",
        "code": "1MT-BR-GVT2-YEAROFBIRTH"
      },
      {
        "value": "Full match was made on Complete Name",
        "code": "1AU-425-COMPLETENAME"
      },
      {
        "value": "Full match was made on First Initial",
        "code": "1AU-375-FIRSTINITIAL"
      },
      {
        "value": "Full match was made on First Name/Given Name",
        "code": "1AU-350-FIRSTNAME"
      },
      {
        "value": "Full match was made on Last Name/Surname ",
        "code": "1AU-400-LASTNAME"
      },
      {
        "value": "Full match was made on Postal Code/Zip Code",
        "code": "1AU-275-POSTALCODE"
      },
      {
        "value": "Full match was made on State/Province",
        "code": "1AU-325-PROVINCE"
      },
      {
        "value": "Full match was made on Date of Birth",
        "code": "1AU-550-DATEOFBIRTH"
      },
      {
        "value": "Full match was made on Day of Birth",
        "code": "1AU-575-DAYOFBIRTH"
      },
      {
        "value": "Full match was made on Month of Birth",
        "code": "1AU-600-MONTHOFBIRTH"
      },
      {
        "value": "Full match was made on Year of Birth",
        "code": "1AU-625-YEAROFBIRTH"
      },
      {
        "value": "Partial match made on element Address Lines",
        "code": "3AU-200-ADDRESS"
      },
      {
        "value": "1AU-275-POSTALCODE;1AU-325-PROVINCE;1AU-350-FIRSTNAME;1AU-375-FIRSTINITIAL;1AU-400-LASTNAME;1AU-425-COMPLETENAME;1AU-550-DATEOFBIRTH;1AU-575-DAYOFBIRTH;1AU-600-MONTHOFBIRTH;1AU-625-YEAROFBIRTH;1MT-BR-GVT2-COMPLETENAME;1MT-BR-GVT2-DATEOFBIRTH;1MT-BR-GVT2-DAYOFBIRTH;1MT-BR-GVT2-FIRSTINITIAL;1MT-BR-GVT2-FIRSTNAME;1MT-BR-GVT2-LASTNAME;1MT-BR-GVT2-MONTHOFBIRTH;1MT-BR-GVT2-POSTALCODE;1MT-BR-GVT2-PROVINCE;1MT-BR-GVT2-YEAROFBIRTH;3AU-200-ADDRESS;3MT-BR-GVT2-ADDRESS;4MT-BR-GVT2-PHONENUMBER;4MT-BR-GVT2-SUBPREMISE;GVT2;TEL7;",
        "code": "Codes"
      },
      {
        "value": "GVT2-ND",
        "code": "MatchCodes"
      },
      {
        "value": "Full Match for 1+1 verification",
        "code": "1MT-BR-MATCHED-1+1"
      }
    ],
    "detailCode": "WS-9055217.2024.4.28.16.42.15.908",
    "query": {
      "options": "identityverify;messageverbose"
    },
    "reliability": "20"
  }
}
```

{% endtab %}

{% tab title="Validations Rules" %}

| Rule                                                          | Description                                                                                                                    |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Basic information with reliable match - double verification   | Indicates whether the individual's basic information (name, address, dob, document number and phone number) matches.           |
| Basic information with sufficient match - double verification | Indicates whether the individual's basic information (name, address, dob, document number and phone number) partially matches. |
| {% endtab %}                                                  |                                                                                                                                |
| {% endtabs %}                                                 |                                                                                                                                |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.caf.io/caf-api/core-api/transaction-details/background-check/kyc/gdc2x2.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
