Autenticación
Aprende cómo autenticarte con Atto usando API Keys
API Keys
Atto utiliza API Keys para autenticar las peticiones. Tu API Key debe incluirse en el header X-API-Key de cada petición.
curl -X POST http://localhost:3000/factura/emitir \
-H "X-API-Key: sk_user_tu_hash_de_64_caracteres_aqui" \
-H "Content-Type: application/json" \
-d '{"items":[...],"pagos":[...],"receptor":{...}}'Alternativamente, también puedes usar el header Authorization sin el prefijo Bearer:
curl -X POST http://localhost:3000/factura/emitir \
-H "Authorization: sk_user_tu_hash_de_64_caracteres_aqui" \
-H "Content-Type: application/json"Formato de API Keys
Usuario Normal: sk_user_
Las API keys de usuario comienzan con sk_user_ seguido de un hash de 64 caracteres.
Ejemplo: sk_user_a1b2c3d4e5f6...
Administrador: sk_admin_
Las API keys de administrador comienzan con sk_admin_ seguido de un hash de 64 caracteres.
Ejemplo: sk_admin_a1b2c3d4e5f6...
Contexto de API Keys
Cada API key está asociada automáticamente a:
🏢 Emisor (issuerId)
El emisor asociado a esta API key. No necesitas enviar nitEmisor en el body de tus peticiones, se inyecta automáticamente.
🏪 Sucursal (branchOfficeId)
La sucursal asociada a esta API key. Se usa automáticamente para generar el correlativo correcto.
🌍 Ambiente (PRUEBAS o PRODUCCION)
El ambiente asociado a esta API key. Los DTEs se enviarán al Ministerio de Hacienda en el ambiente configurado.
💡 Tip: Puedes crear múltiples API keys con diferentes emisores, sucursales y ambientes según tus necesidades.
Headers Requeridos
Solo necesitas 2 headers para hacer peticiones a la API:
{
"X-API-Key": "sk_user_tu_hash_de_64_caracteres_aqui",
"Content-Type": "application/json"
}⚠️ Importante: NO uses Authorization: Bearer. El header correcto es X-API-Key o simplemente Authorization sin el prefijo Bearer.
Errores de Autenticación
Si tu API Key es inválida, expirada o falta, recibirás una respuesta 401:
{
"message": "Unauthorized",
"statusCode": 401
}Si tu API Key ha expirado:
{
"message": "API Key expirada",
"statusCode": 401
}Si tu API Key fue eliminada (soft delete):
{
"message": "API Key eliminada",
"statusCode": 401
}