Como emitir NFS-e automaticamente em vendas de SaaS brasileiro
Guia prático para devs e founders BR sobre Nota Fiscal de Serviço Eletrônica em cobranças recorrentes de SaaS. Asaas, certificado A1, prefeituras.
12 de maio de 2026 · Inael Rodrigues
Vender SaaS em assinatura mensal no Brasil parece simples até você bater nas obrigações fiscais. Aqui está o que aprendi rodando o SimplesMail em produção emitindo NFS-e automaticamente a cada cobrança paga.
O básico — o que é NFS-e e quando emitir
NFS-e (Nota Fiscal de Serviço Eletrônica) é o documento fiscal obrigatório pra toda venda de serviço — incluindo software como serviço (SaaS). É municipal: cada prefeitura tem seu próprio padrão XML e webservice de emissão.
Pra SaaS, a regra geral é simples:
Toda cobrança paga → uma NF emitida em até 5 dias úteis (varia por município)
Esquecer disso = sonegação. A Receita Federal cruza extrato bancário (E-Financeira) com sua DCTF/DEFIS e detecta receita não declarada.
Os 4 dados fiscais que você precisa
Antes de emitir a primeira NF, sua empresa precisa:
- Inscrição Municipal ativa (no município sede). Brasília-DF emite via Cadastro Fiscal do DF
- CNAE principal compatível com o serviço (no nosso caso, 6201-5/01 ou 6209-1/00 pra TI)
- Item da lista de serviços LC 116/03 correspondente. Pra desenvolvimento de software: 1.01. Pra suporte técnico: 1.07
- Certificado Digital A1 da empresa (PFX/P12) válido — usado pra assinar a NF
Manual vs Automático
Manual (planilha + emissão prefeitura)
- Cliente paga
- Você lança no controle interno
- Acessa portal da prefeitura
- Preenche CPF/CNPJ do tomador, valor, descrição, código municipal
- Assina com cert A1
- Baixa PDF + XML
- Envia pro cliente
Automático via gateway de cobrança
Asaas é o que mais usei. O fluxo vira:
- Cliente paga (cartão, Pix ou boleto)
- Asaas dispara webhook
PAYMENT_RECEIVEDpro seu backend - Seu código chama
POST /v3/invoicesno Asaas com{customer, value, description, serviceCode, deductions} - Asaas pega o cert A1 que você uploadeou e assina o XML
- Envia pra prefeitura
- Prefeitura responde em <60s com
AUTHORIZEDouERROR - Cliente recebe email automático com PDF + XML
- Webhook
INVOICE_AUTHORIZEDchega no seu backend pra você arquivar
Os 3 campos mais comuns onde a NF dá erro
Em produção, NFs falham frequentemente por:
- Endereço do tomador incompleto — CEP inválido, sem complemento ou bairro. Solução: ao cadastrar customer no gateway, exigir CEP válido + auto-fill via BrasilAPI quando CNPJ
- Inscrição Municipal do prestador inativa — empresa nova ou recém-migrada. Solução: validar IM no cadastro municipal antes do primeiro envio
- Optante Simples Nacional incorreto — empresa Lucro Presumido marcada como Simples na configuração do gateway, ou vice-versa. Solução: confirmar com contador o regime real (não confiar no que está no SaaS)
Retenções federais — quando você retém, quando não retém
Empresa Lucro Presumido (como a IT Booster) emitindo serviço de informática:
- PF tomador: sem retenção federal. ISS 2% (DF) recolhido por você
- PJ Simples Nacional tomador: sem retenção federal
- PJ Lucro Real/Presumido tomador acima de limite:
O gateway Asaas calcula automaticamente baseado no CPF/CNPJ do tomador. Você só configura uma vez no cadastro do serviço.
Cancelando NF errada
Possível em até 24h-7 dias dependendo da prefeitura. Em Brasília-DF: 24h pelo portal. Depois disso, só "Carta de Correção" ou cancelamento administrativo (com justificativa).
O que o SimplesMail faz por trás
No SimplesMail, o fluxo NF é totalmente invisível pro cliente:
- Cliente assina plano paid (Starter R$ 29, Pro R$ 99, etc) via dashboard
- Asaas cobra mensal (boleto, Pix ou cartão)
- Webhook
PAYMENT_RECEIVEDchega na API do SimplesMail - Backend dispara
emitirNotaFiscal()setenant.nfEnabled === true - NF emitida com:
- Cliente recebe NF por email automaticamente
Conclusão
Pra SaaS brasileiro, automação fiscal não é luxo — é sobrevivência operacional acima de 50 cobranças/mês. Asaas + certificado A1 + webhook handler resolve o pipeline completo em ~1 dia de implementação.
Se você quer ver isso funcionando sem precisar implementar, todo cliente do SimplesMail recebe NF brasileira automática em qualquer plano paid: simplesmail.itbooster.com.br.