📱 STK Push Example

This example demonstrates how to initiate an STK Push request using PHP.

Basic Usage:

<?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'];
}
?>

Response Structure:

// 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"
    }
}

Testing in Sandbox:

Common Response Codes:

← Back to Dashboard