Como firmar la transferencia
Autorización de movimiento de fondos (action) Una vez se han completado con éxito todas las validaciones relacionadas con el procesamiento de la transferencia y la información del destinatario ha sido completamente resuelta, Transfiya realiza una llamada al endpoint action del banco originador.
action
, todos los datos tanto del usuario de origen como del destinatario ya están completamente resueltos. Antes de este punto, en algunos casos de uso, la información del destinatario podría no estar completamente disponible si aún no había sido registrado en el sistema. Firma de la acción principal (Sign main action)
Una vez Transfiya ha resuelto completamente la información de origen y destino, se procede a autorizar el movimiento de fondos dentro del sistema. Esta operación consiste en la firma de la acción principal por parte del banco originador. La firma se realiza a través de un objeto IOU (prueba criptográfica), que garantiza que el banco autoriza la transacción y que esta no fue modificada.
Este proceso tiene como finalidad asegurar la integridad y validez de la operación antes de que se ejecute el movimiento final hacia el banco destinatario.
Transfiya llama al endpoint `/action` del banco originador
Transfiya realiza una solicitud al endpoint /action
del banco originador, incluyendo todos los datos relevantes de la acción principal. Esta llamada tiene como objetivo solicitar autorización para mover fondos entre usuarios.
El banco origen genera un objeto IOU, lo firma y lo envía a Transfiya
El banco crea un objeto IOU con los datos de la acción principal, lo firma con la clave privada asociada al firmante origen y lo envía a Transfiya para su validación.
La variable mainAction
representa el payload enviado al banco en el endpoint /action
.
El objeto IOU se utiliza para autorizar un movimiento de saldo entre los firmantes de usuario origen y destino en Transfiya. Este objeto DEBE reflejar fielmente la acción principal que representa. Por ello, la mayoría de los datos del IOU se copian desde mainAction
.
Transfiya utiliza firmas criptográficas como prueba de que los participantes autorizaron movimientos de saldo. Los datos se hashean primero y luego se firman usando claves privadas, las cuales nunca deben compartirse con TransfiYa. Los algoritmos de firma y hash están documentados, y los SDKs de TransfiYa ofrecen soporte para simplificar estas integraciones.
Transfiya validates the signature of the received IOU object and stores it in the ledger, if everything is valid. This operation also marks the main action as COMPLETED.
Field name | Descripción en español |
---|---|
<main_action_id> | ID de la acción principal que se usa en la URL. Esta es la acción recibida como payload en la llamada a /action . En el ejemplo es 35de4d3d-3aba-4fb3-b110-d004ce2aabb2 . |
data.source | mainAction.snapshot.source.signer.handle |
data.target | mainAction.snapshot.target.signer.handle |
data.symbol | mainAction.snapshot.symbol.signer.handle |
data.amount | mainAction.amount |
data.domain | mainAction.labels.domain |
data.expiry | currentTime + 1 minuto en formato ISO 8601. Indica el momento a partir del cual Transfiya puede expirar la operación pendiente. |
hash | Un hash del objeto data , que puede ser generado utilizando los SDKs. El campo hash.value es el hash en sí; los demás campos son metadatos de hashing. |
meta.signatures | Firma del hash generada con la clave privada del firmante (IOU source). Estas firmas pueden ser generadas con los SDKs. schema : algoritmo usado. signer : handle del firmante. public : clave pública. string : valor de la firma. |
La variable mainAction
representa el payload enviado al banco en el endpoint /action
.
El objeto IOU se utiliza para autorizar un movimiento de saldo entre los firmantes de usuario origen y destino en Transfiya. Este objeto DEBE reflejar fielmente la acción principal que representa. Por ello, la mayoría de los datos del IOU se copian desde mainAction
.
Transfiya utiliza firmas criptográficas como prueba de que los participantes autorizaron movimientos de saldo. Los datos se hashean primero y luego se firman usando claves privadas, las cuales nunca deben compartirse con TransfiYa. Los algoritmos de firma y hash están documentados, y los SDKs de TransfiYa ofrecen soporte para simplificar estas integraciones.
Transfiya validates the signature of the received IOU object and stores it in the ledger, if everything is valid. This operation also marks the main action as COMPLETED.
Field name | Descripción en español |
---|---|
<main_action_id> | ID de la acción principal que se usa en la URL. Esta es la acción recibida como payload en la llamada a /action . En el ejemplo es 35de4d3d-3aba-4fb3-b110-d004ce2aabb2 . |
data.source | mainAction.snapshot.source.signer.handle |
data.target | mainAction.snapshot.target.signer.handle |
data.symbol | mainAction.snapshot.symbol.signer.handle |
data.amount | mainAction.amount |
data.domain | mainAction.labels.domain |
data.expiry | currentTime + 1 minuto en formato ISO 8601. Indica el momento a partir del cual Transfiya puede expirar la operación pendiente. |
hash | Un hash del objeto data , que puede ser generado utilizando los SDKs. El campo hash.value es el hash en sí; los demás campos son metadatos de hashing. |
meta.signatures | Firma del hash generada con la clave privada del firmante (IOU source). Estas firmas pueden ser generadas con los SDKs. schema : algoritmo usado. signer : handle del firmante. public : clave pública. string : valor de la firma. |
El banco originador responde confirmando el ID de la acción
Para finalizar el proceso, el banco responde confirmando el action_id
recibido, cerrando así la etapa de firma de la acción principal.
Pueden devolverse campos adicionales en la respuesta, pero solo el campo action_id
es obligatorio.
Pueden devolverse campos adicionales en la respuesta, pero solo el campo action_id
es obligatorio.
En caso de errores no recuperables durante el procesamiento, se puede devolver un objeto error
a Transfiya como parte de la respuesta.
Los códigos de error devueltos por los bancos deben estar en el rango 3xx
.
Field name | Descripción |
---|---|
error.code | Un código de error válido soportado por Transfiya que indica el error ocurrido. |
error.message | Un mensaje con información adicional sobre el error. |