Skip to main content

Documentación

Dividir el pago por monto

Divida un único monto de pago entre varias cuentas.

Rapyd permite a un empleador pagar a varios empleados en una sola operación dividiendo un pago único en varias billeteras de Rapyd. Puede dividir un pago en 2 a 10 billeteras. Pagar directamente a las billeteras es especialmente útil cuando sus empleados no tienen cuentas bancarias.

  • Este proceso se puede utilizar para dividir los pagos en billeteras de clientes, billeteras de empresas y billeteras personales.

Certificación PCI

Solo clientes con la certificación PCI-DSS pueden gestionar la información de identificación personal de las tarjetas. Este método está disponible para los comercios que hayan firmado un acuerdo especial con Rapyd.

split-payment.jpg
  1. Obtenga los ID de las billeteras de los empleados de su propia base de datos y envíe los ID de las billeteras y los montos a Rapyd.

  2. Rapyd procesa la transacción y le envía la confirmación.

  3. Usted notifica a los empleados que se realizó el pago.

Prerrequisitos

Para ejecutar los ejemplos de este caso de uso, debe crear los siguientes ID en su propio sandbox:

  • ewallet_: Ejecute Crer una billetera para la billetera de cada conductor-empleado. Use el ID que aparece en la respuesta. Para este caso práctico, necesita dos ID de billeteras distintas. Para obtener más información, consulte Crear una billetera Rapyd.

Para enviar dinero a las billeteras de los empleados, pídale a Rapyd que cree un pago. De entre muchas opciones de pago, usted elija pagar con la tarjeta de su empresa.

Para eso, utilice Crear pago con los siguientes parámetros:

Descripción de los parámetros de cuerpo

Parámetro de cuerpo

Descripción

amount

Introduzca 300 para pagar 300,00 dólares estadounidenses. Esta es el monto total adeudado a todos los empleados.

currency

Introduzca USD como código de moneda para los dólares estadounidenses.

ewallet

Introduzca una matriz de objetos JSON.

El primer objeto contiene los siguientes campos:

  • ewallet - Introduzca el «id» de la billetera que recibió cuando creó la primera billetera en su sandbox. Para los fines de esta lección de casos de uso, estamos usando ewallet_cfb416d9108161347d98acf17f3fd3e8, que es el ID que hemos creado en nuestra zona de pruebas.

  • amount - 120

El segundo objeto contiene los siguientes campos:

  • ewallet: Introduzca el «id» de la billetera que recibiste al crear la segunda billetera en su sandbox. Para los fines de esta lección de casos de uso, estamos usando ewallet_4f8009d08b7b41e5d3b356494101d83b, que es el ID de billetera que hemos creado en nuestra zona de pruebas.

  • amount - 180

payment_method

Introduzca un objeto con los siguientes campos:

  • type: us_debit_visa_card

  • fields: Introduzca un objeto con los siguientes campos:

  • number: 4 1111111

  • expiration_month - 10

  • expiration_year - 20

  • cvv - 123

Crear solicitud de pago

