Transactions

Two endpoints give you full visibility into your transaction history. Query a single transaction's live status, or pull a paginated list of all transactions associated with your account for reconciliation and reporting.

POST https://testxchange.korba365.com/api/v1.0/transaction_status/
POST https://testxchange.korba365.com/api/v1.0/client_transactions/

Transaction Status

Look up the current status of any transaction using either your own transaction_id or the Korba-assigned reference. This endpoint is useful for confirming transaction outcomes after a callback, or for building a manual "check status" flow in your UI.

Parameter Type Required Description
transaction_id string Mandatory The unique transaction reference you supplied when the transaction was created.
client_id string Mandatory Your unique client identifier from the dashboard under API/Website Creds.
import hmac, hashlib, requests

payload = {
    "transaction_id": "X13454",
    "client_id":      "YOUR_CLIENT_ID",
}

message   = "&".join(f"{k}={v}" for k, v in sorted(payload.items()))
signature = hmac.new("YOUR_SECRET_KEY".encode(), message.encode(), hashlib.sha256).hexdigest()

r = requests.post(
    "https://testxchange.korba365.com/api/v1.0/transaction_status/",
    json=payload,
    headers={"Authorization": f"HMAC YOUR_CLIENT_KEY:{signature}"},
)
print(r.json())

Response

Returns the transaction outcome. When the transaction_id does not exist in your account, a structured error is returned instead.

200 OK Transaction found
{
  "success":         true,
  "amount":          "50.00",
  "momo_id":         "123456789",
  "status":          "success",
  "message":         "Transaction was processed successfully",
  "transaction_id":  "X13454",
  "korba_trans_id":  "YY422"
}
200 OK Transaction not found
{
  "success":       false,
  "results":       "Transaction does not exist",
  "error_code":    421
}

Fetch Transactions

Retrieve a paginated list of all transactions linked to your client_id. Results are ordered by creation time (newest first) and include full balance snapshots, network codes, and Korba-assigned references — making this endpoint ideal for reconciliation reports.

Parameter Type Required Description
client_id string Mandatory Your unique client identifier from the dashboard under API/Website Creds.
import hmac, hashlib, requests

payload = {"client_id": "YOUR_CLIENT_ID"}

message   = "&".join(f"{k}={v}" for k, v in sorted(payload.items()))
signature = hmac.new("YOUR_SECRET_KEY".encode(), message.encode(), hashlib.sha256).hexdigest()

r = requests.post(
    "https://testxchange.korba365.com/api/v1.0/client_transactions/",
    json=payload,
    headers={"Authorization": f"HMAC YOUR_CLIENT_KEY:{signature}"},
)
data = r.json()
print(f"Total: {data['count']} — Next: {data['next']}")
for tx in data["results"]:
    print(tx["korba_transaction_id"], tx["transaction_status"])

Response

Returns a paginated envelope. Use the next URL to retrieve subsequent pages. Each object in results includes the fields below.

200 OK Paginated list
{
  "success":  true,
  "count":    142,
  "next":    "https://testxchange.korba365.com/api/v1.0/client_transactions/?page=2",
  "previous": null,
  "results": [
    {
      "korba_transaction_id":  "YY422",
      "client_transaction_id": "X13454",
      "network_code":          "MTN",
      "time_created":          "2026-04-22T09:41:00Z",
      "credit_amt":            "50.00",
      "debit_amt":             "0.00",
      "transaction_status":    "success",
      "exchange_message":      "Transaction processed successfully",
      "ova_balance_before":    "1530.50",
      "ova_balance_after":     "1480.50",
      "customer_number":       "0241234567"
    }
  ]
}

Error Codes

Errors specific to the Transactions endpoints are listed below. For the full list of platform-wide error codes, see the Errors & Status Codes reference.

Code Meaning
401 Transaction ID not provided in the request body.
421 Transaction does not exist — no transaction matching the supplied transaction_id was found for your account.