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.

El cliente 1 confirma el pago del viaje compartido.
Pago de viaje compartido con el cliente 2.
El cliente solicita a Rapyd que cree un pago grupal.
Rapyd Crea un pago grupal y envía la confirmación.
El cliente 1 envía fondos.
El cliente 2 envía fondos.
Rapyd procesa la transacción y envía una confirmación de webhook.
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
Crear pago grupal: error
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
Decide qué métodos de pago aceptarás. Listar los métodos de pago por país .
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 Primero
En segundo lugar
|
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 delpago_grupales gp_b323dd9cf3e6a97f4cbca1d223e828b6.pago_grupalEl 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_codees USD (Dólares estadounidenses).El
estadoes 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.