Débito directo bancario
Retire fondos directamente de las cuentas bancarias de sus clientes.
El débito directo bancario es un retiro autorizado desde la cuenta bancaria del cliente.Los débitos directos se utilizan normalmente en transacciones recurrentes como pagos de facturas, membresías y suscripciones. La funcionalidad de débito directo solo está disponible en países seleccionados donde esta capacidad existe como parte de la red bancaria.
Esquemas populares compatibles con débito directo
Bacs en el Reino Unido.
ACH en Estados Unidos
BECs en Australia.
GIRO en Singapur.
SEPA en la Unión Europea. Consulte la lista de países compatibles con SEPA (Debe estar domiciliado en uno de estos países para poder aceptar pagos 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 débito directo explicado a continuación permite
Agregar pagos por débito directo a su flujo de trabajo empresarial
Crear una solicitud de pago por débito directo.
Capturar la respuesta del pago.
Reglas de la Red Rapyd
Los participantes de la Red Rapyd están sujetos a las Reglas de la red Rapyd. Cualquier uso o participación en la Red Rapyd que no esté cubierto por 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 una página de pago con débito directo ACH.
Formulario de prueba de autorización
El cliente debe firmar un formulario de prueba de autorización que cumpla con las reglas de la red ACH de Rapyd. Para más información, consulte la sección 13 – Entradas ACH iniciadas vía web de las Reglas de la Red Rapyd. Debe conservar una copia de este formulario en sus registros.
Ingrese la información de su cuenta bancaria.
Haga clic en Realizar pedido.

Siga las instrucciones de pago para completar el pago.
Haga clic en Finalizar.

La forma de encontrar los métodos específicos de débito directo bancario que aceptará y los campos requeridos que los clientes deben completar se describe en Cómo funciona.

El cliente selecciona el pago SEPA.
Usted solicita a Rapyd que procese la solicitud.
Rapyd procesa la solicitud y envía la URL de redirección.
Usted presenta la URL de redirección al cliente.
El cliente firma el mandato SEPA.

El cliente completa el pago mediante transferencia bancaria ACH.
El backend de su sitio web solicita a Rapyd que procese el pago ACH.
Rapyd procesa el pago y responde con los detalles de la transacción.
Rapyd notifica al backend del sitio web cuando el pago se completa correctamente.
Decida qué métodos de débito directo bancario aceptará, para que el cliente pueda seleccionarlos en su página de pago. Para ello, utilice Listar métodos de pago por país con los siguientes parámetros:
Los países disponibles pueden consultarse mediante la llamada a la API Lista de países.
Para fines ilustrativos, se utilizan US y USD como país y moneda en los códigos de ejemplo a continuación. US ACH es el tipo de pago por débito directo.
Descripción de los parámetros de consulta
Parámetro de consulta | Descripción |
|---|---|
país | Ingrese US como el código de país ISO ALPHA-2 para Estados Unidos. |
moneda | Ingrese USD como el código de moneda para dólares estadounidenses. |
Solicitud
// Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/country?country=US¤cy=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}¤cy={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¤cy=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¤cy=USD'); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Python
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}¤cy={currency}') pprint(results))
Respuesta del listado de métodos de pago por país
Listar métodos de pago por país describe los campos incluidos en 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 } ] }
La sección datos de esta respuesta muestra que us_ach_bank es un método de pago compatible.
Respuesta del listado de métodos de pago
Una respuesta completa de la API enumera muchos métodos de pago.
Identifique los campos que su cliente debe completar para el método de pago. Para hacerlo, utilice Obtener campos requeridos del método de pago con el siguiente parámetro:
Descripción de los parámetros de ruta
Parámetro de ruta | Descripción |
|---|---|
tipo | Ingrese us_ach_bank como el tipo de método de pago. |
Solicite el conjunto de campos requeridos para un pago us_ach_bank.
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"; } ?>
Python
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)
Obtener campos requeridos del método de pago describe los campos incluidos en 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 } }
La sección datos de esta respuesta muestra que los siguientes campos son obligatorios para un pago us_ach_bank.
prueba_de_autorización
número_de_ruta
propósito_del_pago
número_de_cuenta
Los siguientes campos son opcionales:
nombre
apellido
nombre_empresa
Cuando su cliente paga un préstamo en su sitio web, cree una solicitud denominada Crea un pago, utilizando los siguientes parámetros, para que Rapyd procese el pago mediante transferencia bancaria ACH.
Descripción de los parámetros del cuerpo
Parámetro del cuerpo | Descripción |
|---|---|
monto | Ingrese 2100 como el monto del pago. |
moneda | Ingrese USD como el código de moneda para dólares estadounidenses. |
método_de_pago | Ingrese un objeto con los siguientes campos:
|
Solicite a Rapyd que procese el pago de su cliente por 2,100.00 USD como una 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); } }
Python
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 incluidos en 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", // ... } }
La sección datos de esta respuesta muestra lo siguiente:
El
iddel pago es payment_a7ed3e41026614bc9e1d50981c099e07. Cuando ejecute este proceso en su propio sandbox, obtendrá un ID diferente, el cual necesitará para un paso posterior.El
monto_originaldel pago es 2100. Necesitará este valor para un paso posterior.El
código_de_monedaes USD .El
estadoes ACT. Esto significa que el proceso de pago está activo y en espera de completarse. El Objeto de pago enumera los valores posibles para elestado.
Simulación de la finalización del pago
El sandbox no simula directamente la acción que completa un pago. Puede simular esta acción utilizando el procedimiento descrito en Completar el pago. Para hacerlo, necesitará los siguientes valores de la respuesta que recibió cuando ejecutó 'Crear pago' en su sandbox:
id del pago
código(dentro del objetotextual_codes)monto_original
Cuando un pago se completa, Rapyd envía un webhook. Antes de ejecutar Completar pago, configure su sistema para recibir webhooks siguiendo el procedimiento descrito en Definición de un endpoint de webhook .
Después de simular la transferencia de fondos por parte del banco de su cliente, Rapyd le envía el Webhook: pago completado, que confirma que el pago se ha completado correctamente.