CarCEO PROFeaturesPricingCompareBlogStart Free
Finance & Accounting

Multi-Currency Car Rental: How to Price, Charge and Book Revenue in More Than One Currency

CarCEO TeamOctober 11, 202611 min read
Banknotes and coins, a card terminal and a car key on a rental desk, with a car parked outside the window

Short answer: Decide three currencies separately: display, charge (matching the contract) and base, the currency of your books. Record each money event at that day's rate, and post differences at refund or settlement as realized FX gain or loss.

Foreign visitors, cross-border fleets and online bookings can put three currencies into a single rental. Getting it right is mostly about deciding, up front, which currency does which job.

Key Takeaways

  • Three currencies, three jobs. Display helps renters compare, the charge currency is what the contract and card authorization say, and the base currency is what your books and tax returns use.
  • The processor converts, at a price. On Stripe, a charge in a currency other than your settlement currency is converted, generally at the mid-market rate plus a conversion fee, and the renter's bank may add its own foreign-transaction fee.
  • Refunds don't reverse at the old rate. Stripe refunds the customer the exact amount in the currency they paid; the amount taken from your balance depends on the rate that day.
  • Book at the transaction-date rate. IAS 21 and US GAAP's ASC 830 both record foreign-currency transactions at the rate on the day and generally put later exchange differences through profit or loss.
  • Tax stays local. In the EU an invoice can be in any currency, but the VAT amount must be shown in the national currency; in the UK, VAT must be shown in sterling.
  • Mind the decimals. Zero-decimal currencies such as the Japanese yen and processor minimum charges trip up rate tables built for dollars.

Last verified: October 2026. Processor features and fees change; check the linked sources. Operator guidance, not tax or accounting advice.

Three currencies: display, charge, base

Take a fleet in Austin, Texas, that keeps its books in US dollars and rents to a visitor from Toronto paying with a Canadian card.

CurrencyIts jobWho sees itIn the example
DisplayHelp the renter compare pricesThe renter, while browsingUSD prices, with CAD shown as an estimate
Charge (presentment)The amount on the contract and the card authorizationThe renter's statement, then youUSD
Base (book)Your ledger, tax returns and payoutsYou and your accountantUSD

Here all three line up except display, which is the simple case. Now the harder one: the same Austin fleet takes a booking from a European tour operator that insists on paying in euros. The contract and the card charge are in EUR, Stripe converts the payment into USD on the day it is charged, and the fleet books USD revenue at that day's rate. If part of it is refunded later, the refund is converted again at the refund-day rate, and the difference is realized FX. The same happens if you sell through a European booking site in euros or run cars in two countries: every payment, deposit and refund crosses a currency line, and you need a rule for each.

Pricing in local currency vs converting

You have three honest options, each with a different owner of the exchange-rate risk:

  1. Price in your own currency and show conversions as estimates. Simplest to run; the renter carries the FX risk and may pay their bank's fee.
  2. Publish fixed prices in other currencies. Stripe calls this manual currency prices: prices don't follow the exchange rate, so you absorb the swings and update the price lists yourself.
  3. Let the processor convert automatically. Stripe's Adaptive Pricing converts prices to the customer's currency at checkout and manages the FX risk; Stripe adds a 2 to 4% conversion fee to the rate shown to the customer, so their price rises accordingly. Stripe's FX Quotes API lets you lock a rate for 5 minutes, 1 hour or 24 hours, and a lock expires if the rate moves more than 3.5%.

Rentals add a wrinkle that retail doesn't have: lead time. A booking made three months ahead and paid at pickup isn't covered by a 24-hour rate lock. Whatever the website showed, the contract should state one currency and one price, and that is what you charge. If you serve a lot of foreign visitors, our post on running a fleet in tourist destinations covers the commercial side, and if you run cars in more than one country, see our international overview.

Charging: presentment vs settlement currency

Stripe separates three currencies in every card payment: the customer's card currency, the charge (presentment) currency, and your settlement currency, the currency of the bank account you get paid into. Two rules follow:

  • If the charge currency differs from the card's currency, the customer's bank may charge them a foreign-exchange fee.
  • If the charge currency differs from your settlement currency, Stripe converts the charge. Stripe says it generally applies the mid-market rate, "the average between the buy and the sell price," and that conversion is subject to the fees on its pricing page.

