Recebeu um XML e não consegue ler?
Este conversor transforma qualquer arquivo XML em JSON legível e estruturado, direto no navegador — grátis e sem cadastro. Serve para abrir aquele XML que chegou por e-mail (o da nota fiscal eletrônica é o caso clássico no Brasil) e transformá-lo em dados que sistemas modernos e planilhas entendem.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Recebeu um XML e não sabe o que fazer com ele?
No Brasil, XML chega o tempo todo: a NF-e do fornecedor, o retorno de um sistema antigo, a exportação de um software de gestão. Clicar em cima abre uma parede de tags que ninguém consegue ler. Convertendo em JSON, a mesma informação vira uma estrutura limpa de campos e valores — que um dev usa direto no código e que qualquer ferramenta moderna de dados importa sem sofrimento.
Como a conversão trata atributos, listas e tags repetidas
XML tem sutilezas que quebram conversores ingênuos: atributos dentro das tags, elementos que se repetem (os itens de uma nota, por exemplo) e níveis fundos de aninhamento. Aqui os atributos viram campos identificados, tags repetidas viram listas e a hierarquia do documento é preservada no JSON. O resultado aparece na tela antes de baixar, então você confere se a estrutura ficou como esperava.
Grátis, sem cadastro e sem os seus arquivos saírem da página
A conversão roda inteira no seu navegador: o XML não é enviado para nenhum servidor. Isso importa, e muito, quando o arquivo é uma nota fiscal com CNPJ, endereço e valores do seu negócio. Não tem limite de uso nem marca d'água. Para converter em escala — todos os XMLs que caem numa pasta, por exemplo —, a mesma capacidade funciona via API por US$ 0,002 por chamada, com arquivos de até 25 MB.
Do JSON para onde você quiser
Convertido o XML, o caminho fica livre: o JSON pode virar planilha, alimentar um painel ou entrar direto no banco de dados do seu sistema. Um fluxo comum de contabilidade: converter os XMLs das notas fiscais do mês em JSON e, dali, montar a planilha de conferência que o contador pede no fechamento — sem digitar item por item e sem depender de software instalado na máquina de uma pessoa só.
Casos de uso
Ler o XML da nota fiscal sem sistema do contador
A Padaria Pão Dourado Ltda. recebe a NF-e do distribuidor por e-mail. Convertendo o XML em JSON no navegador, o dono enxerga itens, quantidades e valores na hora — sem instalar nada e sem o arquivo sair do computador.
Aposentar um sistema antigo que só fala XML
O ERP antigo exporta tudo em XML; o sistema novo só importa JSON. A equipe converte os arquivos da migração e valida a estrutura antes de subir os dados — sem escrever um conversor do zero.
Organizar as notas do mês para a contabilidade
Juliana Nascimento junta os XMLs de NF-e que a loja recebeu no mês, converte um a um em JSON e monta a planilha de entrada de mercadorias que o contador confere no fechamento.
Perguntas frequentes
Serve para o XML de nota fiscal (NF-e)?
Serve: o XML da NF-e é um XML como outro qualquer, e a conversão preserva itens, impostos e dados do emitente em estrutura JSON. Só lembre que esta ferramenta converte o formato — ela não valida a nota junto à Receita.
É seguro colar um XML com dados da minha empresa?
Sim: o processamento acontece no seu navegador e o arquivo não é enviado a servidor nenhum. CNPJ, valores e endereços ficam na sua máquina — um cuidado que conta na sua conformidade com a LGPD.
É grátis mesmo?
Na página, sim: sem limite, sem cadastro, sem marca d'água. O que tem preço é a API, para quem quer converter automaticamente: US$ 0,002 por chamada.
Como ficam os atributos das tags no JSON?
Eles não se perdem: viram campos identificados dentro do objeto correspondente, separados do conteúdo da tag.
Tem limite de tamanho?
25 MB por arquivo — um XML de nota fiscal tem alguns KB, então dá para converter arquivos milhares de vezes maiores que isso.
Funciona no celular?
Funciona no navegador do celular: dá para converter o XML que chegou anexado no e-mail sem esperar chegar no computador.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/data/xml-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/xml-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/xml-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/xml-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/xml-to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"input": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.xml_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 25 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |