Core
Payouts
Withdraw funds from your CamelPay wallet to mobile money. Request payouts, check status, and handle reversals.
Withdraw funds from your CamelPay wallet to mobile money. Programmatic integrations use the API-key route POST /v1/payouts with the payouts:write scope. First-party dashboard flows use JWT route POST /v1/merchant/payouts; both paths enforce verified KYC and the same wallet safety rules.
Request a Payout
curl -X POST https://api.camelpay.in/v1/payouts \
-H "X-API-Key: cp_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"amount": 10000,
"recipient_phone": "+255712345678",
"recipient_name": "John Doe",
"idempotency_key": "payout_unique_123"
}'Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
amount | integer | Yes | Amount in TZS (minimum 500) |
recipient_phone | string | Yes | Recipient's mobile money number |
recipient_name | string | Yes | Recipient's name |
idempotency_key | string | Yes | Unique identifier for this payout |
A fee is retrieved from Snippe and the total debit is reserved idempotently before the provider request. The request uses Snippe's mobile channel. Ambiguous provider results remain recoverable for reconciliation rather than being refunded blindly.
Check Payout Status
bash
curl -X GET https://api.camelpay.in/v1/payouts/{reference}/status \
-H "X-API-Key: cp_live_your_api_key_here"List Your Payouts
bash
curl -X GET "https://api.camelpay.in/v1/payouts?page=1&per_page=20" \
-H "X-API-Key: cp_live_your_api_key_here"Status Values
| Status | Description |
|---|---|
pending | Submitted, awaiting processing |
processing | Provider is processing the disbursement |
completed | Funds sent successfully |
failed | Payout failed — wallet is refunded |
reversed | Completed payout later reversed — wallet is refunded |
