The safe boundary is simple: exchangerate.dev can supply an indicative estimate, while Shopify and the payment provider remain authoritative for checkout, charged currency, fees, refunds, and settlement.
Choose the right boundary for Shopify currency data
Use an external exchange-rate API when an app needs a reference conversion for analytics, a custom dashboard, an editorial calculator, or a clearly labelled estimate. Use Shopify Markets and the payment stack for the price the customer will actually pay.
Fetch rates from the app backend
A theme app extension or storefront component should call your app. Your app calls the currency API, caches the successful response, and returns only the fields the storefront needs. Shopify app proxies are one option when a storefront route must reach the app backend.
Label the estimate honestly
- Say “estimated” or “reference conversion” beside the amount.
- Show the target currency and observation time where space permits.
- Do not promise that checkout will use the same rate.
- Do not overwrite Shopify product prices every minute from an indicative feed.
Keep storefront failure boring
If the rate service is unavailable, show the shop currency rather than zero, a placeholder conversion, or a made-up value. A cached last-good estimate may be acceptable if it remains visibly labelled with its original observation time.
