Card Payout
Push funds to a card with Rapyd Disburse. | Enterprise
Rapyd makes it easy to make a disbursement to a card. Common use cases include:
Payout to an employee or worker's card
Payout to a card for use of credit or benefits
PCI Certification
Only clients with PCI-DSS certification can handle personal identifying information for cards. This method is available to merchants who have signed a special agreement with Rapyd.
Your home improvement platform connects customers with home service professionals such as plumbers, electricians, and locksmiths. You collect from the customers and disburse the funds to the professionals, minus your fees.
Your automated accounts system makes the disbursements from a company wallet. A wallet is created as described in Creating a Rapyd Wallet.
One of the locksmiths finishes a job, and your accounts system transfers a 250 USD (U.S. Dollars) payout to his card.
Finding the specific card payout methods you'll use and the corresponding required fields that beneficiaries fill out is described under How it Works.
Your accounts system asks Rapyd to process the payout.
Rapyd processes the payout.
The website back end receives confirmation from Rapyd that the payout was completed.
The message sequence diagrams below describe how information is exchanged between Rapyd, the merchant, and the card network.
Create Card Payout - Saved Beneficiary
Create Card Payout - New Beneficiary
Prerequisites
To run the examples of this use case, you must create the following ID in your own sandbox:
ewallet - Run Create Wallet for the eWallet of the Home Improvement platform. Use the ID you get in the response.
Find payout method types to use. See List Payout Method Types.
Find the required fields for each payout method type. See Get Payout Required Fields.
Tip
In the Get Payout Required Fields response, beneficiary_required_fields
defines required fields for a beneficiary
object. Use Validate Beneficiary to check the beneficiary fields before you request a payout. See Validating Beneficiary Details.
Your home improvement business is the payout sender and the locksmith is the beneficiary who receives the funds.
To disburse the funds to the locksmith's card, you ask Rapyd to process the payout.
For that, you'll use Create Payout with the following parameters:
Description of Parameters
Body Parameter | Description |
---|---|
ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. For purposes of this use case lesson, we are using ewallet_e22fe4e337e26734a96d13a241063a75, which is the wallet ID we created in our sandbox. |
payout_amount | Enter 250 as the amount received by the beneficiary. |
payout_method_type | Enter us_debit_visa_card as the payout method type. |
sender_currency | Enter USD as the code for US dollars, the sender's currency. |
sender_country | Enter US as the code for the United States, the sender's country. |
beneficiary_country | Enter US as the code for the United States, the beneficiary's country. |
payout_currency | Enter USD as the code for US dollars, the currency received by the beneficiary. |
sender_entity_type | Enter company as the type of entity for the sender. |
beneficiary_entity_type | Enter individual as the type of entity for the beneficiary. |
beneficiary | Enter a
|
description | Enter Payout to card as the description of the payout transaction. |
Create Payout Request
You ask Rapyd to process the 250 USD (U.S. Dollars) payout to the locksmith's card.
Request
// Request URL: POST https://sandboxapi.rapyd.net/v1/payouts // Message body: { "ewallet": "ewallet_e22fe4e337e26734a96d13a241063a75", "payout_amount": 250, "payout_method_type": "us_debit_visa_card", "sender_currency": "USD", "sender_country": "US", "beneficiary_country": "US", "payout_currency": "USD", "sender_entity_type": "company", "beneficiary_entity_type": "individual", "beneficiary": { "email": "testemployee@rapyd.net", "card_number": "4111111111111111", "card_expiration_month": "10", "card_expiration_year": "20", "first_name": "Test", "last_name": "Employee" }, "description": "Payout to card" }
.NET Core
using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { var requestObj = new { ewallet = "ewallet_e22fe4e337e26734a96d13a241063a75", payout_amount = 250, payout_method_type = "us_visa_card", sender_currency = "USD", sender_country = "US", beneficiary_country = "US", payout_currency = "USD", sender_entity_type = "company", beneficiary_entity_type = "individual", beneficiary = new { email = "johndoe@rapyd.net", card_number = "4111111111111111", card_expiration_month = "10", card_expiration_year = "20", first_name = "John", last_name = "Doe" }, description = "Payout to card" }; 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('../../../../../Utilities/JS/utilities').makeRequest; async function main() { try { const body = { ewallet: 'ewallet_e22fe4e337e26734a96d13a241063a75', payout_amount: 250, payout_method_type: 'us_visa_card', sender_currency: 'USD', sender_country: 'US', beneficiary_country: 'US', payout_currency: 'USD', sender_entity_type: 'company', beneficiary_entity_type: 'individual', beneficiary: { email: 'johndoe@rapyd.net', card_number: '4111111111111111', card_expiration_month: '10', card_expiration_year: '20', first_name: 'John', last_name: 'Doe' }, description: 'Payout to card' }; 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 .= "/code_race_2020/Utilities/PHP/utilities.php"; include($path); $body = [ 'ewallet' => "ewallet_e22fe4e337e26734a96d13a241063a75", "payout_amount" => 250, "payout_method_type" => "us_visa_card", "sender_currency" => "USD", "sender_country" => "US", "beneficiary_country" => "US", "payout_currency" => "USD", "sender_entity_type" => "company", "beneficiary_entity_type" => "individual", "beneficiary" => array( "email" => "johndoe@rapyd.net", "card_number" => "4111111111111111", "card_expiration_month" => "10", "card_expiration_year" => "20", "first_name" => "John", "last_name" => "Doe" ), "description" => "Payout to card" ]; 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_e22fe4e337e26734a96d13a241063a75", "payout_amount": 250, "payout_method_type": "us_visa_card", "sender_currency": "USD", "sender_country": "US", "beneficiary_country": "US", "payout_currency": "USD", "sender_entity_type": "company", "beneficiary_entity_type": "individual", "beneficiary": { "email": "johndoe@rapyd.net", "card_number": "4111111111111111", "card_expiration_month": "10", "card_expiration_year": "20", "first_name": "John", "last_name": "Doe" }, "description": "Payout to card" } result = make_request(method='post', path='/v1/payouts', body=payout_body) pprint(result)
Create Payout Response
Let's take a look at the response.
Response
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "abccbd6f-ddc2-4884-887c-aefa94526a7c" }, "data": { "id": "payout_9600f264f394314fd178ba9eae689005", "payout_type": "card", "payout_method_type": "us_debit_visa_card", "amount": 250, "payout_currency": "USD", "sender_amount": 250, "sender_currency": "USD", "status": "Completed", "sender_country": "US", "sender": { "id": "sender_afb24391ce4649619c4e9830abfa2f11", "country": "US", "entity_type": "company", "currency": "USD" }, "beneficiary_country": "US", "beneficiary": { "id": "beneficiary_022ce7183dcc8eb93ffa80933a50ecd3", "last_name": "Employee", "first_name": "Test", "country": "US", "entity_type": "individual", "name": "Test Employee", "currency": "USD", "email": "testemployee@rapyd.net", "card_expiration_year": "20", "card_expiration_month": "10", "card_number": "1111" }, // ... "ewallets": [ { "ewallet_id": "ewallet_e22fe4e337e26734a96d13a241063a75", "amount": 250, "percent": 100 } ], // ... "description": "Payout to card", "created_at": 1580029824, // ... } }
Besides parameter values that you entered in the request, the data
section of this response shows:
The
payout_type
is card.The payout
amount
is 250.The
payout_currency
is USD.The
status
is Completed. This means that the locksmith received the payout funds.