Skip to main content

Documentación

Cancelación de un depósito en garantía

Cancela un pago retenido en depósito en garantía.

Cuando un pago se retiene en depósito en garantía, puedes determinar durante cuánto tiempo se deben retener los fondos y también liberar o cancelar el depósito en garantía en cualquier momento según los requisitos de tu mercado. Este método ofrece la opción de cancelar el depósito en garantía y liberar los fondos de inmediato. Si hay varios vendedores, los fondos se entregan a todos ellos

Un cliente compra un artículo a un vendedor y, por error, se crea un depósito en garantía para este vendedor y tú decides cancelarlo. A continuación, el dinero se entrega al vendedor

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.

process-escrow.jpg
  1. Un cliente de tu plataforma compra un producto a un vendedor.

  2. 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.

  3. Rapyd procesa el pago y retiene los fondos en depósito.

cancel-escrow.jpg
  1. El back-end de su sitio web le pide a Rapyd que cancele el depósito en garantía.

  2. Rapyd cancela el depósito en garantía de inmediato, te notifica que se canceló correctamente y libera los fondos al vendedor.

Requisito previo

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

  • monedero electrónico - Corre Crea un monedero para la billetera del cliente. Usa la «identificación» que obtienes en la respuesta.

El cliente ha comprado un artículo por 501,47 PHP (pesos filipinos) a un vendedor en el sitio web de tu plataforma. 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 501.47 como el importe total del pago.

moneda

Entrar PHP como código para los pesos filipinos.

método_pago

Introduzca un objeto 'payment_method' que tenga los siguientes campos:

  • tipo - Entrar ph_dpcard_card como el tipo de tarjeta de pago.

monederos electrónicos

En la matriz, agrega un objeto 'ewallet' que tiene los siguientes campos:

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

  • cantidad - Ingresar 501.47 como cantidad a pagar al vendedor del ramo.

depósito en garantía

Entrar verdadero para crear 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 depósito en garantía.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payments
        
        // Message body:
        {
                "amount": 501.47,
                "currency": "php",
                "payment_method": {
                        "type": "ph_dpcard_card"
                },
                "ewallets": [
                        {
                                "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858",
                                "amount": 501.47
                        }
                ],
                "escrow": true,
                "escrow_release_days": "5"
        }
    • .NET Core

      • using System;
        using System.Text.Json;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        var requestObj = new
                        {
                            amount = 501.47,
                            currency = "PHP",
                            description = "Payment by card token",
                            payment_method = new
                            {
                                type = "ph_dpcard_card",
                            },
                            ewallets = new Object[]
                            {
                              new
                              {
                                  ewallet =  "ewallet_090e1ef18c3aa754fd43cce9ee454858",
                                  amount = 501.47
                               },
                            },
                            escrow = true,
                            escrow_release_days = 5
                        };
        
                        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
        
        # Create Payment request
        
        payment_body = {
            "amount": 501.47,
            "currency": "php",
            "payment_method": {
                "type": "ph_dpcard_card"
            },
            "ewallets": [
                {
                    "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858",
                    "amount": 501.47
                }
            ],
            "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": "113ae72c-0456-44d2-bc46-5e00fe52b4f9"
            },
            "data": {
                "id": "payment_4e1e350df4918b7a5b9d5ba440f6433e",
                "amount": 0,
                "original_amount": 501.47,
                "is_partial": false,
                "currency_code": "PHP",
                "country_code": "ph",
                "status": "ACT",
                
        //    ...          
                  
                "ewallet_id": "ewallet_090e1ef18c3aa754fd43cce9ee454858",
                "ewallets": [
                    {
                        "ewallet_id": "ewallet_090e1ef18c3aa754fd43cce9ee454858",
                        "amount": 501.47,
                        "percent": 100,
                        "released_amount": 0,
                        "refunded_amount": 0
                    }
                ],
                "payment_method_options": {},
                "payment_method_type": "ph_dpcard_card",
                "payment_method_type_category": "bank_redirect",
                "fx_rate": "",
               
        //    ...                    
                  
                "escrow": {
                    "id": "escrow_933d861296b40ae98f08bec3b8e799ef",
                    "payment": "payment_4e1e350df4918b7a5b9d5ba440f6433e",
                    "amount_on_hold": 0,
                    "total_amount_released": 0,
                    "status": "pending",
                    "escrow_release_days": 5,
                    "created_at": 1580995667,
                    "updated_at": 1580995667,
                    "last_payment_completion": null
                },
                "group_payment": ""
            }
        }

