Overview
Multi-currency matching converts both transaction amounts to a base currency using the appropriate FX rate, then applies standard matching rules. If the converted amounts fall within tolerance, Matcher creates a match. Otherwise, it creates an exception for review.

Enabling multi-currency
Context configuration
Enable multi-currency matching at the context level when creating or updating a context:Multi-currency settings
| Setting | Type | Description |
|---|---|---|
enabled | Boolean | Enable multi-currency matching |
base_currency | String | ISO 4217 code for comparison currency |
fx_rate_source | String | Source for FX rates |
fx_tolerance_percent | Decimal | Percentage tolerance for FX variance |
fx_tolerance_absolute | Decimal | Absolute tolerance in base currency |
rate_date_strategy | String | How to determine which date’s rate to use |
fallback_behavior | String | Action when FX rate unavailable |
Base currency
The base currency is used as the common denominator for all comparisons.
Choosing a base currency
| Scenario | Recommended Base | Rationale |
|---|---|---|
| US-based company | USD | Matches reporting currency |
| EU-based company | EUR | Matches reporting currency |
| Multi-region operations | USD | Most liquid, widely available rates |
| Brazil domestic + international | BRL | Matches local reporting |
Changing base currency
FX rate sources
Matcher supports multiple sources for foreign exchange rates.
External provider
Connect to third-party FX rate APIs by configuring the FX rate source in your context settings:| Provider | Features | Update Frequency |
|---|---|---|
| Open Exchange Rates | 170+ currencies | Hourly |
| Fixer.io | 170+ currencies | Hourly |
| Currency Layer | 168 currencies | Hourly |
| XE | 185+ currencies | Real-time |
| European Central Bank | EUR crosses | Daily |
Midaz asset rate engine (optional)
If you’re using Midaz Ledger, you can query FX rates directly from it:This option is only available if you have Midaz integrated. See Midaz Integration for setup instructions.
Manual entry
Upload rates manually for controlled environments by including them in the context configuration or using dedicated rate management.Rate date strategy
Determine which date’s FX rate to use for conversion.
Strategy options
| Strategy | Description | Use Case |
|---|---|---|
earlier_date | Use rate from earlier transaction date | Default, conservative |
later_date | Use rate from later transaction date | When settlement date matters |
source_date | Use rate from internal source date | When internal is authoritative |
target_date | Use rate from external source date | When external is authoritative |
average | Average of both dates’ rates | Reduce single-day volatility |
Configure rate date strategy
Rate time options
| Option | Description |
|---|---|
opening | Day’s opening rate |
closing | Day’s closing rate (default) |
midday | 12:00 rate |
spot | Real-time rate at transaction time |
Tolerance configuration
Multi-currency matching uses combined tolerance to account for FX fluctuations.
Tolerance formula
Tolerance examples
Example 1: Within Tolerance| Transaction | Original | FX Rate | Base (USD) |
|---|---|---|---|
| A (EUR) | 1,000.00 | 1.0850 | 1,085.00 |
| B (USD) | 1,095.00 | 1.0000 | 1,095.00 |
- Difference: $10.00 (0.92%)
- Tolerance: max(1,095) = max(21.90) = $21.90
- Result: Match (21.90)
| Transaction | Original | FX Rate | Base (USD) |
|---|---|---|---|
| A (EUR) | 1,000.00 | 1.0850 | 1,085.00 |
| B (USD) | 1,150.00 | 1.0000 | 1,150.00 |
- Difference: $65.00 (5.99%)
- Tolerance: max(1,150) = max(23.00) = $23.00
- Result: No Match (23.00)
Custom tolerance by currency pair
Set different tolerances for volatile currency pairs:Handling missing FX rates
When an FX rate is unavailable, Matcher follows the configured fallback behavior.
Fallback options
| Behavior | Description | Risk Level |
|---|---|---|
exception | Create exception for manual handling | Lowest |
skip | Skip match attempt, continue processing | Low |
previous_day | Use previous available rate | Medium |
interpolate | Estimate from surrounding dates | Medium |
fail | Fail the entire job | Highest |
Configure fallback
Missing rate exception
When fallback isexception, the transaction becomes an exception with specific details:
Confidence scoring impact
Multi-currency matching affects confidence scoring through the currency component.
Currency score calculation
| Scenario | Currency Score |
|---|---|
| Same currency | 30/30 (100%) |
| Different currency, exact FX match | 28/30 (93%) |
| Different currency, within 1% FX variance | 25/30 (83%) |
| Different currency, within 2% FX variance | 22/30 (73%) |
| Different currency, >2% FX variance | 15-20/30 |
| FX rate unavailable (fallback used) | 10/30 (33%) |
Score example
Multi-currency match with slight FX variance:Variable rates by transaction attributes
Advanced Feature: Variable rate matching allows rates to change based on transaction attributes like MCC, card type, transaction method, and merchant segment. This is commonly used in acquiring/card network reconciliation.
Common use cases
Acquiring Reconciliation (Interchange Plus)- Rate varies by MCC (Merchant Category Code)
- Different rates for credit vs. debit cards
- Segment-based pricing (retail, restaurant, fuel)
- Transaction method (physical vs. link/online)
- Different rates per carrier
- Rate varies by plan type and region
- Promotional vs. standard pricing
- Volume-based rate tiers
- Customer segment pricing
- Time-based rate variations
Rate lookup configuration
Configure rate lookup based on transaction metadata in your context settings:Best practices for variable rates
Cache rate lookups
Cache rate lookups
Enable caching for rate API calls to reduce latency. Most rates don’t change within a day.
Version your rate tables
Version your rate tables
Use versioned rate tables (e.g., “2024Q1”) and track which version was used for each match.
Set appropriate tolerance
Set appropriate tolerance
Network fees can vary slightly. Set tolerance to 1-2% to avoid false exceptions.
Monitor rate lookup failures
Monitor rate lookup failures
Alert when rate lookups fail frequently - may indicate missing MCC codes or API issues.
Best practices
Use reliable FX rate sources
Use reliable FX rate sources
Connect to established FX providers with historical data. Avoid sources with gaps or delayed updates.
Set appropriate tolerances by currency
Set appropriate tolerances by currency
Volatile currencies (emerging markets) need higher tolerances. Stable pairs (EUR/USD) can use tighter tolerances.
Monitor FX variance trends
Monitor FX variance trends
Regularly review FX variance reports. Increasing variance may indicate timing issues or rate source problems.
Document rate source decisions
Document rate source decisions
Record why specific rate sources and strategies were chosen. This helps during audits and troubleshooting.
Plan for rate unavailability
Plan for rate unavailability
Consider settlement timing
Consider settlement timing
FX rates can shift between transaction and settlement dates. Choose rate date strategy based on your accounting requirements.

