Skip to main content

Documentación

Pagos grupales

Permita que hasta diez clientes combinen sus pagos individuales para una sola transacción de compra o un pago grupal.

Rapyd permite que hasta diez clientes compren un producto o un servicio juntos. Esta función es especialmente útil cuando los clientes comparten el mismo servicio. Algunos casos de uso pueden incluir:

  • Dos o más pasajeros que pagan por un servicio de viaje compartido.

  • Pago grupal de una factura o servicio.

Certificación PCI

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

Puedes encontrar los métodos de pago específicos que aceptarás y los campos obligatorios correspondientes que los clientes deben rellenar en la sección Cómo funciona.

Update_Icons_on_Group_Payments.jpg
  1. El cliente 1 confirma el pago del viaje compartido.

  2. Pago de viaje compartido con el cliente 2.

  3. El cliente solicita a Rapyd que cree un pago grupal.

  4. Rapyd Crea un pago grupal y envía la confirmación.

  5. El cliente 1 envía fondos.

  6. El cliente 2 envía fondos.

  7. Rapyd procesa la transacción y envía una confirmación de webhook.

  8. Notificas a cada cliente que se han recibido los fondos.

Los siguientes diagramas de secuencia de mensajes describen cómo se intercambia la información entre Rapyd, el comerciante, los clientes del comerciante y la red de tarjetas.

Crear pago grupal: éxito

create-group-payment-card.svg
create-group-payment-card-processing.svg

Crear pago grupal: error

create-group-payment-card-failed.svg
create-group-payment-card-failed-processing.svg
create-group-payment-card-failed-update.svg

Prerrequisitos

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

  • monedero electrónico - Corre Create Wallet para el bolsillo del servicio de transporte compartido. Usa la «identificación» que aparece en la respuesta

Busca los campos obligatorios que los clientes deben rellenar para cada método de pago. Campos obligatorios para obtener el método de pago .

Dos clientes pagan por un servicio de transporte compartido que cuesta 250 USD (dólares estadounidenses). Cuando llegan a su destino, el usuario de prueba 1 paga 50 USD y el usuario de prueba 2 paga 200

Para transferir el dinero a la billetera de la empresa, le pides a Rapyd que cree un pago grupal. De entre las muchas opciones de pago, ambos clientes eligen pagar mediante transferencias bancarias

Para eso, utilizarás Crear un pago grupal con los siguientes parámetros:

Descripción de los parámetros corporales

Parámetro corporal

Descripción

pagos

Introduzca una lista de pagos objetos que identifican cada pago, su tipo, importe del pago y moneda.

Primero pagos objeto del pago del usuario de prueba 1:

  • método_pago objeto dentro del pagos objeto:

    • tipo - Entrar us_debit_discover_card como método de pago.

    • campos - Introduce los detalles de la tarjeta.

    • cantidad - Ingresar 50 como la cantidad.

    • moneda - Entrar USD como código para dólares estadounidenses.

    • monederos electrónicos objeto dentro del pagos objeto:

      • monedero electrónico- Introduce el «identificador» del monedero que recibiste cuando lo creaste en tu sandbox. Para los fines de esta lección de casos de uso, estamos usando ewallet_4f8009d08b7b41e5d3b356494101d83b, que es el identificador de monedero que hemos creado en nuestra zona de pruebas.

En segundo lugar pagos objeto del pago de Test User2:

  • método_pago objeto dentro del pagos objeto:

    • tipo - Entrar us_mastercard_card como método de pago.

    • campos - Introduce los detalles de la tarjeta.

    • cantidad - Ingresar 200 como la cantidad.

    • monederos electrónicos objeto dentro del pagos objeto:

      • monedero electrónico- Introduce el «identificador» del monedero que recibiste cuando lo creaste en tu sandbox. Para los fines de esta lección de casos de uso, estamos usando ewallet_4f8009d08b7b41e5d3b356494101d83b, que es el identificador de monedero que hemos creado en nuestra zona de pruebas.

