Skip to main content
POST
SERPRO Datavalid v4 pf-facial-qrcode — decodes the QR code printed on Brazilian CNH driver licences (physical or digital, issued since May 2017), validates CPF + name + date of birth against Receita Federal, and matches the live selfie against the CNH portrait stored at Senatran. 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:
  • Country: Brazil
  • Service ID: bra_cnh_facial_qrcode
  • Data domain: Biometric
  • Category: DriverLicence

Inputs

  • Required inputs: tax_number, selfie, cnh_qr_code_image
  • Optional inputs: first_name, last_name, date_of_birth, vendor_data
  • Consent: Required
  • Workflow availability: Available in workflow
  • Coverage:
  • Price: $0.50 per successful query

Body parameters

issuing_state
string
default:"BRA"
required
ISO 3166-1 alpha-3 country code for this database service.Example: BRA
services
string
default:"bra_cnh_facial_qrcode"
required
Array containing this service ID. Pinning the service keeps the request scoped to this exact database.Example: bra_cnh_facial_qrcode
Explicit end-user consent for this service.Example: true
tax_number
string
default:"11111111111"
required
Tax or fiscal identification number.Example: 11111111111
selfie
file
required
Selfie image file to upload for biometric database validation. Accepted formats: JPEG, PNG, or WebP.Example: @./selfie.jpg
cnh_qr_code_image
string
required
cnh_qr_code_image value required by this database service.Example: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB
first_name
string
default:"John"
Given name to validate.Example: John
last_name
string
default:"Doe"
Family name to validate.Example: Doe
date_of_birth
string
default:"1990-01-01"
Date of birth in YYYY-MM-DD format.Example: 1990-01-01
vendor_data
string
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-1234

Input rules & validation notes

  • Brazilian CPF (exactly 11 digits)
  • tax_number must contain digits only; remove spaces, hyphens, and punctuation before sending the request.
  • tax_number must be exactly 11 characters long.

How to call it

Returned data

The exact fields surfaced in source_data depend on what the registry returns. The generated example for bra_cnh_facial_qrcode currently documents this normalized shape:
  • cnh_qrcode
  • date_of_birth
  • face_match_probability
  • face_match_score
  • first_name
  • identification_number
  • last_name
  • name_match_score

Pricing & SLAs

Brazil - CNH QR code + face match (Datavalid) queries are billed only when Didit receives a conclusive result from the validation source.
  • Per-call price: $0.50 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.

Continue reading