Límites al realizar peticiones (Rate-limit)
El sistema cuenta con límites transaccionales al realizar peticiones. Un comercio podrá recibir un código HTTP 429
como respuesta cuando ha realizado demasiadas peticiones en un corto periodo de tiempo.
Cuando se recibe el código mencionado deberá de disminuir el número de peticiones que realiza al sistema y evitar hacer llamadas adicionales o repetidas. Al ejecutarse el proceso de límite de peticiones, podrá priorizarse algunos métodos buscando maximizar la disponibilidad de métodos críticos como la generación de cargos y el creación de clientes, tarjetas y suscripciones.
Para poder facilitar la gestión de los límites de peticiones, en los encabezados HTTP de las peticiones se incluyen los campos X-RateLimit-Limit
y X-RateLimit-Remaining
. El primero indica el límite máximo y el segundo indicará cuántas peticiones quedan disponibles antes de alcanzaer el límite.
Cuando se ha alcanzado el límite establecido, las variables Retry-After
y X-RateLimit-Reset
indicarán al comercio cuándo podrá comenzar a realizar peticiones nuevamente. El límite es impuesto contabilizando transacciones por minuto. En la siguiente tabla se detalla cada uno de los parámetros.
Parámetros en Encabezados (Headers) HTTP:
Parámetro | Presencia | Descripción |
---|---|---|
X-RateLimit-Limit | Siempre | Indica el límite de transacciones asignado |
X-RateLimit-Remaining | Siempre | Indica el número de peticiones restantes |
Retry-After | Sólo al exceder límite | Indica en que momento podrá comenzar a transaccionar nuevamente |
X-RateLimit-Reset | Sólo al exceder límite | Indica en que momento se restablece el límite |
Ejemplo de error por exceder el límite de peticiones
Headers:
X-RateLimit-Limit 80
X-RateLimit-Remaining 0
Retry-After 28
X-RateLimit-Reset 1536273643
Body:
{
"status": "error",
"error": {
"code": 429,
"type": "Sistema",
"message": "Ha excedido la tasa máxima de peticiones"
},
"http_code": 429,
"datetime": "2018-09-05T15:30:49-05:00",
"timestamp": 1536179449
}