Autenticación OAuth2 en sandbox
Este quickstart muestra cómo obtener un token OAuth2 client_credentials en sandbox y usarlo para consumir APIs protegidas.
Necesitas client_id, client_secret y los scopes aprobados para tu integración. Solicítalos a integraciones@aveniocloud.com.
1. Obtener credenciales
- Solicita
client_idyclient_secretal equipo de integraciones. - Define los scopes mínimos necesarios para el dominio que quieres consumir (por ejemplo,
boletas.read). - Audience sugerida:
https://api.sandbox.aveniocloud.com.
2. Pedir token client_credentials
API_BASE="https://api.sandbox.aveniocloud.com"
CLIENT_ID="<tu_client_id>"
CLIENT_SECRET="<tu_client_secret>"
SCOPES="boletas.read"
curl -X POST "$API_BASE/api/v1/auth/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=$CLIENT_ID" \
-d "client_secret=$CLIENT_SECRET" \
-d "scope=$SCOPES"
Respuesta (envelope común):
{
"success": true,
"data": {
"accessToken": "eyJhbGciOi...",
"expiresIn": 3600,
"scope": "boletas.read"
},
"traceId": "f6b0..."
}
3. Usar el token en otras APIs
- Envía el header
X-Avenio-Authorization: <accessToken>en cada request. - Propaga un solo
X-Correlation-IdUUID no vacío en formato N o D. La API lo normaliza a N minúscula; valores inválidos o múltiples se reemplazan y el valor efectivo vuelve en el header de respuesta.
Ejemplo (consulta de operaciones Boletas):
TOKEN="<accessToken>"
curl -X GET "$API_BASE/api/v1/bhe/operaciones/<operationId>" \
-H "X-Avenio-Authorization: $TOKEN" \
-H "X-Correlation-Id: 7e9c7c2a-0f56-4c7b-9e5f-8e5b1b98a9b0"
Buenas prácticas
- Usa scopes mínimos necesarios por dominio.
- Rota credenciales ante cualquier sospecha.
- No expongas
client_secreten repositorios o logs. - No uses emails, RUT, JWT, bearer tokens ni datos de negocio en
X-Correlation-Id.
Las credenciales y cuotas productivas se habilitan para cada integración. Coordina el paso a producción con ventas@aveniocloud.com.
Cuotas y consumo
Cada credencial tiene una política independiente de solicitudes por minuto y de cuota mensual. El límite se aplica en el gateway antes de ejecutar la API, para proteger el servicio incluso cuando existan varias réplicas.
Cuando se alcance un límite, la respuesta será 429 Too Many Requests con el envelope estándar y el código API_QUOTA_EXCEEDED. Si aplica al límite por minuto, incluye Retry-After con los segundos de espera. El consumo se mide por API y por período, sin registrar payloads ni secretos.