Administración del depósito en garantía
Mantén cualquier método de pago en depósito para su posterior publicación.
Un depósito en garantía es un acuerdo para retener fondos en una transacción entre dos o más partes. Los depósitos en garantía ayudan a liquidar un intercambio entre un comprador y un vendedor en función de los requisitos acordados. Cuando un comprador realiza una compra de alto valor y los fondos se mantienen en depósito, los fondos se retienen para uno o varios vendedores y se pueden liberar de las siguientes maneras
Publicación total o parcial bajo demanda.
Se libera automáticamente después de un número específico de días.
Las liberaciones parciales se pueden liberar por cantidad o porcentaje y de forma proporcional o no proporcional.
El depósito en garantía es una función de Rapyd Collect que funciona con el back-end de su sitio web y retiene los fondos mediante un Rapyd Wallet. Cuando se realiza la compra, el back-end de su sitio web le pide a Rapyd que procese el pago y, a continuación, retiene los fondos en la billetera. Luego, los fondos se entregan al vendedor del artículo de acuerdo con el acuerdo predeterminado con el vendedor o a pedido. Cuando se libere el dinero, Rapyd te notifica a través de un webhook que la transferencia se completó correctamente
Un cliente compra un artículo por 250 USD (dólares estadounidenses) a un vendedor de tu plataforma. Mantienes en depósito los fondos que pagó el cliente. Liberas automáticamente un importe parcial de los fondos transcurridos 5 días y, de acuerdo con tus políticas empresariales, liberas el resto de los fondos al vendedor cuando
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
Paso 1: Procesar el pago en garantía
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.

Un cliente de tu plataforma compra un producto a un vendedor.
El back-end del sitio web le pide a Rapyd que procese la transacción y mantenga los fondos en depósito durante cinco días.
Rapyd procesa los pagos y mantiene los fondos en depósito.
Paso 2: Liberar fondos de depósito en garantía

