curl -X POST "{{base_url}}/v1/pay/KES" \
-H "x-api-key: YOUR_CONSUMER_KEY" \
-H "Content-Type: application/json" \
-d '{
"transaction_hash": "0xabc123",
"chain": "CELO",
"type": "MOBILE",
"shortcode": "254712345678",
"amount": 1000,
"mobile_network": "Safaricom"
}'
Payments (v1)
Pay (offramp)
Verify an on-chain transfer and disburse local fiat. Amount limits are per transaction.
POST
/
v1
/
pay
/
{currency_code}
curl -X POST "{{base_url}}/v1/pay/KES" \
-H "x-api-key: YOUR_CONSUMER_KEY" \
-H "Content-Type: application/json" \
-d '{
"transaction_hash": "0xabc123",
"chain": "CELO",
"type": "MOBILE",
"shortcode": "254712345678",
"amount": 1000,
"mobile_network": "Safaricom"
}'
Offramp endpoint. Provide a
transaction_hash for a confirmed stablecoin transfer, plus destination details for the target currency.
string
Destination currency. Defaults to Kenya rules when omitted.
Common fields
string
required
On-chain transaction hash. Must not have been processed before.
string
BASE, CELO (default), STELLAR, POLYGON, SOLANA, ETHEREUM, BNB, AVALANCHE, or ARBITRUM.string
Optional webhook URL for this transaction.
string
Optional client reference; a UUID is generated if omitted.
Currency-specific fields
KES
| Field | Rules |
|---|---|
type | MOBILE, PAYBILL, BUY_GOODS, BANK_TRANSFER |
shortcode | Required for mobile / paybill / buy goods |
account_number | Required for paybill / bank transfer |
mobile_network | Safaricom or Airtel when type=MOBILE |
amount | See Limits |
UGX
| Field | Rules |
|---|---|
shortcode | 10 digits |
mobile_network | Airtel or MTN |
amount | See Limits |
NGN
| Field | Rules |
|---|---|
account_name, account_number, bank_name, bank_code | Required |
amount | See Limits |
GHS
| Field | Rules |
|---|---|
shortcode | Required |
mobile_network | AirtelTigo, MTN, Telecel |
amount | See Limits |
MWK
| Field | Rules |
|---|---|
type | MOBILE or BANK_TRANSFER |
shortcode | Phone number for MOBILE |
mobile_network | Airtel Money or TNM Mpamba when type=MOBILE |
account_name, account_number, bank_name, bank_code | For BANK_TRANSFER |
amount | See Limits |
CDF
| Field | Rules |
|---|---|
shortcode | Required |
mobile_network | Airtel Money or Mpesa |
amount | See Limits |
currency | Optional: CDF (default) or USD |
ETB
| Field | Rules |
|---|---|
shortcode | Required |
mobile_network | Telebirr, Cbe Birr, or MPESA |
amount | See Limits |
curl -X POST "{{base_url}}/v1/pay/KES" \
-H "x-api-key: YOUR_CONSUMER_KEY" \
-H "Content-Type: application/json" \
-d '{
"transaction_hash": "0xabc123",
"chain": "CELO",
"type": "MOBILE",
"shortcode": "254712345678",
"amount": 1000,
"mobile_network": "Safaricom"
}'
