Saltar al contenido principal
Los detalles del producto se muestran en inglés. Próximamente traducciones.
M-Pesa Payment Gateway for Odoo (Daraja) — Accept M-Pesa STK Push and C2B mobile money on Odoo 17/18/19 with auto reconciliat — 1/1Vista previa ilustrativa

Accept M-Pesa STK Push and C2B mobile money on Odoo 17/18/19 with auto reconciliation

— built, installed and supported by ECOSIRE.

¿Qué es M-Pesa Payment Gateway for Odoo (Daraja)?

Accept M-Pesa STK Push and C2B mobile money on Odoo 17/18/19 with auto reconciliation — built, installed and supported by ECOSIRE. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Características clave

Safaricom Daraja STK Push (Lipa na M-Pesa Online) — customer approves payment with their M-Pesa PIN, no card details required
M-Pesa registered as a native Odoo payment provider (payment.provider / payment.transaction) so it works in eCommerce checkout, Customer Portal, Sales and Invoicing
C2B Paybill and Till Number support with Daraja validation and confirmation callbacks for counter and offline payments
B2C payout support with result and timeout callback endpoints for refunds, disbursements and supplier payments
Automatic reconciliation — confirmed M-Pesa receipts matched to the originating order/invoice and posted to the configured journal, eliminating manual statement keying
Refund and reversal handling through the Daraja Reversal API directly from the Odoo transaction, preserving the audit trail
Secure Daraja OAuth token lifecycle: automatic token minting and refresh via scheduled cron, with credentials stored per-company and access-restricted
Signature/shortcode validation on all inbound callbacks (STK, C2B, B2C) so only authentic Safaricom requests mutate transaction state
KES localization: currency, decimal handling, phone/MSISDN normalization (2547XXXXXXXX) and East Africa timezone-aware timestamps
Full transaction ledger storing CheckoutRequestID, MerchantRequestID, M-Pesa receipt number, MSISDN and raw callback payload for traceability
Sandbox and production toggle with separate shortcodes/keys so you validate end-to-end before going live
Automated retry and stale-transaction cleanup via Odoo automated actions and cron for callbacks that arrive late or fail
QWeb payment/receipt templates and status notifications for buyers, plus branded confirmation on the portal
ir.model.access.csv + record rules locking raw logs, keys and callback data to authorized roles only
Transactions exposed over Odoo XML-RPC / JSON-RPC API for downstream automation and external reconciliation
Multi-shortcode / multi-company ready — route different stores or entities to their own Paybill/Till

Hecho a medida, listo para ti

Sin configuración por tu cuenta: una app funcional creada, instalada y con soporte de ECOSIRE.

  1. 1

    Haces el pedido

    Empieza con un precio único de desarrollo. Definimos el alcance contigo en el arranque.

  2. 2

    Creamos e instalamos

    ECOSIRE la crea, la configura y la instala en tu Odoo.

  3. 3

    En marcha + soporte

    Sales en vivo en aproximadamente una semana laboral, con dos semanas de soporte tras la puesta en marcha. Los defectos en el código que entregamos se corrigen sin coste.

Especificaciones técnicas

Compatibilidad con Odoo
Odoo 17, Odoo 18, Odoo 19
Ediciones
Enterprise y Community
Licencia
La licencia requiere confirmación
Requisito de Python
Python 3.10+
Base de datos
PostgreSQL 12+

Sobre este producto

Give your Kenyan and East African customers the payment method they actually reach for — M-Pesa — right inside Odoo. This is a build-to-order module that ECOSIRE designs, develops, installs and supports for your specific Odoo deployment. It is not an instant apps.odoo.com download: after purchase we scope your Paybill/Till setup, build against the live Safaricom Daraja API, deploy to your environment, and hand over a maintained, documented payment provider. Typical delivery is one working week.

Once live, the module registers M-Pesa as a first-class Odoo payment provider (payment.provider / payment.transaction), so it works natively in eCommerce checkout, the Customer Portal, Sales Orders and Invoicing. Buyers trigger an STK Push to their phone, approve with their M-Pesa PIN, and the transaction is confirmed back to Odoo automatically via secure Daraja callbacks — no manual "have you paid yet?" follow-ups. For counter and offline sales, C2B Paybill/Till payments are captured and matched too.

