This example demonstrates how to initiate an STK Push request using PHP.
<?php
require_once 'includes/MpesaAPI.php';
// Initialize the API
$mpesa = new MpesaAPI('config.php');
// Format phone number (converts 0712345678 to 254712345678)
$phone = MpesaAPI::formatPhoneNumber('0712345678');
// Initiate STK Push
$result = $mpesa->stkPush(
$phone, // Phone number
100, // Amount
'Invoice123', // Account reference
'Payment for goods' // Description
);
// Check result
if ($result['status'] == 200 && $result['response']['ResponseCode'] == '0') {
echo "Success! CheckoutRequestID: " . $result['response']['CheckoutRequestID'];
} else {
echo "Error: " . $result['response']['errorMessage'];
}
?>
// Successful Response:
{
"status": 200,
"response": {
"MerchantRequestID": "29115-34620561-1",
"CheckoutRequestID": "ws_CO_191220191020363925",
"ResponseCode": "0",
"ResponseDescription": "Success. Request accepted for processing",
"CustomerMessage": "Success. Request accepted for processing"
}
}
// Error Response:
{
"status": 400,
"response": {
"requestId": "11728-2929992-1",
"errorCode": "400.002.02",
"errorMessage": "Bad Request - Invalid Amount"
}
}