← All work

Odoo V18 · Published on the Odoo App Store

FX Manual FX Rate on Payments

My first commercial Odoo app, now live on the Odoo App Store. It registers foreign-currency payments at the exact rate the bank charged, then auto-posts the FX gain or loss to the ledger — reconciling to the cent.

18.0
Built for the latest Odoo release
OPL-1
Licensed & published
Auto
FX gain/loss journal entries
View on the Odoo App Store
More below

The problem

When you pay an overseas supplier, the rate your bank actually charges is almost never the rate Odoo holds for that day. That gap is a real foreign-exchange gain or loss — and reconciling it by hand against the bank statement is fiddly, error-prone work that accounting teams repeat on every foreign-currency payment.

What it does

Manual Exchange Rate on Payments (FX Gain/Loss) lets you register a vendor payment or customer receipt at the rate your bank really gave you. Enter either the amount that actually left the account or the rate you negotiated — the module computes the other figure, posts the resulting FX gain or loss to the correct account automatically, and lines the payment up to reconcile against the bank statement to the exact cent.

  • Enter rate or amount — give it one, it calculates the other.
  • Automatic gain/loss postings — the FX difference is journalled for you, with no manual entries.
  • Reconciles to the cent — the payment matches the bank line exactly.
  • Zero configuration — works out of the box from your company defaults, on any currency pair.
  • Inbound and outbound — handles both supplier payments and customer receipts.

Guardrails

A wrong rate quietly corrupts the ledger, so the module builds in checks:

  • A 5% variance warning when the entered rate drifts from Odoo’s system rate.
  • A 50% deviation guard that blocks the payment unless an Accounting Administrator approves it.
  • It suppresses Odoo’s own duplicate exchange-difference entries, so the books never double-count.

Published

This is my first module published on the official Odoo App Store as a third-party app — built for Odoo 18.0, licensed under OPL-1, and available for Odoo.sh and on-premise deployments. It started as a real fix for a client paying USD suppliers from an AUD account, then I packaged and hardened it into a product anyone running Odoo can install.

Got a similar problem to solve?

Tell me what you’re working on. One day’s turnaround on a first response.

Start a conversation →