The operating rule is simple: charge in the currency printed on the contract, never in a default from a settings page. CarCEO, for example, places charges and deposit holds in the booking's currency and lets Stripe convert to your settlement currency. If you have real costs in a second currency, ask whether your processor can settle in that currency too; Stripe supports settlement in additional currencies in certain countries, which avoids converting money you will spend in that currency anyway.

Deposits in another currency

A card hold is not money yet, so there is nothing to convert or book while it sits on the card. Two things matter:

  • Place the hold in the contract currency, so the renter sees the same figure as on the agreement.
  • Expect the converted value to move. What you eventually capture is converted when it is captured, not at the rate on the day you placed the hold, and any later refund is converted again at that day's rate.

Holds also expire, usually after about 7 days for online card payments unless you get extended authorization; our deposit hold expiry guide covers that clock. For a captured deposit in a foreign currency, remember what you owe: the renter's money in the renter's currency, not a fixed number of your own.

Refunds and FX difference

Stripe spells out the mechanics. If a currency-converted payment is refunded or disputed, the amount is converted at the current exchange rate, so "the amount deducted from your merchant balance depends on the current rate and this amount might be more or less than the original payment." The customer always gets back "the exact amount they paid and in the currency they paid in."

Stripe's own example: a business that settles in euros takes a 60 USD payment at 0.88 EUR per dollar and receives 52.80 EUR. If the rate is 0.86 at the time of refund, 51.60 EUR comes out of its balance. Rates can just as easily move the other way. On a rental deposit, which is often fully refunded, that swing lands in your books as a gain or a loss.

Accounting at a locked rate; realized FX

Both major accounting frameworks work the same way for these transactions:

  • Record each transaction in your base currency at the rate on the transaction date (IAS 21 under IFRS; ASC 830 under US GAAP).
  • At each period end, restate foreign-currency balances you still hold or owe, such as receivables and captured deposits, at the closing rate. ASC 830 says balances "shall be adjusted to reflect the current exchange rate."
  • Put the exchange differences through profit or loss, which is the general rule for transactions like these. When the balance settles, the difference is realized.

"Locked rate" means each money event is posted once, at its own rate, and never re-priced at today's rate when you run a report. Here is a worked example with illustrative rates and fees ignored. A fleet that keeps its books in euros captures a 500 USD deposit when 1 USD buys 0.90 EUR, then refunds it in full when 1 USD buys 0.92 EUR:

EventAccountDebit (EUR)Credit (EUR)
Capture 500 USD at 0.90Cash at processor450.00
Customer deposits (liability)450.00
Refund 500 USD at 0.92Customer deposits (liability)450.00
Realized FX loss10.00
Cash at processor460.00

The renter got exactly 500 USD back. You lost 10 euros of value because the dollar strengthened while you held the deposit, and the ledger says so honestly instead of hiding it in a cash difference. The same logic applies to a corporate customer you invoice in dollars on 30-day terms: the receivable is booked at the invoice-date rate, and the difference at payment is realized FX.

CarCEO posts each money event as a balanced journal entry at a locked rate and records realized FX when it settles, which is the behavior to look for in any car rental accounting software.

Tax lines in foreign currency

Invoices can usually be in the customer's currency, but the tax amount has to be in yours:

  • European Union: the VAT Directive allows invoice amounts in any currency, provided the VAT payable is expressed in the national currency of the member state. Member states must accept the latest European Central Bank exchange rate for that conversion, and the European Commission's explanatory notes say they may not require the rate used to be printed on the invoice.
  • United Kingdom: HMRC says amounts must always be expressed in sterling for VAT purposes, allows the UK market selling rate or HMRC's published period rates, and requires a full VAT invoice to show the total VAT in sterling.
  • United States: sales and rental taxes are set state by state; see our car rental sales tax guide.

What a full invoice must show, and how deposits, tolls and fines belong on it, is covered in our car rental invoice guide.

Rounding and zero-decimal currencies

