Cómo mover fondos entre billeteras
Envíe dinero dentro del ecosistema de Rapyd. | Enterprise
La plataforma Rapyd facilita a sus clientes la transferencia de dinero desde su propia Rapyd Wallet a la billetera de otro cliente. Los casos de uso comunes pueden incluir:
Un cliente quiere transferir fondos a la billetera de otro cliente.
Un vendedor de un mercado decide transferir fondos a la billetera de otro vendedor.
La billetera de una empresa transfiere fondos a la billetera de un empleado para que la transacción sea más rápida que el desembolso.
Por ejemplo, un cliente de su plataforma quiere transferir fondos a otro cliente de su plataforma.
El cliente 1 le proporciona la información de identificación del cliente 2, el monto y la moneda a transferir. Su sistema ERP le pide a Rapyd que transfiera el dinero al cliente 2. Cuando se inicia la transferencia, su ERP le pide al cliente 2 que acepte la transferencia. Rapyd completa la transferencia y su ERP notifica a ambos clientes que se ha transferido el dinero.
Nota
¿Por qué transferir fondos entre Rapyd Wallets en lugar de un proceso de desembolso? Rapidez, sencillez y costos. La creación de un ecosistema de billeteras le permite pagar a sus trabajadores de forma más fluida, acelera el tiempo de procesamiento y evita las costosas comisiones de transacción de terceros.
Veamos los aspectos más destacados de su flujo de trabajo.
En su página web o aplicación móvil, el cliente selecciona Transferir fondos a otra billetera y hace clic en Confirmar.

La página web o la aplicación móvil solicitan al cliente los detalles de la transferencia.
El cliente 1 proporciona los detalles.
El back-end le pide a Rapyd que inicie la transferencia.
Rapyd procesa la solicitud y le notifica que se ha iniciado la transferencia.
Su back-end envía la confirmación al cliente que solicitó la transferencia.

