FITALAPI

Lista de migración

Qué revisar en tu integración tras los ajustes del contrato v1.

Si integraste antes del 5 de noviembre de 2026, revisa esta lista una vez. Ninguna fila quita un campo ni una ruta, pero varias cambian una respuesta que tu código pudo haber asumido. El detalle de cada cambio está en Cambios.

Beneficiarios y latam

AntesAhoraQué hacer
Un alta latam inválida quedaba en 202 processingResponde 422 invalid_beneficiaryManeja ese 422, corrige los datos y usa una clave nueva. Ver Pago LatAm
El alta latam no recibía tipo de cuenta, y Perú no se podía registrarAcepta account_type, y Perú lo exigeEnvíalo cuando account_type_required sea true
Países y bancos se pedían a tu ejecutivoGET /v1/latam/countries y GET /v1/latam/countries/{country}/entitiesConsúltalos en vez de fijarlos en tu código

Pagos y errores

AntesAhoraQué hacer
failure_code podía ser null en un pago failedNunca es null en un pago failed, tampoco si el detalle ya no se puede leerQuita la rama de failed sin código. Sigue tolerando códigos nuevos
Los eventos payment.* no traían failure_codeTodos lo traen, con valor sólo en payment.failedLéelo del evento si te sirve
Un rechazo registrado podía decir retryable: trueSiempre dice retryable: false, también con in_reviewDecide por retryable de la respuesta, no por el código. Ver Qué hacer con la clave tras un rechazo
El tope del cuerpo no estaba declarado413 a partir de 64 KB, con el código invalid_requestParte los lotes grandes. Repetir no sirve. Ver Límites
Una Idempotency-Key con otro cuerpo dejaba de rechazarse a los 7 días422 idempotency_key_reused también despuésNo reutilices claves

Cobros y altas con 202

AntesAhoraQué hacer
POST /v1/collections no comprobaba payer: en la cuenta de prueba, un cobro por SPEI sin payer daba 201Sin un required, o fuera de options, responde 400 invalid_request con payer.<campo> en details.fields. La prueba por SPEI pide firstName, lastName y emailEnvía payer según payer_fields. El cuerpo corregido necesita otra Idempotency-Key
Las claves de payer se pedían a tu ejecutivopayer_fields de GET /v1/collection-methods las da por métodoArma payer desde esa lista. Ver Cobros
GET /v1/collections/{id} no daba instruction.type ni expires_atLos daQuita la copia que guardabas del alta
Repetir la clave tras un 202 de POST /v1/collections, POST /v1/deposit-addresses o POST /v1/beneficiaries repetía ese 202Entrega el resultado en cuanto existeRepite con la misma clave hasta tener el resultado

Webhooks y eventos

AntesAhoraQué hacer
Los webhooks no traían resource_idLo traen, igual que GET /v1/eventsÚsalo para agrupar por recurso
Event.type, Event.data y WebhookEndpoint.status eran abiertos en el contratoSon enumeraciones y formas declaradasRegenera tu cliente. Sigue ignorando los tipos que no conozcas
system.egress_ips.changing no se emitíaTrae ip, change, effective_at y un resource_id con egr_. Llega una vez por destino, también al que se activa hasta una hora antes del cambioVigílalo si filtras por IP. Ver IP de webhooks
No había una respuesta sobre gestionar destinos por APIv1 sólo los consulta, por decisión: todo cambio va por el panelNo esperes esas operaciones. Ver Dar de alta un destino

Movimientos, recibos y llaves

AntesAhoraQué hacer
Una fila de GET /v1/movements que cambiaba podía perdersePuede repetirse, y nunca se omite otraDeduplica por id y guarda next_cursor en cada página. Ver Paginación
completed_at podía traer fecha en un recibo no completadonull si el movimiento no terminó en completedNo lo uses para fechar un pago devuelto
El calendario de avisos de caducidad no estaba publicadoProducción caduca a 180 días, y el panel avisa a 30, 7 y 1 díasPrevé la rotación. Ver Vencimiento

Cuenta de prueba

AntesAhoraQué hacer
POST /sandbox/v1/webhooks/trigger mandaba un data reducidoManda la forma real de cada tipo, con datos ficticios y simulated: truePrueba tu receptor con todos los tipos
No había catálogo latamGET /sandbox/v1/latam/countries da países ficticios con available: falseNo esperes un alta latam aquí: responde 403 rail_not_enabled

Errores comunes

  • Tratar un 202 de alta como un fallo y cambiar de clave.
  • Copiar la tabla de países en tu código en vez de consultar la API.
  • Corregir payer y repetir con la misma clave.

Qué sigue

Cambios y Versionado.

Ver esta página en Markdown

En esta página