VoiSAP — SAP FICO Error Guide

SAP "No Exchange Rate Found":
What It Means and the Exact OB08 Fix

Every foreign currency posting in SAP — a USD invoice in a CAD company, a EUR payment, an intercompany transaction — requires an exchange rate in OB08. When no rate exists for the currency pair and posting date, SAP blocks the posting with "no exchange rate found." The fix takes 5 minutes. The challenge is building a process so it never recurs. This guide covers both. Written by an SAP FICO consultant with 18 years of real project experience.

Error Explained
OB08 Fix
4 Causes
Monthly Prevention
S/4HANA 2026
5min
To Fix
OB08
Where to Fix
21
FAQ Answers
3
Rate Types
📖 12 min read
ECC + S/4HANA
Call Us
+1 416-569-4606
Email Us
contact@voisap.com
SAP FICO foreign currency exchange rate management — OB08 maintenance for USD CAD EUR currency pairs
The no exchange rate error is one of the most predictable errors in SAP — it appears whenever a foreign currency posting is attempted and the monthly rate has not been entered in OB08. The fix is always in OB08. The real challenge is building a process so the rate is there before the first posting of the month, not after it fails.

Quick Answer — SAP No Exchange Rate Found

  • The error means SAP found no exchange rate in OB08 for the currency pair, exchange rate type (usually M), and posting date you are using. Every foreign currency posting needs a rate.
  • The fix: go to OB08. Enter exchange rate type M, the currency pair (e.g. USD/CAD), a Valid From date on or before the posting date, and the rate. Save. Retry the posting — it will succeed.
  • 4 causes: rate not entered for this month; Valid From date is after the posting date; wrong rate type; inverse currency pair direction entered.
  • Prevention: designate a person or automate via OB09 file upload to enter rates at the start of each month before any postings are made.
  • Identical in ECC and S/4HANA. Same OB08 transaction, same TCURR table, same fix.

Error messages you will see:
"No exchange rate found for currency pair USD / CAD on 14.08.2026"
"No rate found for currency type M, from USD to CAD, key date 14.08.2026"
"Enter an exchange rate" (in MIRO or FB60 when rate cannot be derived)
"No exchange rate found for translation" (in financial reporting)

OB08
Where to Fix
Type M
Standard Rate
TCURR
Rate Table
OB09
Bulk Upload
OB07
Rate Spreads
Key Takeaways
1

The Valid From date is the most common mistake. Entering a rate with Valid From = August 15 when the posting date is August 1 means SAP looks backwards from August 1, finds no rate, and errors. Always set Valid From to the first of the month.

2

SAP uses the look-back method. It finds the most recent Valid From date on or before the posting date. You only need to enter a new rate when the rate changes — the last rate stays valid until a newer one is entered.

3

Exchange rate type M covers most daily postings. Standard vendor invoices (MIRO, FB60), customer invoices, payments (F110), and journal entries all use type M. If you enter the rate under a different type, the posting will still fail.

4

Check the currency pair direction. SAP may need USD→CAD but you entered CAD→USD (the inverse). The rate exists but in the wrong direction. Check your system's quotation convention before entering — entering it backwards causes silent translation errors.

5

F110 payment runs need rates too. Automatic payment runs fail with this error if OB08 has no rate for the payment run date. Update OB08 before scheduling the payment run, not after it fails.

Background

How SAP Exchange Rates Work — OB08, TCURR, and Rate Types

Every financial posting in SAP that involves a currency different from the company code's local currency requires an exchange rate to convert the amount. A Canadian company (local currency CAD) receiving an invoice from a US vendor in USD needs SAP to know: how many CAD equals 1 USD on the posting date? That answer comes from OB08.

SAP stores exchange rates in the TCURR table, maintained through transaction OB08. Each rate entry has three key components: the exchange rate type (what purpose the rate serves), the currency pair (from/to currencies), and the Valid From date (the earliest date the rate applies). When a posting is made, SAP looks up TCURR at runtime — it searches for the most recent Valid From date on or before the posting date. If nothing is found, the error fires.

