Accept payments online, in store and by link
SmatPay is a payment gateway for businesses in Zimbabwe. One merchant account takes EcoCash, InnBucks, O'mari, ZimSwitch, Visa and Mastercard, settles in USD or ZWG, and sends every receipt to ZIMRA.
Works with
Hosted checkout
A checkout built for a phone in a shop queue
Most of your customers will open a SmatPay link from WhatsApp on a mid-range Android phone, outdoors, on patchy data. So the amount is always on screen, every step is explained in plain words, and nothing rushes them. Card numbers are typed on our page, never on yours.
Payment links. Create one in the merchant portal, send it by WhatsApp, email or on an invoice, and see each payment land against it.
On your website or app. Open the checkout as a modal, a pop-up or a redirect. It returns the result to your page and closes itself.
Cards on file. Keep a customer's Visa, Mastercard or ZimSwitch card as a token and charge it again with their consent, for subscriptions or repeat orders.
What the customer sees after they tap Pay




POS terminals
A terminal that arrives already set up for your shop
We register the device, fit the SIM and allocate it to your merchant account before it ships. Your cashier switches it on, signs in with a PIN and takes the first payment. Nobody types a merchant ID.
- Device
- Android POS terminal with a built-in printer, such as the PAX A920 Pro
- Network
- A SIM card is supplied, registered and managed by SmatPay
- Takes
- EcoCash, InnBucks, O'mari, ZimSwitch, Visa and Mastercard, plus cash sales
- Receipts
- Printed on the device and emailed, each one fiscalised with ZIMRA
- Staff
- A PIN per agent; supervisors reset PINs and approve refunds
- Also sells
- Airtime, bundles, ZESA electricity and water tokens
- Rental
- Per device, billed daily, weekly, monthly or yearly
Merchant portal
The rest of the job, in one place
Taking the payment is a small part of running a business. The portal is where the money moves on, where staff get the access they need and where your accountant gets what they ask for.
- Payouts to your bank account, on demand or on a schedule
- Refunds and reversals with a reason and an audit trail on each
- Recurring charges on a stored card, with reminders and self-service cancellation
- Batch payments to many beneficiaries from one upload
- Team roles that decide who sees reports and who can refund
- Payment profiles one per store, brand or currency, each with its own fees and callback
- Fraud holds that park a payment until someone with the right role decides
- Reports by day, method, device or agent, exportable as CSV
- ZIMRA fiscal device, certificate, invoices and credit notes, all handled for you
Volume
US$4,812.50
Payments
137
Pending
4
| Reference | Method | Amount | Status |
|---|---|---|---|
| POS-8f3a2c1e | EcoCash | USD 48.00 | Paid |
| LNK-2041-03 | Visa | USD 120.00 | Pending |
| POS-7c11d9a0 | ZimSwitch | ZWG 1,240.00 | Paid |
| SUB-0192-11 | Mastercard | USD 15.00 | Paid |
| POS-2b9e4f77 | InnBucks | USD 9.50 | Refunded |
Developers
Three calls, every rail, one reference
Start a payment, keep the reference, track it until it is Paid or Failed. The same three calls serve a website checkout, a stored card and a POS terminal. Every endpoint has a sandbox twin, and you get a callback when the state changes.
Mobile money takes a moment to confirm. A payment starts as Pending, the customer approves on their phone, and our workers keep checking with the provider until it settles. You never have to guess.
Terminals do not sign in. Each one carries a device ID that resolves to your account on our side, so there are no credentials on the device and nothing for a cashier to type.
import { open } from "./smatpay.mjs"; // SmatPay checkout SDK
open({
url: paymentLink.url,
mode: "modal", // or "popup", "redirect"
onResult: (result) => {
if (result.status === "paid") markOrderPaid(result.reference);
},
});POST /init/pos-payment
{ "deviceId": "123", "paymentMethod": "ECOCASH",
"msisdn": "263771234567", "amount": 24.50, "currency": "USD" }
→ { "reference": "POS-8f3a…", "status": "Pending" }
POST /init/trackPaymentTransaction
{ "transactionReference": "POS-8f3a…" }
→ { "status": "Paid" }Sell airtime, electricity and water from the same account
Retailers and agents can resell Econet and NetOne airtime, ZESA prepaid electricity and ZINWA or council water from a SmatPay terminal or the portal. Sales come out of a prefunded wallet, and the token prints on the same receipt as everything else. Meters are checked, and the account holder's name shown, before any money moves.Ask about agent pricing
The parts you should never have to think about
Card data. Cards are typed on our hosted pages, not yours. Visa and Mastercard numbers are encrypted in the browser before they leave the phone, and ZimSwitch cards go straight into the acquirer's own form. Every script on those pages is pinned and monitored, as PCI DSS 4.0 asks.
ZIMRA. We run the fiscal device, keep its certificate current, open the fiscal day and submit each invoice. A refund produces the credit note. Your receipts carry a fiscal reference a customer can verify.
Credentials. Provider keys live with the gateway. A terminal holds a device ID and nothing else. Production and sandbox are separate estates with separate keys, so a test can never touch real money.
Who you are. Every business is reviewed, with company documents, directors and bank details, before a payment profile is approved. Changes, approvals and refunds are written to an audit trail your administrators can read.
Pricing
Fees depend on what you sell, how much, and which rails your customers use, so we agree them with you rather than publish one number for everyone.
- Transactions
- A fee per payment, agreed with you per method. You see the fee before a charge is submitted.
- Terminals
- Rented per device, billed daily, weekly, monthly or yearly. Returned devices stop billing.
- Payouts
- Included. Move your balance to your bank account when you choose.
- Sandbox
- Free, for as long as you need it.
- Account
- No monthly fee for the merchant portal, team seats or reports.
Questions we get asked
Do I need a developer?
No. You can create payment links in the merchant portal and send them by WhatsApp or email, and terminals arrive ready to use. The API and SDK are there when you want the checkout inside your own website or app.
How do I know a mobile-money payment went through?
The payment starts as Pending while the customer approves it on their phone. We keep checking with EcoCash, InnBucks or O'mari until it is Paid or Failed, then update the portal and call your endpoint. A payment code on a screen is never treated as proof.
Can customers pay by card?
Yes. Visa, Mastercard and ZimSwitch cards are entered on our hosted page. International cards go through 3-D Secure where the issuing bank requires it.
What about ZIMRA fiscalisation?
It is built in. We register a fiscal device for you, submit each eligible sale as a fiscal invoice and issue credit notes for refunds. Receipts from a terminal or the checkout carry the fiscal reference.
Which currencies can I charge in?
US dollars and ZWG. Each payment profile has a currency, and you can run more than one profile under the same account.
Can I try it before I commit?
Yes. The sandbox has the same endpoints as production, with test providers behind them, and it costs nothing.
Open an account this week
Sign up, upload your company documents and bank details, and we review your payment profile. Build against the sandbox in the meantime.
+263 86 8800 8361
3 Falmouth Road, Alexandra Park, Harare, Zimbabwe












