Skip to main content

Documentación

Débito directo bancario

Retira fondos de las cuentas bancarias de tus clientes.

Banco domiciliación bancaria es un retiro autorizado de la cuenta bancaria de su cliente. Los adeudos domiciliados se suelen utilizar en transacciones recurrentes, como el pago de facturas, las membresías y las suscripciones. La función de domiciliación bancaria solo está disponible en algunos países donde la capacidad existe como parte de una red bancaria

Los esquemas populares con capacidad de domiciliación bancaria incluyen:

  • Bacs en el Reino Unido.

  • ACH en los EE. UU.

  • BECs en Australia.

  • GIRO en Singapur.

  • SEPA en la UE. Consulta la lista de países admitidos por la SEPA (debes estar domiciliado aquí para poder aceptar los pagos de la SEPA

    Andorra, Austria, Bélgica, Bulgaria, Chipre, República Checa, Dinamarca, Estonia, Finlandia, Francia, Alemania, Gibraltar, Grecia, Santa Sede, Hungría, Irlanda, Islandia, Italia, Liechtenstein, Lituania, Luxemburgo, Mónaco, Malta, Países Bajos, Noruega, Polonia, Portugal, Rumania, San Marino, España, Eslovenia, Suecia, Suiza

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

  • Añada los pagos por domiciliación bancaria al flujo de trabajo de su empresa.

  • Crea una solicitud de pago por domiciliación bancaria.

  • Capture la respuesta del pago.

Reglas de Rapyd Network

Los participantes de la Red Rapyd están sujetos a la Reglas de la red Rapyd. Cualquier uso o participación en la Red Rapyd que no esté contemplado en las Reglas de la Red Rapyd se regirá por los acuerdos de participación aplicables y la documentación asociada

El siguiente ejemplo representa el flujo de trabajo de una página de pago mediante domiciliación bancaria ACH.

Formulario de prueba de autorización

Su cliente debe firmar un formulario de prueba de autorización que cumpla con las reglas de la red ACH de Rapyd. Para obtener más información, consulte la sección 13: Entradas de ACH iniciadas por Internet Reglas de Rapyd Network. Debe conservar una copia de este formulario en sus registros.

  1. Ingresa la información de tu cuenta.

  2. Haga clic Haga su pedido.

    6480836ea645b.png
  3. Sigue las instrucciones de pago para completar el pago.

  4. Haga clic Finalizar.

    64808371849b9.png

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

first-time-sepa.jpg
  1. El cliente selecciona el pago SEPA.

  2. Le pides a Rapyd que procese la solicitud.

  3. Rapyd procesa la solicitud y envía el URL de redireccionamiento.

  4. Presentas la URL de redireccionamiento al cliente.

  5. El cliente firma el mandato de la SEPA.

process-sepa.jpg
  1. El cliente completa el pago por transferencia bancaria ACH.

  2. El back-end de su sitio web le pide a Rapyd que procese el pago por transferencia bancaria ACH.

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

  4. Rapyd notifica al back-end del sitio web cuando el pago se completa correctamente.

Decide los métodos de pago por domiciliación bancaria que aceptarás para que el cliente pueda especificar sus métodos de pago en tu página de pago. Para hacerlo, usa Enumere los métodos de pago por país con los siguientes parámetros:

  • Los países disponibles se pueden enumerar con el Lista de países Llamada a la API.

  • Con fines ilustrativos, utilizaremos NOSOTROS y USD para el país y la moneda en los códigos de muestra que aparecen a continuación. US ACH es el tipo de pago por domiciliación bancaria.

Descripción de los parámetros de consulta

Parámetro de consulta

Descripción

país

Entrar NOSOTROS como código de país ISO ALPHA-2 para los Estados Unidos.

moneda

Entrar USD como código de divisa para los dólares estadounidenses.

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/country?country=US&currency=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}&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=US&currency=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&currency=USD');
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
        
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        country = 'US'
        currency = 'USD'
        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": "90ebf1ec-9e40-49f6-9175-b3a764ab3cd0"
            },
            "data": [
                {
                    "type": "us_ach_bank",
                    "name": "Evolve Bank & Trust ",
                    "category": "bank_transfer",
                    "image": "https://iconslib.rapyd.net/checkout/us_ach_bank.png",
                    "country": "us",
                    "payment_flow_type": "bank_transfer",
                    "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_ach_bank es un método de pago admitido.

Lista de métodos de pago y respuesta

Una respuesta completa de la API muestra 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 us_ach_bank como tipo de método de pago.

Solicite un conjunto de campos obligatorios para us_ach_bank pago.

    • Solicitud

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

      • using System;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        string type = "us_ach_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/us_ach_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/us_ach_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 = 'us_ach_bank'
        results = make_request(method='get',
                               path=f'/v1/payment_methods/us_ach_bank/required_fields')
        pprint(results)
        

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": "058bc78e-49aa-4370-b0b4-3635950173ac"
            },
            "data": {
                "type": "us_ach_bank",
                "fields": [
                    {
                        "name": "proof_of_authorization",
                        "type": "boolean",
                        "regex": "",
                        "description": "",
                        "is_required": true,
                        "is_updatable": false
                    },
                    {
                        "name": "first_name",
                        "type": "string",
                        "regex": "",
                        "description": "",
                        "is_required": false,
                        "is_updatable": false
                    },
                    {
                        "name": "last_name",
                        "type": "string",
                        "regex": "",
                        "description": "",
                        "is_required": false,
                        "is_updatable": false
                    },
                    {
                        "name": "company_name",
                        "type": "string",
                        "regex": "",
                        "description": "",
                        "is_required": false,
                        "is_updatable": false
                    },
                    {
                        "name": "routing_number",
                        "type": "string",
                        "regex": "^([0-9]){9,9}$",
                        "description": "",
                        "is_required": true,
                        "is_updatable": false
                    },
                    {
                        "name": "payment_purpose",
                        "type": "string",
                        "regex": "(PAYMENT|VENDOR PMT)",
                        "description": "",
                        "is_required": true,
                        "is_updatable": false
                    },
                    {
                        "name": "account_number",
                        "type": "string",
                        "regex": "^([0-9]){1,34}$",
                        "description": "",
                        "is_required": true,
                        "is_updatable": false
                    }
                ],
                "payment_method_options": [],
                "payment_options": [],
                "minimum_expiration_seconds": null,
                "maximum_expiration_seconds": null
            }
        }
           
        

