Paginación
Cursores, orden y consistencia.
Las listas devuelven data, has_more y next_cursor. Pide la siguiente página pasando cursor=<next_cursor>, con los mismos filtros.
| Parámetro | Valor |
|---|---|
limit | De 1 a 100. Por omisión, 25 |
cursor | El next_cursor de la respuesta anterior |
El cursor es opaco y queda atado a tu empresa, a tu ambiente, a la ruta y a sus filtros. No lo construyas ni lo edites: cambiar un filtro exige empezar de nuevo.
Listas sin cursor
GET /v1/balances, GET /v1/wallets, GET /v1/receiving-accounts, GET /v1/collection-methods y GET /v1/webhook-endpoints devuelven sólo data.
Movimientos: un cursor que no termina
En GET /v1/movements, next_cursor puede venir con valor aunque has_more sea false. Guárdalo en cada página: la siguiente consulta con ese cursor sigue donde quedaste.
Una vuelta es recorrer la lista hasta has_more: false. Al abrirla, el cursor fija su horizonte: la hora en que empezó. Lo conserva toda la vuelta, también a la mitad y aunque tardes horas en leerla. Al terminar, next_cursor no sigue desde la última fila: abre la siguiente vuelta desde ese horizonte, con un pequeño solape. Así ves lo que cambió mientras recorrías.
- Sólo
has_moredice si sigue. Una página puede llegar corta, o vacía, conhas_more: true. - Un mismo
idpuede repetirse con un estado más nuevo. Deduplica poridy quédate con la copia deupdated_atmás reciente. Unapartialno reemplaza a unacompleteque ya tienes.
Variables de estas muestras: simulador público, sin cuenta
Define esto en tu terminal. Con estos valores las muestras corren tal cual contra el simulador público:
export FITAL_API="https://widget.fital.xyz/explorar/v1"
export FITAL_KEY="sk_test_sandbox_publica"En la cuenta de prueba o en producción cambia la base, la llave y el secreto, y sustituye los id de ejemplo por los tuyos. Ver Ambientes.
# CURSOR vive en tu almacenamiento durable; vacío la primera vez.
CURSOR=""
curl -sS -G "$FITAL_API/movements" \
-H "Authorization: Bearer $FITAL_KEY" \
--data-urlencode "limit=25" \
${CURSOR:+--data-urlencode "cursor=$CURSOR"}Errores comunes
400 invalid_requestporlimitfuera de rango.- Reusar un cursor con otros filtros: el cursor deja de ser válido.
- Terminar una vuelta por una página corta o vacía: sólo termina con
has_more: false.