Se você pesquisar hoje no Google "como automatizar emissão de nota fiscal MEI no Stripe, Asaas, Kiwify, Hotmart ou WooCommerce sem certificado digital", quase todos os artigos que aparecem na primeira página dirão que isso é impossível — e que a sua única saída sem comprar um Certificado Digital A1 (.pfx) é exportar planilhas de vendas toda sexta-feira e digitar nota por nota manualmente no Portal Nacional da NFS-e (nfse.gov.br).
Até outubro de 2026, essa limitação era verdadeira: a API governamental da Sefin Nacional exigia estritamente que o certificado digital da conexão mTLS pertencesse ao próprio CNPJ do MEI.
Mas em 1º de novembro de 2026, a Receita Federal e a Sefin Nacional viraram essa chave ao liberar oficialmente a emissão de NFS-e Nacional via API por Procuração Eletrônica (Serviço Cód. 00233).
Neste guia prático, vou te mostrar como combinar a Procuração Eletrônica gratuita no gov.br com um listener de Webhook em Node.js / Next.js conectado à Notaas para emitir NFS-e automaticamente a cada venda aprovada no Stripe, Asaas, Kiwify, Hotmart ou WooCommerce — sem comprar arquivo .pfx e sem digitar uma única nota na mão.
Pela Resolução CGSN nº 169/2022, 100% dos MEIs do Brasil emitem obrigatoriamente pelo motor do Ambiente Nacional (
snnfse). Isso significa que qualquer MEI de qualquer cidade brasileira pode automatizar suas notas via API usando a Procuração Eletrônica00233.
1. Como Funciona a Arquitetura "Zero .pfx" para Automações de Vendas
Em vez de comprar um e-CNPJ A1 para o seu MEI (ou cobrar o .pfx de cada infoprodutor/prestador na sua plataforma), o fluxo completo leva menos de 3 minutos para ser configurado:
⚡ Fluxo de Emissão Automática Pós-Pagamento (Webhook ➔ Notaas ➔ Sefin Nacional):
- 1. Autorização Gratuita no
gov.br(1 única vez): O titular do MEI acessaservicos.receitafederal.gov.brcom sua contagov.br(Prata ou Ouro), entra em Procurações → Minhas Autorizações de Acesso → + Nova Autorização e autoriza o CNPJ institucional da Notaas / We Digi Tecnologia Ltda (03.167.121/0001-10) (ou o CNPJ da sua contabilidade/plataforma) no serviço00233 - NFS-e.- 2. Ativação do Modo Procuração na Notaas: No painel da Notaas em
/certificates(ou viaPOST /api/v1/org/certificatecom{"useWedigiProxy": true}a partir do Plano Dev), você ativa a assinatura institucional para o seu projeto.- 3. Gatilho de Pagamento Confirmado: Quando o cliente paga no Stripe (
invoice.paid/checkout.session.completed), Asaas (PAYMENT_CONFIRMED/PAYMENT_RECEIVED), Kiwify (order_approved), Hotmart (PURCHASE_COMPLETE) ou WooCommerce (order.completed), seu endpoint recebe o webhook da plataforma de pagamento.- 4. Disparo Idempotente na Notaas (
POST /api/v1/emitir): Seu webhook envia um JSON simples passando o ID da transação comoexternalId(garantindo que nunca seja emitida nota duplicada mesmo que o gateway reenvie o evento). A Notaas assina a DPS com o certificado de procurador, autoriza na Sefin Nacional e gera o PDF do DANFSe v2.0 localmente.
2. Código Prático em TypeScript (Next.js App Router): Receptor de Webhooks (Stripe, Asaas, Kiwify / Hotmart)
Veja como implementar uma rota unificada (app/api/webhooks/pagamento/route.ts) que recebe a confirmação de pagamento, extrai os dados do comprador e dispara a emissão da NFS-e na Notaas com idempotência nativa (externalId):
import { NextResponse } from "next/server";
const NOTAAS_API_KEY = process.env.NOTAAS_API_KEY!; // ntaas_live_...
const NOTAAS_URL = "https://platform.notaas.com.br/api/v1/emitir";
interface DadosVendaNormalizados {
transacaoId: string;
documentoCliente: string; // CPF (11 dígitos) ou CNPJ (14 dígitos)
nomeCliente: string;
emailCliente?: string;
cep?: string;
logradouro?: string;
numero?: string;
bairro?: string;
codigoMunicipio?: string;
uf?: string;
valorPago: number;
descricaoServico: string;
}
export async function emitirNfseAutomaticaMei(venda: DadosVendaNormalizados) {
const docLimpo = venda.documentoCliente.replace(/\D/g, "");
const isCnpj = docLimpo.length === 14;
const payload = {
externalId: `venda-${venda.transacaoId}`, // Blinda contra duplicidade em retries do gateway
tomador: {
...(isCnpj ? { cnpj: docLimpo } : { cpf: docLimpo }),
razaoSocial: venda.nomeCliente,
email: venda.emailCliente,
...(venda.cep && venda.codigoMunicipio
? {
endereco: {
cep: venda.cep.replace(/\D/g, ""),
logradouro: venda.logradouro || "Nao informado",
numero: venda.numero || "S/N",
bairro: venda.bairro || "Centro",
codigoMunicipio: venda.codigoMunicipio,
uf: venda.uf || "SP",
},
}
: {}),
},
servico: {
// Exemplo: 010701 (Suporte técnico/SaaS) ou 080201 (Instrução, treinamento e cursos)
codigoTributacaoNacional: "080201",
discriminacao: `${venda.descricaoServico} | Pedido #${venda.transacaoId}`,
valorServicos: venda.valorPago,
},
};
const response = await fetch(NOTAAS_URL, {
method: "POST",
headers: {
"x-api-key": NOTAAS_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
if (!response.ok) {
const errorText = await response.text();
throw new Error(`Erro ao enfileirar NFS-e na Notaas: ${errorText}`);
}
return await response.json();
}
Mapeando os Eventos de Cada Plataforma de Pagamento
Ao conectar seu checkout, fique atento ao evento exato em que você deve disparar a nota (especialmente em infoprodutos com prazo de garantia de 7 dias):
| Plataforma / Gateway | Evento de Webhook Recomendado | Campo para externalId |
Dica de Operação Fiscal (MEI e Simples) |
|---|---|---|---|
| Asaas | PAYMENT_CONFIRMED ou PAYMENT_RECEIVED |
payment.id (pay_...) |
Excelente para cobranças PIX/Boleto recorrentes; o payload já traz o cpfCnpj do cliente validado. |
| Stripe | invoice.paid ou checkout.session.completed |
data.object.id (in_... / cs_...) |
Ative tax_id_collection: { enabled: true } ou um custom_field de CPF/CNPJ no Stripe Checkout para capturar o documento do tomador brasileiro. |
| Kiwify / Hotmart | order_approved / PURCHASE_OUT_OF_SHOPPING_CART (ou pós-garantia) |
order_id / transaction |
Se você oferece garantia incondicional de 7 dias, pode agendar o disparo para D+7 na sua fila ou emitir na aprovação e cancelar via POST /api/v1/invoices/{id}/cancel caso ocorra reembolso dentro do prazo. |
| WooCommerce | order.completed (ou order.processing) |
id do pedido (wc_order_...) |
Utilize o plugin Brazilian Market on WooCommerce para ter os meta fields _billing_cpf e _billing_cnpj estruturados no JSON do webhook. |
3. Como Receber o PDF do DANFSe v2.0 e Enviar ao Cliente por E-mail ou WhatsApp
Assim que a Sefin Nacional autoriza a DPS (geralmente em menos de 2 segundos), a Notaas gera localmente o PDF oficial do DANFSe v2.0 no layout da NT-008 e dispara um webhook assinado com X-Notaas-Signature (HMAC SHA-256) para o seu backend com o evento invoice.issued:
{
"event": "invoice.issued",
"data": {
"id": "inv_987654321",
"externalId": "venda-pay_01928374",
"status": "issued",
"numero": "42",
"chaveAcesso": "355030822...",
"xmlUrl": "https://platform.notaas.com.br/api/v1/invoices/inv_987654321/xml",
"pdfUrl": "https://platform.notaas.com.br/api/v1/invoices/inv_987654321/pdf"
}
}
Com o pdfUrl em mãos, seu sistema pode anexar a nota fiscal automaticamente no e-mail de boas-vindas do aluno/cliente ou enviá-la direto no WhatsApp! E se você usa ferramentas de desenvolvimento assistido por IA como Cursor, Lovable ou Claude Code, pode usar nosso guia de Vibe Coding Fiscal ou o Notaas MCP Server (@notaas/mcp) para gerar toda essa integração em minutos.
📚 Guias Relacionados para Aprofundamento:
- 🏛️ Como Emitir NFS-e Nacional por Procuração Eletrônica da Receita Federal (Cód. 00233): Entenda os modos
wedigi_proxy(Zero.pfx) eorg_proxy(1 certificado para múltiplos CNPJs). - 📘 Como Emitir NFS-e no Portal Nacional (gov.br): Passo a Passo Gratuito para MEI: Guia completo para quem está começando no manual e quer entender o enquadramento do MEI.
- ⚡ Arquitetura de Filas, Webhooks e Idempotência em Alta Escala: Como validar a assinatura HMAC SHA-256 dos webhooks da Notaas.
- 🛡️ Erro E0718 e Rejeições de Certificado na NFS-e Nacional: Como evitar erros ao cadastrar a procuração eletrônica no portal da Receita Federal.
🚀 Automatize as Notas Fiscais das Suas Vendas Hoje
Pare de perder horas preenchendo notas fiscais manualmente após cada venda:
- Procuração Eletrônica RFB (
00233) inclusa nos planos Dev (R$ 99/mês para até 3 CNPJs) e SaaS Pro (R$ 249/mês para CNPJs ilimitados) - Ou comece no Plano Gratuito (R$ 0/mês com 20 notas grátis/mês em produção) caso já possua Certificado A1 próprio
👉 Criar Conta na Notaas Platform e Automatizar Agora
👉 Consultar a Documentação de Endpoints e Webhooks