Usted notifica al destinatario que se está enviando dinero y le pide que acepte.
El destinatario hace clic en Aceptar.
Su back-end le pide a Rapyd que finalice la transferencia.
Rapyd transfiere el dinero y le notifica que la transferencia se ha completado.
Usted notifica a ambos clientes que la transferencia se ha completado.
Los siguientes diagramas de secuencia de mensajes describen cómo se intercambia la información entre Rapyd, el comercio y los clientes del comercio.
Transferir fondos entre billeteras
Transferencia de fondos entre billeteras: rechazada
Transferencia de fondos entre billeteras: cancelada
Prerrequisitos
Para ejecutar los ejemplos de este caso de uso, debe crear los siguientes ID de billetera en su propia sandbox:
source_ewallet: ejecute Crear una billetera para la billetera del cliente. Use el ID de billetera que obtuvo en la respuesta.
destination_wallet: ejecute Crear una billetera para la billetera del cliente. Use el ‘id’ que obtuvo en la respuesta.
Para obtener más información, consulte Crear una Rapyd Wallet.
Cuando el cliente solicita transferir fondos a la billetera del cliente, pídale a Rapyd que inicie el proceso de transferencia. Este es el primer paso de un proceso de dos pasos.
Para eso, use Transferir fondos entre billeteras con los siguientes parámetros:
Descripción de los parámetros
Parámetro del cuerpo | Descripción |
|---|---|
amount | Introduzca 100 como el monto a transferir de la billetera del cliente. |
currency | Introduzca USD como código de moneda para dólares estadounidenses. |
source_ewallet | Introduzca el ID que recibió cuando creó la cartera del cliente en su sandbox. Para los fines de esta lección de casos de uso, estamos usando ewallet_56a273c10570528c608f2c6bcdc8ea41, que es el ID de la billetera que hemos creado en nuestra sandbox. |
destination_ewallet | Introduzca el ‘id’ que recibió cuando creó la cartera del cliente 2 en su sandbox. Para los fines de esta lección de casos de uso, estamos usando ewallet_43b888d4c038a219c52f45e754139f74, que es el ID de la billetera que hemos creado en nuestra zona de pruebas. |
Solicitud de transferencia de fondos entre billeteras
Pídale a Rapyd que transfiera el dinero a la billetera del cliente 2.
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/account/transfer // Message body: { "amount": 100, "currency": "USD", "source_ewallet": "ewallet_56a273c10570528c608f2c6bcdc8ea41", "destination_ewallet": "ewallet_43b888d4c038a219c52f45e754139f74", }
.NET Core
using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { var requestObj = new { amount = 100, currency = "USD", source_ewallet = "ewallet_56a273c10570528c608f2c6bcdc8ea41", destination_ewallet = "ewallet_43b888d4c038a219c52f45e754139f74", }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/account/transfer", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } }
JavaScript
const makeRequest = require('<path-to-your-utility-file>/utilities').makeRequest; async function main() { try { const body = { source_ewallet: 'ewallet_56a273c10570528c608f2c6bcdc8ea41', destination_ewallet: 'ewallet_43b888d4c038a219c52f45e754139f74', amount: 100, currency: 'USD' }; const result = await makeRequest('POST', '/v1/account/transfer', body); console.log(result); } catch (error) { console.error('Error completing request', error); } }
PHP
<?php $path = $_SERVER['DOCUMENT_ROOT']; $path .= "/<path-to-your-utility-file>/utilities.php"; include($path); $body = [ 'amount' => 100, 'currency' => 'USD', 'source_ewallet' => 'ewallet_56a273c10570528c608f2c6bcdc8ea41', 'destination_ewallet' => 'ewallet_43b888d4c038a219c52f45e754139f74' ]; try { $object = make_request('post', '/v1/account/transfer', $body); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Respuesta de transferencia de fondos entre billeteras
Veamos la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "1e6a07d6-7b06-4d6b-88b6-552fd4c2ec60" }, "data": { "id": "af468df8-6f4e-11ea-833c-02e199f7f6f5", "status": "PEN", "amount": 100, "currency_code": "USD", "transfer_response_at": 0, "created_at": 1585219432, // ... } }
La sección data de esta respuesta muestra:
El
Idde la transacción de transferencia es af468df8-6f4e-11ea-833c-02e199f7f6f5. Cuando ejecute este ejemplo en su propia sandbox, obtendrá un ID diferente, que necesitará para un paso posterior en este caso de uso.El
statuses PEN (Pendiente). El dinero aún no se ha transferido.El
amountes 100.El
currency_codees USD.
Transacciones pendientes en el libro mayor de billeteras
Para ver el estado de las transacciones, consulte el campo status. El source_ewallet_id o el destination_ewallet_id identifican la billetera de origen y destino de la transacción.
Cuando el cliente 2 indica que acepta la transferencia, pídale a Rapyd que complete la transacción.
Para eso, use Configurar la respuesta de transferencia con los siguientes parámetros:
Descripción de los parámetros
Parámetro del cuerpo | Descripción |
|---|---|
id | Introduzca el ‘id’ de la transacción de transferencia que recibió al crear la transacción de transferencia en su sandbox. Para los fines de esta lección de casos de uso, estamos usando af468df8-6f4e-11ea-833c-02e199f7f6f5, que es el ID de la transacción de transferencia que creamos en nuestra sandbox. |
status | Introduzca aceptar para indicar que el cliente 2 acepta la transferencia. |
Configurar solicitud de respuesta de transferencia
Pídale a Rapyd que complete la transferencia de $100,00 de la billetera del cliente a la billetera del cliente 2.
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/account/transfer/response // Message body: { "id": "af468df8-6f4e-11ea-833c-02e199f7f6f5", "status": "accept" }
.NET Core
using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { var requestObj = new { id = "af468df8-6f4e-11ea-833c-02e199f7f6f5", status = "accept", }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/account/transfer/response", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } }
JavaScript
const makeRequest = require('<path-to-your-utility-file>/utilities').makeRequest; async function main() { try { const body = { id: 'af468df8-6f4e-11ea-833c-02e199f7f6f5', status: 'accept' }; const result = await makeRequest('POST', '/v1/account/transfer/response', body); console.log(result); } catch (error) { console.error('Error completing request', error); } }
PHP
<?php $path = $_SERVER['DOCUMENT_ROOT']; $path .= "/<path-to-your-utility-file>/utilities.php"; include($path); $body = [ 'id' => 'af468df8-6f4e-11ea-833c-02e199f7f6f5', 'status' => 'accept', ]; try { $object = make_request('post', '/v1/account/transfer/response', $body); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Python
from pprint import pprint from utilities import make_request transfer = 'af468df8-6f4e-11ea-833c-02e199f7f6f5' body = { "id": transfer, "status": "accept" } results = make_request(method='post', path='/v1/account/transfer/response', body=body) pprint(results)
Establecer la respuesta de transferencia
Veamos la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "4b8e014f-38ff-48dc-812b-547bd1f65874" }, "data": { "id": "af468df8-6f4e-11ea-833c-02e199f7f6f5", "status": "CLO", "amount": 100, "currency_code": "USD", "destination_phone_number": null, "transfer_response_at": 1585219599, "created_at": 1585219432, // ... } }
La sección data de esta respuesta muestra que el estado es ahora CLO (cerrado). Esto indica que el dinero se ha transferido al monedero del cliente 2.
Su página web notifica a ambos contactos de la billetera que la transferencia se ha completado.