Documentação para agentes e LLMs
A documentação da NFe.io é publicada em formato amigável para agentes de IA, pipelines de RAG (Retrieval-Augmented Generation) e modelos de contexto longo. Esta página descreve os recursos disponíveis para que sua ferramenta consuma o conteúdo de forma eficiente, mantendo as respostas atualizadas e fundamentadas em fontes oficiais.
Início rápido
Três caminhos, do mais simples ao mais completo:
- Página única em Markdown — anexe
/index.mda qualquer URL pra obter a versão Markdown puro daquela página. - Catálogo de uma área — leia o
llms.txtdo produto que interessa (ex.:/docs/integracoes/llms.txt) para um índice das páginas e use os links pra puxar cadaindex.md. - Documentação completa de uma área — leia o
llms-full.txtdaquele produto pra obter todas as páginas concatenadas em um único arquivo.
Markdown por página
Cada página de documentação possui um arquivo Markdown companheiro publicado no mesmo diretório, ao lado do index.html, seguindo a convenção do padrão append /index.md:
https://nfe.io/docs/documentacao/conceitos/introducao/ ← HTML
https://nfe.io/docs/documentacao/conceitos/introducao/index.md ← Markdown
No topo de cada página de documentação você encontra dois botões para a mesma URL:
- Ver como Markdown — abre o arquivo em uma nova aba (link HTML puro, funciona com JavaScript desabilitado).
- Copiar como Markdown — copia o conteúdo bruto para a área de transferência.
Negociação por header Accept: text/markdown
Requisite qualquer página com o header Accept: text/markdown e o servidor responde com a versão Markdown ao invés do HTML — sem precisar trocar a URL:
curl "https://nfe.io/docs/documentacao/conceitos/introducao/" \
--header "Accept: text/markdown"
Útil quando o agente já tem a URL canônica e quer evitar o index.md extra na string.
Conteúdo limpo
O arquivo .md é gerado a partir da fonte com as seguintes transformações:
- Componentes MDX (
<Tabs>,<TabItem>,<details>,<summary>, iframes do YouTube) convertidos para Markdown legível. - Imports MDX e componentes React personalizados removidos.
- Caminhos de imagem reescritos para URLs absolutas, permitindo renderização em qualquer cliente.
- Frontmatter YAML com metadados úteis (ver abaixo).
Frontmatter de cada arquivo Markdown
Cada index.md começa com um cabeçalho YAML mínimo com os campos:
---
title: "Título da página"
description: "Resumo curto extraído do front-matter da fonte."
source_url: https://nfe.io/docs/caminho-canonico/
product: documentacao
last_updated: 2026-04-22
tags: ["conceitos", "nfse", "emissao"]
redirect_from: ["/docs/url-antiga-desta-pagina"]
---
| Campo | Sempre presente | Descrição |
|---|---|---|
title | sim | Título exibido na página HTML. |
description | quase sempre | Resumo da página (mesmo usado em meta tags da versão HTML). |
source_url | sim | URL canônica da versão HTML — útil para o agente citar a fonte original. |
product | quase sempre | Produto a que a página pertence, com o mesmo identificador usado no llms.txt em que ela aparece. |
last_updated | quase sempre | Data em ISO 8601 (YYYY-MM-DD). Vem do last_update.date do front-matter da fonte ou do mtime do arquivo. |
tags | não | Assuntos da página, escritos pelo autor. Variantes de singular e plural são normalizadas na emissão. |
redirect_from | não | URLs por que esta página já respondeu. Permite reconhecer que o documento é o mesmo quando a URL muda, em vez de tratá-lo como novo. Cadeias de redirecionamento são resolvidas até a origem mais antiga. |
integration | não | Forma de integração a que a página se aplica (api, planilha, painel, gateway). |
status | não | Estado do documento, quando declarado — por exemplo deprecated. |
superseded_by | não | Documento que substitui este, quando houver. |
A ausência de um campo é um estado próprio, e não equivale a nenhum valor.
Uma página sem integration não deve ser tratada como sendo de API, e uma página
sem product não pertence a um produto padrão — ela simplesmente não tem esse
dado declarado.
Manifestos llms.txt
A documentação segue o padrão llmstxt.org, com um índice site-wide que aponta para os manifestos de cada produto.
Índice site-wide
| Endpoint | Descrição |
|---|---|
/docs/llms.txt | Índice dos produtos disponíveis, agrupados por categoria, com link para o llms.txt de cada um. |
/docs/llms-manifest.json | De qual estado do repositório esta coleção saiu: commit de origem, instante de geração e contagens. |
O llms-manifest.json responde "qual versão da documentação estou lendo". Um
consumidor que mantém uma cópia pode comparar o commit entre duas coletas para
saber se algo mudou, em vez de deduzir pela contagem de arquivos:
{
"generated_at": "2026-09-29T21:36:02.118Z",
"commit": "549c0b58c0f522536391cca3265ea8bd9daf9255",
"markdown_written": 446,
"markdown_skipped": 1201,
"product_manifests": 6,
"pages_with_redirect_from": 49,
"distinct_tags": 265
}
O conteúdo completo é publicado por produto, não em um arquivo único do site inteiro: um llms-full.txt de todo o portal passaria de 2,5 MB e gastaria o contexto do agente com áreas que ele não pediu.
Endpoints por produto
Cada produto publica seus próprios manifestos sob o prefixo da URL pública:
| Produto | Manifesto |
|---|---|
| Documentação da plataforma | /docs/documentacao/llms.txt |
| Integrações com plataformas | /docs/integracoes/llms.txt |
| SDKs e Bibliotecas | /docs/desenvolvedores/bibliotecas/llms.txt |
| Legislação tributária | /docs/legislacao/llms.txt |
| Release notes | /docs/release-notes/llms.txt |
| Dúvidas frequentes | /docs/duvidas-frequentes/llms.txt |
Cada um desses caminhos também tem um companheiro llms-full.txt com o conteúdo completo daquela área.
Especificações OpenAPI
As APIs REST da NFe.io são documentadas em arquivos OpenAPI (YAML ou JSON) publicados em /docs/api/. Use estes endpoints quando seu agente precisar gerar chamadas para a API sem consultar a documentação HTML manualmente:
| API | Arquivo |
|---|---|
| Nota Fiscal de Serviço (NFS-e) v1 | /docs/api/nf-servico-v1.yaml |
| Nota Fiscal de Produto (NF-e) v2 | /docs/api/nf-produto-v2.yaml |
| Nota Fiscal de Consumidor (NFC-e) v2 | /docs/api/nf-consumidor-v2.yaml |
| NFS-e RTC (Reforma Tributária) | /docs/api/service-invoice-rtc-v1.yaml |
| NF-e/NFC-e RTC (Reforma Tributária) | /docs/api/product-invoice-rtc-v1.yaml |
| Cálculo de Impostos v1 | /docs/api/calculo-impostos-v1.yaml |
| Cadastro de Produtos v1 | /docs/api/product-register-pt-br-v1.yaml |
| Contribuintes v2 | /docs/api/contribuintes-v2.json |
| Consulta de NF-e v2 | /docs/api/consulta-nf.yaml |
| Consulta de CNPJ v1 | /docs/api/consulta-cnpj.yaml |
| Consulta de CPF v1 | /docs/api/cpf-api.yaml |
| Consulta de Endereços v1 | /docs/api/consulta-endereco.yaml |
| Consulta de CT-e v2 | /docs/api/consulta-cte-v2.yaml |
| Consulta NF-e Distribuição v1 | /docs/api/consulta-nfe-distribuicao-v1.yaml |
| Consulta DFe Distribuição v2 | /docs/api/consulta-dfe-distribuicao-v2.yaml |
Áreas excluídas do fluxo Markdown
Duas áreas da documentação não participam do fluxo Markdown — só HTML — porque sua versão .md não agregaria valor real para um agente:
- APIs REST (
/docs/desenvolvedores/rest-api/...) — as páginas são geradas a partir das especificações OpenAPI e usam intensivamente componentes MDX (Tabs de exemplos, Schemas, Responses) que não traduzem bem para Markdown puro. Use diretamente os arquivos OpenAPI listados acima para consumir essas APIs de forma programática. - Prefeituras integradas (
/docs/prefeituras-integradas/...) — conteúdo sem informação técnica acionável para um agente.
Essas páginas continuam acessíveis em HTML normalmente e podem ser citadas como fonte, mas não aparecem nos manifestos llms.txt nem têm index.md gerado.
Boas práticas para agentes
- Use o
source_urldo frontmatter ao citar fontes — é a URL canônica e estável da página HTML. - Cheque o
last_updatedantes de confiar em conteúdo sobre legislação ou reforma tributária: a regulamentação muda com frequência. - Para fluxos longos, use o
llms-full.txtdo produto específico — economiza tokens e mantém o foco no que importa. - Para chamadas de API, prefira as especificações OpenAPI em
/docs/api/ao invés de raspar páginas HTML; assim você obtém schemas e exemplos estruturados.