| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 372 |
| Technical Name |
aos_currency_rate_live |
| License | OPL-1 |
| Website | https://www.alphasoft.co.id/ |
| Versions | 10.0 11.0 14.0 18.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 372 |
| Technical Name |
aos_currency_rate_live |
| License | OPL-1 |
| Website | https://www.alphasoft.co.id/ |
| Versions | 10.0 11.0 14.0 18.0 |
Stop typing daily exchange rates by hand.
Pull official Indonesian Rupiah (IDR) exchange rates straight into
res.currency.rate from six providers — Bank
Indonesia, BCA, BNI, BRI, CIMB Niaga, and Kementerian Keuangan
— through the Klikodoo API gateway. Daily cron ·
one-click manual refresh · provider stamped on every rate.
Pick a provider per company — switch any time. KMK = Kementerian Keuangan (DJP / DJBC reference rate).
What You Get
🏦 Six Indonesian providersBI, BCA, BNI, BRI, CIMB Niaga, and Kemenkeu — picked per company. Switch providers any time from General Settings. |
⏳ Daily auto-updateA built-in cron job pulls the latest rates every day for every company that has an API key configured — no extra setup, runs as |
🔄 One-click manual refreshA Update now button next to the Next Run field in General Settings — useful when finance needs an intra-day rate for an urgent invoice. |
📋 Provider stamped on every rateA new Link Rate Currency column on the currency-rate list/form/search tells you exactly which bank posted each rate — auditable trail per row. |
🎲 IDR-aware conversionWhen the company currency is IDR, the rate is inverted automatically so Odoo keeps the standard convention — 1 unit of company currency = X foreign. |
🏢 Multi-company safeEach company picks its own provider and schedule. The cron skips companies without an API key — clean upgrades, no surprises. |
What You'll See
One res.currency.rate row per day per currency, each stamped with the provider name — here's USD pulled from five different sources across one week. Switch any time, see which source posted yesterday's vs. today's rate at a glance.
End-to-End Setup — 5 Steps
From signup to a fully-automated daily refresh in under five minutes.
Register at klikodoo.id
Open klikodoo.id and sign up — free, ~30 seconds. Klikodoo is the Alphasoft-run gateway that scrapes bank rates for you, so your Odoo never talks to bank websites directly. When a bank changes layout, only Klikodoo needs patching — no module redeploy.
Create an API key
Once logged in, open Account › API Docs in the sidebar and click the + New Key button (top-right). A modal asks for a name — use a label like Production or your company name — then hit Generate Key.
Copy & save the key — it's shown only once
The key starts with klikodoo_ followed by a 64-character hex string. Copy it immediately — Klikodoo hashes the key server-side and will never show it again after you dismiss the dialog. If you lose it you'll have to generate a new one (and revoke the old).
Paste into Odoo Settings & pick a provider
In Odoo, go to Accounting › Configuration › Settings. Tick Automatic Currency Rates ID, paste the key into API Key (Server URL stays at https://klikodoo.id). Scroll to Currencies › Automatic Currency Rates, pick Service — BI / BCA / BNI / BRI / CIMB / KMK, set Next Run, click Save. Hit the â² Update now icon for an immediate pull — a green toast confirms how many currencies landed.
Done — cron takes over from here
The built-in scheduled action Currency IDR Rate Update runs daily for every company with an API key configured. Open any currency › Rates tab and you'll see one row per day, each stamped with the Link Rate Currency showing which bank posted it — useful for audit ("which source were we using on day X?"). Switch provider any time; the next pull uses the new source. Companies without an API key are skipped silently.
ⓘ Defence in depth — what happens when a provider misbehaves
- Scraping is server-side. Klikodoo (separate Alphasoft service) scrapes the bank pages, not your Odoo. When a bank changes layout, only Klikodoo gets patched — no module redeploy on your side.
- Sanity check on every row. If a new rate deviates more than 2× from the previous rate for the same currency, the row is rejected and the old rate stays. Real FX rarely moves >10%/day; 2× only triggers on clearly-broken upstream data. Threshold configurable via
ir.config_parameter:aos_currency_rate_live.sanity_max_ratio. - JPY auto-normalised. KMK quotes JPY per 100 yen; the gateway divides by 100 so Odoo stores per-1-unit values consistent with other providers.
- WAF-protected banks fall back gracefully. If a bank's site blocks the scraper (BNI/BRI/CIMB often do), Klikodoo falls back to a global FX aggregator so the call still returns — tagged with
-fallbackso it's traceable. - Errors surface as toast notifications, not blocking modals. Hit the â² refresh icon and you'll see a green/amber/red toast in the top-right depending on outcome — including the list of currencies that got rejected and why.
Compatibility
Odoo 18.0 — Community & Enterprise •
Depends only on base •
Requires a Klikodoo API key (free signup)
Built by Alphasoft
We build practical Odoo modules for real Indonesian businesses — accounting, e-faktur, inventory, and process automation that fit how teams actually work.
www.alphasoft.co.id · www.klikodoo.id
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module