curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=BRA" \
-F "services=bra_antecedentes_criminais_pf" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "tax_number=12345678909" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01"
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "BRA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"certificate_number": "000000000000",
"certificate_status": "NADA CONSTA",
"certificate_valid_until": "2027-01-03",
"criminal_record_found": false,
"date_of_birth": "1990-01-01",
"first_name": "JOHN",
"full_name": "JOHN DOE",
"identification_number": "12345678909",
"last_name": "DOE"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "BRA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"certificate_number": "000000000000",
"certificate_status": "NADA CONSTA",
"certificate_valid_until": "2027-01-03",
"criminal_record_found": false,
"date_of_birth": "1990-01-01",
"first_name": "JOHN",
"full_name": "JOHN DOE",
"identification_number": "12345678909",
"last_name": "DOE"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "BRA",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"certificate_status": "NOT_ISSUED",
"identification_number": "12345678909"
},
"validation": {}
}
]
}
🇧🇷 Brazil
Brazil - Federal Criminal Record (Polícia Federal)
Requests the Federal Police’s criminal record certificate for a CPF and reports whether it was issued with nothing on file, comparing the holder’s name and date of birth on the certificate with the submitted ones. When the certificate cannot be issued online the result goes to review. Authoritative real-time identity lookup for Brazil. Real-time lookup, pay-per-call.
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=BRA" \
-F "services=bra_antecedentes_criminais_pf" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "tax_number=12345678909" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01"
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "BRA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"certificate_number": "000000000000",
"certificate_status": "NADA CONSTA",
"certificate_valid_until": "2027-01-03",
"criminal_record_found": false,
"date_of_birth": "1990-01-01",
"first_name": "JOHN",
"full_name": "JOHN DOE",
"identification_number": "12345678909",
"last_name": "DOE"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "BRA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"certificate_number": "000000000000",
"certificate_status": "NADA CONSTA",
"certificate_valid_until": "2027-01-03",
"criminal_record_found": false,
"date_of_birth": "1990-01-01",
"first_name": "JOHN",
"full_name": "JOHN DOE",
"identification_number": "12345678909",
"last_name": "DOE"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "BRA",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"certificate_status": "NOT_ISSUED",
"identification_number": "12345678909"
},
"validation": {}
}
]
}
Requests the Federal Police’s criminal record certificate for a CPF and reports whether it was issued with nothing on file, comparing the holder’s name and date of birth on the certificate with the submitted ones. When the certificate cannot be issued online the result goes to review. Didit exposes this service through
POST /v3/database-validation/ so you can verify the submitted data against the authoritative source and receive normalized match results.
Coverage
- Coverage: ~ 100%
- Country: Brazil
- Service ID:
bra_antecedentes_criminais_pf - Data domain: Criminal
- Category: NationalCriminal
Inputs
| Field | Required | Example |
|---|---|---|
tax_number | Yes | 12345678909 |
first_name | Yes | John |
last_name | Yes | Doe |
date_of_birth | No | 1990-01-01 |
vendor_data | No | user-1234 |
- Required inputs:
tax_number,first_name,last_name - Optional inputs:
date_of_birth,vendor_data - Consent: Required
- Workflow availability: Available in workflow
- Coverage: ~ 100%
- Price: $0.20 per successful query
Body parameters
string
default:"BRA"
required
ISO 3166-1 alpha-3 country code for this database service.Example:
BRAstring
default:"bra_antecedentes_criminais_pf"
required
Array containing this service ID. Pinning the service keeps the request scoped to this exact database.Example:
bra_antecedentes_criminais_pfboolean
default:"true"
required
Explicit end-user consent for this service.Example:
truestring
default:"12345678909"
required
Tax or fiscal identification number.Example:
12345678909string
default:"John"
required
Given name to validate.Example:
Johnstring
default:"Doe"
required
Family name to validate.Example:
Doestring
default:"1990-01-01"
Date of birth in
YYYY-MM-DD format.Example: 1990-01-01string
default:"user-1234"
Your stable user reference for this person, such as your internal user ID. Didit uses it to link standalone checks to the same end user and reduce duplicate-detection noise.Example:
user-1234Input rules & validation notes
- Brazilian CPF (exactly 11 digits)
tax_numbermust contain digits only; remove spaces, hyphens, and punctuation before sending the request.tax_numbermust be exactly 11 characters long.tax_numbermust match\d{3}\.?\d{3}\.?\d{3}-?\d{2}.
How to call it
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=BRA" \
-F "services=bra_antecedentes_criminais_pf" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "tax_number=12345678909" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "date_of_birth=1990-01-01"
Every successful call returns HTTP 200. The outcome_code field tells you what actually happened — distinguishing, for example, a real biometric mismatch (BIOMETRIC_NO_MATCH) from a selfie that could not be read (BIOMETRIC_IMAGE_UNUSABLE). The status shown is the default feature status; your configured Partial Match / No Match actions can override it.MATCH — The registry confirmed the identity and every checked field matched.{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "BRA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"certificate_number": "000000000000",
"certificate_status": "NADA CONSTA",
"certificate_valid_until": "2027-01-03",
"criminal_record_found": false,
"date_of_birth": "1990-01-01",
"first_name": "JOHN",
"full_name": "JOHN DOE",
"identification_number": "12345678909",
"last_name": "DOE"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
PARTIAL_MATCH — The identification number was found but one or more personal fields (usually name or date of birth) did not fully match.{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "BRA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"certificate_number": "000000000000",
"certificate_status": "NADA CONSTA",
"certificate_valid_until": "2027-01-03",
"criminal_record_found": false,
"date_of_birth": "1990-01-01",
"first_name": "JOHN",
"full_name": "JOHN DOE",
"identification_number": "12345678909",
"last_name": "DOE"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
NO_MATCH — The registry returned no match for the submitted data.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"date_of_birth": "NO_MATCH",
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
INCONCLUSIVE — The Federal Police did not issue the certificate online, which it does when a record or a homonym has to be resolved in person. Nothing is concluded either way.{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "BRA",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "bra_antecedentes_criminais_pf",
"service_name": "Brazil - Federal Criminal Record (Polícia Federal)",
"source_data": {
"certificate_status": "NOT_ISSUED",
"identification_number": "12345678909"
},
"validation": {}
}
]
}
Returned data
The exact fields surfaced insource_data depend on what the registry returns. The generated example for bra_antecedentes_criminais_pf currently documents this normalized shape:
certificate_numbercertificate_statuscertificate_valid_untilcriminal_record_founddate_of_birthfirst_namefull_nameidentification_numberlast_name
Pricing & SLAs
Brazil - Federal Criminal Record (Polícia Federal) queries are billed only when Didit receives a conclusive result from the validation source.- Per-call price: $0.20 USD.
- Billing: per successful query. You are not charged when the registry is unreachable, when required fields are missing, or when the request is rejected before reaching the source.
- Latency: typical p95 < 2 s.
- Availability: 99.9% per quarter on Didit’s side; downstream source availability varies by country and dataset.