Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.engineapi.com.br/llms.txt

Use this file to discover all available pages before exploring further.

Multitenancy

A Engine API foi projetada como uma plataforma B2B2B (Business-to-Business-to-Business). Isso significa que você, como Software House, integra a Engine API na sua plataforma e oferece emissão fiscal para seus clientes finais. Sem que eles saibam que a Engine API existe.

Hierarquia de dados

Partner (Software House)
├── API Keys (autenticação server-to-server)
├── Issuers (Empresas emissoras por CNPJ)
│   ├── Certificado A1
│   ├── NFe, NFCe, CTe, MDFe, NFSe
│   ├── Boletos
│   └── DFe (documentos recebidos)
└── Webhooks (notificações)

Partner

Sua Software House. Uma conta, múltiplos CNPJs. Autenticação via API Key.

Issuer

Cada CNPJ do seu cliente. Certificado A1 próprio, dados isolados.

Documents

Notas, boletos e documentos. Cada um vinculado a um Issuer específico.

Isolamento de dados

Cada Issuer opera em isolamento completo:
AspectoIsolamento
Certificado digitalCada Issuer tem seu próprio A1, encriptado em repouso
Documentos fiscaisNFe, CTe, etc. são vinculados ao Issuer. Impossível acessar de outro
ConfiguraçõesRegime tributário, série, ambiente (produção/homologação) são independentes
BoletosConta bancária vinculada ao Issuer específico
DFeConsulta ao SEFAZ Nacional filtrada por CNPJ do Issuer
Um Partner com 500 Issuers tem garantia de que o Issuer A nunca acessa dados do Issuer B, mesmo usando a mesma API Key. O isolamento é enforced no backend por filtros automáticos.

Fluxo típico de onboarding

1

Criar conta de Partner

Registre-se no dashboard ou via API. Você recebe credenciais de acesso.
POST /v1/auth/register-partner
2

Gerar API Key

Crie uma API Key para integração server-to-server.
POST /v1/auth/api-keys
3

Cadastrar Issuers

Para cada CNPJ do seu cliente, crie um Issuer:
const empresa = await client.companies.criar({
  cnpj: '11222333000144',
  razaoSocial: 'Cliente Final Ltda',
  regime: 'SIMPLES',
  endereco: { ... },
});
4

Upload de certificado

Envie o certificado A1 (.pfx) do cliente:
await client.companies.uploadCertificado(empresa.data.id, {
  certificado: certBuffer,
  senha: 'senha-do-pfx',
});
5

Emitir documentos

Pronto. Use o issuerId em qualquer emissão:
await client.nfe.emitir({
  emitente: { issuerId: empresa.data.id },
  ...
});

Gerenciando múltiplos CNPJs

Listar todos os Issuers

const empresas = await client.companies.listar();

empresas.data.forEach(emp => {
  console.log(`${emp.cnpj} | ${emp.razaoSocial} (${emp.regime})`);
});

Emitir para um Issuer específico

O issuerId é o campo que determina qual CNPJ emite o documento:
// NFe para o Issuer A
await client.nfe.emitir({ emitente: { issuerId: 'ISSUER_A_UUID' }, ... });

// Boleto para o Issuer B
await client.boleto.emitir({ issuerId: 'ISSUER_B_UUID', ... });

// DFe do Issuer C
await client.dfe.consultar({ issuerId: 'ISSUER_C_UUID' });

Certificados independentes

Cada Issuer precisa do seu próprio certificado A1:
// Upload para Issuer A
await client.companies.uploadCertificado('ISSUER_A_UUID', { ... });

// Upload para Issuer B (certificado diferente)
await client.companies.uploadCertificado('ISSUER_B_UUID', { ... });

Limites por plano

PlanoIssuersDocumentos/mêsAPI calls/min
Starter550060
Professional505.000100
EnterpriseIlimitadoIlimitado300
Para planos Enterprise com necessidades específicas, entre em contato pelo email suporte@engineapi.com.br.

Próximos passos

Segurança

Como a Engine API protege os dados dos seus clientes

Webhooks

Receber notificações em tempo real por Issuer