For the complete documentation index, see llms.txt. This page is also available as Markdown.

VerifAI Smart OCR

Análise com IA de documentos genéricos brasileiros que combina OCR (extração de texto) com um modelo generativo que classifica o documento, extrai campos estruturados e alimenta regras de validação dedicadas. O serviço foi projetado para documentos que o padrão OCR de Documentos não cobre (comprovante de residência, comprovante de renda, contrato social, procuração e documentos arbitrários) e é o único serviço no estilo OCR que expõe regras de validação prontas para uso.

Seção: smartOcr

Arquivos obrigatórios: qualquer arquivo de documento (application/pdf, image/png, image/jpeg, image/bmp, image/webp, image/heic, image/heif).

O Verif AI Smart OCR só é executado quando o modelo de transação o habilita explicitamente. A configuração das classes de documento suportadas, janelas de expiração e termos obrigatórios fica no modelo — o corpo da requisição carrega apenas os tempo de execução parâmetros listados abaixo.

Parâmetros da requisição

Quando o serviço está habilitado, três campos opcionais podem ser passados dentro do atributos objeto de POST /transactions. Eles são encaminhados às regras de validação do Smart OCR; a extração em si ocorre independentemente desses valores.

Campo
Tipo
Usado por
Descrição

attributes.holderName

string

Titular do documento

Nome esperado do titular do documento. Comparado (sem diferenciar maiúsculas/minúsculas, sem diferenciar acentos, correspondência por substring) com o nome do titular extraído do documento (customerName, employeeName, taxpayerName, shareholderName1, etc., dependendo da classe do documento).

attributes.holderCpf

string (apenas dígitos, 11 caracteres)

Titular do documento

CPF esperado do titular do documento. Comparado (somente dígitos) com o CPF extraído do documento (customerPersonalTaxId, employeePersonalTaxId, taxpayerPersonalTaxId, shareholderPersonalTaxId1). Quando omitido, recorre a attributes.cpf.

attributes.analysisDate

string (YYYY-MM-DD)

Validade do documento

Data de referência usada para calcular a idade do documento. O padrão é a data da requisição quando omitida. Documentos com data de emissão futura em relação a esse valor são sempre considerados inválidos.

Todos os três campos são opcionais. A regra Titular do Documento precisa de pelo menos um de holderName / holderCpf (ou cpf) para ser informativa — quando nenhum deles é fornecido, a regra não pode ser avaliada e permanece PENDENTE.

Campos CPF extraídos (por exemplo, customerPersonalTaxId) podem incluir caracteres de formatação (pontos e traços); as comparações usam apenas dígitos. Envie attributes.holderCpf com apenas 11 dígitos, sem pontuação.

Exemplo de requisição:

{
  "templateId": "your_template_id",
  "attributes": {
    "cpf": "12345678901",
    "holderName": "Maria Silva Santos",
    "holderCpf": "12345678901",
    "analysisDate": "2025-08-15"
  },
  "files": [{ "data": "https://example.com/proof-of-residence.pdf" }]
}

PDFs protegidos por senha

Quando um PDF requer senha para ser aberto, envie a senha no campo filePassword do mesmo item em files. A senha é usada apenas para abrir o arquivo para processamento.

Campo
Tipo
Descrição

files[].filePassword

string

Senha necessária para abrir o PDF. Opcional; envie-a apenas para arquivos protegidos por senha.

Exemplo de requisição com um PDF protegido por senha:

Classificação de documentos

O Smart OCR classifica o documento enviado em uma das classes suportadas antes de extrair campos estruturados. A classificação combina recursos de texto (OCR) e visuais (o modelo generativo), portanto cada documento é processado apenas com o esquema relevante para sua classe.

Classe
Subclasse
Documentos típicos

PROOF_OF_RESIDENCE

—

Contas de consumo (energia, água, gás), faturas de telecom, extratos bancários, boletos de condomínio.

PROOF_OF_INCOME

—

Holerites/contracheques, cartas de emprego com renda, extratos de benefícios previdenciários.

