Bitcoin does not have chargebacks. This is commonly presented as an advantage for merchants, and it is, in the sense that no one can reverse a confirmed payment without your cooperation. But the flip side is that when a legitimate customer needs a refund, the process falls entirely on you. There is no payment network to mediate. No standard reversal mechanism. No form to fill out that makes the money go back.

You need a policy that works for both parties, handles the exchange rate question, and can be communicated clearly at the point of sale. This guide covers how to build one.

Why Bitcoin Refunds Are Different

With card payments, a refund reverses the original transaction through the payment network. The money flows back through the same channel it came from. The customer sees a credit on their statement. The process is standardised and automated.

With Bitcoin, there is no reverse transaction. To refund a customer, you initiate a new, separate payment from your wallet to theirs. This has several implications:

  • You need the customer's address. Unlike a card refund where the destination is implicit, you need the customer to provide a Bitcoin address (or Lightning invoice) to receive the refund.
  • You bear the transaction fee. The on-chain fee for the refund transaction comes from your wallet.
  • The exchange rate may have moved. If the customer paid 0.001 BTC for a 50-euro product, and by the time of the refund 0.001 BTC is worth 55 euros or 45 euros, someone absorbs the difference.
  • Lightning refunds are time-sensitive. Lightning invoices expire. The customer must generate and share a fresh invoice for the refund amount, and you must pay it before it expires.

The Exchange Rate Question

This is the hardest part of Bitcoin refund policy. There is no universally correct answer, but there are practical approaches.

Option A: Refund the Original BTC Amount

You refund exactly the amount of Bitcoin the customer paid. If they paid 0.001 BTC, they get 0.001 BTC back, regardless of what the exchange rate has done.

Pros:

  • Simple. No calculation needed.
  • The customer gets back what they sent.
  • Easy to explain and easy to implement.

Cons:

  • If Bitcoin's price has risen, you are refunding more fiat value than the product cost.
  • If Bitcoin's price has fallen, the customer receives less fiat value than they paid. They may feel shortchanged.

Best for: Merchants who deal with Bitcoin-native customers who think in BTC terms. Also the easiest default policy for businesses that hold Bitcoin rather than converting immediately.

Option B: Refund the Original Fiat Value in BTC

You refund the fiat value of the original purchase, converted to BTC at the current exchange rate. If the customer paid 50 euros worth of Bitcoin and requests a refund, you send 50 euros worth of Bitcoin at today's rate.

Pros:

  • The customer receives back the economic value of their purchase.
  • Aligns with how fiat refund policies work conceptually.
  • Feels fair to most customers.

Cons:

  • If Bitcoin's price has risen, you refund less BTC than the customer sent. Some Bitcoin-native customers dislike this.
  • If Bitcoin's price has fallen, you refund more BTC than the customer sent, costing you more from your holdings.
  • Requires calculating the current exchange rate at the time of refund.

Best for: Merchants who price in fiat and want a refund policy that feels equivalent to traditional commerce.

Option C: Store Credit

Avoid the exchange rate question entirely by offering store credit instead of a Bitcoin refund. The customer receives a credit for the fiat value of their purchase, usable on future orders.

Pros:

  • No exchange rate calculation.
  • No outgoing Bitcoin transaction (and no transaction fee).
  • Retains the customer relationship.

Cons:

  • Some customers will insist on a monetary refund.
  • May not be legally sufficient in all jurisdictions (consumer protection laws sometimes require monetary refunds).
  • Requires a store credit tracking system.

Best for: Merchants with repeat customers and a product range that supports store credit. Not suitable as the only refund option.

Our Recommendation

For most small merchants, Option B (refund the original fiat value in BTC) is the most practical default, with Option C (store credit) offered as an alternative. This aligns with customer expectations and avoids the most common complaints.

State the policy clearly in your terms of sale, and mention it at the point of sale for new Bitcoin-paying customers. Ambiguity creates disputes.

Building the Refund Workflow

