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
  • Batch disburse to multiple destinations
  • Disburse - Batch
  • Confirming Success
  1. Send Money to People

Mass Payout

PreviousCheck Payout StatusNextFunding for Payout

Last updated 4 years ago

Batch disburse to multiple destinations

When you need to process multiple payouts based on a schedule, Moneywave provides a single API for submitting a payout schedule. You can send money to over five hundred beneficiaries in the same currency. Payouts are queued, processed and send notifications when completed. Mass Payouts required an active balance as source of disbursements.

Setup an Active Balance for your payouts

Disburse - Batch

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

Destinations and Amounts are passed as an Array.

Headers

Name
Type
Description

Authorization

string

Authorization TokenAA

Request Body

Name
Type
Description

instantQueue

boolean

Process schedule immediately or submit only

name

string

Batch or Schedule name

ref

string

Unique Batch or Schedule reference

senderName

string

Sender / Business name to appear in bank statement

lock

string

Password required to access active balance (wallet)

currency

string

Payout currency for all recipients

recipients

array

An array of payout details for each recipient

{ "status": "success", "data": { "batchId": 256, "message": "Disbursement queued for processing." } }

A reference is required for the batch and a different reference is required for each payout. All references must be unique.

The recipients Array would include the transfer details for each payout, see sample values in the code snippet below. Individual recipient format is described in single payout requirements.

Select a Language above ...
var unirest = require("unirest");
var base_url = "https://staging.moneywaveapp.com";
var req = unirest("POST", `${base_url}/v1/disburse/queue`);

req.headers({
  "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwibmFtZSI6IlRocml2ZSIsImFjY291bnROdW1iZXIiOiIwNjkwMDAwMDAiLCJiYW5rQ29kZSI6IjMwNyIsImlzQWN0aXZlIjp0cnVlLCJlbnZpcm9ubWVudCI6ImxpdmUiLCJjYW5fZ29saXZlIjp0cnVlLCJjb3VudGRvd24iOm51bGwsImNvbXBsaWFuY2UiOjAsImNvZGUiOiJNMSIsInBvc0lkIjoiUDEiLCJlYmlsbElkIjpudWxsLCJpcCI6bnVsbCwiY3JlYXRlZEF0IjoiMjAxNi0wOS0xNlQxMzo0OToyMy4wMDBaIiwidXBkYXRlZEF0IjoiMjAxOC0wMi0wOVQxNDozMDo0Ny4wMDBaIiwiZGVsZXRlZEF0IjpudWxsLCJpYXQiOjE1MzAwMzA2OTcsImV4cCI6MTUzMDAzNzg5N30.zsMrcFJPpg2-H_b3Hr3Rn7pqaQhdYSGTpxO8wPR6TUg",
  "Content-Type": "application/json"
});
req.type("json");
req.send({
  "instantQueue": true,
  "name": "Batch Schedule Oct 1",
  "ref": "BS101823",
  "senderName": "ABCompany",
  "lock": "walpassword",
  "currency": "NGN",
  "recipients": [
    {
      "accountNumber": "0600000004",
      "bankcode": "044",
      "amount": "5000",
      "ref": "TX32567MV",
      "narration": "Call airtime",
    },
    {
      "accountNumber": "0690000005",
      "bankcode": "044",
      "amount": "30500",
      "ref": "TX32568MV",
      "narration": "Building materials",
    }
  ]
});

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(
  "instantQueue" => true,
  "name" => "Batch Schedule Oct 1",
  "ref" => "BS101823",
  "senderName" => "ABCompany",
  "lock" => "walpassword",
  "currency" => "NGN",
  "recipients" => array(
    array(
      "accountNumber" => "0600000004",
      "bankcode" => "044",
      "amount" => "5000",
      "ref" => "TX32567MV",
      "narration" => "Call airtime",
    ),
    array(
      "accountNumber" => "0690000005",
      "bankcode" => "044",
      "amount" => "30500",
      "ref" => "TX32568MV",
      "narration" => "Building materials",
    )
  )
);

curl_setopt_array($curl, array(
  CURLOPT_URL => $base_url . "/v1/disburse/queue",
  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);
}

Confirming Success

A disbursement is successful only when the callback parameters has the value below

"responsecode" : "00"

When each payout in a batch is processed, a callback notification is sent to your endpoint. This url is setup on your moneywave profile. See Batch payout for additional details.

here
notification