POST /v4/payouts — the maker step

Like every V4 call, this endpoint family expects the three auth factors: a Bearer token (Authorization: Bearer …), a whitelisted source IP, and the per-request RSA signature headers (X-PP-Signature, X-PP-Nonce, X-PP-Timestamp). See Request Signing.

Submits a B2C payout for approval. No money moves on this call — V4 payouts are maker-checker: the submitter (maker) and the approver (checker) must be different people.

Request body
FieldTypeDescription
account_nostringFunding account, e.g. ACC-1001.
destinationstringPhone (mobile rails) or bank account per channel.
channelstringmpesa, pesalink-mobile, pesalink-account, or rtgs. USD payouts are RTGS-only.
amount_minorintegerMinor units, min 1.
currencystringISO-4217, 3 letters. Must match the destination's currency.
referencestringYour unique payout reference.
maker_idintegerDashboard user id of the submitter.
Response — 202 Accepted
{
  "status": "pending_approval",
  "reference": "PAY-2026-0107"
}

The payout now appears in the approval queue — approve via the API or in the merchant dashboard (Payout approvals, OTP-gated). Saved beneficiaries with their own maker-checker lifecycle are managed in the dashboard under Send Money → Beneficiaries.