Open-Source Odoo 19 Payment Provider: Raiffeisen RaiAccept
As part of AdriaMart's technical preparation, we built an Odoo 19 module that connects the Odoo e-commerce platform to the Raiffeisen Bank RaiAccept gateway. The module is listed on the official Odoo Apps Store and released as open source under the LGPL-3 license — useful to any company in Serbia and the wider region that runs Odoo and accepts cards through RaiAccept.
- Odoo Apps: apps.odoo.com/apps/modules/19.0/payment_raiffeisen
- GitHub: github.com/AdriaMartHQ/payment_raiffeisen
Features
- Full RaiAccept API integration (order creation, checkout redirect, status query)
- Settlement in RSD or EUR
- Built-in currency conversion with configurable exchange rate
- Partial and full refunds from the Odoo backend
- Separate production and sandbox credentials
- Serbian Cyrillic-to-Latin transliteration for addresses
- Webhook processing with authoritative gateway-side amount / currency verification
- Country code mapping for 50+ countries
Supported cards and markets
Cards: Visa, Mastercard, DinaCard (the Serbian national card scheme — Odoo core does not ship this, so the module adds it as a dedicated brand record with its own logo.)
Apple Pay / Google Pay — planned for the next release.
The module works for merchants with a Raiffeisen business account in these markets:
| Country | Bank | Settlement currency |
|---|---|---|
| Serbia | Raiffeisen banka a.d. Beograd | RSD |
| Austria | Raiffeisen Bank International | EUR |
| Croatia | Raiffeisenbank Austria d.d. Zagreb | EUR |
| Bosnia & Herzegovina | Raiffeisen Bank d.d. BiH | EUR |
| Kosovo | Raiffeisen Bank Kosovo | EUR |
| Albania | Raiffeisen Bank Albania | EUR |
| Romania | Raiffeisen Bank Romania | EUR |
| Hungary | Raiffeisen Bank Zrt. | EUR |
| Czech Republic | Raiffeisenbank a.s. | EUR |
| Slovakia | Tatra banka (RBI group) | EUR |
| Ukraine | Raiffeisen Bank Ukraine | EUR |
Customers from anywhere can pay — billing-address mapping covers 50+ countries.
Technical notes
- AWS Cognito
USER_PASSWORD_AUTHfor RaiAccept API auth - Redirect flow via
_get_specific_rendering_values - Authoritative amount / currency verification from the gateway response (not client-side)
- Transaction ID selection prefers successful
PURCHASEtransactions - Refund callbacks routed by
transactionIdfor correct child-transaction resolution - RSD treated as a zero-decimal currency (minor-unit factor = 1 for RSD, 100 for EUR)
billingAddress.statetrimmed to RaiAccept's 0-3 character limit (fallback: field omitted)
Requirements
- Odoo 19.0 (Community or Enterprise)
- A Raiffeisen Bank RaiAccept merchant account
- RaiAccept API credentials (username + password)
Installation
Fastest — via the Odoo Apps Store:
- Open apps.odoo.com/apps/modules/19.0/payment_raiffeisen and download the module
- Extract it to your Odoo addons path
- In Odoo: Settings → Apps → Update Apps List
- Install Payment Provider: Raiffeisen RaiAccept
- Open Invoicing → Configuration → Payment Providers, enter credentials, set the currency and rate, enable the provider
Alternatively, clone directly from GitHub if you want to track the latest branch.
RaiAccept onboarding and test-card documentation: docs.raiaccept.com
Why open source
Our team is preparing an Odoo e-commerce platform for the Serbian market, and RaiAccept integration is part of that step. Odoo itself is open source, so it felt natural to release our module to the community. Anyone running the same combo (Odoo + RaiAccept) can install it, test it, and contribute back.
Pull requests and issues are welcome.
About AdriaMart
AdriaMart is an e-commerce project registered in Serbia, currently in its pre-launch preparation phase. This module is one of the outputs of that technical preparation. Questions and suggestions: [email protected] or GitHub Issues.
License: LGPL-3 — free to use, modify, and redistribute.