Plain English. Think of OB08 as a price list. Each row says "from this date onwards, 1 USD costs 1.36 CAD." When SAP needs to convert a USD invoice, it checks the price list for the most recent entry dated on or before today. If the price list has no entry for recent months — because nobody updated it — SAP has no price to use and blocks the transaction. Updating OB08 is adding a new row to the price list.

SAP OB08 exchange rate maintenance screen — currency pair USD CAD rate type M valid from date
OB08 stores exchange rates by type (M for average, G for buying, B for selling), currency pair, and Valid From date. SAP reads the most recent rate with a Valid From date on or before the posting date — there is no interpolation between dates. One row per month per currency pair is usually sufficient for type M rates used in AP/AR postings.
SAP Exchange Rate Types — What Each One Does
TypeNameUsed ForRequired For
MStandard / Average RateMost AP/AR postings — vendor invoices, customer invoices, payments, journal entriesAll orgs
GBank Buying RateForeign currency valuation at period-end (FAGL_FC_VAL). Rate at which bank buys foreign currencyMonth-end close
BBank Selling RateRate at which bank sells foreign currency. Used in some treasury and intercompany transactionsTreasury / IC
EUREMU / Group CurrencyTranslation to group/reporting currency for consolidation reportingGroup reporting
CustomOrganisation-definedSpecific transfer prices, intercompany rates, budget rates — created per business requirementVaries
Diagnosis

4 Root Causes of the No Exchange Rate Found Error

1
Exchange rate not entered for this month in OB08
The most common cause — nobody has entered the current month's rate yet. The last entry in OB08 for this currency pair is from a prior month. SAP looks back from the posting date and finds the old rate, which may be months out of date — or, if there has never been a rate entered for this pair, finds nothing at all. In either case the posting fails.
Fix: Enter the current month's rate in OB08 with Valid From = first of the month
2
Rate exists but Valid From date is after the posting date
Someone entered the August rate but used Valid From = August 15. A posting with date August 1 finds no rate — SAP looks back from August 1 and the nearest entry is July or earlier. This is a very common mistake when someone enters the rate mid-month after the error appears. They enter it with today's date as Valid From rather than the first of the month.
Fix: In OB08, delete the August 15 entry and re-enter with Valid From = August 1
3
Rate entered under the wrong exchange rate type
The rate was entered under type G (buying rate) but the posting transaction expects type M (average rate). Or a custom rate type was used when M was required. The rate exists in OB08 but under a different type than what the posting looks for — SAP cannot find it.
Fix: Check which type the transaction uses — usually M — and enter/copy the rate under that type
4
Rate entered for the inverse currency pair direction
The rate was entered as CAD→USD (1 CAD = 0.735 USD) but SAP expects USD→CAD (1 USD = 1.36 CAD). This depends on the quotation convention configured for each currency pair. If the convention says indirect quotation but the rate was entered as direct, SAP cannot find a rate in the expected direction. This cause is less common but causes the most confusion because the rate clearly "exists" in OB08.
Fix: Check the quotation convention in currency config and re-enter in the correct direction
The Fix

Step-by-Step: Entering Exchange Rates in OB08

Five minutes from error to working posting. All you need is OB08 and the correct rate for the currency pair.

1
Note the currency pair and rate type from the error message
The SAP error message tells you: the from-currency (e.g. USD), the to-currency (e.g. CAD), and optionally the exchange rate type (usually M). Note all three. Also note the posting date — your Valid From date in OB08 must be on or before this date.
2
Open OB08 and check what already exists
Go to OB08. On the selection screen, enter rate type M, the currency pair, and a date range (e.g. 01.01.2026 to today). Execute. Check whether any rates appear for the relevant period. If none appear — no rate has ever been entered for this pair. If rates appear but the most recent Valid From is before your posting date by more than a month, that's the issue (the old rate should still work via look-back — unless there truly is a gap).
3
Enter the new rate — New Entries in OB08
In OB08, click New Entries (or F5). Enter:
Exch. Rate Type: M
Valid From: first day of the current month (e.g. 01.08.2026) — not today's date if today is mid-month
From Currency: USD (or the foreign currency)
To Currency: CAD (or your local currency)
Exchange Rate: e.g. 1.3650 (meaning 1 USD = 1.3650 CAD)

