Skip to main content
Webhooks
Webhooks

Tipo do evento no payload

  • Todo payload de webhook ganha o campo evento, com o tipo do evento, como nfe_autorizada ou nfe_cancelamento_rejeitado. Veja Campos comuns.
  • Antes, o consumidor só tinha a situacao. Ela não separa todos os eventos: nfe_autorizada e nfe_cancelamento_rejeitado chegam com "situacao": "autorizada".
  • O POST de teste do botão Validar já usava a mesma chave, com "evento": "webhook_teste".
Se a sua integração recusa campos desconhecidos no payload, ajuste-a para aceitar evento.
NF-eNFS-e
API NF-e e API NFS-e

Erro de tamanho em logradouro e bairro

  • O schema de POST /notas passa a declarar o limite de 2 a 60 caracteres para logradouro e bairro. Na NF-e, os campos ficam em destinatario.endereco. Na NFS-e, em tomador.endereco.
  • Um valor fora do limite retorna 422 com "error": "invalid_params" e o campo em params. Antes, o 422 trazia a mensagem do cadastro, como Logradouro é muito curto (mínimo: 2 caracteres). Veja Erros.
  • O limite em si não mudou. Ele vale desde julho de 2026.
Se a sua integração lê o texto de error nesse caso, ajuste-a para o formato invalid_params.
NF-e
API NF-e

Intermediador na NF-e

  • POST /notas aceita o campo opcional intermediador, com cnpj e identificador_cadastro. Use o campo quando a venda passa por um intermediador, como um marketplace. Veja a seção Venda em marketplace.
  • Com intermediador, o indicador_presenca é obrigatório.
  • As respostas de POST /notas, GET /notas e GET /notas/{id} passam a trazer intermediador. Uma nota sem intermediador retorna "intermediador": null.
  • Sem intermediador, o XML enviado à SEFAZ não muda.
Se a sua integração recusa campos desconhecidos no JSON de resposta, ajuste-a para aceitar intermediador.
NF-e
API NF-e

Grupo de pagamento na NF-e

  • POST /notas aceita os campos pagamentos e troco. Os dois são opcionais. Veja o guia de pagamentos.
  • As respostas de POST /notas, GET /notas e GET /notas/{id} passam a trazer pagamentos e troco. Uma nota sem pagamento retorna "pagamentos": [] e "troco": "0.0".
  • Sem pagamentos, a nota continua saindo como sem pagamento (tPag=90). O XML enviado à SEFAZ não muda.
Se a sua integração recusa campos desconhecidos no JSON de resposta, ajuste-a para aceitar pagamentos e troco.
NF-eNFS-e
API NF-e e API NFS-e

Código externo por ambiente e limite de endereço

  • O codigo_externo passa a ser único por empresa e por ambiente. Um código usado em produção pode ser usado também em sandbox. Veja Sandbox.
  • logradouro e bairro do endereço do destinatário ou do tomador passam a aceitar de 2 a 60 caracteres. É o limite do layout da NF-e. Um valor fora do limite retorna 422.
Webhooks
Webhooks

Webhooks por conta

  • O endpoint de webhook passa a ser da conta, um por ambiente. Ele recebe os eventos de todas as empresas da conta.
  • Os payloads ganham o campo empresa_cnpj, com o CNPJ da empresa emitente só com dígitos. Use esse campo para separar os eventos por empresa.
  • Os endpoints que já existiam mantêm a mesma chave_seguranca. A verificação da assinatura não muda.
  • Só um administrador da conta configura o webhook.
  • Uma entrega que falha com 5xx, timeout ou erro de rede ganha novas tentativas automáticas. Veja Novas tentativas.
Se a sua integração recusa campos desconhecidos no payload, ajuste-a para aceitar empresa_cnpj.