PROOF_OF_INCOME

INCOME_TAX_RETURN

Recibos e declarações de entrega da declaração de imposto de renda (DIRPF / Recibo de Entrega).

SOCIAL_CONTRACT

—

Contratos sociais de empresas, estatutos sociais e alterações consolidadas.

POWER_OF_ATTORNEY

—

Procurações públicas, privadas e digitais.

GENERIC

—

Documentos genéricos que não correspondem às categorias acima (notas fiscais, contratos, declarações).

O resultado da classificação e a subclasse (quando aplicável) são retornados dentro da smartOcr seção junto com os campos extraídos, para que os consumidores posteriores possam decidir como interpretar o payload.

Atributos específicos (PROOF_OF_RESIDENCE)

Atributo
Tipo
Descrição

relatedMonth

Inteiro

Mês de referência do comprovante de residência (1-12, sem zero à esquerda).

relatedYear

Inteiro

Ano de referência do comprovante de residência (4 dígitos).

issueDate

String

Data de emissão do documento (DD/MM/AAAA).

dueDate

String

Data de vencimento do documento (DD/MM/AAAA).

companyName

String

Nome legal/fantasia da empresa emissora (Razão Social).

companyBusinessTaxId

String

CNPJ da empresa emissora (mantidos caracteres de formatação e máscara).

companyAddress

String

Endereço da empresa emissora.

customerName

String

Nome completo do titular do documento.

customerPersonalTaxId

String

CPF do titular do documento (mantidos caracteres de formatação e máscara).

customerBusinessTaxId

String

CNPJ do titular do documento, quando aplicável.

customerCompleteAddress

String

Endereço completo do titular como impresso no documento.

customerAddressStreet

String

Componente de rua do endereço do titular.

customerAddressNumber

String

Componente número do endereço do titular.

customerAddressNeighborhood

String

Componente bairro do endereço do titular.

customerAddressCity

String

Componente cidade do endereço do titular.

customerAddressState

String

Componente estado brasileiro (UF) do endereço do titular.

customerAddressPostalCode

String

Componente CEP do endereço do titular.

customerAddressExtraInfo

String

Informações extras/complemento do endereço.

digitableLine

String

Linha digitável do boleto como impressa no documento, somente dígitos: 47 dígitos para boleto bancário, 48 para boleto de cobrança. Retornada como lida — os valores codificados são derivados do código de barras, não deste campo.

amount

Ponto flutuante

Valor total a ser pago, como impresso no documento. Presente quando o documento exibe um valor.

bankCode

String

Código do banco emissor como impresso no cabeçalho do boleto. Presente apenas em boletos bancários.

barcode

String

Código de barras do boleto, decodificado das barras impressas: 44 dígitos. Presente quando o documento é um boleto e as barras puderam ser lidas.

barcodeAmount

String

Valor codificado no código de barras, em centavos. Omitido quando o boleto traz um valor de referência em vez de um valor efetivo.

barcodeAmountFormatted

String

Mesmo valor em notação decimal, sem símbolo de moeda.

barcodeDueDate

String

Data de vencimento codificada no código de barras (DD/MM/AAAA). Apenas boletos bancários — boletos de cobrança não carregam uma data de vencimento no layout.

barcodeBankCode

String

Código do banco codificado no código de barras. Apenas boletos bancários.

Regra de validação

Comportamento para PROOF_OF_RESIDENCE

Validade do documento

Usa issueDate (ou relatedMonth + relatedYear quando a data de emissão está ausente) comparado a attributes.analysisDate. A janela padrão de expiração é de 180 dias; pode ser personalizada no modelo via documentTypeRules (maxDays, maxMonths, lastMonth, lastYear).

Titular do documento

Compara attributes.holderName com customerName (substring, sem diferenciar caixa/acentos) e/ou attributes.holderCpf (ou attributes.cpf) com customerPersonalTaxId (somente dígitos). Pelo menos uma correspondência torna a regra válida.

Campos obrigatórios

