This API allows merchants to check the status of previously submitted transactions. It provides detailed information about transaction processing, completion, and any failures.
https://payments.vikotrust.com/api/check-transaction-status
Header | Description | Required |
---|---|---|
Authorization | Bearer <Your API Key> | Yes |
Content-Type | application/json | Yes |
Parameter | Type | Description | Required |
---|---|---|---|
reference | string | Customer reference | Yes |
accountNumber | string | Your merchant account number | Yes |
curl "https://payments.vikotrust.com/api/check-transaction-status?reference=invoice123&accountNumber=VT68488896328" \ -X GET \ -H "Authorization: Bearer <Your API Key>" \ -H "Content-Type: application/json"
{ "success": true, "status": "success", "message": "SUCCESS. TID 130269180792 SUCCESS.", "customer_reference": "invoice123", "internal_reference": "398581c01d1d95c3e482e259f489bed3", "msisdn": "+256745198769", "amount": 5000, "currency": "UGX", "provider": "AIRTEL_UGANDA", "request_status": "success", "provider_transaction_id": "TID130269180792", "completed_at": "2023-10-15T14:30:45Z", "charge": 0 }
Field | Type | Description |
---|---|---|
success | boolean | Indicates if the API request was successful |
status | string | Overall transaction status (success, failed, pending) |
message | string | Detailed message about the transaction status |
customer_reference | string | Customer reference |
internal_reference | string | Internal transaction reference used by the system |
msisdn | string | Recipient's phone number |
amount | number | Transaction amount |
currency | string | Currency code (e.g., UGX) |
provider | string | Mobile money provider (e.e., AIRTEL_UGANDA) |
request_status | string | Detailed status from the payment provider |
provider_transaction_id | string | Transaction ID from the payment provider |
completed_at | string | Timestamp when the transaction was completed |
charge | number | Transaction fee charged (0 for successful transactions) |
Error Type | HTTP Status | Response Example |
---|---|---|
Missing API key | 401 | {"error": "API key missing"} |
Missing required parameters | 400 | {"error": "reference and accountNumber are 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"} |
Transaction not found | 404 | {"error": "Transaction not found"} |
Internal server error | 500 | {"error": "Internal server error"} |
<?php function checkTransactionStatus($apiKey, $reference, $accountNumber) { $url = "https://payments.vikotrust.com/api/check-transaction-status?reference=" . urlencode($reference) . "&accountNumber=" . urlencode($accountNumber); $headers = [ "Authorization: Bearer " . $apiKey, "Content-Type: application/json" ]; $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 ]; } ?>
const axios = require('axios'); async function checkTransactionStatus(apiKey, reference, accountNumber) { const url = `https://payments.vikotrust.com/api/check-transaction-status?reference=${encodeURIComponent(reference)}&accountNumber=${encodeURIComponent(accountNumber)}`; const headers = { "Authorization": `Bearer ${apiKey}`, "Content-Type": "application/json" }; 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 }; } }
import requests import urllib.parse def check_transaction_status(api_key, reference, account_number): encoded_reference = urllib.parse.quote(reference) encoded_account = urllib.parse.quote(account_number) url = f"https://payments.vikotrust.com/api/check-transaction-status?reference={encoded_reference}&accountNumber={encoded_account}" headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json" } 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)}