Skip to main content

Documentación

Redireccionamiento bancario

Rapyd facilita a los clientes de su sitio web de comercio electrónico el pago de sus compras en línea directamente desde una cuenta bancaria.

¿Por qué ofrecer Bank Redirect? Es posible que el cliente no tenga una tarjeta de crédito y no haya ninguna local domiciliación bancaria capacidades. Bank Redirect es un método de pago push muy preferido en Asia y LATAM por motivos de seguridad. Durante el proceso de pago, tus clientes son redirigidos a un proceso de inicio de sesión bancario y, una vez completado, el cliente volverá a la página de confirmación de tu sitio web

El proceso de transferencia bancaria que aparece a continuación explica cómo:

  • Agregue los pagos redirigidos por bancos al flujo de trabajo de su empresa.

  • Crea una solicitud de redireccionamiento de pago bancario.

  • Capture la respuesta del pago.

Las siguientes capturas de pantalla representan el flujo de trabajo de la página de pago de Bank Redirect.

  1. Selecciona tu cuenta bancaria.

  2. Haga clic Haga su pedido.

    6480837dafae3.png
  3. Complete el redireccionamiento del banco.

    6480838068599.png
  4. Redirigir a la pago exitoso página.

    64808382e7d11.png
  5. Haga clic Finalizar.

Puedes encontrar los métodos de pago de redireccionamiento bancario específicos que aceptarás y los campos obligatorios correspondientes que los clientes deben rellenar en la sección Cómo funciona.

process-payment.jpg
  1. El cliente realiza el pago con un artículo y confirma un pago por redireccionamiento bancario en tu página.

  2. El back-end de tu sitio web solicita a Rapyd que procese el pago del cliente, especificando el importe, la moneda, el método de pago del banco del cliente y la URL del error y la URL de éxito del pago.

  3. En función de si el cliente completa correctamente el pago con el banco, el banco lo redirigirá a la URL de éxito o error de tu sitio web.

  4. Rapyd procesa la transacción y responde con una URL bancaria única a la que rediriges al cliente para completar el pago.

  5. La URL solo es válida para este pago.

  6. Tu sitio web redirige al cliente a la URL del banco.

complete-payment.jpg
  1. En el sitio web del banco, el cliente sigue las instrucciones del banco para completar el pago.

  2. Si el pago se realiza correctamente, el banco redirige al cliente a la URL que especificaste para realizar el pago correctamente. Si se produce un error en el pago, el banco redirige al cliente a la URL de error

  3. El banco notifica a Rapyd que el pago se ha completado.

  4. El back-end de su sitio web recibe la confirmación de Rapyd de que el pago se ha completado.

Los siguientes diagramas de secuencia de mensajes describen cómo se intercambia la información entre Rapyd, el comerciante, los clientes del comerciante y el banco.

Crear un pago de redireccionamiento bancario

create-payment-by-bank-redirect---production-environment.svg

Crear un pago de redireccionamiento bancario: transacción fallida

create-payment-by-bank-redirect---transaction-failed.svg

Decide los métodos de pago de redireccionamiento bancario que aceptarás para que el cliente pueda especificar sus métodos de pago en tu página de pago. Para ello, utiliza Enumere los métodos de pago por país con los siguientes parámetros:

Ejemplos de países y divisas

MX (México) y MXN (pesos mexicanos) se utilizan para el país y la moneda en los códigos de muestra que aparecen a continuación.

Descripción de los parámetros de consulta

Parámetro de consulta

Descripción

país

Entrar MX como código de país para México.

moneda

Entrar MXN como código de moneda para los pesos mexicanos.

Solicitud de lista de métodos de pago por país

