Ficha técnica
| Tipo | Introdução + Demonstração + Atividade Prática |
| Bloco | AI no Financeiro · Checkpoint 1 e Checkpoint 2 da aula |
| Duração | 14 minutos |
| Ferramenta | Claude Code ou Claude Cowork (modelo Sonnet 4.6) |
| Pré-requisito | Pasta de projeto criada na AP01, com o XML da nota baixado |
| Entregável | 1 JSON limpo com 5 campos da nota da Grafica Sergipe, pronto pra cruzar com a planilha |
Antes de começar, dá uma olhada no que você vai ter no fim desta AP. É o JSON que o resto da ferramenta vai usar.
Contexto: a nota da Grafica Sergipe chegou em XML, como toda NF-e brasileira. O arquivo tem centenas de campos: cabeçalho, emitente, destinatário, ICMS, PIS, COFINS, transportadora, volumes, parcelas. Pra conciliar com a planilha de pagamentos, você precisa de 5 campos. Só isso.
A NF-e tem centenas de campos porque o fisco precisa de tudo. A conciliação não. Pra responder "o que a gente pagou bate com o que veio na nota?", bastam 5: número, fornecedor (2 campos), valor e data.
Esse JSON vai ser o input das próximas etapas. Se ele tá limpo, o cruzamento sai limpo. Se ele tá poluído, a ferramenta inteira fica frágil. Limpa aqui, simples depois.
De todos os 5, o que vai pegar o erro de R$ 8.000 é o valor_nota. Ele vem do vNF dentro de total>ICMSTot no XML. É esse número que vai bater contra a planilha. Se a planilha disser 10.000 e o JSON disser 2.000, a diferença passa de 1% e o alerta dispara.
O professor mostra o caminho de XML ilegível pra JSON limpo em uma sequência linear, sem código, sem regex, sem parser. Só linguagem natural pro Claude.
Fluxo da demo
Abre o Claude na pasta de projeto e arrasta o arquivo nota-12345-grafica-sergipe.xml pro chat. O Claude reconhece que é uma NF-e e fica esperando a próxima instrução.
Primeiro pedido: "me explica o XML". O Claude lista os campos relevantes pra conciliação e aponta onde cada um está dentro da estrutura (nNF, emit>CNPJ, emit>xNome, total>ICMSTot>vNF, dhEmi). Esse passo serve pra confirmar que ele entendeu o arquivo, não pra você decorar XML.
Segundo pedido: "extrai pra JSON". O Claude devolve um JSON com os 5 campos exatos, nada além. Acabou.
Dava pra mandar direto "extrai esse XML pra JSON". Funciona. Mas pedir a explicação antes te dá controle: você confere se o Claude achou os campos certos no lugar certo antes de gerar o JSON. Custa 30 segundos, evita JSON errado.
- O
vNFé o valor que vai bater contra a planilha. No XML aparece dentro detotal>ICMSTot>vNFe vale 2000.00. É esse número, não o vProd, não o vBC, não o vLiq. O Claude precisa pegar o vNF. Se ele pegar outro, a conciliação vai disparar alerta em nota certa ou silenciar nota errada. - O
numero_notaé a chave do cruzamento. Vem donNF, vale "12345" nesta nota. É o campo que liga a NF-e ao registro da planilha de pagamentos. Sem ele, o JSON é só uma foto solta. Com ele, o JSON encaixa numa linha específica da planilha. - O JSON sai limpo, com 5 campos e só 5. Sem
{"nf":{"infNFe":{"ide":{...}}}, sem array, sem campo extra. Plano, 5 chaves, nomes em snake_case, valores prontos pra usar. Se o Claude devolver aninhado ou com sobra, o resto da ferramenta vai precisar limpar antes de cruzar.
Agora você faz o mesmo caminho da demo: sobe o XML da Grafica Sergipe, pede explicação, pede o JSON. No fim você tem o arquivo limpo na mão, pronto pra alimentar a AP03 (planilha) e a AP04 (cruzamento).
Na demo você assistiu o Claude ler o XML. Aqui você manda os 2 prompts e confere a saída. O XML é o mesmo, o resultado esperado tá no Passo 03 pra você comparar.
Baixe o arquivo nota-12345-grafica-sergipe.xml e arraste pro chat do Claude (ou use o botão de anexar). É a nota fiscal eletrônica que a Camila digitou errado na planilha.
Detalhamento: abra o arquivo num editor antes, só pra ver com o que você tá lidando. É XML cru, com namespace, dezenas de tags aninhadas, ilegível à primeira vista. É exatamente esse barulho que o Claude vai filtrar.
Antes de extrair, peça pro Claude apontar onde estão os 5 campos. Esse passo é a sua checagem de sanidade: se ele localizar certo, a extração no Passo 03 sai certa.
Detalhamento: o Claude vai responder apontando os caminhos no XML. Confere que ele cita nNF (número), emit com CNPJ e xNome (fornecedor), total > ICMSTot > vNF (valor) e dhEmi (data). Se ele apontar vProd em vez de vNF pro valor, corrija na próxima mensagem antes de seguir.
Agora peça o JSON. 5 campos, nada além. Use o botão Copiar pra colar o prompt no chat.
JSON esperado
{
"numero_nota": "12345",
"cnpj_fornecedor": "12.345.678/0001-90",
"nome_fornecedor": "Grafica Sergipe LTDA",
"valor_nota": 2000.00,
"data_emissao": "2025-06-10"
}
O que avaliar na resposta do Claude:
- O JSON tem exatamente 5 campos, com os nomes em snake_case do prompt.
numero_nota= "12345", o número da nota da Grafica Sergipe.valor_nota= 2000.00 (número, não string, sem R$, sem vírgula). É esse valor que vai bater contra a planilha.cnpj_fornecedorenome_fornecedoridentificam a Grafica Sergipe sem ambiguidade.- Nenhum campo extra, nenhum aninhamento. Plano e limpo.
Se os 5 itens bateram, seu JSON tá pronto pra próxima etapa.
Você sai desta atividade com
- O XML da nota da Grafica Sergipe dentro da pasta do projeto, pronto pra ser referência das próximas conferências.
- Um JSON limpo com 5 campos (numero_nota, cnpj_fornecedor, nome_fornecedor, valor_nota, data_emissao), com o
valor_notaem 2000.00. - A confirmação de que o
vNFdentro detotal>ICMSToté a fonte do valor que vai bater contra a planilha. Esse detalhe sustenta a AP04 inteira. - Um padrão de extração que vale pra qualquer NF-e, não só pra esta. Trocou o XML, roda os mesmos 2 prompts, sai o mesmo JSON limpo.
Você pegou um XML ilegível com centenas de campos e virou 1 JSON de 5 linhas em segundos. Sem código, sem regex, sem biblioteca de parser. Linguagem natural, 2 mensagens.
É esse JSON que o resto da ferramenta vai usar pra encontrar o erro de R$ 8.000 da Camila. Limpou aqui, simples depois. Você descreve o resultado, o Claude faz o trabalho.