Step 1: Document the Original Transaction

For every Bitcoin payment, record:

  • The invoice amount (fiat and BTC)
  • The Bitcoin transaction ID (txid) or Lightning payment hash
  • The exchange rate at the time of payment
  • The date and time
  • What was purchased

BTCPay Server records most of this automatically. If using a different system, ensure these details are captured.

Step 2: Validate the Return Request

Apply the same return policy criteria you would for any payment method:

  • Is the item within the return window?
  • Is it in returnable condition?
  • Does the reason qualify under your policy?

Do not create a separate, more lenient or more strict return policy for Bitcoin payments. Consistency avoids confusion and potential legal issues.

Step 3: Request the Customer's Refund Address

For on-chain refunds, ask the customer for a Bitcoin address. For Lightning refunds, ask the customer to generate a Lightning invoice for the refund amount.

Important: Verify the address is correct. Bitcoin transactions are irreversible. A mistyped address means lost funds. Consider asking the customer to send the address via a written channel (email, message) rather than reading it aloud.

Step 4: Calculate the Refund Amount

If using Option B (fiat value refund):

  • Look up the current BTC exchange rate from a reliable source
  • Calculate the BTC amount: (original fiat price) / (current BTC/fiat rate)
  • Round down to the nearest satoshi

If using Option A (original BTC amount):

  • Simply use the amount recorded in Step 1

Step 5: Send the Refund

From your BTCPay Server or wallet:

  • Create and send the refund transaction to the customer's address
  • Wait for confirmation (for on-chain) or delivery (for Lightning)
  • Record the refund transaction details in your records

Step 6: Confirm With the Customer

Send the customer confirmation of the refund, including:

  • The amount refunded (in BTC and fiat equivalent)
  • The transaction ID
  • Expected confirmation time (for on-chain)

Special Cases

Partial Refunds

Follow the same process as a full refund but for the partial amount. Calculate the BTC equivalent of the partial fiat refund, or the partial BTC amount, depending on your policy.

Refunds After Immediate Fiat Conversion

If you converted the Bitcoin to fiat immediately upon receipt and now need to issue a BTC refund, you must buy Bitcoin to refund the customer. This introduces exchange rate risk on your side. You may lose or gain a small amount compared to the original conversion.

To avoid this, maintain a small Bitcoin reserve for refund purposes. Even 0.005 to 0.01 BTC provides a buffer for several typical refund transactions.

Refunds on Lightning When the Customer Does Not Have Lightning

If the original payment was Lightning but the customer cannot generate a Lightning invoice for the refund (they have closed their wallet, changed phones, etc.), you may need to refund via on-chain. This costs more in transaction fees but solves the practical problem.

Communicating the Policy

Clear communication prevents most refund disputes. Include your Bitcoin refund policy:

  • On your website or product pages
  • In the order confirmation
  • At the physical point of sale (a printed note or verbal mention)
  • In your terms of sale

Example policy language:

"Bitcoin and Lightning refunds are issued in Bitcoin to an address you provide. The refund amount is calculated at the fiat value of the original purchase, converted to Bitcoin at the current exchange rate at the time of refund. We aim to process refunds within 3 business days of approving the return. On-chain refunds may take up to 1 hour for confirmation. Store credit is available as an alternative."

The Operational Reality

In practice, Bitcoin refunds are rare for most small merchants. If Bitcoin represents 5 to 15 percent of your payments and your return rate is 3 to 5 percent, you will process a Bitcoin refund once every few months. The workflow is worth documenting and understanding, but it should not consume significant operational time.

The biggest practical risk is not the mechanics. It is the customer's expectation. A customer who has never received a Bitcoin refund does not know what to expect. Walk them through it. Be patient. The goodwill from handling it well is worth more than the small operational cost.

For the broader payment setup that refund handling plugs into, see How to Accept Bitcoin Payments. For custody choices that affect how you manage refund funds, see Self-Custody vs Turnkey Bitcoin POS.