Solicita una lista de todos los métodos de pago disponibles en MXN (pesos mexicanos).

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/country?country=MX&currency=MXN
        
        // Message body absent
    • .NET Core

      • using System;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        string country = "MX";
                        string currency = "MXN";
        
                        string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payment_methods/country?country={country}&currency={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=MX&currency=MXN');
        
            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=MX&currency=MXN');
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        country = 'MX'
        currency = 'MXN'
        results = make_request(method='get',
                               path=f'/v1/payment_methods/country?country={country}&currency={currency}')
        pprint(results)
        
        
Respuesta

Listar métodos de pago por país describe los campos de la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "8065d391-d324-41cb-8b36-a7d97bd0ed6c"
            },
            "data": [{
                    "type": "mx_bbva_bank",
                    "name": "online bank payment BBVA mexico",
                    "category": "bank_redirect",
                    "image": "https://iconslib.rapyd.net/checkout/mx_bbva_bank.png",
                    "country": "mx",
                    "payment_flow_type": "redirect_url",
                    "currencies": [
                        "MXN"
                    ],
                    "status": 1,
                    "is_cancelable": false,
                    "payment_options": [],
                    "is_expirable": false,
                    "is_online": false,
                    "minimum_expiration_seconds": null,
                    "maximum_expiration_seconds": null
                }
            ]
        }
           
        

La respuesta muestra que mx_bbva_bank es un método de pago aceptable en bank_redirect categoría.

Lista de métodos de pago y respuesta

Una respuesta real enumera muchos métodos de pago.

Identifica los campos que tu cliente debe completar para el método de pago. Para hacerlo, usa Campos obligatorios para obtener el método de pago con el siguiente parámetro:

Descripción de los parámetros de ruta

Parámetro de ruta

Descripción

tipo

Entrar mx_bbva_bank como tipo de método de pago.

Obtener el método de pago Campos obligatorios Solicitud

Solicita el conjunto de campos obligatorios para un pago en el Banco BBVA.

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/mx_bbva_bank/required_fields
        
        // Message body absent
    • .NET Core

      • using System;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        string type = "mx_bbva_bank";
        
                        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);
                    }
                }
            }
        }const makeRequest = require('<path-to-your-utility-file>/utilities').makeRequest;
        
        async function main() {
          try {
            const result = await makeRequest('GET', '/v1/payment_methods/mx_bbva_bank/required_fields');
        
            console.log(result);
          } catch (error) {
            console.error('Error completing request', error);
          }
        }
        
    • JavaScript

      • const makeRequest = require('<path-to-your-utility-file>/utilities').makeRequest;
        
        async function main() {
          try {
            const result = await makeRequest('GET', '/v1/payment_methods/mx_bbva_bank/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/mx_bbva_bank/required_fields');
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
        
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        payment_method = 'mx_bbva_bank'
        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

Campos obligatorios para obtener el método de pago describe los campos de la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "d4b9e9e7-0f9e-4a29-81b6-1e02c7d651af"
            },
            "data": {
                "type": "mx_bbva_bank",
                "fields": [],
                "payment_method_options": [],
                "payment_options": [],
                "minimum_expiration_seconds": null,
                "maximum_expiration_seconds": null
            }
        }
           
        

La respuesta muestra que no se requieren campos para un mx_bbva_bank pago.

Tipo de método de pago

Para algunos tipos de métodos de pago de esta categoría, los «campos» son obligatorios y deberán completarse. Consulta el código de ejemplo que aparece a continuación donde se indica el tipo de método de pago in_icici_bank

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/in_icici_bank/required_fields
        
        // Message body absent

La respuesta de muestra se genera a continuación, donde campos se rellena con la información adicional necesaria para procesar este pago.

    • Respuesta

      •     "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "bdb942bd-6c91-4a1c-be66-d78d0c2053bd"
            },
            "data": {
                "type": "in_icici_bank",
                "fields": [
                    {
                        "name": "order_id",
                        "type": "string",
                        "regex": "",
                        "description": "",
                        "is_required": false,
                        "is_updatable": false
                    }
                ],
                "payment_method_options": [],
                "payment_options": [
                    {
                        "name": "customer",
                        "type": "customer",
                        "regex": "",
                        "description": "make sure a customer was created with first_name, last_name and email ad phone_number",
                        "is_required": false,
                        "is_updatable": false
                    }
                ],
                "minimum_expiration_seconds": null,
                "maximum_expiration_seconds": null
            }
        }
           
        

