Reembolso a varias cuentas
Cuando varios vendedores participan en una sola transacción, puedes enviar un reembolso desde un vendedor.
Rapyd proporciona un método rápido y sencillo para procesar reembolsos parciales de una compra realizada por un cliente en tu sitio web de comercio electrónico.
Puedes hacer reembolsos parciales varias veces por la misma compra.
Los reembolsos se realizan al método de pago utilizado en la transacción de pago original. En este caso de uso, el cliente pagó con tarjeta a varios vendedores (monederos) y un vendedor específico (monedero) realizó un reembolso parcial
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
El cliente utiliza una tarjeta para comprar un altavoz y un teléfono a dos vendedores del sitio web de tu plataforma. Más adelante, el cliente solicita un reembolso parcial al vendedor del altavoz, ya que el altavoz no era del color exacto que se anunciaba
back-end de tu sitio web le pide a Rapyd que procese el reembolso parcial desde la cartera del vendedor del altavoz. Cuando el dinero se devuelve a la tarjeta del cliente, Rapyd te notifica que el reembolso parcial se ha
Puedes encontrar los métodos de pago por transferencia bancaria específicos que aceptarás y los campos obligatorios correspondientes que los clientes deben rellenar en la sección Cómo funciona.

Un cliente del sitio web de tu plataforma compra dos productos de dos vendedores diferentes.
El back-end del sitio web le pide a Rapyd que procese la transacción.
Rapyd procesa el pago.