El back-end del sitio web le pide a Rapyd que libere parte de los fondos para el vendedor.
Rapyd libera automáticamente parte de los fondos para el vendedor y continúa manteniendo los fondos restantes en depósito en garantía.
Rapyd libera manualmente los fondos de depósito en garantía restantes al vendedor en función de la entrega del artículo de alto valor.
El siguiente diagrama de estados finitos resume los estados de los pagos en depósito en garantía.
Descripción de los estados
Estado | Descripción |
|---|---|
pendiente | Se crearon el pago y el depósito en garantía, pero el pago no se ha completado y los fondos no están depositados en depósito. |
en espera | El pago se ha completado y los fondos están en depósito. |
lanzado | La totalidad o parte de los fondos se han entregado a las carteras. |
cancelado | Se cancela el depósito en garantía. |
Prerrequisitos
Para ejecutar los ejemplos de este caso de uso, debe crear los siguientes ID en su propio sandbox:
billetera_ - Corre Crea una billetera para la Rapyd Wallet del vendedor del teléfono. Usa la «identificación» que obtienes en la respuesta. Para obtener más información, consulte Creación de una billetera Rapyd. Repite para la billetera del vendedor del altavoz.
En tu página de pago, permites que el cliente seleccione un método de pago. En primer lugar, debes decidir qué métodos de pago aceptarás. En este ejemplo, comprobarás si hay métodos de pago en USD (dólares estadounidenses) en los Estados Unidos.
Para eso, utilizarás Listar los métodos de pago por país con los siguientes parámetros.
Descripción de los parámetros de consulta
Parámetro de consulta | Descripción |
|---|---|
país | Entrar NOSOTROS como código de país para los Estados Unidos. |
moneda | Entrar USD como código de divisa para los dólares estadounidenses. |
Solicitud de lista de métodos de pago por país
Solicita la lista de todos los métodos de pago estadounidenses disponibles en USD.
Solicitud
// Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/country?country=US¤cy=USD // Message body absent
.NET Core
using System; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { string country = "US"; string currency = "USD"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payment_methods/country?country={country}¤cy={currency}"); 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 result = await makeRequest('GET', '/v1/payment_methods/country?country=US¤cy=USD'); 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); try { $object = make_request('get', '/v1/payment_methods/country?country=US¤cy=USD'); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Pitón
from pprint import pprint from utilities import make_request results = make_request(method='get', path=f'/v1/payment_methods/country?country=US¤cy=USD') pprint(results)
Lista de métodos de pago por país Respuesta
Echemos un vistazo a la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "2ef3f76f-6a57-4d1f-bf60-162313d304bc" }, "data": [ { "type": "us_debit_visa_card", "name": "Visa", "category": "card", "image": "https://iconslib.rapyd.net/checkout/us_visa_card.png", "country": "US", "payment_flow_type": "card", "currencies": [ "USD" ], "status": 1, "is_cancelable": false, "payment_options": [], "is_expirable": false, "is_online": false, "minimum_expiration_seconds": null, "maximum_expiration_seconds": null } ] }
El datos la sección de esta respuesta muestra que us_debit_visa_card es un método de pago aceptable.
Nota: Una respuesta real suele incluir muchos métodos de pago.
Debes averiguar qué campos debe rellenar el cliente para el método de pago.
Para eso, utilizarás Obtener el método de pago: campos obligatorios con el siguiente parámetro:
Descripción de los parámetros de ruta
Parámetro de ruta | Descripción |
|---|---|
tipo | Entrar us_debit_visa_card como tipo de método de pago. |
Obtener el método de pago Campos obligatorios Solicitud
Solicita el conjunto de campos obligatorios para un us_debit_visa_card pago.
Solicitud
/ Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/us_debit_visa_card/required_fields // Message body absent
.NET Core
using System; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { string type = "us_visa_card"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payment_methods/{type}/required_fields"); 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 result = await makeRequest('GET', '/v1/payment_methods/us_visa_card/required_fields'); 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); try { $object = make_request('get', '/v1/payment_methods/us_visa_card/required_fields'); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Pitón
from pprint import pprint from utilities import make_request payment_method = 'us_visa_card' results = make_request(method='get', path=f'/v1/payment_methods/{payment_method}/required_fields') pprint(results)
Obtener el método de pago Campos obligatorios Respuesta
Echemos un vistazo a la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "0cd7be44-fd91-4b27-941f-158f5e47fb7c" }, "data": { "type": "us_debit_visa_card", "fields": [ { "name": "number", "type": "string", "regex": "", "is_required": true, "instructions": "card number" }, { "name": "expiration_month", "type": "string", "regex": "", "is_required": true, "instructions": "expiration month as string, 01-12" }, { "name": "expiration_year", "type": "string", "regex": "", "is_required": true, "instructions": "expiration year in to digits as string, 18-99" }, { "name": "cvv", "type": "string", "regex": "", "is_required": true, "instructions": "card cvv" }, { "name": "name", "type": "string", "regex": "", "is_required": false, "instructions": "card holder name" }, { "name": "address", "type": "Address", "regex": "", "is_required": false, "instructions": "card billing address. see Address object for more details" } ], "payment_method_options": [ { "name": "3d_required", "type": "string", "regex": "", "description": "", "is_required": false, "is_updatable": false } ], "payment_options": [], "minimum_expiration_seconds": null, "maximum_expiration_seconds": null } }
El datos la sección de esta respuesta muestra que se requieren cinco campos para un us_debit_visa_card pago. Estos campos son número, mes_de_caducidad , año_de_caducidad, cvv, y nombre .
John Doe realiza las siguientes compras en el sitio web de su mercado:
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 e incluya un depósito en garantía para retener los fondos durante cinco días.
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 «ewallets» que tenga dos objetos con los siguientes campos: Primer objeto:
Segundo objeto:
|
depósito en garantía | Entrar verdadero para habilitar el depósito en garantía. |
días_de_liberación_de_depósito | Entrar 5 como el número de días antes de que los fondos del depósito en garantía se liberen automáticamente. |
Crear solicitud de pago
Le pides a Rapyd que procese el pago y el pago en garantía.
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/payments // Message body: { "amount": 250, "currency": "USD", "requested_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 } ], "escrow": true, "escrow_release_days": "5" }
Pitón
from pprint import pprint from utilities import make_request payment_body = { "amount": 250, "currency": "USD", "requested_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 } ], "escrow": True, "escrow_release_days": "5" } 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": "2eb07c96-f541-43fa-bd33-3599c7ebb033" }, "data": { "id": "payment_3b01b41950ec59d92c532974edc8f7dd", "amount": 250, "original_amount": 250, "is_partial": false, "currency_code": "USD", "country_code": "US", "status": "CLO", "description": "", "merchant_reference_id": "", "customer_token": "cus_30896ef7ee24397f340cc64a1f474697", "payment_method": "card_cf53c0452fb183a09d1fff2f16577b74", // ... "created_at": 1580986835, // ... "paid": true, "paid_at": 1580986836, // ... "ewallets": [ { "ewallet_id": "ewallet_090e1ef18c3aa754fd43cce9ee454858", "amount": 200, "percent": 0, "released_amount": 0, "refunded_amount": 0 }, { "ewallet_id": "ewallet_11078019438f943986c1fcfbaba05e13", "amount": 50, "percent": 80, "released_amount": 0, "refunded_amount": 0 } ], "payment_method_options": {}, "payment_method_type": "us_debit_visa_card", "payment_method_type_category": "card", // ... "escrow": { "id": "escrow_150c88345d2bca0a8be05e54a952cc80", "payment": "payment_3b01b41950ec59d92c532974edc8f7dd", "amount_on_hold": 250, "total_amount_released": 0, "status": "on_hold", "escrow_release_days": 5, "created_at": 1580986835, "updated_at": 1580986835, "last_payment_completion": 1580986836 }, "group_payment": "" } }
El datos la sección de esta respuesta muestra que:
El
cantidades 250.El
monedaes USD.El
carterasel objeto indica:Una cantidad de 50 se mantiene en depósito durante
ewallet_idewallet_090e1ef18c3aa754fd43cce9ee454858 .Una cantidad de 200 se mantiene en depósito durante
ewallet_idewallet_11078019438f943986c1fcfbaba05e13 .
El
depósito en garantíaobjeto indica:Es
Hides escrow_150c88345d2bca0a8be05e54a952cc80 .El identificador de pago es
payment_3b01b41950ec59d92c532974edc8f7dd.El
cantidad_retenidaes 250.El
estadoes on_hold.El
escrow_release_dayses 5.
Cuando le pidas a Rapyd que entregue los fondos al vendedor de altavoces, utilizarás los fondos del vendedor de altavoces ewallet_id, el depósito en garantía objetos id y el pago ID.
Decides entregar inmediatamente los fondos de 50 USD (dólares estadounidenses) al vendedor del altavoz.
Para eso, utilizarás Libere fondos del depósito en garantía con los siguientes parámetros:
Descripción de los parámetros de ruta
Parámetro de ruta | Descripción |
|---|---|
pago | Introduce el identificador de pago («id») que recibiste al crear el pago en tu entorno limitado. Para los fines de esta lección de casos de uso, estamos usando payment_3b01b41950ec59d92c532974edc8f7dd, que es el identificador de pago que creamos en nuestra zona de pruebas. |
depósito en garantía | Introduce el identificador de depósito en garantía («id») que recibiste al crear el pago en tu entorno de pruebas. Para los fines de esta lección de casos de uso, estamos usando escrow_150c88345d2bca0a8be05e54a952cc80, que es el identificador de depósito en garantía que creamos en nuestra zona de pruebas. |
Descripción de los parámetros corporales
Parámetro corporal | Descripción |
|---|---|
monederos electrónicos | Introduzca una matriz de «ewallets» con un objeto que tenga los siguientes campos:
|
Liberar fondos de una solicitud de depósito en garantía
Le pides a Rapyd que entregue los fondos a un vendedor.
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/payments/payment_3b01b41950ec59d92c532974edc8f7dd/escrows/escrow_150c88345d2bca0a8be05e54a952cc80/escrow_releases // Message body: { "ewallets": [ { "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858", "amount": 50 } ] }
.NET Core
using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { string payment = "payment_3b01b41950ec59d92c532974edc8f7dd"; string escrow = "escrow_150c88345d2bca0a8be05e54a952cc80"; var requestObj = new { ewallets = new Object[] { new { ewallet = "ewallet_090e1ef18c3aa754fd43cce9ee454858", amount = 50 }, } }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/payments/{payment}/escrows/{escrow}/escrow_releases", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } }
PHP
<?php $path = $_SERVER['DOCUMENT_ROOT']; $path .= "/<path-to-your-utility-file>/utilities.php"; include($path); $body = [ array( "ewallet" => "ewallet_090e1ef18c3aa754fd43cce9ee454858", "amount" => 50 ) ]; try { $object = make_request('post', '/v1/payments/payment_3b01b41950ec59d92c532974edc8f7dd/escrows/escrow_150c88345d2bca0a8be05e54a952cc80/escrow_releases', $body); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Pitón
from pprint import pprint from utilities import make_request release_funds_body = { "ewallets": [ { "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858", "amount": 50 } ] } release_funds_response = make_request(method='post', path='/v1/payments/payment_3b01b41950ec59d92c532974edc8f7dd/escrows/escrow_150c88345d2bca0a8be05e54a952cc80/escrow_releases', body=release_funds_body) pprint(release_funds_response)
Libere fondos de Escrow Response
Echemos un vistazo a la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "8338da6d-997c-41fb-97ef-def18c133224" }, "data": { "id": "escrow_150c88345d2bca0a8be05e54a952cc80", "payment": "payment_3b01b41950ec59d92c532974edc8f7dd", "amount_on_hold": 250, "total_amount_released": 50, "status": "released", "escrow_release_days": 5, "escrow_releases": { "data": [ { "id": "er_ac023aae3b13b0e74ad64c876b1034dd", "amount": 50, "trigger": "event", "proportional_release": false, "ewallets": [ { "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858", "amount": 250 } ], "created_at": 1580987535 } ], "has_more": false, "total_count": 1, "url": "/v1/payments/payment_3b01b41950ec59d92c532974edc8f7dd/escrows/escrow_150c88345d2bca0a8be05e54a952cc80/escrow_releases" }, "created_at": 1580986835, "updated_at": 1580987535, "last_payment_completion": 1580986836 } }
El datos la sección de esta respuesta muestra que:
El
cantidad_retenidaes 250.El
escrow_releasesel objeto indica:Una cantidad de 50 USD fue lanzado para
ewallet_idewallet_090e1ef18c3aa754fd43cce9ee454858
El
escrow_release_dayses 5.
Después de cinco días, 50 USD se lanza automáticamente a ewallet_11078019438f943986c1fcfbaba05e13. Para obtener una lista de todas las liberaciones de fondos de este depósito en garantía Enumere las liberaciones de depósito en garantía.