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 tipoCreateNfeParams 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