Skip to main content

Documentación

Cómo mover fondos entre carteras

Envía dinero dentro del ecosistema de Rapyd. | Empresa

La plataforma Rapyd facilita a sus clientes la transferencia de dinero desde su propia cuenta Rapyd Wallet a la billetera de otro cliente. Los casos de uso comunes pueden incluir:

  • Un cliente quiere transferir fondos al monedero de otro cliente.

  • Un vendedor de un mercado decide transferir fondos al monedero de otro vendedor.

  • El monedero de una empresa transfiere fondos al monedero de un empleado para que la transacción sea más rápida que el desembolso.

Por ejemplo, un cliente de tu plataforma quiere transferir fondos a otro cliente de tu plataforma.

cliente 1 le proporciona la información de identificación del cliente 2, el importe 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 Disburse? Rapidez, sencillez y costes. La creación de un ecosistema de monederos 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 tu sitio web o aplicación móvil, el cliente selecciona Transfiere fondos a otro monedero y clics Confirme.

initiate-the-transfer.jpg
  1. El sitio web o la aplicación móvil solicitan al cliente los detalles de la transferencia.

  2. El cliente 1 proporciona los detalles.

  3. El back-end le pide a Rapyd que inicie la transferencia.

  4. Rapyd procesa la solicitud y le notifica que se ha iniciado la transferencia.

  5. Tu back-end envía la confirmación al cliente que solicitó la transferencia.

complete-the-transfer.jpg
  1. Notificas al destinatario que se está enviando dinero y le pides que acepte.

  2. El destinatario hace clic Aceptar .

  3. Tu back-end le pide a Rapyd que finalice la transferencia.

  4. Rapyd transfiere el dinero y le notifica que la transferencia se ha completado.

  5. Notificas 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 comerciante y los clientes del comerciante.

Transfiere fondos entre carteras

transfer-funds-between-wallets-sequence---recipient-does-not-respond.svg

Transferencia de fondos entre carteras: rechazada

transfer-funds-between-wallets-sequence---customer-rejects-transaction.svg

Transferencia de fondos entre carteras: cancelada

transfer-funds-between-wallets-sequence---recipient-does-not-respond.svg

Prerrequisitos

Para ejecutar los ejemplos de este caso de uso, debes crear los siguientes ID de billetera en tu propio caja de arena :

  • source_ewallet - Corre Crea una billetera para la billetera del cliente. Usa el ID de billetera tú entras en la respuesta.

  • destination_wallet - Corre Crea una billetera para la billetera del cliente. Usa la «identificación» que obtienes en la respuesta.

Para obtener más información, consulte Creación de una billetera Rapyd.

Cuando el cliente solicita transferir fondos a la billetera del cliente, le pides a Rapyd que inicie el proceso de transferencia. Este es el primer paso de un proceso de dos pasos

Para eso, utilizarás Transfiera fondos entre carteras con los siguientes parámetros:

Descripción de los parámetros

Parámetro corporal

Descripción

cantidad

Entrar 100 como el importe a transferir del monedero del cliente.

moneda

Entrar USD como código de divisa para dólares estadounidenses.

source_ewallet

Introduzca el ID que recibiste cuando creaste la cartera del cliente en tu sandbox. Para los fines de esta lección de casos de uso, estamos usando ewallet_56a273c10570528c608f2c6bcdc8ea41, que es el identificador de monedero que hemos creado en nuestra zona de pruebas.

destination_wallet

Introduce la «identificación» que recibiste cuando creaste la cartera del cliente 2 en tu entorno de pruebas. Para los fines de esta lección de casos de uso, estamos usando ewallet_43b888d4c038a219c52f45e754139f74, que es el identificador de monedero que hemos creado en nuestra zona de pruebas.

Solicitud de transferencia de fondos entre carteras

Le pides 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";
        }
        ?>
Transfiere fondos entre carteras Response

Echemos un vistazo a 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,
                 
        //   ...
                  
            }
        }

El datos la sección de esta respuesta muestra:

  • El Id si la transacción de transferencia es af468df8-6f4e-11ea-833c-02e199f7f6f5. Cuando ejecutes este ejemplo en tu propia zona de pruebas, obtendrás un ID diferente, que necesitarás para un paso posterior en este caso práctico

  • El estado es BOLÍGRAFO (Pendiente). El dinero aún no se ha transferido.

  • El cantidad es 100.

  • El currency_code es USD.

Transacciones pendientes en un libro mayor de monederos

Para ver el estado de las transacciones, consulte estado campo. source_ewallet_id o el destination_ewallet_id identifique la cartera de origen y destino de la transacción.

Cuando el cliente 2 indica que acepta la transferencia, le pides a Rapyd que complete la transacción.

Para eso, utilizarás Configure la respuesta de transferencia con los siguientes parámetros:

Descripción de los parámetros

Parámetro corporal

Descripción

identificación

Introduce el «identificador» de la transacción de transferencia que recibiste al crear la transacción de transferencia en tu entorno de pruebas. Para los fines de esta lección de casos de uso, estamos usando af468df8-6f4e-11ea-833c-02e199f7f6f5, que es el identificador de la transacción de transferencia que creamos en nuestra zona de pruebas.

estado

Entrar aceptar para indicar que el cliente 2 acepta la transferencia.

Configurar solicitud de respuesta de transferencia

Le pides a Rapyd que complete la transferencia de 100,00$ del monedero del cliente al monedero 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";
        }
        ?>
    • Pitón

      • 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 respuesta de transferencia

Echemos un vistazo a 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,
                 
        //   ...
                  
            }
        }

El datos la sección de esta respuesta muestra que el estado es ahora CLO (cerrado). Esto indica que el dinero se ha transferido al monedero del cliente 2.

Tu sitio web notifica a ambos contactos del monedero que la transferencia se ha completado.