llms.txt (índice)
Índice curado de toda a documentação v3, em Markdown, no padrão llmstxt.org. Aponte seu agente para ele.
https://faznota.com.br/api/llms.txt
Vai gerar a integração com a ajuda de um assistente de IA (Claude, ChatGPT, Copilot, Cursor…)? Esta página reúne o material pronto para o modelo entender a API v3 e produzir código correto de primeira.
llms.txt (índice)
Índice curado de toda a documentação v3, em Markdown, no padrão llmstxt.org. Aponte seu agente para ele.
https://faznota.com.br/api/llms.txt
llms-full.txt (contexto completo)
Toda a documentação v3 concatenada em um único Markdown. Cole no seu assistente para dar contexto total de uma vez.
https://faznota.com.br/api/llms-full.txt
llms-full.txt (ou o conteúdo dele) no seu assistente e peça: “Com base nesta documentação, gere a integração de emissão de NFe em <sua linguagem>.”Você vai integrar com a API de Nota Fiscal do FazNota (v3). Regras essenciais:
BASE E AUTENTICAÇÃO- Base URL: https://api.mysebr.com.br/nfemyse-v3/rest- Auth: header em TODAS as requisições -> Authorization: Token <TOKEN_DA_EMPRESA>- O TOKEN é a chave de integração da empresa (não expor no frontend; chamar do backend).
MODELO ASSÍNCRONO (emissão -> recibo -> polling)1) POST /nfe/emissao (ou /nfce/emissao, /nfse/emissao) devolve um "recibo".2) Consultar o resultado por polling em GET /nfe/nota/{recibo} (NFCe: /nfce/cupom/{recibo}).3) Intervalo mínimo 2s entre consultas, com backoff exponencial (2s,3s,4.5s,...ate 30s). Parar em estado terminal. Timeout total ~5 min.
ENVELOPE DE RESPOSTA (sempre HTTP 200 nos endpoints de negócio){ "status": "<codigo>", "descricao": "<texto>", "data": { ... }, "meta": { "request_id": "...", "timestamp": "..." } }- Guarde meta.request_id (e o header X-Request-Id) nos seus logs — agiliza o suporte.- Headers X-RateLimit-Limit/Remaining/Reset indicam o consumo permitido.
STATUS DE EMISSÃO (campo status; decida pelo data.sefaz.codigo quando houver)- 001 registrada (recibo gerado) | 002/003 em processamento | 004 autorizada- 010 cancelada | 050 duplicidade (mesmo numero-origem -> retorna o recibo original)- 006 processado sem resultado | 007 falha no processamento assíncrono (ambos finais)- 400 parâmetro inválido (erro do chamador — repetir a requisição não resolve)- 900 rejeição da SEFAZ (corrigir e reemitir). IMPORTANTE: se vier 900 com data.sefaz.codigo 217 ou 105, NÃO é rejeição — a SEFAZ ainda está processando; continue consultando o mesmo recibo e NÃO reemita (duplica documento fiscal).
IDEMPOTÊNCIA- Envie sempre "numero-origem" (seu id único da venda). Reenvio com o mesmo valor NÃO gera outra nota — retorna o recibo da emissão original.
PAYLOAD DE EMISSÃO DE NFe (POST /nfe/emissao) — campos principais{ "serie": "1", // obrigatório "cfop": "5102", // obrigatório na prática "numero-origem": "PED-2026-0001", // recomendado (idempotência) "tipo": "S", // S saída (default) | E entrada "finalidade": "N", // N normal | C complementar | A ajuste | D devolução "cliente": "12345678000199", // CPF/CNPJ de cliente cadastrado OU objeto com dados "itens": [ // obrigatório, >=1 { "produto": "SKU-001", "quantidade": "2", "valor-unitario": "89.90" } // "produto" pode ser objeto com referencia + configuracoes-fiscais (ipi, pis-cofins, // cbs-ibs (IBS/CBS reforma tributária), icms.estados[].aliquotas...) ], "transporte": { "modalidade": "9" }, // 9 = sem frete (default) "faturas": [ { "valor": "179.80", "data": "2026-08-15" } ] // opcional}Cliente inline exige endereço completo (no mínimo cidade e estado/UF).
ENDPOINTS PRINCIPAIS- NFe: POST /nfe/emissao | GET /nfe/nota/{recibo}[/completa] | PUT /nfe/{id} | POST /nfe/cancelamento | POST /nfe/correcao | GET /nfe (lista, ?page&page_size)- NFCe: POST /nfce/emissao | GET /nfce/cupom/{recibo}[/completa] | POST /nfce/cancelamento- NFSe: POST /nfse/emissao | GET /nfse/nota/{recibo} | POST /nfse/cancelamento- nffornecedor: POST /nffornecedor/reconhecimento | GET /nffornecedor/{recibo}- clientes: GET/POST /clientes | GET/PUT/DELETE /clientes/{doc} | GET /clientes/busca/{nome}- produtos: GET/POST /produtos | GET/PUT/DELETE /produtos/{ref}- resumo: GET /resumo?data-inicial=AAAA-MM-DD&data-final=AAAA-MM-DD (máx 92 dias) totais/dia de NFe e NFCe emitidas/canceladas/denegadas + falhas. ATENÇÃO: canceladas é SUBCONJUNTO de emitidas — não some os dois.- xml em lote (assíncrono): POST /xml/solicitacao {tipo:NFe|NFCe, data-inicial, data-final, email?} -> data.protocolo; depois GET /xml/solicitacao/{protocolo} -> 002 processando | 005 disponivel (data.url-download, expira em 7 dias) | 006 sem-notas (final) | 007 falha (final). A url-download só aceita GET.
ERROS- Erro de negócio vem em data.erro (texto claro e acionável). HTTP != 200 só em auth (401/403), rate limit (429) e URL inválida.
EXEMPLO cURL (emissão)curl -X POST https://api.mysebr.com.br/nfemyse-v3/rest/nfe/emissao \ -H "Authorization: Token SEU_TOKEN" -H "Content-Type: application/json" \ -d '{ "serie":"1","cfop":"5102","numero-origem":"PED-1","cliente":"12345678000199", "itens":[{"produto":"SKU-001","quantidade":"1","valor-unitario":"10.00"}] }'