Multi-Currency Pricing for Your Store: Display, Exchange Rates, Tax, and Payment

The most common technical mistake with multi-currency pricing is converting in real time on the storefront and then converting again at checkout, which makes the displayed price and the checkout price differ by more than 1% and directly drives up chargebacks. The right approach is to pull exchange rates once a day on a schedule (a central bank or XE AP...

多币种定价:四层技术决策与汇率更新节奏Multi-currency pricing: four-layer tech decisions and FX update cadence 前台按实时汇率换算是最常见的坑 —— 买家看到价和结账价不一样Frontend real-time FX conversion is a classic trap — price shown differs at checkout 层级Layer 关键动作Key action 量化门槛Quantitative bar 1 显示层1. Display 按IP自动识别 · 手动切换Geo-IP detect · manual override 显示价与结账价差≤1%Display vs checkout gap ≤ 1% 2 汇率层2. FX rate 每日定时更新 · 不实时Daily batch, not real-time 每日UTC 0点更新一次Daily at UTC 00:00 3 税费层3. Tax 欧盟含税 · 美国税前EU tax-inclusive · US pre-tax VAT按目的国税率VAT by destination country 4 结算层4. Settlement 按主币种结算 · 买家本币支付Settle in base, buyer pays local Stripe/PayPal按卡币种结算Settle by card currency via Stripe 核心规则:前台显示价与结账价必须用同一批汇率,差不超过1%Core rule: display price and checkout price must share the same FX batch, gap ≤ 1% 汇率来源推荐央行或XE API,每日定时拉取,不要在前端实时换算Use central bank or XE API, pull once daily; never convert real-time in the browser 红线:前台用实时汇率显示,结账时支付通道再换一次,价差就是退单率Red line: real-time frontend FX plus gateway FX at checkout = price gap = chargebacks B2B询盘型网站不建议在线支付,多币种只做展示不做结算B2B inquiry sites: show multi-currency but do not process payment online
Multi-Currency Pricing in Four Layers: Display, Rates, Tax, Settlement

Multi-Currency Pricing for Your Store: Display, Exchange Rates, Tax, and Payment

Bottom line first: Multi-currency pricing has four layers: display, exchange rates, tax, and settlement. The most common technical mistake is converting in real time on the storefront and then converting again at checkout, which makes the displayed price and the checkout price differ by more than 1% and directly drives up chargebacks. The right approach is to pull exchange rates once a day on a schedule (a central bank or XE API is recommended) and use the same batch of rates for both the displayed price and the checkout price, keeping the gap under 1%. For B2B inquiry-based sites, use multiple currencies for display only, not for settlement, and process online payments through Stripe in the card’s currency.

1. Three Technical Mistakes in Multi-Currency Display

Mistake one: converting prices on the storefront by calling an exchange rate API in real time with JavaScript. The price a buyer sees when the page loads reflects the rate at that moment, but by the time they add the item to the cart, fill in their address, and reach checkout, the rate has moved and the checkout price no longer matches the displayed price. On B2C sites this pushes up chargebacks; on B2B sites buyers abandon the cart and go straight to an inquiry.

Mistake two: displaying multiple currencies without localizing tax. EU buyers expect to see tax-inclusive prices (MwSt. inkl.), while US buyers expect to see pre-tax prices plus an estimated sales tax. If you show EU users a pre-tax price, they assume another 20% is coming and leave. Mistake three: forcing online payment onto a B2B inquiry-based site. B2B orders are usually large, require a quote, and need payment terms, which online payment channels cannot handle; forcing it in only raises the risk of chargebacks. For a discussion of pricing strategy, see Pricing for Overseas Markets: From Cost-Plus to Value-Based Pricing.

Technical Mistake What actually happens The right way
Real-time rate conversion via storefront JS Displayed and checkout prices differ by over 1% Pull rates daily in one batch, same rates front and back
Switching currency but not tax EU buyers assume another 20% in tax Show tax-inclusive or pre-tax prices by destination country
Forcing online payment on a B2B site High chargeback risk on large orders Display multiple currencies only, take inquiries and quotes
Using the merchant’s spot rate 3% to 5% above the central bank rate Use the central bank mid-rate plus a 1% to 2% buffer
No manual currency switcher VPN users see the wrong currency Add a currency selector in the footer, default by IP

2. How Often to Update Rates: Once a Day, Not in Real Time

For multi-currency display, a B2B store should update exchange rates once a day, pulling them in a batch at 00:00 UTC and caching them in the database for the whole day. Do not call an exchange rate API in real time on the front end. There are three reasons: first, real-time calls add page load delay and hurt Core Web Vitals metrics; second, exchange rate APIs have call limits, so real-time calls are expensive; third, real-time conversion makes the displayed price and the checkout price drift apart.

Three recommended exchange rate sources: the European Central Bank daily reference rate (free and stable), the XE API (free tier is enough for a small site), and Open Exchange Rates (1,000 calls per month on the free plan). Add a 1% to 2% merchant buffer to the cached rate, because the rate your payment provider actually settles at runs slightly higher than the ECB mid-market rate. For managing exchange rate risk in B2B quotes, see Exchange Rate Risk Management. This article covers front-end display only.

Exchange Rate Options Update frequency Use cases Cost
ECB Reference Rate Once a day B2B sites focused on Europe Free
XE API Once a day Multi-currency B2B sites Free tier is enough for a small site
Open Exchange Rates Every hour High-volume B2C sites 1,000 calls per month on the free plan
Stripe Auto Conversion Real time at payment Small B2C orders paid by card Stripe settles in the card’s currency

3. Tax Calculation: By Destination Country, Not Warehouse Location

The core rule for tax calculation is that it follows the destination country, not the warehouse location. When a German buyer purchases your goods, whether you ship direct from China or from an EU warehouse, your German storefront must show prices including 19% MwSt. When a US buyer purchases, show prices before tax and add sales tax at checkout based on their state’s rate. This rule is called the destination principle, and both EU VAT rules and US sales tax rules follow it.

Example: an industrial sensor exporter whose site shows prices in USD before tax by default. A German buyer opens the page and sees a sensor priced at $100. He assumes 19% German VAT will be added and does the math as $119. If the site doesn’t localize taxes, he’ll see the price as unclear and send an inquiry asking “including VAT?” The right approach: when a German IP visits, switch automatically to the EUR price including tax and show “€109.90 inkl. MwSt”; when a US IP visits, show “$99.00 + sales tax”. For inquiry form reliability, see Inquiry Form Reliability.

Region Price Display Tax Handling Typical Rate
EU (Germany) EUR price incl. tax MwSt included, nothing added 19% (standard) / 7% (reduced)
EU (France) EUR price incl. tax TVA included 20%
United States USD price before tax Sales tax added at checkout by state 0% to 10%, varies by state
UK GBP price incl. tax VAT included 20%
Japan JPY price incl. tax Consumption tax included 10%

4. Payment Settlement: Charge in Your Main Currency, Pay Out in the Card’s Currency

Multi-currency pricing and payment settlement are two different things. Pricing layer: show prices in the buyer’s local currency on the front end so they know what they’re paying. Settlement layer: as the seller, you still ultimately receive your main currency (usually USD or CNY). The payment provider handles the currency conversion in between, so don’t build your own conversion logic into the site.

Recommended setup: buyers see prices in EUR including tax, choose Stripe at checkout, and Stripe charges their card in the card’s currency (a euro card is charged in euros, a dollar card in dollars at the current exchange rate). At settlement, Stripe converts the funds into your primary currency and deposits them in your bank account. This way you only maintain one set of prices in your primary currency: the storefront display relies on a cached exchange rate, and settlement is handled by the payment provider. Don’t build your own currency conversion logic into your site’s backend — it’s costly to maintain and easy to get wrong. For payment provider options and fee comparisons, see Inquiry Form Reliability the payment articles on this site.

Stage Currency Rate source What to watch for
Storefront display Buyer’s local currency Central bank rate, cached daily Plus a 1% to 2% merchant buffer
Add to cart Buyer’s local currency Same as storefront cache Locked for the session, no drift
Checkout charge Cardholder’s local currency Stripe/PayPal live rate Tell buyers they’ll be charged at this rate
Seller settlement Primary currency (USD/CNY) Payment provider settlement rate 1% to 3% lost to conversion on arrival

5. Multi-currency strategy for B2B inquiry-based sites

Multi-currency strategy is completely different for B2B sites and B2C ecommerce sites. B2B orders are large (usually thousands to hundreds of thousands of dollars), require quotes, payment terms, and volume-based tiered pricing — scenarios online payment providers can’t handle. So multi-currency on a B2B site does just one thing: show buyers prices in a currency they know, reduce friction in the conversation, and guide them to send an inquiry.

How it works in practice: switch the display currency automatically by IP, add a manual currency selector at the bottom (USD/EUR/GBP/JPY/AUD), convert prices using a daily cached rate, and label the displayed price with “Reference price, final quote in USD”. Add a “Preferred currency” dropdown to the inquiry form so buyers can choose the currency they want to be quoted in. For delivery commitments and quoting standards, see Delivery Commitment.

Site type Multi-currency approach Payment method Rate updates
B2C ecommerce site Display and checkout, end to end Stripe/PayPal online payment Hourly or daily
B2B inquiry site Display only, no checkout Drive inquiries, paid by T/T Once a day
Hybrid site Retail SKUs paid online, large orders by inquiry Routed automatically by order value Once a day

FAQ

How much difference between the storefront price and the checkout price is normal?
Under 1% is healthy. Above 1.5% buyers start questioning the price, and above 3% chargebacks rise noticeably. The reason is that the storefront uses a daily cached rate while checkout uses the payment provider’s live rate, and a 1% to 2% gap between them is normal conversion loss. State clearly on the checkout page that the cardholder will be charged in their card’s currency and that the payment provider’s rate applies.
How often should exchange rates update?
Once a day for B2B sites: pull central bank fixing rates in a batch at 00:00 UTC and cache them for the full day. Don’t call a rate API from the front end in real time — it slows the page down and causes price drift. High-traffic B2C sites can update hourly, but cart prices should still be locked for the session.
How should EU VAT be displayed on the site?
EU buyers must see tax-inclusive prices. When someone visits from a German IP, show the EUR price with tax included, labeled inkl. MwSt, at the 19% rate. For a French IP, show the EUR price with TVA included, at the 20% rate. Never show EU users a pre-tax price with tax added at checkout — they expect to see the tax-inclusive price from the start. For direct-ship orders outside the EU, you can show pre-tax prices as long as checkout makes clear that tax is not included.
Should a B2B site accept online payments?
Probably not. B2B orders are large, they need quotes, payment terms, and tiered pricing by quantity — online payment gateways can’t handle any of that. On a B2B site, multi-currency is for display only: let buyers see prices in the currency they know, then steer them to send an inquiry. Add a preferred currency field to the inquiry form so buyers can pick the currency they want to be quoted in.
How does multi-currency settlement differ between Stripe and PayPal?
Stripe charges the cardholder in their own currency and converts to your primary currency at settlement, with a currency loss of about 1% to 2%. PayPal charges the buyer in their own currency and converts to your primary currency at settlement, with a loss of about 2.5% to 4%. Stripe’s exchange rates are more transparent; PayPal is friendlier to buyers. For small B2C orders, use both. For a B2B inquiry site, use neither.
Should I add a merchant buffer to the exchange rate cache, and how much?
Add 1% to 2%. The central bank mid-market rate is an interbank rate, and the payment gateway’s actual settlement rate will come in a little above it — skip the buffer and you eat the currency loss. Go above 2% and buyers will think your rates aren’t transparent. State the buffer percentage in a footnote on the checkout page, for example: Rates include a 1.5% processing margin.

Final thoughts

The technical core of multi-currency pricing isn’t currency conversion — it’s consistency: the price on the front end, the price in the cart, and the price at checkout must all use the same set of exchange rates. Real-time conversion looks advanced, but in practice it leaves price drift to the buyer, which ends up showing up as refunds and abandoned carts.

Three steps to launch: First, pull the central bank rate once a day on a schedule and cache it in your database. Second, display tax-inclusive or pre-tax prices based on the destination country — tax-inclusive for the EU, pre-tax for the US. Third, on a B2B site, show multi-currency prices without settling in them and steer buyers to inquiries; on a B2C site, settle through Stripe in the card’s currency and don’t write your own conversion logic.

One line worth remembering: multi-currency pricing isn’t about getting your site to convert currencies for you — it’s about letting buyers see a price that won’t change, in the currency they know.

Crater
Crater Crater experts

Official Organization · Crater

Crater is a go-global services company specializing in WordPress standalone site development + Google SEO + GEO full-funnel growth, serving sectors including smart hardware, industrial equipment, SaaS, and new energy.

Product CapabilitiesMethodology WhitepaperIndustry Report
965articles shared
78knowledge base articles