Inyo

Validador de Número de Documento

Verifique se um número de documento é bem-formado para sua jurisdição, antes de criar uma sessão ou enviar uma verificação. Nada é armazenado e nenhuma verificação é consumida.


Endpoint: POST /v1/validators/document-number
Autenticação: Token Bearer com o escopo sessions

Uma verificação de formato sem estado contra o mesmo registro que o pipeline de verificação usa. Nada é armazenado e nenhuma verificação é consumida — mas ela recebe identificadores governamentais, portanto é atribuída a um tenant como todos os outros endpoints aqui. Útil para validar a entrada no seu próprio formulário antes de criar uma sessão.

curl --request POST \
  --url https://{FQDN}/v1/validators/document-number \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
  "documentType": "drivers_license",
  "number": "31612967",
  "issuingCountry": "USA",
  "issuingState": "PA"
}'
{
  "documentType": "drivers_license",
  "issuingCountry": "USA",
  "issuingState": "PA",
  "valid": true,
  "rule": "dl:USA:PA",
  "detail": "document number matches the PA license format"
}

O número enviado nunca é devolvido na resposta. A resposta informa a jurisdição aplicada, não o identificador que você enviou.

O Que Está Coberto

Paísdrivers_licensepassportidentity_cardssn / itin
🇺🇸 Estados Unidos✓ 51 jurisdições (50 estados + DC)✓ regras estruturais
🇨🇦 Canadá✓ 13 jurisdições (10 províncias + 3 territórios)
🇧🇷 Brasil✓ CNH — dígitos verificadores conferidos✓ CPF — dígitos verificadores conferidos
🇲🇽 México✓ CURP — estrutura
🇪🇸 Espanha✓ DNI/NIE — letra de controle conferida
🌎 Mais 11 países
🌐 Demais países✓ formato genérico ICAO

Os 11 países adicionais de passaporte, como o issuingCountry que você envia: ARG, AUS, CHN, DEU, FRA, GBR, IND, ITA, JPN, NLD, RUS.

Tudo o que não está marcado com ✓ — dentro ou fora da tabela — retorna valid: null, nunca false. Trate null como "não sabemos": aceite, e não interprete como aprovação nem reprovação.

CNH, CPF e DNI/NIE são verificados com aritmética real de dígitos verificadores, então uma transposição de dígitos é detectada — ao contrário das tabelas de carteiras de motorista, que verificam apenas o formato, porque essas jurisdições não publicam dígito verificador.

Informando a Jurisdição

issuingCountry é o país — um código ISO 3166-1 alpha-3, um nome de país ou um alias comum. issuingState é uma subdivisão dentro daquele país — um estado dos EUA ou uma província ou território do Canadá — e apenas carteiras de motorista a utilizam.

Tipo de documentoissuingCountryissuingStateObservações
drivers_license (EUA)USAo estado, ex. PA
drivers_license (Canadá)CANa província ou território, ex. ON
drivers_license (Brasil)BRAA CNH é nacional; o DETRAN emissor não altera o número
passporto país emissor
identity_cardo país emissor
ssn, itinUSAIdentificadores exclusivos dos EUA; qualquer outro país retorna 422

Sempre envie issuingCountry. Uma carteira enviada sem ele assume USA para que integrações anteriores ao issuingCountry continuem funcionando, mas depender desse fallback é justamente como uma carteira não americana acaba verificada contra o formato de um estado dos EUA. Nada mais infere o país: um passaporte ou carteira de identidade sem ele retorna valid: null.

ssn e itin existem apenas no validador. Não são tipos de documento capturáveis — você não pode criar uma sessão para eles — mas as regras estruturais são úteis quando você os coleta nos seus próprios formulários.

Interpretando a Resposta

valid é deliberadamente de três valores:

ValorSignificadoComo tratar
trueCorresponde ao formato conhecido daquela jurisdiçãoAceite
falseViola o formato conhecidoRejeite antes de criar a sessão
nullNão existe regra para aquela jurisdiçãoAceite — uma jurisdição desconhecida nunca é uma falha

null é a resposta honesta para uma jurisdição sem regra, e é por isso que as lacunas de cobertura abaixo são seguras em vez de silenciosamente erradas.

rule nomeia a regra aplicada, para que você saiba qual jurisdição respondeu:

ruleSignificado
dl:USA:PAUma carteira dos EUA verificada contra o formato da Pensilvânia
dl:CAN:ONUma carteira canadense verificada contra o formato de Ontário
dl:BRAUma CNH brasileira verificada contra os dígitos verificadores nacionais — sem componente de subdivisão, porque o DETRAN emissor não altera o número
dl:USA:unknown_subdivisionUma carteira dos EUA sem estado resolvível — valid: null
dl:<country>:noneUma carteira de um país para o qual não temos regras — valid: null
dl:unknown_countryNem país nem subdivisão resolvidos — valid: null
passport:USAUm passaporte verificado contra o formato daquele país
passport:no_country_ruleUm passaporte de um país sem formato conhecido — valid: null
id_card:ESPUma carteira de identidade verificada contra o esquema nacional daquele país
ssn:USA, itin:USAAs regras estruturais dos EUA

Erros

StatusCausa
401Token Bearer ausente ou inválido
403O token não possui o escopo sessions
422issuingCountry não pôde ser resolvido para um país
422issuingState enviado para passaporte ou carteira de identidade — informe o país em issuingCountry
422ssn ou itin enviado com issuingCountry fora dos EUA

O segundo merece atenção se você integrou antes de issuingCountry existir: issuingState costumava carregar o país para passaportes e carteiras de identidade. Enviá-lo dessa forma agora é um erro explícito em vez de um null silencioso, porque um null interpretado como aprovação é a falha pior.


Próximos Passos