Kobana

NFe emitida no momento certo, com retry automático em falhas.

Provider configurável (NFe.io ou Kobana). 4 políticas de emissão. Retry com até 5 tentativas em delays escalonados. Sandbox + produção isolados.

Sistema
Configurações NFe: provider, política, descrição padrão, retry
2
providers (NFe.io, Kobana)
4
políticas de emissão
5
tentativas de retry padrão
30min
intervalo do worker nfe-retry

Quando emitir a NFe

Disabled
Não emite NFe automaticamente. Operação 100% manual via API ou dashboard.
  • Emissão manual
  • Via API ou dashboard
On Finalization
Emite ao finalizar a fatura (transição draft → open). Independe do pagamento.
  • Emissão antes do pagamento
  • Cobranças B2B
  • NFe precede caixa
On Full Payment (recomendado)
Emite quando fatura entra em status paid. Webhook invoice.paid dispara emissão.
  • SaaS recorrente padrão
  • Acompanha caixa
  • Recomendado
Per Installment
Para carnês. Emite uma NFe por parcela conforme cada Installment é pago.
  • Uma NFe por parcela
  • Vendas parceladas
  • Mensalidades escolares

Providers suportados

NFe.io
Provider parceiro com cobertura nacional. Integração via API key (criptografada).
  • nfeioApiKey encrypt em AES-256-GCM
  • nfeioCompanies cache das companies
  • Suporte a milhares de municípios
Kobana próprio
Providers nativos para municípios específicos onde NFe.io não cobre.
  • nfseAdn e nfseBarueri em lib/nfe/
  • Sandbox via mock provider
  • Roadmap para mais municípios

Recursos do NfeConfig

Retry Configurável
maxIssueAttempts (5), retryDelaysMinutes ([0, 30, 60, 180, 360]). Worker nfe-retry reprocessa a cada 30 minutos.
  • Backoff escalonado
  • Cancelamento também tem retry independente
  • NfeRequestTry tracks cada tentativa com payload + response
Service Description Padrão
serviceDescription é prefixado/sufixado na descrição de cada item da NFe. Útil para frases obrigatórias por município.
  • Prefixo/sufixo configurável
  • Frases obrigatórias por município
Ambiente (NfeEnvironment)
SANDBOX para testes (não gera NFe real). PRODUCTION para emissão real.
  • SANDBOX | PRODUCTION
  • Sem NFe real em sandbox
Cancelamento via API
NFe emitida pode ser cancelada (status pending_cancel → canceling → canceled). Worker faz retry.
  • Estados pending_cancel → canceling → canceled
  • Worker faz retry
Histórico de Tentativas
NfeRequestTry com payload enviado, response recebida, statusCode, errorMessage. Útil para debug.
  • Payload + response
  • statusCode + errorMessage
  • Debug completo

Perguntas frequentes

NFe que não te dá dor de cabeça