Skip to content

🪪 CPF Status

The CPF Status report validates Brazil’s national tax identification number (Cadastro de Pessoas Físicas) and retrieves associated personal data from the official Receita Federal database.

CPF Status validation is the foundation of identity verification in Brazil. This report validates the CPF format, confirms its existence in the national tax registry, and retrieves associated personal information for cross-verification with other reports.

FieldTypeDescriptionExample
document_idstring11-digit CPF number12345678901
city_locodestringUN LOCODE of the cityBR SAO
FieldTypeDescriptionDefault
full_namestringExpected full name for verificationnull
date_of_birthstringExpected date of birth (YYYY-MM-DD)null

The CPF follows a specific 11-digit format with check digits:

000.000.000-00
PositionCharactersDescriptionExample
1-9NumbersSequential identification digits123456789
10NumberFirst check digit0
11NumberSecond check digit1

The CPF uses a specific algorithm to validate the last two digits:

// CPF check digit calculation
function validateCPF(cpf) {
// Remove formatting
cpf = cpf.replace(/[^\d]/g, '');
if (cpf.length !== 11) return false;
// Calculate first check digit
let sum = 0;
for (let i = 0; i < 9; i++) {
sum += parseInt(cpf[i]) * (10 - i);
}
let firstDigit = 11 - (sum % 11);
if (firstDigit >= 10) firstDigit = 0;
// Calculate second check digit
sum = 0;
for (let i = 0; i < 10; i++) {
sum += parseInt(cpf[i]) * (11 - i);
}
let secondDigit = 11 - (sum % 11);
if (secondDigit >= 10) secondDigit = 0;
return parseInt(cpf[9]) === firstDigit && parseInt(cpf[10]) === secondDigit;
}

Registry: Receita Federal do Brasil (Brazilian Federal Revenue Service) Authority: Ministério da Fazenda (Ministry of Finance) Coverage: All Brazilian citizens and legal residents with tax obligations Update Frequency: Real-time

{
"id": "f170bf78-9309-46d4-8723-3e964ed7844d",
"reports": {
"cpf_status": {
"state": "COMPLETED",
"created_at": "2021-03-30T04:48:11.144178",
"updated_at": "2021-03-30T04:48:24.050517",
"outcome": "PASSED",
"details": {
"cpf": "12345678901",
"cpf_status": "REGULAR",
"full_name": "JUAN MIGUEL DOE ROE",
"date_of_birth": "1985-08-13",
"validation": {
"format_valid": true,
"check_digit_valid": true,
"registry_found": true
}
}
}
}
}
{
"id": "f170bf78-9309-46d4-8723-3e964ed7844d",
"reports": {
"cpf_status": {
"state": "COMPLETED",
"created_at": "2021-03-30T04:48:11.144178",
"updated_at": "2021-03-30T04:48:24.050517",
"outcome": "FAILED",
"details": {
"cpf": "12345678901",
"cpf_status": "TITULAR FALECIDO",
"full_name": "JUAN MIGUEL DOE ROE",
"date_of_birth": "1900-01-01",
"validation": {
"format_valid": true,
"check_digit_valid": true,
"registry_found": true,
"status_reason": "DECEASED"
}
}
}
}
}
{
"id": "f170bf78-9309-46d4-8723-3e964ed7844d",
"reports": {
"cpf_status": {
"state": "COMPLETED",
"created_at": "2021-03-30T04:48:11.144178",
"updated_at": "2021-03-30T04:48:24.050517",
"outcome": "FAILED",
"details": {
"cpf": "12345678901",
"cpf_status": "PENDENTE DE REGULARIZAÇÃO",
"full_name": "ELIELSON LINO DE JESUS",
"date_of_birth": "1975-05-20",
"validation": {
"format_valid": true,
"check_digit_valid": true,
"registry_found": true,
"status_reason": "PENDING_REGULARIZATION"
}
}
}
}
}
{
"id": "f170bf78-9309-46d4-8723-3e964ed7844d",
"reports": {
"cpf_status": {
"state": "COMPLETED",
"created_at": "2021-03-30T04:48:11.144178",
"updated_at": "2021-03-30T04:48:24.050517",
"outcome": "FAILED",
"details": {
"cpf": "INVALID12345",
"validation": {
"format_valid": false,
"check_digit_valid": false,
"registry_found": false,
"errors": [
"Invalid CPF format",
"Check digit mismatch",
"Not found in Receita Federal registry"
]
}
}
}
}
}
  • Meaning: CPF is active and in good standing
  • Outcome: PASSED
  • Usage: Can be used for all transactions and verifications
  • Meaning: CPF holder is deceased
  • Outcome: FAILED
  • Usage: CPF should not be used for new transactions

