A build-to-order base module that wires M-PESA Express (STK Push) into Odoo as a first-class payment provider for both e-commerce checkout and Point of Sale. ECOSIRE scopes, builds, installs, and supports it — this is not an off-the-shelf download. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $249.00 USD; request a quote for a scoped proposal.
ایپ مینی فیسٹ
آپ کے ورک فلو کے مطابق تیار کردہ
A build-to-order base module that wires M-PESA Express (STK Push) into Odoo as a first-class payment provider for both e-commerce checkout and Point of Sale. ECOSIRE scopes, builds, installs, and supports it — this is not an off-the-shelf download.
خود سیٹ اپ کی ضرورت نہیں — ایک کام کرنے والی ایپ جو ECOSIRE بناتا، انسٹال اور سپورٹ کرتا ہے۔
ایک بار کی تعمیر کی قیمت سے آغاز کریں۔ آغاز پر ہم آپ کے ساتھ مل کر دائرہ کار طے کرتے ہیں۔
ECOSIRE اسے آپ کے Odoo پر بناتا، ترتیب دیتا اور انسٹال کرتا ہے۔
آپ تقریباً 2–4 ہفتوں میں لائیو ہو جاتے ہیں، لانچ کے بعد معاونت کی مدت کے ساتھ۔
If you collect mobile-money payments today, the reconciliation gap is where the pain lives. A customer pays on their phone, a confirmation arrives in a separate portal or by SMS, and someone re-keys the amount and reference into Odoo by hand — or worse, marks a sales order paid on trust and chases the mismatch at month-end. Odoo core ships a generic payment provider framework and a pos.payment.method, but neither speaks the STK Push (prompt-on-phone) flow natively: there is no built-in provider that initiates a push request, waits on an asynchronous result callback, verifies the operator reference, and posts the payment against the right sale.order, pos.order, or account.move automatically. That last-mile automation is exactly what teams end up doing by hand, and it is what this base module removes.
We build a proper Odoo payment provider that extends the standard payment.provider and payment.transaction models so M-PESA Express behaves like any other acquirer in your database — configurable per company, per currency, in test or live mode, with credentials stored on the provider record (encrypted) rather than hard-coded. On the e-commerce and invoice-portal side, checkout triggers an STK Push to the shopper's number; the module opens a payment.transaction in pending, and a secured controller endpoint receives the operator's asynchronous result callback, validates it (amount, currency, reference and a shared-secret/signature check), then transitions the transaction to done or error and lets Odoo's native flow confirm the order and post the journal entry. On the POS side we register a custom pos.payment.method with an OWL-based payment line UI so a cashier can send the prompt, see live push/poll status at the terminal, and cancel or retry — the session closes cleanly because the payment is a real pos.payment tied to a verified transaction, not a manual note.
Under the hood the integration is built to hold up in production. Outbound calls (access-token retrieval, STK push initiate, status query) run through a small service layer with timeout, retry and idempotency handling so a dropped network response never double-charges or double-posts; every request and callback is written to a dedicated log model for audit and dispute resolution. Access is governed by ir.model.access.csv plus record rules so only Payment/POS managers see credentials and transaction internals, and the callback controller is CSRF-exempt but signature-gated. The provider is delivered against your target Odoo line — 17.0, 18.0 or 19.0 — and respects the Community vs Enterprise split (works on Community point_of_sale and website_sale; Enterprise-only touchpoints are only wired if your edition has them). Because it is a base module, it exposes clean extension hooks (overridable methods on the transaction and provider, plus the JSON/XML-RPC surface) so future add-ons — bill/paybill vs buy-goods flows, reversals, C2B/B2C, scheduled reconciliation via an ir.cron automated action — layer on without a rewrite.
Delivery is build-to-order: nothing is pre-downloaded. After a short scoping call we confirm your Odoo version and edition, sandbox vs production credentials, the currencies and companies in scope, and whether you need POS, e-commerce, or both. We build against a staging copy of your database, run UAT with you (test-mode STK pushes end to end), then install to production with a rollback plan and hand over the git repository. Typical delivery is 2–4 weeks from confirmed scope. Pricing starts from $249 (indicative, single-company base scope covering one Odoo edition and the sandbox integration); multi-company or multi-currency setups, additional flows (buy-goods vs paybill, refunds/reversals, B2C payouts), deeper localization, and historical payment data migration increase the quoted scope.
Runs Point of Sale in Odoo and wants cashiers to trigger a phone prompt and see it confirm at the terminal, so shift close reconciles without manual mobile-money entries.
Sells via Odoo e-commerce or the invoice portal and needs checkout to push a payment prompt, auto-confirm the order on a verified callback, and post the journal entry cleanly.
Owns month-end and wants every mobile-money receipt matched to its order and journal entry automatically, with an auditable log for disputes instead of re-keyed references.
Needs a maintainable base provider with clean extension hooks and the RPC surface, delivered against their edition, so future flows (reversals, payouts, paybill vs buy-goods) layer on without a rewrite.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| How you get it | Built to order for your database, then installed and supported by us | You brief and manage an in-house or freelance build | Instant download, then you self-configure and adapt | |
| STK Push + callback handling | Signature-gated callback, validation, retry and idempotency built in | Depends entirely on your developer's rigor | Often present but you inherit its assumptions and edge cases | |
| POS integration | Custom `pos.payment.method` with OWL live-status payment line | Must be designed and built from scratch | May be e-commerce-only or a separate paid add-on | |
| Version & edition fit | Targeted to your 17.0/18.0/19.0 and Community/Enterprise | Whatever you specify and test | Pinned to the versions the vendor chose to publish | |
| Reconciliation & audit | Auto-posts to the source order; dedicated request/callback log model | Only if you build the logging and matching yourself | Varies; audit logging is often thin | |
| Extensibility | Documented hooks + RPC surface for reversals/payouts/paybill later | As clean as your own architecture | Bounded by the vendor's code you cannot see roadmap for | |
| Ongoing support | Post-go-live window plus optional upgrade engagements | You own all maintenance and upgrades | Ticket-based, shared queue, no context on your setup | |
| Total cost shape | Indicative from $249, fixed quote after scoping | Unbounded developer time and risk | Low sticker price, hidden config/adaptation cost |
No. This is a build-to-order module. ECOSIRE builds it against your specific Odoo version, edition, and payment configuration, then installs and supports it. There is no instant download — you request a quotation and we scope it with you first.
Typical delivery is 2–4 weeks from confirmed scope. The clock starts once we have agreed the Odoo version and edition, sandbox and production credentials, currencies and companies in scope, and whether you need POS, e-commerce, or both. Larger multi-company or multi-flow builds sit at the upper end of that range.
Pricing starts from $249 as an indicative single-company base scope. It is not a fixed price: after a short scoping call we give you a firm fixed quote. Drivers that move the number include multi-company/multi-currency, extra flows (buy-goods vs paybill, refunds/reversals, payouts), localization depth, and any historical payment-data migration.
Every build includes a post-go-live support window for defect fixes and configuration adjustments. Beyond that we offer ongoing support and version-upgrade work (for example moving your build from 18.0 to 19.0) as a separate engagement, since the operator's API and Odoo's payment framework both evolve.
We build against Odoo 17.0, 18.0, and 19.0. The provider and e-commerce flow work on Community (`point_of_sale`, `website_sale`); where your edition is Enterprise we only wire Enterprise-only touchpoints that actually exist in your database. We confirm your exact version and edition during scoping.
Yes. You supply your own sandbox and production credentials (consumer key/secret, shortcode, passkey). They are stored encrypted on the Odoo provider record — never hard-coded — and we run UAT against the sandbox before switching to production. We can guide your team through obtaining and rotating them.
Yes. The base module covers a custom `pos.payment.method` for the counter and the standard `payment.transaction` flow for `website_sale`/invoice-portal checkout. You can commission one or both; the shared provider record and callback layer are reused across them.
A build-to-order base module that wires M-PESA Express (STK Push) into Odoo as a first-class payment provider for both e-commerce checkout and Point of Sale. ECOSIRE scopes, builds, installs, and supports it — this is not an off-the-shelf download.