Documentación › Conceptos
Paginación y límites
Cursor de cada lista, límite de 120 solicitudes por minuto y tamaño máximo del cuerpo.
Paginación por cursor
Las listas que pueden crecer usan cursor: pides una página, guardas el cursor que vino y lo devuelves para pedir la siguiente. Los nombres cambian entre las rutas. Es herencia de las dos partes del producto (los documentos recibidos nacieron antes de la emisión), y el contrato no cambia, así que revisa la tabla:
| Ruta | Parámetro del cursor | Ítems en | Siguiente cursor en | limite (predeterminado / máx.) |
|---|---|---|---|---|
GET /v1/documents |
cursor |
itens |
proximoCursor |
20 / 100 |
GET /v1/nfse |
cursor |
dados |
proximo_cursor |
50 / 100 |
GET /v1/lotes |
cursor |
dados |
proximo_cursor |
20 / 100 |
GET /v1/lotes/{id}/itens |
cursor |
dados |
proximo_cursor |
100 / 500 |
GET /v1/webhooks/{id}/entregas |
cursor |
entregas |
proximo_cursor |
50 / 200 |
GET /v1/eventos |
apos |
eventos |
proximo_cursor |
100 / 1000 |
GET /v1/companies y GET /v1/webhooks no están paginados: devuelven la
lista completa.
Reglas que valen para todas:
- Trata el cursor como valor opaco. Guárdalo y devuélvelo exactamente como vino. No lo interpretes, no lo armes, no lo compares. El formato interno puede cambiar.
- Termina cuando el siguiente cursor venga nulo. Una página con menos
ítems que
limite, o incluso vacía, no significa que se acabó: con filtro destatus, la página puede venir más pequeña y todavía tener siguiente cursor. GET /v1/eventoses diferente: elproximo_cursorviene siempre, incluso en la página vacía. Es un registro que crece: guarda el último cursor y vuelve a leer a partir de él después. Consulta Eventos.- En las rutas de emisión, lote, webhooks y eventos, un cursor inválido es 400
parametro_invalido. En/v1/eventos, un cursor más antiguo que la retención de 90 días es 410cursor_vencido, concursor_mais_antigopara continuar. limitefuera del rango: en/v1/nfsese ajusta para quedar dentro de él, sin error; en las demás rutas es 400.
Límite de solicitudes
120 solicitudes por minuto, por clave de API, en una ventana fija de 60
segundos alineada al reloj. Pasar el límite devuelve 429. No hay
encabezado Retry-After ni X-RateLimit-*: espera el cambio de minuto y
repite la misma solicitud.
- Un
POST /v1/lotescuenta como una llamada, sin importar el número de ítems. Para volumen, usa lotes. - Para hacer el seguimiento de notas fiscales, usa webhook. Consultar una nota fiscal cada segundo gasta el límite sin adelantar nada.
Tamaño del cuerpo
Hasta 2 MB por solicitud. POST /v1/lotes acepta hasta 30 MB en JSON y hojas
de cálculo de hasta 20 MB.