PREVIEW-AND-APPROVE state — nothing is sent until you approve it. If you set requires_approval to "NO", Kulmi Pay approves and queues the file immediately after creation.
You must have the add_files permission on your API token to call this endpoint.
Request
POST https://app.kulmipay.com/api/v1/send-money/initiation/
Bearer token. Format:
Bearer <token>.The currency to disburse. Use
"KES" for Kenyan shillings.The payment provider to route the disbursement through. One of:
| Value | Description |
|---|---|
MPESA-B2C | Send to an M-Pesa mobile wallet |
MPESA-B2B | Pay to an M-Pesa PayBill or Till number |
PESALINK | Transfer to a Kenyan bank account |
P2P | Transfer between Kulmi Pay wallets |
AIRTIME | Top up mobile airtime |
RTGS | High-value real-time gross settlement |
Whether the file requires a manual approval step before processing. Set to
"NO" to skip approval and process immediately. Accepted values: "YES", "NO".The ID of a specific wallet to debit. If omitted, Kulmi Pay uses your default KES settlement wallet. Use this when you have multiple wallets and need to debit a specific one.
Your internal reference for this batch, such as a payroll run ID or invoice number. Returned as-is in status and webhook responses.
A URL to receive webhook notifications when the file or individual transaction statuses change. Must be HTTPS.
List of transactions to include in this file. You can include one or many recipients in a single request.
Response
A successful request returns HTTP201 with the newly created file object.
The unique identifier for this payment file. Use this when calling the approve or cancel endpoints.
A UUID you can use to look up this file’s status. Use this with the status endpoint.
The current file state. Starts as
PREVIEW-AND-APPROVE when approval is required, or moves to PROCESSING when requires_approval is "NO".The sum of all transaction amounts in this file, as a string.
The number of transactions in the file.
The list of transactions created for this file. Each transaction includes a
transaction_id and its current status.The wallet that will be (or has been) debited for this file.
Estimated transaction charges for this file.
Estimated total deduction including charges.
Your batch reference, as submitted.
ISO 8601 timestamp when the file was created.
Examples
Sample response
PesaLink example
When sending to a bank account via PesaLink, includebank_code on every transaction. Fetch codes from the bank codes endpoint.
M-Pesa B2B PayBill example
When paying a PayBill number, include bothaccount_type and account_reference.
