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.
Card Payout Workflow
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.
How It Works
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.
Finding Payout Method Types
Find payout method types to use. See List Payout Method Types.
Finding Required Fields for the Payout Method Type
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 abeneficiary
object.
Use Validate Beneficiary to check the beneficiary fields before you request a payout. See Validating Beneficiary Details.
Requesting a Payout
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:
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 beneficiary object that contains the required fields listed in the response to 'Get Payout Required Fields'. For this example, enter:email - [email protected]card_number - 4111111111111111card_expiration_month - 10card_expiration_year - 20first_name - Testlast_name - Employee |
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 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": "[email protected]",
"card_number": "4111111111111111",
"card_expiration_month": "10",
"card_expiration_year": "20",
"first_name": "Test",
"last_name": "Employee"
},
"description": "Payout to card"
}
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 = "[email protected]",
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);
}
}
}
}
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: '[email protected]',
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
$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" => "[email protected]",
"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";
}
?>
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": "[email protected]",
"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. Payout Object describes the fields in the 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": "[email protected]",
"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. Payout Object lists possible values forstatus
.
Updated 8 months ago
What's Next
Payout to a Local eWallet |