- Home
- Apps
- SaaS Tools
- Opn (Omise) Payment Gateway for Odoo
Illustrative previewA build-to-order Odoo payment provider that connects your checkout to Opn Payments (formerly Omise) for Thai and
Southeast Asian cards, PromptPay QR, internet banking, and the TrueMoney wallet. ECOSIRE builds, installs, and supports it for Odoo 17.0, 18.0, and 19.0.
What is Opn (Omise) Payment Gateway for Odoo?
A build-to-order Odoo payment provider that connects your checkout to Opn Payments (formerly Omise) for Thai and Southeast Asian cards, PromptPay QR, internet banking, and the TrueMoney wallet. ECOSIRE builds, installs, and supports it for Odoo 17.0, 18.0, and 19.0. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Merchants selling in Thailand and wider Southeast Asia lose orders at checkout when their only options are foreign card rails. Local buyers expect PromptPay QR, the TrueMoney wallet, and THB internet banking — the exact tender types Opn Payments (formerly Omise) settles natively. Odoo core ships a payment framework with a handful of providers, but there is no first-party Opn provider, and Odoo does not model asynchronous QR/wallet confirmations, source-based flows, or Opn's webhook event shapes out of the box. The result is manual bank-statement matching, orders stuck in a pending state, and reconciliation gaps between what Opn settled and what Odoo believes it collected.
We build a dedicated Odoo payment provider that extends the native payment.provider and payment.transaction models rather than bolting on a parallel system, so it inherits Odoo's checkout, invoicing, and accounting hooks. A new provider record (code = 'opn') carries your public and secret API keys plus the webhook signing secret, stored on encrypted fields and gated by ir.model.access.csv and record rules so only Accounting/Settings managers can read them. At checkout the OWL/QWeb payment form renders the enabled Opn methods; the server creates an Opn charge or source via the REST API over requests, and for PromptPay it returns the QR payload to a QWeb-rendered template the customer scans. Card flows carry the 3-D Secure redirect through Odoo's standard return controller.
Because PromptPay, TrueMoney, and internet-banking payments confirm asynchronously, the module exposes a signed webhook controller that verifies each Opn event, maps charge.complete, charge.failed, and refund events onto the transaction state machine (_set_done, _set_pending, _set_canceled), and is idempotent against Opn's event id so retried deliveries never double-post. A scheduled action (ir.cron) polls any transaction still pending past a threshold and reconciles it against the Opn charge, closing the gap when a webhook is missed. Refunds initiated from the Odoo credit-note flow call the Opn refund API and write the returned refund id back to the transaction for audit. THB is the primary currency, with SGD and JPY handled per Opn's supported set, and amounts are converted to the correct minor-unit (satang) representation Opn expects.
This is a build-to-order engagement, not an instant apps.odoo.com download. After a short scoping call we confirm which methods you need (cards, PromptPay, internet banking, TrueMoney), your Odoo edition and version (17.0/18.0/19.0, Community or Enterprise), and your accounting/journal setup. We then build against your exact configuration, run UAT on a staging database with Opn test keys, and hand over installable source, a git repository, and documentation. Typical delivery is one working week from confirmed scope, and every path is tested end-to-end with live-mode keys before go-live.
What you get
- Installable Odoo module source built for your exact version (17.0, 18.0, or 19.0) and edition (Community or Enterprise)
- Installation and configuration on your environment, including Opn API keys, webhook endpoint registration, and enabled payment methods
- UAT on a staging database using Opn test keys, covering card 3DS, PromptPay, TrueMoney, refund, and webhook reconciliation, with a documented rollback plan
- Technical documentation: architecture, model/field reference, webhook event mapping, cron behavior, and security model
- End-user and administrator guide plus a live training session for your finance/operations team
- Private git repository handover with full commit history and tagged release
- Post-go-live support window for defect fixes and configuration adjustments
- Go-live checklist and switch-to-live-keys runbook, executed with your team
Who this is for
Thai e-commerce merchant on Opn
Runs Odoo eCommerce or the Sales portal for a Thailand-based store and needs PromptPay and card checkout via their existing Opn (Omise) account so local buyers can pay without leaving the site.
SEA finance/operations manager
Owns reconciliation and refunds across THB/SGD/JPY. Needs Opn settlements to match Odoo invoices automatically, webhook-driven status updates, and refunds issued from the credit-note flow rather than the Opn dashboard.
Odoo partner or in-house developer
Wants a clean provider that extends `payment.provider`/`payment.transaction` with proper access rules and a git handover, not a fragile fork, so it survives version upgrades and can be maintained internally.
Omnichannel retailer adding a wallet
Sells via web and POS-adjacent channels and wants to add TrueMoney and internet-banking options at online checkout, with idempotent webhook handling so asynchronous confirmations stay consistent.
How Opn (Omise) Payment Gateway for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Opn/Omise coverage | Purpose-built Opn provider: cards, PromptPay, internet banking, TrueMoney | Whatever you scope and build yourself | Often cards-only or a subset, gaps on wallets/QR | No Opn provider at all |
| Async QR/wallet confirmation | Signed, idempotent webhook + cron self-heal for pending charges | Must design the state machine and idempotency yourself | Varies; idempotency and cron reconciliation often missing | No asynchronous source/webhook handling built in |
| Refunds | Driven from Odoo credit-note, refund id persisted for audit | Depends on your build effort | Sometimes dashboard-only, not Odoo-native | Not applicable — no provider |
| Odoo version fit | Built for your exact 17.0/18.0/19.0 + Community/Enterprise | You maintain version compatibility | May lag new Odoo releases | Ships with the version but no Opn support |
| Security model | Encrypted keys, ir.model.access.csv + record rules, no card storage | Your responsibility to get right | Inconsistent access controls across vendors | N/A |
| Reconciliation to accounting | Transactions matched to invoices/SOs, THB satang-correct amounts | You wire the accounting hooks | Basic; edge cases often unhandled | Manual bank-statement matching |
| Support & handover | Post-go-live window + full git repo + training | Internal only | Ticket-based, no source access typically | Community forums only |
| Time to production | one working week build-to-order, UAT on staging first | Unpredictable, depends on internal capacity | Fast install but rework to fit your flow | Not achievable without development |
Frequently Asked Questions about Opn (Omise) Payment Gateway
How long does delivery take?
This is a build-to-order module, so we start from a short scoping call to confirm your methods, Odoo version, and accounting setup. Typical delivery is one working week from confirmed scope, including UAT on a staging database before go-live. Tighter scopes (cards + PromptPay only) land faster; broader ones with custom reconciliation reporting sit at the upper end.
Which Odoo versions and editions do you support?
We build for Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. The provider extends the native `payment.provider`/`payment.transaction` framework, which exists in Community, so no Enterprise dependency is required for the payment flow itself.
How are updates and ongoing support handled?
Every engagement includes a post-go-live support window for defect fixes and configuration adjustments. Because you receive the full git repository, your team can maintain it, and we offer version-upgrade and enhancement work (new methods, custom reconciliation reports) as a follow-on when Odoo releases a new version or Opn changes an API.
Which payment methods are covered?
Cards (with 3-D Secure), PromptPay QR, Thai internet banking, and the TrueMoney wallet, subject to what your Opn account has enabled. During scoping we confirm exactly which methods to surface at checkout and configure them per provider.
How does refund and reconciliation work?
Refunds are driven from Odoo's credit-note flow, which calls the Opn refund API and writes the refund id back to the transaction. Reconciliation is webhook-driven with an idempotent event handler, backed by an `ir.cron` job that re-queries Opn for any transaction stuck pending, so a missed webhook self-heals instead of leaving an order in limbo.
Do you store card data in Odoo?
No. Sensitive card details are handled by Opn's PCI-compliant flows (tokens/sources and the hosted 3DS step); Odoo stores the Opn charge/source references, transaction state, and refund ids. API keys and the webhook secret are stored on the provider record and restricted via `ir.model.access.csv` and record rules to Settings/Accounting managers.
Can you migrate us from an existing manual or partial setup?
Yes. If you currently reconcile Opn settlements by hand or use a partial integration, we map your existing journals and payment methods during scoping and stage the new provider alongside the old one, cut over on staging under UAT, and keep a rollback plan so production is never left in a broken state.
Related Modules

