Job invoice-foreign-currency-rate-and-amount-errors · revised 11 October 2026
Make foreign-currency orders create invoices in the right currency, with the right rate
Synthetic orders in the base currency, a two-decimal currency and a zero-decimal currency create invoices with the order currency and amount, and no default or inverted rate is stored.
You might be seeing
- Euro or dollar orders appear as invoices in the home currency with the foreign number
- A zero-decimal currency amount is off by a factor of one hundred
- Base-currency totals differ from the settled amount because the stored rate is one or inverted
No passwords, keys, card details or admin invites needed to start.
What usually happened
The sync passes an amount and a currency code without agreeing how the target system expects them: it may send minor units as major units, default the rate to one, supply a rate in the opposite direction from what the target expects, or write to a currency the organisation has not enabled. The result is a plausible invoice with the wrong currency or wrong base amount.
Who it’s for: A finance manager, bookkeeper or developer whose shop or billing system sells in several currencies and whose synced invoices come out in the wrong currency, with a rate of one, or with a base total that does not match what the payment processor settled.
Usually starts when: Invoices for foreign-currency orders show the home currency, an amount a hundred times too big or small, or a base-currency total that disagrees with the settled amount.
The result: For synthetic orders in the base currency, a two-decimal foreign currency and a zero-decimal foreign currency, each invoice carries the order's currency and exact amount, any stored rate is in the target's direction, no default rate of one appears, and an order in a currency not enabled in the file is held.
Check whether this job fits
Answer these from what you can see without sending logins, invoices or customer data. Nothing is submitted unless you choose to contact us; this is a fit check, not permission for us to touch your systems.
Checks you can run yourself
Compare three amounts for one order
For one foreign-currency order, write down the order amount and currency, the invoice amount and currency, and the amount and currency the processor settled.
Look for: Whether the currency code changed, the number changed by a factor of 100, or only the base total differs. Each points at a different cause.
What you get
- The change as a pull request or exported configuration with the amount and rate contract written down
- A test table: each invented order, the invoice currency, foreign amount, stored rate and base total
- A held list for currencies not enabled and orders with a missing rate where one is required
Included
- One sync, one order source and one Xero organisation or QuickBooks Online company
- An amount contract per source field: minor or major units, decimal places and the currency code carried with each amount
- A rate rule: omit the rate where no real conversion happened, or set it in the direction the target expects when one did, with the source of the rate named
- A check that the target file has each currency enabled, with a held list for orders that fail it
- Tests with invented orders in three currencies on a demo or sandbox file
Not included
- Choosing exchange-rate sources or revaluation, or deciding how gains and losses are accounted for
- Enabling multicurrency in your live accounting system, which your account holder decides and which in QuickBooks Online cannot be turned off once enabled
- Payments received in a different currency from the invoice
- More than three currencies in the fixed scope, or historic invoices
- Bookkeeping, tax, audit or any accounting advice, including deciding how a transaction should be treated in your accounts
- Changing posted, reconciled or locked-period transactions: your accountant or account holder decides and performs those
- Live changes: your authorised account holder applies any agreed change and holds the production keys
How we know it’s done
Agreed with you before work starts. Each check produces evidence you keep.
Three invented orders (home currency, two-decimal currency, zero-decimal currency) each create an invoice whose currency code and foreign amount equal the order's exactly.
Evidence: The order list and the invoice currency and amount for each, redacted.
For the foreign orders the stored rate, when one is set, converts the foreign total to the expected base total within the agreed rounding, and the direction matches the target's documented convention.
Evidence: The rate, the recomputed base total and the documentation reference.
No foreign invoice carries a rate of one unless the agreed rule names that exact rate.
Evidence: The stored rates for all test invoices.
An order in a currency not enabled in the file is held with the currency named and creates no invoice.
Evidence: The held list and the invoice count.
Sign-off. You inspect the named test evidence and sign off before payment. Your authorised account holder performs and verifies any live change, and decides what happens to records already posted.
If it fails. If an agreed check does not pass, you do not pay for this fixed scope. We hand over the findings and agree whether to stop or re-quote; no surprise work and no change to your live records.
When it fits, and when we stop
It fits when
- You can name the currencies you sell in and where each order's currency and amount come from
- A demo or sandbox file with multicurrency enabled and the relevant currencies added can be used for the tests
- Your bookkeeper can say whether a real conversion happens on your side before the invoice is created
- A person on your side approves the rate rule
- Real financial records, customer data and keys are handled only after written agreement, through a secure handoff we agree with you; the first enquiry and the fit check use invented or redacted examples
We stop and tell you if
- The target file does not have multicurrency enabled and your accountant will not enable it
- Orders are converted by a third system whose rate cannot be read, so the base amount cannot be explained
- More than three currencies or per-line currencies are needed, which needs a wider quote
What could go wrong
Before merge, closing the pull request leaves the sync unchanged. After merge, your developer can revert it. Invoices in the demo or sandbox file are disposable; live invoices already created are not edited by this job.
Scroll the table sideways to read it all.
| Risk | How we handle it |
|---|---|
| A rate is entered in the opposite direction and the base total is off by a factor equal to the rate squared, not by pennies. | The direction is taken from the target's documentation for each system, and a test with a recomputed base total fails if it is inverted. |
| A currency with unusual decimal places is treated as two-decimal. | The contract states each currency's decimal places and the zero-decimal test covers it. |
| Enabling multicurrency in a live file has irreversible effects. | The job never enables it; the account holder decides, and the held list shows what would be blocked. |
An independent reviewer recomputes each test invoice's base total from the stored rate and checks its direction against the target's documentation, and confirms no default rate of one is stored for a foreign invoice.
How we deliver
We arrange the work and independent review, then show you the result against the agreed checks. You keep authority over your systems.
- Agree the currencies, the amount contract for each source field and the rate rule with your accountant in writing
- Reproduce the error with three invented orders on a demo or sandbox file and record currency, amount, rate and base total
- Convert source amounts to the target's expected form using the currency's own decimal places
- Set or omit the rate by the agreed rule and in the target's direction, and hold orders in currencies the file has not enabled
- Run the three-currency set and an order with an unenabled currency and capture the table
- Independent review of the arithmetic, the rate direction and the held list, then hand over for your developer to merge
This is a one-off job, not emergency cover or a subscription. We confirm eligibility, the total price, a start window and a delivery date before you accept. Work starts only after agreed inputs, secure access, any licences and necessary permissions are in place. Platform and supplier charges are excluded unless the written quote includes them. No charge or booking is created by an enquiry.
Need to keep it working?
If you add currencies, discuss re-running the three-currency test as a small separate agreement.
Ongoing work is separately scoped and quoted: no monitoring, response-time guarantee or automatic subscription is included in this job.
Explore an ongoing engineering lane, or mention the responsibility you need in your enquiry.
What you can check
This is a new service. We have not delivered this job for a client yet.
Other ways to get this done
- Xero's multicurrency guidance states which direction its rate is expressed in, advises against defaulting a rate of one and says to omit the rate unless a real conversion happened; your developer can apply it directly. developer.xero.com
- Intuit's multicurrency workflow explains that the company must have it enabled and that an invoice carries a currency reference; check its rate direction before any change. developer.intuit.com
Questions
Can you pick the right exchange rate for me?
No. Which rate to use is an accounting decision. The job applies the rule you give it, or omits the rate where no real conversion happened.
Why does the rate direction matter?
The two systems express rates in opposite directions, so copying a value from one to the other can invert it. The test recomputes the base total to catch that.
Does this cover currency gains and losses?
No. Revaluation and gain or loss treatment belong to your accountant.
Send an enquiry
Send us
- The currencies you sell in and which is the home currency of the accounting file
- Three invented orders: one in home currency, one in a two-decimal currency, one in a zero-decimal currency, with amounts
- Whether the source sends amounts in the smallest currency unit
- Do not send credentials, bank details, invoices, customer records or confidential code in the first enquiry
Later, once you agree
- Read access to the sync definition or code through the agreed route, with secrets held by you
- A demo organisation or sandbox company with the test currencies enabled, created by you
- Your accountant's written rule for when a rate is supplied and where it comes from
- A secure, company-controlled handoff route agreed in writing before any access; no passwords, keys or customer records by ordinary email
You keep the live accounting organisation, payment accounts, production keys and every customer and financial record. We work on an authorised demo, sandbox or synthetic copy through a company-controlled handoff, never a personal login. Your authorised account holder approves and performs any live change and checks the result under their own keys.
Email fallback: open your mail app
If website submission is unavailable, review and send the fallback email yourself. An email fallback is not a website receipt. Or write to hello@syntheticindustry.ai with “invoice-foreign-currency-rate-and-amount-errors” as the subject.