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

En su sitio web, su administrador de nóminas solicita una identificación para el remitente.
El back-end del sitio web le pide a Rapyd que crear una ID de remitente.
Rapyd envía un identificador de remitente al back-end del sitio web.
Su administrador de nóminas recibe el identificador del remitente de su sitio web.

Su administrador de nóminas solicita una identificación para el beneficiario.
El back-end del sitio web le pide a Rapyd que crear una identificación de beneficiario .
Rapyd envía una identificación de beneficiario al backend del sitio web.
Su administrador de nóminas recibe la identificación del beneficiario de su sitio web.

Su administrador de nóminas solicita el pago del salario de un empleado, especificando los ID del remitente y del beneficiario.
El back-end del sitio web le pide a Rapyd que procese el pago.
Rapyd procesa el pago.
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:
monedero electrónico - Corre Crea una billetera para la billetera del servicio de viajes compartidos. Usa la «identificación» que aparece en la respuesta. Para obtener más información, consulte Creación de una billetera Rapyd .
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 |
|---|---|
| |
| |
| |
| |
| |
| |
|
|
|
|
| |
| |
|
|
| |
|
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_fieldsen 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
Idporque 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ácticoSe 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_fieldsen 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
Idporque 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ácticoSe 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
Idsi el objeto de «pago» es payout_13b1eb7d39ba9be479df4e28b7f1716d. Los webhooks relacionados con este pago hacen referencia a este IDEl
payout_typees banco.Bajo
remitente:El
Ides sender_2c3d6492f50f7de237b867bb3e40a247 .Se muestran los campos del objeto «remitente» que representa el ID.
Bajo
beneficiario:El
Ides beneficiary_a0345a157ccac51bf4d4a54b388c32ba .Se muestran los campos del objeto «beneficiario» que representa el identificador.
El
estadoes 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.