Wallet Balance API

This API allows merchants to check their wallet balances across different currencies. It provides real-time balance information for transaction planning and accounting purposes.

API Endpoint

GET
https://payments.vikotrust.com/api/check-wallet-balance

Headers

Header Description Required
Authorization Bearer <Your API Key> Yes

Query Parameters

Parameter Type Description Required
accountNumber string Your merchant account number Yes

Example Request

curl "https://payments.vikotrust.com/api/check-wallet-balance?accountNumber=VT68488896328" \
  -X GET \
  -H "Authorization: Bearer <Your API Key>"

Response

Success Response

{
  "success": true,
  "balances": {
    "UGX": 1000
  }
}

Error Responses

Error Type HTTP Status Response Example
Missing API key 401 {"error": "API key missing"}
Missing accountNumber 400 {"error": "accountNumber is required"}
Invalid API key 401 {"error": "Invalid API key"}
Account mismatch 403 {"error": "Account number does not match API key owner"}
Merchant not found 404 {"error": "Merchant not found"}
Account not verified 403 {"error": "Your account is not authorized"}
IP not allowed 403 {"error": "IP <client_ip> not allowed"}
Internal server error 500 {"error": "Internal server error"}

Implementation Examples

PHP Implementation

<?php
function checkWalletBalance($apiKey, $accountNumber) {

    $url = "https://payments.vikotrust.com/api/check-wallet-balance?accountNumber=" . urlencode($accountNumber);

    $headers = [
        "Authorization: Bearer " . $apiKey
    ];

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $response = curl_exec($ch);

    if ($response === false) {
        $error = curl_error($ch);
        curl_close($ch);
        return ["error" => "cURL error: " . $error];
    }

    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    $decoded = json_decode($response, true);
    if ($decoded === null) $decoded = $response;

    return [
        "httpCode" => $httpCode,
        "response" => $decoded
    ];
}
?>

Node.js Implementation

const axios = require('axios');

async function checkWalletBalance(apiKey, accountNumber) {
  const url = `https://payments.vikotrust.com/api/check-wallet-balance?accountNumber=${encodeURIComponent(accountNumber)}`;
  
  const headers = { "Authorization": `Bearer ${apiKey}` };
  
  try {
    const response = await axios.get(url, { headers });
    return { httpCode: response.status, response: response.data };
  } catch (error) {
    return {
      httpCode: error.response?.status || null,
      response: error.response?.data || error.message
    };
  }
}

Python Implementation

import requests
import urllib.parse

def check_wallet_balance(api_key, account_number):
    encoded_account = urllib.parse.quote(account_number)
    url = f"https://payments.vikotrust.com/api/check-wallet-balance?accountNumber={encoded_account}"

    headers = {
        "Authorization": f"Bearer {api_key}"
    }

    try:
        response = requests.get(url, headers=headers)
        try:
            body = response.json()
        except ValueError:
            body = response.text
        return {"httpCode": response.status_code, "response": body}
    except requests.RequestException as e:
        return {"httpCode": None, "response": str(e)}
Security Requirements