El datos la sección de esta respuesta muestra que los siguientes campos son obligatorios para un us_ach_bank pago:

  • comprobante_de_autorización

  • número_de_ruta

  • finalidad_pago

  • número_cuenta

Los siguientes campos son opcionales:

  • nombre_de_pila

  • apellido_nombre

  • nombre_empresa

Cuando tu cliente pague un préstamo en tu sitio web, crea una solicitud llamada Crea un pago, mediante los siguientes parámetros, para que Rapyd procese el pago mediante transferencia bancaria ACH:

Descripción de los parámetros corporales

Parámetro corporal

Descripción

cantidad

Entrar 2100 como importe del pago.

moneda

Entrar USD como código de divisa para dólares estadounidenses.

método_pago

Introduzca un objeto con los siguientes campos:

  • tipo - us_ach_bank

  • comprobante_de_autorización - cierto. (Indica que tu cliente rellenó un formulario de prueba de autorización para el banco).

  • nombre_de_pila - Prueba

  • apellido_nombre - Usuario

  • nombre_empresa - Acme

  • número_de_ruta - 123UA34599

  • finalidad_pago - Pago del préstamo

  • número_cuenta - USA_2340234-098-0908g

Solicita a Rapyd que procese el pago de tu cliente (de 2.100,00 USD) mediante transferencia bancaria ACH.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payments
        
        // Message body: 
        {
            "amount": 2100,
            "currency": "USD",
            "payment_method": {
                "type": "us_ach_bank",
                "fields": {
                    "proof_of_authorization": true,
                    "first_name": "Test",
                    "last_name": "User",
                    "company_name": "Acme",
                    "routing_number": "123UA34599",
                    "payment_purpose": "Loan payment",
                    "account_number": "USA_2340234-098-0908g"
                }
            }
        }
    • .NET Core

      • using System;
        using System.Text.Json;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        var requestObj = new
                        {
                            amount = 2100,
                            currency = "USD",
                            payment_method = new
                            {
                                type = "us_ach_bank",
                                fields = new
                                {
                                    proof_of_authorization = true,
                                    first_name = "Test",
                                    last_name = "User",
                                    company_name = "Acme",
                                    routing_number = "123UA34599",
                                    payment_purpose = "Loan payment",
                                    account_number = "USA_2340234-098-0908g",
                                }
                            }
                        };
        
                        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: 2100,
              currency: 'USD',
              payment_method: {
                type: 'us_ach_bank',
                fields: {
                  proof_of_authorization: true,
                  first_name: 'Test',
                  last_name: 'User',
                  company_name: 'Acme',
                  routing_number: '123UA34599',
                  payment_purpose: 'Loan payment',
                  account_number: 'USA_2340234to098to0908g'
                }
              }
            };
            const result = await makeRequest('POST', '/v1/payments', body);
        
            console.log(result);
          } catch (error) {
            console.error('Error completing request', error);
          }
        }
        
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        payment_body = {
              "amount": 2100,
              "currency": "USD",
              "payment_method": {
                  "type": "us_ach_bank",
                  "fields": {
                     "proof_of_authorization": true,
                      "first_name": "Test",
                      "last_name": "User",
                      "company_name": "Acme",
                      "routing_number": "123UA34599",
                      "payment_purpose": "Loan payment",
                      "account_number": "USA_2340234to098to0908g"
                }
              }
            }
        
        create_payment_response = make_request(method='post',
                                               path='/v1/payments',
                                               body=payment_body)
        pprint(create_payment_response)
        pprint(results)
        

