Appearance
Initiate Smart Transfer
Quote a ViZO Smart account payout.
| Method | POST |
| URL | /api/m1/initiate-transfer |
| Auth | Bearer ZMPRO-… (live) or ZMDEV-… (test) |
Body parameters
| Field | Required | Example | Description |
|---|---|---|---|
which_balance | Yes | NGN | String which currency to debited |
account | Yes | ZTF-10000 | String receive account or account number |
account_name | Yes | Mr Smith | String receive account name |
amount | Yes | 10000 | Amount to charge or transfer. |
transfer_mode | Yes | smart | String transfer method (smart, bank or crypto) |
currency | Yes | NGN | ISO currency code (e.g. NGN, USD). |
narration | — | food | This is the narration for the transfer e.g. payments for food |
callback_url | — | https://dev.zupago.app:8086/test-dev/ccccc | This will replace Webhooks url |
reference | Yes | mak-1001 | Transaction or VA settlement reference. |
Headers
| Header | Value |
|---|---|
Authorization | Bearer ZMPRO-your-live-api-key |
Content-Type | application/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": "ZTF-10000",
"account_name": "Mr Smith",
"amount": 10000,
"transfer_mode": "smart",
"currency": "NGN",
"narration": "food",
"callback_url": "https://dev.zupago.app:8086/test-dev/ccccc",
"reference": "mak-1001"
}'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": "ZTF-10000",
"account_name": "Mr Smith",
"amount": 10000,
"transfer_mode": "smart",
"currency": "NGN",
"narration": "food",
"callback_url": "https://dev.zupago.app:8086/test-dev/ccccc",
"reference": "mak-1001"
}),
});
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": "ZTF-10000",
"account_name": "Mr Smith",
"amount": 10000,
"transfer_mode": "smart",
"currency": "NGN",
"narration": "food",
"callback_url": "https://dev.zupago.app:8086/test-dev/ccccc",
"reference": "mak-1001"
}
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' => 'ZTF-10000',
'account_name' => 'Mr Smith',
'amount' => 10000,
'transfer_mode' => 'smart',
'currency' => 'NGN',
'narration' => 'food',
'callback_url' => 'https://dev.zupago.app:8086/test-dev/ccccc',
'reference' => 'mak-1001'
], JSON_UNESCAPED_SLASHES),
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status, PHP_EOL, $response, PHP_EOL;Responses
Initiate Smart Transfer — 200 OK
json
{
"status": "SUCCESS",
"data": {
"which_balance": "GHS",
"amount": 10,
"account_name": "Test",
"exchange_rate": 94.22347,
"exchange_amount": 942.23,
"account": "ZTF-10515",
"currency": "NGN",
"zp_ref": "ZWB-klQZgNvO11vg",
"fee": 0.25
},
"message": "Success"
}