Disbursements
Disbursements
Send money to mobile money accounts and bank accounts
The Disbursements API allows you to send money to mobile money accounts and bank accounts.
Overview
A Payout represents a transfer of funds from your Snippe account to a recipient's mobile money or bank account. Payouts can be made to saved credentials or directly to any recipient.
Payout Flow
1. Create Payout
POST /v1/payouts (saved credential)
POST /v1/payouts/send (any recipient)
2. Funds Reserved
Amount + fees deducted from your balance
3. Processing
Sent to payment provider
4. Completion
Webhook notification: payout.completed or payout.failed
5. Verify Status (optional)
GET /v1/payouts/{reference}Payout Channels
Mobile Money
Send to Airtel Money, M-Pesa, Tigo Pesa, and HaloPesa
Bank Transfer
Send to 35+ Tanzanian banks including CRDB, NMB, NBC, and more
API Endpoints
| Endpoint | Method | Scope | Description |
|---|---|---|---|
/v1/payouts | POST | disbursement:create | Create payout to saved credential |
/v1/payouts/send | POST | disbursement:create | Create payout to any recipient |
/v1/payouts | GET | disbursement:read | List payouts |
/v1/payouts/{reference} | GET | disbursement:read | Get payout details |
/v1/payouts/fee | GET | disbursement:read | Calculate fee for amount |
Payout Status
| Status | Description |
|---|---|
pending | Payout created, awaiting processing |
processing | Sent to payment provider |
completed | Payout successful, recipient received funds |
failed | Payout failed (see failure_reason) |
reversed | Payout was reversed after completion |
insufficient_balance | Provider float insufficient |
Idempotency
Use the Idempotency-Key header to safely retry requests without creating duplicate payouts.
POST /v1/payouts
Idempotency-Key: payout-emp-001-jan-2026- Keys are valid for 24 hours
- Same key + same request body = returns cached response
- Same key + different body = returns error