POST: Initiate MPESA STK Push Payment Request

This endpoint enables you to initiate an MPESA STK Push request to a customer number to receive payments to your linked payment channel

Easily initiate an MPESA STK Push request to a customer's phone, facilitating seamless mobile payments. You can link your own Till Number, Pay bill Number or Bank Account. By using this endpoint, you can automate payment requests, streamline the payment process, and easily track transactions through DarajaPay's centralized system. This feature is designed to enhance payment efficiency for businesses and individuals using MPESA services.

API Method

POST https://darajapay.com/api/v1/mpesa/stkpush

Headers

Name Type Description
Authorization:* String Basic basicAuthToken

Request Body

Name Type Description
amount* Integer Eg: 100
phone_number* String Eg: 0787677676
channel_id* Integer Your registered payment channel ID eg: 133
Can be found by logging in, under the Payment Channels menu, then My Payment Channels.
provider* String Value: m-pesa
external_reference String Your unique reference to track this transaction Eg: INV-009
customer_name String Customer name : Optional
callback_url String Your endpoint URL that we will use to send payment status response eg: https://example.com/callback.php

Response

201: Created Upon successful request, you will get below JSON response

JSON
{
    "success": true,
    "status": "QUEUED",
    "reference": "E8UWT7CLUW",
    "CheckoutRequestID": "ws_CO_15012024164321519708344109"
}

Code Examples

PHP
 'https://darajapay.com/api/v1/mpesa/stkpush/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "amount": 10,
    "phone_number": "0798766765",
    "channel_id": 911, 
    "provider": "m-pesa", 
    "external_reference": "INV-009",
    "customer_name":"John Doe",
    "callback_url": "https://example.com/callback.php"
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'Authorization: Basic 3A6anVoWFZrRk5qSVl0MGNMOERGMlR3dlhrQ0VWUWJHNDVVVnNaMEdDSw=='
  ),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>

Callback URL Response Sample

This represents the JSON that will be sent to your request callback_url. It contains the ExternalReference that you provided in the request and CheckoutRequestID that was returned in the request response. You can use these to track and update your payments in your system/app.

JSON
{
  "forward_url": "",
  "response": {
    "Amount": 10,
    "CheckoutRequestID": "ws_CO_14012024103543427709099876",
    "ExternalReference": "INV-009",
    "MerchantRequestID": "3202-70921557-1",
    "MpesaReceiptNumber": "SAE3YULR0Y",
    "Phone": "+254709099876",
    "ResultCode": 0,
    "ResultDesc": "The service request is processed successfully.",
    "Status": "Success"
  },
  "status": true
}