This API enables sending money to supported destinations (e.g. bank accounts, mobile wallets)
using the configured R-Cash payment gateways. Use the
Get Countries, Payment Gateways and
Account Lookup APIs to build and validate the payout before calling this endpoint.
This endpoint requires a valid Bearer access token in the
Authorization header and a JSON request body.
curl --location '{{BASE_URL}}/api/prod/v1/send-money' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR-ACCESS-TOKEN>' \
--data '{
"MerchantCode": "5031",
"Amount": 100,
"Currency": "ETB",
"DestinationCountryCode": "ET",
"PaymentGateway": "ethiopian-banks",
"InstitutionCode": "231406",
"ReceiverAccount": "107407723",
"ReceiverName": "Ambashe dek",
"Reason": "Payment",
"InitiatorTransactionReference": "uniqueinitiatorcode2",
"CallBackUrl": "https://webhook.site/your-callback-url",
"SenderName": "John Doe",
"SenderCountryCode": "US",
"SenderPhone": "0714511655",
"SenderAddressLine1": "address one",
"SenderAddressLine2": "address two",
"SenderCity": "Nairobi",
"SenderDocumentType": "PASSPORT",
"SenderDocumentNumber": "1234567"
}'
<?php
$payload = [
"MerchantCode" => "5031",
"Amount" => 100,
"Currency" => "ETB",
"DestinationCountryCode" => "ET",
"PaymentGateway" => "ethiopian-banks",
"InstitutionCode" => "231406",
"ReceiverAccount" => "107407723",
"ReceiverName" => "Ambashe dek",
"Reason" => "Payment",
"InitiatorTransactionReference" => "uniqueinitiatorcode2",
"CallBackUrl" => "https://webhook.site/your-callback-url",
"SenderName" => "John Doe",
"SenderCountryCode" => "US",
"SenderPhone" => "0714511655",
"SenderAddressLine1" => "address one",
"SenderAddressLine2" => "address two",
"SenderCity" => "Nairobi",
"SenderDocumentType" => "PASSPORT",
"SenderDocumentNumber" => "1234567",
];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => '{{BASE_URL}}/api/prod/v1/send-money',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer <YOUR-ACCESS-TOKEN>',
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
import requests
url = "{{BASE_URL}}/api/prod/v1/send-money"
payload = {
"MerchantCode": "5031",
"Amount": 100,
"Currency": "ETB",
"DestinationCountryCode": "ET",
"PaymentGateway": "ethiopian-banks",
"InstitutionCode": "231406",
"ReceiverAccount": "107407723",
"ReceiverName": "Ambashe dek",
"Reason": "Payment",
"InitiatorTransactionReference": "uniqueinitiatorcode2",
"CallBackUrl": "https://webhook.site/your-callback-url",
"SenderName": "John Doe",
"SenderCountryCode": "US",
"SenderPhone": "0714511655",
"SenderAddressLine1": "address one",
"SenderAddressLine2": "address two",
"SenderCity": "Nairobi",
"SenderDocumentType": "PASSPORT",
"SenderDocumentNumber": "1234567",
}
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <YOUR-ACCESS-TOKEN>",
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
import java.io.*;
import java.net.*;
public class SendMoney {
public static void main(String[] args) throws Exception {
String urlStr = "{{BASE_URL}}/api/prod/v1/send-money";
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Bearer <YOUR-ACCESS-TOKEN>");
String json = "{"
+ "\"MerchantCode\":\"5031\","
+ "\"Amount\":100,"
+ "\"Currency\":\"ETB\","
+ "\"DestinationCountryCode\":\"ET\","
+ "\"PaymentGateway\":\"ethiopian-banks\","
+ "\"InstitutionCode\":\"231406\","
+ "\"ReceiverAccount\":\"107407723\","
+ "\"ReceiverName\":\"Ambashe dek\","
+ "\"Reason\":\"Payment\","
+ "\"InitiatorTransactionReference\":\"uniqueinitiatorcode2\","
+ "\"CallBackUrl\":\"https://webhook.site/your-callback-url\","
+ "\"SenderName\":\"John Doe\","
+ "\"SenderCountryCode\":\"US\","
+ "\"SenderPhone\":\"0714511655\","
+ "\"SenderAddressLine1\":\"address one\","
+ "\"SenderAddressLine2\":\"address two\","
+ "\"SenderCity\":\"Nairobi\","
+ "\"SenderDocumentType\":\"PASSPORT\","
+ "\"SenderDocumentNumber\":\"1234567\""
+ "}";
try (OutputStream os = conn.getOutputStream()) {
byte[] input = json.getBytes("utf-8");
os.write(input, 0, input.length);
}
try (BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream(), "utf-8"))) {
StringBuilder response = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
response.append(line.trim());
}
System.out.println(response.toString());
}
}
}
{
"status": true,
"ResponseCode": "000",
"Code": "SUCCESS",
"CodeDescription": "Request processed successfully",
"detail": "Transaction is being processed",
"TrackingID": "5031-f11d90d3-2acd-4ed2-88a8-149583e9b979",
"InitiatorTransactionReference": "uniqueinitiatorcode24",
"DestinationCountryCode": "ET",
"PaymentGateway": "ethiopian-banks",
"InstitutionCode": "231406",
"InstitutionName": "Abbysinia Bank",
"ReceiverAccount": "107407723",
"ReceiverName": "Ambashe dek",
"Amount": 50,
"Currency": "ETB",
"Sender": {
"name": "John Doe",
"country_code": "US",
"phone": "0714511655",
"address_line1": "address one",
"address_line2": "address two",
"city": "Nairobi",
"document_type": "PASSPORT",
"document_number": "1234567",
"date_of_birth": null
}
}
{
"status": false,
"ResponseCode": "401",
"Code": "DUPLICATE_REFERENCE",
"CodeDescription": "InitiatorTransactionReference has already been used",
"details": "Duplicate InitiatorTransactionReference detected. Use a unique reference per transaction."
}