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.
Details
| Key | Type | Mandatory | Description |
|---|---|---|---|
| id.idNumber | string | yes | For Brazil, this will be CPF number |
| id.type | string | no | ID_CARD or DL |
| firstName | string | yes | Must include firstName or lastName, and may include both. First Name is required only for the version that does not provide the raw response when a DPA is signed. The DPA-enabled version can operate using only the ID. |
| lastName | string | yes | Must include firstName or lastName, and may include both. Last Name is required only for the version that does not provide the raw response when a DPA is signed. The DPA-enabled version can operate using only the ID. |
| dateOfBirth | string | no | YYYY-MM-DD. Will influence risk score if provided. |
| address.country | string | yes | Country 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
{
"govtIdVerification": [
{
"id": "79e0fa63-0ff5-4bab-99b2-bb9c49637ba2",
"credentials": [
{
"id": "1ceaf3c0-2689-43ea-93aa-187c2ba5da51",
"category": "DATA"
}
],
"decision": {
"type": "PASSED",
"details": {
"label": "OK"
}
},
"data": {
"completeNameMatch": "MATCH",
"nationalIdMatch": "MATCH",
"dobMatch": "MATCH"
}
}
]
}
Decision Details Labels
Details
| Decision Type | Label | Description |
|---|---|---|
| PASSED | OK | The provided data matched |
| REJECTED | DENY | The provided data did not match what was on record. |
| WARNING | ALERT | The CPF number is valid but either the name or DOB do not exactly match. |
| NOT_EXECUTED | NOT_ENOUGH_DATA | The provided data was inadequate to process the transaction. |
| NOT_EXECUTED | TECHNICAL_ERROR | An error occurred during device risk evaluation. Verify input and retry, or contact Support. |
Data
Details
| Key | Possible Values | Description |
|---|---|---|
| nameMatch | MATCH, 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. |
| cpfMatch | MATCH, NOT_MATCH | CPF number matches. |
| dateOfBirthMatch | MATCH, NOT_MATCH | Date of birth matches. |
Additional Status Flags
Details
| Parameter | Type | Note |
|---|---|---|
data.suspended | boolean | true / false. Indicates if the license is suspended. |
data.deceased | boolean | true / false. Indicates if the individual is marked deceased. |
data.cancelled | boolean | true / false. Indicates if the license is cancelled. |
data.regularizationPending | boolean | true / false. Indicates if there are pending regularization issues with the license. |
data.cancellationReason | string | Provides details on the cancellation reason. |
data.reasonMessage | string | Additional explanation of the status. |
Raw Serpro Consulta CPF Fields (DPA Restricted)
The following raw fields from the Serpro Consulta CPF API response will be returned ONLY for customers who have signed the updated Data Processing Agreement (DPA). This feature is disabled by default and must be explicitly enabled by Jumio.
"cpfData": {
"cpf": "7XXXXXXXXX80",
"name": "JOSE XXXXXXXXX SILVA",
"details": {
"code": "0",
"description": "Regular"
},
"dateOfBirth": "XX05XXXX"
}
Field Mapping
| Serpro Field | Jumio Output | Description |
|---|---|---|
| ni | CPF number | Taxpayer identification number |
| name | Full name | Individual’s registered name |
| situacao (code + description) | Registration status | Status of the CPF number (refer to the table below) |
| nascimento | Date of birth | Date of birth on record |
Situacao Status Code Reference
| Code | Label | Description |
|---|---|---|
| 0 | Regular | CPF is valid with no issues |
| 2 | Suspended | Registration has inconsistencies |
| 3 | Deceased Holder | The CPF owner is deceased |
| 4 | Pending Regularization | Missing recent tax returns |
| 5 | Canceled – Multiplicity | Duplicate CPFs exist, canceled to resolve duplication |
| 8 | Null (Annulled) | CPF invalidated due to detected fraud |
| 9 | Canceled by Official Order | Canceled by administrative or judicial order |
Response Example with Raw Fields (govtIdVerification)
"govtIdVerification": [
{
"id": "79e0fa63-0ff5-4bab-99b2-bb9c49637ba2",
"credentials": [
{
"id": "1ceaf3c0-2689-43ea-93aa-187c2ba5da51",
"category": "DATA"
}
],
"decision": {
"type": "PASSED",
"details": { "label": "OK" }
},
"data": {
"completeNameMatch": "MATCH",
"nationalIdMatch": "MATCH",
"dobMatch": "MATCH",
"cpfData": {
"cpf": "7XXXXXXXXX80",
"name": "JOSE XXXXXXXXX SILVA",
"details": { "code": "0", "description": "Regular" },
"dateOfBirth": "XX05XXXX"
}
}
}
]
CPF numbers and names may be partially masked in logs and documentation examples to comply with data protection requirements.