Pídale a Rapyd que cree el pago a las billeteras.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payments
        
        // Message body:
        {
            "amount": 300.00,
            "currency": "USD",
            "payment_method": {
                "type": "us_debit_visa_card",
                "fields": {
                    "number": "4111111111111111",
                    "expiration_month": "10",
                    "expiration_year": "20",
                    "cvv": "123"
                }
            },
            "description": "Split payment to multiple wallets",
            "ewallet": [
                      {
                    "ewallet": "ewallet_cfb416d9108161347d98acf17f3fd3e8",
                    "amount": 120
                }, 
                            {
                    "ewallet": "ewallet_4f8009d08b7b41e5d3b356494101d83b",
                    "amount": 180
                }
            ]
        }
        
    • .NET Core

      • using System;
        using System.Text.Json;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        var requestObj = new
                        {
                            amount = 300.00,
                            currency = "USD",
                            description = "Split payment to multiple wallets",
                            ewallet = new Object[]
                            {
                                new
                                {
                                    ewallet = "ewallet_cfb416d9108161347d98acf17f3fd3e8",
                                    amount = 120
                                },
                                new
                                {
                                    ewallet = "ewallet_4f8009d08b7b41e5d3b356494101d83b",
                                    amount = 180
                                },
                            },
                            payment_method = new
                            {
                                type = "us_visa_card",
                                fields = new
                                {
                                    number = "4111111111111111",
                                    expiration_month = "10",
                                    expiration_year = "20",
                                    cvv = "123",
                                }
                            },
                        };
        
                        string request = JsonSerializer.Serialize(requestObj);
        
                        string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payments", 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 = {
              amount: 300,
              currency: 'USD',
              payment_method: {
                type: 'us_visa_card',
                fields: {
                  number: '4111111111111111',
                  expiration_month: '10',
                  expiration_year: '20',
                  cvv: '123'
                }
              },
              error_payment_url: 'https://error_example.net',
              description: 'Split payment to multiple wallets',
              ewallet: [
                {
                  ewallet: 'ewallet_89099803a1e923a3e1fe9fc8f656b425',
                  amount: 70
                },
                {
                  ewallet: 'ewallet_ecf2ee726c151603968549dd7f1406aa',
                  amount: 30
                }
              ]
            };
            const result = await makeRequest('POST', '/v1/payments', body);
        
            console.log(result);
          } catch (error) {
            console.error('Error completing request', error);
          }
        }
    • Python

      • from pprint import pprint
        
        from utilities import make_request
        
        payment_body = {
            "amount": 300.00,
            "currency": "USD",
            "payment_method": {
                "type": "us_visa_card",
                "fields": {
                    "number": "4111111111111111",
                    "expiration_month": "10",
                    "expiration_year": "20",
                    "cvv": "123"
                }
            },
            "description": "Split payment to multiple wallets",
            "ewallets": [
                {
                    "ewallet": "ewallet_452c8cd682f347b4abee9bbee04eac03",
                    "amount": 120
                },
                {
                    "ewallet": "ewallet_7af0aeeacbd9bf4d84bf1aeb52f6d8c3",
                    "amount": 180
                }
            ]
        }
        
        create_payment_response = make_request(method='post',
                                               path='/v1/payments',
                                               body=payment_body)
        pprint(create_payment_response)
Crear respuesta de pago

Veamos la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "81148d4b-185a-4069-9f32-3cf60a579730"
            },
            "data": {
                "id": "payment_6d8548656ddf97e5c9327c9c46e5498c",
                "amount": 3000,
        
        //      ...
                  
                "currency_code": "USD",
        
        //      ...
                  
                "status": "CLO",
                "description": "Split payment to multiple ewallets",
        
        //      ...
                  
                "customer_token": "cus_8a10326d75423c369420f2a2355df353",
                "payment_method": "card_2ed1da907a0603e3a3c13c737fc073ac",
        
        //      ...
                  
                "captured": true,
        
        //      ...
                  
                "ewallets": [
                    {
                        "ewallet_id": "ewallet_cfb416d9108161347d98acf17f3fd3e8",
                        "amount": 120,
                        "percent": 40,
                        "refunded_amount": 0
                    },
                    {
                        "ewallet_id": "ewallet_4f8009d08b7b41e5d3b356494101d83b",
                        "amount": 180,
                        "percent": 60,
                        "refunded_amount": 0
                    }
                ],
        
        //      ...
                  
                "payment_method_type": "us_debit_visa_card",
                "payment_method_type_category": "card",
        
        //      ...
                  
            }
        }

La sección de datos de la respuesta muestra:

  • id - El ID del objeto de «pago».

  • El original_amount es 300. Este es el monto total pagado.

  • El currency_code es USD (Dólares estadounidenses).

  • El status es CLO (cerrado). Esto significa que la transacción se ha completado.

  • customer_token - El ID del objeto «cliente» del empleador.

  • payment_method: El ID del método de pago del empleador.

  • captured: El valor true muestra que el pago con tarjeta se ha completado.

  • ewallets - Los ID de las billeteras de los empleados, junto con los montos y su respectiva participación porcentual en el pago total.

  • payment_method_type: En este ejemplo, el método de pago es us_debit_visa_card.

  • payment_method_type_category: El método de pago es tipo tarjeta.

  • Tras un pago exitoso, Rapyd le enviará un Webhook - Confirmar pago

Ahora su sitio web puede informar a los dos empleados de que la transferencia a sus billeteras se realizó correctamente.