Skip to main content

Documentación

Pago bancario local

Realice el pago con una forma común y rentable de enviar dinero a través de un sistema de pago local. | Empresa

Los casos de uso comunes pueden incluir:

  • Pago local a tu cuenta bancaria o a la de tu cliente

  • Pago local a la cuenta bancaria de un empleado

  • Pago local a un proveedor (B2B)

Un prestamista quiere desembolsar un préstamo reservado a través de un sitio web o una aplicación móvil que esté integrada en la plataforma Rapyd.

Su gerente financiero usa la billetera de la empresa para desembolsar los préstamos en las cuentas bancarias de los clientes. Tu gerente financiero inicia el proceso de envío de los fondos de un cliente recopilando el número de ruta y la información de la cuenta

back-end de tu sitio web le pide a Rapyd que procese el pago. Rapyd procesa el pago. La plataforma Rapyd notifica al back-end de tu sitio web cuando se completa el pago

Utilizar un método de pago como (gb_local_bank) y los campos obligatorios correspondientes que deben rellenar los beneficiarios se describen en Cómo funciona.

request-a-payout-ach.jpg
  1. Recopile información de rutas y cuentas para desembolsar los fondos.

  2. Especifique el código de motivo en la solicitud (por ejemplo, salario).

  3. El back-end del sitio web le pide a Rapyd que procese el pago a un banco de Gran Bretaña.

process-ach.jpg
  1. Rapyd procesa el pago al banco.

  2. El banco acredita en la cuenta bancaria del cliente el dinero del monedero de la empresa.

  3. Rapyd notifica al back-end del sitio web que el pago está completo.

Prerrequisitos

Para ejecutar los ejemplos de este caso de uso, debe crear el siguiente ID en su propio sandbox:

  • monedero electrónico - Corre Creando una billetera Rapyd para el monedero de la empresa. Usa la «identificación» que obtienes en la respuesta. El pago se financiará con el monedero electrónico indicado en la solicitud de pago

Para la página de pago de tu sitio web, necesitas encontrar los tipos de métodos de pago que coincidan con tus criterios, como el país y la moneda de pago.

En este ejemplo, encontrarás tipos de métodos de pago de bancos locales que admiten transferencias en libras esterlinas a beneficiario en el Reino Unido.

Para eso, utilizarás Enumere los tipos de métodos de pago con los siguientes parámetros:

Descripción de los parámetros de consulta

Parámetro de consulta

Descripción

categoría

Entrar banco como categoría del método de pago.

país_beneficiario

Entrar GB como código para el Reino Unido, el país del beneficiario.

divisa_de_pago

Entrar GBP como código para las libras esterlinas, la moneda que recibe el beneficiario.

Solicitud de tipos de métodos de pago de listas