Valida que cada termo configurado no modelo (requiredTerms) esteja presente na extração.

Completude do endereço

Valida cada componente individual (customerAddressStreet, customerAddressNumber, customerAddressPostalCode, customerAddressNeighborhood, customerAddressCity). Todos os cinco devem estar presentes e não vazios.

Código de barras existe

Verifica se o código de barras impresso pôde ser decodificado e seu dígito verificador é válido nos 44 dígitos. Um comprovante de residência sem código de barras legível não é aprovado. Exclusivo para esta classe de documento.

Código de barras corresponde

Verifica o boleto em três etapas: o código de barras é legível, seus 44 dígitos correspondem à linha digitável impressa e os valores codificados correspondem amount, dueDate e bankCode, nos campos selecionados em fieldsToCompare. Exclusivo para esta classe de documento.

Atributos específicos (PROOF_OF_INCOME)

Atributo
Tipo
Descrição

relatedMonth

Inteiro

Mês de referência (1-12).

relatedYear

Inteiro

Ano de referência (4 dígitos).

companyName

String

Nome legal/fantasia do empregador (Razão Social).

companyBusinessTaxId

String

CNPJ do empregador.

companyCompleteAddress

String

Endereço completo do empregador.

companyAddressStreet

String

Componente rua do empregador.

companyAddressNumber

String

Componente número do empregador.

companyAddressNeighborhood

String

Componente bairro do empregador.

companyAddressCity

String

Componente cidade do empregador.

companyAddressState

String

Estado brasileiro (UF) do empregador.

companyAddressPostalCode

String

CEP do empregador.

companyAddressExtraInfo

String

Informações extras do endereço do empregador.

employeeName

String

Nome completo do funcionário.

employeePersonalTaxId

String

CPF do funcionário.

employeeCompleteAddress

String

Endereço completo do funcionário.

employeeRole

String

Cargo/função do funcionário.

employeeContractType

String

Tipo de contrato (ex. Prazo indeterminado, Temporário, Prazo determinado).

employeeHireDate

String

Data de admissão (DD/MM/AAAA).

employeeEndDate

String

Data de término do contrato (vazia quando employmentStatus está Aberto).

employeeBaseIncome

Ponto flutuante

Valor da renda base (sem R$/símbolos).

employeeGrossIncome

Ponto flutuante

Valor da renda bruta.

employeeTotalDeductions

Ponto flutuante

Valor total dos descontos.

employeeNetIncome

Ponto flutuante

Renda líquida (employeeGrossIncome - employeeTotalDeductions).

employeeBankNumber

String

Código/número do banco onde o salário é pago.

employeeBankBranchNumber

String

Número da agência.

employeeBankAccountNumber

String

Número da conta.

employeeRetirementIndicative

String

Indicativo de situação de aposentadoria (ex. Aposentado, Pensão).

employmentStatus

String

Aberto (ativo) ou Encerrado (rescindido).

Regra de validação

Comportamento para PROOF_OF_INCOME

Validade do documento

Usa relatedMonth + relatedYear (fim do mês de referência) comparado a attributes.analysisDate. A janela padrão de expiração é de 180 dias; configurável no modelo.

Titular do documento

Compara attributes.holderName com employeeName (substring, sem diferenciar caixa/acentos) e/ou attributes.holderCpf (reserva attributes.cpf) com employeePersonalTaxId (somente dígitos).

Campos obrigatórios

Valida que cada termo configurado em requiredTerms esteja presente.

Completude do endereço

Valida o funcionário endereço (employeeCompleteAddress). Quando o endereço do empregado não é extraído, o endereço da empresa é usado e um aviso é adicionado.

Atributos específicos (PROOF_OF_INCOME · INCOME_TAX_RETURN)

Quando o documento é classificado como PROOF_OF_INCOME com subClass = INCOME_TAX_RETURN (Recibo de Entrega da Declaração de Imposto de Renda), um conjunto diferente de campos é extraído.

Atributo
Tipo
Descrição

anoFiscal

Inteiro

