Payments
Crypto Payments — Hosted checkout & API for 110+ coins White Label — Your brand on the entire payment flow Processing — Auto-convert, withdrawals & controls Payouts — Mass crypto payouts by API or file Platform — Marketplace payments & commissions Industries — Crypto payments for gaming, hosting, SaaS and more Payment methods — Crypto, cards, Apple Pay, PayPal and local methods
Swap Plugins Affiliate Pricing Blog Docs Contact
Language
Sign in
All articles

How to Display Prices in Crypto on Your Store or Site

Show prices in crypto the right way: live rates, quote locking, rounding, refresh times and checkout wording, with a practical setup for merchants.

CryptoPayr Nov 3, 2026 13.00 min read
How to Display Prices in Crypto on Your Store or Site

How to Display Prices in Crypto on Your Store or Site

Hand-drawn crypto pricing title card

The safest way to display prices in crypto is to keep your catalog priced in dollars, convert to a coin amount from a live rate, show when that rate was refreshed, and lock the amount for a short window once the customer starts paying. Do that, and shoppers see a number they understand while you are protected from price swings between the product page and the payment.

This guide covers what to show on product pages, how to get and refresh rates, how to handle rounding and expiry, and how to word it all so customers are never surprised.

Cryptopayr
cryptopayr.com
Add Crypto Payments to Your Store
CryptoPayr helps businesses accept over 110 cryptocurrencies with a no-KYC payment gateway that integrates with existing platforms.
Visit CryptoPayr

TL;DR

Table of Contents

Decide what you are actually displaying

Before touching code, settle one question: is the crypto number a label or a promise?

There are three common patterns:

  1. Fiat price only, crypto at checkout. The catalog shows $49. The customer picks Bitcoin, Ethereum or a stablecoin on the payment page and sees the exact amount there. This is the simplest and the one we recommend for most stores.
  2. Fiat price with an indicative crypto equivalent. The product page shows $49 and “about 0.00061 BTC”. The second figure is clearly marked as approximate and refreshed regularly.
  3. Crypto-native pricing. You set the price in a coin (for example, 0.5 ETH for a license). This suits some gaming or NFT-adjacent sellers, but your revenue in dollar terms moves with the market unless you convert quickly.

Most merchants end up with pattern 1 or 2. Pattern 3 is a deliberate choice for sellers whose audience thinks in coins, and it needs a conversion plan so the proceeds do not drift.

If you sell globally, this also helps. Shoppers outside the card networks’ strongest markets can pay in a coin they already hold, and your catalog stays in one currency. We wrote more on that in getting paid where cards don’t reach.

Where the rate comes from

A displayed crypto price is only as good as the data behind it. Three things matter: how the price is built, how often it refreshes, and whether you can tell when it is stale.

Aggregated rates beat a single exchange

One exchange can show a temporary spike or a thin order book. An aggregated price smooths that out. CoinGecko’s documentation, for example, describes its token-price endpoint as returning a global average aggregated across active exchanges, which is the kind of figure you want behind a public price display.

Refresh cadence is a design input

Providers publish how often their data changes, and your display cannot be fresher than the source. CoinGecko’s price endpoint documents a 60-second cache on its Public API and 20 seconds on Pro, and it can return a last-updated timestamp so you can check whether a value is stale. If you need push updates instead of polling, streaming feeds exist: Amberdata’s documentation, for instance, describes a WebSocket spot-price feed that sends a USD price with a timestamp.

For an ordinary store, polling every minute or so on the server is plenty for an indicative price. Do not call the data provider from every visitor’s browser: cache the rate on your server and serve the cached value. It keeps you inside rate limits and makes every shopper see the same number.

Refresh cadence is a design input

Compare and fail safe

If a single feed fails or returns something absurd, you do not want a $49 item showing as 0.0000 BTC. A sensible setup:

The fallback matters more than the feed. A missing crypto estimate costs nothing; a wrong one costs a sale or a margin.

Converting a dollar price into a coin amount

The math is simple: divide the dollar price by the rate (dollars per coin). The details are where stores go wrong.

Worked example

