Skip to main content

Documentación

Transferencias bancarias

Mueva fondos entre cuentas de diferentes bancos.

Una transferencia bancaria es un envío de pago desde la cuenta bancaria de tu cliente a ti. Muchos clientes confían en las transferencias bancarias como método de pago principal. Rapyd facilita a tus clientes el uso de transferencias bancarias para transferir fondos entre cuentas y pagar compras. Con las transferencias bancarias puedes realizar los siguientes tipos de pagos

  • Envía fondos a nivel internacional con IBAN código.

  • El mismo día (RÁPIDO) o código QR transferencia en Singapur.

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

  • Agregue los pagos por transferencia bancaria al flujo de trabajo de su empresa.

  • Crea una solicitud de pago por transferencia bancaria.

  • Capture la respuesta del pago.

Pago mediante transferencia bancaria

64808376193c2.png

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.

customer-instructions.jpg
  1. El cliente confirma el pago mediante transferencia bancaria en tu carrito de compra.

  2. El back-end de su sitio web solicita a Rapyd que procese un pago por transferencia bancaria.

  3. Rapyd procesa la transacción y responde con los detalles de la transacción de pago.

  4. La respuesta incluye instrucciones de pago para el cliente.

  5. Tu sitio web muestra las instrucciones al cliente.

contact-bank.jpg
  1. El cliente se pone en contacto con el banco (por ejemplo, a través del sitio web, la aplicación móvil, la asistencia telefónica o la sucursal del banco) y le indica al banco que transfiera el dinero.

  2. El banco del cliente transfiere el dinero.

complete-transaction.jpg
  1. Rapyd recibe una notificación de que la transferencia se ha realizado correctamente.

  2. Rapyd notifica el back-end de tu sitio web a través de un Webhook con pago completado que el pago se completó correctamente.

  3. Notificas al cliente que la compra se ha realizado correctamente.

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 pago por transferencia bancaria: éxito

create-bank-transfer-payment---success.svg

Crear pago por transferencia bancaria: error

create-bank-transfer-payment---transaction-failed.svg

Crear pago por transferencia bancaria: transacción caducada

create-bank-transfer-payment---transaction-expired.svg

Decide los tipos de pago mediante transferencia bancaria que aceptarás en el país elegido para que el cliente pueda especificar sus métodos de pago en tu página de pago.

  • Con fines ilustrativos, utilizaremos MX (México) y MXN (peso mexicano) para el país y la moneda en los códigos de muestra que aparecen a continuación. El tipo de pago es MX SPEI Transferencia bancaria.

Para hacer eso, usa Enumere 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 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.

    • 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)
        
Lista de métodos de pago por país 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_spei_bank",
                    "name": "SPEI Bank",
                    "category": "bank_transfer",
                    "image": "https://iconslib.rapyd.net/checkout/mx_spei_bank.png",
                    "country": "mx",
                    "payment_flow_type": "bank_transfer",
                    "currencies": [
                        "MXN"
                    ],
                    "status": 1,
                    "is_cancelable": false,
                    "payment_options": [{
                            "name": "customer",
                            "type": "customer",
                            "regex": "",
                            "description": "make sure a customer was created with first_name, last_name, email and address",
                            "is_required": true,
                            "is_updatable": false
                        }, {
                            "name": "ewallet",
                            "type": "string",
                            "regex": "",
                            "description": "make sure to pass an ewallet",
                            "is_required": false,
                            "is_updatable": false
                        }
                    ],
                    "is_expirable": false,
                    "is_online": false,
                    "minimum_expiration_seconds": null,
                    "maximum_expiration_seconds": null
                }
            ]
        }
           
        

El datos la sección de esta respuesta muestra que mx_spei_bank es un método de pago aceptable para transferencias bancarias.

Nota

Una respuesta completa de la API suele incluir muchos métodos de pago.

Decide los campos que el cliente debe completar para el método de pago mediante 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 mx_spei_bank como tipo de método de pago.

Obtener el método de pago Campos obligatorios Solicitud