Ano fiscal da declaração (ex. 2024).

anoCalendario

Inteiro

Ano-calendário da renda informada (ex. 2023).

tipoContribuinte

String

Tipo de contribuinte (ex. Titular, Dependente).

taxpayerName

String

Nome completo do contribuinte.

taxpayerPersonalTaxId

String

CPF do contribuinte.

cnpjDoContribuinte

String

CNPJ do contribuinte quando a declaração pertence a uma pessoa jurídica.

dataDeNascimentoDoContribuinte

String

Data de nascimento do contribuinte (DD/MM/AAAA).

enderecoCompletoDoContribuinte

String

Endereço completo do contribuinte.

emailDoContribuinte

String

E-mail do contribuinte, quando presente.

naturezaDaAtividadeDoContribuinte

String

Natureza da atividade (ex. Empregado, Autônomo).

ocupacaoPrincipalDoContribuinte

String

Principal função/ocupação do contribuinte.

rendaTributavelTotalDoContribuinte

Ponto flutuante

Renda tributável total.

rendaNaoTributavelTotalDoContribuinte

Ponto flutuante

Renda não tributável total.

rendaTributavelExclusivaDoContribuinte

Ponto flutuante

Renda tributável exclusiva.

rendaMensalCalculadaDoContribuinte

Ponto flutuante

Renda mensal média calculada.

Regra de validação

Comportamento para INCOME_TAX_RETURN

Validade do documento

Usa o fim de anoFiscal (ou anoCalendario quando o ano fiscal está ausente) comparado com attributes.analysisDate. A janela de expiração padrão é de 365 dias para declarações de imposto de renda; configurável no template.

Titular do documento

Compara attributes.holderName com taxpayerName e/ou attributes.holderCpf (reserva attributes.cpf) com taxpayerPersonalTaxId.

Campos obrigatórios

Valida o configurado requiredTerms.

Completude do endereço

Valida enderecoCompletoDoContribuinte como uma única string (não componente por componente).

Atributos específicos (SOCIAL_CONTRACT)

Atributo
Tipo
Descrição

companyName

String

Nome empresarial/fantasia da empresa (Razão Social).

companyBusinessTaxId

String

CNPJ da matriz.

cnaeDaEmpresa

Array de strings

Códigos CNAE da atividade principal e descrições ("o objeto da sociedade").

tipoDaEmpresa

String

Tipo da empresa (ex. Sociedade Empresária Limitada, Sociedade Simples Limitada).

companyCompleteAddress

String

Endereço completo da empresa.

companyAddressStreet

String

Componente rua da empresa.

companyAddressNumber

String

Componente número da empresa.

companyAddressNeighborhood

String

Componente bairro da empresa.

companyAddressCity

String

Componente cidade da empresa.

companyAddressState

String

UF da empresa.

companyAddressPostalCode

String

CEP da empresa.

companyAddressExtraInfo

String

Informações complementares do endereço da empresa.

dataDeConstituicaoDaEmpresa

String

Data de constituição da empresa (DD/MM/AAAA).

empresaAtiva

Booleano

true quando o documento indica duração indeterminada (sem data de expiração).

totalDeQuotasDaEmpresa

Inteiro

Quantidade total de quotas.

moedaDasQuotasDaEmpresa

String

Moeda das quotas (ex. BRL).

valorDaQuotaDaEmpresa

Ponto flutuante

Valor de uma quota.

nomeDoSocio{N}

String

Nome do sócio N (1, 2, 3...).

cpfDoSocio{N}

String

CPF do sócio N (quando o sócio é uma pessoa física).

funcaoDoSocio{N}

String

Função do sócio N (ex. Sócio Administrador, Procurador, Representante Legal).

poderesDoSocio{N}

Array de strings

Poderes concedidos ao sócio N.

podeAssinarSozinho{N}

Booleano

true somente quando o documento declarar explicitamente que o sócio pode assinar sozinho.

descricaoDeAssinaturaSozinho{N}

String

Descrição textual da regra de assinatura.

restricoesDoSocio{N}