The engineering is real Odoo, not a bolt-on. We add proper models extending payment.transaction with fields for the CheckoutRequestID, MerchantRequestID, M-Pesa receipt number and phone MSISDN; compute helpers with @api.depends keep reconciliation state in sync; access is locked down with ir.model.access.csv plus record rules so raw callback logs and credentials stay admin-only. Daraja OAuth token handling, STK Push, C2B validation/confirmation and B2C result/timeout endpoints are exposed as controllers with signature and shortcode validation. Automated actions and scheduled crons handle token refresh, callback retries and stale-transaction cleanup. Everything ships as a versioned addon with a clean __manifest__.py, QWeb-templated receipts, and KES currency/localization wired in.

Because it lives in Odoo's native payment layer, reconciliation is automatic: confirmed M-Pesa receipts are matched to the originating order or invoice and posted to the configured bank/suspense journal, so your finance team stops hand-keying Safaricom statements. Refunds and reversals are handled through the Daraja Reversal API from within Odoo, keeping the audit trail in one system. The same transactions are reachable over Odoo's XML-RPC / JSON-RPC API for any downstream automation you run.

We deliver it for Odoo 17, 18 and 19, Community or Enterprise, on Odoo.sh, on-premise or ECOSIRE-managed hosting. You get the source, the configuration, documentation, a training session and a support window — and a team that already understands both Odoo internals and Safaricom's Daraja quirks (sandbox vs production shortcodes, callback URL whitelisting, tokenised OAuth, and the difference between C2B and STK confirmation flows).

lo que obtienes

  • Complete, versioned Odoo addon source (models, controllers, views, security, data) built for your Odoo 17, 18 or 19 — Community or Enterprise
  • Live Daraja integration configured end-to-end: OAuth credentials, STK Push, C2B and B2C callback URLs whitelisted and tested in sandbox then production
  • Payment provider, journal and reconciliation configuration wired into your existing chart of accounts and KES currency setup
  • Deployment to your environment (Odoo.sh, on-premise or ECOSIRE-managed hosting) with a documented rollback path
  • Admin and finance-user documentation covering configuration, day-to-day operation, reconciliation and refund/reversal procedures
  • A live training/handover session for your team plus a recording
  • Post-launch support window for bug fixes, callback issues and Daraja/Odoo-version compatibility, with an SLA agreed at scoping
  • Test evidence: sandbox and production transaction walkthroughs (STK approve, C2B match, refund/reversal) demonstrating the flows

¿Para quién es esto?

Kenyan eCommerce merchant on Odoo

Runs an Odoo Website/eCommerce store and needs shoppers to pay by M-Pesa STK Push at checkout instead of abandoning carts over card friction. Wants confirmed payments to auto-update the sales order and invoice.

East African finance / accounts team

Tired of manually reconciling Safaricom Paybill and Till statements against Odoo invoices. Wants every M-Pesa receipt matched, posted to the right journal, and refundable via the Daraja Reversal API without leaving Odoo.

Odoo implementer / IT lead

Responsible for an Odoo 17/18/19 rollout (Community or Enterprise) who needs M-Pesa added as a proper native payment provider — clean models, secured callbacks, cron-managed OAuth — rather than a fragile script, and wants ECOSIRE to build and support it.

Multi-entity retailer with several Paybills/Tills

Operates multiple stores or companies in Odoo and needs each routed to its own M-Pesa shortcode with correct per-company reconciliation and reporting.

Cómo se compara M-Pesa Payment Gateway for Odoo (Daraja)

