Transferencias Bancarias
Mueva fondos entre cuentas en diferentes bancos.
Una transferencia bancaria es una solicitud de pago desde la cuenta bancaria de su cliente hacia usted. Muchos clientes utilizan las transferencias bancarias como su método de pago principal. Rapyd facilita que sus clientes usen transferencias bancarias para mover fondos entre cuentas y pagar compras. Con las transferencias bancarias puede realizar los siguientes tipos de pagos:
El proceso de transferencia bancaria que se describe a continuación explica cómo:
Agregar pagos por transferencia bancaria a su flujo de negocio.
Crear una solicitud de pago por transferencia bancaria.
Capturar la respuesta del pago.
Proceso de pago por transferencia bancaria

La identificación de los métodos de pago por transferencia bancaria que aceptará y los campos obligatorios que los clientes deben completar se describe en Cómo funciona.

“El cliente confirma un pago por transferencia bancaria en el carrito del proceso de pago.
El backend de su sitio web solicita a Rapyd que procese el pago por transferencia bancaria.
Rapyd procesa la transacción y responde con los detalles de la transacción de pago.
La respuesta incluye instrucciones de pago para el cliente.
La respuesta incluye instrucciones de pago para el cliente.

El cliente contacta a su banco (por ejemplo, usando el sitio web del banco, la aplicación móvil, soporte telefónico o una sucursal) e indica al banco que transfiera el dinero.
El banco del cliente realiza la transferencia del dinero.

Rapyd es notificado de que la transferencia fue exitosa.
Rapyd notifica al backend de su sitio web mediante un Webhook de Pago Completado que que el pago se completó correctamente.
Usted notifica al cliente que la compra se realizó con éxito.
Los diagramas de secuencia de mensajes a continuación describen cómo se intercambia la información entre Rapyd, el comercio, los clientes del comercio y el banco:
Crear pago por transferencia bancaria – Éxito
Crear pago por transferencia bancaria – Fallo
Crear pago por transferencia bancaria – Transacción expirada
Decida qué tipos de transferencias bancarias aceptará en un país específico, para que su cliente pueda seleccionar los métodos de pago en su página de pago.
Para fines ilustrativos, en los ejemplos de código a continuación se utiliza MX (México) y MXN (Peso mexicano) como país y moneda. El tipo de pago es Transferencia bancaria MX SPEI.
Para hacerlo, utilice Listar 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 | Ingrese MX como el código de país para México. |
moneda | Ingrese MXN ccomo el código de moneda para pesos mexicanos. |
Solicitud de listado de métodos de pago por país
Solicitud de listado de métodos de pago por país
Solicitud
// Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/country?country=MX¤cy=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}¤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=MX¤cy=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¤cy=MXN'); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Python
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}¤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": "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 } ] }
La sección datos de esta respuesta muestra que mx_spei_bank es un método de pago aceptado para transferencias bancarias.
Nota
Una respuesta completa de la API generalmente enumera muchos métodos de pago.
Determine los campos que el cliente debe completar para el método de pago, utilizando Obtener campos obligatorios 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 mx_spei_bank como el tipo de método de pago. |
Solicitud para obtener los campos obligatorios del método de pago
Solicitud para obtener el conjunto de campos obligatorios para un pago mx_spei_bank.
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"; } ?>
Python
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)
Respuesta de los campos obligatorios del método de pago
Obtener campos obligatorios del método de pago describe los campos incluidos en 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 su cliente realiza el checkout en su sitio web, utilice Crea un pago con los siguientes parámetros para que Rapyd procese el pago por transferencia bancaria del cliente:
Descripción de los parámetros del cuerpo
Parámetro corporal | Descripción |
|---|---|
monto | Ingrese 10.000 como el monto del pago. |
moneda | Ingrese MXN como el código de moneda para pesos mexicanos. |
método_pago | Ingrese un objeto con el siguiente campo: |
Ingrese un objeto con el siguiente campo:
Solicite a Rapyd que procese el pago de Jane por 10,000 MXN (pesos mexicanos) como una transferencia bancaria, como se muestra en la solicitud a continuación:
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"; } ?>
Python
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)
Respuesta de creación de pago
La respuesta se genera a continuación.
Consulte Crear pago para ver la descripción de los campos incluidos en la respuesta.
CLABE
Desde el 1 de junio de 2004, México utiliza CLABE para la numeración de cuentas bancarias. Este estándar es obligatorio para enviar y recibir transferencias electrónicas 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", // ... } }
La sección datos de esta respuesta muestra lo siguiente:
El
iddel pago es payment_d4fbfe943226bdd14ff35bf3f5d39107.
Nota
Cuando ejecute este flujo en su propio sandbox, obtendrá un ID diferente, el cual necesitará en un paso posterior.
El
monto_originales 100.000.El
código_de_monedaes MXN (pesos mexicanos).El
estadoes ACT.
Finalización del pago
Esto significa que el proceso de pago está activo y en espera de que se complete el pago.La respuesta incluye instrucciones para que el cliente complete el pago.
Su sitio web proporcionará estas instrucciones al cliente.
Después de que el cliente realice el pago correctamente y Rapyd sea notificado de que los fondos fueron recibidos, Rapyd le envía un webhook con los detalles de la transacción.
Simulación de una transferencia bancaria
El sandbox no simula directamente una transferencia bancaria. Puede simular esta acción mediante el procedimiento descrito en Completar pago. Para ello, necesitará el ID del pago que generó en su sandbox.
Configure su sistema para recibir webhooks utilizando 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 }
La sección datos del webhook contiene el mismo tipo de información que la respuesta de la solicitud Crear pago, excepto que el status ahora aparece como CLO (cerrado). Esto indica que el pago se ha completado.
En este punto, puede mostrar un estado de éxito en pantalla para informar al cliente que su compra se realizó correctamente y que puede proceder a recoger los artículos adquiridos.