Skip to main content
Opn (Omise) Payment Gateway for Odoo — A build-to-order Odoo payment provider that connects your checkout to Opn Payments (fo — 1/1Illustrative preview

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.

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

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
Card payments with 3-D Secure redirect carried through Odoo's standard payment return controller and status polling
Thai internet-banking (offsite) methods surfaced as selectable checkout options gated per provider configuration
Signed webhook controller that verifies Opn event signatures and maps `charge.complete` / `charge.failed` / refund events onto `_set_done`, `_set_pending`, and `_set_canceled`
Idempotent event handling keyed on the Opn event id, so webhook retries and duplicate deliveries never double-post a transaction or invoice
`ir.cron` reconciliation job that re-queries Opn for transactions stuck pending past a threshold and self-heals missed webhooks
Refund support driven from the Odoo credit-note flow, calling the Opn refund API and persisting the returned refund id on the transaction for audit
API keys and webhook secret stored on the provider record with `ir.model.access.csv` + record rules restricting read access to Settings/Accounting managers
Test-vs-live key separation honoring the provider `state` field (`test` / `enabled`) so staging never touches production charges
Structured logging of every request/response and webhook decision to aid dispute and reconciliation investigations, without persisting raw card data
Automatic Odoo payment-transaction reference generation and matching, keeping Sales Orders and customer invoices reconciled to Opn settlements

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 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

CriterionECOSIRECustom BuildCompetitorOdoo Native
Opn/Omise coveragePurpose-built Opn provider: cards, PromptPay, internet banking, TrueMoneyWhatever you scope and build yourselfOften cards-only or a subset, gaps on wallets/QRNo Opn provider at all
Async QR/wallet confirmationSigned, idempotent webhook + cron self-heal for pending chargesMust design the state machine and idempotency yourselfVaries; idempotency and cron reconciliation often missingNo asynchronous source/webhook handling built in
RefundsDriven from Odoo credit-note, refund id persisted for auditDepends on your build effortSometimes dashboard-only, not Odoo-nativeNot applicable — no provider
Odoo version fitBuilt for your exact 17.0/18.0/19.0 + Community/EnterpriseYou maintain version compatibilityMay lag new Odoo releasesShips with the version but no Opn support
Security modelEncrypted keys, ir.model.access.csv + record rules, no card storageYour responsibility to get rightInconsistent access controls across vendorsN/A
Reconciliation to accountingTransactions matched to invoices/SOs, THB satang-correct amountsYou wire the accounting hooksBasic; edge cases often unhandledManual bank-statement matching
Support & handoverPost-go-live window + full git repo + trainingInternal onlyTicket-based, no source access typicallyCommunity forums only
Time to productionone working week build-to-order, UAT on staging firstUnpredictable, depends on internal capacityFast install but rework to fit your flowNot 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.

Request a quote

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

Request a Quotation

Tell us about your Opn (Omise) Payment Gateway requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.