The payment_coriunder module, packaged separately for Odoo 17, 18 and 19. Drop it in the addons path and enable the provider.
Separate packages for Odoo 17, 18 and 19 — each built against that release rather than shimmed for it. The shopper pays on the Coriunder hosted page and a signature-verified webhook confirms the transaction.
You will be redirected to the Coriunder secure payment page to complete your order.
Installed from Apps like any other Odoo module, configured on the standard Payment Providers form.
Odoo creates the payment transaction and redirects the browser to Coriunder. Card entry and 3-D Secure happen entirely off-platform.
Every webhook is verified with hmac.compare_digest. Invalid or missing signatures are rejected with HTTP 401.
hmac.compare_digest
ILS, USD, EUR, GBP, AUD, CAD, JPY and 18 more. The payment method is hidden at checkout for any currency outside the list.
Reply 000 marks the transaction Done, 553 holds it Pending while 3-D Secure runs, and anything else becomes an Error.
000
553
The 17, 18 and 19 packages ship without sandbox credentials and reject Odoo Test mode, so a live provider cannot quietly run against a test endpoint.
Separate builds for Odoo 17, 18 and 19 on Python 3.10+, rather than one module trying to satisfy three releases.
The full flow, from the Pay button to the payment status page.
Odoo creates a payment.transaction and moves it from draft to pending.
payment.transaction
The browser is sent to the Coriunder hosted payment page, where card details are entered and 3-D Secure runs if enabled.
A POST to /payment/coriunder/webhook carries the reply code, transaction reference and signature.
/payment/coriunder/webhook
Signature verified: 000 becomes Done, 553 stays Pending, anything else becomes Error, and the customer sees the payment status page.
The webhook has to be publicly reachable for Coriunder to call it, so every request is treated as untrusted: the signature is verified with a constant-time comparison before any transaction state is touched.
The module declares a deliberately narrow scope. Immediate sale and capture only — authorization, manual capture, refunds, tokenization and express checkout are not declared, so Odoo will not offer them.
Packages are published per Odoo major version.
payment_coriunder
POST https://your-odoo-domain/payment/coriunder/webhook
Copy, install, configure — the standard Odoo module path.
Place the payment_coriunder directory into your Odoo addons path and restart the server.
Go to Apps, search for Coriunder and click Install.
Open Accounting → Configuration → Payment Providers → Coriunder and enter the live Merchant ID and Personal Hash.
Confirm the HTTPS hosted-payment URL, select a display language, enable the provider, and point Coriunder at your webhook URL.
Odoo 17, 18 and 19, each with its own package built against that release. A legacy single-version copy is kept under odoo/old/.
odoo/old/
No. The packages contain no sandbox credentials and reject Odoo Test mode by design.
25 currencies including ILS, USD, EUR, GBP, AUD, CAD and JPY. For any other currency the payment method is hidden at checkout.
No. The module declares immediate sale and capture only. Authorization, manual capture, refunds, tokenization and express checkout are not declared.
Yes. It is public because Coriunder must reach it, but every request is signature-verified and unsigned requests are rejected with HTTP 401.
The standard Odoo provider image on the payment provider form. Nothing ships with the module and no fallback is used.
Download the package matching your Odoo version and connect your instance to Coriunder.