Coerência cadastral
O móduloregistration_coherence 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_status) 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.
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.