Currencies don't all have cents. Processors expect amounts in a currency's smallest unit: on Stripe, 10.00 USD is sent as 1000, but 500 JPY is sent as 500 because the yen is a zero-decimal currency. Stripe also lists special cases, such as the Icelandic krona, which must be sent as a two-decimal value with zero cents, and currencies where payouts must be whole units even though charges can have decimals.

Three practical rules:

  • Round once, at the line level, in the charge currency, and let totals add up from rounded lines. Converting a rounded total back and forth creates cent differences.
  • Know the minimums. Stripe enforces a minimum charge, such as 0.50 USD, 0.50 EUR, 0.30 GBP or 50 JPY, and charges that need converting must meet the minimum of your settlement currency. Tiny top-ups and fuel differences can fall under it.
  • Keep a rounding account for the small differences that remain, instead of nudging revenue lines.

Telling customers what they will pay

A currency complaint usually starts with a surprise. Prevent the surprise:

  • Use currency codes, not just symbols. The dollar sign alone is used by several currencies; write USD 420.00 or CAD 420.00 on quotes and contracts.
  • Label estimates as estimates. If your site shows a converted price, say it is approximate and that the contract currency is what will be charged.
  • Warn about bank fees. The renter's bank may add a foreign-transaction fee when the charge currency differs from their card's currency.
  • Be careful with dynamic currency conversion (DCC). When a terminal offers to charge a foreign card in the cardholder's home currency, EU rules (Regulation (EU) 2021/1230) require disclosing, before payment, the conversion charges as a markup over the latest European Central Bank reference rate, the amount in both currencies, and the option to pay in the merchant's currency instead. If your terminal provider offers DCC, its disclosure becomes your reputation.

Checklist

  • One charge currency per contract, printed with its ISO code.
  • Display conversions labeled as estimates.
  • Charges and holds placed in the contract currency, never a settings default.
  • A decision on who carries FX risk: you (fixed price lists) or the renter (your currency).
  • Each money event posted once, at its own day's rate.
  • Foreign-currency receivables and deposits restated at period end.
  • Realized FX booked at settlement or refund, not buried in cash differences.
  • Tax amounts on invoices in the national currency.
  • Rounding done at line level in the charge currency, with a rounding account.
  • Processor minimum charges checked for small top-ups.

Comparing tools on these points? Our car rental software pricing page and car rental software overview show what is included at each tier, and the payment processing and invoicing guide covers the payments side end to end.

FAQ

Should I charge foreign renters in their own currency?

Usually charge in the currency your costs and books are in, and show conversions as estimates. If you do charge in the renter's currency, decide who carries the FX risk, put the currency and price on the contract, and expect conversion fees.

What is dynamic currency conversion (DCC)?

It is when a card terminal offers to charge a foreign card in the cardholder's home currency instead of yours. In the EU, the conversion markup over the European Central Bank reference rate and the option to pay in the merchant's currency must be disclosed before payment.

Who pays the currency conversion fee?

If you charge in a currency different from your settlement currency, your processor converts it and charges you per its pricing; Stripe's Adaptive Pricing instead adds its 2 to 4% fee to the customer's price. Separately, the renter's bank may charge them a foreign-transaction fee.

Why did a refund cost me more than the original payment?

Because the refund was converted at that day's rate. Stripe returns the exact amount the customer paid in their currency, so if their currency strengthened since the payment, more of yours goes out. Book the difference as realized FX.

Can my invoice be in a foreign currency?

In the EU, yes, as long as the VAT amount is shown in the national currency. In the UK, VAT amounts must be shown in sterling. Check local rules before you change your invoice template.


100+ currencies, with locked-rate bookkeeping. CarCEO charges in each contract's currency and posts every money event at its own rate, realized FX included. Free for up to 2 vehicles: start free.

CarCEO is independent software and is not affiliated with Stripe. Example rates are illustrative.

Sources

#multi currency car rental software #charge customers in local currency car rental #dynamic currency conversion rental #stripe presentment currency settlement currency #fx loss refund rental #invoice in foreign currency rental #realized fx gain loss #zero-decimal currency