Skip to main content
SDK oficial da engineAPI com tipagem completa para Node.js e TypeScript.
Publicado no npm como @engineapi/sdk@1.3.0 {/* fact:sdk.version */}. Compatível com Node.js 18+ e TypeScript 5+.

Configuração

Parâmetros de configuração

*Use apiKey para integrações ou token para sessões autenticadas via login.
O client anexa todas as credenciais configuradas em cada chamada: apiKey vira o header X-API-Key, token vira Authorization: Bearer, sem distinção por módulo do lado do client. O que decide qual funciona é o guard de cada endpoint no backend (ver Companies abaixo).

Módulos Disponíveis

O contrato público hoje cobre 2 módulos tipados:
DFe (Distribuição de documentos recebidos) é fluxo interno do dashboard, fora do contrato público da API. client.dfe não é suportado e não deve ser usado.

NFe: Nota Fiscal Eletrônica

Emitir NFe

O tipo CreateNfeParams publicado nesta versão do pacote já bate com o contrato real da API: issuerId na raiz, items (não itens), pagamentos[] (não pagamento singular), destinatario.nome/destinatario.ie (não razaoSocial/inscricaoEstadual). Não precisa de as any para emitir.
O tipo NfeResponse bate 1:1 com o JSON real: protocol/number/series/model/ amount/destCNPJ/destName/updatedAt/downloads.{xml,pdf} (e qrCode na NFCe), todos acessíveis sem as any. amount é string (ex. "119.8"), não number, para não perder precisão decimal. Shape real completo em Primeira Emissão.
issuerId é opcional no payload de NFe/NFCe: com um único emissor pode omitir; com dois ou mais, informe o issuerId (UUID) do CNPJ que deve emitir; sem ele a API responde 400.

Listar NFes

Cancelar NFe

Carta de Correção

Download PDF e XML

Status do serviço SEFAZ


Companies: Empresas Emissoras

client.companies.* chama /companies, o path bate com a API real. O backend aceita apiKey ou token neste módulo, o mesmo aceito em NFe: configurar só apiKey no client já é suficiente para cadastrar empresa e enviar certificado. O upload de certificado (uploadCertificado()) já envia multipart/form-data com o campo file, batendo com o contrato real do endpoint de upload.

Tratamento de Erros

Use a versão 1.3.0 ou superior (npm install @engineapi/sdk@latest). Em versões anteriores à 1.2.0, error.message pode chegar como "[object Object]"; nesse caso, leia a mensagem de error.response.error.detail (o envelope de erro da API é RFC 7807, ver Erros e respostas) ou atualize o pacote.

Login via JWT (Dashboard)

Para sessões de dashboard (não recomendado para server-to-server):
client.login() requer a versão 1.2.0 ou superior (npm install @engineapi/sdk@latest). Em versões anteriores o token não era extraído do envelope de resposta e a sessão não era autenticada. Se o upgrade não for possível agora, use uma API Key no lugar do login.

Integração com Frameworks

Next.js (App Router)

Express


Próximos passos

AI Integration

Como usar IA para integrar automaticamente

Webhooks

Receber eventos em tempo real