Press Enter and Save (Ctrl+S). The rate is active immediately — no transport needed for OB08 rates in production.
4
Verify — retry the original posting
Return to the original posting transaction (MIRO, FB60, FB50, F-53). Retry the posting. The exchange rate should now default automatically in the document header's Exchange Rate field. If the error persists: check whether the rate type in the document header matches what you entered (look at the document header, Currency/Rate field — there is usually a Rate Type indicator). If it shows a different type than M, either enter the rate under that type or change the document's rate type to M.
5
Enter rates for all other affected currency pairs
If your company deals in multiple currencies (USD, EUR, GBP, AED, JPY), each pair needs its own OB08 entry. After fixing the immediate error, run a quick audit: go to OB08, filter by rate type M and the current month, and check whether all active currency pairs have a rate. If any are missing, enter them now — before the next posting fails and creates another emergency. For more than 5 pairs, use OB09 (bulk file upload) to save time.
Prevention

How to Stop the Exchange Rate Error from Recurring Every Month

Like the MMPV period close error, the no exchange rate error is entirely preventable. It only exists because rates were not entered before the first posting of the month. Three approaches eliminate it.

SAP finance team month-end checklist — exchange rate OB08 maintenance as first task before any foreign currency postings
The most effective prevention is making OB08 exchange rate maintenance item one on the month-start checklist — before any AP, AR, or payment postings are attempted. If the rates are in OB08 before the first posting of the month, the error never appears. Automating via OB09 or a data feed eliminates the human step entirely.
Option 1 — Manual process with a named owner (minimum viable)

Designate one person (treasury lead, AP manager, or SAP super-user) who owns exchange rate maintenance. Add it as item 1 on the month-start checklist: enter all currency pair rates in OB08 on the first working day of each new month, before any foreign currency postings are made. Simple, zero cost, fully controlled.

SAP treasury team maintaining monthly exchange rates in OB08 — USD CAD EUR currency pair rate maintenance
The most reliable prevention for the no exchange rate error is treating OB08 maintenance as a first-of-month task — before any AP invoice posting, customer invoice, or payment run is attempted. Entering all active currency pair rates takes under 10 minutes manually for most organisations, and under 2 minutes via OB09 file upload.
Option 2 — Bulk upload via OB09 (faster for multiple pairs)

Download exchange rates from your bank's website or a financial data service. Format them into the TCURR upload file format (rate type, from-currency, to-currency, valid-from date, rate value). Upload via OB09. For organisations with 5+ currency pairs, OB09 takes 2 minutes versus 15 minutes of manual OB08 entry and eliminates transcription errors.

Option 3 — Automated data feed (best practice for active FX exposure)

Connect SAP to a real-time or daily exchange rate data source: Reuters, Bloomberg, or your bank's FTP feed. Middleware (SAP Integration Suite, MuleSoft, or a custom ABAP batch job) pulls the rates daily or weekly and writes them to TCURR automatically. For organisations with significant foreign currency volume, this eliminates the manual step entirely and ensures rates are always current.

Audit trail. OB08 changes are logged — you can see who entered or changed a rate and when. If a rate is contested (e.g. an auditor questions why a January invoice used a December rate), the OB08 change log via table TCURR in SE16N with date filter confirms exactly what rate was in the system on the posting date.

FAQ

SAP No Exchange Rate Found — 21 Questions Answered

SAP found no exchange rate in OB08 for the currency pair, exchange rate type (usually M), and posting date. Four causes: (1) rate not entered for this month; (2) rate exists but Valid From date is after the posting date; (3) rate entered under the wrong exchange rate type; (4) rate entered for the inverse currency pair direction. The error message names the exact currency pair and date — use this to go straight to OB08 and enter the missing rate.

OB08 (Enter Exchange Rates) is the SAP transaction for maintaining currency exchange rates. Rates are stored by exchange rate type, currency pair (from/to), and Valid From date in the TCURR database table. When a foreign currency posting is made, SAP reads TCURR to find the rate with the most recent Valid From date on or before the posting date. OB08 must be updated regularly — monthly for most organisations using type M for standard AP/AR postings.

