Skip to main content

Documentación

Reutilización del beneficiario o remitente

Optimice sus pagos futuros. | Empresarial

Rapyd agiliza los pagos y facilita su reutilización beneficiario y la información del remitente. Rapyd crea identificadores para representar a cada contacto y evitar tener que introducir información detallada en cada pago

Por ejemplo, su administrador de nóminas puede obtener identificaciones que representen al beneficiario y al remitente en el pago de un salario. El administrador de nóminas puede usar estos identificadores para cada pago de salario mensual. Esto evita la necesidad de volver a introducir manualmente la información detallada para cada pago

Los casos de uso comunes incluyen:

  • Pago continuo a una empresa o empresas de un mercado

  • Pagos continuos a un trabajador o empleado contratado

  • Pago a los proveedores (B2B) que son útiles para su negocio

Puedes encontrar los métodos de pago específicos que utilizarás en la sección Cómo funciona.

Paso 1: Obtener un identificador de remitente
get-a-sender.jpg
  1. En su sitio web, su administrador de nóminas solicita una identificación para el remitente.

  2. El back-end del sitio web le pide a Rapyd que crear una ID de remitente.

  3. Rapyd envía un identificador de remitente al back-end del sitio web.

  4. Su administrador de nóminas recibe el identificador del remitente de su sitio web.

get-a-beneficiary.jpg
  1. Su administrador de nóminas solicita una identificación para el beneficiario.

  2. El back-end del sitio web le pide a Rapyd que crear una identificación de beneficiario .

  3. Rapyd envía una identificación de beneficiario al backend del sitio web.

  4. Su administrador de nóminas recibe la identificación del beneficiario de su sitio web.

use-ids-for-payout.jpg
  1. Su administrador de nóminas solicita el pago del salario de un empleado, especificando los ID del remitente y del beneficiario.

  2. El back-end del sitio web le pide a Rapyd que procese el pago.

  3. Rapyd procesa el pago.

  4. El back-end del sitio web recibe la confirmación de Rapyd de que se completó el pago.

Prerrequisitos

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

Para tu página de pago, debes encontrar los tipos de métodos de pago que coincidan con tus criterios, como la moneda y la categoría de pago (por ejemplo, banco o efectivo).

En este ejemplo, encontrarás tipos de métodos de pago que admiten transferencias bancarias en PHP (pesos filipinos).

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 PH como código para Filipinas, el país del beneficiario.

divisa_de_pago

Entrar PHP como código para los pesos filipinos, la moneda recibida por el beneficiario.

Solicitud de tipos de métodos de pago de listas

Solicita una lista de todos los tipos de métodos de pago disponibles para transferencias bancarias en PHP (pesos filipinos).

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payout_methods?category=bank&beneficiary_country=PH&payout_currency=PHP
        
        // Message body absent
    • .NET Core

      • using System;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        string category = "bank";
                        string beneficiaryCountry = "PH";
                        string payoutCurrency = "PHP";
        
                        string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payout_methods?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('<path-to-your-utility-file>/utilities').makeRequest;
        
        async function main() {
          try {
            const result = await makeRequest('GET', '/v1/payout_methods?category=bank&beneficiary_country=PH&payout_currency=PHP');
            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/payout_methods?category=bank&beneficiary_country=PH&payout_currency=PHP");
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        beneficiary_country = 'PH'
        category = 'bank'
        payout_currency = 'PHP'
        
        path = f'/v1/payout_methods?category={category}&' \
               f'beneficiary_country={beneficiary_country}&' \
               f'payout_currency={payout_currency}'
        methods = make_request(method='get', path=path)
        pprint(methods)
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": "f5b4ebce-b159-427e-b424-62aba58f8cd8"
                },
                "data": [{
                                "payout_method_type": "ph_anzbank_bank",
                                "name": "Bank Transfer to ANZ Bank in the Philippines",
                                "is_cancelable": 0,
                                "is_expirable": 0,
                                "is_location_specific": 0,
                                "is_online": 0,
                                "status": 1,
                                "image": "",
                                "category": "bank",
                                "beneficiary_country": "ph",
                                "payout_currencies": [
                                        "PHP"
                                ],
                                "sender_entity_types": [
                                        "company",
                                        "individual"
                                ],
                                "beneficiary_entity_types": [
                                        "company",
                                        "individual"
                                ],
                                "amount_range_per_currency": [{
                                                "maximum_amount": null,
                                                "minimum_amount": null,
                                                "payout_currency": "PHP"
                                        }
                                ]
                        }
                ]
        }