Crear solicitud de pago grupal

Le pides a Rapyd que cree el pago grupal en el monedero de tu empresa.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payments/group_payments
        
        // Message body:
        {
                "merchant_reference_id": "12345689",
                "payments": [
              {
                                "payment_method": {
                "type": "us_debit_discover_card",
                "fields": {
                    "number": "4111111111111111",
                    "expiration_month": "11",
                    "expiration_year": "21",
                    "cvv": "123",
                    "name": "Test User1",
                    "address": "123 Main street, Anytown"
                                        },
                                        "metadata": null
                                },
                                "amount": 50,
                                "currency": "USD",
                                "ewallets": [{
                                                "ewallet": "ewallet_4f8009d08b7b41e5d3b356494101d83b"
                                        }
                                ]
                        }, 
            {
                                "payment_method": {
                "type": "us_mastercard_card",
                "fields": {
                    "number": "4111111111111111",
                    "expiration_month": "11",
                    "expiration_year": "21",
                    "cvv": "123",
                    "name": "Test User2",
                    "address": "123 Main street, Anytown"
                                        },
                                        "metadata": null
                                },
                                "amount": 200,
                                "currency": "USD",
                                "ewallets": [{
                                                "ewallet": "ewallet_4f8009d08b7b41e5d3b356494101d83b"
                                        }
                                ]
                        }
                ]
        }
    • .NET Core

      • using System;
        using System.Text.Json;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        var payment_a = new
                        {
                            payment_method = new
                            {
                                type = "us_discover_card",
                                fields = new
                                {
                                    number = "4111111111111111",
                                    expiration_month = "11",
                                    expiration_year = "21",
                                    cvv = "123",
                                    name = "John Doe",
                                    address = "123 Main Street, Anytown, NY"
                                }
                            },
                            amount = 50,
                            currency = "USD",
                            ewallets = new Object[] {
                                new {
                                    ewallet = "ewallet_4f8009d08b7b41e5d3b356494101d83b"
                                }
                            }
                        };
        
                        var payment_b = new
                        {
                            payment_method = new
                            {
                                type = "us_mastercard_card",
                                fields = new
                                {
                                    number = "4111111111111111",
                                    expiration_month = "11",
                                    expiration_year = "21",
                                    cvv = "123",
                                    name = "John Doe",
                                    address = "123 Main Street, Anytown, NY"
                                }
                            },
                            amount = 200,
                            currency = "USD",
                            ewallets = new Object[] {
                                new {
                                    ewallet = "ewallet_4f8009d08b7b41e5d3b356494101d83b"
                                }
                            }
                        };
        
                        var requestObj = new
                        {
                            payments = new Object[]
                            {
                                payment_b,
                                payment_a
                            },
                            merchant_reference_id = "12345689"
                        };
        
                        string request = JsonSerializer.Serialize(requestObj);
        
                        string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payments/group_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 = {
              merchant_reference_id: '12345689',
              payments: [
                {
                  payment_method: {
                    type: 'us_discover_card',
                    fields: {
                      number: '4111111111111111',
                      expiration_month: '11',
                      expiration_year: '21',
                      cvv: '123',
                      name: 'Jane Doe',
                      address: '123 Main Street, Anytown'
                    }
                  },
                  amount: 50,
                  currency: 'USD',
                  ewallets: [
                    {
                      ewallet: 'ewallet_4f8009d08b7b41e5d3b356494101d83b'
                    }
                  ]
                },
                {
                  payment_method: {
                    type: 'us_mastercard_card',
                    fields: {
                      number: '4111111111111111',
                      expiration_month: '11',
                      expiration_year: '21',
                      cvv: '123',
                      name: 'John Doe',
                      address: '123 Main Street, Anytown'
                    }
                  },
                  amount: 200,
                  currency: 'USD',
                  ewallets: [
                    {
                      ewallet: 'ewallet_4f8009d08b7b41e5d3b356494101d83b'
                    }
                  ]
                }
              ]
            };
            const result = await makeRequest('POST', '/v1/payments/group_payments', 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 = [
            "merchant_reference_id" => "12345689",
            "payments" => [
                [
                    "payment_method" => [
                        "type" => "us_discover_card",
                        "fields" => [
                            "number" => "4111111111111111",
                            "expiration_month" => "11",
                            "expiration_year" => "21",
                            "cvv" => "123",
                            "name" => "Jane Doe",
                            "address" => "123 Main street, Anytown"
                        ]
                    ],
                    "amount" => 50,
                    "currency" => "USD",
                    "ewallets" => [[
                        "ewallet" => "ewallet_4f8009d08b7b41e5d3b356494101d83b"
                    ]
                    ]
                ],
                [
                    "payment_method" => [
                        "type" => "us_mastercard_card",
                        "fields" => [
                            "number" => "4111111111111111",
                            "expiration_month" => "11",
                            "expiration_year" => "21",
                            "cvv" => "123",
                            "name" => "John Doe",
                            "address" => "123 Main street, Anytown"
                        ]
                    ],
                    "amount" => 200,
                    "currency" => "USD",
                    "ewallets" => [[
                        "ewallet" => "ewallet_4f8009d08b7b41e5d3b356494101d83b"
                    ]
                    ]
                ]
            ]
        ];
        
        try {
            $object = make_request('post', '/v1/payments/group_payments', $body);
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        group_payment_body = {
            "merchant_reference_id": "12345689",
            "payments": [{
                "payment_method": {
                    "type": "us_discover_card",
                    "fields": {
                        "number": "4111111111111111",
                        "expiration_month": "11",
                        "expiration_year": "21",
                        "cvv": "123",
                        "name": "Jane Doe",
                        "address": "123 Main street, Anytown"
                    }
                },
                "amount": 50,
                "currency": "USD",
                "ewallets": [{
                    "ewallet": "ewallet_4f8009d08b7b41e5d3b356494101d83b"
                }]
            },
                {
                    "payment_method": {
                        "type": "us_mastercard_card",
                        "fields": {
                            "number": "4111111111111111",
                            "expiration_month": "11",
                            "expiration_year": "21",
                            "cvv": "123",
                            "name": "John Doe",
                            "address": "123 Main street, Anytown"
                        }
                    },
                    "amount": 200,
                    "currency": "USD",
                    "ewallets": [{
                        "ewallet": "ewallet_4f8009d08b7b41e5d3b356494101d83b"
                    }]
                }]
        }
        
        create_group_payment_response = make_request(method='post',
                                                     path='/v1/payments/group_payments',
                                                     body=group_payment_body)
        pprint(create_group_payment_response)
Obtenga una respuesta de pago grupal

Echemos un vistazo a la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "04d56aea-edee-4aa6-aea2-9d8ab7df98b6"
            },
            "data": {
                "id": "gp_b323dd9cf3e6a97f4cbca1d223e828b6",
                "amount": 250,
                "amount_to_replace": 0,
                "status": "closed",
                "currency": "USD",
                "country": "US",
                "merchant_reference_id": "12345689",
                "description": "",
                "metadata": {
                    "user_defined": "silver"
                },
                "expiration": null,
                "cancel_reason": null,
                "payments": [
                    {
                        "id": "payment_a2e52670fd0d59ce6f4c7520fdd8bdc1",
                        "amount": 50,
                        "original_amount": 50,
                        "is_partial": false,
                        "currency_code": "USD",
                        "country_code": "US",
                        "status": "CLO",
           
                //     ...
        
                        "paid": true,
                        "paid_at": 1581435110,
          
                //     ...
        
                        "ewallet_id": "ewallet_4f8009d08b7b41e5d3b356494101d83b",
                        "ewallets": [
                            {
                                "ewallet_id": "ewallet_4f8009d08b7b41e5d3b356494101d83b",
                                "amount": 50,
                                "percent": 100,
                                "refunded_amount": 0
                            }
                        ],
                        "payment_method_options": {},
                        "payment_method_type": "us_debit_discover_card",
                        "payment_method_type_category": "card",
                        "fx_rate": "",
                        "merchant_requested_currency": null,
                        "merchant_requested_amount": null,
                        "fixed_side": "",
                        "payment_fees": null,
                        "invoice": "",
                        "escrow": null,
                        "group_payment": "gp_b323dd9cf3e6a97f4cbca1d223e828b6"
                    },
                    {
                        "id": "payment_4dc0e0ad8590ac86157478fd1f678c19",
                        "amount": 200,
                        "original_amount": 200,
                        "is_partial": false,
                        "currency_code": "USD",
                        "country_code": "US",
                        "status": "CLO",
        
                //     ...
        
                        "paid": true,
                        "paid_at": 1581435110,
         
                //     ...
        
                        "ewallet_id": "ewallet_4f8009d08b7b41e5d3b356494101d83b",
                        "ewallets": [
                            {
                                "ewallet_id": "ewallet_4f8009d08b7b41e5d3b356494101d83b",
                                "amount": 200,
                                "percent": 100,
                                "refunded_amount": 0
                            }
                        ],
                        "payment_method_options": {},
                        "payment_method_type": "us_mastercard_card",
                        "payment_method_type_category": "card",
                        "fx_rate": "",
                        "merchant_requested_currency": null,
                        "merchant_requested_amount": null,
                        "fixed_side": "",
                        "payment_fees": null,
                        "invoice": "",
                        "escrow": null,
                        "group_payment": "gp_b323dd9cf3e6a97f4cbca1d223e828b6"
                    }
                ]
            }
        }

