Foreign Currency Invoicing – End-to-End Accounting & GL Impact
This document provides a complete, end-to-end explanation of foreign currency invoicing:
- Operational flow from Sales Order to Payment
- Detailed General Ledger (GL) postings at each stage
- Unrealized vs. Realized Foreign Exchange (FX) treatment
- FX Gain and FX Loss Scenarios
- ERP screen-to-GL mapping
- Validation and audit checkpoints
Base Example
| Parameter | Value |
|---|---|
| Base Currency | USD |
| Customer Currency | EUR |
| Sales Price | €1,000 |
| Inventory Cost (FIFO) | $600 |
| Invoice Exchange Rate | 1 EUR = 1.17 USD |
| Payment Exchange Rate (Loss) | 1 EUR = 1.15 USD |
| Payment Exchange Rate (Gain) | 1 EUR = 1.20 USD |
End-to-End Foreign Currency Invoicing Example: With Complete General Ledger Impact & Validation
This section presents a single, continuous accounting flow that shows how a foreign currency sale impacts the General Ledger from start to finish. All entries are displayed in general ledger format, and the total debits always equal the total credits.
Transaction Overview
- Customer Invoice: €1,000
- Base Currency Value at Invoice: $1,170
- Inventory Cost: $600
1. Sales Order Creation (Non-Posting Stage)
Process
- Create a Sales Order for an EUR customer
- Set exchange rate (multiplier) on Sales Order header
- Add line items and confirm pricing
Accounting Impact
No GL entry is created
Sales Orders are purely operational documents.
Validation
- Customer currency = EUR
- The exchange rate is visible on the header
- No journal entry generated
2. Shipment & Inventory Accounting (COGS Recognition)
When goods are shipped, inventory is relieved using FIFO cost.
GL Entry – Shipment
| Account | Debit (USD) | Credit (USD) |
|---|---|---|
| Cost of Goods Sold (COGS) | 600 | |
| Inventory | 600 |
Debits = Credits = $600
Key Notes
- Inventory and COGS are always valued in base currency
- The exchange rate has no impact at this stage
Validation
- Inventory reduced by FIFO cost
- COGS increased by the same amount
3. Invoice Posting (Foreign Currency Exposure Begins)
Invoice Details
- Invoice Amount: €1,000
- Exchange Rate: 1.17
- Base Currency Value: $1,170
GL Entry – Invoice Posting
| Account | Debit (USD) | Credit (USD) |
|---|---|---|
| Accounts Receivable | 1,170 | |
| Revenue | 1,170 |
Debits = Credits = $1,170
Key Accounting Principle
- Revenue is fixed at invoice posting
- AR represents the foreign currency exposure
Validation
- AR = Foreign amount × Invoice rate
- Revenue equals AR in base currency
4. Period-End Unrealized FX Revaluation
If payment is not received by period end, AR must be revalued.
Period-End Rate
- Closing Rate: 1 EUR = 1.19 USD
Revaluation Calculation
- Revalued AR: €1,000 × 1.19 = $1,190
- Current AR: $1,170
- Unrealized FX Gain: $20
GL Entry – Unrealized FX Gain
| Account | Debit (USD) | Credit (USD) |
|---|---|---|
| Accounts Receivable | 20 | |
| Unrealized FX Gain | 20 |
Debits = Credits = $20
Validation
- AR equals foreign balance × closing rate
- FX posted to unrealized account only
5. Reversal of Unrealized FX (Next Period)
At the start of the next accounting period, unrealized FX is reversed automatically.
GL Entry – Unrealized FX Reversal
| Account | Debit (USD) | Credit (USD) |
|---|---|---|
| Unrealized FX Gain | 20 | |
| Accounts Receivable | 20 |
AR returns to the original invoice value of $1,170.
6. Payment Receipt – FX Loss Scenario
Payment Details
- Payment Received: €1,000
- Exchange Rate: 1.15
- Cash Received: $1,150
FX Calculation
- AR Cleared: $1,170
- Cash Received: $1,150
- FX Loss: $20
GL Entry – Payment with FX Loss
| Account | Debit (USD) | Credit (USD) |
|---|---|---|
| Bank / Cash | 1,150 | |
| Realized FX Loss | 20 | |
| Accounts Receivable | 1,170 |
Debits = Credits = $1,170
Validation
- AR cleared to zero
- Cash matches the bank receipt
- FX loss isolated in P&L
7. Payment Receipt – FX Gain Scenario
Payment Details
- Payment Received: €1,000
- Exchange Rate: 1.20
- Cash Received: $1,200
FX Calculation
- AR Cleared: $1,170
- Cash Received: $1,200
- FX Gain: $30
GL Entry – Payment with FX Gain
| Account | Debit (USD) | Credit (USD) |
|---|---|---|
| Bank / Cash | 1,200 | |
| Accounts Receivable | 1,170 | |
| Realized FX Gain | 30 |
Debits = Credits = $1,200
Final Ledger (After Full Cycle)
Trial Balance Impact Summary
| GL Account | Debit | Credit | Net Balance |
|---|---|---|---|
| Inventory | 600 | (600) | |
| COGS | 600 | 600 | |
| Revenue | 1,170 | (1,170) | |
| Accounts Receivable | 1,170 | 1,170 | 0 |
| Bank / Cash | 1,150 | 1,150 | |
| FX Loss | 20 | 20 |
Total Debits = Total Credits = $2,940
Profitability View (Correct Accounting)
| Item | Amount (USD) |
|---|---|
| Revenue | 1,170 |
| COGS | (600) |
| Gross Profit | 570 |
| FX Loss | (20) |
| Net Impact | 550 |
How to Validate Postings in the ERP
Invoice Validation
- AR equals invoice base value
- Revenue equals AR
- Exchange rate matches invoice header
Payment Validation
- AR fully cleared
- Cash posted at the payment rate
- Difference posted to FX Gain/Loss
- Revenue untouched
Inventory Validation
- FIFO cost used
- No currency conversion applied to inventory
8. Versa ERP Screen-to-GL Mapping (Field-Level Guidance & Screenshot Reference)
This section maps Versa ERP screen fields to their accounting impact, aligned with the process described in this document. Screenshot references correspond to the functional areas typically shown in Versa UI (Sales Order, Shipment, Invoice, Revaluation, and Receive Payment screens).
A. Versa Sales Order Screen
Navigation: Sales → Sales Orders → Create / Edit Sales Order
| Versa Field Name | Screen Location | Purpose | GL Impact |
|---|---|---|---|
| Customer | Header | Determines transaction currency | None |
| Currency | Header | Sets foreign currency (e.g., EUR) | None |
| Exchange Rate / Multiplier | Header → Financials | Conversion rate to base currency | None |
| Item Price | Line Level | Foreign currency selling price | None |
| Quantity | Line Level | Fulfillment quantity | None |
Screenshot Mapping:
- Sales Order Header → Currency & Exchange Rate section
- Line Items Grid → Unit Price shown in foreign currency
Validation: No accounting preview or GL posting available at this stage
B. Versa Shipment / Fulfillment Screen
Navigation: Sales → Shipments → Create Shipment
| Versa Field Name | Screen Location | Purpose | GL Account Impact |
|---|---|---|---|
| Shipment Confirmation | Header | Triggers inventory accounting | Inventory / COGS |
| FIFO Cost | Auto-derived | Inventory valuation basis | Inventory |
| Shipped Quantity | Line Level | Quantity shipped | COGS |
Screenshot Mapping:
- Shipment Confirmation Screen → Posting Preview
- Inventory Cost sourced from Product → Inventory tab
GL Impact:
- Debit: Cost of Goods Sold
- Credit: Inventory
C. Versa Invoice Screen
Navigation: Sales → Invoices → Create Invoice / Generate from Shipment
| Versa Field Name | Screen Location | Purpose | GL Account Impact |
|---|---|---|---|
| Invoice Currency | Header | Transaction currency | Accounts Receivable |
| Exchange Rate / Multiplier | Header → Financials | Base currency conversion | Revenue |
| Invoice Total (FCY) | Header | Foreign currency amount | Reference |
| Invoice Total (BCY) | Header | Base currency value | AR / Revenue |
| Post Invoice | Action Button | Triggers accounting entry | AR / Revenue |
Screenshot Mapping:
- Invoice Header → Currency & Exchange Rate section
- Invoice Totals Panel → FCY vs BCY values
- Posting Preview → AR & Revenue lines
D. Versa Period-End Revaluation Screen
Navigation: Accounting → Period-End → Foreign Currency Revaluation
| Versa Field Name | Screen Location | Purpose | GL Account Impact |
|---|---|---|---|
| Revaluation Date | Header | Period-end date | Reference |
| Closing Exchange Rate | Line Level | Revaluation rate | AR |
| Unrealized FX Account | Setup / Defaults | Temporary FX posting | Unrealized FX Gain/Loss |
| Run Revaluation | Action Button | Creates a revaluation journal | AR / Unrealized FX |
Screenshot Mapping:
- Revaluation Run Screen → AR balances by currency
- Generated Journal Preview → Unrealized FX lines
E. Versa Receive Payment Screen
Navigation: Sales → Invoices → Receive Payment
| Versa Field Name | Screen Location | Purpose | GL Account Impact |
|---|---|---|---|
| Payment Currency | Header | Foreign currency of receipt | AR |
| Exchange Rate / Multiplier | Header → Financials | Cash conversion rate | Bank |
| Receive To Account | Header | Bank or Cash account | Bank |
| Applied Amount (FCY) | Line Level | Foreign currency cleared | AR |
| FX Difference | Auto-calculated | Gain/Loss identification | Realized FX Gain/Loss |
| Post Payment | Action Button | Creates accounting entry | Bank / AR / FX |
Screenshot Mapping:
- Receive Payment Screen → Exchange Rate field
- Invoice Application Grid → Applied FCY amount
- Posting Preview → FX Gain/Loss line
9. Full GL Lifecycle Summary
| Stage | GL Accounts Impacted |
|---|---|
| Sales Order | None |
| Shipment | Inventory, COGS |
| Invoice | Accounts Receivable, Revenue |
| Revaluation | Accounts Receivable, Unrealized FX |
| Reversal | Accounts Receivable, Unrealized FX |
| Payment | Bank, Accounts Receivable, Realized FX |
10. Validation & Audit Checklist
✔ Revenue never changes after invoice posting
✔ Inventory is never revalued for FX
✔ Unrealized FX reverses automatically
✔ Only payment creates realized FX
✔ AR always equals foreign balance × active exchange rate
Final Accounting Principle
Foreign currency accounting is an Accounts Receivable valuation problem, not a revenue problem.
ERP systems handle this by:
- Locking revenue at the invoice
- Revaluing AR at period end
- Recognizing FX differences cleanly at payment
This ensures accurate financial reporting, audit compliance, and clear FX visibility.
Comments and Suggestions
0 comments
Please sign in to leave a comment.
Related articles