MercanPay Blog

How to Refund Crypto Payments in USDT and TRX, Step by Step

How to refund crypto payments: collect the right address from the customer, send the USDT or TRX refund as a balance withdrawal and write a clear refund policy.

Published: November 3, 20265 min readTürkçe oku
How to Refund Crypto Payments in USDT and TRX, Step by Step

Knowing how to refund crypto payments matters because it works nothing like the "refund" button on a card payment. Once a blockchain transaction is confirmed, it can't be reversed, so a refund means sending the customer a brand-new transfer. This guide covers what to ask the customer for, how to send the refund from your MercanPay balance and how to write a refund policy that avoids disputes.

Why crypto refunds are different

A card refund happens inside the card network. The money goes back to the same card and the customer doesn't need to provide anything. With crypto, there's no payment record to reverse. The customer sent a transfer from their address to yours, and that transfer is final.

Two things follow:

  • You initiate every refund. Neither the customer nor an intermediary can pull funds back without your consent. We cover this in what no chargebacks means.
  • A refund is a new transaction. The customer has to give you a receiving address, and you send to it. Network and withdrawal fees apply to that new transaction.

Does MercanPay refund automatically?

No. MercanPay has no automatic refund feature. Incoming payments are credited to your balance and refund decisions are entirely yours. Even with an overpayment, the full amount is credited and nothing is sent back on its own.

To refund, you send a withdrawal from your balance to the address the customer gives you. It follows the same rules as any withdrawal:

  • Every panel withdrawal requires an email code and an authenticator (TOTP) code.
  • The withdrawal fee is $1–3.
  • The minimum withdrawal is $10 worth.
  • Withdrawals are queued and usually sent within a few minutes.

The full flow is in the crypto balance withdrawal process.

Refunding a crypto payment step by step

1. Confirm the request and the order

Find the invoice in the panel by its order_id and check:

  • the invoice status (paid, overpaid, partial)
  • the coin and amount paid
  • whether the payment arrived late

Decide the refund amount from those facts.

2. Get the receiving address in writing

This is the most important step. Ask the customer for:

  • an address on the TRON (TRC20) network,
  • which coin they want back (USDT or TRX),
  • confirmation that the address is theirs.

Don't refund to the address the payment came from (the from field in the webhook). If the customer paid from an exchange, that may be the exchange's shared sending address and the refund may never reach them.

3. Check the address

Make sure it's a valid 34-character TRON address starting with T, and compare the start, middle and end with what the customer wrote. See the TRC20 address format.

4. Send the withdrawal

On the Balance page of the panel, create a withdrawal, enter the customer's address and amount, and confirm with your email and authenticator codes. You don't need to add a one-off customer address to your saved addresses.

5. Share the transaction ID

When the withdrawal completes, it has a transaction ID (TxID). Send it to the customer so they can verify the transfer on any block explorer. That transparency cuts down on "I never got it" messages.

Why can't I refund customers via the API?

You can withdraw through the API, but for security only to saved addresses marked as trusted. An address can be trusted once it's 7 days old and has received 3 completed withdrawals, or earlier if your early-unlock request is approved. Customer addresses are usually one-off, so they don't qualify, and an API withdrawal to them fails with address_not_trusted.

That's deliberate: even if your API key leaks, nobody can send your balance to arbitrary addresses. In practice, customer refunds are made from the panel with two verification codes.

Rates and fees: how much should you refund?

In which coin? USDT aims to hold a dollar peg, so refunding a USDT payment in USDT causes the least friction. With TRX, the price may have moved between payment and refund. Decide in advance whether you refund the same TRX amount or the USD value paid, and write it down. Volatility is covered in crypto payment exchange rate risk.

Who pays the fees? A refund is a withdrawal, so the $1–3 fee applies. State in your policy whether you deduct it.

Because the minimum withdrawal is $10 worth, you can't refund smaller amounts on their own. Store credit or a discount on the next order is a practical alternative.

Refunds on partial and overpaid invoices

  • Overpaid (overpaid): fulfil the order as usual. The overpaid_amount field shows the excess, which you can refund or keep as credit by agreement.
  • Underpaid (partial): if the customer won't send the rest, refund what arrived or open a new invoice for the remainder.

More in underpayments, overpayments and late payments.

Write a refund policy

Since refunds are fully in your hands, a clear policy protects you and your customers. Cover:

  • when refunds are given and any time limit
  • which coin and which value the refund is based on
  • who pays the fees
  • that the customer must provide a TRON (TRC20) address
  • how quickly refunds are sent

Consumer rights and cooling-off periods vary by country and product, so check with your legal adviser when drafting it. For keeping refund records tidy, see crypto payment bookkeeping.

FAQ

The customer wants the refund on another network. Is that possible?

MercanPay supports only TRX and USDT on TRON (TRC20), so refunds are sent there too. The customer needs a TRC20-compatible address.

How do refunds show up in my reports?

A refund appears in the balance history as a withdrawal plus a withdrawal fee. You can export reports as CSV, Excel or PDF; see exporting crypto payment reports.

What if the customer gives a wrong address?

A confirmed transfer can't be reversed. Get the address in writing, have the customer confirm it and share the TxID.

I just reset my password and can't send a refund. Why?

For 24 hours after a password reset or turning off two-factor authentication, withdrawals are locked for security. Once that passes, you can send the refund.

Get started with MercanPay

Accept USDT and TRX with a platform that keeps refunds fully under your control, protected by secure withdrawal steps. Apply as a merchant.

#Refunds#USDT#Withdrawals#Customers

Related posts

Start accepting crypto payments in minutes

Accept USDT and TRX (TRC20). Fees from 0.4%, a hosted payment page, API and webhooks.