Como debitar al usuario origen (beneficiario)
UPLOAD
. Si esta acción se marca como COMPLETED
exitosamente, pero más adelante ocurre un error en el procesamiento, Transfiya ejecutará una operación opuesta (de tipo credit
) para revertir el movimiento de saldo y restablecer el estado original de la cuenta.
Flujo de debito al usuario origen
SEND
, enfocándonos en la etapa de débito al usuario origen. Este flujo se ejecuta en múltiples etapas, combinando interacciones entre Transfiya y el banco originador, tanto en fases síncronas como asincrónicas.
El objetivo principal de este proceso es asegurar que los fondos del usuario origen estén disponibles y sean reservados o debitados correctamente antes de avanzar con el resto de la operación. El flujo también contempla los mecanismos necesarios para revertir movimientos en caso de errores, así como el uso de pruebas criptográficas (IOU) y el cumplimiento de los tiempos regulatorios.
Cada paso está alineado con los lineamientos del nuevo modelo SPI (Sistema de Pagos Inmediatos) y busca mantener la compatibilidad con la arquitectura existente de Transfiya. A continuación se detallan las acciones involucradas, junto con ejemplos prácticos y consideraciones técnicas relevantes.
Transfiya llama al banco origen para procesar la operación de débito
El banco origen crea una acción tipo `UPLOAD` en Transfiya
Atributo | Valor |
---|---|
source | bankSigner.handle — Bank settlement signer. |
target | mainAction.snapshot.source.signer.handle — Source of the transfer (bank user). |
symbol | mainAction.symbol — Currency of the transfer. |
labels.type | UPLOAD — Always UPLOAD for debits. |
labels.tx_ref | mainAction.labels.tx_ref — Transfer reference. |
mainAction
en los valores se utiliza al hacer referencia a los datos de la acción principal recibida desde TransfiYa. En otras palabras, representa el cuerpo de una llamada POST a https://ban.co/transfiya/debit
.bankSigner
representa el firmante de liquidación que es registrado por el banco durante el proceso de incorporación con TransfiYa. Este firmante mantiene el balance total disponible para el banco dentro del sistema.El banco origen responde a la solicitud inicial de débito
action_id
.action_id
es obligatorio.El banco valida la cuenta origen y debita el monto correspondiente
El banco actualiza la acción `UPLOAD` con el `tx_id` de la transacción interna
tx_id
permite posteriores conciliaciones entre Transfiya y el banco.Field name | Field value |
---|---|
<upload_action_id> | The <upload_action_id> used in the URL is the ID of the UPLOAD action created in step 2. In our example, it is 5954ac04-b4db-4c6f-86f6-43df30f6bacb . |
labels.tx_id | Unique identifier of the transaction executed by the bank to debit the funds from the source account. |
El banco crea y firma un objeto IOU como prueba criptográfica
UPLOAD
como COMPLETED
.El banco realiza validaciones finales y llama al endpoint `continue`
received
y dispatched
. Se puede incluir un objeto error
si aplica.continue
y proporcionar las marcas de tiempo requeridas por la regulación.Field name | Descripción |
---|---|
<tx_ref> | El campo <tx_ref> en la URL representa la referencia de la transferencia, que se encuentra en labels.tx_ref del mainAction . |
received | Marca de tiempo en formato ISO 8601. Representa el momento en que se recibió la última respuesta de Transfiya (llamada sendit ). |
dispatched | Marca de tiempo en formato ISO 8601. Representa el momento en que se envió la llamada continue a Transfiya. |