CAD $ USD $ 1.38 rate?
ERP Integration

Handling Multi-Currency in ERP–Salesforce Integrations

Multi-currency is one of the most consistently underestimated problems in ERP–Salesforce integration. Here's where it actually goes wrong and how to handle it correctly.

9 min read April 2026 Purivo Team
Multi-Currency ERP Integration Salesforce CAD / USD Reporting

If your business invoices in more than one currency, you already know that currency handling adds complexity to every financial report you produce. When you introduce an ERP–Salesforce integration, that complexity gets multiplied — because you're now dealing with two systems that each have their own opinions about how to store, convert, and display multi-currency amounts.

For Canadian companies selling into the US market, the most common scenario is CAD and USD invoices flowing through the same ERP, being synced to Salesforce, and then being reported on in a way that needs to make sense to both finance (which thinks in CAD) and sales leadership (which sometimes thinks in USD). Getting this right requires deliberate decisions at the design stage.

Two Systems, Two Currency Models

The fundamental problem is that ERP systems and Salesforce handle multi-currency differently — and those differences surface in ways that are hard to anticipate until you're looking at reports with wrong numbers.

How ERPs Store Currency

Most ERP platforms store transaction amounts at the transaction level — the invoice was issued in USD at a specific exchange rate on a specific date, and both the USD amount and the CAD-equivalent amount are stored against that transaction. The exchange rate used is the rate in effect at the time of the transaction, not today's rate.

This is the correct approach for financial accounting. The realized value of a USD invoice depends on the rate at the time it was issued and collected — not what the rate is today. ERPs get this right because accountants designed them.

How Salesforce Handles Currency

Salesforce's standard currency management uses a corporate currency (usually the home currency of the business) and dated exchange rates. When Salesforce converts an amount from a transaction currency to the corporate currency, it uses the exchange rate that was in effect for the period — which it looks up from its own exchange rate table, not from the original transaction.

For CRM purposes, this is usually fine — approximate converted values are good enough for pipeline reporting. For financial reporting based on ERP data synced into Salesforce, it creates a problem: the converted values in Salesforce may not match the converted values in the ERP, because they're using different exchange rates.

The real-world manifestation: A finance team runs a CAD-equivalent revenue report in Salesforce and gets a number that's slightly different from the same report in the ERP. Both systems are technically right — they're just using different exchange rates. The question is which number the business wants to report, and that's a business decision, not a technical one.

The Common Scenarios

Scenario 1: Transaction amounts display correctly, converted totals don't

Invoice lines show the right USD amount, but when you roll them up to a customer total or a period total in CAD, the number doesn't match the ERP. This is almost always a rate mismatch — Salesforce is using its own rate table rather than the rate from the original transaction.

Scenario 2: Report subtotals show a different currency than the detail records

In Salesforce reports, subtotals and grand totals are always displayed in the corporate currency, even when the individual records show transaction-currency amounts. This is a known Salesforce limitation — it's the expected behaviour, but it surprises users every time.

Scenario 3: Historical exchange rates are wrong

When historical invoice data is loaded into Salesforce, the exchange rates applied to old transactions may reflect current rates rather than the rates at the time of the transaction. A 2023 USD invoice should convert at the 2023 rate — but if Salesforce's rate table doesn't go back that far, it uses the earliest rate available, which may be significantly different.

The Design Decisions That Matter

Store the converted amount from the ERP

One clean solution to the rate mismatch problem is to sync the already-converted CAD amount from the ERP alongside the transaction-currency amount. Rather than asking Salesforce to convert USD amounts using its rate table, you pass in the CAD value that the ERP calculated at the correct historical rate. Salesforce then displays and aggregates that value without doing any conversion of its own.

This requires a dedicated field on the Salesforce object for the ERP's converted amount — separate from Salesforce's own currency conversion fields. It adds a field, but it solves the accuracy problem definitively.

Decide on your reporting currency early

Before building any reports on integrated data, document the answer to this question: when we report revenue in a single currency, which currency is it, and which exchange rate do we use? The options are: transaction currency (no conversion), converted at the rate from the ERP, or converted at Salesforce's current/dated rate. Each is defensible, but you have to pick one — and it should match how finance reports the same numbers from the ERP.

Use Dated Exchange Rates in Salesforce

Salesforce has a feature called Advanced Currency Management that enables dated exchange rates — exchange rates tied to specific periods rather than a single current rate. If you're not using this and you have significant historical data, your converted totals will be wrong. Enable it before you load historical data.

Surface both currencies where users need them

Sales reps may need to see the USD invoice amount. Finance needs the CAD equivalent. Rather than forcing everyone to look at the same field, build page layouts and reports that surface the right currency for the right audience. This is more of a UX decision than a technical one, but it significantly affects adoption.

Specifically for CAD/USD in Canada

For Canadian businesses, the CAD/USD pair is the most common multi-currency scenario. A few things specific to this environment:

  • The CAD/USD rate moves meaningfully over time. A conversion difference of 3–5% between the ERP rate and Salesforce's rate is not unusual and will be noticed by finance.
  • If your ERP stores both CAD and USD amounts at the transaction level, use that data. Don't re-convert in Salesforce when the correct converted amount is already available.
  • For commission calculations on multi-currency invoices, decide explicitly whether commissions are calculated on the transaction currency or the CAD equivalent — and document that decision. Ambiguity here causes disputes.
  • Invoice PDFs sent to US customers should show USD amounts. Make sure your PDF generation logic selects the right currency field based on the customer's billing currency.

Getting It Right From the Start

Multi-currency is one of those problems that's much cheaper to design correctly upfront than to fix after the integration is live and reports are in use. Once finance has been looking at a revenue report for three months, correcting a systematic currency conversion difference requires explaining why the numbers changed — which is a difficult conversation.

The right time to have the exchange rate and reporting currency conversation is during the integration design phase, not after go-live. If you're planning an ERP–Salesforce integration and your business invoices in multiple currencies, make currency handling a first-class topic in the design sessions.

P
Purivo Team

Purivo is an IT consulting firm helping mid-market companies implement ERP systems, build Salesforce solutions, and connect the two. We work across the full project lifecycle — from system selection through go-live and ongoing optimization.