Moneywave
  • Moneywave
  • Introduction
  • Send Money to People
    • Banks and Destinations
    • Single Payout
    • Examples
      • Single USD Payout
      • Single ZAR Payout
      • Single KES Payout
    • Check Payout Status
    • Mass Payout
  • Funding for Payout
    • Balances
    • How to Fund
    • Fund with Cards
    • Fund via USSD
    • Check Funding Status
  • Transaction Reporting
    • Search / List
  • Manage Balances
    • Create Balance
    • Fetch Balance
    • Transfer Balance
  • Notifications
    • Asynchronous Payouts
    • Mass Payouts
    • Funding
    • Reversals
  • Authentication
  • POS
    • Onboarding
    • Dispense Error
Powered by GitBook
On this page
  • Disburse into South Africa in ZAR
  • Disburse ZAR - Single
  • Confirming Success
  1. Send Money to People
  2. Examples

Single ZAR Payout

PreviousSingle USD PayoutNextSingle KES Payout

Last updated 1 year ago

Disburse into South Africa in ZAR

To send money to a single bank account, you need a single API. This process requires an active balance where the funds are debited then sent.

Setup an Active Balance for your payouts

Disburse ZAR - Single

POST https://staging.moneywaveapp.com/v1/disburse

Destination and transfer details are passed for processing

Headers

Name
Type
Description

Authorization

string

Authorization Token

Request Body

Name
Type
Description

lock*

String

Password required to access active wallet

senderName*

String

Sender/Business Name to appear in the bank statement

accountNumber*

String

Beneficiary account number.

bankcode*

String

Destination Bank

currency*

String

Currency of amount to send i.e USD

amount*

String

Amount to send

ref*

String

Unique transaction tracking reference

narration*

String

Description to appear in bank Statement

x_recipient_name*

String

Beneficiary Name

x_recipient_address

String

Beneficiary address

walletUref

String

Specify the source balance

{
  "status": "success",
  "data": {
    "data": {
      "responsecode": "00",
      "responsemessage": "Approved Or Completed Successfully",
      "uniquereference": "TMW000000318"
    },
    "status": "success"
  } 
}
Select a Language above ...
var unirest = require("unirest");
var base_url = "https://staging.moneywaveapp.com";
var req = unirest("POST", `${base_url}/v1/disburse`);

req.headers({
  "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwibmFtZSI6IlRocml2ZSIsImFjY291bnROdW1iZXIiOiIwNjkwMDAwMDAiLCJiYW5rQ29kZSI6IjMwNyIsImlzQWN0aXZlIjp0cnVlLCJlbnZpcm9ubWVudCI6ImxpdmUiLCJjYW5fZ29saXZlIjp0cnVlLCJjb3VudGRvd24iOm51bGwsImNvbXBsaWFuY2UiOjgsImNvZGUiOiJNTDU4MCIsInBvc0lkIjoiMTE0NjMiLCJlYmlsbElkIjoiTVRGVyIsImlwIjpudWxsLCJjcmVhdGVkQXQiOiIyMDE2LTA5LTE2VDEzOjQ5OjIzLjAwMFoiLCJ1cGRhdGVkQXQiOiIyMDE3LTA3LTE5VDE0OjA2OjM2LjAwMFoiLCJkZWxldGVkQXQiOm51bGwsImlhdCI6MTUzMDIxMTc4MiwiZXhwIjoxNTMwMjE4OTgyfQ.gQDK03I9Jc0dO21RxsZjG0k4Px0NzTk4tRnkbV5VciU",
  "Content-Type": "application/json"
});
req.type("json");
req.send({
	"ref": "SD252849857Z",
	"amount": "50",
	"currency": "ZAR",
	"bankcode": "FNB",
	"accountNumber": "0600000004",
	"senderName": "ABCompany",
	"lock": "walpassword",
	"narration": "Purchases",
	"x_recipient_name": "OLUWAFEMI DAYO",
	"x_recipient_address": "99, ABC DRIVE",
});

req.end(function (res) {
  if (res.error) console.log(res.code, res.body);
  else console.log(res.body);
});
<?php

$curl = curl_init();
$base_url = "https://staging.moneywaveapp.com";
$header = array(
  "Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwibmFtZSI6IlRocml2ZSIsImFjY291bnROdW1iZXIiOiIwNjkwMDAwMDAiLCJiYW5rQ29kZSI6IjMwNyIsImlzQWN0aXZlIjp0cnVlLCJlbnZpcm9ubWVudCI6ImxpdmUiLCJjYW5fZ29saXZlIjp0cnVlLCJjb3VudGRvd24iOm51bGwsImNvbXBsaWFuY2UiOjgsImNvZGUiOiJNTDU4MCIsInBvc0lkIjoiMTE0NjMiLCJlYmlsbElkIjoiTVRGVyIsImlwIjpudWxsLCJjcmVhdGVkQXQiOiIyMDE2LTA5LTE2VDEzOjQ5OjIzLjAwMFoiLCJ1cGRhdGVkQXQiOiIyMDE3LTA3LTE5VDE0OjA2OjM2LjAwMFoiLCJkZWxldGVkQXQiOm51bGwsImlhdCI6MTUzMDIxMDY4MywiZXhwIjoxNTMwMjE3ODgzfQ.IO4iX_estdWbe2dHey27bj5xsZC0skXHGdFUMTQSJfI",
  "Content-Type: application/json",
);

$body = array(
  "ref": "SD252849857Z",
  "amount": "50",
  "currency": "ZAR",
  "bankcode": "FNB",
  "accountNumber": "0600000004",
  "senderName": "ABCompany",
  "lock": "walpassword",
  "narration": "Purchases",
  "x_recipient_name": "OLUWAFEMI DAYO",
  "x_recipient_address": "99, ABC DRIVE",
  "x_transfer_type" => "ACCOUNT",
);

curl_setopt_array($curl, array(
  CURLOPT_URL => $base_url . "/v1/disburse",
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 180,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_POSTFIELDS => json_encode($body),
  CURLOPT_HTTPHEADER => $header,
));

$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);


if ($err) {
  echo "cURL Error #:" . $err;
} else {
  $decodedResponse = json_decode($response, true);

  echo "<pre>"; print_r($decodedResponse);
}

The ref passed must be unique to prevent double disbursements to the same beneficiary. Preferably the ref used should match a unique customer action, for example a loan ID, settlement ID or charge / payment reference.

Increase timeout settings in your http client to 180 seconds. This ensures you receive an expected response for payouts with long processing times.

Confirming Success

After a disburse request is received via API, it is submitted for processing. When completed a response is returned. See the example response in the API snippet above.

A disbursement is successful only when the disburse API response has the value below.

"responsecode" : "00"

here