Crear pago describe los campos de la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "3ae269bc-11ff-477b-9f2a-ce69786876dc"
            },
            "data": {
                "id": "payment_a7ed3e41026614bc9e1d50981c099e07",
                "amount": 0,
                "original_amount": 2100,
                
        //      ...          
                  
                "currency_code": "USD",
                "country_code": "us",
                "status": "ACT",
        
                //      ...
        
                "customer_token": "cus_722c2234e6f83c5249b5376d743737cc",
                "payment_method": "other_1a06a5f97f4b0ff901d61f3ea704b296",
        
                //      ...
        
                "created_at": 1583408200,
        
                //      ...
        
                "paid": false,
        
                //      ...
        
                "payment_method_type": "us_ach_bank",
                "payment_method_type_category": "bank_transfer",
        
                //      ...
        
            }
        }
           
        

El datos la sección de esta respuesta muestra:

  • El pago id es payment_a7ed3e41026614bc9e1d50981c099e07. Cuando lo ejecutes en tu propia zona de pruebas, obtendrás una ID diferente, que necesitarás para un paso posterior

  • El original_amount si el pago es 2100. Necesitará este valor para un paso posterior.

  • El currency_code es USD .

  • El estado es ACTUAR. Esto significa que el proceso de pago está activo y pendiente de finalización. Objeto de pago enumera los valores posibles para estado.

Simule la finalización del pago

El caja de arena no simula directamente la acción que completa un pago. Puede simular esta acción con el procedimiento descrito en Completar el pago. Para ello, necesitarás los siguientes valores de la respuesta que recibiste cuando ejecutaste «Crear pago» en

  • identificador de pago

  • código (en el textual_codes objeto)

  • cantidad_original

Cuando se completa un pago, Rapyd envía un webhook. Antes de ejecutar «Completar el pago», configura tu sistema para recibir webhooks Definición de un endpoint de webhook .

Tras simular la transferencia de fondos por parte del banco de su cliente, Rapyd le envía un webhook Webhook: pago completado para confirmar que se completó el pago.