Reutilizar el beneficiario o remitente
Optimice sus desembolsos futuros. | Empresarial
Rapyd optimiza los reembolsos y facilita reutilizar la información del beneficiario y del remitente. Rapyd crea los ID para representar a cada contacto y evitar tener que introducir información detallada en cada desembolso.
Por ejemplo, su administrador de nóminas puede obtener los ID que representan al beneficiario y al remitente del desembolso de un salario. El administrador de nóminas puede usar estos identificadores para el desembolso de cada salario mensual. Esto evita la necesidad de volver a introducir manualmente la información detallada para cada desembolso.
Los casos de uso comunes incluyen:
Desembolsos continuos a una empresa o empresas de un mercado
Desembolsos continuos a un trabajador o empleado contratado
Desembolso a los proveedores (B2B) que le ofrecen bienes o servicios a su negocio
Puede encontrar los métodos de desembolso específicos que utilizará en la sección Cómo funciona.
Paso 1: Obtener un ID de remitente

En su sitio web, su administrador de nóminas solicita un ID para el remitente.
El back-end del sitio web solicita a Rapyd Crear un ID de remitente.
Rapyd envía un ID de remitente al back-end del sitio web.
Su administrador de nóminas recibe el ID del remitente de su sitio web.

Su administrador de nóminas solicita un ID para el beneficiario.
El back-end del sitio web solicita a Rapyd Crear un ID de beneficiario.
Rapyd envía un ID de beneficiario al back-end del sitio web.
Su administrador de nóminas recibe el ID del beneficiario de su sitio web.

