Limite de request
La API limita el numero de solicitudes para mantener el servicio estable. Si
superas el limite, la API responde 429 Too Many Requests e indica cuanto
esperar antes de reintentar.
Que se limita#
| Limite | Valor | Se cuenta por |
|---|---|---|
| Solicitudes por API Key | 200 por minuto (valor por defecto) | API Key |
| Intentos de autenticacion fallidos | 20 por minuto | Direccion IP |
- Solicitudes por API Key. Se cuentan en una ventana de un minuto por API Key. El valor por defecto es 200 solicitudes por minuto y puede variar segun el plan o la configuracion de tu integracion.
- Intentos de autenticacion fallidos. Se cuentan por direccion IP; sirven para frenar intentos de fuerza bruta. Una autenticacion correcta reinicia el contador.
Que pasa al superar el limite#
La API rechaza la solicitud que supera el limite con:
| Codigo | HTTP | Cuando ocurre | Que hacer |
|---|---|---|---|
104 |
429 | Superaste el limite de solicitudes o de intentos de autenticacion | Espera el tiempo de Retry-After y reintenta |
{ "codigo": "104", "mensaje": "Limite de solicitudes excedido." }
El cupo de documentos es distinto del limite de solicitudes: si te quedas sin
documentos, la emision responde 429 (codigo 501). Ve
Consumo y cuotas.
Cabeceras de la respuesta#
Las respuestas a /v1 incluyen cabeceras con el estado de tu limite:
| Cabecera | Cuando aparece | Significado |
|---|---|---|
X-RateLimit-Limit |
En todas las respuestas | Maximo de solicitudes permitidas en la ventana |
X-RateLimit-Remaining |
En todas las respuestas | Solicitudes restantes en la ventana actual |
X-RateLimit-Reset |
Solo al superar el limite (429) |
Momento (timestamp Unix, en segundos) en que se reinicia la ventana |
Retry-After |
En 429 y 503 |
Segundos que debes esperar antes de reintentar |
Ejemplo de una respuesta normal:
HTTP/1.1 200 OK
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 42
Ejemplo de respuesta 429:
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1757341500
Retry-After: 43
Content-Type: application/json
{ "codigo": "104", "mensaje": "Limite de solicitudes excedido." }
Recomendaciones#
- Reintenta
429,502,503y504con espera exponencial y un poco de aleatoriedad (jitter). - Respeta
Retry-After: no reintentes antes de que termine. - Para el estado de una emision, usa el webhook como fuente principal; evita el sondeo constante.
- Si necesitas mas capacidad, solicita un limite mayor para tu integracion.
Siguientes pasos#
- Limites: tamano de solicitud, paginacion y cupo.
- Buenas practicas
- Errores