Cuando tu cliente haga el pago en tu sitio web, usa Crea un pago con los siguientes parámetros para que Rapyd procese el pago bancario de su cliente:

Descripción de los parámetros corporales

Parámetro corporal

Descripción

cantidad

Entrar 200 como importe del pago.

moneda

Entrar MXN como código de divisa.

URL de pago completa

Sustituya el https://success_example.net ejemplo con la URL real de tu sitio web en el que quieres que el banco redirija al cliente si el pago se realiza correctamente.

error_payment_url

Sustituya el https://error_example.net ejemplo con la URL de tu sitio web real en el que quieres que el banco redirija al cliente si el pago no se realiza.

método_pago

Introduzca un objeto con el siguiente campo:escriba - mx_bbva_bank

Crear solicitud de pago

Solicita a Rapyd que procese el pago de tu cliente (200 MXN, en este caso) como un pago bancario redirigido.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payments
        
        // Message body:
        {
            "amount": 200,
            "currency": "MXN",
            "complete_payment_url": "https://success_example.net",
            "error_payment_url": "https://error_example.net",
            "payment_method": {
                "type": "mx_bbva_bank"
            }
        }
    • .NET Core

      • using System;
        using System.Text.Json;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        var requestObj = new
                        {
                            amount = 200,
                            currency = "MXN",
                            complete_payment_url = "https:success_example.net",
                            error_payment_url = "https:error_example.net",
                            payment_method = new
                            {
                                type = "mx_bbva_bank",
                            }
                        };
        
                        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);
                    }
                }
            }
        }
        
    • JavaScript

      • const makeRequest = require('<path-to-your-utility-file>/utilities').makeRequest;
        
        async function main() {
          try {
            const body = {
              amount: 200,
              currency: 'MXN',
              complete_payment_url: 'https://success_example.net',
              error_payment_url: 'https://error_example.net',
              payment_method: {
                type: 'mx_bbva_bank'
              }
            };
            const result = await makeRequest('POST', '/v1/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 = [
            "amount" => "200",
            "currency" => "MXN",
            "complete_payment_url" => "https://success_example.net",
            "error_payment_url" => "https://error_example.net",
            "payment_method" => [
                "type" => "mx_bbva_bank"
            ]
        ];
        
        try {
            $object = make_request('post', '/v1/payments', $body);
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
        
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        payment_body = {
            "amount": 200,
            "currency": "MXN",
            "complete_payment_url": "https://success_example.net",
            "error_payment_url": "https://error_example.net",
            "payment_method": {
                "type": "mx_bbva_bank"
            }
        }
        
        create_payment_response = make_request(method='post',
                                               path='/v1/payments',
                                               body=payment_body)
        pprint(create_payment_response)
        pprint(results)
        
Crear respuesta de pago

Crear pago describe los campos de la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "5b0e3b02-537d-4a5d-b70b-4b6a4fd35335"
            },
            "data": {
                "id": "payment_d562969cbe32f8ff175c98ad99a82d4e",
                "amount": 200,
                "original_amount": 200,
                "is_partial": false,
                "currency_code": "MXN",
                "country_code": "",
                "status": "ACT",
        
        //      ...      
        
                "customer_token": "cus_5572507a5df016dcaf1cc1e0febfbe69",
                "payment_method": "other_c8af858b4d7cececb02a8755467c2a21",
        
        //      ...      
              
                "captured": true,
        
        //      ...      
        
                "redirect_url": "https://sandbox.rapyd.net/complete-bank-payment?token=payment_d562969cbe32f8ff175c98ad99a82d4e",
                "complete_payment_url": "https://success_example.net",
                "error_payment_url": "https://error_example.net",
        
        //      ...      
         
                "created_at": "1549962206",
        
        //      ...      
                "paid": false,
        
        //      ...      
        
                "instructions": [
                    {
                        "name": "instructions",
                        "steps": [
                            {
                                "step1": "You will be redirected to a bank payment page to complete the payment"
                            }
                        ]
                    }
                ],
                  
        //      ...      
         
                "payment_method_type_category": "bank_redirect"
            }}
        
        }
           
        

