account_pick_currency_date
A date picker beside an invoice's exchange rate. Pick a date, and the rate for that date is fetched from the server and saved.
August 27, 2026Updated August 27, 20264 min read
| Technical name | account_pick_currency_date |
|---|---|
| Views | form (view widget, <widget> element) |
| Module | account, the Invoicing and Accounting apps |
| Used in core | The exchange rate area on the invoice form in account |
| Versions | Odoo 20.0, Odoo 19.0 |
| No-code setup | No. It is set in view XML and depends on module-specific data |
| Alternatives | monetary, daterange, account_document_state |
What the currency rate date does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
company_id | field read from the record | Sent to the rate lookup, because rate tables are per company.(since Odoo 19.0) |
currency_id | field read from the record | Sent to the rate lookup as the currency whose rate is wanted.(since Odoo 19.0) |
invoice_currency_rate | field written on apply | Receives the returned rate before the record is saved.(since Odoo 19.0) |
the picker type | fixed to date | The picker has no time component, because rates are defined per day.(default: date)(since Odoo 19.0) |
It saves for you. Applying a date writes the rate and then saves the record. That is convenient and also means there is no chance to reconsider before the change is committed.
Working examples
Why the company identifier is in the call
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Substantially rewritten on the development branch. |
| Odoo 19.0 | Verified | First version. Verified against the shipped source. |
| Odoo 18.0 | Not available | Widget does not exist. |
| Odoo 17.0 | Not available | Widget does not exist. |
| Odoo 16.0 | Not available | Widget does not exist. |
Upgrade note. The widget is new in Odoo 19. On earlier versions the rate was edited directly or recomputed from the invoice date, so an upgrade adds the picker with the standard views and nothing needs migrating.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| The rate does not change | No rate exists for the chosen date in that company's rate table. Add the rate, or pick a date that has one. |
| The wrong rate appears in a multi-company database | Rate tables are per company and the invoice's company is used. Check the invoice's company is the one you expect. |
| The record saves unexpectedly | Applying a date writes the rate and saves immediately. Expected. There is no pending state to review. |
| The picker offers a time | It should not; the picker is configured as date only. Check no customization overrode the picker props. |
| Nothing happens on apply | The record has no company or currency set yet. Fill those first; both are sent to the lookup. |
| The widget is missing | The invoice form in use does not include the widget element. Add it, or use the standard invoice form. |
Currency rate date vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
account_pick_currency_date | Setting an invoice's exchange rate from a specific date | Fetches the rate for a chosen date using the invoice's own company, then saves immediately |
| monetary | Showing an amount with its currency | Displays rather than sets a rate |
| daterange | Picking a period | Two dates rather than a rate lookup |
| account_document_state | Showing an accounting document's status | A status rather than a rate action |
Frequently asked questions
Why is the company sent to the server?+
Does it save the invoice?+
Can I pick a time as well as a date?+
What if there is no rate for that date?+
Which versions have it?+
Multi-currency accounting that reconciles first time
Rate sources, revaluation and the dates behind them decide whether month-end is a review or an investigation. We implement Odoo Accounting for multi-currency operations, on versions 16 through 19.
Book a free consultation