A build-to-order Odoo payment provider that aggregates Finnish online banking, cards, and wallets through Paytrail, with server-side HMAC signature verification, refund support, and EUR localization. ECOSIRE builds, installs, and supports it after you request a quotation. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $199.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo payment provider that aggregates Finnish online banking, cards, and wallets through Paytrail, with server-side HMAC signature verification, refund support, and EUR localization. ECOSIRE builds, installs, and supports it after you request a quotation.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
Finnish shoppers overwhelmingly expect to pay by their own bank's online payment button (verkkomaksu) — OP, Nordea, Danske, S-Pankki, Aktia and the rest — alongside cards and mobile wallets like MobilePay. Paytrail aggregates all of those methods behind a single integration, but Odoo core ships no Paytrail payment provider. Out of the box you get Stripe, Adyen, PayPal, and a handful of others, none of which surface the Finnish bank-button experience your customers look for at checkout. The usual workarounds — pushing buyers to a manual bank transfer, or bolting on a generic redirect — cost you conversions and leave settlement reconciliation to spreadsheets.
New `payment.provider` record with a dedicated `code`, state (test/enabled/disabled), and Paytrail-specific credential fields (merchant ID, secret key) surfaced in Settings, not hardcoded
Live aggregation of Finnish payment methods — bank buttons (OP, Nordea, Danske, S-Pankki, Aktia and others), card, and wallets like MobilePay — fetched from Paytrail's payment-groups response
Server-side HMAC signature verification on every return and webhook: the controller recomputes the `checkout-*` signature and rejects mismatches before confirming any `payment.transaction`
Redirect + return-controller flow integrated with Odoo eCommerce (`website_sale`) and the invoice/sales `Pay Now` portal checkout
Full and partial refund support from the transaction form, calling Paytrail's refund endpoint with its own verified callback
EUR handling with correct minor-unit (cent) conversion and currency guard so the provider only offers EUR transactions
ECOSIRE builds a first-class Odoo payment provider (payment.provider / payment.transaction) that speaks Paytrail's aggregation API natively. We register a new provider record with its own code, credentials fields (merchant ID and secret key stored via Odoo settings, never hardcoded), and a payment flow that requests Paytrail's available payment groups so your customers see the live list of bank buttons, card, and wallet options rendered inside the standard eCommerce and invoicing checkout. On submission we create a Paytrail payment, redirect the buyer to complete it, and land them back on Odoo's return controller.
The security-critical part is the callback. Every Paytrail response and webhook carries an HMAC signature over the checkout-* header set and body; our controller recomputes that signature server-side with your secret key and rejects any request whose signature does not match before a single payment.transaction is confirmed. That closes the door on spoofed "paid" callbacks — a transaction only moves to done on a verified, authentic success signal. Refunds are wired through Paytrail's refund endpoint from the transaction form, so a full or partial refund initiated in Odoo calls back with its own verified confirmation. Amounts are handled in EUR with correct minor-unit conversion, and the provider is delivered for Odoo 17.0, 18.0, or 19.0 with the API and controller differences between those versions handled per target.
Because this is BUILD-TO-ORDER, you are not downloading a pre-built app. After you request a quotation we run a short scoping call to confirm your Odoo version and edition (Community or Enterprise), which Paytrail account and methods you need, and how you want settlement and refunds to behave. Typical delivery is 2-4 weeks from confirmed scope. You receive the installable source for your exact version, UAT on a staging database against Paytrail's test credentials, and a defined post-go-live support window — no guesswork, no fabricated benchmarks.
Runs an Odoo eCommerce store selling to Finnish consumers who expect their own bank's payment button at checkout. Needs Paytrail's aggregated methods rendered natively so buyers aren't dropped to manual bank transfer.
Owns settlement reconciliation and refunds. Wants Paytrail transactions and refunds handled inside Odoo with the stamp/reference stored on each `payment.transaction` for matching against Paytrail settlement reports.
Needs a correctly built, HMAC-verified provider they can install, read, and maintain across 17/18/19 — with source, docs, and a git handover rather than a black-box binary.
Focused on reducing checkout drop-off for Finnish shoppers. Needs the live bank-button list, cards, and wallets like MobilePay presented seamlessly in the standard Odoo checkout.
Buy the license on ecosire.com and download the Paytrail Payment Gateway for Odoo (Finland) module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Paytrail Payment Gateway for Odoo (Finland), and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Finnish bank buttons + wallets | Live Paytrail aggregation (OP, Nordea, cards, MobilePay) in native checkout | Possible but you build the whole method list yourself | Varies; often stale or partial method coverage | |
| HMAC signature verification | Server-side recompute, mismatches rejected before confirm | Depends on the developer's diligence | Usually present but hard to audit in a binary | |
| Refunds from Odoo | Full + partial via Paytrail refund endpoint, verified callback | Extra scope, often deferred | Sometimes card-only or manual | |
| Odoo version coverage | Built for your exact 17/18/19, Community or Enterprise | Whatever you target and maintain | Often lags new Odoo releases | |
| Source code + git handover | Full source, tagged release, commit history | You own it by definition | Frequently obfuscated or license-locked | |
| Support model | Defined post-go-live window + scoped follow-ons | You staff it internally | Generic vendor tickets, variable response | |
| Reconciliation reference | Paytrail stamp + transaction id stored per transaction | Must design the mapping yourself | Inconsistent field storage | |
| Time to production | 2-4 weeks from confirmed scope, UAT + rollback plan | Open-ended build and test cycle | Fast install but integration gaps surface later |
This is build-to-order, so there is no instant download. After you request a quotation we run a short scoping call, then typical delivery is 2-4 weeks from confirmed scope, depending on your Odoo version, edition, and the exact Paytrail methods and refund behavior you need.
A Paytrail merchant account with your merchant ID and secret key. For UAT we use Paytrail's normal test credentials; you switch the provider to your live credentials at go-live. We also register the webhook/return URLs in your Paytrail dashboard as part of installation.
Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. The payment-provider framework exists in Community, so this works without Enterprise; we build for your exact target version and handle the API and controller differences between them.
Every Paytrail return and webhook is HMAC-signed. Our controller recomputes the signature server-side with your secret key over the `checkout-*` parameters and rejects any request that doesn't match before a `payment.transaction` is ever confirmed. A transaction only reaches `done` on an authentic, verified success signal.
Yes. Full and partial refunds can be initiated from the transaction record in Odoo, which calls Paytrail's refund endpoint and processes the verified callback. The Paytrail stamp and transaction reference are stored on the record so refunds and settlements reconcile cleanly.
You get a defined post-go-live support window for defect fixes and configuration help, plus the full git repository so your team can maintain it. Version upgrades (for example moving from 18.0 to 19.0) or new Paytrail features can be scoped as follow-on work.
Yes. The provider is built on Odoo's standard `payment.provider`/`payment.transaction` models, so transactions can be created and queried over Odoo's JSON-RPC/XML-RPC API and driven from a custom or headless front end while reusing the same verified callback flow.
A build-to-order Odoo payment provider that aggregates Finnish online banking, cards, and wallets through Paytrail, with server-side HMAC signature verification, refund support, and EUR localization. ECOSIRE builds, installs, and supports it after you request a quotation.