Skip to content

Initiate Mobile Money Transfer

Quote a mobile-money payout.

MethodPOST
URL/api/m1/initiate-transfer
AuthBearer ZMPRO-… (live) or ZMDEV-… (test)

Headers

HeaderValue
AuthorizationBearer ZMPRO-your-live-api-key
Content-Typeapplication/json

Request

bash
curl -X POST 'https://api.vizo.app/api/m1/initiate-transfer' \
  -H 'Authorization: Bearer ZMPRO-your-live-api-key' \
  -H 'Content-Type: application/json' \
  -d '{
  "which_balance": "NGN",
  "account": "2540782773934",
  "account_bank": "MPS",
  "account_name": "John Doe",
  "beneficiary_name": "John Doe",
  "bank_name": "MTN Mobile Money",
  "amount": 1200,
  "transfer_mode": "bank",
  "currency": "KES",
  "narration": "food",
  "callback_url": "https://dev.zupago.app:8086/test-dev/ccccc",
  "reference": "MCH-11011",
  "meta": [
    {
      "sender": "Dayo John",
      "sender_country": "NG",
      "mobile_number": "+23412345678"
    }
  ]
}'
ts
const response = await fetch('https://api.vizo.app/api/m1/initiate-transfer', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer ZMPRO-your-live-api-key',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "which_balance": "NGN",
  "account": "2540782773934",
  "account_bank": "MPS",
  "account_name": "John Doe",
  "beneficiary_name": "John Doe",
  "bank_name": "MTN Mobile Money",
  "amount": 1200,
  "transfer_mode": "bank",
  "currency": "KES",
  "narration": "food",
  "callback_url": "https://dev.zupago.app:8086/test-dev/ccccc",
  "reference": "MCH-11011",
  "meta": [
    {
      "sender": "Dayo John",
      "sender_country": "NG",
      "mobile_number": "+23412345678"
    }
  ]
}),
});

const data = await response.json();
console.log(data);
py
import requests

url = "https://api.vizo.app/api/m1/initiate-transfer"
headers = {
    "Authorization": "Bearer ZMPRO-your-live-api-key",
    "Content-Type": "application/json",
}
payload = {
  "which_balance": "NGN",
  "account": "2540782773934",
  "account_bank": "MPS",
  "account_name": "John Doe",
  "beneficiary_name": "John Doe",
  "bank_name": "MTN Mobile Money",
  "amount": 1200,
  "transfer_mode": "bank",
  "currency": "KES",
  "narration": "food",
  "callback_url": "https://dev.zupago.app:8086/test-dev/ccccc",
  "reference": "MCH-11011",
  "meta": [
    {
      "sender": "Dayo John",
      "sender_country": "NG",
      "mobile_number": "+23412345678"
    }
  ]
}

response = requests.request("POST", url, headers=headers, json=payload)
print(response.status_code)
print(response.json())
php
<?php

$ch = curl_init('https://api.vizo.app/api/m1/initiate-transfer');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ZMPRO-your-live-api-key',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'which_balance' => 'NGN',
        'account' => '2540782773934',
        'account_bank' => 'MPS',
        'account_name' => 'John Doe',
        'beneficiary_name' => 'John Doe',
        'bank_name' => 'MTN Mobile Money',
        'amount' => 1200,
        'transfer_mode' => 'bank',
        'currency' => 'KES',
        'narration' => 'food',
        'callback_url' => 'https://dev.zupago.app:8086/test-dev/ccccc',
        'reference' => 'MCH-11011',
        'meta' => [
            [
                'sender' => 'Dayo John',
                'sender_country' => 'NG',
                'mobile_number' => '+23412345678'
            ]
        ]
    ], JSON_UNESCAPED_SLASHES),
]);

$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

echo $status, PHP_EOL, $response, PHP_EOL;

Response envelope

json
{
  "status": "SUCCESS",
  "data": {},
  "message": "Success"
}

ViZO Merchant API documentation