CriterioECOSIREConstrucción personalizadaCompetidorNativo de Odoo
M-Pesa STK Push + C2B + B2C in one integrationIncluidoApoyo parcialApoyo parcialNo incluido
Native Odoo payment provider (works in checkout, portal, invoicing)IncluidoApoyo parcialApoyo parcialNo incluido
Automatic reconciliation of Paybill/Till to invoicesIncluidoApoyo parcialApoyo parcialNo incluido
Refund/reversal via Daraja Reversal API from OdooIncluidoApoyo parcialNo incluidoNo incluido
Secured, validated callbacks + cron-managed OAuth tokensIncluidoApoyo parcialApoyo parcialNo incluido
Built and tested for your exact Odoo 17/18/19 editionIncluidoIncluidoNo incluidoNo incluido
Deployment, training and handover includedIncluidoNo incluidoNo incluidoNo incluido
Ongoing support and version-compatibility updatesIncluidoNo incluidoApoyo parcialApoyo parcial
KES localization + MSISDN normalization out of the boxIncluidoApoyo parcialApoyo parcialNo incluido

Preguntas frecuentes sobre M-Pesa Payment Gateway

How long does delivery take, and is this an instant download?

This is a build-to-order module, not an instant apps.odoo.com download. After purchase we scope your Paybill/Till setup and Odoo environment, build and test against the Safaricom Daraja API in sandbox, then deploy to production. Typical lead time is one working week depending on complexity, the number of shortcodes, and access to your Daraja and Odoo credentials.

What support and updates are included after go-live?

You get a post-launch support window (agreed at scoping) covering bug fixes, callback/Daraja issues, and compatibility with your Odoo version. We support Odoo 17, 18 and 19; if you upgrade Odoo or Safaricom changes the Daraja API, we handle the compatibility work under the support agreement, and offer ongoing maintenance beyond the initial window.

Which Odoo versions and editions does it work with?

Odoo 17, 18 and 19 — both Community and Enterprise. We build it as a standard addon with a proper __manifest__.py and deploy to Odoo.sh, on-premise, or ECOSIRE-managed hosting. The build is tailored to the exact version and edition you run.

Do I need my own Safaricom Daraja / M-Pesa account?

Yes. You need a Safaricom Daraja developer account and a live Paybill or Till (Lipa na M-Pesa) shortcode with API access. We use your credentials to configure OAuth, STK Push and the C2B/B2C callback URLs — stored securely per-company in Odoo and restricted by record rules. We can guide you through obtaining or activating Daraja access if you don't have it yet.

How does reconciliation and refunding work?

Confirmed M-Pesa receipts arrive via Daraja callbacks and are automatically matched to the originating Odoo order or invoice and posted to your configured journal, so finance stops keying Safaricom statements by hand. Refunds and reversals are initiated from the Odoo transaction using the Daraja Reversal API, keeping the full audit trail — receipt number, MSISDN and request IDs — inside Odoo.

Is it secure, and are the callbacks protected?

Inbound STK, C2B and B2C callbacks are validated (shortcode/signature checks) so only authentic Safaricom requests change transaction state. Daraja OAuth tokens are minted and refreshed via a scheduled cron, credentials and raw callback logs are locked down with ir.model.access.csv plus record rules, and all endpoints run over HTTPS with whitelisted callback URLs.

Solicitar presupuesto

M-Pesa Payment Gateway

Accept M-Pesa STK Push and C2B mobile money on Odoo 17/18/19 with auto reconciliation — built, installed and supported by ECOSIRE.

  • Safaricom Daraja STK Push (Lipa na M-Pesa Online) — customer approves payment with their M-Pesa PIN, no card details required
  • M-Pesa registered as a native Odoo payment provider (payment.provider / payment.transaction) so it works in eCommerce checkout, Customer Portal, Sales and Invoicing
  • C2B Paybill and Till Number support with Daraja validation and confirmation callbacks for counter and offline payments
  • B2C payout support with result and timeout callback endpoints for refunds, disbursements and supplier payments

Solicitar presupuesto

Cuéntanos tus necesidades de M-Pesa Payment Gateway y te enviaremos precios, opciones de licencia y una propuesta a medida, normalmente en un día hábil.

Sin pago ahora. Esto envía una solicitud de presupuesto a nuestro equipo; te responderemos por correo con precios y próximos pasos.