Coerência cadastral
Coerência cadastral
O módulo coerencia_cadastral responde uma pergunta que hoje você teria que responder sozinho: o que o documento diz bate com o que o cadastro oficial diz? Ele compara o nome e o nascimento lidos do documento pelo cpf_ocr com os que a Validação CPF - Receita e Óbito (cpf_receita) do mesmo flow já trouxe, e devolve o veredito campo a campo. Ele também responde se o cadastro registra o titular como falecido, que é a única situação da Receita que contradiz a prova de vida que acabou de passar.
Ele não faz consulta nenhuma. Não há chamada nova, não há fonte nova e não há passo novo no widget: o módulo lê o que o seu flow já comprou. É por isso que ele custa uma fração do tier que o alimenta, e é por isso que ele exige a Validação CPF - Receita e Óbito no mesmo flow, além de Verificação de Identidade + Face Match + Liveness (o dado comparado vem do documento apresentado por quem está vivo na frente da câmera).
O que você recebe é a resposta, não o dado. O payload deste módulo não carrega nome, data nem situação cadastral: carrega match, mismatch ou not_checked por campo. O dado oficial continua chegando pelo check do tier que você comprou, no lugar de sempre. Se o que você quer é só a conferência, este módulo é a forma de tê-la sem espalhar cadastro de terceiro pelo seu sistema.
O que ele não confere, por decisão nossa: filiação (nome da mãe é fator de autenticação em banco e telecom, e devolver o veredito sobre ela municia engenharia social contra o próprio titular), gênero (a divergência entre o sexo do documento e o gênero do cadastro é, na prática, um detector de transição de gênero, e a LGPD veda tratamento para fins discriminatórios no art. 6, IX), endereço e contatos (seriam revenda de bureau, que os nossos Termos vedam). Não é limitação técnica: os campos existem na resposta que o tier já traz. É escopo, e ele não vai mudar sem revisão jurídica.
Sobre o nome: o comparador é o mesmo do screening de PEP, então grafia diferente já casa (SOUZA e SOUSA, LUIZ e LUIS). Entre "bate" e "não bate" existe uma faixa em que não afirmamos nada, e ela é intencional: é onde caem o nome de casada, o nome social e o sobrenome composto lido pela metade. Nessa faixa o campo sai not_checked, e o name_score contínuo vai no payload para você aplicar a sua própria régua se quiser.
Cobrança: o módulo só é cobrado quando entrega veredito. Se a fonte cadastral não respondeu, se o portão de identidade bloqueou a consulta ou se o tier comprado não trouxe nenhum campo comparável, o resultado é indeterminate e o módulo sai do preço daquela verificação. fields_checked diz sobre quantos campos a resposta se sustenta e coverage diz quais tiers a sustentaram.
// coerencia_cadastral: documento e cadastro batem
{ "module": "coerencia_cadastral", "passed": true, "outcome": "approved", "score": 100,
"data": { "verdict": "coherent",
"fields": { "name": "match", "birth_date": "match", "alive": "match" },
"fields_checked": 3, "name_score": 0.98,
"coverage": ["cpf_receita"],
"calibration": { "name_match_min": 0.85, "name_mismatch_max": 0.4 },
"reason": null } }
// coerencia_cadastral: o nome do documento não bate com o do cadastro
// a verificação NÃO é reprovada por isso: o veredito é informativo.
{ "module": "coerencia_cadastral", "passed": false, "outcome": "failed", "score": 40,
"data": { "verdict": "divergent",
"fields": { "name": "mismatch", "birth_date": "match", "alive": "match" },
"fields_checked": 3, "name_score": 0.21,
"coverage": ["cpf_receita"],
"calibration": { "name_match_min": 0.85, "name_mismatch_max": 0.4 },
"reason": null } }
// coerencia_cadastral: não houve campo comparável -> NÃO cobrado
{ "module": "coerencia_cadastral", "passed": null, "outcome": "pending", "score": 0,
"data": { "verdict": "indeterminate", "fields": null, "fields_checked": 0,
"name_score": null, "coverage": [], "reason": "no_comparable_field" } }No resumo checks o módulo aparece com vocabulário próprio: coherent, divergent ou indeterminate. Em sandbox nada é comparado e o desfecho vem do sufixo do documento: 02 devolve o caminho divergente, 01 o indeterminado (não cobrado) e 33 um coerente com cobertura parcial, que é o que você vê quando o tier comprado traz o nome mas não o nascimento.
Pronto para integrar? A chave de sandbox sai no painel, logo depois do cadastro. Criar conta grátis