Send an M-Pesa payment prompt to a customer’s phone.
07XXXXXXXX, +254XXXXXXXXX, or 254XXXXXXXXX format
and normalised internally.accountReference must be 12 characters or fewer. It appears in the customer’s M-Pesa
statement.transactionDesc must be 13 characters or fewer. It appears on the customer’s PIN prompt.transactionId is the permanent identifier — use it to poll status or
match incoming webhooks.PENDING response means the STK prompt was sent successfully. The final result
arrives via your callbackUrl.429 STK_TEMP_BANNED. The ban lasts 1 hour. See the
details.retryAfterSeconds field for the exact wait time.Use your API key as the username. Leave the password field empty.
Authorization: Basic <base64(apikey:)>You can also pass the raw API key:
Authorization: Basic <apikey>Amount to charge in KES.
x >= 11000
Customer phone number. Accepted formats: 0712345678, 254712345678,
+254712345678. Normalised to 254XXXXXXXXX internally.
"0712345678"
Your reference — invoice number, order ID, etc.
12"INV-2024-001"
Short description shown on the customer's PIN prompt.
13"Payment"
HTTPS URL where PalPluss will POST the transaction result after the customer confirms or cancels payment.
"https://yourserver.com/webhooks/mpesa"
Optional. Route the STK Push through a specific payment channel (shortcode). If omitted, the default channel is used.
Optional. Use a specific M-Pesa credential profile.