Integrate Simiz mobile money payments into your Odoo instance (16.0, 17.0, 18.0+). This module follows Odoo’s standard payment.provider architecture for seamless integration with Odoo’s invoicing and e-commerce flows.

Prerequisites

Before you begin, make sure you have:
  • Odoo 16.0 or later (Community or Enterprise)
  • Python 3.9+
  • A Simiz account with API credentials
  • Admin access to your Odoo instance

Installation

1
Download the Module
2
Download the payment_simiz module from the Simiz dashboard or generate it using the plugin generator:
3
pip install simiz
4
Copy to Addons Directory
5
Copy the payment_simiz folder into your Odoo custom addons directory:
6
cp -r payment_simiz /path/to/odoo/custom-addons/
7
Make sure your odoo.conf includes the custom addons path:
8
[options]
addons_path = /path/to/odoo/addons,/path/to/odoo/custom-addons
9
Install the Module
10
  • Navigate to Settings > Activate Developer Mode
  • Go to Apps > Update Apps List
  • Search for “Simiz Payments”
  • Click Install
  • 11
    Configure the Provider
    12
  • Navigate to Invoicing > Configuration > Payment Providers
  • Select Simiz Payments
  • Enter your credentials:
    • API Key: Your Simiz API key (smz_live_* or smz_test_*)
    • Webhook Secret: Your webhook signing secret from the Simiz dashboard
  • Set the provider state to Test Mode (for sandbox) or Enabled (for production)
  • 13
    Configure the Webhook
    14
    In your Simiz dashboard, create a webhook endpoint pointing to:
    15
    https://your-odoo-domain.com/payment/simiz/webhook
    
    16
    Subscribe to the following events:
    17
    EventDescriptiontransaction.createdPayment initiatedtransaction.processingPayment being processedtransaction.completedPayment successfultransaction.failedPayment failedtransaction.cancelledPayment cancelledtransaction.expiredPayment window expiredrefund.createdRefund initiatedrefund.processingRefund being processedrefund.completedRefund successfulrefund.failedRefund failed

    Supported Payment Methods

    MethodCountries
    Orange MoneyCM, SN, CI, ML, BF, NE, GN, CG, CD, MG
    MTN Mobile MoneyCM, CI, GH, UG, RW, ZM, BJ, CG

    Supported Currencies

    CurrencyCodeDecimals
    Central African CFA FrancXAF0
    West African CFA FrancXOF0
    Ghanaian CediGHS2
    Nigerian NairaNGN2
    Kenyan ShillingKES2
    Ugandan ShillingUGX0
    Rwandan FrancRWF0
    Tanzanian ShillingTZS0

    Module Architecture

    The module follows Odoo’s standard payment provider pattern:
    payment_simiz/
    ├── __manifest__.py          # Module manifest
    ├── __init__.py              # Init with install/uninstall hooks
    ├── const.py                 # Constants (currencies, statuses, events)
    ├── models/
    │   ├── __init__.py
    │   ├── payment_provider.py  # payment.provider extension
    │   └── payment_transaction.py  # payment.transaction extension
    ├── controllers/
    │   ├── __init__.py
    │   └── main.py              # Webhook controller
    ├── views/
    │   ├── payment_simiz_templates.xml  # Redirect form
    │   └── payment_provider_views.xml   # Provider config form
    └── data/
        └── payment_provider_data.xml    # Provider data record
    

    Webhook Signature Verification

    All webhook requests are verified using HMAC-SHA256 signatures:
    • Header: X-Simiz-Signature
    • Format: t={timestamp},v1={signature}
    • Algorithm: HMAC-SHA256 of {timestamp}.{payload} using your webhook secret
    • Tolerance: 300 seconds (5 minutes)

    Test Mode

    To test the integration:
    1. Set the provider state to Test Mode in Odoo
    2. Use your sandbox API key (smz_test_*)
    3. The module will automatically use the sandbox API endpoint
    4. Create a test sales order and proceed to payment
    Never use production API keys in test mode. Always use your sandbox credentials (smz_test_*) for testing.

    Troubleshooting

    IssueSolution
    Module not foundVerify the addons path in odoo.conf and update the apps list
    Payment provider not visibleCheck that the module is installed and the provider is not archived
    Webhook signature errorsVerify your webhook secret matches the one in the Simiz dashboard
    Currency not supportedEnsure the currency is activated in Odoo (Invoicing > Configuration > Currencies)
    Payment stuck on pendingCheck the Odoo logs for webhook processing errors

    Next Steps

    Webhook Events

    Learn about all available webhook events and their payloads.

    Sandbox Testing

    Test your integration in the sandbox environment.

    Go-Live Checklist

    Review the checklist before going live with real payments.

    API Reference

    Explore the full Simiz API reference.

    Changelog

    Version history

    VersionDateChanges
    1.0.02026-03-01Initial release — mobile money payments, webhooks, sandbox