Solicita una lista de todos los tipos de métodos de pago bancarios disponibles para las transferencias en Gran Bretaña que se realizan en GBP.

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payouts/supported_types?category=bank&beneficiary_country=GB&payout_currency=GBP
        
        // Message body absent
    • .NET Core

      • using System;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        string category = "bank";
                        string beneficiaryCountry = "GB";
                        string payoutCurrency = "GBP";
        
                        string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payouts/supported_types?category={category}&beneficiary_country={beneficiaryCountry}&payout_currency={payoutCurrency}");
        
                        Console.WriteLine(result);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Error completing request: " + e.Message);
                    }
                }
            }
        }
    • JavaScript

      • const makeRequest = require('../../../../../Utilities/JS/utilities').makeRequest;
        
        async function main() {
          try {
            const result = await makeRequest('GET', '/v1/payouts/supported_types?category=bank&beneficiary_country=GB&payout_currency=GBP');
        
            console.log(result);
          } catch (error) {
            console.error('Error completing request', error);
          }
        }
    • PHP

      • <?php
        $path = $_SERVER['DOCUMENT_ROOT'];
        $path .= "/code_race_2020/Utilities/PHP/utilities.php";
        include($path);
        
        try {
            $object = make_request('get', "/v1/payouts/supported_types?category=bank&beneficiary_country=GB&payout_currency=GBP");
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        beneficiary_country = 'GB'
        category = 'bank'
        payout_currency = 'GBP'
        
        path = f'/v1/payouts/supported_types?category={category}&' \
               f'beneficiary_country={beneficiary_country}&' \
               f'payout_currency={payout_currency}'
        results = make_request(method='get', path=path)
        pprint(results)
Lista de tipos de métodos de pago y respuesta

Echemos un vistazo a la respuesta.

    • Respuesta

      • {
        "status": {
            "error_code": "",
            "status": "SUCCESS",
            "message": "",
            "response_code": "",
            "operation_id": "5a9fa131-10bb-42b6-8659-934d9fee57a1"
        },
        "data": [
            "payout_method_type": "gb_local_bank",
                "name": "Local UK payouts",
                "is_cancelable": 0,
                "is_expirable": 0,
                "is_location_specific": 0,
                "status": 1,
                "image": "/checkout/gb_local_bank.png",
                "category": "bank",
                "beneficiary_country": "GB",
                "sender_country": "*",
                "payout_currencies": [
                    "GBP"
                ],
                "sender_entity_types": [
                    "company",
                    "individual"
                ],
                "beneficiary_entity_types": [
                    "company",
                    "individual"
                ],
                "amount_range_per_currency": [
                    {
                        "maximum_amount": null,
                        "minimum_amount": null,
                        "payout_currency": "GBP"
                    }
                ],
                "minimum_expiration_seconds": null,
                "maximum_expiration_seconds": null,
                "sender_currencies": [
                    "USD",
                    "SGD",
                    "SEK",
                    "ISK",
                    "HKD",
                    "GBP",
                    "EUR",
                    "DKK",
                    "CHF",
                    "AUD"
                ],
                "estimated_time_of_arrival": "An estimated receipt time is not yet available for this payout method"
            },
                                                    

El datos la sección de este ejemplo de respuesta muestra que gb_local_bank es un tipo de método de pago bancario británico admitido en el Reino Unido.

Una respuesta real suele incluir muchos métodos de pago.

Debe encontrar los campos obligatorios para gb_local_bank tipo de método de pago.

Para eso, utilizarás Obtenga los campos obligatorios de pago con los siguientes parámetros:

Descripción de los parámetros de ruta

Parámetro de ruta

Descripción

tipo_de_método de pago

Entrar gb_local_bank como tipo de método de pago.

Descripción de los parámetros de consulta

Parámetro de consulta

Descripción

país del remitente

Entrar GB como código para el Reino Unido, el país del remitente.

divisa del remitente

Entrar GBP como código para las libras esterlinas, la moneda del remitente.

país_beneficiario

Entrar GB como código para el Reino Unido, el país del beneficiario.

divisa_de_pago

Entrar GBP como código para las libras esterlinas, la moneda que recibe el beneficiario.

tipo_de_entidad_remitente

Entrar empresa como el tipo de entidad para el remitente.

tipo_de_entidad_beneficiaria

Entrar individual como el tipo de entidad para el beneficiario.

importa_desembolso

Entrar 3000 como la cantidad recibida por el beneficiario.

Solicitud de campos obligatorios para obtener el pago

Solicita el conjunto de campos obligatorios para gb_local_bank tipo de método de pago.

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payout_methods/:pomt/required_fields?beneficiary_country=GB&beneficiary_entity_type=individual&payout_amount=3000&payout_currency=GBP&sender_country=GB&sender_currency=GBP&sender_entity_type=company
        // Message body absent
    • .NET Core

      • using System;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        string senderCountry = "GB";
                        string senderCurrency = "GBP";
                        string beneficiaryCountry = "GB";
                        string payoutCurrency = "GBP";
                        string senderEntityType = "company";
                        string beneficiaryEntityType = "individual";
                        string payoutAmount = "3000";
        
                        string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payout_methods/:pomt/required_fields?beneficiary_country={beneficiaryCountry}&beneficiary_entity_type={beneficiaryEntityType}&amount={payoutAmount}")&payout_currency={payoutCurrency}&sender_country={senderCountry}&sender_currency={senderCurrency}&sender_entity_type={senderEntityType};
        
                        Console.WriteLine(result);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Error completing request: " + e.Message);
                    }
                }
            }
        }
    • JavaScript

      • const makeRequest = require('../../../../../Utilities/JS/utilities').makeRequest;
        
        async function main() {
          try {
            const result = await makeRequest(
              'GET',
              '/v1/payout_methods/:pomt/required_fields?beneficiary_country=GB&beneficiary_entity_type=individual&payout_amount=3000&payout_currency=GBP&sender_country=GB&sender_currency=GBP&sender_entity_type=company'
            );
        
            console.log(result);
          } catch (error) {
            console.error('Error completing request', error);
          }
        }
    • PHP

      • <?php
        $path = $_SERVER['DOCUMENT_ROOT'];
        $path .= "/code_race_2020/Utilities/PHP/utilities.php";
        include($path);
        
        try {
            $object = make_request('get', "/v1/payout_methods/:pomt/required_fields?beneficiary_country=GB&beneficiary_entity_type=individual&payout_amount=3000&payout_currency=GBP&sender_country=GB&sender_currency=GBP&sender_entity_type=company");
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        payout_method_type = 'gb_local_bank'
        sender_country = 'GB'
        sender_currency = 'GBP'
        beneficiary_country = 'GB'
        payout_currency = 'GBP'
        sender_entity_type = 'company'
        beneficiary_entity_type = 'individual'
        payout_amount = 3000
        
        path = f'/v1/payout_methods/:pomt/required_fields?beneficiary_country={beneficiary_country}&beneficiary_entity_type={beneficiary_entity_type}&' \
               f'amount={payout_amount}&payout_currency={payout_currency}&' \
               f'sender_country={sender_country}&sender_currency={sender_currency}&sender_entity_type={sender_entity_type}'
        results = make_request(method='get', path=path)
        pprint(results)
Obtener respuesta de campos obligatorios de pago

Echemos un vistazo a la respuesta.

    • Respuesta

      • {
        "status": {
            "error_code": "",
            "status": "SUCCESS",
            "message": "",
            "response_code": "",
            "operation_id": "7f6a6738-b0a2-469b-89d4-26f0cb70cd06"
        },
        "data": {
            "payout_method_type": "gb_local_bank",
            "sender_currency": "GBP",
            "sender_country": "*",
            "sender_entity_type": "company",
            "beneficiary_country": "GB",
            "payout_currency": "GBP",
            "beneficiary_entity_type": "individual",
            "is_cancelable": 0,
            "is_location_specific": 0,
            "is_expirable": 0,
            "minimum_expiration_seconds": null,
            "maximum_expiration_seconds": null,
            "is_online": null,
            "image": "/checkout/gb_local_bank.png",
            "status": 1,
            "beneficiary_required_fields": [
                {
                    "name": "first_name",
                    "regex": "^.{1,70}$",
                    "is_required": true,
                    "type": "string",
                    "description": "Official first name of the bank account holder. First name and last name together should not exceed 70 characters"
                },
                {
                    "name": "last_name",
                    "regex": "^.{1,68}$",
                    "is_required": false,
                    "type": "string",
                    "description": "Official last name of the bank account holder. First name and last name together should not exceed 70 characters"
                },
                {
                    "name": "address",
                    "regex": "^.{1,35}$",
                    "is_required": true,
                    "type": "string",
                    "description": "Beneficiary street name ; building number"
                },
                {
                    "name": "city",
                    "regex": "^.{1,25}$",
                    "is_required": true,
                    "type": "string",
                    "description": "The combined length of city+state+country+postcode must not exceed 32 characters"
                },
                {
                    "name": "state",
                    "regex": "^.{1,15}$",
                    "is_required": false,
                    "type": "string",
                    "description": "The combined length of city+state+country+postcode must not exceed 32 characters"
                },
                {
                    "name": "country",
                    "regex": "^[A-Z]{2}$",
                    "is_required": true,
                    "type": "string",
                    "description": "The combined length of city+state+country+postcode must not exceed 32 characters"
                },
                {
                    "name": "postcode",
                    "regex": "^.{1,10}$",
                    "is_required": false,
                    "type": "string",
                    "description": "The combined length of city+state+country+postcode must not exceed 32 characters"
                },
                {
                    "name": "account_number",
                    "regex": "^.{1,34}$",
                    "is_required": true,
                    "type": "string"
                },
                {
                    "name": "bic_swift",
                    "regex": "^(.{8}|.{11})$",
                    "is_required": true,
                    "type": "string"
                }
            ],
            "sender_required_fields": [
                {
                    "name": "company_name",
                    "regex": "^.{1,35}$",
                    "is_required": true,
                    "type": "string"
                },
                {
                    "name": "address",
                    "regex": "^.{1,35}$",
                    "is_required": true,
                    "type": "string",
                    "description": "street name ; building number"
                },
                {
                    "name": "city",
                    "regex": "^.{1,25}$",
                    "is_required": true,
                    "type": "string",
                    "description": "The combined length of city+state+country+postcode must not exceed 32 characters"
                },
                {
                    "name": "state",
                    "regex": "^.{1,15}$",
                    "is_required": false,
                    "type": "string",
                    "description": "The combined length of city+state+country+postcode must not exceed 32 characters"
                },
                {
                    "name": "country",
                    "regex": "^[A-Z]{2}$",
                    "is_required": true,
                    "type": "string",
                    "description": "The combined length of city+state+country+postcode must not exceed 32 characters"
                },
                {
                    "name": "postcode",
                    "regex": "^.{1,10}$",
                    "is_required": false,
                    "type": "string",
                    "description": "The combined length of city+state+country+postcode must not exceed 32 characters"
                },
                {
                    "name": "purpose_code",
                    "regex": "^(investment_income|salary|insurance_payments|computer_services|educational_services|payment_of_goods|payment_of_services|Inward_remittance)$",
                    "is_required": false,
                    "type": "string",
                    "allowed_values": [
                        "investment_income",
                        "salary",
                        "insurance_payments",
                        "computer_services",
                        "educational_services",
                        "payment_of_goods",
                        "payment_of_services",
                        "Inward_remittance"
                    ],
                    "description": "Required only for sending to - China, India, South Korea, Philippines, Malaysia"
                }
            ],
            "payout_options": [
                {
                    "name": "statement_descriptor",
                    "regex": "[-a-zA-Z0-9?:().,'+ /]{1,35}",
                    "is_required": true,
                    "type": "string",
                    "description": "Unstructured remittance information"
                }
            ],
            "minimum_amount": null,
            "maximum_amount": null,
            "batch_file_header": "payout_method_type,sender_currency,payout_currency,beneficiary.first_name,beneficiary.last_name,beneficiary.address,beneficiary.city,beneficiary.state,beneficiary.country,beneficiary.postcode,beneficiary.account_number,beneficiary.bic_swift,sender.company_name,sender.address,sender.city,sender.state,sender.country,sender.postcode,sender.purpose_code"
            }
        }

El datos la sección de esta respuesta muestra los campos obligatorios para gb_local_bank.

Cuando pidas a Rapyd que procese el pago, utilizarás los campos obligatorios para las objeciones de «beneficiario» y «remitente»:

Beneficiario

Remitente

nombre_de_pila

nombre_empresa

dirección

dirección

ciudad

ciudad

país

país

número_cuenta

bic_swift

Sugerencia

Utilice Validar beneficiario para comprobar los campos del beneficiario antes de solicitar el pago. Consulte Validación de los detalles del beneficiario .

En este ejemplo, Four Star Rideshare Service es el remitente del pago y el empleado es el beneficiario que recibe el pago.

Cuando tu gestor de nóminas solicita un pago del monedero electrónico de la empresa a la cuenta bancaria de un empleado, le pides a Rapyd que procese el pago.

Para eso, utilizarás Crea Payout con los siguientes parámetros:

Descripción de los parámetros corporales

Parámetro corporal

Descripción

beneficiario

Introduzca un objeto «beneficiario» que tenga los siguientes campos:

  • nombre_de_pila - Ingresar Henry

  • apellido_nombre - Ingresar Bronceado

  • número_cuenta - Ingresar 77711020345678

país_beneficiario

Entrar GB como código para el Reino Unido, el país del beneficiario.

tipo_de_entidad_beneficiaria

Entrar individual como el tipo de entidad para el beneficiario.

descripción

Entrar Pago del salario a través del banco como la descripción de la transacción de pago.

monedero electrónico

Introduce el «identificador» de la cartera que recibiste cuando creaste la cartera de la empresa en tu entorno de pruebas. Para los fines de esta lección de casos de uso, estamos usando ewallet_3d03be4b6ed60a217fb1faa7c01ae2ca, que es el identificador de cartera de la empresa que hemos creado en nuestra zona de pruebas.

importa_desembolso

Entrar 3000 como la cantidad recibida por el beneficiario.

divisa_de_pago

Entrar GBP como código para las libras esterlinas, la moneda que recibe el beneficiario.

tipo_de_método de pago

Entrar gb_local_bank como tipo de método de pago.

remitente

Introduzca un objeto «remitente» que tenga los siguientes campos:

  • nombre_empresa - Ingresar Servicio de viajes compartidos de cuatro estrellas

  • código_propósito - Entrar salario

divisa del remitente

Entrar GBP como código para las libras esterlinas, la moneda del remitente.

tipo_de_entidad_remitente

Entrar empresa como el tipo de entidad para el remitente.

país del remitente

Entrar GB como código para el Reino Unido, el país del remitente.

Pagos para beneficiarios ampliados

La creación de un beneficiario extendido permite al comerciante recopilar información adicional sobre su beneficiario antes de crear un pago. Se crea un identificador de token de beneficiario y, a continuación, se transfiere al Crea un pago solicitud.

Por ejemplo, podrías usar un beneficiario extendido para un pago si:

  • Realizar desembolsos a creadores de contenido independientes

  • Creación de pagos para plataformas empresariales basadas en el entretenimiento

  • Realizar un pago local a un proveedor

Ver Crear beneficiario extendido para obtener más información.

Crear solicitud de pago

Le pides a Rapyd que procese el pago del gerente de 3000 GBP (libras esterlinas) a la cuenta bancaria del empleado en Gran Bretaña.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payouts
        
        // Message body: 
        {
            "beneficiary": {
                "payment_type": "regular",
                "address": "45 Albert Road",
                "city": "Anytown",
                "country": "GB",
                "first_name": "Henry",
                "last_name": "Tan",
                "state": null,
                "postcode": "10101",
                "sort_code": "123456",
                "account_number": "77711020345678"
                
            },
            "beneficiary_country": "GB",
            "beneficiary_entity_type": "individual",
            "description": "des c15622888",
            "payout_method_type": "gb_local_bank",
            "ewallet": "ewallet_3d03be4b6ed60a217fb1faa7c01ae2ca",
            "metadata": {
                "merchant_defined": true
            },
            "payout_amount": "3000",
            "payout_currency": "GBP",
            
            "sender": {
                "first_name": "John",
                "last_name": "Doe",
                "identification_type": "work_permit",
                "identification_value": "asdasd123123",
                "phone_number": "19019019011",
                "occupation": "plumber",
                "source_of_income": "business",
                "date_of_birth": "11/12/1913",
                "address": "1 Main Street",
                "purpose_code": "investment_income",
                "beneficiary_relationship": "spouse",
                "city":"London",
                "state":null,
                "postcode":"1234"
            },
                "statement_descriptor":"GHY* Limited Access 800-123-4567",
            "sender_country": "GB",
            "sender_currency": "GBP",
            "sender_entity_type": "individual"
        }
Crear respuesta de pago

Echemos un vistazo a la respuesta.

    • Respuesta

      • {
        "status": {
            "error_code": "",
            "status": "SUCCESS",
            "message": "",
            "response_code": "",
            "operation_id": "0916d8d3-35e3-45f3-a56a-e3cc93262a38"
        },
        "data": {
            "id": "payout_92597636be2bcf8bb974e644db857ce3",
            "payout_type": "bank",
            "payout_method_type": "gb_local_bank",
            "amount": 3000,
            "payout_currency": "GBP",
            "sender_amount": 3000,
            "sender_currency": "GBP",
            "status": "Created",
            "sender_country": "GB",
            "sender": {
                "id": "sender_7d56509da5660fbd0366cf231f4a90fe",
                "last_name": "Doe",
                "first_name": "John",
                "country": "GB",
                "entity_type": "individual",
                "address": "1 Main Street",
                "name": "John Doe",
                "date_of_birth": "11/12/1913",
                "postcode": "1234",
                "city": "London",
                "phone_number": "19019019011",
                "currency": "GBP",
                "identification_type": "work_permit",
                "identification_value": "asdasd123123",
                "purpose_code": "investment_income",
                "beneficiary_relationship": "spouse",
                "source_of_income": "business",
                "occupation": "plumber"
            },
            "beneficiary_country": "GB",
            "beneficiary": {
                "id": "beneficiary_00fe9e62f04fd5f6cb3a248afb819e7e",
                "last_name": "Tan",
                "first_name": "Henry",
                "country": "GB",
                "entity_type": "individual",
                "address": "45 Albert Road",
                "name": "Henry Tan",
                "postcode": "10101",
                "city": "Anytown",
                "account_number": "77711020345678",
                "currency": "GBP",
                "sort_code": "123456",
                "payment_type": "regular"
            },
            "fx_rate": 1,
            "instructions": [
                {
                    "name": "instructions",
                    "steps": [
                        {
                            "step1": "The funds will be transferred to the provided account details of the beneficiary."
                        }
                    ]
                }
            ],
            "ewallets": [
                {
                    "ewallet_id": "ewallet_3d03be4b6ed60a217fb1faa7c01ae2ca",
                    "amount": 3000,
                    "percent": 100
                }
            ],
            "metadata": {
                "merchant_defined": true
            },
            "description": "des c15622888",
            "created_at": 1697240038,
            "payout_fees": null,
            "expiration": null,
            "paid_at": null,
            "identifier_type": null,
            "identifier_value": null,
            "error": null,
            "paid_amount": 0,
            "statement_descriptor": "GHY* Limited Access 800-123-4567",
            "gc_error_code": null,
            "estimated_time_of_arrival": "An estimated receipt time is not yet available for this payout method"
            }
        }
                                                    

Además de los valores de los parámetros que ha introducido en la solicitud, el datos la sección de esta respuesta muestra:

  • El Id si el objeto de «pago» es payout_92597636be2bcf8bb974e644db857ce3. Los webhooks relacionados con este pago hacen referencia a este ID

  • El payout_type es banco.

  • Bajo remitente:

    • El Id es sender_7d56509da5660fbd0366cf231f4a90fe .

    • Se muestran los campos del objeto «remitente».

  • Bajo beneficiario:

    • El Id es beneficiary_00fe9e62f04fd5f6cb3a248afb819e7e .

    • Se muestran los campos del objeto «beneficiario».

  • El estado es Creado. Esto significa que el objeto de «pago» se creó correctamente y que el empleado aún no recibió los fondos de pago

Simulación de la finalización de un pago

El sandbox no simula directamente la acción del beneficiario que recibe los fondos de pago. Puede simular esta acción con Desembolso completo. Para ello, necesitarás el ID de pago y el importe de pago que generaste en tu

Cuando se simula la finalización de un pago, Rapyd envía un webhook. Configura tu sistema para recibir webhooks Definición de un endpoint de webhook

Tras simular que el banco del empleado ha aceptado la transferencia, Rapyd te envía Webhook: pago completado. El webhook confirma que se completó el pago

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