Autenticación
ERPly Pro usa OAuth2 client-credentials vía Cognito. Cada tenant tiene un User Pool dedicado por entorno (sandbox/staging/prod).
POST /v1/auth/token
curl -X POST https://sandbox.api.erply.pro/v1/auth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=$CID&client_secret=$CSEC"
import os, requests
r = requests.post(
"https://sandbox.api.erply.pro/v1/auth/token",
data={
"grant_type": "client_credentials",
"client_id": os.environ["ERPLYPRO_CID"],
"client_secret": os.environ["ERPLYPRO_CSEC"],
},
timeout=5,
)
token = r.json()["access_token"]
Respuesta
{
"access_token": "eyJraWQ…",
"token_type": "Bearer",
"expires_in": 3600
}
Errores posibles
| HTTP | Problem.type | Causa |
|---|---|---|
| 400 | malformed-json | Cuerpo no parseable. |
| 401 | unauthorised | client_id o client_secret inválidos. |
| 429 | https://errors.api.erply.pro/rate-limited | Más de 60 tokens/min por tenant. |
Buenas prácticas
- Cachea el token en memoria; expira en 1 h.
- Usa el header
Authorization: Bearer <token>en todos los endpoints subsiguientes. - En clientes de larga duración, renueva 5 min antes del
expires_in.