You’re offline. This is a read only version of the page.
Skip to main content
Dynamics 365 Community
Cancel
Get involved
Get answers
Discover events
Learn Dynamics 365
More
Search
Community site session details
Session Id :
Copy
Close
Join experts in person to explore low code and AI agents at the Power Platform Community Conference sponsored by Microsoft
Announcing our 2025 Season 2 Super Users!
Responsible AI policies for the Community
Dynamics 365 Community
/
Blogs
/
Dynamics 365 Business Central blog
/
Handling Multi Currency in ...
Handling Multi Currency in Business Central
Views (99)
Sumit Singh
1,885
Follow
Like
(
1
)
Share
Report
Handling Multi‑Currency in Business Central
Why this guide (and who it’s for)
If your supply chain buys in
USD
but bank balance is held in
EUR
(or you choose to pay in EUR), Business Central can settle a
USD invoice with a EUR payment
, compute
realized FX
at application, and book
unrealized FX
at period end—
if
setup is right and the
payment journal
is used properly. This post shows the
functional steps, accounting logic, and reports
to verify results.
Scenario we’ll cover
PO currency:
USD
Vendor invoice currency:
USD
Payment currency:
EUR (from a EUR bank account)
Local currency (LCY):
Your company currency (e.g., INR)
BC supports creating
purchase documents in foreign currencies
and analyzing vendor ledgers in both document currency and LCY.
Prerequisites (functional setup checklist)
1)
Currencies
Create USD and EUR in
Currencies
, set
exchange rates
, and assign
Realized/Unrealized Gain/Loss accounts
on the currency cards.
Assign currency codes on the
Vendor
(USD) and
Bank Account
(EUR).
2)
Allow application across currencies
In
Purchases & Payables Setup → Appln. between Currencies
, choose
All
.
Configure
Curr. Appln. Rndg.
G/L accounts on Vendor Posting Group for currency rounding differences.
3)
Period‑end FX
You’ll run
Adjust Exchange Rates
to post
unrealized gains/losses
for open vendor entries and update LCY for banks/customers/vendors at period end.
4)
Verification reports
Use
Vendor Ledger Entries
and
Detailed Vendor Ledger Entries (Built‑in report)
for audit and reconciliation.
Process at a glance (diagram)
Step‑by‑step walkthrough
Step 1 — Create PO and Post Vendor Invoice (USD)
Create a
Purchase Order
in USD, post
Vendor Invoice
.
Confirm
Currency Factor
and
LCY
on the posted invoice.
BC fully supports foreign currency purchases and shows both currency and LCY amounts.
Step 2 (Optional) Run Adjust Exchange Rates before payment
If rates moved since invoice posting, run
Adjust Exchange Rates
to record
unrealized FX
on open vendor entries.
This doesn’t settle anything; it standardizes
LCY values
at period boundaries, and later
realized FX
is recognized when you apply the payment.
Step 3 — Prepare Payment Journal in EUR
Open
Payment Journals
. Pick your
EUR
bank account (Currency = EUR).
Enter a line with
Currency Code = EUR
and choose
Apply Entries
to select the USD invoice.
BC allows
applying a EUR payment to a USD invoice
when you enable
Appln. between Currenci
es
(see prerequisites).
Step 4 — Post the journal
On posting, BC closes the USD vendor invoice with your EUR payment and
books Realized FX
difference based on
payment date rates (83.5)
vs
invoice date (83.25)LCY
. If cross‑currency application is enabled,
currency application rounding
may also post to the configured rounding accounts.
Step 5 — Verify & reconcile
Use
Detailed Vendor Ledger Entries
to see application lines, FX effects, and closing.
At month‑end, run
Adjust Exchange Rates
again to post any
unrealized FX
remaining on open items and banks.
We have
Preview Posting
functionality also before actual posting.
✅
Step-by-step
Invoice posted
:
USD 1,000 × 83.50 =
₹83,500
(LCY)
Payment in EUR
:
LCY ÷ EUR rate = 83,500 ÷ 92.10 ≈
906.62 EUR
·
✅
Why is BC showing
₹815.96
?
The
Exchange Rate Amount
in your setup is likely
1
, not 100.
If we recalc with
Exchange Rate Amount = 1
:
[{Difference} = 906.62 * (93.00 - 92.10) = 906.62* 0.90 = ₹815.96 ]
✅
So the reason is:
Your
Exchange Rate Amount = 1
(not 100).
Unrealized FX is on the
EUR bank account balance
, not the vendor (vendor is closed).
Formula used by BC for bank revaluation:
[{Unrealized FX} = {Bank Balance in FCY} * ({Adjmt Rate} - {Current Rate}) ]
✅
Key takeaway
₹815.96 = 906.62 EUR × (93.00 − 92.10)
So, there are 2 posted invoices with posted payments with same amount and same dates, hence, 815.96*2 = 1631.92
Best practices & tips
Keep exchange rates current
(consider an exchange rate service).
Enable “Appln. between Currencies”
=
All
for cross‑currency vendor applications; also set
Currency Application Rounding
accounts to avoid posting errors.
Separate bank charges
on their own journal line to keep FX realization clean and auditable.
Period‑end
: Run
Adjust Exchange Rates
for clean unrealized FX and accurate LCY reporting.
Audit & analytics
: Use
Detailed Vendor Ledger Entries
(built‑in report) for transparent drill‑down.
When to run Adjust Exchange Rates
Purpose:
This job revalues open foreign currency balances (vendors, customers, bank accounts) to reflect current exchange rates and posts
unrealized gains/losses
.
Ideal-timing:
At period-end (month-end, quarter-end, year-end)
after all transactions for that period are posted
but
before closing the books
.
This ensures your financial statements reflect the latest currency values for open items.
Why not after every invoice or payment?
Running it after each transaction is unnecessary and can clutter your G/L with frequent unrealized FX entries.
Unrealized FX is only relevant for
open entries
(unpaid invoices, bank balances in foreign currency).
What if payment is already made?
If the vendor invoice is fully paid, there’s
no unrealized FX
on that vendor entry.
However, your
foreign currency bank account
may still have a balance, so the job will revalue that.
Alternative approach
Daily or weekly runs
: Some companies with high FX exposure run it more frequently for internal reporting, but official adjustment is usually at
month-end
.
Always run before financial reporting
(e.g., before generating trial balance, P&L, balance sheet).
Summary
Run after posting all invoices and payments for the period
.
Do NOT run immediately after each invoice or payment
.
Always run before closing the period
to reflect accurate FX positions.
Common questions
Q1. Will Adjust Exchange Rates change my original document currency?
No—the job recalculates
LCY
for open entries and posts
unrealized
FX; the original document currency remains as posted.
Realized
FX is captured at application/payment.
Q2. Can I view/pay/apply a EUR payment to a USD invoice out‑of‑the‑box?
Yes—set
Appln. between Currencies = All/EMU
and configure rounding accounts; then apply the EUR payment to the USD invoice from the
Payment Journal
.
Q3. Where do I review the FX impact after posting?
Check
Detailed Vendor Ledger Entries
and the
G/L
for postings to
Realized Gain/Loss
and
Bank Charges
.
Comments
Add new comment
Comment on this blog post
New#123
You don't have the appropriate permissions.
Messages
Welcome,
Profile
Messages
My activity
Sign out