Conversion by example
ECB rates are quoted as foreign-currency units for one euro. The server therefore divides the foreign amount by the published rate.
An amount already in EUR is kept unchanged. It performs no rate lookup, and requesting a custom rate cannot make it fail. Foreign-currency conversion is available when the profile keeps its books in EUR.
Selecting the rate date
Section titled “Selecting the rate date”The selected day depends on why the conversion is being made:
| Context | Rate publication used |
|---|---|
| Ordinary transaction | Latest TARGET publication before the transaction date |
| Financial statement | Latest publication on or before the statement date |
| Other decisive date | Latest publication on or before that date |
Weekends and TARGET closing days have no publication. The server walks back to the latest valid day, but it does not skip a publication that should exist.
Monday uses Friday’s publication.
A Tuesday transaction normally uses Monday’s publication. If Monday should have a publication but local coverage is missing, conversion stops instead of silently falling back to Friday.
Choosing a custom rate
Section titled “Choosing a custom rate”The official ECB rate is always the default. Adding a custom rate to a profile does not automatically activate it or change earlier postings.
A posting must explicitly choose the custom rate. That rate must exist for the same currency and publication date that the normal date rule selected. If it is missing, conversion stops; the server does not fall back to the ECB rate.
The selected custom rate is used without consulting ECB coverage. However, the profile and its custom-rate table must exist. Only one active custom rate can exist for a currency and publication date.
For a Monday transaction, this usually means entering the custom rate against Friday:
Official ECB rate
110 USD → 93.220338… EUR
Profile’s custom rate
110 USD → 100 EUR
Both results are valid deliberate choices and can coexist on the same accounting date. Each keeps evidence of the source it used. Editing or withdrawing a custom rate later does not change past evidence; withdrawing it only prevents future use.
Precision and rounding
Section titled “Precision and rounding”Conversion uses exact decimal arithmetic and does not round. Rounding belongs to the destination money field and happens afterwards.
When conversion stops
Section titled “When conversion stops”- The required publication is not covered by verified local data.
- The currency code is not a recognized uppercase ISO code, or the currency is missing from that publication.
- A requested custom rate does not exist for the exact date and currency.
- The requested custom-rate profile or table does not exist.
- The profile keeps its books in a currency other than EUR.
These are deliberate failures: the server does not guess a date or silently switch between official and custom rates.