Supported payout types
How it works
1
Initiate a payment file
Call
POST /api/v1/send-money/initiate/ with the provider, currency, and transactions array.2
Approve or auto-approve
If
requires_approval is "YES", approve the file with POST /api/v1/send-money/approve/ and include the returned transaction IDs. If it is "NO", KulmiPay queues the file immediately.3
Track transaction status
Call
POST /api/v1/send-money/status/ with the tracking_id, or listen for callbacks on your callback_url.API limits
Thetransactions field is an array, so you can submit multiple recipients in one request. Use batches for payroll, vendor payouts, and other bulk workflows.
For large batches, keep your own batch_reference and per-transaction idempotency_key values so you can reconcile safely and avoid duplicate payouts during retries.
Authentication
Send Money endpoints require a secret key:https://sandbox.kulmipay.com while testing, then switch to live keys with https://app.kulmipay.com.
PHP SDK example
$transfer->mpesa_b2b(...) for M-Pesa Till or PayBill payouts, $transfer->bank(...) for PesaLink bank payouts, and $transfer->p2p(...) for KulmiPay wallet transfers.
Next steps
M-Pesa B2C
Send money directly to M-Pesa wallets.
M-Pesa B2B
Pay M-Pesa Till and PayBill numbers.
Bank Payouts
Send money to Kenyan bank accounts through PesaLink.
Transaction Status
Track payout files and individual transactions.
KulmiPay P2P
Transfer funds between KulmiPay wallets or accounts.