El cliente rellena todos los campos requeridos por tu sitio web Solicitud de reembolso página para recibir un reembolso parcial de un vendedor. Tienes el identificador de la transacción y el importe que debes reembolsar
El cliente solicita al vendedor un reembolso parcial.
El backend de tu sitio web solicita a Rapyd que procese el reembolso parcial del cliente.
Rapyd procesa la transacción de reembolso y te notifica que se ha realizado correctamente y, a continuación, envías la confirmación del reembolso al cliente.
Prerrequisitos
Para ejecutar los ejemplos de este caso de uso, debe crear los siguientes ID en su propio sandbox:
'ewallet' - Ejecutar Crea un monedero para la cartera del vendedor del teléfono. Usa la «identificación» que obtienes en la respuesta. Repite el procedimiento para la cartera del vendedor del altavoz.
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 .
El cliente realiza estas compras en el sitio web de tu plataforma:
Un altavoz de un vendedor por 50,00 USD (dólares estadounidenses).
Un teléfono de otro vendedor por 200 USD (dólares estadounidenses).
Le pides a Rapyd que procese el pago.
Para eso, utilizarás Crear pago con los siguientes parámetros:
Descripción de los parámetros corporales
Parámetro corporal | Descripción |
|---|---|
cantidad | Entrar 250 como importe total del pago. |
moneda | Entrar USD como código para dólares estadounidenses. |
método_pago | Introduzca un objeto 'payment_method' que tenga los siguientes campos:...
|
monederos electrónicos | Introduzca una matriz de los siguientes objetos: Primer objeto:
Segundo objeto:
|
Crear solicitud de pago
Le pides a Rapyd que procese el pago.
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/payments // Message body: { "amount": 250, "currency": "USD", "payment_method": { "type": "us_debit_visa_card", "fields": { "number": "4111111111111111", "expiration_month": "10", "expiration_year": "20", "cvv": "123", "name": "Test User" } }, "ewallets": [ { "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858", "amount": 50 }, { "ewallet": "ewallet_11078019438f943986c1fcfbaba05e13", "amount": 200 } ] }
.NET Core
using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { var requestObj = new { amount = 250, currency = "USD", payment_method = new { type = "us_visa_card", number = "4111111111111111", expiration_month = "10", expiration_year = "20", cvv = "123", name = "John Doe", }, ewallets = new Object[] { new { ewallet = "ewallet_090e1ef18c3aa754fd43cce9ee454858", amount = 50 }, new { ewallet = "ewallet_11078019438f943986c1fcfbaba05e13", amount = 200 }, }, }; 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); } } } }
Pitón
from pprint import pprint from utilities import make_request payment_body = { "amount": 250, "currency": "USD", "payment_method": { "type": "us_visa_card", "fields": { "number": "4111111111111111", "expiration_month": "10", "expiration_year": "20", "cvv": "123", "name": "John Doe" } }, "ewallets": [ { "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858", "amount": 50 }, { "ewallet": "ewallet_11078019438f943986c1fcfbaba05e13", "amount": 200 } ] } create_payment_response = make_request(method='post', path='/v1/payments', body=payment_body) pprint(create_payment_response)
Crear respuesta de pago
Echemos un vistazo a la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "d584c716-0e2d-47aa-a85d-8e8d99f4ee45" }, "data": { "id": "payment_a257811affe292c98c8bb6693e8b8cf0", "amount": 250, "original_amount": 250, "is_partial": false, "currency_code": "USD", "country_code": "US", "status": "CLO", "description": "", "merchant_reference_id": "", "customer_token": "cus_8aeff2ec08a57b44e4442786276d4ef2", "payment_method": "card_d25e29a0cdb7866766bb2c2528cd49e3", // ... "created_at": 1581246669, "metadata": {}, "failure_code": "", "failure_message": "", "paid": true, "paid_at": 1581246670, // ... "ewallets": [ { "ewallet_id": "ewallet_090e1ef18c3aa754fd43cce9ee454858", "amount": 50, "percent": 20, "refunded_amount": 0 }, { "ewallet_id": "ewallet_11078019438f943986c1fcfbaba05e13", "amount": 200, "percent": 80, "refunded_amount": 0 } ], "payment_method_options": {}, "payment_method_type": "us_debit_visa_card", "payment_method_type_category": "card", // ... } }
El datos la sección de esta respuesta muestra que:
El pago
ides payment_a257811affe292c98c8bb6693e8b8cf0. 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ácticoEl
cantidades 250.El
monedaes USD.El
carterasel objeto indica:Una cantidad de 50 se paga a
ewallet_idewallet_090e1ef18c3aa754fd43cce9ee454858.Una cantidad de 200 se paga a
ewallet_idewallet_11078019438f943986c1fcfbaba05e13.
Utilizarás el pago id y del vendedor de altavoces ewallet_id cuando le pides a Rapyd que reembolse parcialmente el pago al vendedor del altavoz.
El cliente solicita un reembolso parcial al vendedor del altavoz porque el altavoz no era del color exacto que se anunciaba, y tus condiciones de servicio permiten un reembolso parcial del diez por ciento en tales circunstancias.
Cuando el cliente solicita un reembolso parcial en tu sitio web, le pides a Rapyd que procese el reembolso.
Para eso, utilizarás Crear reembolso con los siguientes parámetros:
Descripción de los parámetros corporales
Parámetro corporal | Descripción |
|---|---|
pago | Introduce el «identificador» de pago que recibiste cuando creaste el pago en tu entorno de pruebas. Para los fines de esta lección de casos de uso, estamos usando payment_a257811affe292c98c8bb6693e8b8cf0, que es el identificador de pago que creamos en nuestra zona de pruebas. |
monederos electrónicos | Introduzca un
|
Crear solicitud de reembolso
Le pides a Rapyd que procese el reembolso de la transacción anterior.
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/refunds // Message body: { "payment": "payment_a257811affe292c98c8bb6693e8b8cf0", "ewallets": [ { "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858", "amount": 5 } ] }
.NET Core
using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { var requestObj = new { payment = "payment_a257811affe292c98c8bb6693e8b8cf0", ewallets = new Object[] { new { ewallet = "ewallet_090e1ef18c3aa754fd43cce9ee454858", amount = 5, } } }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/refunds", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } }
JavaScript
const makeRequest = require('../../../../../Utilities/JS/utilities').makeRequest; async function main() { try { const body = { payment: 'payment_a257811affe292c98c8bb6693e8b8cf0', ewallets: [ { ewallet: 'ewallet_090e1ef18c3aa754fd43cce9ee454858', amount: 5 } ] }; const result = await makeRequest('POST', '/v1/refunds', body); console.log(result); } catch (error) { console.error('Error completing request', error); } }
Pitón
from pprint import pprint from utilities import make_request refund_body = { "payment": "payment_a257811affe292c98c8bb6693e8b8cf0", "ewallets": [ { "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858", "amount": 5 } ] } create_refund_results = make_request(method='post', path='/v1/refunds', body=refund_body) pprint(create_refund_results)
Crear respuesta de reembolso
Echemos un vistazo a la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "5356d170-951e-44d1-8bd5-fc5c6f110319" }, "data": { "id": "refund_61a4c85a7cf7a7e631e454784ec4c579", "amount": 5, "payment": "payment_a257811affe292c98c8bb6693e8b8cf0", "currency": "USD", "failure_reason": "", "metadata": {}, "reason": "", "status": "Completed", "receipt_number": 0, "created_at": 1581247161, "updated_at": 1581247161, "merchant_reference_id": "", "payment_created_at": 1581246669, "payment_method_type": "us_debit_visa_card", "ewallets": [ { "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858", "amount": 5 } ], "proportional_refund": false } }
El datos la sección de esta respuesta muestra:
El
Idsi el reembolso es refund_61a4c85a7cf7a7e631e454784ec4c579.El
cantidades 5.El
monedaes USD.El
estadoes Completado. Esto significa que el proceso de reembolso está completo.En el
carterasobjeto: El monedero cobrado es ewallet_090e1ef18c3aa754fd43cce9ee454858, la cartera del vendedor del altavoz.
Nota
Si el pago se realizó en efectivo o mediante una redirección bancaria, completar el proceso de reembolso requiere los mismos pasos adicionales que el método de pago original. Para simular la acción del cliente, ejecuta Reembolso completo.
Rapyd envía un webhook para notificarte que la transacción de reembolso se ha completado.
Tu sitio web muestra al cliente una confirmación de que se ha completado el reembolso parcial.
Visualización de detalles de transacciones
Para ver los detalles del pago y el reembolso, usa Recuperar el pago.
¿Busca información técnica más detallada?
¿Quieres ver los métodos y objetos de la API de Rapyd que utilizarás? Merchant API Reference para obtener más detalles técnicos.