Pending Regularization (PENDENTE DE REGULARIZAÇÃO)

Section titled “Pending Regularization (PENDENTE DE REGULARIZAÇÃO)”
  • Meaning: CPF has issues requiring resolution with Receita Federal
  • Outcome: FAILED
  • Usage: CPF holder must resolve issues before normal use
  • Meaning: CPF is temporarily suspended
  • Outcome: FAILED
  • Usage: Requires resolution with tax authorities
  • Meaning: CPF has been cancelled
  • Outcome: FAILED
  • Usage: Cannot be used for any transactions
  1. Length Check: Must be exactly 11 digits
  2. Character Validation: Only numeric characters allowed
  3. Sequential Check: Cannot be all same digits (e.g., 11111111111)
  4. Check Digit Validation: Both check digits must be correct
  5. Known Invalid Patterns: Reject known invalid sequences
  1. Receita Federal Lookup: Check existence in official database
  2. Status Verification: Confirm current CPF status
  3. Data Retrieval: Extract associated personal information
  4. Cross-Reference: Validate against provided data if available

CPF Status enables and validates other Brazil reports:

Validates provided full_name against Receita Federal data:

{
"name_check": {
"outcome": "PASSED",
"details": {
"score": 1.0,
"full_name": "JUAN MIGUEL DOE ROE",
"name_fragment_check": false,
"name_score_min": 1.0
}
}
}

Validates provided date_of_birth against Receita Federal data:

{
"dob_check": {
"outcome": "PASSED",
"details": {
"provided_dob": "1985-08-13",
"registry_dob": "1985-08-13",
"match": true
}
}
}

The name_check report can be customized with specific settings:

  • Type: Float (0.0 to 1.0)
  • Default: 1.0 (100% match required)
  • Description: Minimum similarity score for name matching
  • Example: 0.98 requires 98% similarity
  • Type: Boolean
  • Default: false
  • Description: Enable fragment-based name comparison
  • Usage: Compares individual name parts separately

Input Name: “JUAN DOE” Registry Name: “JUAN ANTONIO DOE”

Fragment Scoring Process:

  1. Compare “JUAN” against [“JUAN”, “ANTONIO”, “DOE”] → Score: 1.0
  2. Compare “DOE” against [“JUAN”, “ANTONIO”, “DOE”] → Score: 1.0
  3. Final Score: (1.0 + 1.0) / 2 = 1.0
Terminal window
curl -X POST "https://api.emptor.io/v3/br/persons" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"document_id": "12345678901",
"city_locode": "BR SAO",
"full_name": "JUAN MIGUEL DOE ROE",
"date_of_birth": "1985-08-13",
"pipeline": {
"name": "standard_id_check"
}
}'
Terminal window
curl -X POST "https://api.emptor.io/v3/br/persons" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"document_id": "12345678901",
"city_locode": "BR SAO",
"full_name": "JUAN DOE",
"pipeline": {
"name": "standard_id_check"
},
"report_settings": {
"name_check": {
"name_score_min": 0.98,
"name_fragment_check": true
}
}
}'
Terminal window
curl -X GET "https://api.emptor.io/v3/br/details/{person_id}/cpf_status" \
-H "X-Api-Key: YOUR_API_KEY"
Error TypeDescriptionResolution
INVALID_FORMATCPF doesn’t match 11-digit patternVerify CPF format (000.000.000-00)
INVALID_CHECK_DIGITCheck digit calculation failsVerify CPF was entered correctly
SEQUENTIAL_DIGITSAll digits are the sameUse a valid CPF number
NOT_FOUND_IN_REGISTRYCPF not found in Receita FederalVerify CPF exists and is issued
REGISTRY_TIMEOUTReceita Federal database timeoutRetry after a few minutes
DECEASED_HOLDERCPF holder is deceasedCannot use deceased person’s CPF
PENDING_REGULARIZATIONCPF requires tax resolutionResolve issues with Receita Federal
  • Identity Verification: Primary identity check for Brazilian individuals
  • Tax Compliance: Verify tax registration and status
  • Financial Services: Account opening and KYC compliance
  • Employment Verification: Validate employee tax registration
  • Government Services: Citizen service verification
CPF Status → Name Check → DOB Check
CPF Status → Name Check → DOB Check → Criminal Records → Employment History
CPF Status → Name Check → DOB Check → Credit Check → Risk Assessment