El datos la sección de la respuesta muestra:

  • identificación - El ID del pago_grupal es gp_b323dd9cf3e6a97f4cbca1d223e828b6. pago_grupal El identificador indica que el pago fue financiado por varios clientes.

  • Hay dos identificadores de pago. Cuando ejecutes este ejemplo en tu propio entorno limitado, obtendrás diferentes ID, que necesitarás para los pasos posteriores en este caso práctico

    • payment_a2e52670fd0d59ce6f4c7520fdd8bdc1 es el identificador del pago de Jane Doe.

    • payment_4dc0e0ad8590ac86157478fd1f678c19 es el identificador del pago de John Doe.

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

  • El estado es ACTUAR (Activo y en espera de pago).

  • token de cliente - Hay dos tokens de cliente:

    • cus_e0f030467d787e3e3e4570e3e623426a es el identificador de cliente de Jane Doe.

    • cus_f72b1a5d07af0c7aa9ff48008697456c es el identificador de cliente de John Doe.

  • monederos electrónicos - El identificador del monedero electrónico de su empresa en ambos pagos. El ID de la billetera electrónica ewallet_2dae0b1fea197d342868ab127c35592d y la cantidad es 200 USD.

  • tipo de método de pago - Hay dos métodos de pago:

    • US_debit_discover_card es el identificador del pago de Jane Doe.

    • us_mastercard_card es el método de pago de John Doe.

  • tipo_categoría_de_método de pago - El método de pago es tarjeta tipo para ambos pagos.

Su sitio web o aplicación notifica a los clientes que transfieran los fondos mediante transferencia bancaria. Cuando tanto John como Jane Doe realizan las transferencias, Rapyd procesa la transacción y envía Pago grupal completado webhook confirmando que el pago se ha realizado.

Simulación de una transferencia bancaria

El sandbox no simula directamente una transferencia bancaria. Puede simular esta acción con el procedimiento descrito en Completar el pago. Para ello, necesitarás el identificador de pago que recibiste para cada cliente en la respuesta a «Crear pago grupal

Configure su sistema para recibir webhooks con el procedimiento descrito en Definición de un endpoint de webhook.

Ahora su sitio web o aplicación puede informar a los dos clientes de que las transferencias a la billetera de su cliente se realizaron correctamente.