La respuesta muestra:

  • El pago id es payment_d562969cbe32f8ff175c98ad99a82d4e. Cuando ejecutes este ejemplo en tu propia zona de pruebas, obtendrás un ID diferente, que necesitarás para los pasos posteriores

  • El cantidad es 200 .

  • El currency_code es MXN (pesos mexicanos).

  • El estado (bajo datos) es ACTUAR (activo). Esto significa que el proceso de pago está activo pero no está completo.

  • Se incluyen estas URL:

    • redireccionar_url - Rediriges al cliente a esta URL única del sitio web del banco para completar el pago.

    • URL de pago completa y error_payment_url - Rapyd proporciona estas URL al banco para redirigir al cliente a tu sitio web en función de si la compra se ha realizado correctamente.

  • Instrucciones para que tu cliente complete el pago.

URL de redireccionamiento bancario

Tu sitio web muestra a tu cliente las instrucciones y lo redirige al sitio web del banco para completar el pago.

Una vez que el cliente haya realizado correctamente un pago:

  1. El banco redirige a tu cliente a la URL que proporcionaste para realizar el pago correctamente.

  2. El banco informa a Rapyd de que el pago se ha realizado correctamente.

  3. Rapyd le envía un webhook con los detalles de la transacción completada. Consulta el Webhook a continuación

Simulación de un pago bancario en línea

El caja de arena no simula directamente la acción del cliente al completar un pago bancario en línea en el sitio web del banco. Puede simular esta acción con el procedimiento descrito en Completar el pago. Para ello, necesitarás el ID de pago que generaste en tu sandbox.

Configure su sistema para recibir webhooks con el procedimiento descrito en Definición de un endpoint de webhook.

El webhook Webhook: pago completado se genera.

    • Webhook

      •    {
            "id": "wh_267680ccd8fd308b43da58fdd059cd2b",
            "type": "PAYMENT_COMPLETED”,
        
        ",
            "data": {
                "id": "payment_d562969cbe32f8ff175c98ad99a82d4e",
                "fee": 0,
                "paid": true,
                "order": null,
                "amount": 200,
                "status": "CLO",
        
        //      ...      
        
                "captured": true,
        
        //      ...      
        
                "created_at": "1549451666",
        
        //      ...      
        
                "description": "bank_redirect",
        
        //      ...      
        
                "redirect_url": "https://sandbox.rapyd.net/complete-bank-payment?token=payment_d562969cbe32f8ff175c98ad99a82d4e",
        
        //      ...      
        
        
                "currency_code": "MXN",
        
        //      ...      
        
                "customer_token": "cus_5572507a5df016dcaf1cc1e0febfbe69",
                "payment_method": "other_6095cc47e6db1390d170a7fe4a5da6f2",
        
        //      ...      
        
                "original_amount": 200,
        
        //      ...      
           
                "error_payment_url": "https://https://error_example.net",
                "payment_method_type": "",
                "complete_payment_url": "https://success_example.net",
        
        //      ...      
        
                "payment_method_type_category": "bank_redirect"
            },
        
        //      ...      
        
            "created_at": 1549451.726
        }
        

El datos la sección del webhook contiene el mismo tipo de información que la respuesta a la solicitud de creación de pago, excepto que estado ahora es CLO (cerrado). Esto indica que la transacción se ha completado.

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