Back to plugins & integrations

M-Pesa Payments icon

M-Pesa Payments

Accept Mpesa payments on your Vendure store.

npm install vendure-mpesa-plugin

Integration type

Open source integrations built by the Vendure community.



Last published

22 days ago

Downloads in past month


Vendure Mpesa Plugin

Vendure Mpesa Plugin

GitHub Actions Workflow Status   NPM Version

Accept Mpesa payments on your Vendure store.


yarn add vendure-mpesa-plugin


  1. Add the MpesaPlugin to your VendureConfig plugins array.
import { MpesaPlugin } from "vendure-mpesa-plugin"

export const config: VendureConfig = {
    // ...
    plugins: [
        // ...
            consumerKey: "YOUR_CONSUMER_KEY",
            consumerSecret: "YOUR_CONSUMER_SECRET",
            shortCode: "YOUR_SHORT_CODE",
            shortCodeType: "SHORTCODE_TYPE",
            passkey: "YOUR_PASSKEY",
            environment: "APP_ENVIRONMENT",
            vendureHost: ""
  1. Start the server and navigate to Settings > Payment methods. Add a new payment method, selecting Lipa na Mpesa Online as the handler.

Note: Select the ‘Check whether Mpesa supports the payment’ eligibility checker when creating the payment method.

  1. Calling the addPaymentToOrder mutation on the storefront with the corresponing payment method code will initiate an STK push to the customer’s phone.

  2. Call the verifyMpesaTransaction mutation periodically on the storefront to verify the transaction status.