Gerado do código a cada release · a referência completa fica na sua conta, em Integrações
API do GereNota
A API REST do GereNota emite, consulta, cancela e substitui a NFS-e do Sistema Nacional (o Emissor Nacional, do gov.br) a partir do seu sistema — o ERP, a loja, o SaaS ou os seus scripts —, com o certificado A1 da empresa guardado no GereNota. Sem certificado, basta uma autorização da empresa no gov.br: aí a API emite e substitui, e o cancelamento sem substituta fica com a empresa, no Emissor Nacional. A API entra no Plano Individual e nos planos acima; a chave é criada no painel, em Integrações.
O que dá para fazer
- Conta: quem sou eu: identidade, plano e cotas da chave em uso.
- Empresas: as empresas emissoras da conta: listar, cadastrar, enviar o certificado A1 e validar.
- Alíquotas: a alíquota do Simples (ME/EPP) de cada mês, a conferência com a declaração e as declarações.
- Notas: emitir (teste ou valendo), listar, consultar, XML, PDF (DANFSE) e envio por e-mail.
- Lotes: uma planilha (XLSX ou CSV) ou as linhas em JSON viram notas propostas; você confere e confirma, e a fila emite uma nota por vez.
- Eventos: cancelar, substituir e ler os eventos de uma nota.
- Tomadores: os clientes da conta e a sugestão pela última nota.
- Consultas: CNPJ e CPF na Receita, CEP e município, e a adesão do município ao Sistema Nacional.
- Serviços: o código de serviço (cTribNac): sugerir pela descrição e conferir no catálogo nacional.
- Relatórios: o relatório por período e a exportação em ZIP (XMLs, PDFs e CSV).
- Automações: as emissões recorrentes e agendadas: criar, editar, pausar, rodar agora e ver as execuções.
- Atividades: a trilha de quem fez o quê na conta.
Comece aqui: uma nota em cinco chamadas
Tudo fica sob https://api.gerenota.com.br/api/v1 e leva o cabeçalho Authorization: Bearer gnk_live_… (a chave é criada em Painel → Integrações). Guarde a chave numa variável de ambiente; os exemplos usam $GERENOTA_KEY.
- Quem sou eu.
GET /medevolve a conta, o papel efetivo da chave, o plano e o uso das cotas. Se vier 401, a chave está errada ou revogada; se vier 402RECURSO_FORA_DO_PLANO, o plano da conta não inclui a API — ela entra a partir do Plano Individual, que o dono da conta assina na página Cobrança do painel. - Escolha a empresa. O GereNota atende empresas do Simples Nacional e MEI (o cadastro de não optante volta 422
EMPRESA_FORA_DO_SIMPLES).GET /companieslista as empresas emissoras da conta; use oidde uma comstatus: "ativa"e o certificado válido ou a autorização do gov.br confirmada (GET /companies/{id}/statusdiz se ela pode emitir). Uma empresa pode ser cadastrada pela API (POST /companies), mas o certificado A1 ou a autorização do gov.br fica com o dono, no painel: até lá ela não emite. - Emita em teste.
POST /companies/{id}/nfsecom"ambiente": "teste"valida a nota inteira no Sistema Nacional sem efeito fiscal. É o jeito de conferir código de serviço, valores e tomador antes de valer. - Emita valendo. A mesma chamada sem
ambiente(ou com"producao"), com o cabeçalhoIdempotency-Key. A resposta traznumero(o número oficial),chave_acessoeid. - Pegue o documento.
GET /nfse/{id}/pdfé o DANFSE;GET /nfse/{id}/xmlé o XML autorizado;POST /nfse/{id}/enviar-emailmanda ao cliente.
curl -X POST "https://api.gerenota.com.br/api/v1/companies/$EMPRESA/nfse" \
-H "Authorization: Bearer $GERENOTA_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"dCompet": "2026-09-16",
"servico": { "cTribNac": "010501", "descricao": "Licença de uso de software — setembro/2026" },
"valores": { "vServ": "350.00" },
"tomador": { "tipo": "CNPJ", "documento": "11222333000180", "nome": "Cliente Exemplo Ltda", "email": "financeiro@cliente.com.br" }
}'
Série, regime tributário e a alíquota do Simples do mês saem do cadastro da empresa; você não os informa na chamada. Empresa do Simples (ME/EPP) ainda sem alíquota nenhuma — nem calculada pelo PGDAS-D, nem confirmada no painel — recebe 422 ALIQUOTA_NAO_CONFIRMADA: o dono autoriza a consulta ao PGDAS-D, ou alguém com acesso fiscal à empresa (dono, operador ou contabilidade) confirma a alíquota no painel — ou você manda valores.pTotTribSN (veja Regras de emissão). O tomador é opcional: sem ele a nota sai sem identificação do cliente, quando a legislação permite.
Autenticação e escopos
- Chave de API (
gnk_live_…): criada pelo dono da conta em Painel → Integrações, mostrada uma única vez; só o hash fica guardado. Mande em toda chamada:Authorization: Bearer gnk_live_…. - Escopo por chave:
emissaolê e escreve (emitir, cancelar, cadastrar);leiturasó lê. Escrever com chave de leitura dá 403. - Papel efetivo: é sempre o menor entre o escopo da chave e o papel de quem a criou, e uma chave nunca tem o papel de dono. Por isso ações de dono (enviar o certificado A1, validar a empresa, gerir acessos e cobrança) não existem nesta API: são feitas no painel. Pelo mesmo motivo, os erros de limite nunca trazem
upgradepara uma chave: o plano que resolve vem só nohint(veja Erros). - Plano: a API entra a partir do Plano Individual; o conector MCP vale em todos os planos, o Plano Free incluído. A chave de uma conta cujo plano deixou de incluir a API recebe 402
RECURSO_FORA_DO_PLANOem qualquer chamada, com o Plano Individual nohint. NoplanodoGET /me,api_mcpdiz se o plano inclui esta API, econector, se inclui o conector de IA. - Revogação: revogar a chave no painel vale na hora; a chamada seguinte recebe 401.
- Não use a chave em código-fonte, em URL nem em log. Uma chave por sistema integrado facilita revogar sem derrubar os outros.
- Assistentes conversacionais (Claude e compatíveis) não usam chave: conectam pelo MCP com login por código no e-mail (veja a última seção).
- Antes da primeira escrita:
GET /medevolveescopo(emissaoouleitura) erole; uma chave de leitura recebe 403 em emissão, cancelamento e substituição.
Teste × valendo
"ambiente": "teste"emPOST /companies/{id}/nfsevalida a nota inteira no Sistema Nacional (ambiente de produção restrita do gov.br) e devolve a mesma estrutura de resposta, sem efeito fiscal: não conta na cota, não aparece emGET /nfsenem nos totais, e o PDF sai com marca de rascunho. Notas de teste são apagadas em 24 horas.- Sem
ambiente(ou"producao"), a nota é emitida de verdade: numerada, assinada com o certificado da empresa (ou com o do GereNota, quando a empresa o autorizou no gov.br) e transmitida ao gov.br. - Prévia sem transmitir:
POST /companies/{id}/nfse/rascunho-pdfrecebe o mesmo corpo da emissão e devolve um PDF de rascunho gerado localmente, sem tocar o Sistema Nacional. Use para mostrar ao usuário antes de emitir. - Quase tudo o que o Sistema Nacional rejeita em teste ele rejeitaria valendo: um 422 com o código do gov.br (por exemplo
E0312, município não aderente para o serviço) na mensagem é o mesmo nos dois ambientes. A exceção é a regra nova que o ambiente de teste já exige e a produção ainda não: até a produção exigir, a recusa só pelaE0855(o grupo IBS/CBS) volta como 422TESTE_COM_RESSALVA_IBS_CBS, e a nota sai normalmente em produção.
Idempotência: nunca emita duas vezes
- Mande o cabeçalho
Idempotency-Keycom um valor único por intenção de emissão (um UUID serve) emPOST /companies/{id}/nfsee emPOST /nfse/{id}/substituir. - No cancelamento (
POST /nfse/{id}/cancelar) a chave vale o mesmo: repetir com ela devolve o mesmo cancelamento (200,X-Idempotent-Replay: true) em vez do 409NFSE_NAO_ATIVAda nota já cancelada, e a chamada simultânea recebe 409CANCELAMENTO_EM_ANDAMENTO. Ali a chave é da nota: a mesma chave usada numa emissão não se confunde com ela. - Repetir a chamada com a mesma chave devolve a mesma nota (resposta idêntica, cabeçalho
X-Idempotent-Replay: true) por 24 horas. É seguro repetir depois de timeout, queda de rede ou 5xx. - Uma chamada simultânea com a mesma chave, enquanto a primeira ainda não terminou, recebe 409
EMISSAO_EM_ANDAMENTO. Espere a primeira responder e repita, se precisar. - Se a emissão falhou (por exemplo, 422 de validação), a chave é liberada: a próxima chamada com ela tenta de novo.
- Se o Sistema Nacional não responder a tempo, a emissão confere a nota pelo número da DPS antes de responder: se ela saiu, a resposta é a nota. Sem como confirmar, vem 503
EMISSAO_INCERTAe a chave não é liberada: repita com a mesma chave em alguns minutos — a repetição confere primeiro se a nota saiu e, se não saiu, emite com o mesmo número. Uma chave nova poderia emitir uma segunda nota. - A chave é por conta: duas contas podem usar o mesmo valor sem se cruzar. Quem tem acesso a só algumas empresas (o membro com recorte, ou quem opera uma empresa compartilhada por outra conta) tem as chaves dele: elas nunca se cruzam com as do dono da conta nem com as de outra pessoa.
- Sem o cabeçalho, cada chamada emite uma nota nova. Em integrações automáticas isso é um erro caro: use sempre.
Erros
Todo erro volta com este envelope, em qualquer status 4xx ou 5xx:
{ "code": "EMPRESA_NAO_ENCONTRADA", "message": "Empresa não encontrada", "hint": "…", "field": "…" }
codeé estável: programe por ele.messageé para mostrar a uma pessoa.hintdiz como resolver quando há o que fazer.fieldaponta o campo do corpo, quando houver.- A recusa do gov.br vem como 422, com o código oficial (
E0312,E0625, …) nocodee a explicação namessage. Corrija o corpo e repita: aIdempotency-Keyé liberada na falha. - Os códigos de cada rota, os dos limites e os campos que só alguns erros trazem estão na referência completa.
Limites
- Os pedidos têm teto por minuto; acima dele, 429
RATE_LIMIT: repita depois de alguns segundos. - As cotas do mês e do dia seguem o plano (os planos estão em gerenota.com.br/#planos); o
GET /memostra o uso de cada uma. - As listagens aceitam
skipelimite devolvem o total do filtro.
A referência completa
Fica na sua conta, nos planos com a API: em Integrações → API para o seu sistema, cada rota com o exemplo de chamada, e o botão Copiar guia para a sua IA, com o guia inteiro em Markdown — os campos, as respostas, os erros e o registro de mudanças. Com a chave, GET /api/v1/guia devolve o mesmo guia: aponte a sua IA para ele.
Para assistentes conversacionais: o MCP
Se a integração é uma conversa (Claude, ou qualquer cliente compatível com MCP) e não um sistema, não use chave de API: conecte o assistente ao GereNota pelo conector remoto em https://api.gerenota.com.br/mcp. O login é por código enviado ao e-mail da conta, e o assistente ganha as ferramentas do produto (emitir com prévia e confirmação explícita, listar, cancelar, exportar, automações), com o papel da pessoa respeitado. O guia das ferramentas está dentro do próprio conector (nfse_help). Para a contabilidade, o conector tem o mesmo que a API: nfse_alteracoes (o que mudou de situação, com desde como cursor), nfse_evento_xml (o XML do evento, a prova), nfse_listar com periodo_por=evento e nfse_exportar (o ZIP). Para as alíquotas do Simples, nfse_aliquotas devolve o mesmo dossiê da API (a alíquota do mês com a conta, a próxima, a conferência e as declarações). A API REST deste documento é para sistemas que programam a integração.
Mudanças recentes
- 04/11/2026 — A empresa sem certificado, pela autorização do gov.br
- 27/10/2026 — A cidade com o convênio ainda não ativo e o certificado recusado
- 26/10/2026 — A lista da prefeitura pelo certificado da própria empresa
- 25/10/2026 — O código municipal sozinho quando dá, e a ficha da cidade
- 25/10/2026 — Obras e eventos, o subcódigo da prefeitura e a não incidência
- 22/10/2026 — O guia completo na conta e os códigos novos das consultas
- 20/10/2026 — As notas do mês × o PGDAS-D, as versões das declarações e a regra de cada alíquota
- 19/10/2026 — O conector de IA em todos os planos
- 15/10/2026 — O código de serviço que não existe
- 15/10/2026 — O que o grupo IBS/CBS pede, antes de emitir, e o endereço só com o CEP
- 15/10/2026 — A calculadora do governo fora do ar
- 14/10/2026 — O grupo IBS/CBS na recusa da produção
- 14/10/2026 — O Validar com ressalva
- 13/10/2026 — O que falta na empresa pendente
- 13/10/2026 — A recusa do convênio na automação e no lote
- 13/10/2026 — O lote com mais de 7 dias
- 12/10/2026 — A lista de espera da ME/EPP termina em 01/11/2026
- 12/10/2026 — O e-mail do cliente informado depois da emissão
- 12/10/2026 — O lote confere o “já tem nota” de novo na confirmação
- 08/10/2026 — O cadastro mensal da Receita
- 06/10/2026 — MEI, obras e eventos conforme o Anexo I
- 01/10/2026 — O plano que resolve e quando o limite volta
- 28/09/2026 — Só Simples Nacional e MEI
- 28/09/2026 — CNPJ com letras
- 28/09/2026 — Tetos das consultas e dos envios
- 28/09/2026 — O download de exportação voltou a funcionar
- 27/09/2026 — Notas com problema e notas emitidas fora do GereNota
- 27/09/2026 — Quem tem recorte vê os clientes das empresas dele
- 26/09/2026 — O cancelamento aceita
Idempotency-Key - 26/09/2026 — O ISS de outro mês não vai mais à nota
- 25/09/2026 — O ISS do mês fora do histórico
- 25/09/2026 — Retenção do ISS no Simples
- 24/09/2026 — Avisos
- 22/09/2026 — Alíquotas do Simples
- 16 a 18/09/2026 — Contabilidade
- 16/09/2026 — Primeira versão documentada da superfície pública (38 operações)