About this plugin
com and publishes this plugin.
Snap Pay lets your customers pay by M-Pesa, Airtel Money or MTN Mobile Money. The money is not paid straight out to you. Snap Pay holds it, emails the buyer an 8-character delivery code, and releases the funds to your Snap Pay wallet once you enter that code on the order.
That is the point of it. The buyer knows they are not sending money into the dark, and you get paid for a delivery that actually landed.
How an order runs
- The customer picks Snap Pay at checkout and approves the prompt on their phone.
- The order goes to Processing. The money is held, not settled — nothing is paid out yet.
- Snap Pay emails the buyer a code. It also appears on the WooCommerce order email, so one spam filter cannot strand the order.
- You ship. The buyer receives the goods and gives you the code.
- You enter it in the Snap Pay panel on the order. The order completes and the funds land in your Snap Pay wallet, less the fee and a 10% reserve held for 30 days.
- You withdraw from the Snap Pay dashboard.
Codes last 14 days. Five wrong entries locks a code for an hour. If a buyer loses their code, Snap Pay support can release the funds after checking with them — there is no way to release money on a timer, by filter, or by any setting in this plugin.
Selling across the border
A Ugandan buyer on a Kenyan store sees the exact shilling amount they will be charged, with the exchange rate locked for 15 minutes before they pay. You still settle in your own currency at the rate quoted at checkout. Snap Pay carries the currency movement, not you and not the buyer.
What this plugin is
A thin adapter. It renders checkout, mirrors order state, and talks to the Snap Pay platform. Escrow, the ledger, fees, reserves, exchange rates, provider connections and payouts all live on the platform.
The plugin holds no provider credentials and never contacts Safaricom, Airtel or MTN.
External service
This plugin does not work on its own. com, in order to take payments.
com ). Your site may be configured to use a different Snap Pay endpoint if support has given you one.
When data is sent:
- When a customer places an order using a Snap Pay payment method.
- When a cross-border customer reaches checkout, to quote and lock an exchange rate.
- When you enter a delivery code to release funds.
- When the plugin checks the status of an order, or your account balance.
What is sent: the order number and order key, the amount and currency, the customer’s name, email address and mobile money number, the customer’s billing country, the payment method chosen, and your store URL. Nothing else from the order is transmitted — no addresses, no cart contents, no IP addresses.
What is received: the transaction status, the fee and reserve amounts, the exchange rate, and the delivery code so it can be added to your order email.
Webhook endpoint: the plugin registers POST /wp-json/snappay/v1/webhook on your site so the Snap Pay platform can report payment events. The route is public by design (the platform has no WordPress login); every request is rejected unless its HMAC-SHA256 signature, timestamp and event id check out.
What is stored on your site: the Snap Pay transaction reference, the payment state, the fee/reserve/settlement figures, and whether a delivery code has been issued and when it expires. The delivery code itself is never stored on your site or written to any log.
com/terms
com/privacy
By installing this plugin and connecting an account you agree to those terms.
Trademarks
M-Pesa, Airtel Money, MTN and MoMo are trademarks of their respective owners. Their use here refers to the payment methods supported and does not imply endorsement, partnership or official status. Snap Pay is not affiliated with Safaricom, Airtel or MTN.
WooCommerce is a trademark of Automattic Inc. This plugin is not affiliated with or endorsed by Automattic.