Autenticação
A Engine API suporta dois métodos de autenticação:
JWT (Bearer Token) Para integrações server-side. Obtenha via /auth/login e use no header Authorization.
API Key Para automações e SDKs. Gerada no Dashboard, nunca expira (até ser revogada).
Método 1 — JWT (Bearer Token)
Use quando seu backend faz chamadas diretas à API.
Obtendo o token
curl -X POST https://api.engineapi.com.br/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "dev@minhaempresa.com",
"password": "suaSenha"
}'
const response = await fetch ( 'https://api.engineapi.com.br/auth/login' , {
method: 'POST' ,
headers: { 'Content-Type' : 'application/json' },
body: JSON . stringify ({
email: 'dev@minhaempresa.com' ,
password: 'suaSenha' ,
}),
});
const { token , partner } = await response . json ();
// Use token em todas as chamadas seguintes
import httpx
resp = httpx.post( 'https://api.engineapi.com.br/auth/login' , json = {
'email' : 'dev@minhaempresa.com' ,
'password' : 'suaSenha' ,
})
token = resp.json()[ 'token' ]
{
"token" : "eyJhbGciOiJIUzI1NiIs..." ,
"partner" : { "id" : "uuid" , "name" : "Minha Software House" }
}
Usando o token
curl -X GET https://api.engineapi.com.br/companies \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Expiração
Campo Valor Duração 24 horas Formato JWT assinado com HS256 Header Authorization: Bearer <token>
Nunca exponha seu token no frontend, em logs ou em repositórios públicos. Use variáveis de ambiente.
Método 2 — API Key
Use em automações de longa duração, SDKs ou quando não quiser gerenciar expiração de JWT.
Gerando uma API Key
Acesse o Dashboard → app.engineapi.com.br
Vá em Configurações → API Keys
Clique em Nova API Key
Copie e guarde — ela é exibida uma única vez
Usando a API Key
cURL
Node.js / SDK
Python
curl -X GET https://api.engineapi.com.br/companies \
-H "x-api-key: sk_live_xxxxxxxxxxxxxxxx"
import { EngineAPI } from '@engineapi/sdk' ;
const engine = new EngineAPI ({
apiKey: process . env . ENGINE_API_KEY ,
environment: 'production' , // 'sandbox' | 'production'
});
const companies = await engine . companies . list ();
import httpx
resp = httpx.get( 'https://api.engineapi.com.br/companies' ,
headers = { 'x-api-key' : 'sk_live_xxxxxxxxxxxxxxxx' },
)
Propriedade Detalhe Header x-api-key: sk_live_...Prefixo sk_live_ (produção) / sk_test_ (sandbox)Expiração Nunca — revogue manualmente pelo Dashboard
Multi-tenancy
Um único token gerencia quantos CNPJs emissores quiser :
Partner (seu token / API key)
├── Empresa A (issuerId: "uuid-a") → emite NFe, NFCe
├── Empresa B (issuerId: "uuid-b") → emite NFSe
└── Empresa C (issuerId: "uuid-c") → emite MDFe
Cada emissão usa o campo issuerId para indicar qual empresa está emitindo.
CNPJs ilimitados em todos os planos pagos. O issuerId é retornado ao criar uma empresa via POST /companies.