El objeto Movement
Un Movement representa una transacción en una cuenta bancaria, como una transferencia, un cheque u otro cargo o abono. Fintoc obtiene el objeto desde una institución para una cuenta asociada a un Link. La API devuelve el objeto cuando listas o consultas movimientos.
Movement Object
Movement incluye los siguientes atributos:
post_date y transaction_dateCada movimiento incluye dos fechas: post_date y transaction_date. Los bancos usan fechas contables, por lo que una transacción realizada un sábado puede aparecer con fecha del lunes. En este ejemplo, transaction_date corresponde al sábado y post_date, al lunes.El campo post_date es una fecha sin hora, por lo que Fintoc siempre la entrega a las 00:00:00.000Z. No la conviertas a tu zona horaria local, porque la conversión puede moverla al día anterior.El campo transaction_date incluye la hora que informa la institución. Según la institución, Fintoc puede entregar la hora local de Chile con el sufijo Z en lugar de una hora UTC real. Revisa los valores que recibes de cada institución antes de convertir transaction_date a otra zona horaria.Cheques pendientesEl banco puede tardar hasta 48 horas hábiles en confirmar un cheque. El banco puede revertir un cheque pendiente por motivos como la falta de fondos. Fintoc marca estos cheques con
pending para que sepas que el banco aún no los hace efectivos. El campo pending no cambia el status del movimiento.Estado del movimiento
El campostatus indica el estado actual de un movimiento. La mayoría de los movimientos están confirmed. Un movimiento puede pasar a processing o reversed mientras Fintoc procesa y valida los datos del banco.
Por defecto, List movements solo entrega movimientos confirmed. Envía confirmed_only=false para obtener también los movimientos processing y reversed:
pending y status
pending y status son campos distintos, y cada uno responde una pregunta diferente:
pendingaplica solo a cheques. Estruemientras el banco aún no hace efectivo el cheque. Para cualquier otro tipo de movimiento, siempre esfalse.statusaplica a todos los movimientos. Indica si el movimiento estáconfirmed,processingoreversed.
pending en true y status en confirmed. Los movimientos que guardaste antes no se actualizan solos. Vuelve a consultar el movimiento para obtener sus valores actuales de pending y status.
Los movimientos pueden cambiar después de crearse
El banco puede actualizar movimientos de la cartola después de que aparecen por primera vez. Estas actualizaciones pueden llegar días o semanas después de que Fintoc entrega el movimiento por primera vez. Fintoc mantiene el mismoid cuando un movimiento cambia. Entre los campos que pueden cambiar están:
type. Por ejemplo, un depósito de cheque puede aparecer primero contypeenothery luego cambiar acheck.description.statusypending. Un movimientoconfirmedno tiene garantía de ser final. El banco aún puede revertirlo.- Los datos de transferencia en
sender_accountyrecipient_account.
- Suscríbete a los eventos
account.refresh_intent.movements_modifiedyaccount.refresh_intent.movements_removed. Revisa Tipos de eventos. - Cuando recibas
movements_modified, toma elidde cada movimiento enmovements_changed. Consulta el movimiento con Get a movement y reemplaza tu copia guardada con la respuesta. - Cuando recibas
movements_removed, elimina de tus registros los movimientos cuyoidaparece enmovements_removed. - Vuelve a listar periódicamente los movimientos del mes en curso y reemplaza tus copias guardadas según su
id.
id del movimiento como clave de tus registros. No identifiques movimientos por type o description, porque pueden cambiar.
Depósitos con más de un cheque o documento
Fintoc lee los movimientos desde la cartola de la cuenta bancaria. Cuando depositas más de un cheque o documento en una misma operación, el banco muestra el depósito como una sola línea. Fintoc entrega esa línea como un solo movimiento por el monto total. La API de Movements no entrega el desglose de los cheques o documentos individuales del depósito, y ningún campo, parámetro o endpoint lo entrega. Eltype de un depósito depende de lo que depositaste:
- Los depósitos de cheques o documentos tienen
typeencheck. - Los depósitos en efectivo tienen
typeenother.
type, incluye ambos valores para no perder depósitos.
El banco puede descomponer un depósito en sus abonos individuales más adelante. Cuando Fintoc detecta la descomposición:
- Fintoc cambia el
statusdel movimiento agregado areversedy envía un eventoaccount.refresh_intent.movements_removedcon eliddel movimiento agregado enmovements_removed. - Fintoc crea un movimiento por cada abono individual y los cuenta en el campo
new_movementsdel eventoaccount.refresh_intent.succeeded.
reversed, elimina el movimiento agregado de tus registros y concilia los movimientos individuales. Mantener ambos registros cuenta el mismo depósito dos veces.
El objeto Transfer Account dentro de Movement
El objeto Transfer Account identifica la cuenta en el otro extremo de una transferencia. Aparece en los campos sender_account y recipient_account de un Movement: