Skip to main content

Documentation

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.

process-payout-to-card.jpg
  1. Your accounts system asks Rapyd to process the payout.

  2. Rapyd processes the payout.

  3. 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-payout-to-card-with-saved-beneficiary---success.svg

Create Card Payout - New Beneficiary

create-payout-to-card-with-new-beneficiary---success.svg

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 beneficiary object that contains the required fields listed in the response to 'Get Payout Required Fields'. For this example, enter:

  • email - testemployee@rapyd.net

  • card_number - 4111111111111111

  • card_expiration_month - 10

  • card_expiration_year - 20

  • first_name - Test

  • last_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

      • // 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.