Autenticación
Toda llamada a la API de Facto se autentica con una API key, genera la tuya en API Keys.
Header Authorization
Envía la key como token Bearer en el header Authorization, igual que un token de sesión normal. No existe un header alternativo tipo X-API-Key.
curl https://api.facto.com.pe/api/v1/invoices \
-H "Authorization: Bearer sk_live_51H8f9s0aB3cD4eF5gH6i" \
-H "Content-Type: application/json"URL base
La URL base es la misma API pública de Facto: https://api.facto.com.pe/api/v1 en producción. La key identifica a tu empresa automáticamente: no necesitas indicar el subdominio ni ningún otro identificador de tenant en la solicitud.
Entornos
Cada key está atada a un entorno: live (datos reales de tu empresa) o test (aislado, para probar integraciones sin afectar tu operación). La respuesta de cada solicitud autenticada con API key incluye el header X-Environment confirmando cuál se usó.
Permisos y límite de solicitudes
Cada key solo puede llamar a los recursos para los que tiene permiso explícito (por ejemplo invoices.create o customers.read) y tiene un límite propio de solicitudes por minuto, configurable al crearla — ver el catálogo completo de permisos en API Keys. Una key sin el permiso necesario recibe 403 INSUFFICIENT_PERMISSIONS, y al superar su límite, 429 RATE_LIMIT_EXCEEDED — ver Errores.
Token inválido o expirado
Si el token falta, es incorrecto o fue revocado, la API responde 401 Unauthorized con el mismo envelope de error que el resto de la API.
{
"success": false,
"error": {
"code": "TOKEN_EXPIRED",
"message": "La key es inválida, fue revocada o expiró"
}
}Protege tus keys
sk_live_... en código de frontend, repositorios públicos ni logs — trátalas como cualquier otra credencial de producción. Si sospechas que una key se filtró, rótala o revócala de inmediato desde Configuración → API Keys; la anterior deja de funcionar al instante.