El datos la sección de esta respuesta muestra que:

  • El cantidad es 501.47 .

  • El moneda es PHP.

  • El carteras el objeto indica:

    • Una cantidad de 501,47 se mantiene en depósito para ewallet_idewallet_090e1ef18c3aa754fd43cce9ee454858 .

  • El depósito en garantía objeto indica:

    • El identificador del depósito en garantía es escrow_933d861296b40ae98f08bec3b8e799ef.

    • El identificador de pago es payment_4e1e350df4918b7a5b9d5ba440f6433e. 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áctico

    • El depósito en garantía estado es pendiente.

    • El escrow_release_days es 5.

Utilizarás el identificador de pago cuando pidas a Rapyd que cancele el depósito en garantía.

El depósito en garantía se creó por error y decides cancelarlo de inmediato. Para eso, utilizarás Actualiza el pago 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 que recibiste cuando creaste la cartera del vendedor del ramo en tu caja de arena. Para los fines de esta lección de casos de uso, estamos usando payment_4e1e350df4918b7a5b9d5ba440f6433e, que es el identificador de pago que creamos en nuestra zona de pruebas.

Descripción de los parámetros corporales

Parámetro corporal

Descripción

depósito en garantía

Entrar falso para cancelar el depósito en garantía.

Cancelar solicitud de depósito en garantía

Le pides a Rapyd que cancele el depósito en garantía.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payments/payment_4e1e350df4918b7a5b9d5ba440f6433e
        
        // Message body:
        {
           "escrow": false  
        }
    • .NET Core

      • using System;
         using System.Text.Json;
        
         namespace RapydApiRequestSample
         {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        string paymentId = "payment_4e1e350df4918b7a5b9d5ba440f6433e";
        
                        var requestObj = new
                        {
                            escrow = false,
                        };
        
                        string request = JsonSerializer.Serialize(requestObj);
        
                        string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/payments/{paymentId}", 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 = {
              escrow: false
            };
            const result = await makeRequest(
              'POST',
              '/v1/payments/payment_4e1e350df4918b7a5b9d5ba440f6433e',
              body
            );
        
            console.log(result);
          } catch (error) {
            console.error('Error completing request', error);
          }
        }
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        cancel_escrow_body = {
            "escrow": False
        }
        
        cancel_escrow_response = make_request(method='post',
                                              path='/v1/payments/payment_4e1e350df4918b7a5b9d5ba440f6433e',
                                              body=cancel_escrow_body)
        pprint(cancel_escrow_response)
Cancelar la respuesta de depósito en garantía

Echemos un vistazo a la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "656b7dd4-7e1e-4f38-b5d9-bb46c4b43ab7"
            },
            "data": {
                "id": "payment_4e1e350df4918b7a5b9d5ba440f6433e",
                "amount": 0,
                "original_amount": 501.47,
                "is_partial": false,
                "currency_code": "PHP",
                "country_code": "ph",
                "status": "ACT",
             
        //      ...        
                  
                "created_at": 1580995667,
                
        //      ...        
                  
                "ewallet_id": "ewallet_090e1ef18c3aa754fd43cce9ee454858",
                "ewallets": [
                    {
                        "ewallet_id": "ewallet_090e1ef18c3aa754fd43cce9ee454858",
                        "amount": 501.47,
                        "percent": 100,
                        "released_amount": 0,
                        "refunded_amount": 0
                    }
                ],
                "payment_method_options": {},
                "payment_method_type": "ph_dpcard_card",
                "payment_method_type_category": "bank_redirect",
                
        //     ...           
                  
                "escrow": {
                    "id": "escrow_933d861296b40ae98f08bec3b8e799ef",
                    "payment": "payment_4e1e350df4918b7a5b9d5ba440f6433e",
                    "amount_on_hold": 0,
                    "total_amount_released": 0,
                    "status": "canceled",
                    "escrow_release_days": 5,
                    "created_at": 1580995667,
                    "updated_at": 1580997283,
                    "last_payment_completion": null
                },
                "group_payment": ""
            }
        }

El datos la sección de esta respuesta muestra que:

  • Una cantidad de 501.47 PHP fue lanzado para ewallet_id ewallet_090e1ef18c3aa754fd43cce9ee454858

  • El depósito en garantía objeto indica:

  • El identificador del depósito en garantía es escrow_933d861296b40ae98f08bec3b8e799ef.

  • El depósito en garantía estado es cancelado.

¿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.