Skip to main content

Webhooks APIs

The API sends webhook notifications for transaction status updates. To receive these notifications, you need to register a webhook URL with your account.

Webhook Payload

{
type: "transaction_event",
statusCode: 200,
message: "Transaction completed successfully",
client_id: "cli_789abc123",
trans_type: "payment",
timestamp: "2025-07-02T12:34:56Z",
reference_id: "ref_456def789",
status: "success",
amount: "150.00",
fee: "0.50",
currency: "UGX",
sender_account: "256787723489",
receiver_account: "256787723489",
transaction_id: "tx_abcdef123456",
meta: {
orderId: "ORD78910",
notes: "Payment for invoice #1234",
}
chainInfo: {
from_address: "0xA1B2C3D4E5F6G7H8I9J0",
to_address: "0xF9E8D7C6B5A4B3C2D1E0",
amount: "150.00",
asset_code: "USDT",
contract_address: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
hash: "0xabc123def456...",
state: "confirmed",
direction: "outbound"
}
}

Note

meta - optional, same mete data that comes when a client iniates a payment, it is only valid for merhcant payments chain Info is optional and will be send incase the currency being sent is a stable coin. for normal fiat transactions the chainInfor is optional

Client Errors

  • 400 Bad Request: The server could not understand the request due to invalid syntax.
  • 401 Unauthorized: Authentication is required or has failed.
  • 403 Forbidden: The client does not have access rights to the content.
  • 404 Not Found: The server could not find the requested resource.
  • 429 Too Many Requests: The client has sent too many requests in a given amount of time (rate limiting).

Example error response:

{
"status": 404,
"message": "Resource not found",
"data": null
}