Solicite un conjunto de campos obligatorios para un mx_spei_bank pago.

    • Solicitud

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

      • using System;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        string type = "mx_spei_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);
                    }
                }
            }
        }
            
        
    • JavaScript

      • const makeRequest = require('<path-to-your-utility-file>/utilities').makeRequest;
        
        async function main() {
          try {
            const result = await makeRequest('GET', '/v1/payment_methods/mx_spei_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_spei_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_spei_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": "19ea2c3f-7e09-4834-bd9f-3415109631ab"
            },
            "data": {
                "type": "mx_spei_bank",
                "fields": [
                    {
                        "name": "amount",
                        "type": "number",
                        "regex": "[0-9]*.\\\\\\\\.[0-9]{2}",
                        "description": "Must have two decimal places.",
                        "is_required": false,
                        "is_updatable": false
                    },
                    {
                        "name": "description",
                        "type": "string",
                        "regex": "[a-zA-z]{0,49}",
                        "description": "Description of the payment transaction",
                        "is_required": false,
                        "is_updatable": false
                    },
                    {
                        "name": "expiration",
                        "type": "number",
                        "regex": "",
                        "description": "End of the time allowed for customer to make this payment, in Unix time.",
                        "is_required": false,
                        "is_updatable": false
                    },
                    {
                        "name": "metadata",
                        "type": "object",
                        "regex": "",
                        "description": "A JSON object defined by the Rapyd partner.",
                        "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, email and address",
                        "is_required": true,
                        "is_updatable": false
                    },
                    {
                        "name": "ewallet",
                        "type": "string",
                        "regex": "",
                        "description": "make sure to pass an ewallet",
                        "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 por transferencia bancaria de su cliente:

Descripción de los parámetros corporales

Parámetro corporal

Descripción

cantidad

Entrar 10.000 como importe del pago.

moneda

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

método_pago

Introduzca un objeto con el siguiente campo: escriba - mx_spei_bank.

Crear solicitud de pago

Solicita a Rapyd que procese el pago de 10 000 MXN (pesos mexicanos) de Jane como transferencia bancaria, tal y como se muestra en la siguiente solicitud:

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payments
        
        // Message body: 
        {
            "amount": 100000,
            "currency": "MXN",
            "payment_method": {
                "type": "mx_spei_bank"
            }
        }/ Req
        
        // Message body absent
    • .NET Core

      • using System;
        using System.Text.Json;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        var requestObj = new
                        {
                            amount = 100,
                            currency = "MXN",
                            payment_method = new
                            {
                                type = "mx_spei_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: 100,
              currency: 'MXN',
              payment_method: {
                type: 'mx_spei_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" => "100",
            "currency" => "MXN",
            "payment_method" => [
                "type" => "mx_spei_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": 100,
            "currency": "MXN",
            "payment_method": {
                "type": "mx_spei_bank"
            }
        }
        
        create_payment_response = make_request(method='post',
                                               path='/v1/payments',
                                               body=payment_body)
        pprint(create_payment_response)
        
        
Crear respuesta de pago

La respuesta se genera a continuación:

Ver Crear pago para obtener una descripción de los campos de la respuesta.

CLABE

Desde el 1 de junio de 2004, México ha utilizado CLABE para la numeración de cuentas bancarias, esta norma es obligatoria para enviar y recibir transferencias electrónicas de fondos interbancarias nacionales.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "0993fb79-2c41-4b41-998b-5101189db34f"
            },
            "data": {
                "id": "payment_d4fbfe943226bdd14ff35bf3f5d39107",
                "amount": 0,
                "original_amount": 100,
                "is_partial": false,
                "currency_code": "MXN",
                "country_code": "mx",
                "status": "ACT",
        
        //      ...      
              
                "customer_token": "cus_b4d4d442f32ae24ed9616753573ea755",
                "payment_method": "other_52f165b04eb609f40559f612ed683245",
        
        //      ...      
              
                "created_at": 1594033690,
        
        //      ...      
              
                "visual_codes": {
                    "payCode": "888455799438564343"
                },
                "textual_codes": {},
                "instructions": [
                    {
                        "name": "instructions",
                        "steps": [
                            {
                                "step1": "Direct the end-user to make payment to the CLABE provided."
                            }
                        ]
                    }
                ],
                "ewallet_id": "ewallet_903e0e470af2d76a45dab68f62cd23b5",
                "ewallets": [
                    {
                        "ewallet_id": "ewallet_903e0e470af2d76a45dab68f62cd23b5",
                        "amount": 10000,
                        "percent": 100,
                        "refunded_amount": 0
                    }
                ],
                "payment_method_options": {},
                "payment_method_type": "mx_spei_bank",
                "payment_method_type_category": "bank_transfer",
        
        //      ...      
              
            }
        }
           
        

El datos la sección de esta respuesta muestra:

  • El pago id es payment_d4fbfe943226bdd14ff35bf3f5d39107.

Nota

Cuando lo ejecutes en tu propia zona de pruebas, obtendrás un ID diferente, que necesitarás para un paso posterior.

  • El original_amount es 100.000.

  • El currency_code es MXN (pesos mexicanos).

  • El estado es ACTUAR.

Finalización del pago

Esto significa que el proceso de pago está activo y a la espera del pago. Instrucciones para que tu cliente complete el pago.

Su sitio web proporcionará estas instrucciones a su cliente.

Cuando tu cliente pague correctamente y Rapyd sea informado de que se ha recibido el dinero, Rapyd te envía un webhook con los detalles de la transacción.

Simulación de una transferencia bancaria

El caja de arena no simula directamente una transferencia bancaria. 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.

Vamos a echar un vistazo a Webhook: pago completado.

    • Webhook

      • {
            "id": "wh_7f18c2b90892652fe7ff2cb7d0537732",
            "type": "PAYMENT_COMPLETED",
            "data": {
                "id": "payment_d4fbfe943226bdd14ff35bf3f5d39107",
                "fee": 0,
                "paid": true,
                "order": null,
                "amount": 10000,
                "status": "CLO",
        
        //      ...      
              
                "captured": true,
        
        //      ...      
              
                "created_at": "1551173291",
        
        //      ...      
              
                "instructions": [
                    {
                        "name": "instructions",
                        "steps": [
                            {
                                "step1": "Direct the end-user to make payment to the CLABE provided."
                            }
                        ]
                    }
                ],
        
        //      ...      
              
                "currency_code": "MXN",
        
        //      ...      
            
                "customer_token": "cus_b4d4d442f32ae24ed9616753573ea755",
                "payment_method": "other_52f165b04eb609f40559f612ed683245",
        
        //      ...      
              
                "original_amount": 10000,
        
        //      ...      
           
                "payment_method_type_category": "bank_transfer"
            },
        
        //      ...      
               
            "status": "CLO",
            "created_at": 1594033690
        }
           
        

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 el estado ahora aparece como CLO (cerrado). Esto indica que el pago se ha completado.

En este punto, puedes mostrar un estado (correcto) en la pantalla para que el cliente sepa que su compra se ha realizado correctamente y que puede continuar con la recogida de los artículos que ha comprado.