Payments
Payment dashboard
Returns aggregated payment statistics and metrics for the authenticated project.
Initiate a payment
Creates a new payment intent (collection or disbursement) for the project.
List all payments
Returns a paginated list of payments for the authenticated project.
Create a payment link (v2)
Creates a shareable payment link using the PaymentLinkIntentPayload schema.
Search payments
Searches and returns a paginated list of payments matching the given filters.
Retry collection
Retries a previously failed or pending collection payment using its reference.
Pay now
Initiates a one-click pay-now payment using a pre-configured payload.
Verify payment status
Verifies the status of a payment using its reference code.
Get payment by reference
Retrieves full payment details using the payment reference.
Export payment report
Generates and exports a payment report for a given date range and filters.
Collection (Unified)
Charges a customer on any channel through one endpoint. Identify the payer with `service` and `account`; `provider` is optional for `service: mobile` because the network is detected from the number. Returns immediately with `status: PROCESSING` - the final outcome arrives on your webhook.
Disbursement (Unified)
Creates a payout to a mobile wallet, bank account or till on any channel. The payout is created in `AWAITING_APPROVAL` and no money moves until you approve it with `POST /api/v2/payment/approve` from a whitelisted IP.
Batch Disbursement (Unified)
Creates many payouts in one request. Records may mix channels. Each record becomes its own payment in `AWAITING_APPROVAL` and is approved individually by reference.
Approve Disbursement (API, IP Whitelisted)
Approves a payout that is awaiting approval and dispatches it, in one call. There is no OTP on this route - the IP whitelist replaces it, so the request must come from an address registered under Settings in the dashboard. Re-approving a payout that is already `APPROVED` is safe and does not pay twice.
Cross-channel Payment
Pays an existing reference on a different channel from the one it was created for - for example a customer who was prompted on M-Pesa but wants to pay by bank instead.
Available Channels
Lists the collection and disbursement channels enabled on your project. Read it at startup rather than hard-coding a channel list, so a newly enabled rail works without a deploy.