Quick answer

Shopify Payments is not available in Kenya. To accept M-Pesa on your Shopify online store, install a third-party gateway like Pesapal, IntaSend, or DPO Pay. For in-store M-Pesa (STK Push at your counter), Shopify POS does not handle this natively: use WebpinnPOS alongside Shopify to manage in-person M-Pesa payments with automatic confirmation.

Why Shopify Payments doesn't work in Kenya

Shopify Payments, Shopify's own built-in payment processor, is only available in a specific list of countries, and Kenya is not on that list as of 2026. This means Kenyan merchants cannot use Shopify's native checkout payment processing. Instead, you must integrate a third-party payment provider, which Shopify supports through its external payment gateway system.

There is a cost implication. When you use a third-party gateway instead of Shopify Payments, Shopify charges an additional transaction fee on every sale: 2% on the Basic plan, 1% on the Shopify plan, and 0.5% on Advanced. This fee is separate from whatever the gateway itself charges. Factor this into your payment processing cost calculations when choosing a plan.

Online M-Pesa via third-party gateways

Several payment gateways operating in Kenya integrate with Shopify and support M-Pesa online payments. Here are the main options:

GatewayM-Pesa supportCard supportNotes
PesapalYes, STK PushVisa, MastercardWidely used in Kenya; KES settlement
IntaSendYes, STK PushVisa, MastercardKenya-built; developer-friendly API
DPO PayYesYes, multi-currencyCovers multiple African markets
PaystackNo (Kenya)YesM-Pesa not available on Kenyan Paystack accounts

Each gateway requires you to create a merchant account, go through a verification process (which typically involves your business registration documents and bank account details), and then install their app or configure their credentials in Shopify.

How to install and configure a gateway on Shopify

  1. Create a merchant account with your chosen gateway (Pesapal, IntaSend, or DPO Pay) and complete their verification process.
  2. In your Shopify admin, go to Settings then Payments. Scroll past "Shopify Payments" to the Third-party payment providers section and click Choose third-party provider.
  3. Search for your gateway provider. If they have an official Shopify app, follow the app installation flow. If not, select "Other" and enter the gateway's credentials manually.
  4. Enter the API credentials provided by your gateway (API key, merchant ID, or similar). These are found in your gateway merchant dashboard.
  5. Enable the gateway and place a test transaction using the gateway's sandbox credentials. Confirm the payment appears in both your Shopify order list and your gateway dashboard.
  6. Switch to live mode in both the gateway settings and Shopify once testing is successful.

Important: Do not deactivate your gateway's test mode until you have successfully completed at least one end-to-end test order, including a test M-Pesa STK Push that confirms and an order that appears in your Shopify admin as paid.

In-store M-Pesa (STK Push) via WebpinnPOS

Your Shopify online store and your physical shop counter have different M-Pesa needs. Online M-Pesa is handled by the gateway at the Shopify checkout. In-store M-Pesa is a different flow: the cashier enters the customer's phone number (or the customer scans a QR code), an STK Push is sent to the customer's Safaricom line, and the customer enters their PIN to confirm.

Shopify POS does not natively send STK Push requests. It can record an M-Pesa payment as a custom tender after the fact, but the push-and-confirm automation requires a dedicated system. WebpinnPOS handles this natively. The cashier initiates payment from WebpinnPOS, the STK Push goes to the customer's phone, and WebpinnPOS automatically confirms receipt when Safaricom's callback fires: no manual checking of M-Pesa messages required.

WebpinnPOS also syncs stock with Shopify, so the in-store sale reduces your Shopify inventory automatically.

Recommended setup for a Kenya Shopify business

For a business that operates both online and in-store in Kenya, the recommended configuration is:

  • Online payments: Pesapal or IntaSend installed on Shopify. Handles online M-Pesa and card payments on your Shopify checkout.
  • In-store payments: WebpinnPOS for M-Pesa STK Push and cash. Syncs all in-store sales back to Shopify inventory automatically.
  • Card payments in-store: A bank card terminal (Equity, KCB, or similar) operating independently. Record card sales as a custom tender in your in-store POS.

This setup gives your customers M-Pesa as a payment option on every channel, keeps your stock numbers accurate across online and in-store, and avoids the need for any manual reconciliation between the two channels.

Frequently asked questions

Handle in-store M-Pesa through WebpinnPOS

STK Push with automatic confirmation, stock sync to Shopify, and full sales reporting: built for Kenyan shops.

Start Free Trial
14 days free. No credit card required.