Africa Mobile Money Hub
One Odoo app for M-Pesa, MTN MoMo and Airtel Money â collections and payouts, bring-your-own-key
Accept and send mobile money across African markets directly from Odoo. The hub unifies the three dominant rails â Safaricom M-Pesa (Daraja), MTN Mobile Money and Airtel Money â behind one consistent transaction screen, so your team learns a single workflow regardless of provider or country. Every credential is bring-your-own-key (BYOK): you paste your own merchant API keys and nothing is ever sent anywhere except the provider endpoint you configure.
What it does
Collections (request to pay)
Prompt a customer's wallet to pay you: M-Pesa STK Push (Lipa na M-Pesa Online), MTN MoMo request-to-pay and the Airtel merchant payment, all from one button.
Payouts (disbursements)
Send money to a customer or supplier wallet: M-Pesa B2C, MTN MoMo transfer and Airtel disbursement â same screen, same audit trail.
Status polling
Pending transactions are reconciled automatically by a scheduled action that queries each rail for the final SUCCESSFUL / FAILED outcome (M-Pesa STK query, MTN status, Airtel transaction enquiry).
Full API audit log
Every HTTP call is recorded with the operation, URL, status, latency and a redacted request body, so you can troubleshoot a failed payment without exposing secrets.
Key features
- Three rails, one model: M-Pesa, MTN MoMo, Airtel Money.
- Correct provider payloads built to each published API contract.
- M-Pesa STK password = Base64(ShortCode + Passkey + Timestamp), per Daraja.
- MTN X-Reference-Id UUID transaction id and subscription-key headers.
- Airtel X-Country / X-Currency routing headers and national MSISDN.
- Smart MSISDN normalisation (0708â¦, 708â¦, 254708â¦, +254708â¦).
- Currency-aware amount formatting (whole-number KES/UGX vs. decimal GHS).
- Per-provider OAuth / token authentication handled for you.
- Sandbox / production switch with editable endpoint defaults.
- Resilient transport: retries on 5xx, timeouts, structured logging.
Supported rails & markets
| Rail | Collection | Payout | Typical markets |
|---|---|---|---|
| Safaricom M-Pesa (Daraja) | STK Push | B2C payment | Kenya |
| MTN Mobile Money | Request to Pay | Transfer | Uganda, Ghana, Rwanda, Zambia, Cameroon, Côte d'Ivoire and more |
| Airtel Money | Merchant payment | Disbursement | Uganda, Tanzania, Zambia, DR Congo, Nigeria, Malawi and more |
Country profiles ship with the correct mobile-money currency and dialling code. All API base hosts default to the providers' published endpoints and remain fully editable.
How it works
- Add a Provider connection and paste your own merchant API keys.
- Press Test Connection to confirm authentication against the rail.
- Create a Transaction (or use the quick New Request wizard), pick collection or payout, enter the amount and mobile number, then submit.
- Watch the status move from Pending to Successful as the hub polls the rail.
Bring your own keys â your data stays yours
This is a connector, not a payment aggregator. You supply your own Safaricom, MTN and Airtel merchant credentials; they are stored only in your Odoo database, protected by the system group, and transmitted only to the provider endpoint you configure. We are not a payment service provider and never hold funds or accreditation on your behalf.
Requirements
- Odoo 18.0 or 19.0 (Community or Enterprise).
- The Python
requestslibrary (standard in Odoo deployments). - Active merchant accounts and API keys with your chosen mobile money providers.
Support: support@pokutsoft.com
Screenshots
Providers
New Request
Settings
Transactions
Update date: 2026-07-02
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1708 |
| Technical Name |
pay_africa_mobile_money_hub |
| License | OPL-1 |
| Website | https://pokutsoft.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