Skip to main content
Send Money lets you disburse funds from a KulmiPay wallet to one or many recipients. Use it for salaries, supplier payments, customer refunds, agent commissions, marketplace settlements, and wallet-to-wallet transfers. The flow is built around a payment file. You initiate a file with one or more transactions, optionally approve it, then track its status until every transaction is complete or failed.

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

The transactions 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:
Use sandbox keys with https://sandbox.kulmipay.com while testing, then switch to live keys with https://app.kulmipay.com.

PHP SDK example

Use $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.