A course costs $120. The cached rate says 1 ETH is $3,000. The amount is 120 / 3,000 = 0.04 ETH. If the shopper chooses a stablecoin pegged to the dollar, the amount is simply 120.00 units, and no rate risk applies beyond the peg itself.

Dollar to crypto price conversion example

Those two numbers show why many merchants offer stablecoins prominently: the price on the page is the price paid.

Rounding rules

Network fees and the amount the customer sends

The customer’s wallet pays the blockchain network fee on top of the invoice amount. Make that clear in your checkout copy so a shopper does not send exactly the invoice amount minus a fee and come up short. A gateway checkout page that shows the exact amount to send, and detects underpayment, removes most of this friction.

Lock the amount at checkout

A price shown on a product page can be indicative. A price at payment cannot. Crypto moves while the customer finds their wallet, and a transaction needs time to be broadcast and detected.

The standard answer is a quote window: the coin amount is fixed for a few minutes, then expires and a new quote is generated. Payment-infrastructure documentation describes this pattern plainly: quotes are locked for a validity window, then must be replaced once they expire. Windows differ by provider and by use case, from a few minutes to longer, so check the one your processor uses.

Things to get right:

Our piece on exchange-rate slippage in crypto payments goes deeper on what a merchant actually nets after conversion, which is the number that should drive your policy.

Widget or API: which route to take

There are two ways to put prices on a page.

Hosted widget or plugin Price API in your own code
Setup time Minutes, a snippet or a plugin install Hours to days
Design control Limited to the widget’s styling Full, your own markup
Backend work None Server job, cache, error handling
Drives calculations (carts, invoices) Not really Yes
Best for Informational price tickers, small sites Stores, SaaS billing, marketplaces

A widget is fine when you only want to show a rate. Once the price has to feed a cart, an invoice or a subscription charge, use a server-side integration: fetch and cache the rate, convert and round at display time, snapshot the rate into the cart, and store the locked rate and timestamp on the order.

If you want the rates without building a feed, you can use our live crypto prices page as a reference, and let shoppers check amounts themselves with the crypto converter. For a hands-on walkthrough of the website side, see how to display crypto prices on your website.

Running WordPress? A plugin route is often the fastest. Stores selling downloads can use the Easy Digital Downloads crypto gateway, which keeps your catalog in fiat and handles the coin amount at payment.

What to put on the page

Clear wording prevents most disputes. A checklist for product pages and checkout:

  1. Primary price in dollars, in the same format everywhere ($1,249.00).
  2. A short label for any crypto estimate: “Approx. 0.0153 BTC, updated 2 minutes ago.”
  3. A statement of when it locks: “Your amount is locked for the time shown once you choose a coin.”
  4. Accepted coins and networks, with the network named. Sending a token on the wrong network is the most common way customers lose funds, so spell it out next to the address and QR code.
  5. Refund policy in dollar terms: say whether refunds are made at the original dollar value or the original coin amount. Pick one and state it.
  6. No false precision. An estimate shown to nine decimals looks exact. It is not.

Keep these labels consistent between the product page, cart and payment page. A shopper who sees three slightly different numbers will assume something is wrong.

Special cases

Subscriptions and SaaS

Recurring billing in crypto works best when the plan is priced in dollars and each renewal creates a fresh invoice at the current rate. Show the dollar price on the plan page and the coin amount only on the renewal invoice. Accepting stablecoins for renewals removes the question entirely.

Marketplaces

With multiple sellers, decide which currency each seller sees. A common setup is dollar-denominated listings, one locked quote per order, and commission splits computed in dollars before payouts are made. Our crypto payments for marketplaces page shows how commission splitting fits in.

Freelancers and invoices

For invoices, show the dollar total and generate a payment link that fixes the coin amount when the client opens it. If a client takes days to pay, a reusable invoice that re-quotes on open is better than a stale number. Finance teams comparing a checkout flow with invoices will find the trade-offs in crypto checkout versus invoices.

Gaming and digital goods

In-game purchases are small and frequent, so quote windows and fee structure matter. A flat per-payment fee can be easier to model for low-value items than a percentage, and automated delivery on confirmation keeps the player experience fast.

