MTN Mobile Money POS Payments
Take MTN MoMo at the till — two ways, one popup. Push a RequestToPay PIN prompt to the customer’s phone, or show a MoMoPay scan-to-pay QR they settle from the MoMo app. Confirm the payer’s name before you charge, recover a payment that timed out, refund and check your balance — all in one app that carries its own MTN connection. Nothing else to buy.
Ways to pay in one popup — a RequestToPay PIN push to the phone, or a MoMoPay scan-to-pay QR the customer settles from the MTN MoMo app. The till watches both to the same order.
Order per payment — every MoMo transaction is single-use, claimed atomically for exactly one sale. A dropped network never settles it twice, and a cashier can never forge one.
Unconfirmed payments marked paid — the till never trusts a callback as proof; it re-queries MTN until MTN itself confirms, with a one-minute backstop job.
One yellow popup. Push or scan — both land on the sale.
Real screens from the app running on Odoo — the till popup, the MoMoPay QR, the back office and the transaction ledger.

RequestToPay — push a PIN prompt to the phone
Pick MTN MoMo, type the number with the market dial-code shown, and send. The customer approves with their MoMo PIN; a live timeline runs Prompt sent → Awaiting PIN → Confirmed, and the till re-queries MTN every few seconds until it is really paid — then closes the sale on its own.

Every unit, logged and sliceable
Push and QR payments land in one MTN MoMo log — date, phone, amount, reference, financial transaction id, channel and status — colour-coded and totalled, with list, pivot and graph views for reconciliation.
Open any panel — nothing hidden, nothing oversold
Every claim is code-verified and honest about what MTN’s public MoMo API does — and doesn’t — expose.
RequestToPay PIN push
POST /collection/v1_0/requesttopay) — the direct M-Pesa STK-Push equivalent. The customer approves on their handset.MoMoPay scan-to-pay QR
Payer-name & active check
Live status timeline
“Already paid?” recovery pane
Market-aware phone entry
Optional SMS receipt
Exact-decimal amounts
Single-use receipts (atomic claim)
Same-order idempotent re-claim
Double-prompt guard
Currency guard
No cross-till fallback
Refunds with audit trail
POST /disbursement/v1_0/refund) with a required reason, atomic reservation against double-refund, status polling and a full chatter record.Collections wallet balance
GET /collection/v1_0/account/balance), stamped with the time it was fetched.MoMoPay invoice lifecycle
Transaction ledger & analytics
Manual-review flags
Cashier-safe by construction
Callbacks are never proof
Fail-closed status mapping
Multi-company & per-company rules
Odoo 17, 18 & 19 · Community & Enterprise
From install to first payment in one afternoon

Install the app — an MTN Mobile Money menu appears. Add an account, choose your market, paste your API User, API Key and Subscription Key, and hit Test Connection.

Create a POS payment method with terminal MTN Mobile Money, point it at your account, add it to your register. Open a session and collect — push or QR, every payment lands in the log.
We don’t just sell the app — we get you live on MTN MoMo.
Buying MTN Mobile Money POS Payments includes hands-on implementation by our engineers: installed on your Odoo, connected to your MTN partner account, configured for your market, and proven with a real payment before we hand it over. No hourly fees, no “figure it out yourself.”
Run more than MTN? The Africa Mobile Money line
Each rail is its own app so you pay only for the channel you use. Run several rails? The multi-rail apps put M-Pesa, MTN and Airtel in one till.
Common questions
Do I need to buy anything else to take MTN MoMo?
How does the MoMoPay QR actually work?
Which MTN API and credentials does it use?
X-Target-Environment set to your country. Refunds additionally use the Disbursements product. Setup help is included.Can a cashier see my credentials or fake a payment?
What if a callback is missed?
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 2361 |
| Technical Name |
aminitech_mtn_pos |
| License | OPL-1 |
| Website | https://www.aminitechsolutions.com |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module