Array de strings

Restrições aplicáveis ao sócio N.

quotasDoSocio{N}

Inteiro

Quotas de propriedade do sócio N.

cnpjDoSocio{N}

String

CNPJ do sócio N (quando o sócio for uma empresa).

enderecoDoSocio{N}

String

Endereço do sócio N (quando o sócio for uma empresa).

dataInicioDoMandatoDoSocio{N}

String

Data de início do mandato (quando o sócio for uma empresa).

dataFimDoMandatoDoSocio{N}

String

Data de fim do mandato (quando o sócio for uma empresa).

tipoDeAssinaturaDoSocio{N}

String

assinatura_digital ou assinatura_fisica.

assinaturaDoSocioEncontrada{N}

Booleano

true quando a assinatura foi encontrada no documento.

Regra de validação

Comportamento para SOCIAL_CONTRACT

Validade do documento

Usa dataDeConstituicaoDaEmpresa comparado com attributes.analysisDate. A janela padrão é mais ampla (configurável). Documentos cuja data de constituição está no futuro são sempre inválidos.

Titular do documento

Compara attributes.holderName com shareholderName1 (e/ou a cada nomeDoSocio{N}) e attributes.holderCpf (reserva attributes.cpf) com cpfDoSocio{N}.

Campos obrigatórios

Valida o configurado requiredTerms (uso típico: garantir que os poderes do sócio, as quotas e a data de constituição estejam presentes).

Completude do endereço

Valida o sede endereço (companyCompleteAddress). Quando apenas endereços de filiais são extraídos, um aviso informativo é adicionado.

Atributos específicos (PROCURAÇÃO)

Atributo
Tipo
Descrição

companyName

String

Nome da empresa outorgante (quando aplicável).

companyBusinessTaxId

String

CNPJ da empresa outorgante.

companyCompleteAddress

String

Endereço completo da empresa.

companyAddressStreet

String

Componente rua da empresa.

companyAddressNumber

String

Componente número da empresa.

companyAddressNeighborhood

String

Componente bairro da empresa.

companyAddressCity

String

Componente cidade da empresa.

companyAddressState

String

UF da empresa.

companyAddressPostalCode

String

CEP da empresa.

companyAddressExtraInfo

String

Informações complementares do endereço da empresa.

nomeDoSocio{N}

String

Nome completo do outorgante.

cpfDoSocio{N}

String

CPF do outorgante.

funcaoDoSocio{N}

String

Função do outorgante (ex. Outorgante, Sócio Administrador).

poderesDoSocio{N}

Array de strings

Poderes concedidos pelo outorgante N.

podeAssinarSozinho{N}

Booleano

Se o outorgante N pode assinar sozinho.

nomeDoOutorgado{N}

String

Nome completo do outorgado.

outorgadoAssinaSozinho

Booleano

true quando o outorgado pode assinar sozinho após a procuração.

observacaoDeAssinatura

String

Observações sobre a regra de assinatura.

poderesConcedidos

Array de strings

Lista consolidada dos poderes concedidos na procuração.

tipo

String

público, privado ou inválido.

temDataDeExpiração

Booleano

true quando a procuração tem data de expiração.

expirationDate

String

Data de expiração (vazia quando temDataDeExpiração está false).

temSelosDeCartório

Booleano

true quando ao menos um selo de cartório foi encontrado.

formaDeAutenticacaoDoSelo{N}

String

Forma de autenticação do selo N (Assinado digitalmente via GOV.BR, Reconhecimento de Firma, etc.).

nomeNoSelo{N}

String

Nome no selo N (quando legível).

seloCartorialValido{N}

Booleano

Se o selo N é considerado válido.

tipoDoSeloCartorial{N}

String

assinatura_digital ou assinatura_manuscrita.

válido

Booleano

Decisão final de validade calculada pelo modelo.

decisaoTextual

String

Explicação textual de válido.

Regra de validação

Comportamento para POWER_OF_ATTORNEY

Validade do documento

