Advert enquiry :

How to Integrate Lipa na M-PESA in PHP

Views: 0

How to Integrate Lipa na M-PESA in PHP: A Step-by-Step Guide for Seamless Payment Integration


Lipa na M-PESA, a popular mobile payment service offered by Safaricom in Kenya, allows businesses and developers to receive payments from customers through M-PESA. Integrating Lipa na M-PESA into PHP applications is a powerful way to streamline payment processing and offer a convenient payment method to users. In this step-by-step guide, we will walk you through the process of integrating Lipa na M-PESA in PHP, enabling you to accept M-PESA payments seamlessly.


Before diving into the integration process, ensure you have the following prerequisites:

  1. M-PESA Account: You must have a registered and active M-PESA account for your business. If you don’t have one, visit the nearest Safaricom retail shop or agent to create an M-PESA account.
  2. Safaricom Developer Account: Sign up for a developer account on the Safaricom Developer Portal ( to access the necessary credentials and documentation for integration.
  3. PHP Environment: Make sure you have PHP installed on your local development environment or web server.
  4. Composer: Install Composer, the PHP package manager, to easily handle dependencies for the integration.

Step 1: Set Up the Safaricom SDK

To get started, install the Safaricom PHP SDK, which provides all the necessary tools for interacting with the M-PESA API. Using Composer, run the following command in your project directory:

composer require safaricom/mpesa

Step 2: Obtain API Credentials

Log in to your Safaricom Developer Account and navigate to the Lipa na M-PESA Online section. Obtain the API key, API secret, Shortcode, and Passkey for your application.

Step 3: Configure Your PHP Application

In your PHP application, create a configuration file to store the API credentials securely. You can use environment variables or a separate configuration file excluded from version control to keep the credentials safe.

Step 4: Set Up the Payment Request

In your PHP code, import the necessary classes from the Safaricom SDK and initiate the payment request. Set the relevant parameters such as the amount, account reference, transaction description, callback URLs, and the shortcode.

Step 5: Generate the Access Token

Before making the payment request, you need to generate an access token using the API credentials. Include the access token in the request headers to authenticate the API call.

Step 6: Send the Payment Request

Send the payment request to the Safaricom M-PESA API endpoint using the POST method. Handle the API response to obtain the payment URL and other relevant details.

Step 7: Redirect the User

Once you receive the payment URL from the API response, redirect the user to this URL. The user will be prompted to enter their M-PESA PIN to authorize the payment.

Step 8: Handle the Callbacks

After the user completes the payment, Safaricom will send a callback to the callback URL you specified earlier. Handle this callback to verify the payment status and update your application accordingly.

Step 9: Test and Deploy

Before deploying your PHP application to production, thoroughly test the Lipa na M-PESA integration in a controlled environment. Safaricom’s developer portal offers sandbox environments for testing and debugging.


Integrating Lipa na M-PESA in PHP is a powerful way to offer seamless mobile payments to your users. By following this step-by-step guide and leveraging the Safaricom PHP SDK, you can easily implement secure and efficient payment processing in your PHP application. Embrace the power of M-PESA and provide your customers with a smooth and convenient payment experience for your products and services.

Frequently asked questions (FAQs) about integrating Lipa na M-PESA in PHP:

FAQ 1: What is Lipa na M-PESA?

Lipa na M-PESA is a mobile payment service provided by Safaricom, allowing businesses to accept payments from customers through the M-PESA platform. It offers a convenient and secure way for users to make payments for goods and services directly from their mobile phones.

FAQ 2: Is it necessary to have an M-PESA account to use Lipa na M-PESA in PHP?

Yes, to integrate Lipa na M-PESA in PHP, you must have a registered and active M-PESA account for your business. This account is essential for receiving payments through the Lipa na M-PESA service.

FAQ 3: Can I test the Lipa na M-PESA integration before deploying it in a live environment?

Absolutely! Safaricom provides a sandbox environment on their developer portal, allowing you to test the Lipa na M-PESA integration in a controlled and safe environment. This enables you to identify and resolve any issues before deploying the integration to a production environment.

FAQ 4: How secure is the Lipa na M-PESA integration in PHP?

The security of the Lipa na M-PESA integration depends on how you handle API credentials and payment processing. It is crucial to store API credentials securely, use HTTPS to encrypt data during transmission, and implement proper error handling to prevent unauthorized access and data breaches.

FAQ 5: What happens if a user encounters an issue during the payment process?

If a user encounters an issue during the payment process, such as a failed transaction or payment timeout, it is essential to handle the callback from Safaricom’s M-PESA API properly. The callback will provide information about the transaction status, allowing you to update your application accordingly and inform the user about the payment status.

Remember, thorough testing and proper error handling will help minimize issues and ensure a smooth payment experience for your users.

Discover more from Ajira Wikis

Subscribe to get the latest posts to your email.

Job Advanced Search

Optimized by Optimole

Discover more from Ajira Wikis

Subscribe now to keep reading and get access to the full archive.

Continue reading