Skip to main content

Documentación

Reembolsos

Reembolsa un pago.

Rapyd proporciona un método rápido y sencillo para procesar los reembolsos de una compra realizada por un cliente en tu sitio web. Los reembolsos se realizan al método de pago utilizado en la transacción de pago original

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

Un cliente compra un artículo en tu sitio web por 10,99 USD (dólares estadounidenses) con su tarjeta. Ahora el cliente quiere devolver el artículo para obtener un reembolso. En este caso de uso, el cliente pagó con tarjeta, por lo que el reembolso se devuelve a esa tarjeta.

back-end de tu sitio web le pide a Rapyd que procese el reembolso. Cuando el dinero se devuelve a la tarjeta, Rapyd le notifica que el reembolso se realizó correctamente

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.

El cliente ya pagó el artículo anteriormente. Ahora el cliente rellena todos los campos requeridos por tu sitio web Solicitud de reembolso página. Tienes el identificador de la transacción y el importe que debe reembolsarse

full-refund.jpg
  1. El back-end del sitio web solicita a Rapyd que procese el reembolso del cliente.

  2. Rapyd procesa la transacción de reembolso y te notifica que se ha realizado correctamente.

  3. Envías la confirmación del reembolso al cliente.

Los siguientes diagramas de secuencia de mensajes describen cómo se intercambia la información entre Rapyd, el comerciante y el emisor de la tarjeta.

Reembolso: éxito

create-card-refund---production-environment.svg

Reembolso: rechazado

create-card-refund---transaction-rejected.svg

El siguiente diagrama de estados finitos resume los estados de los pagos reembolsados.

refund.svg

Descripción de los estados

Estado

Descripción

Pendiente

El reembolso aún no se ha completado. Por ejemplo, es posible que el reembolso aún requiera una acción del cliente, como retirar el reembolso en efectivo

Completado

Se completó el reembolso.

Rechazado

El reembolso no se realizó debido a un error interno.

Error

El reembolso ha fallado.

Prerrequisitos

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

  • 'pago' - Ejecutar Crear pago. Usa la «identificación» que obtienes en la respuesta.

Cuando el cliente solicita un reembolso en tu sitio web, le pides a Rapyd que procese el reembolso.

Para eso, utilizarás Crear reembolso con el siguiente parámetro:

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_1b3e27edf2c43a0b5d1a7de69fbe7102, que es el identificador de pago que hemos creado en nuestra zona de pruebas.

No necesitas especificar el importe, ya que se trata de un reembolso completo.

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_29816514741fe7e4cdee75f7093ccbe1"
        }
    • .NET Core

      • using System;
        using System.Text.Json;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        var requestObj = new
                        {
                            payment = "payment_29816514741fe7e4cdee75f7093ccbe1",
                        };
        
                        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_29816514741fe7e4cdee75f7093ccbe1'
            };
            const result = await makeRequest('POST', '/v1/refunds', body);
        
            console.log(result);
          } catch (error) {
            console.error('Error completing request', error);
          }
        }
    • PHP

      • <?php
        $path = $_SERVER['DOCUMENT_ROOT'];
        $path .= "/code_race_2020/Utilities/PHP/utilities.php";
        include($path);
        
        $body = [
            "payment" => "payment_29816514741fe7e4cdee75f7093ccbe1"
        ];
        
        try {
            $object = make_request('post', '/v1/refunds', $body);
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        refund_body = {
            "payment": "payment_29816514741fe7e4cdee75f7093ccbe1"
        }
        
        create_refund_results = make_request(method='post',
                                             path='/v1/refunds',
                                             body=refund_body)
        
        pprint(create_refund_results)
Obtenga una respuesta de reembolso

Echemos un vistazo a la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "bc321df9-7bb4-47ce-907a-7bbc5a9b32f7"
            },
            "data": {
                "id": "refund_dcdacdb591a117d3d5eb30e59011aadd",
                "amount": 15.65,
                "payment": "payment_29816514741fe7e4cdee75f7093ccbe1",
                "currency": "USD",
                "failure_reason": "",
                "metadata": {},
                "reason": "",
                "status": "Completed",
                "receipt_number": 0,
                "created_at": 1589302965,
                "updated_at": 1589302965,
                "merchant_reference_id": "",
                "payment_created_at": 1589237080,
                "payment_method_type": "us_debit_visa_card",
                "ewallets": [
                    {
                        "ewallet": "ewallet_be4ba8f13da40caa59a7e03022a8acfe",
                        "amount": 15.65
                    }
                ],
                "proportional_refund": true
            }
        }

El datos la sección de esta respuesta muestra:

  • El cantidad es 15.65.

  • El moneda es USD.

  • El estado es Completado.

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.

Una vez realizados todos los pasos adicionales, tu sitio web muestra al cliente una confirmación de que el reembolso se ha completado.

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.