Guías
Límites de uso
Cuántas peticiones por minuto, qué devuelve un 429 y cómo reintentar bien.
El límite se cuenta por llave, no por IP: si tu servidor comparte salida con otros —cualquier nube lo hace— nadie te gasta tu cuota.
| Plan | Peticiones por minuto |
|---|---|
| Crecimiento | 120 |
| Multi | 300 |
Toda respuesta trae el estado actual:
RateLimit-Limit: 120
RateLimit-Remaining: 117
RateLimit-Reset: 43Cuando te pasas
HTTP/1.1 429 Too Many Requests
Retry-After: 43{
"error": {
"code": "RATE_LIMITED",
"message": "Demasiadas peticiones. Espera unos segundos y reintenta.",
"requestId": "req_914fc7cb6c4d4192b6616aace5c10c62"
}
}Respeta Retry-After. Reintentar de inmediato solo consume tu propia cuota.
async function conReintentos(fn, maxIntentos = 4) {
for (let i = 1; i <= maxIntentos; i++) {
const res = await fn();
if (res.status !== 429) return res;
const espera = Number(res.headers.get('Retry-After') ?? 2 ** i);
// Un poco de aleatoriedad para que N procesos no reintenten todos a la vez.
await new Promise((r) => setTimeout(r, (espera + Math.random()) * 1000));
}
throw new Error('Verifika: límite de peticiones excedido tras varios reintentos');
}Cómo no llegar al límite
- Pide páginas de 100, no de 10. Diez veces menos peticiones por el mismo dato.
- Filtra por fecha en lugar de traer todo y descartar en tu lado.
- No hagas polling cada segundo. Para enterarte de un pago en el momento, lo que corresponde son los webhooks — están en camino.
- Cachea lo que casi no cambia, como
/v1/plano la lista de sucursales.