Go to OB08. Click New Entries. Enter: exchange rate type M, Valid From = first day of the current month (not today's date if today is mid-month), from-currency (e.g. USD), to-currency (e.g. CAD), and the exchange rate (e.g. 1.3650). Save. Return to the posting transaction (MIRO, FB60, F-53) and retry. The rate defaults automatically. If the error persists, verify the rate type in the document header matches what you entered in OB08.

Standard types: M (Standard/Average Rate) — used for most AP/AR invoices and daily postings; G (Bank Buying Rate) — used for period-end foreign currency revaluation (FAGL_FC_VAL); B (Bank Selling Rate) — used in some treasury transactions. Custom types can be created for specific purposes (budget rates, transfer prices). Most day-to-day posting errors involve type M. Enter your rate under M unless the error message or document header specifies a different type.

The Valid From date is the earliest date from which a rate in OB08 applies. SAP uses the most recent Valid From date on or before the posting date. If you enter a rate with Valid From = August 15 but the posting date is August 1, SAP finds no applicable rate for August 1 and errors. Always set Valid From to the first day of the applicable month — not today's date if you are entering mid-month. This ensures the rate covers all postings in that month from day one.

Yes — in MIRO, FB60, and FB50 there is an Exchange Rate field in the document header where you can manually type a rate for that specific posting. This overrides OB08 for this document only and does not update OB08. Useful for one-off situations where you need to post immediately. However, the manual rate may create an exchange rate difference compared to the OB08 rate — this has accounting implications. Always update OB08 after a manual entry so future postings use the correct rate automatically.

TCURR is the SAP database table that stores all exchange rates maintained in OB08. Key fields: KURST (rate type), FCURR (from-currency), TCURR (to-currency), GDATU (valid from date — stored inverted for indexing), UKURS (exchange rate value). Query via SE16N: filter KURST='M', FCURR='USD', TCURR='CAD' to see all USD/CAD rates for type M. Sort by GDATU descending to see the most recent rates first. This is the fastest way to diagnose whether a rate exists and confirm its Valid From date.

Each currency pair is maintained independently in OB08. A company may keep USD/CAD and EUR/CAD rates up to date monthly but miss CHF/CAD or JPY/CAD for currencies used less frequently. When a posting involving an unmaintained pair is attempted, the error appears — even though other pairs are fine. Check OB08 for the specific pair named in the error message. After fixing the immediate pair, audit all active pairs in OB08 to find other potential gaps before they cause their own errors.

Direct quotation: how much local currency equals 1 unit of foreign currency — e.g. 1 USD = 1.36 CAD (from the perspective of a CAD company). Indirect quotation: how much foreign currency equals 1 unit of local currency — e.g. 1 CAD = 0.735 USD. SAP can use either depending on configuration per currency pair. Entering a rate in the wrong quotation direction means SAP applies the inverse of the intended rate — a 1.36 CAD/USD rate entered as indirect when direct is expected results in SAP using 0.735 instead. Always check your system's quotation convention before entering OB08 rates for a new currency pair.

Most organisations use monthly maintenance — one rate per currency pair per month, with Valid From on the first of the month. SAP's look-back behaviour means the rate stays valid until a newer one is entered, so you only update when rates change. For volatile currencies, some organisations use weekly rates. For statutory reporting, month-end closing rates (type G) may be needed alongside the M rates. The minimum required to avoid errors: enter at least one rate per active currency pair per month, dated the first of the month.

Yes — three approaches: (1) SAP Currency Exchange Rate Service (S/4HANA Cloud) — built-in connection to financial data providers; (2) Middleware integration (SAP Integration Suite, MuleSoft) that pulls rates from Reuters, Bloomberg, or bank APIs and writes to TCURR via a batch program; (3) OB09 file upload — download rates from a bank or data service, format as the TCURR upload file, upload monthly. For organisations with significant FX exposure, automation eliminates the recurring error entirely. For smaller volumes, OB09 monthly upload is the most practical option.

Exchange rate type M (Standard Translation at Average Rate) is the default type for most financial postings — vendor invoices (MIRO, FB60), customer invoices (VF01), journal entries (FB50), and payments (F110, F-53). It represents the average or mid-market rate for the period. When you maintain rates in OB08, entering them under type M ensures they apply to the majority of daily transactions. Types G and B are reserved for period-end revaluation and specific treasury transactions.

Yes — F110 performs currency conversion when paying foreign currency invoices from a local currency bank account. If no exchange rate exists in OB08 for the payment run date, the payment proposal fails with a no-rate error. F110 uses the rate valid on the payment execution date — if OB08 has rates through July 31 and the payment run is scheduled for August 15, the run fails for foreign currency payments. Always update OB08 before scheduling the payment run for the new month, not after.

The exchange rate spread is the difference between buying (G) and selling (B) rates. SAP can calculate G and B rates automatically from the M rate using a configured spread percentage — configured in transaction OB07 (Maintain Exchange Rate Spreads). For example, if M = 1.3650 and the spread is 0.5%, SAP auto-calculates G = 1.3582 and B = 1.3718. This eliminates the need to maintain all three rate types separately in OB08. If your error involves G or B rates, check OB07 before entering them manually.

Yes — foreign currency revaluation (FAGL_FC_VAL in S/4HANA, F.05 in ECC) revalues open items and balances using period-end closing rates. It requires type G rates (or the type configured in the valuation method) for the revaluation date. If G-type closing rates are not in OB08 for month-end, the revaluation fails. This is separate from M-type rates needed for daily postings — both M (monthly average) and G (period-end closing) rates are needed for a complete month-end close process.

'No rate found for translation' appears during financial report translation — for example when running a profit centre report in group currency, or translating a financial statement to EUR for consolidation. SAP searches OB08 for a translation rate type (often a custom type or EUR) for the reporting period. If no rate of that type exists, the report cannot translate amounts. Fix: maintain the required translation rate type in OB08 for the reporting period. This is separate from the M-type rates used for posting — report translation rates may use a different type configured in the financial statement version or report settings.

Two methods: (1) In OB08, enter rate type M, the currency pair, and a date range — execute to see all rates for that pair and type with their Valid From dates; (2) Query TCURR in SE16N — filter by KURST='M', FCURR='USD', TCURR='CAD' and sort by GDATU (date) descending. TCURR gives you the raw data without the OB08 screen filters. Both methods let you identify gaps (months with no rate) and confirm what rate SAP would have used for a specific posting date.

OB09 (Upload Exchange Rates) allows bulk loading of exchange rates from a structured file into TCURR, rather than entering them manually line by line in OB08. Used by finance teams maintaining many currency pairs monthly. Download rates from your bank or financial data service, format as the TCURR upload file (columns: rate type, from-currency, to-currency, valid-from date, rate), and upload via OB09. For more than 5 currency pairs, OB09 is faster and more accurate than manual OB08 entry.

Yes — exchange rate storage (TCURR), maintenance (OB08), and error logic are identical in ECC and S/4HANA. The S/4HANA addition is an optional Currency Exchange Rate Service for S/4HANA Cloud customers providing automated rate feeds. For S/4HANA on-premise, the process is the same as ECC: maintain rates in OB08 or automate via OB09 or middleware. The error message, transaction, and fix are unchanged between platforms.

SAP uses the most recent Valid From date on or before the posting date. With rates for USD/CAD on 01.07.2026 and 01.08.2026: a posting dated 15.08.2026 uses the 01.08.2026 rate; a posting dated 15.07.2026 uses the 01.07.2026 rate. There is no interpolation. If June has no rate but May and July do, June postings use the May rate (look-back). You only need to enter a new rate when the rate changes — the previous rate stays valid until a newer one is entered. Never delete old OB08 rates — they are the historical record that SAP uses for backdated postings.

Yes — VoiSAP's SAP FICO training covers foreign currency configuration: exchange rate types, OB08 maintenance, foreign currency revaluation (FAGL_FC_VAL), and payment runs in foreign currencies — on a live SAP S/4HANA system. Book a free demo to discuss your background and the fastest path to your first SAP FICO role.

Learn SAP FICO Foreign Currency Configuration —
On a Real System, Not a Manual.

Book a free demo class with Gourav. See OB08, FAGL_FC_VAL, and foreign currency payments on a live SAP S/4HANA system before you commit to anything.

✅ Thank you! Gourav will be in touch within one business day.