A EUR invoice can agree with its purchase order (PO) to the cent and still show a GBP variance because the rate moved. For finance controllers, finance operations managers, and accounts payable leads at UK and EU SMEs, the method below sets which rate applies at each stage, where tolerances belong, and how foreign exchange differences post to the ledger, so the commercial match and the currency movement can each be automated.
Please note this is general guidance for UK finance teams, not tax advice. VAT treatment depends on your specific circumstances, so consult a qualified tax adviser before making decisions based on the rules covered here.
Key takeaways
Confirm the commercial match on the original-currency amounts before comparing in your base currency; account for currency movement as a separate FX entry.
Fix which rate and date apply at order, invoice, payment, and period-end before automating.
Set a separate tolerance band for rate movement, with distinct bands for rounding and bank fees, so a price dispute never hides inside an FX variance.
Route each out-of-tolerance item to a named owner with a deadline; finance keeps judgement on exceptions.
Store the rate source and rate date on each document, from capture to accounting export.
Why multi-currency matching is harder than single-currency
One foreign-currency invoice raises two questions where a GBP invoice raises one: did the supplier bill what you ordered and received, and what is that liability worth in your base currency at booking, payment, and period-end? The second answer changes every working day.
The PO, invoice, approval, and bank debit each carry a different date, so converting everything at “today’s rate” creates variances unrelated to the supplier. A 1% price difference and a 1% rate move look identical in a base-currency column unless the system knows which is which.
For UK entities, VAT may need to be expressed in sterling using an HMRC-permitted rate, which can differ from your ledger rate, so one rate per invoice may not serve both purposes.
What you need before you start
Settle these decisions before configuration:
Base currency per entity: Each legal entity reports in one functional currency: GBP for a UK entity, EUR for a German subsidiary.
Rate source and feed: Pick one reference feed for the ledger, such as the ECB reference rates or the Bank of England’s daily spot rates. The ECB publishes its rates for information only, and the Bank of England describes its rates as not official, so neither is a transaction price.
Accounting integration: The AP tool should write the invoice, the rate used, and any FX line to the ledger without re-keying.
Approval and tolerance policy: Agree in writing who approves out-of-tolerance invoices, and at what bands, before the first exception arrives.
How to automate multi-currency invoice matching: Step by step
Work from invoice capture and rate policy through matching and exception handling, then post FX differences and reconcile payments with an audit trail. Teams that skip the rate policy can end up with more exceptions than their previous manual process produced.
Step 1: Capture the invoice and extract currency, amount, and line items
Extraction has to reach line level, with currency code, net, VAT rate, VAT amount, and gross on every line. A header-only capture can confirm that EUR 12,000 equals EUR 12,000, not that the supplier billed 110 units against an order of 100.
Several EU countries now require structured e-invoices for domestic B2B sales, so your capture layer should read XML as well as PDF.
Step 2: Set the rate source and rate date for each stage
Under UK and international accounting standards, finance teams record a foreign-currency purchase at the transaction-date spot rate, and may use a weekly or monthly average where it approximates actual rates and rates do not fluctuate significantly. Document any average you adopt and apply it consistently. For a GBP entity, the rate and owner at each stage are:
Stage | Rate and date that apply | Owner |
|---|---|---|
Purchase order | Reference rate on PO date, for budget commitment only | Budget owner |
Invoice receipt | Spot or approved average rate on invoice date | AP lead |
Approval | No new rate; approve the invoice-date value | Approver |
Payment | Provider’s applied rate on settlement day | Finance operations |
Period-end close | Period-end closing rate for open payables | Controller |
VAT (UK) | HMRC-permitted rate at time of supply, stored separately | Controller |
The invoice-date value is the booked liability. If approvers see a value refreshed at today’s rate, the approved amount stops agreeing with it. EU entities apply their national tax authority’s conversion rule for VAT, which may differ from the ledger rate.
Step 3: Normalise to your base currency
Convert every document into the entity’s base currency at its own stage rate, keeping the original-currency amount beside it. Rounding to pence at each conversion, rather than once at the end, can help avoid phantom pennies on long invoices.
Step 4: Run two-way and three-way matching
Two-way matching compares the invoice to the PO. Three-way matching adds the goods received note, so you pay only for what arrived.
Confirm the foreign-currency amounts before the base-currency comparison when order and invoice share a currency. If the EUR amounts agree exactly, the GBP difference between PO and invoice is rate movement on a budget commitment: it needs no price query and posts nothing, because FX entries arise only between the booked liability and the period-end revaluation or settlement.
Step 5: Set FX, rounding, and bank-fee tolerances
Keep a percentage band for rate movement, with separate absolute-amount bands for rounding and fees, so each variance has a named cause.
The values below are illustrative assumptions for this article rather than market standards; calibrate them against your own variance history and your bank’s tariff:
Rate movement: Start with a 2% band on the invoice-date base value, applied where order and invoice currencies differ or the foreign amounts diverge.
Rounding and bank fees: Allow £1 per invoice for automatic posting to a rounding account. Set a separate bank-fee band starting at £30 per payment; UK bank charges vary by bank and payment route.
Step 6: Route exceptions, partial payments, and bank fees
An example policy, with turnaround times to adjust to your team:
Price and quantity queries to the budget owner within 2 working days
Payment and FX exceptions: rate-band breaches to finance operations within 1 working day; fee and short-payment items to AP within 3 working days
Partial payments leave the balance open; combined payments match one bank line to several invoices through remittance references.
When charges are shared (SHA), an intermediary bank can deduct its fee in transit, or the supplier’s bank can apply its own conversion margin, so the supplier receives less than the invoice and may ask for the balance. Route those supplier-reported shortfalls to AP to decide whether to top up; choosing the OUR charge option asks your bank to deliver the full amount.
Fees your own bank charges you post to bank charges: items within a fee band set from your bank’s tariff post without review, and anything larger is queued. Your bank’s spread above the reference rate is already inside the settlement rate, so it flows to realised FX rather than bank charges.
Step 7: Post realised and unrealised FX gains and losses
On settlement, finance records a realised difference: the gap between the invoice-date liability and the base-currency cash paid, posted to an FX gain or loss account in profit or loss. At period-end, controllers retranslate open payables at the closing rate and record the unrealised difference through profit or loss. In many ledgers, controllers can post a revaluation journal that reverses on the first day of the next period, then record the full realised amount on settlement.
When consolidating a EUR subsidiary into GBP, finance records translation differences in equity, separately from supplier-level FX. Each entity’s finance team revalues its own payables in its functional currency before consolidation.
Step 8: Close the loop with bank feed reconciliation and audit trail
Link each matched invoice to its bank statement line, so AP payment status and ledger cash agree. A creditor reference or the unique end-to-end identifier on a structured bank statement lets the engine match without a person; free-text “inv Sept” does not.
Store a timestamped, attributed trail on each document: capture, rate source and date, match, approval, and FX entry.
Worked example: One EUR invoice, one GBP base currency
In this illustrative example, a UK entity with a GBP base currency orders EUR 12,000 of components from a German supplier. The ledger uses rates from the ECB GBP table, quoted as GBP per EUR; transaction details and posting policies are illustrative assumptions. Each stage runs as follows:
Date | Event | Rate | GBP value | Who acts |
|---|---|---|---|---|
1 Jul 2026 | PO raised, EUR 12,000 | 0.85973 | £10,316.76 committed | Budget owner |
3 Sep 2026 | Invoice received, EUR 12,000 | 0.86055 | £10,326.60 booked | AP lead |
30 Sep 2026 | Period-end retranslation | 0.85463 | £10,255.56 | Controller |
14 Oct 2026 | Payment, bank converts at 0.8505 plus £15 fee | 0.8505 | £10,206.00 debited | Finance operations |
On 3 September, three-way matching finds the EUR amounts identical and 100 units received, so the commercial check clears. The £9.84 difference from the PO value is a budget-commitment variance only; no rate band applies and nothing posts. The invoice entry is Dr Purchases £10,326.60, Cr Trade payables £10,326.60. The VAT conversion would use the separately stored HMRC-permitted rate.
The 30 September retranslation produces an unrealised gain of £71.04 (Dr Trade payables, Cr FX gain), posted as a reversing journal dated 1 October.
The bank’s 0.8505 is an assumed rate; the gap to that day’s 0.84385 reference is its spread. Finance operations chooses OUR charging and assumes the supplier receives the full amount. Under OUR, your bank may also add a correspondent fee on top of its own.
Finance records the payment and fee separately:
Settlement: Dr Trade payables £10,326.60; Cr Bank £10,206.00 and Cr Realised FX gain £120.60.
Bank fee: Dr Bank charges £15; Cr Bank £15.
Finance has configured automatic posting without review for fees inside the band. The £79.80 spread is embedded in the realised gain because the bank’s rate is the settlement rate. AP has no exception to review and confirms EUR 12,000 paid in full on the supplier statement.
How to evaluate automation for multi-currency matching
Judge multi-currency invoice matching automation against the stages above rather than a feature list:
Currency support: Can every entity capture, match, and pay in its own transaction and base currencies?
Rate handling: Does the tool store a rate source and rate date per document, and hold a separate VAT rate where required?
Multi-entity workflows: Can each entity keep its own base currency, tolerances, and accounting mapping under one consolidated view?
Approvals: Do approvers see the invoice-date value, and can routing differ by entity, amount, and cost centre?
Accounting sync: Does the export carry the rate, the base-currency value, and any FX line to the ledger without re-keying?
Payment status: Does the tool show sent, in transit, settled, and short-paid, and record the provider’s applied rate and fees?
Audit evidence: Can an auditor trace one invoice from capture to bank line, including every rule and person that touched it?
Spendesk is an all-in-one spend management platform consolidating company cards, expense management, accounts payable, procurement, and budgeting. For European multi-entity finance teams, its accounts payable automation can support invoice capture, including OCR that reads supplier, amount, and VAT fields, plus two-way and three-way matching and international payments, depending on eligibility and configuration.
Confirming the connector each entity needs in the current integration catalogue avoids surprises at the first month-end.
Book a Spendesk demo to see how the eight steps could work for your entities, or talk to a specialist about multi-entity configuration.
Frequently asked questions
Which rate should I use: invoice date, PO date, or settlement date?
Use the invoice-date rate for the liability and the settlement-date rate only for the realised difference. A documented monthly average can replace daily rates where it approximates actual rates and rates are stable; switch back when a pair moves sharply or a single invoice is material.
What tolerance stops FX movement and rounding from causing false mismatches?
Set rate-movement bands per currency pair. Where foreign amounts agree, the GBP difference is rate movement and needs no price query.
How do automated systems handle partial payments, combined payments, and in-transit bank fees?
A partial payment leaves the balance open; a combined payment is split across invoices by reference. Under your configured policy, fees your bank charges within the band post to bank charges, while larger items are queued. Storing a structured creditor reference on each invoice and payment can make partial and combined payments easier to match.
What is the difference between realised and unrealised FX gains and losses?
Finance records a realised gain or loss on settlement and an unrealised one when retranslating an unpaid payable at period-end. For ordinary supplier invoices, finance records both in profit or loss. The distinction can matter for distributable profits and tax, so confirm your entity’s treatment with a qualified adviser.
Curious how Spendesk works?
Try an interactive demo to see spend control and approvals end-to-end.
Get a free tour)
)
)
)
)
)
)