Skip to main content
POST

Authorizations

x-api-key
string
header
required

Merchant API secret.

Headers

environment
enum<string>
default:production

Target environment. Defaults to production when omitted and must match the API key environment.

Available options:
production,
sandbox

Body

application/json
currency
enum<string>
required
Available options:
USD,
SSP
amount
number
required
Required range: x <= 1000000000
destination
enum<string>
required
Available options:
mobile,
sarafa
account_number
string
required

Phone number for mobile transfers or Sarafa account number for Sarafa transfers.

Required string length: 3 - 64
external_id
string
required
Required string length: 3 - 120
Pattern: ^[A-Za-z0-9._:-]+$
callback_url
string<uri>
required
Maximum string length: 500
Pattern: ^https://
destination_currency
enum<string>
Available options:
UGX,
KES,
SSP
quote
boolean
default:true

Callbacks

POST
{$request.body#/callback_url}transferPending

Body

application/json
reference
string
required
total_amount
number
required
fee
number
required
product
string
required
Examples:

"collect_mobile"

"disburse_mobile"

description
string | null
required
direction
enum<string>
required
Available options:
add,
sub
amount
number
required
currency
string | null
required
usd_amount
number
required
counterparty
object | null
required
phone_number
string | null
required
account_number
string | null
required
status
enum<string>
required
Available options:
pending
Example:

"pending"

created_at
string<date-time>
required
updated_at
string<date-time>
required
completed_at
string<date-time> | null
required
external_id
string | null
required

The unique identifier supplied by the API client.

event
enum<string>
required
Available options:
transfer.pending

Response

200

Callback accepted.

POST
{$request.body#/callback_url}transferUpdated

Body

application/json
reference
string
required
total_amount
number
required
fee
number
required
product
string
required
Examples:

"collect_mobile"

"disburse_mobile"

description
string | null
required
direction
enum<string>
required
Available options:
add,
sub
amount
number
required
currency
string | null
required
usd_amount
number
required
counterparty
object | null
required
phone_number
string | null
required
account_number
string | null
required
status
enum<string>
required
Available options:
completed,
failed,
cancelled
Example:

"pending"

created_at
string<date-time>
required
updated_at
string<date-time>
required
completed_at
string<date-time> | null
required
external_id
string | null
required

The unique identifier supplied by the API client.

event
enum<string>
required
Available options:
collection.updated,
transfer.updated

Response

200

Callback accepted.

Response

Quote, mobile transfer transaction, or Sarafa transfer legs.

status
enum<string>
required
Available options:
success
data
object
required
Last modified on July 22, 2026