FITALAPI

Movimientos y recibos

Lista cada entrada y salida de tu cuenta y descarga su recibo.

GET /v1/movements es el historial de tu cuenta. GET /v1/movements/{id}/receipt da el recibo de un movimiento terminal, en PDF o en JSON.

Listar

Filtros: from, to, type y currency. Los tipos son payment, deposit, crypto, internal, card y other: cada uno se explica en Valores de type.

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.

movimientos.sh
# 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"}

Guarda next_cursor en cada página, aunque has_more sea false: es el punto desde el que seguirás mañana. Un mismo id puede repetirse con un estado más nuevo: deduplica por id y quédate con la copia de updated_at más reciente. Ver Paginación.

Lectura parcial

read_status: "partial" significa que el dato aún no está completo. Relee ese movimiento más tarde, y no dejes que reemplace a una fila complete que ya tengas. Con partial no concluyas nada de status: suele salir processing aunque el pago ya hubiera terminado, y eso no es un retroceso.

Recibo

Con Accept: application/json obtienes los datos. Sin ese encabezado obtienes un PDF. La respuesta no se debe guardar en cachés compartidos.

recibo.sh
curl -sS "$FITAL_API/movements/mov_2hKsV9tBq4XzM7nD1cYpL6rF/receipt" \
  -H "Authorization: Bearer $FITAL_KEY" \
  -H "Accept: application/json"

Si el movimiento aún no es terminal, la respuesta es 409 receipt_not_available. completed_at llega en null si el movimiento no terminó en completed: un recibo de failed, returned o canceled no trae fecha de completado.

Errores comunes

  • Pedir el recibo de un movimiento en processing.
  • Reiniciar el cursor cada día: vuelves a leer todo.
  • Guardar el cursor sólo al terminar la vuelta: si tu proceso se cae, la repites entera.
  • 403 forbidden_scope: necesitas movements:read.

Qué sigue

Conciliar.

Ver esta página en Markdown

En esta página