El datos la sección de esta respuesta muestra que ph_anzbank_bank es un tipo de método de pago aceptable para transferencias bancarias en PHP (pesos filipinos).

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

Debes encontrar los campos obligatorios para cada 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 ph_anzbank_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 PHP como código para los pesos filipinos, la moneda del remitente.

país_beneficiario

Entrar PH como código para Filipinas, el país del beneficiario.

divisa_de_pago

Entrar PHP como código para los pesos filipinos, la moneda recibida por 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 10000 como la cantidad recibida por el beneficiario.

Solicitud de campos obligatorios para obtener el pago

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

    • Solicitud

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

      • using System;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        string payoutMethodType = "ph_anzbank_bank";
                        string senderCountry = "GB";
                        string senderCurrency = "PHP";
                        string beneficiaryCountry = "PH";
                        string payoutCurrency = "PHP";
                        string senderEntityType = "company";
                        string beneficiaryEntityType = "individual";
                        string payoutAmount = "10000";
        
                        string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payout_methods/{payoutMethodType}/required_fields?sender_country={senderCountry}&sender_currency={senderCurrency}&beneficiary_country={beneficiaryCountry}&payout_currency={payoutCurrency}&sender_entity_type={senderEntityType}&beneficiary_entity_type={beneficiaryEntityType}&payout_amount={payoutAmount}");
        
                        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/payout_methods/ph_anzbank_bank/required_fields?sender_country=GB&sender_currency=PHP&beneficiary_country=PH&payout_currency=PHP&sender_entity_type=company&beneficiary_entity_type=individual&payout_amount=10000'
            );
            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/payout_methods/ph_anzbank_bank/required_fields?sender_country=GB&sender_currency=PHP&beneficiary_country=PH&payout_currency=PHP&sender_entity_type=company&beneficiary_entity_type=individual&payout_amount=10000");
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        payout_method_type = 'ph_anzbank_bank'
        beneficiary_country = 'PH'
        sender_country = 'GB'
        beneficiary_entity_type = 'individual'
        sender_entity_type = 'company'
        payout_amount = 10000
        payout_currency = 'PHP'
        sender_currency = 'PHP'
        
        path = f'/v1/payout_methods/{payout_method_type}/required_fields?sender_country={sender_country}&sender_currency={sender_currency}&' \
               f'beneficiary_country={beneficiary_country}&payout_currency={payout_currency}&' \
               f'sender_entity_type={sender_entity_type}&beneficiary_entity_type={beneficiary_entity_type}&payout_amount={payout_amount}'
        required_fields = make_request(method='get', path=path)
        pprint(required_fields)
Obtener respuesta de campos obligatorios de pago

