Na semana passada, conversando com o diretor de operações de um ERP vertical para clínicas médicas que acabara de migrar para a nossa Org API, ele me confessou um número que todo fundador de SaaS B2B conhece, mas poucos admitem em público: o time comercial dele levava 20 minutos para fechar uma venda no cartão de crédito, mas a equipe de implantação levava 4 dias úteis para deixar o cliente apto a emitir a primeira NFS-e.
Quando abrimos o checklist de onboarding daquela Software House, o gargalo não estava no código de emissão em si — estava no trabalho braçal de configuração de cada novo CNPJ:
- Validar o CNPJ/CPF do cliente e descobrir o código IBGE correto do município.
- Verificar se a prefeitura daquela cidade já operava no Padrão Nacional (SNNFSE) ou exigia provedor municipal próprio (e se precisava de Inscrição Municipal, senha web ou RPS).
- Perguntar ao contador do cliente qual foi o último número de RPS ou NF-e emitido no sistema antigo para configurar a sequência sem gerar Rejeição de Duplicidade nem abrir buraco fiscal.
- Subir a logomarca da empresa para sair impressa no DANFE e no DANFSe.
- Coletar o arquivo
.pfxdo Certificado Digital A1 e a senha sem trafegar credenciais sensíveis em grupos de WhatsApp e sem exigir que o contador tenha login no painel da Software House.
Aqui na Notaas, nós resolvemos esse gargalo na raiz com o lançamento do @notaas/mcp v0.2.2 (46 Tools) e os novos endpoints de sessão segura de certificado e sincronização de onboarding na Org API. Hoje quero mostrar como funciona o Agentic Onboarding Multi-CNPJ — uma arquitetura que reduz o tempo de implantação fiscal do seu ERP de dias para menos de 3 minutos, operando tanto via Agentes de IA (Claude Desktop, Claude Code, Cursor, Windsurf) quanto diretamente no wizard de ativação do seu backend em Node.js/TypeScript.
Implantar um novo cliente PJ no seu SaaS não deveria exigir um analista fiscal preenchendo planilhas: quando cada etapa do onboarding é exposta via API e MCP, a ativação vira um pipeline determinístico de 90 segundos.
O que é Agentic Onboarding Multi-CNPJ e por que ele muda a operação da Software House
O conceito de Agentic Onboarding nasceu dentro da nossa própria operação de suporte à engenharia. Mesmo oferecendo uma arquitetura Multi-CNPJ completa via Org API, percebemos que muitas Software Houses, escritórios de BPO Fiscal e startups em estágio de tração ainda dependiam de analistas de implantação (CS / Onboarding) executando tarefas repetitivas a cada novo contrato assinado.
Na versão v0.2.2 do pacote oficial @notaas/mcp (nosso servidor Model Context Protocol com 46 Tools), expandimos a família de tools organizacionais (org_*), adicionamos 4 modos seguros para envio do Certificado Digital A1 e integramos 100% de paridade com o Checklist de Onboarding da organização (onboarding_objectives) sob o prompt guiado /onboard-new-company.
Isso abre dois caminhos complementares sobre a mesma infraestrutura REST da Notaas:
- Caminho Operacional via Agente de IA (
@notaas/mcpv0.2.2): Seu analista de implantação (ou você mesmo no Claude Code / Cursor) digita apenas "Implantar o cliente CNPJ 12.345.678/0001-95 que parou na NFS-e 845 Série 1 no sistema antigo", e o agente executa autonomamente a validação do documento, verifica a cobertura municipal e os códigos LC 116, cria o projeto, ajusta a numeração, sobe o logotipo, gera um link descartável sem login (/onboarding/cert#token=...) para o contador do cliente subir o Certificado A1 e roda o diagnóstico final de prontidão. - Caminho Self-Service via Backend do ERP (Org API REST): Seu próprio SaaS consome exatamente as mesmas rotas REST nos bastidores do wizard de boas-vindas do usuário final.
⚡ Fluxo Arquitetural do Agentic Onboarding (
/onboard-new-company· v0.2.2):
- 1. Validação Documental & Cobertura Municipal: Executa
notaas_validate_cpf_cnpj,notaas_check_city_coverage(nos 5.571 municípios) enotaas_lookup_tax_codespara validar o documento (CNPJ numérico/alfanumérico ou CPF), a engine da prefeitura e os códigos de serviço LC 116.- 2. Provisionamento do Tenant e Sincronização de Onboarding: Chama
org_create_project(POST /api/v1/org/projects) criando o ambiente isolado do cliente, marcando automaticamente as etapascompany_dataefiscal_configemonboarding_objectivese promovendo/substituindo automaticamente o projeto placeholder inicial ("Projeto Padrão"/ CNPJ00.000.000/0000-00) sem afetar nenhum projeto real existente.- 3. Sincronização de Numeração e Identidade Visual: Ajusta a sequência fiscal vinda do ERP antigo via
org_configure_project_numberinge aplica o logotipo no PDF comorg_upload_project_logo.- 4. Coleta Segura de Certificado A1 (4 Modos) e Gate de Prontidão: Envia o
.pfxviaorg_upload_project_certificate(Zero-TrustpfxFilePathnostdioou Base64) ou gera uma sessão one-time de 15 minutos comorg_create_certificate_upload_session(entregando comandoread -spara terminal e link Dropzone sem login/onboarding/cert#token=...para o contador) e valida as 5 dimensões críticas no agregador fail-closedorg_check_project_readiness.
Caminho 1: Implantação guiada por IA com o @notaas/mcp v0.2.2
Para conectar seu ambiente de IA (Claude Desktop, Claude Code, Cursor ou agentes internos da sua equipe de CS) à sua organização na Notaas, basta configurar o servidor @notaas/mcp passando o seu Organization Token (ntaas_org_... — lembrando que você pode criar até 3 tokens grátis e homologar até 5 CNPJs sem custo no plano Free):
{
"mcpServers": {
"notaas": {
"command": "npx",
"args": ["-y", "@notaas/mcp"],
"env": {
"NOTAAS_ORG_TOKEN": "ntaas_org_seu_token_organizacional_aqui"
}
}
}
}
Quando você aciona o prompt guiado /onboard-new-company (ou pede em linguagem natural para implantar uma empresa), o agente orquestra uma sequência rigorosa de tools. Vamos dissecar o que cada tool faz sob o capô.
1. Validação de Documento, Cobertura Municipal e Códigos Fiscais (notaas_validate_cpf_cnpj + notaas_check_city_coverage + notaas_lookup_tax_codes)
Antes de criar o projeto, o agente valida determinísticamente os parâmetros fiscais do município:
- A tool
notaas_validate_cpf_cnpjvalida localmente em< 1msos dígitos verificadores do CNPJ (tanto numérico tradicional quanto o novo CNPJ Alfanumérico[0-9A-Z]{12}\d{2}) ou CPF. - Em seguida, a tool
notaas_check_city_coverageconsulta nossa malha de 5.571 municípios brasileiros e informa qual engine atende aquela cidade (snnfseNacional ou uma das 26 engines municipais próprias, comosp_prefeitura,equiplano,issnet_nacional,speedgov,gissonline,el_nacional, etc.), se exige certificado A1 ou credenciais municipais e quais operações estão ativas. - Por fim,
notaas_lookup_tax_codesbusca ocTribNac(LC 116) e eventuais desdobros municipais (cTribMun) exigidos pelo código IBGE da cidade.
2. Criação do Projeto e Controle de Numeração (org_create_project + org_configure_project_numbering)
Ao criar o projeto isolado com org_create_project, a plataforma realiza automaticamente a sincronização com o funil de onboarding (onboarding_objectives): marca company_data, fiscal_config e nfe_config como concluídos e, caso a organização recém-criada ainda possua apenas o projeto placeholder inicial intocado ("Projeto Padrão" / CNPJ 00.000.000/0000-00), substitui/promove automaticamente esse placeholder para que a conta fique limpa, sem desativar nenhum projeto real.
Em seguida, chegamos ao ponto mais sensível de qualquer migração de ERP: a continuidade da numeração de RPS, NFS-e, NF-e (Mod 55) e NFC-e (Mod 65).
Se o seu cliente já emitiu até o RPS 845 (Série 1) no sistema legado e o novo ERP tentar emitir o RPS 1, a prefeitura vai rejeitar por duplicidade; pior ainda, se alguém reduzir acidentalmente o contador de uma empresa que já está em produção, você cria uma falha fiscal grave.
Por isso, no @notaas/mcp v0.2.2, o par org_get_project_numbering e org_configure_project_numbering (PATCH /api/v1/org/projects/{id}/numeracao) opera com dois modos de segurança:
- Modo Padrão (
modo: "avancar"): Permite apenas aumentar o último número emitido da série (por exemplo, informarultimoNumeroNfse: 845para que o próximo número seja846na implantação inicial de um cliente vindo de outro sistema, protegido por guardGREATESTno banco). - Modo de Exceção Auditável (
modo: "forcar"): Caso um analista sênior precise redefinir uma sequência após ajuste de homologação para produção, exigemodo: "forcar",confirmForceMode: trueemotivoobrigatório (mínimo de 10 caracteres), limpando atomicamente o pool de números reciclados (nfse_numeros_liberados) e gravando auditoria.
3. Upload de Logomarca (org_upload_project_logo) e os 4 Modos Seguros de Certificado A1 (org_create_certificate_upload_session / org_upload_project_certificate)
A tool org_upload_project_logo recebe a imagem (PNG, JPEG ou WebP até 500 KiB) e já a vincula ao renderizador de DANFE e DANFSe v2.0 no padrão NT-008.
Já para o Certificado Digital A1 (.pfx), o @notaas/mcp v0.2.2 resolve o maior atrito de implantação das Software Houses: quando o arquivo .pfx e a senha estão com o contador ou dono da empresa cliente, que não tem (e não deve ter) login no painel administrativo da Software House.
O agente oferece 4 modos seguros:
- Opção 1 — Referência Local Zero-Trust (
stdio): Se o analista já tem o.pfxna máquina e rodanpx -y @notaas/mcp, chamaorg_upload_project_certificate({ projectId, pfxFilePath: "~/cert.pfx", passwordEnvVar: "NOTAAS_CERT_PASS" }). O processo Node.js local lê o arquivo e a senha direto do disco — nem os bytes nem a senha passam pelo LLM. - Opção 2 — One-Liner Silencioso no Terminal (
read -s): A toolorg_create_certificate_upload_sessiongera um token descartável (ntaas_cert_up_<64_hex>, TTL 15 min) e devolve um comandoread -r -s -p+curlpara colar no terminal da IDE. - Opção 3 — Link Dropzone Descartável Sem Login (
/onboarding/cert#token=...): A mesma chamadaorg_create_certificate_upload_sessionretorna a URL:
Você envia esse link no WhatsApp do contador do cliente. O contador abre a tela (que mostra apenas a Razão Social e o CNPJ da empresa, sem pedir login Clerk), arrasta ohttps://platform.notaas.com.br/onboarding/cert#token=ntaas_cert_up_9f8e7d....pfxe digita a senha. Como o token fica após o#(#token=), ele nunca vaza em headers HTTPReferer. A plataforma valida se o titular X.509 ICP-Brasil pertence ao CNPJ do projeto, ativa o certificado no cofre S3 e destrói o link imediatamente (com lockout automático após 5 tentativas de senha incorreta). - Opção 4 — Automação 100% via API / n8n (
pfxBase64+password): Para workflows que buscam o certificado em um cofre corporativo (AWS Secrets Manager, Vault) e provisionam viaorg_upload_project_certificate.
4. O Gate Final Fail-Closed: org_check_project_readiness
Como ter 100% de certeza de que o cliente está pronto para emitir notas em produção sem descobrir um campo faltando na segunda-feira às 8h da manhã?
Criamos a tool agregadora org_check_project_readiness. Em uma única chamada fail-closed, ela inspeciona cinco dimensões independentes do projeto e só retorna ready: true se todas estiverem verdes:
| Dimensão Auditada | O que o org_check_project_readiness verifica |
Comportamento Fail-Closed se falhar |
|---|---|---|
1. Cadastro Fiscal (companyData) |
CNPJ/CPF válido, Razão Social, Inscrição Municipal/Estadual, endereço completo, código IBGE e Regime Tributário. | Retorna ready: false listando exatamente quais campos obrigatórios estão vazios. |
2. Certificado Digital A1 (certificate) |
Presença do .pfx ativo no cofre, validade temporal (validUntil > now) e alerta preventivo de vencimento (<= 30 dias). |
Bloqueia prontidão e orienta os 4 modos seguros de envio se o certificado estiver ausente ou vencido. |
3. Séries e Numeração (numbering) |
Séries de RPS/NFS-e, NF-e e NFC-e inicializadas e prontas para o próximo disparo. | Indica o estado atual de ultimoNumero e proximoNumero de cada modelo fiscal. |
4. Credenciais (apiKeys) |
Existência de pelo menos uma Project API Key (ntaas_*) ativa e não revogada vinculada ao tenant. |
Alerta que o ERP ainda não provisionou a chave de autenticação do projeto (org_create_project_api_key). |
5. Cobertura Municipal (cityCoverage) |
Valida se o código IBGE do prestador está ativo na malha de 5.571 municípios da Notaas e se exige parâmetros extras. | Informa o motor municipal ativo (snnfse, equiplano, issnet_nacional, etc.) ou requisitos específicos da prefeitura. |
Caminho 2: Automatizando o Onboarding direto no Backend do seu ERP (TypeScript)
Se você está construindo um wizard de ativação 100% self-service dentro do seu próprio SaaS (inclusive usando stacks modernas de Vibe Coding fiscal com Next.js, Cursor e Lovable), você pode invocar os mesmos endpoints da Org API REST diretamente pelo seu backend.
Veja a implementação completa em TypeScript usando os contratos reais da Org API (https://platform.notaas.com.br/api/v1/org/*) que cria o tenant, sincroniza a última numeração do ERP antigo, gera a sessão Dropzone sem login para o certificado A1 e provisiona a chave isolada do cliente:
const ORG_TOKEN = process.env.NOTAAS_ORG_TOKEN!;
const API_URL = "https://platform.notaas.com.br/api/v1";
interface ErpOnboardingInput {
cnpj: string;
razaoSocial: string;
nomeFantasia: string;
inscricaoMunicipal: string;
codigoMunicipio: string;
uf: string;
regimeTributario: "1" | "2" | "3" | "3e";
ultimoRpsSistemaAntigo: number;
serieNfse?: string;
}
export async function runAutomatedErpOnboarding(input: ErpOnboardingInput) {
const headers = {
"x-api-key": ORG_TOKEN,
"Content-Type": "application/json"
};
// 1. Cria o projeto isolado do cliente (iniciando em Homologação = 2)
// Sincroniza automaticamente company_data e fiscal_config em onboarding_objectives
const projectRes = await fetch(`${API_URL}/org/projects`, {
method: "POST",
headers,
body: JSON.stringify({
name: input.nomeFantasia,
cnpj: input.cnpj,
razaoSocial: input.razaoSocial,
inscricaoMunicipal: input.inscricaoMunicipal,
codigoMunicipio: input.codigoMunicipio,
regimeTributario: input.regimeTributario,
serieNfse: input.serieNfse ?? "1",
endereco: { uf: input.uf },
ambiente: 2
})
});
const project = await projectRes.json();
// 2. Sincroniza o último número de RPS emitido no ERP legado (guard GREATEST)
const numRes = await fetch(`${API_URL}/org/projects/${project.id}/numeracao`, {
method: "PATCH",
headers,
body: JSON.stringify({
ultimoNumeroNfse: input.ultimoRpsSistemaAntigo
})
});
const numbering = await numRes.json();
// 3. Gera sessão one-time (TTL 15 min) para o cliente/contador enviar o Certificado A1 sem login Clerk
const certSessionRes = await fetch(`${API_URL}/org/projects/${project.id}/certificate/upload-session`, {
method: "POST",
headers,
body: JSON.stringify({ ttlMinutes: 15 })
});
const certSession = await certSessionRes.json();
// 4. Provisiona a Project API Key dedicada do cliente (marca api_key em onboarding_objectives)
const keyRes = await fetch(`${API_URL}/org/projects/${project.id}/api-keys`, {
method: "POST",
headers,
body: JSON.stringify({ name: "erp-production-key" })
});
const { key: tenantApiKey } = await keyRes.json();
return {
projectId: project.id,
tenantApiKey,
nextRpsConfigured: numbering.nfse.proximoNumero,
// Link Dropzone descartável sem login (/onboarding/cert#token=...) para enviar ao contador
certificateDropzoneUrl: certSession.uploadSessionUrl,
// Comando read -s + curl caso prefira enviar pelo terminal
certificateTerminalCommand: certSession.terminalCommand
};
}
E caso o seu próprio backend já receba o arquivo .pfx do usuário no checkout do ERP, basta enviá-lo diretamente via multipart/form-data para POST /api/v1/org/projects/${projectId}/certificate com o header x-api-key: ntaas_org_....
Escale sua operação Multi-CNPJ sem aumentar a equipe de implantação
Quando você combina a API de NFS-e Nacional e Municipal, o diagnóstico preventivo de erros de conexão e certificado A1 e o Agentic Onboarding via @notaas/mcp v0.2.2 + Org API, a implantação fiscal deixa de ser um centro de custo humano e passa a ser uma vantagem competitiva do seu software.
E o melhor: você pode testar todo esse fluxo agora mesmo sem custo. Na Notaas, você conta com:
- Até 5 projetos/CNPJs simultâneos grátis em Homologação via Org API + 1 CNPJ em Produção real com 20 notas fiscais gratuitas por mês.
- Plano Dev (R$ 99/mês para até 3 CNPJs em Produção) e Plano SaaS Pro (R$ 249/mês para CNPJs ilimitados em Produção) conforme sua base de clientes escala.
👉 Crie sua conta gratuita na Notaas ou acesse a Documentação Oficial do MCP e Org API para colocar seu Agentic Onboarding no ar hoje mesmo.