Su administrador de nóminas solicita el desembolso 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 desembolso.
Rapyd procesa el desembolso.
El back-end del sitio web recibe la confirmación de Rapyd de que se completó el desembolso.
Prerrequisitos
Para ejecutar los ejemplos de este caso de uso, debe crear el siguiente ID en su propio sandbox:
ewallet - Ejecute Crear una billetera para la billetera del servicio de viajes compartidos. Use el «ID» que aparece en la respuesta. Para obtener más información, ver Crear un Rapyd Wallet.
Para su página de desembolso, debe encontrar los tipos de métodos de desembolso que coincidan con sus criterios, como la moneda y la categoría del desembolso (por ejemplo, banco o efectivo).
En este ejemplo, encontrará los tipos de métodos de desembolso que admiten transferencias bancarias en PHP (pesos filipinos).
Para eso, utilizar Listar los tipos de métodos de desembolso con los siguientes parámetros:
Descripción de los parámetros de consulta
Parámetro de consulta | Descripción |
|---|---|
category | Introducir banco como la categoría del método de desembolso. |
beneficiary_country | Introducir PH como el código para las Filipinas, el país del beneficiario. |
payout_currency | Introdicur PHP como el código para los pesos filipinos, la moneda recibida por el beneficiario. |
Solicitud de listar los tipos de métodos de desembolso
Solicite una lista de todos los tipos de métodos de desembolsos 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"; } ?>
Python
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)
Respuesta de listar los tipos de métodos de desembolso
Veamos 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" } ] } ] }
La sección data de esta respuesta muestra que ph_anzbank_bank es un tipo de método de desembolso aceptable para transferencias bancarias en PHP (pesos filipinos).
Una respuesta real suele incluir muchos métodos de desembolso.
Debe encontrar los campos obligatorios para cada tipo de método de desembolso.
Para eso, utilizar Obtener los campos obligatorios de desembolso con los siguientes parámetros:
Descripción de los parámetros de ruta
Parámetro de ruta | Descripción |
|---|---|
payout_method_type | Introducir ph_anzbank_bank como tipo de método de desembolso. |
Descripción de los parámetros de consulta
Parámetro de consulta | Descripción |
|---|---|
sender_country | Introducir GB como el código para el Reino Unido, el país del remitente. |
sender_currency | Introducir PHP como el código para los pesos filipinos, la moneda del remitente. |
beneficiary_country | Introducir PH como el código para las Filipinas, el país del beneficiario. |
payout_currency | Introducir PHP como el código para los pesos filipinos, la moneda recibida por el beneficiario. |
sender_entity_type | Introducir empresa como el tipo de entidad para el remitente. |
beneficiary_entity_type | Introducir individual como el tipo de entidad para el beneficiario. |
payout_amount | Introducir 10000 como la cantidad recibida por el beneficiario. |
Solicitud para obtener los campos obligatorios del reembolso
Solicita el conjunto de campos obligatorios para el tipo de método de desembolso ph_anzbank_bank.
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"; } ?>
Python
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)
Respuesta para obtener los campos obligatorios del desembolso
Veamos 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" } ], // ... } }
La sección data 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 solicita a Rapyd que cree los ID para los objetos «beneficiary» y «sender».
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 desembolso del salario.
Cuando Jane solicita un ID para representar el objeto «sender» de la solicitud de desembolso, solicita a Rapyd que cree un ID de remitente.
Para eso, utilizar Crear remitente con los siguientes parámetros, que incluyen:
Parámetros que siempre son necesarios para una solicitud de «Crear remitente».
Parámetros que figuran en
sender_required_fieldsen la respuesta «Obtener los campos obligatorios de desembolso» para el tipo de método de desembolso ph_anzbank_bank.
Descripción de los parámetros del cuerpo
Parámetro del cuerpo | Descripción |
|---|---|
country | Introducir GB como el código para el Reino Unido, el país del remitente. |
currency | Introducir PHP como el código para los pesos filipinos, la moneda del remitente. |
entity_type | Introducir empresa como el tipo de entidad para el remitente. |
company_name | Introducir Servicio de viaje compartido de cuatro estrellas. |
identification_type | Introducir número de registro de la empresa. |
identification_value | Introducir 10207686. |
phone_number | Introducir 442037443095. |
occupation | Introducir transporte. |
source_of_income | Introducir negocio. |
date_of_birth | Introducir 31/07/1984. |
address | Introducir 123 Calle Principal, Londres. |
purpose_code | Introducir salario. |
beneficiary_relationship | Introducir empleado. |
Solicitud de crear remitente
Solicita a Rapyd que procese la solicitud de Jane de un ID 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"; } ?>
Python
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)
Respuesta de crear remitente
Veamos 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" } }
La sección data de esta respuesta muestra:
El
Iddel remitente es sender_2c3d6492f50f7de237b867bb3e40a247. Cuando ejecute este ejemplo en su propio sandbox, obtendrá un ID diferente, que necesitará para un paso posterior en este caso de uso.Se muestran los campos del objeto «sender» que representa el ID.
En este ejemplo, John Doe (el empleado) es el beneficiario que recibe el desembolso del salario.
Cuando Jane, su administradora de nóminas, solicite una ID para representar el objeto «beneficiary» en la solicitud de desembolso, solicita a Rapyd que cree un ID de beneficiario.
Para eso, utilizar 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 desembolso» para el tipo de método de desembolso ph_anzbank_bank.
Descripción de los parámetros del cuerpo
Parámetro del cuerpo | Descripción |
|---|---|
category | Introducir banco como la categoría del método de desembolso. |
country | Introducir PH como el código para Filipinas, el país del beneficiario. |
currency | Introducir PHP como el código para los pesos filipinos, la moneda recibida por el beneficiario. |
entity_type | Introducir individual como el tipo de entidad para el beneficiario. |
first_name | Introducir John como el nombre del beneficiario. |
last_name | Introducir Doe como el apellido del beneficiario. |
account_number | Introducir 006449956988. |
identification_type | Introducir pasaporte internacional. |
identification_value | Introducir Z470384. |
phone_number | Introducir 632567000014. |
Nota
También puede crear un objeto beneficiario con Crear una página de tokenización de beneficiario. Cuando se complete el proceso, Rapyd le envía un Webhook: beneficiario creado, que contiene el ID del beneficiario.
Solicitud de crear beneficiario
Solicita a Rapyd que procese la solicitud de Jane de un ID 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"; } ?>
Python
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)
Respuesta de crear beneficiario
Veamos 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" } }
La sección data de esta respuesta muestra:
El
Iddel beneficiario es beneficiary_a0345a157ccac51bf4d4a54b388c32ba. Cuando ejecute este ejemplo en su sandbox, obtendrá un ID diferente, que necesitará para un paso posterior en este caso de uso.Se muestran los campos del objeto «beneficiary» que representa el ID.
Sugerencia
Utilizar Validar beneficiario para comprobar los campos del beneficiario antes de solicitar el desembolso. Ver Validación de los detalles del beneficiario .
Cuando Jane solicita un desembolso de la billetera de la empresa a la cuenta bancaria de John, solicita a Rapyd que procese el desembolso.
Para eso, utilizar Crear desembolso con los siguientes parámetros:
Descripción de los parámetros del cuerpo
Parámetro del cuerpo | Descripción |
|---|---|
ewallet | Introducir el «ID» de la billetera que recibió cuando creó la billetera de la empresa en su sandbox. Para los fines de esta lección de caso de uso, estamos usando ewallet_090e1ef18c3aa754fd43cce9ee454858, que es el ID de la billetera que hemos creado en nuestro sandbox. |
payout_amount | Introducir 10000 como la cantidad recibida por el beneficiario. |
payout_method_type | Introducir ph_anzbank_bank como el tipo de método de desembolso. |
sender_currency | Introducir PHP como el código para los pesos filipinos, la moneda del remitente. |
sender_country | Introducir GB como el código para el Reino Unido, el país del remitente. |
beneficiary_country | Introducir PH como el código para las Filipinas, el país del beneficiario. |
payout_currency | Introducir PHP como el código para los pesos filipinos, la moneda recibida por el beneficiario. |
sender_entity_type | Introducir empresa como el tipo de entidad para el remitente. |
beneficiary_entity_type | Introducir individual como el tipo de entidad para el beneficiario. |
beneficiary | Introducir el «ID» del beneficiario que recibió al crear el beneficiario en su sandbox. Para los fines de esta lección de caso de uso, estamos usando beneficiary_a0345a157ccac51bf4d4a54b388c32ba, que es el ID del beneficiario que creamos en nuestro sandbox. |
sender | Introducir el «ID» del remitente que recibió al crear el remitente en su sandbox. Para los fines de esta lección de caso de uso, estamos usando sender_2c3d6492f50f7de237b867bb3e40a247, que es el ID del remitente que hemos creado en nuestro sandbox. |
description | Introducir Desembolso del salario: eWallet a la cuenta bancaria como descripción de la transacción de desembolso. |
Solicitud de crear desembolso
Solicita a Rapyd que procese el desembolso 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"; } ?>
Python
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)
Respuesta de crear desembolso
Veamos 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, la sección data de esta respuesta muestra:
El
Iddel objeto «payout» es payout_13b1eb7d39ba9be479df4e28b7f1716d. Los webhooks relacionados con este desembolso hacen referencia a este ID.El
payout_typees banco.Bajo
sender:El
Ides sender_2c3d6492f50f7de237b867bb3e40a247 .Se muestran los campos del objeto «sender» que representa el ID.
Bajo
beneficiary:El
Ides beneficiary_a0345a157ccac51bf4d4a54b388c32ba .Se muestran los campos del objeto «beneficiary» que representa el ID.
El
statuses Creado. Esto significa que el objeto de «payout» se creó correctamente y que John aún no ha recibido los fondos del desembolso.Hay instrucciones que describen la transferencia de fondos a la cuenta bancaria del beneficiario.
Simular la finalización de un desembolso
El sandbox no simula directamente la acción del beneficiario que recibe los fondos del desembolso. Puede simular esta acción siguiendo el procedimiento descrito en Completar desembolso. Para ello, necesitará el ID y el monto del desembolso que generó en su sandbox.
Cuando se simula la finalización de un desembolso, Rapyd envía un webhook. Configure su sistema para recibir webhooks siguiendo el procedimiento descrito en Definición de un endpoint de webhook.
Tras simular que a la cuenta bancaria de John se le acreditó su salario, Rapyd le envía un Webhook: desembolso completado. El webhook confirma que se completó el desembolso.
Los ID del remitente y del beneficiario representan objetos que contienen los valores de los campos obligatorios que figuran cuando se generó la respuesta «Obtener campos obligatorios de desembolso».
Puedes usar los ID para cualquier método de desembolso 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 desembolso que tenga menos campos obligatorios, pero no para un método de desembolso con campos obligatorios adicionales o diferentes.
Nota
Los campos obligatorios del método de desembolso original pueden cambiar con el tiempo.
Si no puede usar un ID existente, realice una de las siguientes acciones:
Obtenga un nuevo ID mediante los métodos descritos anteriormente. Para crear un ID que puedas usar con varios métodos de desembolso, incluya todos los campos obligatorios para cada método de desembolso.
Inserte manualmente el objeto con todos los valores de campo obligatorios, tal y como se describe en Desembolso a una cuenta bancaria .
¿Necesita información técnica más detallada?
¿Desea ver los métodos y objetos de la API de Rapyd que utilizará? Ver Merchant API Reference para obtener más detalles técnicos.