Echemos un vistazo a la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "f3b51074-63f6-436b-9294-6fb6361a098d"
            },
            "data": {
                "payout_method_type": "ph_anzbank_bank",
                "sender_currency": "PHP",
                "sender_country": "*",
                "sender_entity_type": "company",
                "beneficiary_country": "ph",
                "payout_currency": "PHP",
                "beneficiary_entity_type": "individual",
             
        //      ...          
                  
                "beneficiary_required_fields": [
                    {
                        "name": "first_name",
                        "regex": "^([a-zA-Z0-9]){1,50}$)",
                        "type": "string"
                    },
                    {
                        "name": "last_name",
                        "regex": "^([a-zA-Z0-9]){1,50}$)",
                        "type": "string"
                    },
                    {
                        "name": "account_number",
                        "regex": "^([a-zA-Z0-9]){1,45}$)",
                        "type": "string"
                    },
                    {
                        "name": "identification_type",
                        "regex": "(work_permit|international_passport|identification_id|social_security|residence_permit|company_registered_number)",
                        "type": "string",
                        "description": "identification types"
                    },
                    {
                        "name": "identification_value",
                        "regex": "^([a-zA-Z0-9]){1,30}$)",
                        "type": "string",
                        "description": "alphanumeric characters in length between 1-30"
                    }
                ],
                "sender_required_fields": [
                    {
                        "name": "company_name",
                        "regex": "^([a-zA-Z0-9]){1,50}$)",
                        "type": "string"
                    },
                    {
                        "name": "identification_type",
                        "type": "string",
                        "allowed_values": "company_registered_number",
                        "description": "identification types"
                    },
                    {
                        "name": "identification_value",
                        "regex": "^([a-zA-Z0-9]){1,30}$)",
                        "type": "string",
                        "description": "alphanumeric characters in length between 1-30"
                    },
                    {
                        "name": "phone_number",
                        "regex": "^([0-9]){8,30}$",
                        "type": "string",
                        "description": "Phone number length between 8-30"
                    },
                    {
                        "name": "occupation",
                        "regex": "^([a-zA-Z0-9]){1,50}$)",
                        "type": "string"
                    },
                    {
                        "name": "source_of_income",
                        "regex": "(business|salary|savings|loans)",
                        "type": "string",
                        "description": "source of income"
                    },
                    {
                        "name": "date_of_birth",
                        "regex": "^([0-2][0-9]|(3)[0-1])(/)(((0)[0-9])|((1)[0-2]))(/)((19|20)[0-9][0-9])$",
                        "type": "date",
                        "description": "the date must match the following pattern: dd/mm/yyyy"
                    },
                    {
                        "name": "address",
                        "regex": "^([a-zA-Z0-9]){2,50}$)",
                        "type": "string"
                    },
                    {
                        "name": "purpose_code",
                        "regex": "(investment_income|salary|insurance_payments|computer_services|real_estate_abroad|real_estate_in_host_country)",
                        "type": "string",
                        "description": "purpose code"
                    },
                    {
                        "name": "beneficiary_relationship",
                        "regex": "(spouse|children|parent|sibling|brother|sister|self|friend|business partner|customer|employee|branch|subsidiary|holding|supplier)",
                        "type": "string",
                        "description": "beneficiary relationship"
                    }
                ],
              
        //    ...          
                  
            }
        }

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

Utilizará los campos que figuran en beneficiary_required_fields y sender_required_fields cuando le pides a Rapyd que cree ID para los objetos «beneficiario» y «remitente».

Como se muestra en la tabla siguiente, algunos campos son obligatorios tanto para el beneficiario como para el remitente.

Beneficiario

Remitente

número_cuenta

dirección

relación_beneficiaria

nombre_empresa

fecha_de_nacimiento

nombre_de_pila

tipo_de_identificación

tipo_de_identificación

valor_identificación

valor_identificación

apellido_nombre

ocupación

número_teléfono

número_teléfono

código_propósito

fuente_de_ingresos

En este ejemplo, su administradora de nóminas Jane Doe es la remitente del pago del salario.

Cuando Jane solicita una ID para representar el objeto «remitente» de la solicitud de pago, le pides a Rapyd que cree una ID de remitente.

Para eso, utilizarás Crear remitente con los siguientes parámetros, que incluyen:

  • Parámetros que siempre son necesarios para una solicitud de «Crear remitente».

  • Parámetros que se enumeran en sender_required_fields en la respuesta «Obtener los campos obligatorios de pago» para ph_anzbank_bank tipo de método de pago.

Descripción de los parámetros corporales

Parámetro corporal

Descripción

país

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

moneda

Entrar PHP como código para los pesos filipinos, la moneda del remitente.

tipo_entidad

Entrar empresa como el tipo de entidad para el remitente.

nombre_empresa

Entrar Servicio de viaje compartido de cuatro estrellas.

tipo_de_identificación

Entrar número registrado de la empresa.

valor_identificación

Entrar 10207686 .

número_teléfono

Entrar 442037443095 .

ocupación

Entrar transporte .

fuente_de_ingresos

Entrar negocio .

fecha_de_nacimiento

Entrar 31/07/1984 .

dirección

Entrar 123 Main Street, Londres.

código_propósito

Entrar salario.

relación_beneficiaria

Entrar empleado .

Crear solicitud de remitente