Usa expirationDate quando hasExpirationDate = true; caso contrário, compara attributes.analysisDate (ou a data da solicitação, quando omitida) em relação à janela de validade da procuração. Documentos vencidos expirationDate são sempre inválidos.

Titular do documento

Compara attributes.holderName com nomeDoSocio{N} (outorgantes) e attributes.holderCpf (reserva attributes.cpf) com cpfDoSocio{N}.

Campos obrigatórios

Valida o configurado requiredTerms (uso típico: garantir que poderes como Abrir conta bancária estejam explicitamente listados).

Completude do endereço

Valida companyCompleteAddress como uma única string.

Atributos específicos (GENERIC)

Quando o documento não corresponde a nenhuma das categorias acima, o Smart OCR recorre ao GENERIC esquema com campos baseados em função. Os nomes dos campos seguem o padrão {role}{Property} (ex. nomeDoPagador, cnpjDoRecebedor).

Atributo
Tipo
Descrição

issueDate

String

Data de emissão do documento, quando presente.

dueDate

String

Data de vencimento do documento, quando presente.

nomeDoPagador

String

Nome completo do pagador/devedor.

cpfDoPagador

String

CPF do pagador.

cnpjDoPagador

String

CNPJ do pagador.

nomeDoRecebedor

String

Nome completo do recebedor/credor.

cpfDoRecebedor

String

CPF do recebedor.

cnpjDoRecebedor

String

CNPJ do recebedor.

companyName

String

Nome da empresa, quando aplicável.

companyBusinessTaxId

String

CNPJ da empresa, quando aplicável.

companyAddress

String

Endereço da empresa, quando aplicável.

companyCompleteAddress

String

Endereço completo da empresa, quando aplicável.

valorLiquido

Ponto flutuante

Valor monetário líquido, quando presente.

valorBruto

Ponto flutuante

Valor monetário bruto, quando presente.

Regra de validação

Comportamento para GENERIC

Validade do documento

Usa issueDate (ou dueDate como alternativa) comparado com attributes.analysisDate. Documentos que não tenham nenhum dos dois não podem ser validados e permanecem PENDENTE.

Titular do documento

Compara attributes.holderName com nomeDoPagador/nomeDoRecebedor e attributes.holderCpf (reserva attributes.cpf) com cpfDoPagador/cpfDoRecebedor.

Campos obrigatórios

Valida o configurado requiredTerms (uso típico: garantir que cláusulas contratuais estejam presentes).

Completude do endereço

Valida companyCompleteAddress como uma única string quando presente.

Regras de validação

O smart_ocr as regras abaixo podem ser ativadas no modelo de transação. As descrições abaixo documentam o comportamento exposto publicamente; controles de configuração apenas do template (como documentTypeRules ou requiredTerms) são gerenciados no Trust.

Chave da regra
Título
Parâmetros da requisição
Valores de status

verifai_smart_ocr_document_validity

Validade do documento

attributes.analysisDate

VÁLIDO, INVÁLIDO, PENDENTE

verifai_smart_ocr_document_holder

Titular do documento

attributes.holderName, attributes.holderCpf (reserva attributes.cpf)

VÁLIDO, INVÁLIDO, PENDENTE

verifai_smart_ocr_required_fields

Campos obrigatórios

— (configurado via requiredTerms no template)

VÁLIDO, INVÁLIDO, PENDENTE

verifai_smart_ocr_address_completeness

Completude do endereço

—

VÁLIDO, INVÁLIDO, PENDENTE

smart_ocr_proof_of_residence_barcode_exists

Código de barras no comprovante de residência

—

VÁLIDO, INVÁLIDO, PENDENTE

smart_ocr_proof_of_residence_barcode_match

Comparação do código de barras do comprovante de residência

— (configurado via fieldsToCompare no template)

VÁLIDO, INVÁLIDO, PENDENTE

Validade do documento (verifai_smart_ocr_document_validity)

