CNH sem foto
Categoria, situação, validade e impedimentos da Carteira Nacional de Habilitação a partir do CPF, sem a foto do condutor.
Quando usar
Contratação de motoristas
Confirme categoria, validade e impedimentos antes de colocar alguém ao volante.
Gestão de frota
Revalide a habilitação dos condutores da sua base periodicamente.
Locação e aplicativos
Valide a CNH no cadastro de locatários e motoristas parceiros.
Exige termo de finalidade
Antes da primeira chamada, aceite o termo desta consulta no painel, em Minha conta > Aceites e finalidade. Sem o aceite, a criação responde 403 com o código PURPOSE_NOT_ACCEPTED.
Validade já calculada
O campo license.expired indica se a CNH estava vencida na data da consulta, no fuso de Brasília.
Consulta repetida sem cobrança
O mesmo CPF consultado de novo dentro de 1 hora reaproveita o resultado anterior e responde ignored: true.
Passo 1
Criar consulta
/api/partner/v2/people/driver-licenseCria uma consulta assíncrona da Carteira Nacional de Habilitação vinculada
ao CPF, sem a foto do condutor. Use o requestId retornado no endpoint de
resultado.
Importante:
- Exige o termo de finalidade de CNH (sem foto) aceito no painel; sem ele a resposta é
403comcode: PURPOSE_NOT_ACCEPTED - O mesmo CPF consultado de novo dentro de 1 hora reaproveita o resultado anterior sem nova cobrança (
ignored: true) - CPF sem CNH é cobrado e responde
found: false - Falhas na consulta são reembolsadas automaticamente
Corpo da requisição
| Campo | Tipo | Descrição |
|---|---|---|
documentobrigatório | string | CPF válido. Pontuação é aceita e removida antes da consulta. Ex.: |
documentstringobrigatórioCPF válido. Pontuação é aceita e removida antes da consulta.
Ex.:
12345678901
Respostas
- 200Solicitação criada com sucesso
- 400CPF inválido
- 401Token ausente ou inválido
- 402Consulta não habilitada ou saldo insuficiente
- 403Termo de finalidade não aceito ou documento com restrição de privacidade
curl -X POST "https://consultadeprocessos.com.br/api/partner/v2/people/driver-license" \
-H "Authorization: Bearer SUA_CHAVE_DE_API" \
-H "Content-Type: application/json" \
-d '{"document":"12345678901"}'{
"requestId": "cm8p1q2r30004ab12cdef5678",
"message": "Solicitação realizada com sucesso"
}Passo 2
Buscar CNH
/api/partner/v2/people/driver-license/{requestId}Consulte este endpoint com o requestId recebido no POST até receber o
status done ou error. Quando o CPF não tem CNH, found vem false
e holder e license vêm null.
Parâmetros do caminho
| Campo | Tipo | Descrição |
|---|---|---|
requestIdobrigatório | string | ID retornado ao criar a consulta |
requestIdstringobrigatórioID retornado ao criar a consulta
Respostas
- 200Estado atual ou resultado da solicitação
- 401Token ausente ou inválido
- 403A solicitação pertence a outro usuário
- 404Solicitação não encontrada
curl -X GET "https://consultadeprocessos.com.br/api/partner/v2/people/driver-license/cm8p1q2r30004ab12cdef5678" \
-H "Authorization: Bearer SUA_CHAVE_DE_API"{
"data": {
"document": "12345678901",
"found": true,
"checkedAt": "2026-10-27T20:21:08.206Z",
"holder": {
"name": "MARIA DA SILVA",
"cpf": "12345678901",
"birthDate": "1990-01-15",
"sex": "FEMININO",
"nationality": "BRASILEIRO(A)",
"motherName": "ANA DA SILVA",
"fatherName": "JOSE DA SILVA",
"identityDocument": {
"number": "123456789",
"type": "CARTEIRA IDENTIDADE",
"issuer": "SSP · SP"
},
"address": {
"street": null,
"number": null,
"complement": null,
"district": null,
"city": null,
"state": "SP",
"zipCode": null
}
},
"license": {
"registrationNumber": "01234567890",
"renach": "SP123456789",
"currentCategory": "AB",
"authorizedCategory": "AB",
"downgradedCategory": null,
"status": "CONFIRMADA",
"validUntil": "2030-05-10",
"expired": false,
"firstLicenseDate": "2010-03-20",
"lastIssueDate": "2020-05-10",
"state": "SP",
"observations": "99",
"medicalRestrictions": null,
"impediments": {
"exists": false,
"count": 0
},
"internationalPermit": false,
"courses": []
}
},
"status": "done"
}O que a resposta traz
Habilitação
- Número de registro e RENACH
license.registrationNumber · renach - Categoria atual, autorizada e rebaixada
license.currentCategory · authorizedCategory · downgradedCategory - Situação e validade
license.status · validUntil · expiredexpired indica se a validade já passou na data da consulta.
- Primeira habilitação, última emissão e UF
license.firstLicenseDate · lastIssueDate · state - Observações
license.observations
Restrições
- Impedimentos e quantidade de ocorrências
license.impediments.exists · count - Restrições médicas, quando houver
license.medicalRestrictions - Cursos especializados e permissão internacional
license.courses · internationalPermit
Condutor
- Nome, data de nascimento, sexo e nacionalidade
holder.name · birthDate · sex · nationality - Nome da mãe e do pai
holder.motherName · fatherName - Documento de identidade e órgão emissor
holder.identityDocument.number · type · issuer - Endereço, quando informado
holder.address
Todos os campos da resposta (44)
| Campo | Tipo | Descrição |
|---|---|---|
status | string | done |
data | object | Datas no formato AAAA-MM-DD. Campos sem informação na fonte vêm null. |
data. | string | CPF consultado Ex.: |
data. | boolean | false quando o CPF não tem CNH registrada |
data. | string | null | Momento da consulta na fonte |
data. | object | null | |
data. | string | null | Ex.: |
data. | string | null | Ex.: |
data. | string | null | Ex.: |
data. | string | null | Ex.: |
data. | string | null | Ex.: |
data. | string | null | |
data. | string | null | |
data. | object | |
data. | string | null | |
data. | string | null | Ex.: |
data. | string | null | Ex.: |
data. | object | Normalmente só a UF vem preenchida |
data. | string | null | |
data. | string | null | |
data. | string | null | |
data. | string | null | |
data. | string | null | |
data. | string | null | Ex.: |
data. | string | null | |
data. | object | null | |
data. | string | null | Ex.: |
data. | string | null | Ex.: |
data. | string | null | Ex.: |
data. | string | null | Ex.: |
data. | string | null | |
data. | string | null | Ex.: |
data. | string | null | Ex.: |
data. | boolean | null | Se a validade já tinha passado na data da consulta (fuso de Brasília) |
data. | string | null | Ex.: |
data. | string | null | Ex.: |
data. | string | null | UF de habilitação Ex.: |
data. | string | null | |
data. | string | null | Restrições médicas da habilitação (dado de saúde) |
data. | object | |
data. | boolean | null | |
data. | integer | null | |
data. | boolean | null | |
data. | any[] | Cursos especializados, como informados pela fonte |
statusstringdonedataobjectDatas no formato AAAA-MM-DD. Campos sem informação na fonte vêm null.
data.stringdocument CPF consultado
Ex.:
12345678901data.booleanfound false quando o CPF não tem CNH registrada
data.string | nullcheckedAt Momento da consulta na fonte
data.object | nullholder data.string | nullholder. name Ex.:
MARIA DA SILVAdata.string | nullholder. cpf Ex.:
12345678901data.string | nullholder. birthDate Ex.:
1990-01-15data.string | nullholder. sex Ex.:
FEMININOdata.string | nullholder. nationality Ex.:
BRASILEIRO(A)data.string | nullholder. motherName data.string | nullholder. fatherName data.objectholder. identityDocument data.string | nullholder. identityDocument. number data.string | nullholder. identityDocument. type Ex.:
CARTEIRA IDENTIDADEdata.string | nullholder. identityDocument. issuer Ex.:
SSP · SPdata.objectholder. address Normalmente só a UF vem preenchida
data.string | nullholder. address. street data.string | nullholder. address. number data.string | nullholder. address. complement data.string | nullholder. address. district data.string | nullholder. address. city data.string | nullholder. address. state Ex.:
SPdata.string | nullholder. address. zipCode data.object | nulllicense data.string | nulllicense. registrationNumber Ex.:
01234567890data.string | nulllicense. renach Ex.:
SP123456789data.string | nulllicense. currentCategory Ex.:
ABdata.string | nulllicense. authorizedCategory Ex.:
ABdata.string | nulllicense. downgradedCategory data.string | nulllicense. status Ex.:
CONFIRMADAdata.string | nulllicense. validUntil Ex.:
2030-05-10data.boolean | nulllicense. expired Se a validade já tinha passado na data da consulta (fuso de Brasília)
data.string | nulllicense. firstLicenseDate Ex.:
2010-03-20data.string | nulllicense. lastIssueDate Ex.:
2020-05-10data.string | nulllicense. state UF de habilitação
Ex.:
SPdata.string | nulllicense. observations data.string | nulllicense. medicalRestrictions Restrições médicas da habilitação (dado de saúde)
data.objectlicense. impediments data.boolean | nulllicense. impediments. exists data.integer | nulllicense. impediments. count data.boolean | nulllicense. internationalPermit data.any[]license. courses Cursos especializados, como informados pela fonte
Valores por plano
Sem cobrança em caso de falha
Se a consulta terminar com erro, o valor volta para o saldo automaticamente.
| Plano mensal | Valor da consulta |
|---|---|
Sob demanda | R$ 8,49 |
R$ 100/mês até 23 consultas | R$ 4,19 |
R$ 300/mês até 83 consultas | R$ 3,59 |
R$ 500/mês até 158 consultas | R$ 3,15 |
R$ 1.000/mês até 371 consultas | R$ 2,69 |
R$ 3.000/mês até 1.435 consultas | R$ 2,09 |
R$ 10.000/mês até 5.291 consultas | R$ 1,89 |
R$ 20.000/mês até 13.422 consultas | R$ 1,49 |
O valor é cobrado por consulta, na criação da consulta. Ler o resultado de novo pelo mesmo requestId não gera nova cobrança.
Sem plano, a conta usa o valor Sob demanda e paga só o que consumir.
Comparar planosPróximos passos
Autenticação
Gere a chave e envie no cabeçalho.
Erros e códigos
Como tratar cada resposta de erro.
Cobrança e reembolso
Quando cobramos e quando o valor volta.
Dados cadastrais CPF
Nome, data de nascimento, filiação e situação cadastral de uma pessoa pelo CPF.
Dados cadastrais CNPJ
Razão social, situação cadastral, CNAE, natureza jurídica e capital social de uma empresa pelo CNPJ.
Telefones
Telefones vinculados a um CPF, com tipo, operadora e indicação de qual é o principal.