Límites
Rate limits de la API de Simplo — 60 llamadas por minuto por empresa en la facturación por API key, 120 por minuto en MCP/tools de agente, y cómo manejarlos.
Rate limits
Sección titulada «Rate limits»Dos presupuestos separados, ambos por empresa:
| Superficie | Límite |
|---|---|
Facturación por API key (/api/v1/billing/* con X-Api-Key) |
60 llamadas/min |
MCP y tools de agente (POST /api/v1/mcp, keys agent:read / OAuth) |
120 llamadas/min |
Al superar un límite, la API responde 429 con el header Retry-After. Los
dos presupuestos no se mezclan: tu backend de emisión no compite con tus
agentes conectados por MCP.
Dos detalles del presupuesto por key que importan en integraciones reales:
- El límite es por empresa, no por key: todas las keys de una misma empresa comparten los 60/min. Si corres N sistemas con N keys, se reparten el mismo presupuesto.
- Payload máximo 2 MiB en
POST /billing/dte(~1 MiB en las demás rutas). Sobre el límite la API responde413con el sobre JSON estándar (code: PAYLOAD_TOO_LARGE) — reduce el tamaño del documento (menos líneas dedetalleo glosas más cortas) y reintenta. Verificado en vivo: hasta 2026-09 esto era un502con página HTML del CDN; ya no.
Cómo manejarlo
Sección titulada «Cómo manejarlo»-
El SDK reintenta los
429automáticamente con backoff exponencial y jitter, respetando el headerRetry-After. Si el límite persiste, recibes unRateLimitErrorconretryAfter:import { RateLimitError } from '@simplohq/sdk';try {await simplo.dtes.list();} catch (error) {if (error instanceof RateLimitError) {console.error(`Rate limit. Reintenta en ${error.retryAfter ?? '?'}s`);}} -
El trabajo por lotes debe marcar su propio ritmo en vez de depender de los reintentos: encola y espacia las llamadas — con 60/min por empresa, un lote grande de emisiones necesita ritmo propio.
-
Los agentes conectados por MCP tienen su propio presupuesto (120/min) — no compiten con tu backend de emisión.
Límites de paginación
Sección titulada «Límites de paginación»limit en los listados va de 1 a 100 items por página (default 20) — ver
Paginación.
Relacionado
Sección titulada «Relacionado»- Errores —
RateLimitErrory las reglas de reintento