Open HRMS Core Suite
One HRMS add-on for Odoo HR: loans, advances, appraisals, insurance, shifts and exit process. Built, installed and supported by ECOSIRE.

Overtime Rules & Calculation
Configure weekday, weekend and holiday overtime rules and auto-compute overtime hours from attendance in Odoo 17/18/19.

Pago por Redsys / Bizum
A made-to-order Odoo payment acquirer that adds Spanish Redsys card and Bizum mobile payment flows to your checkout and Sales/Invoicing. ECOSIRE scopes, builds, installs, and supports it — it is not an off-the-shelf download.
Opn (Omise) Payment Gateway
A build-to-order Odoo payment provider that connects your checkout to Opn Payments (formerly Omise) for Thai and Southeast Asian cards, PromptPay QR, internet banking, and the TrueMoney wallet. ECOSIRE builds, installs, and supports it for Odoo 17.0, 18.0, and 19.0.
- Native `payment.provider` extension with `code = 'opn'`, so checkout, e-commerce, invoicing and Sales portal payment links all work without a parallel payment stack
- Opn charge and source creation via the REST API, with THB amounts correctly serialized to minor units (satang) and currency validation against Opn's supported set
- PromptPay QR checkout rendered through a QWeb template, with the source payload displayed for the customer to scan and an asynchronous confirmation flow
- TrueMoney wallet payment method wired through Opn source objects, mapped to the Odoo transaction state machine