Verifica se o documento foi emitido dentro da janela máxima configurada. A regra usa a data de emissão do documento, a data de vencimento ou o mês/ano de referência (o que estiver disponível para a classe do documento) para calcular quantos dias se passaram em relação à dataDeAnalise fornecida na solicitação — ou a data da solicitação quando omitida. A janela padrão é 180 dias e pode ser personalizada por classe de documento via documentTypeRules no template (maxDays, maxMonths, lastMonth, lastYear). Documentos cuja data esteja no futuro em relação a dataDeAnalise são sempre considerados inválidos.

Titular do documento (verifai_smart_ocr_document_holder)

Verifica se o documento pertence ao titular esperado. A regra compara o nome do titular e/ou CPF extraídos do documento com os valores informados em attributes.holderName e attributes.holderCpf. A comparação de nome não diferencia maiúsculas de minúsculas nem acentos (correspondência por substring); a comparação de CPF usa apenas dígitos. Basta uma das correspondências — a regra é VÁLIDO quando pelo menos um dos valores fornecidos corresponde ao campo correspondente no documento.

Campos obrigatórios (verifai_smart_ocr_required_fields)

Verifica se os termos listados em requiredTerms (configurados por classe de documento no template) estão todos presentes na extração. Um termo é considerado encontrado quando pelo menos um campo extraído tem correspondência de rótulo/metadados e um valor não vazio.

Completude do endereço (verifai_smart_ocr_address_completeness)

Verifica se o endereço do documento está completo (logradouro, número, CEP, bairro e cidade). PROOF_OF_RESIDENCE valida cada componente individualmente usando os campos dedicados customerAddress* , enquanto outras classes de documento validam companyCompleteAddress / enderecoCompletoDoContribuinte como uma única string. Quando PROOF_OF_INCOME ou SOCIAL_CONTRACT documentos extraem apenas endereços secundários (endereço do funcionário, endereço da filial), um aviso informativo é adicionado à saída da regra sem alterar seu status.

Código de barras no comprovante de residência (smart_ocr_proof_of_residence_barcode_exists)

Verifica se o comprovante de residência é uma fatura, decodificando o código de barras impresso e conferindo o dígito verificador de seus 44 dígitos — o que comprova que a leitura está correta.

Um comprovante de residência cujo código de barras não possa ser lido é não aprovado. O código de barras é a fonte da verdade e a linha digitável impressa não o substitui.

Esta regra se aplica somente a documentos classificados como PROOF_OF_RESIDENCE. Um documento de qualquer outra classe não é avaliado e a regra permanece VÁLIDO.

Comparação do código de barras do comprovante de residência (smart_ocr_proof_of_residence_barcode_match)

Verifica a fatura em relação a ela mesma, em três etapas. A verificação para na primeira etapa que falhar, porque depois de uma falha a seguinte já não diz mais nada.

Etapa
Verifica
Uma falha significa

1

o código de barras é legível e seu dígito verificador confere

o código de barras não pôde ser lido

2

os 44 dígitos correspondem à linha digitável impressa

o código de barras ou a linha digitável foram adulterados

3

os valores codificados correspondem aos campos lidos no corpo do documento

o código de barras ou o corpo da fatura foi adulterado

A Etapa 3 abrange os campos selecionados em fieldsToCompare:

Valor
Compara

VALOR

o valor codificado no código de barras em relação a amount

DATA_DE_VENCIMENTO

a data de vencimento codificada no código de barras em relação a dueDate

BANCO

o código do banco codificado no código de barras em relação a bankCode

Um campo que o formato da fatura não carrega é ignorado, e os demais campos selecionados continuam sendo comparados: uma fatura de arrecadação — o formato usual em uma conta de serviço público — não carrega nem data de vencimento nem código do banco. Um campo que deveria existir e não foi lido falha na regra, assim como uma divergência.

Sem fieldsToCompare configurado, a regra permanece PENDENTE. Assim como a regra acima, ela se aplica apenas a PROOF_OF_RESIDENCE.

Para a configuração de quais regras estão habilitadas por template e de como availableActions são interpretadas, consulte Regras de validação.

Atualizado