Introdução
02. Onde você vai chegar
O entregável da AP02: pegar o XML de uma NF-e e virar um JSON limpo com os 5 campos que importam pra conciliação

Ficha técnica

TipoIntrodução + Demonstração + Atividade Prática
BlocoAI no Financeiro · Checkpoint 1 e Checkpoint 2 da aula
Duração14 minutos
FerramentaClaude Code ou Claude Cowork (modelo Sonnet 4.6)
Pré-requisitoPasta de projeto criada na AP01, com o XML da nota baixado
Entregável1 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.

Entregável da AP02
JSON limpo com os 5 campos da nota
1
numero_nota
"12345" · chave do cruzamento contra a planilha
2
cnpj_fornecedor
"12.345.678/0001-90" · identifica o emitente
3
nome_fornecedor
"Grafica Sergipe LTDA" · pra ler bonito no alerta
4
valor_nota
2000.00 · o número que bate contra o pagamento
De onde os campos saem no XML
📎 nNF → numero_nota 📎 emit>CNPJ → cnpj_fornecedor 📎 emit>xNome → nome_fornecedor 📎 total>ICMSTot>vNF → valor_nota 📎 dhEmi → data_emissao
Por que só 5 campos

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.

O campo que importa

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.

Demonstração
02. O que você vai ver
O fluxo de subir o XML, pedir explicação e extrair o JSON em 2 mensagens

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.

Por que separar em 2 passos

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.

Demonstração
03. O que observar
3 sinais que mostram que a extração saiu certa
  • O vNF é o valor que vai bater contra a planilha. No XML aparece dentro de total>ICMSTot>vNF e 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 do nNF, 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.
Atividade Prática
04. Sua atividade
Subir o XML da Grafica Sergipe, entender a estrutura e extrair o JSON dos 5 campos
Duração
14 min
3 passos sequenciais
Modelo recomendado
Sonnet 4.6
Tem no plano gratuito e no pago. 💎 Plano pago: Claude Opus 4.7 dá mais segurança na extração estruturada.

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).

O que muda da demo pra atividade

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.

Atividade Prática
05. Passo a passo
3 passos sequenciais. Sobe o XML, entende a estrutura e extrai o JSON
PASSO 01Suba o XML da nota

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.

PASSO 02Entenda a estrutura do XML

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.

Prompt pra entender o XML
Esse é o XML de uma nota fiscal eletrônica brasileira. Me explica de forma simples onde estão os campos que importam pra uma conciliação: número da nota, CNPJ do fornecedor, nome do fornecedor, valor total da nota e data de emissão.

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.

PASSO 03Extraia pra JSON

Agora peça o JSON. 5 campos, nada além. Use o botão Copiar pra colar o prompt no chat.

Prompt pra extrair o JSON
Extrai desse XML um JSON com esses campos: numero_nota, cnpj_fornecedor, nome_fornecedor, valor_nota, data_emissao. Só esses, nada além.

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_fornecedor e nome_fornecedor identificam 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.

Atividade Prática
06. O que você sai com
O JSON da nota 12345 pronto, validado, na pasta do projeto, pronto pra cruzar com a planilha

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_nota em 2000.00.
  • A confirmação de que o vNF dentro de total>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.
💎 O que acabou de acontecer

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.