Le pides a Rapyd que procese la solicitud de Jane de un identificador de remitente.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payouts/sender
        
        // Message body:
        {
                "country": "GB",
                "currency": "PHP",  
                "entity_type": "company",
                "company_name": "Four Star Rideshare Service",
                "identification_type": "company registered number",
                "identification_value": "10207686",
                "phone_number": "442037443095",
                "occupation": "transportation",
                "source_of_income": "business",
                "date_of_birth": "31/07/1984",
                "address": "123 Main Street London",
                "purpose_code": "salary",
                "beneficiary_relationship": "employee"
        }
    • .NET Core

      • using System;
        using System.Text.Json;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
        
                        var requestObj = new
                        {
        
                            country = "GB",
                            currency = "PHP",
                            entity_type = "company",
                            company_name = "Four Star Rideshare Service",
                            identification_type = "company registered number",
                            identification_value = "10207686",
                            phone_number = "442037443095",
                            occupation = "transportation",
                            source_of_income = "business",
                            date_of_birth = "31/07/1984",
                            address = "123 Main Street London",
                            purpose_code = "salary",
                            beneficiary_relationship = "employee"
                        };
        
                        string request = JsonSerializer.Serialize(requestObj);
        
                        string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payouts/sender", 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 = {
              country: 'GB',
              currency: 'PHP',
              entity_type: 'company',
              company_name: 'Four Star Rideshare Service',
              identification_type: 'company registered number',
              identification_value: '10207686',
              phone_number: '442037443095',
              occupation: 'transportation',
              source_of_income: 'business',
              date_of_birth: '31/07/1984',
              address: '123 Main Street London',
              purpose_code: 'salary',
              beneficiary_relationship: 'employee'
            };
            const result = await makeRequest('POST', '/v1/payouts/sender', 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 = [
            "country" => "GB",
            "currency" => "PHP",
            "entity_type" => "company",
            "company_name" => "Four Star Rideshare Service",
            "identification_type" => "company registered number",
            "identification_value" => "10207686",
            "phone_number" => "442037443095",
            "occupation" => "transportation",
            "source_of_income" => "business",
            "date_of_birth" => "31/07/1984",
            "address" => "123 Main Street London",
            "purpose_code" => "salary",
            "beneficiary_relationship" => "employee"
        ];
        
        try {
            $object = make_request('post', '/v1/payouts/sender', $body);
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        # Create Sender request
        body = {
            "country": "GB",
            "currency": "PHP",
            "entity_type": "company",
            "company_name": "Four Star Rideshare Service",
            "identification_type": "company registered number",
            "identification_value": "10207686",
            "phone_number": "442037443095",
            "occupation": "transportation",
            "source_of_income": "business",
            "date_of_birth": "31/07/1984",
            "address": "123 Main Street London",
            "purpose_code": "salary",
            "beneficiary_relationship": "employee"
        }
        results = make_request(method='post',
                               path='/v1/payouts/sender',
                               body=body)
        pprint(results)
        
Crear respuesta del remitente

Echemos un vistazo a la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "790974a1-5600-4f38-b8b5-c9cd10deda1c"
            },
            "data": {
                "id": "sender_2c3d6492f50f7de237b867bb3e40a247",
                "country": "GB",
                "entity_type": "company",
                "address": "123 Main Street London",
                "name": "Four Star Rideshare Service",
                "date_of_birth": "31/07/1984",
                "phone_number": "442037443095",
                "company_name": "Four Star Rideshare Service",
                "currency": "PHP",
                "identification_type": "company registered number",
                "identification_value": "10207686",
                "purpose_code": "salary",
                "beneficiary_relationship": "employee",
                "source_of_income": "business",
                "occupation": "transportation"
            }
        }

El datos la sección de esta respuesta muestra:

  • El Id porque el remitente es sender_2c3d6492f50f7de237b867bb3e40a247. Cuando ejecutes este ejemplo en tu propia zona de pruebas, obtendrás un ID diferente, que necesitarás para un paso posterior en este caso práctico

  • Se muestran los campos del objeto «remitente» que representa el ID.

En este ejemplo, John Doe (el empleado) es el beneficiario que recibe el pago del salario.

Cuando Jane, tu administradora de nóminas, solicita una ID para representar el objeto «beneficiario» en la solicitud de pago, le pides a Rapyd que cree una ID de beneficiario.

Para eso, utilizarás Crear beneficiario con los siguientes parámetros, que incluyen:

  • Parámetros que siempre son necesarios para una solicitud de «Crear beneficiario».

  • Parámetros que se enumeran en beneficiary_required_fields en la respuesta «Obtenga los campos obligatorios de pago» para ph_anzbank_bank tipo de método de pago.

