Billing é a fonte da verdade
Se a nota nasce de planilha mensal, você já perdeu. O disparo certo é invoice.paid (Stripe), pagamento confirmado (Asaas) ou evento interno equivalente.
Eu não quero que o SaaS compre um ERP Omie “só para nota”. Quero um POST estável, retry seguro e status de volta.
Arquitetura que eu desenho com os times
Billing confirma pagamento
Stripe, Asaas ou gateway interno — um evento idempotente.
Backend chama Emitfy
POST /nfse com Idempotency-Key / externalId ligados ao invoice.
Webhook fiscal atualiza a fatura
Quando autorizar (ou rejeitar), seu sistema reflete o status.
Arquivo para cliente e contador
Persistir IDs/links de XML/PDF — não depender de e-mail solto.
Armadilhas clássicas de SaaS
- Emitir duas vezes no retry do webhook de billing
- Tomador sem CPF/CNPJ no cadastro do trial
- Município do emitente diferente do que o time achava
- Usar Asaas pay-per-note em volume alto sem olhar franquia Emitfy
- Esconder a nota só na API — financeiro precisa de tela
Encaixes comuns
Stripe + Emitfy
invoice.paid → worker → Emitfy. Página /integracoes/stripe e /saas.
Asaas cobrança + Emitfy nota
Pode combinar: cobrança no Asaas, NFS-e na Emitfy. Veja /comparativos/emitfy-vs-asaas.
Multi-tenant
Um companyId Emitfy por cliente/CNPJ conforme o modelo — valide multiempresa no plano.
Perguntas frequentes
Emitfy serve para SaaS?
Sim — foi um dos casos de uso centrais. /saas e api.emitfy.com.
Preciso de MCP num SaaS?
Não é obrigatório. Ajuda se você usa agentes internos para suporte/ops fiscal. A API REST continua sendo o caminho canônico do billing.
Qual plano para produção?
Emerald em diante se a API for o centro. Franquia conforme volume — /planos.
E cancelamento / credit note?
Modele no billing e no fiscal com o contador. A API cobre os fluxos documentados de cancelamento conforme o tipo de nota e a regra municipal.
Ligue o invoice.paid na Emitfy
Gere as keys, emita a primeira NFS-e de teste e só então tire o estagiário da planilha.
Criar conta SaaS