Lewis SelbyCo-Founder, Maxme11 min read

To add Mobile Money payments to your online store in Ghana, open a Paystack account, submit your ID, TIN and business papers, then connect it: the Paystack app on Shopify, the Paystack plugin on WooCommerce, or a Payment Page link if you have no store. Test in test mode, pay a real GHS 1 by MoMo, then check your Meta Pixel still records the sale.
What do you need to accept Mobile Money payments online in Ghana?
Start with the payment account, because approval is the slow part and a store cannot take money without it. A payment gateway collects MTN MoMo, Telecel Cash and AirtelTigo Money for you and pays you in cedis. This walkthrough uses Paystack, because it has an official Shopify app and WooCommerce plugin. Our guide "Paystack vs Hubtel vs expressPay" compares the fees and payout speeds of all three.
A new Paystack account opens in test mode. To go live, you fill in four sections on the Compliance page of your dashboard: Profile, Contact, Owner and Account. Account is the bank account or MoMo wallet your payouts go to. Paystack says a business goes live automatically once every field is complete and the documents are verified, and its review team emails you if anything needs fixing.
Two Ghana details save time. Since 1 April 2021 the Ghana Card PIN has replaced the GRA Tax Identification Number for individuals, so for a sole trader the Ghana Card number is the TIN. Business names and companies are registered with the Office of the Registrar of Companies, which Paystack's document list still calls the Registrar General's Department. At the time of writing (September 2026), Paystack asks Ghanaian businesses for:
- Not registered yet (a Starter business): a Ghana Card, passport, driver's licence or voter's card, a TIN, and a personal bank account or MoMo number, all in the same name. Collections pause at GHS 30,000.
- Sole proprietorship: your certificate of registration.
- Company limited by shares: the certificate of incorporation, Form 3 and the company's TIN.
- Company limited by guarantee: the certificate of incorporation, Form 3B and the TIN.
How do I add Paystack to my Shopify store in Ghana?
Check two things first. Shopify filters its list of payment providers by the store address in Settings, then General, so a store with an address outside Ghana may not see Paystack at all. And a store on a free trial starts in private mode or with checkout switched off; Shopify says you must choose a paid plan before customers can buy. Set the store currency to Ghana cedis, so the price a buyer sees is the price charged.
Then follow the steps in Paystack's help centre. The Paystack app only moves money: orders, delivery fees and stock stay in Shopify. Shopify also charges its own fee on every order paid through an outside gateway, because Shopify Payments is not offered in Ghana; our guide "Does Shopify work in Ghana?" sets out those rates by plan.
- In your Shopify admin, open Settings, then Payments, then click Add payment methods.
- Choose Search by provider, select Paystack, click Connect, then Install app.
- Paste your API keys from the Paystack dashboard (Settings, then API Keys & Webhooks) and click Save.
- Click Activate Paystack.
- Choose which payment logos show at checkout, and keep Mobile Money on so buyers see MoMo before they tap.
- Tick Enable Test Mode, with your test keys, for practice orders. No real money moves in test mode.
How do I add Mobile Money to a WooCommerce store?
Install Paystack's free plugin, Paystack WooCommerce Payment Gateway, from the Plugins page in WordPress. At the time of writing it has more than 30,000 active installs, lists Ghana and GHS, and takes cards, mobile money and bank transfer. Then go to WooCommerce, then Settings, then the Payments tab, tick Enable Paystack, choose Popup or Redirect checkout, and paste your test and live API keys.
Two settings matter more than the rest. The plugin's default title is "Debit/Credit Cards", which tells a MoMo buyer you do not take MoMo, so rename it "Mobile Money or card". And copy the webhook URL shown in red on the plugin's settings page into the API Keys & Webhooks section of your Paystack dashboard. The plugin's own page recommends the webhook for reliable order updates on poor networks.
Without it, a buyer who approves the MoMo prompt but never returns to your site leaves an order at Pending payment, which WooCommerce defines as an order with no payment made. For Hubtel and expressPay, check who built the plugin. expressPay links its own WooCommerce plugin from its developer docs; it lives on GitHub and was last updated in October 2025. An older expressPay listing on WordPress.org dates from January 2016 and has not been tested with recent WordPress versions.
Hubtel has no official plugin in the WordPress directory at the time of writing. The one listed, Payments for Hubtel, says an independent developer built it and it is not affiliated with Hubtel, so Hubtel usually means a developer and its API. To hand the setup over instead, Maxme's Store Launch builds the store with MoMo checkout, delivery zones and the Meta Pixel for GHS 5,000 (about US$430) on WooCommerce or GHS 6,000 (about US$517) on Shopify, one-off and excluding VAT; see our pricing page.
How can I accept MoMo payments online without a website?
Use a payment link. In your Paystack dashboard, open Payment Pages, click New Page, pick One-time Payment, Subscription or Product, fill in the details and click Create. You get a link such as paystack.com/pay/yourshop to paste into a WhatsApp chat, an Instagram DM or your bio. The buyer opens it, taps Mobile Money, enters their number, chooses the network and approves the prompt on their phone.
A Product page shows several items with prices, which suits a small catalogue sent to a chat. Make sure the page is published in Live mode before you share it, because a test-mode page takes no real money. Hubtel's route is invoicing: its merchant portal sends invoices as links, and Hubtel BackOffice invoices carry the amount, a payment link and a due date, with automatic reminders.
Either way you get a payment record in a dashboard instead of a screenshot, which settles any "I have sent it" argument. Our guide "How to sell on Instagram in Ghana" covers the chat side. Here is how the three routes compare, from Paystack's and the platforms' own help pages at the time of writing (September 2026):
Swipe the table sideways to see every column.
| Shopify store | WooCommerce store | No website (payment link) | |
|---|---|---|---|
| What you install | Paystack app (free) | Paystack WooCommerce Payment Gateway plugin (free) | Nothing |
| Where you set it up | Settings, Payments, Add payment methods | WooCommerce, Settings, Payments | Paystack dashboard, Payment Pages, New Page |
| What you paste in | Paystack API keys | API keys, plus the webhook URL into Paystack | Nothing: you share the link |
| Paystack fee per payment | 1.95% | 1.95% | 1.95% |
| Extra platform fee | Shopify's third-party fee (2% on Basic) | None | None |
| How Meta hears about the sale | Facebook & Instagram app, Enhanced or Maximum data sharing | Meta for WooCommerce plugin | Not automatically; label paid chats in WhatsApp Business |
| Common trap | Store address outside Ghana hides Paystack; test mode left on blocks orders | Title left as Debit/Credit Cards; no webhook | Sharing a test-mode link |
How do you test Mobile Money payments before going live?
Test twice: once with pretend money, once with real money. In test mode, Paystack's test Mobile Money number is 055 123 4987 on MTN, which completes without a PIN or OTP, and its test card 4084 0840 8408 4081 works with CVV 408 and any future expiry date. Place a full order and check it shows as paid in Shopify or WooCommerce, not stuck as pending.
Then go live and spend real money. Create a hidden GHS 1 product with no delivery charge (turn off the Physical product setting on Shopify, or tick Virtual on WooCommerce) and buy it from a phone on mobile data, once for each network your buyers use: MTN MoMo, Telecel Cash and AirtelTigo Money, now AT Money. Paystack's smallest GHS charge is GHS 0.10, so GHS 1 goes through, and 1.95% of it is about 2 pesewas.
For each payment, check three places: the order is marked paid in your store, the payment shows as successful in your Paystack dashboard, and the confirmation page loaded on the phone. A refund is optional at this amount; Paystack says refunds take 3 to 10 working days and it keeps its fee. On Shopify, untick test mode before launch, because Shopify says customers cannot place live orders while a provider is in test mode.
When does MoMo money from online sales reach your account?
On Paystack, the next working day. Payouts go automatically to the bank account or MoMo wallet on your Account settings, but only on working days, so sales from Friday to Sunday usually arrive on Monday, and a public holiday adds another day. At the time of writing (September 2026), bank payouts wait until GHS 50 has built up, MoMo payouts have no minimum, and requesting a payout below the minimum costs GHS 5.
Hubtel works differently. It credits your Hubtel account balance within the hour, every day including weekends and public holidays, and you move money to your own bank account or MoMo wallet when you choose. expressPay does not publish a settlement schedule, so ask its merchant team in writing. If you restock every Monday morning, that difference in timing can matter more than a fraction of a percent in fees.
Keep the names consistent. On a Paystack Starter account, the ID, the TIN and the payout account must all belong to the same person, so a relative's MoMo number will not do. Plan your cash around the calendar too: weekend ad spend leaves your card on the day, while the weekend's MoMo sales reach you on Monday.
Is your Meta Pixel still counting sales after a MoMo payment?
This is the step most setups miss. The browser Pixel records a purchase when your thank-you page loads, but a MoMo buyer leaves your checkout to approve a prompt on their phone. If they close the tab, lose signal or never come back, the page never loads. Shopify's developer documentation says that if the page where checkout_completed should fire fails to load, the event is not triggered at all.
So send purchases from your server as well. On Shopify, open Sales channels, then Facebook & Instagram, then Settings, then Data sharing settings, and choose Enhanced or Maximum; both add Meta's Conversions API, which sends purchase events server to server. On WooCommerce, Meta's own plugin, Meta for WooCommerce, also sends server events, but watch the opposite problem. In version 3.7.7, its code counts orders still at Pending payment as purchases and can report one the moment the order is created, before the MoMo prompt is approved.
Test both directions. In Events Manager, open Data sources, choose your dataset, click Test events, enter your store address and click Open website, then buy your GHS 1 product in that window and watch for the Purchase. Next, start an order and decline the MoMo prompt: no Purchase should reach Meta. Meta says new data can take 30 minutes or more to show in its reports, so check again later for the server event.
When we audit Ghanaian stores, this is where tracking most often breaks. In one fashion store we worked with, fixing a Paystack configuration error, putting MoMo first and repairing the Meta Pixel took checkout conversion from 5.88% to 20.35%, and completed checkouts from 4 to 23, across two 30-day windows. If you want someone to check yours, our free Ads & Store Audit sends a short video review on WhatsApp within 2 working days, with the three fixes that matter most.