Descripción de los parámetros corporales

Parámetro corporal

Descripción

categoría

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

país

Entrar PH como código para Filipinas, el país del beneficiario.

moneda

Entrar PHP como código para los pesos filipinos, la moneda recibida por el beneficiario.

tipo_entidad

Entrar individual como el tipo de entidad para el beneficiario.

nombre_de_pila

Entrar John como nombre del beneficiario.

apellido_nombre

Entrar Doe como apellido del beneficiario.

número_cuenta

Entrar 006449956988 .

tipo_de_identificación

Entrar pasaporte internacional.

valor_identificación

Entrar Z470384 .

número_teléfono

Entrar 632567000014 .

Nota

También puedes crear un objeto beneficiario con Crea una página de tokenización de beneficiarios. Cuando se completa el proceso, Rapyd te envía Webhook: beneficiario creado, que contiene la identificación del beneficiario.

Crear solicitud de beneficiario

Le pides a Rapyd que procese la solicitud de Jane de una identificación de beneficiario.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payouts/beneficiary
        
        // Message body:
        {
                "category": "bank",
                "country": "PH",
                "currency": "PHP",
                "entity_type": "individual",
                "first_name": "John",
                "last_name": "Doe",
                "account_number": "006449956988",
                "identification_type": "international passport",
                "identification_value": "Z4703384",
                "phone_number": "632567000014"
        }
    • .NET Core

      • using System;
        using System.Text.Json;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
        
                        var requestObj = new
                        {
                            category = "bank",
                            country = "PH",
                            currency = "PHP",
                            entity_type = "individual",
                            first_name = "John",
                            last_name = "Doe",
                            account_number = "006449956988",
                            identification_type = "international passport",
                            identification_value = "Z4703384",
                            phone_number = "632567000014"
                        };
        
                        string request = JsonSerializer.Serialize(requestObj);
        
                        string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payouts/beneficiary", 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 = {
              category: 'bank',
              country: 'PH',
              currency: 'PHP',
              entity_type: 'individual',
              first_name: 'John',
              last_name: 'Doe',
              account_number: '006449956988',
              identification_type: 'international passport',
              identification_value: 'Z4703384',
              phone_number: '632567000014'
            };
            const result = await makeRequest('POST', '/v1/payouts/beneficiary', 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 = [
            "category" => "bank",
            "country" => "PH",
            "currency" => "PHP",
            "entity_type" => "individual",
            "first_name" => "John",
            "last_name" => "Doe",
            "account_number" => "006449956988",
            "identification_type" => "international passport",
            "identification_value" => "Z4703384",
            "phone_number" => "632567000014"
        ];
        
        try {
            $object = make_request('post', '/v1/payouts/beneficiary', $body);
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        beneficiary_details = {
            "category": "bank",
            "country": "PH",
            "currency": "PHP",
            "entity_type": "individual",
            "first_name": "John",
            "last_name": "Doe",
            "account_number": "006449956988",
            "identification_type": "international passport",
            "identification_value": "Z4703384",
            "phone_number": "632567000014"
        }
        
        result = make_request(method='post',
                              path='/v1/payouts/beneficiary',
                              body=beneficiary_details)
        pprint(result)
Crear una respuesta para el beneficiario

Echemos un vistazo a la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "1fb218a9-e5a4-4cc0-8377-27d52f18d133"
            },
            "data": {
                "id": "beneficiary_a0345a157ccac51bf4d4a54b388c32ba",
                "last_name": "Doe",
                "first_name": "John",
                "country": "PH",
                "entity_type": "individual",
                "name": "John Doe",
                "phone_number": "632567000014",
                "currency": "PHP",
                "identification_type": "international passport",
                "identification_value": "Z4703384",
                "category": "bank"
            }
        }

El datos la sección de esta respuesta muestra:

  • El Id porque el beneficiario es beneficiary_a0345a157ccac51bf4d4a54b388c32ba. Cuando ejecutes este ejemplo en tu propia zona de pruebas, obtendrás un ID diferente, que necesitarás para un paso posterior en este caso práctico

  • Se muestran los campos del objeto «beneficiario» que representa el identificador.

Sugerencia

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