Perspective

We see the same mistake again and again: a merchant treats a crypto price on a product page as if it were a contract. It is not. It is a conversion of a dollar price at a moment in time, and the moment passes.

Our approach is to keep the catalog in the currency you do your books in, convert at the point of payment, and lock the amount long enough for a normal customer to pay. That is how our hosted checkout, plugins, payment links and API are designed to work, and it is why we put stablecoin auto-conversion next to the checkout rather than in a back office.

We also think onboarding should not be the hard part. You should be able to get approved quickly, with no KYC step to slow you down, and start displaying and accepting coins without a setup fee or a monthly fee. Display is the visible tip; what matters is that settlement and reconciliation behind it are clean.

Dustin

Let a gateway do the heavy lifting

Building rate feeds, caching, quote locking, underpayment handling and reconciliation is a real project. If you would rather ship, our gateway handles it: hosted checkout, e-commerce plugins, payment links and an API that accept 110+ cryptocurrencies, with optional auto-conversion to stablecoins.

On our site, pricing is volume-based and listed as Standard at 2%, Growth at 1.5%, Scale at 1% and Enterprise at 0.1%, with the tier set by monthly volume. A flat fee of $0.10 per payment is also listed on the gateway page. White-label fees start from 1%. See the full crypto payments offer for the current terms.

Cryptopayr

Selling online? Our crypto payments for e-commerce page shows how stores add crypto checkout without changing their dollar catalog.

A short rollout plan

  1. Keep prices in dollars in your catalog and database.
  2. Choose your rate source and note its refresh cadence.
  3. Cache server-side and store the timestamp with every rate.
  4. Add a fail-safe: hide the crypto estimate when the rate is stale or sources disagree.
  5. Show an approximate crypto amount on product pages only if it adds value; otherwise show it at checkout.
  6. Lock the quote at payment, with a visible timer and automatic re-quote.
  7. Write your policies for late payments, under- and overpayments, and refunds.
  8. Store the order record: dollar price, coin, amount, rate, timestamp, transaction ID.
  9. Test with small payments on each coin and network you list.

FAQ

Should I show prices in crypto or in dollars?

Show dollars as the main price and crypto as a converted amount at checkout or as a labeled estimate. Dollar pricing keeps your margins and bookkeeping stable. Only price natively in a coin if your audience expects it and you have a plan to convert proceeds.

How often should displayed crypto prices refresh?

It depends on your source, because you cannot be fresher than its data. One major provider documents a 60-second cache on its public tier and 20 seconds on its paid tier. For an indicative display, refreshing about once a minute on your server is reasonable, and the payment quote should be locked separately.

What happens if the price moves while a customer is paying?

Nothing, if the quote is locked. The coin amount stays fixed for the validity window shown on the payment page. If the window expires, the checkout generates a new quote at the current rate and the customer pays that amount instead.

Can I accept crypto without building my own price feed?

Yes. A payment gateway supplies the rates, converts the dollar total, locks the amount and detects the payment. You keep your catalog in dollars and add a crypto option through a plugin, payment link, hosted checkout or API.

Sources

Related solutionCrypto payment gateway

Start accepting crypto today

Open a free CryptoPayr account and take your first crypto payment the same day.

Get started for free

Keep reading

📝 Guides

Crypto Exchange Rate Source: How to Pick One and Use It

Why crypto rates differ between sites, how aggregated prices are built, and how to choose and use a rate source for invoices, checkout and payouts.

Nov 2, 2026 · 13.00 min Read →
📝 Guides

Crypto Dunning Strategies for Failed and Late Payments

Crypto payments can't be retried like cards. Learn how to chase unpaid invoices, handle underpayments and expired payments, and track what you recover.

Nov 1, 2026 · 14.00 min Read →
📝 Guides

Failed Crypto Payments: Causes, Checks and Fixes

Why crypto payments fail or never reach the order, how to check a transaction, what can be refunded, and how merchants can prevent failures at checkout.

Oct 31, 2026 · 14.00 min Read →