Exchange Rates API
The Exchange Rates API provides endpoints for managing exchange rates used in currency translation for multi-currency accounting per ASC 830.Base Path
Rate Types
Exchange rates support multiple rate types per ASC 830:- Spot - Spot rate for a specific date (for balance sheet items)
- Average - Period average rate (for income statement items)
- Historical - Historical rate at transaction date
- YearEnd - Year-end closing rate (for balance sheet)
Rate Sources
- Manual - Manually entered rates
- ECB - European Central Bank rates
- FederalReserve - US Federal Reserve rates
- System - System-calculated rates (e.g., triangulation)
List Exchange Rates
Retrieve a paginated list of exchange rates with filtering.GET /api/v1/exchange-rates
Organization UUID
Filter by from currency (ISO 4217 code)
Filter by to currency (ISO 4217 code)
Filter by rate type:
Spot, Average, Historical, YearEndFilter by effective date start (ISO 8601: YYYY-MM-DD)
Filter by effective date end (ISO 8601: YYYY-MM-DD)
Maximum items per page
Number of items to skip
Get Exchange Rate
Retrieve a single exchange rate by ID.GET /api/v1/exchange-rates/{id}
Exchange rate UUID
Create Exchange Rate
Create a new exchange rate.POST /api/v1/exchange-rates
Organization UUID
From currency (ISO 4217 code, e.g., “EUR”)
To currency (ISO 4217 code, e.g., “USD”)
Exchange rate (decimal string, e.g., “1.0850”)
Effective date for this rate (ISO 8601: YYYY-MM-DD)
Rate type:
Spot, Average, Historical, YearEndRate source:
Manual, ECB, FederalReserve, SystemFrom currency and to currency must be different. The API will reject rates where
fromCurrency equals toCurrency.Bulk Create Exchange Rates
Create multiple exchange rates in a single request.POST /api/v1/exchange-rates/bulk
Useful for importing exchange rates from external sources like ECB or Federal Reserve.
Delete Exchange Rate
Delete an exchange rate. Rates used in transactions may not be deleted.DELETE /api/v1/exchange-rates/{id}
Rate Queries
Get Rate for Date
Get the exchange rate effective on a specific date.GET /api/v1/exchange-rates/rate
From currency (ISO 4217 code)
To currency (ISO 4217 code)
Date to query (ISO 8601: YYYY-MM-DD)
Rate type:
Spot, Average, Historical, YearEndGet Latest Rate
Get the most recent exchange rate for a currency pair.GET /api/v1/exchange-rates/latest
Get Closest Rate
Get the exchange rate closest to a specific date (fallback if exact date not available).GET /api/v1/exchange-rates/closest
Get Period Average Rate
Get the average exchange rate for a fiscal period. Used for translating income statement items per ASC 830.GET /api/v1/exchange-rates/period-average
From currency (ISO 4217 code)
To currency (ISO 4217 code)
Fiscal year (e.g., 2025)
Fiscal period (1-13)
Get Period Closing Rate
Get the closing exchange rate for a fiscal period. Used for translating balance sheet items per ASC 830.GET /api/v1/exchange-rates/period-closing
Currency Translation per ASC 830
Balance Sheet Translation
Balance Sheet Translation
Use: Period closing rate (
YearEnd or Spot rate type)Assets and Liabilities:- Translate at the closing rate as of the balance sheet date
- Example: EUR 100,000 asset at 1.0850 = USD 108,500
- Common Stock: Historical rate at issuance
- Retained Earnings: Computed from prior periods
Income Statement Translation
Income Statement Translation
Use: Period average rate (
Average rate type)Revenue and Expenses:- Translate at the weighted average rate for the period
- Example: EUR 50,000 revenue at average rate 1.0800 = USD 54,000
Specific Transactions
Specific Transactions
Use: Historical rate (
Historical rate type)Non-monetary items:- Fixed assets: Rate at acquisition date
- Equity investments: Rate at investment date
- Common stock: Rate at issuance date
Translation Adjustment
Translation Adjustment
The cumulative translation adjustment (CTA) captures the effect of exchange rate changes:Calculation:
- Translate all assets and liabilities at closing rate
- Translate equity at historical rates
- Translate income statement at average rate
- CTA = Balancing figure to make equation balance
- Show as separate component of Other Comprehensive Income (OCI)
- Accumulates in Accumulated OCI in equity section
Error Responses
Exchange Rate Not Found (404)
Exchange Rate Not Found (404)
Same Currency Error (400)
Same Currency Error (400)
Best Practices
Daily Rate Updates
Import daily spot rates from ECB or Federal Reserve for accurate currency translation.
Period Average Rates
Calculate and store period average rates at the end of each fiscal period for income statement translation.
Historical Rates
Record historical rates at the time of significant transactions (acquisitions, equity issuances) for proper balance sheet translation.
Audit Trail
Never delete exchange rates that have been used in transactions. This preserves the audit trail and ensures historical reports remain accurate.