Autenticação
A Engine API utiliza JWT (JSON Web Token). Todas as rotas protegidas requerem um token no header Authorization.
Obtendo o token
- cURL
- Node.js
- Python
curl -X POST https://api.engineapi.com.br/auth/login \
-H "Content-Type: application/json" \
-d '{ "email": "dev@minhaempresa.com", "password": "senhaSegura123" }'
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: 'senhaSegura123',
}),
});
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': 'senhaSegura123',
})
data = resp.json()
token = data['token']
# Use token em todas as chamadas seguintes
Resposta
{
"token": "eyJhbGciOiJIUzI1NiIs...",
"partner": { "id": "uuid", "name": "Minha Software House" }
}
Usando o token
- cURL
- Node.js
- Python
curl -X GET https://api.engineapi.com.br/companies \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
const resp = await fetch('https://api.engineapi.com.br/companies', {
headers: { 'Authorization': `Bearer ${token}` },
});
const companies = await resp.json();
resp = httpx.get('https://api.engineapi.com.br/companies',
headers={'Authorization': f'Bearer {token}'},
)
companies = resp.json()
aviso
Nunca exponha seu token no frontend ou em repositórios públicos.
Expiração
| Duração | 24 horas |
| Formato | JWT (Bearer) |
| Header | Authorization: Bearer <token> |
Multi-tenancy
Cada partner pode gerenciar múltiplas empresas emissoras:
Partner (seu token)
├── Empresa A (issuerId: "uuid-a") → emite NFe, NFCe
├── Empresa B (issuerId: "uuid-b") → emite NFSe
└── Empresa C (issuerId: "uuid-c") → emite MDFe
informação
CNPJs ilimitados em todos os planos.