Shopify integration
Accept M-Pesa and USDT payments on Shopify
Shopify gives you a world-class storefront and, in Kenya, a payment problem: no native M-Pesa. E-Sarif Checkout adds the prompt local shoppers expect, plus a stablecoin option for buyers paying you from abroad, and marks the order paid in your Shopify admin automatically.
- In development
- Shopify and Shopify Plus merchants selling into Kenya
- No theme edits
Honest status: the Shopify integration is in development and is being piloted store by store. Everything on this page describes how it is built, not a shipped App Store listing. If you need a live integration this week, the REST API, payment links and the WooCommerce plugin are further along.
Why it matters
Two different buyers, two different rails
Kenyan Shopify stores tend to serve two audiences at once, and a single payment method cannot serve both well. The first is the local shopper on a phone, who has an M-Pesa balance and no interest in typing a card number. Give that shopper a card form and a large share of them close the tab.
The second is the diaspora or overseas buyer, often paying more per order, whose card may be declined by cross-border fraud rules or hit with a conversion fee. For that buyer, a stablecoin transfer settles cleanly and cannot be reversed weeks later after you have already shipped.
E-Sarif Checkout puts both on the same page and lets the buyer choose. You configure which methods appear, and both resolve to the same thing: a payment your Shopify admin can see and a settled balance you can withdraw.
Setup
Six steps from install to first live order
Unlike the WooCommerce plugin, nothing here involves copying a secret key by hand. Credentials are provisioned during the app install.
- 01
Request early access
The Shopify integration is in active development and is being rolled out store by store. Create a merchant account and tell the team your myshopify domain so your store can be added to the pilot.
- 02
Install the E-Sarif app on your store
You install from the link the team sends you. The app asks for the scopes it needs to read orders and report payment status, and nothing beyond them.
- 03
Connect your E-Sarif merchant account
Authorise the app against your merchant account. Keys are provisioned during install rather than being copied by hand, so no secret key ever passes through your clipboard or your theme.
- 04
Choose the methods and the settlement currency
Decide whether Kenyan shoppers see M-Pesa only, whether stablecoin appears for overseas buyers, and whether your balance settles in USDT or as KES over M-Pesa.
- 05
Run a test order
With test mode on, place an order on your own storefront. A test payment confirms after a few seconds without a real STK push, so you can see the order marked paid in the Shopify admin.
- 06
Turn on live mode and watch the first real order
Switch to live keys and place one small real order yourself. Confirm the order is marked paid in Shopify and that the payment appears in your merchant portal before you promote the new method.
- Connected merchant account
- Payment methods: M-Pesa, stablecoins
- Networks offered to buyers
- Settlement currency: USDT or KES
- Test mode: on
- Recent sessions and their status
Supported features
Feature support on Shopify
| Feature | Status on Shopify |
|---|---|
| M-Pesa STK push | Supported. The shopper approves the prompt on their handset and returns to your store. |
| USDT and USDC | Supported on Tron, Solana, Base, BNB Chain, Ethereum, Polygon, Arbitrum, Optimism and Avalanche. |
| Order marked paid automatically | Yes, on a verified webhook. The redirect back to your store is never treated as proof of payment. |
| Refunds | Supported, full and partial, returned over M-Pesa B2C or on-chain. |
| Coexists with Shopify Payments | Yes. E-Sarif is an additional option, not a replacement for your existing methods. |
| Multi-currency pricing | Price in KES, USD, USDT or USDC. Stablecoin amounts are calculated when the session is created. |
| Shopify Subscriptions and recurring orders | Not supported. Each payment is a session the buyer approves in the moment. |
| Draft orders and invoices | Use a payment link instead, which works for any amount without going through the storefront. |
| Test mode | Supported, with a separate key pair and simulated confirmations. |
| Availability | In development. Ask the team before you plan a launch date around it. |
Operations
Running it day to day
A payment method is only as good as your ability to reconcile it on a busy Monday. These habits keep a Shopify store honest with itself.
About the merchant portal- Reconcile against the merchant portal, not against SMS. Every session carries your Shopify order number as its reference, so the two lists line up.
- Watch for expired sessions. A shopper who abandons the prompt leaves an unpaid order, which is a recoverable sale rather than a failure.
- Decide your settlement currency before your first busy day, not during it. Switching later is fine but the balances are easier to read if you do not.
- Keep the test key pair around after launch. It is the fastest way to check the flow still works after any change to your store.
FAQ
Shopify and E-Sarif, answered
Can Shopify accept M-Pesa payments?
Shopify does not offer M-Pesa natively, so it has to come from a third-party integration. E-Sarif Checkout adds M-Pesa as a payment option on your Shopify store and marks the order paid in the Shopify admin once the shopper approves the prompt on their phone.
Is the Shopify integration available today?
It is in active development and is being piloted with a limited set of stores. That is a deliberate answer rather than a soft one: do not schedule a launch around it until the team has confirmed your store is in the rollout. If you need something live now, the REST API, payment links and the WooCommerce plugin are further along.
Will it replace Shopify Payments?
No. E-Sarif appears as an extra way to pay. Shoppers who want to use the methods you already offer keep doing exactly that.
I sell internationally from Kenya. What does this add?
Two things. Local shoppers get the M-Pesa prompt they expect instead of a card form they will abandon. Overseas buyers can pay in USDT or USDC, which settles without a card network in the middle and cannot be charged back after delivery.
Do I need a developer?
No. The integration is an app install and a settings screen. Nothing is pasted into your theme and no Liquid is edited, which also means a theme update cannot break your payments.
What currency will I actually receive?
Whichever you configure. The settlement currency defaults to USDT, and Kenyan merchants who want shillings can settle to M-Pesa instead. Your storefront prices do not have to change either way.
How are refunds handled?
Refund as normal from the Shopify order. E-Sarif returns the money the way it arrived, over M-Pesa B2C or on-chain, in full or in part. Refunds above your account threshold are held for approval first.
Does it support Shopify subscriptions?
No. Recurring billing is not supported. Both payment methods need the buyer to approve the payment, which rules out unattended renewals.
Other integrations
Other ways to take the payment
WooCommerce
A WordPress payment gateway plugin that adds M-Pesa and USDT to Woo checkout.
Read the WooCommerce guideEarly accessWHMCS
Collect hosting and domain invoices in M-Pesa or USDT, with automatic invoice marking.
Read the WHMCS guideIn developmentWordPress
Payment buttons and blocks for any WordPress site, with or without a shopping cart.
Read the WordPress guideEarly accessREST API and SDKs
One HTTP call returns a checkout URL. PHP, Node and browser SDKs on top of it.
Read the REST API and SDKs guideIn developmentPayment links
Get paid with a shareable link. No website, no plugin, no code.
Read the Payment links guideGive Kenyan shoppers
the prompt they expect.
Create a merchant account, tell the team your myshopify domain, and get your store into the rollout.