Cuando Jane solicita un pago del monedero de la empresa a la cuenta bancaria de John, 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

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_090e1ef18c3aa754fd43cce9ee454858, que es el identificador de monedero que hemos creado en nuestra zona de pruebas.

importa_desembolso

Entrar 10000 como la cantidad recibida por el beneficiario.

tipo_de_método de pago

Entrar ph_anzbank_bank como tipo de método de pago.

divisa del remitente

Entrar PHP como código para los pesos filipinos, la moneda del remitente.

país del remitente

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

país_beneficiario

Entrar PH como código para Filipinas, el país del beneficiario.

divisa_de_pago

Entrar PHP como código para los pesos filipinos, la moneda recibida por 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.

beneficiario

Introduce la «identificación» del beneficiario que recibiste al crear el beneficiario en tu entorno limitado. Para los fines de esta lección de casos de uso, estamos usando beneficiary_a0345a157ccac51bf4d4a54b388c32ba, que es el identificador del beneficiario que creamos en nuestra zona de pruebas.

remitente

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

descripción

Entrar Pago del salario: del monedero electrónico a la cuenta bancaria como descripción de la transacción de pago.

Crear solicitud de pago

Le pides a Rapyd que procese el pago de 10 000 PHP (pesos filipinos) de Jane a la cuenta bancaria de John.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payouts
        
        // Message body: 
        {
                "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858",
                "payout_amount": 10000,
                "payout_method_type": "ph_anzbank_bank",
                "sender_currency": "PHP",
                "sender_country": "GB",
                "beneficiary_country": "PH",
                "payout_currency": "PHP",
                "sender_entity_type": "company",
                "beneficiary_entity_type": "individual",
                "beneficiary": "beneficiary_a0345a157ccac51bf4d4a54b388c32ba",
                "sender": "sender_2c3d6492f50f7de237b867bb3e40a247",
                "description": "Salary payout - wallet to bank account"
        }
    • .NET Core

      • using System;
        using System.Text.Json;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        var requestObj = new
                        {
                            ewallet = "ewallet_090e1ef18c3aa754fd43cce9ee454858",
                            payout_amount = 10000,
                            payout_method_type = "ph_anzbank_bank",
                            sender_currency = "PHP",
                            sender_country = "GB",
                            beneficiary_country = "PH",
                            payout_currency = "PHP",
                            sender_entity_type = "company",
                            beneficiary_entity_type = "individual",
                            beneficiary = "beneficiary_a0345a157ccac51bf4d4a54b388c32ba",
                            sender = "sender_2c3d6492f50f7de237b867bb3e40a247",
                            description = "Salary payout - eWallet to bank account"
                        };
        
                        string request = JsonSerializer.Serialize(requestObj);
        
                        string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payouts", 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 = {
              ewallet: 'ewallet_090e1ef18c3aa754fd43cce9ee454858',
              payout_amount: 10000,
              payout_method_type: 'ph_anzbank_bank',
              sender_currency: 'PHP',
              sender_country: 'GB',
              beneficiary_country: 'PH',
              payout_currency: 'PHP',
              sender_entity_type: 'company',
              beneficiary_entity_type: 'individual',
              beneficiary: 'beneficiary_a0345a157ccac51bf4d4a54b388c32ba',
              sender: 'sender_2c3d6492f50f7de237b867bb3e40a247',
              description: 'Salary payout - wallet to bank account'
            };
            const result = await makeRequest('POST', '/v1/payouts', 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 = [
            'ewallet' => "ewallet_090e1ef18c3aa754fd43cce9ee454858",
            "payout_amount" => 10000,
            "payout_method_type" => "ph_anzbank_bank",
            "sender_currency" => "PHP",
            "sender_country" => "GB",
            "beneficiary_country" => "PH",
            "payout_currency" => "PHP",
            "sender_entity_type" => "company",
            "beneficiary_entity_type" => "individual",
            "beneficiary" => "beneficiary_a0345a157ccac51bf4d4a54b388c32ba",
            "sender" => "sender_2c3d6492f50f7de237b867bb3e40a247",
            "description" => "Salary payout - eWallet to bank account"
        ];
        
        try {
            $object = make_request('post', '/v1/payouts', $body);
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        payout_body = {
            "ewallet": "ewallet_090e1ef18c3aa754fd43cce9ee454858",
            "payout_amount": 10000,
            "payout_method_type": "ph_anzbank_bank",
            "sender_currency": "PHP",
            "sender_country": "GB",
            "beneficiary_country": "PH",
            "payout_currency": "PHP",
            "sender_entity_type": "company",
            "beneficiary_entity_type": "individual",
            "beneficiary": "beneficiary_a0345a157ccac51bf4d4a54b388c32ba",
            "sender": "sender_2c3d6492f50f7de237b867bb3e40a247",
            "description": "Salary payout - eWallet to bank account"
        }
        
        result = make_request(method='post', path='/v1/payouts', body=payout_body)
        pprint(result)
Crear respuesta de pago

Echemos un vistazo a la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "90e4b733-accd-4d1d-a2b0-43c6374d0b56"
            },
            "data": {
                "id": "payout_13b1eb7d39ba9be479df4e28b7f1716d",
                "payout_type": "bank",
                "payout_method_type": "ph_anzbank_bank",
                "amount": 10000,
                "payout_currency": "PHP",
                "sender_amount": 10000,
                "sender_currency": "PHP",
                "status": "Created",
                "sender_country": "GB",
                "sender": {
                    "id": "sender_2c3d6492f50f7de237b867bb3e40a247",
                    "country": "GB",
                    "entity_type": "company",
                    "address": "123 Main Street London",
                    "name": "Four Star Rideshare Service",
                    "date_of_birth": "31/07/1984",
                    "phone_number": "442037443095",
                    "company_name": "Four Star Rideshare Service",
                    "currency": "PHP",
                    "identification_type": "company registered number",
                    "identification_value": "10207686",
                    "purpose_code": "salary",
                    "beneficiary_relationship": "employee",
                    "source_of_income": "business",
                    "occupation": "transportation"
                },
                "beneficiary_country": "PH",
                "beneficiary": {
                    "id": "beneficiary_a0345a157ccac51bf4d4a54b388c32ba",
                    "last_name": "Doe",
                    "first_name": "John",
                    "country": "PH",
                    "entity_type": "individual",
                    "name": "John Doe",
                    "phone_number": "632567000014",
                    "account_number": "006449956988",
                    "currency": "PHP",
                    "identification_type": "international passport",
                    "identification_value": "Z4703384",
                    "bank_name": "John Doe",
                    "category": "bank"
                },
                "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_090e1ef18c3aa754fd43cce9ee454858",
                        "amount": 10000,
                        "percent": 100
                    }
                ],
                "metadata": {},
                "description": "Salary payout - wallet to bank account",
              
        //    ...          
                  
            }
        }

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_13b1eb7d39ba9be479df4e28b7f1716d. Los webhooks relacionados con este pago hacen referencia a este ID

  • El payout_type es banco.

  • Bajo remitente:

    • El Id es sender_2c3d6492f50f7de237b867bb3e40a247 .

    • Se muestran los campos del objeto «remitente» que representa el ID.

  • Bajo beneficiario:

    • El Id es beneficiary_a0345a157ccac51bf4d4a54b388c32ba .

    • Se muestran los campos del objeto «beneficiario» que representa el identificador.

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

  • Hay instrucciones que describen la transferencia de fondos a la cuenta bancaria del beneficiario.

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 a la cuenta bancaria de John se le acreditó su salario, Rapyd te envía Webhook: pago completado. El webhook confirma que se completó el pago

Los ID del remitente y del beneficiario representan objetos que contienen los valores de los campos obligatorios que se enumeraron cuando se generó la respuesta «Obtener campos obligatorios de pago».

Puedes usar los ID para cualquier método de pago con campos obligatorios que coincidan con los campos que eran obligatorios cuando se crearon los ID. Los ID son válidos para un método de pago que tenga menos campos obligatorios, pero no para un método de pago con campos obligatorios adicionales o diferentes

Nota

Los campos obligatorios del método de pago original pueden cambiar con el tiempo.

Si no puedes usar un identificador existente, realiza una de las siguientes acciones:

  • Obtenga una nueva identificación mediante los métodos descritos anteriormente. Para crear un ID que puedas usar con varios métodos de pago, incluye todos los campos obligatorios para cada método de pago

  • Inserte manualmente el objeto con todos los valores de campo obligatorios, tal y como se describe en Pago a una cuenta bancaria .

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