Pular para o conteúdo
TRILHA TESOURARIA · NA FILA

Recibo duplicado ou CNPJ trocado no reembolso? O motor pega antes de você aprovar.

A pilha de recibos do mês esconde duplicata, CNPJ trocado e comprovante sem nota fiscal, coisas que a conferência a olho deixa passar. O Validador lê XML, PDF ou foto, roda uma bateria de checks determinísticos e devolve uma planilha colorida por bandeira: verde para revisar rápido, âmbar para checar com calma, vermelho para resolver antes de aprovar.

Quero ser avisado Grátis e aberta quando sair · na fila de abertura
python motor/validar_reembolso.py recibos-do-mes --xlsx reembolso.xlsx
OK recibo-01-taxi-valido.xml: verde
!! recibo-02-hospedagem-cnpj-invalido.xml: vermelho  [CNPJ_INVALIDO]
?? recibo-03-comprovante-app-sem-nota.pdf: ambar  [NAO_VERIFICAVEL]

saída real do motor, num arquivo de teste do repositório.

61

testes automatizados no motor

4

dependências para instalar (openpyxl, pydantic, defusedxml, pdfplumber)

3

formatos de entrada: XML, PDF e foto

A pilha de recibos do mês é xml de nota fiscal, PDF de comprovante e foto de recibo de aplicativo, tudo misturado. Ninguém confere duplicata, dígito verificador de CNPJ ou chave de acesso um recibo por vez antes de aprovar o pagamento.

E a brecha clássica mora exatamente aí: o mesmo recibo reenviado num mês seguinte, ou um CNPJ digitado errado que ninguém valida por cálculo.

Como funciona

  1. 1 Lê. Lê cada recibo do lote (XML, PDF ou foto), extrai a chave de acesso ou o QR quando existe, e tira o hash do arquivo.
  2. 2 Deduplica. Deduplica por assinatura fiscal (mesma chave, ou mesmo valor mais data mais CNPJ) e por hash de arquivo, contra o próprio lote e contra o histórico de lotes já pagos, quando você fornece um.
  3. 3 Pinta. Roda a bateria de checks determinísticos e devolve o status de cada recibo, verde, âmbar ou vermelho, com o motivo de cada bandeira.

As duas formas de resolver isso

Recibo duplicado entre lotes

Conferir a pilha na mão
passa batido até alguém notar
Validador de Reembolso (nós)
vira bandeira DUPLICATA, na hora

CNPJ ou chave de acesso

Conferir a pilha na mão
ninguém confere o dígito verificador
Validador de Reembolso (nós)
confere por cálculo e pinta vermelho se não fechar

Comprovante sem nota fiscal

Conferir a pilha na mão
aprova ou rejeita no olho
Validador de Reembolso (nós)
vira âmbar, marcado para você decidir

Custo

Conferir a pilha na mão
o tempo de quem confere um a um
Validador de Reembolso (nós)
grátis e aberto

O dado é seu

O recibo fica com você.

No terminal, no Claude Code ou no Cowork, o motor lê os recibos no seu computador e o Claude só vê o resumo que ele imprime (quantos verdes, âmbar e vermelhos), nunca o recibo individual nem o conteúdo do arquivo de detalhe. Anexar o recibo numa conversa comum do Claude, na web ou no app, é outra coisa: aí o arquivo sobe para a nuvem da Anthropic.

O que vem

A prova que eu tenho hoje

A prova hoje é de bancada: o motor foi validado fora do monorepo contra o exemplo de recibos fictícios, um verde, um âmbar e um vermelho, e bateu certinho com o gabarito. Ainda não tenho relato de uso com recibos reais de reembolso de outra empresa.

Onde isso ainda não chega.

  • Não decide o pagamento: o motor sinaliza, quem aprova é o controller, humano no circuito.
  • Não prova autorização na SEFAZ: valida só o que dá para validar por cálculo (chave de acesso, CNPJ, QR, duplicata), não consulta o fisco.
  • Não detecta recibo feito por inteligência artificial: isso não é um resultado do produto.
  • Recibo sem elemento fiscal (foto de recibo simples, print de app, PDF escaneado sem texto nativo) vira âmbar, nunca verde: é degradação segura, não bug.

É para você?

É para você se

  • Quem aprova reembolso de funcionário e recebe a pilha de recibos do mês inteira de uma vez.
  • Quem já foi pego de surpresa por um recibo duplicado ou um CNPJ digitado errado.

Não é para você se

  • Quem precisa de aprovação automática, sem revisão humana no meio do caminho.
  • Quem quer confirmar o recibo direto na SEFAZ, não só por cálculo local.

Antes de instalar: o que você precisa

  • Python 3.12 ou mais no computador.
  • Para usar como skill: Claude Code, ou o Cowork do Claude Desktop (plano pago). Direto no terminal funciona sem Claude nenhum.
  • Os recibos do mês, em XML, PDF ou foto, numa pasta só.
Na fila Grátis e aberta

Grátis e aberta quando sair da fila.

Validador de Reembolso está na fila de abertura e vai sair grátis, com o código aberto. Avisamos você quando sair.

  • O motor em Python, com os módulos da bateria de checks (chave de acesso, CNPJ, QR, duplicata e o resto).
  • O exemplo com recibos fictícios, um de cada resultado (verde, âmbar, vermelho), com o gabarito esperado.
  • O SKILL.md, para o Claude chamar o motor quando alguém manda a pilha de recibos.
  • Os testes, com os recibos sintéticos que eles usam.

Recebe no seu e-mail

Sem spam. Descadastro em 1 clique.

Perguntas frequentes

O recibo sai da minha máquina?

No terminal, no Claude Code ou no Cowork, não: o motor lê o arquivo aí e o Claude só vê o resumo que ele imprime. Anexar o recibo numa conversa comum do Claude, na web ou no app, é diferente: o arquivo sobe para a nuvem da Anthropic.

Ele decide se o reembolso pode ser pago?

Não. Ele sinaliza as bandeiras (duplicata, CNPJ inválido, chave incoerente, comprovante sem elemento fiscal) e quem aprova o pagamento é a pessoa.

Detecta recibo feito por inteligência artificial?

Não. Isso não é um resultado deste produto: o metadado de editor de imagem entra só como um sinal fraco entre vários.

E um comprovante sem nota fiscal, tipo corrida de aplicativo?

Vira âmbar: não é fraude, é "não dá para verificar por cálculo". A pessoa decide com o bom senso de sempre.