Skip to content
SpendTheBits

Safety · 7 min read

USDC refunds: how refunds work when there are no chargebacks

By , Founder, SpendTheBits ·

In short

Yes, USDC refunds exist, but on SpendTheBits there is no escrow and refunds are never automatic. A confirmed stablecoin transfer cannot be reversed by anyone, so every refund is a brand new payment from the seller back to you. There is no chargeback button, so your protection is the seller's promise and a public record.

1:1
USDC is redeemable for US dollarsSource: Circle

Card payments taught us a habit. If a shop sends the wrong thing or never ships, you call your bank and the money comes back. That safety net is built into the card system, and many people do not realise it is a feature of the network, not of money itself. Stablecoins work differently, and the difference matters the first time you pay for something that goes wrong.

Here is the short version. A refund is a second payment, sent by the seller, because the seller chooses to send it. This piece explains why, how a refund window works as a promise, how you prove you paid, and what the signature behind a payment really is.

On the practical side, a refund depends on the seller, so the real questions are how that promise is made, how you ask for it, and how you can check the seller's track record before you pay.

A coin returning along a curved arrow to a hand, illustrating USDC refunds.

Why a confirmed transfer has no undo button

A card payment is really a promise to settle later. The merchant is paid after a delay, and the card network keeps the right to claw money back during a dispute. A stablecoin transfer works the other way around. When the transaction is confirmed on the chain, the balance has already moved from one address to another, and the ledger is the final record.

Circle issues USDC and describes it as a regulated digital currency you can redeem 1:1 for US dollars [3]. Redeeming is about turning tokens into dollars. It is not a way to undo a payment that already landed in someone else's address, so it does not help when a seller fails to deliver. The token is built for fast settlement, and fast settlement means the payer gives up the right to pull the money back.

Self-custody makes this even clearer. SpendTheBits is fully non-custodial: the keys live on your device, every transaction is signed there, and the backend only relays what your device signed. It cannot move, freeze or reverse user funds, so it could not pull a payment back for you either. That is good news when you worry about someone taking your money, and it is the reason a refund must come from the seller who holds the funds.

SpendTheBits checkout order showing a refunded status
A refund shows up as its own record, because it is its own payment.

A refund is a new payment, sent on purpose

Once you accept that the first payment is final, the refund model becomes simple. The seller holds the money, and the seller sends some or all of it back as a fresh transfer. On the chain it looks like any other payment, only in the opposite direction, with its own transaction hash and its own confirmation.

This has a few consequences worth knowing. The refund is never automatic, because nothing in the original transfer carries a clause that forces a return. It can be partial, because the seller decides the amount. And it can take a little time, because a human or a program on the seller's side has to decide to send it. That is the trade you make for a payment that settles fast and cannot be clawed back.

SpendTheBits Arc Checkout lets a seller show a QR code, and the customer pays USDC on Arc from any wallet. A sale is final on chain. For Arc Checkout, USDC refunds are never automatic: the seller sends one from their own wallet, signed on their phone, up to the sale amount. The small SpendTheBits fee on the original sale is not returned. In other words, the party holding the funds is the party who must send them back.

SpendTheBits screen listing refund requests for a seller
Refund requests come to the seller, who answers each one from their own phone.

Refund windows are a seller's promise, not a network rule

If the network does not guarantee anything, where does protection come from? From the seller. A refund window is a statement such as: ask within this many days and I will consider returning your money. It is a business promise, much like a shop's return policy, and it lives outside the chain unless the seller records it somewhere public.

This is a real strength when done well. A seller who wants repeat customers can offer a generous window and honour it, and a buyer can reasonably prefer that seller. It is also a real risk when ignored. A seller with no stated window owes you nothing beyond what the law and the sale terms say, so check before you pay, the same way you would read a returns page in a normal shop.

On x402, the payment protocol for paying over HTTP, SpendTheBits lets sellers promise a refund window. A buyer, or an agent signing with the paying wallet, can ask for a refund inside it. There is no escrow, so the seller still holds the money in their own address, and refunds are never automatic. The window is a commitment the seller makes and the buyer can later point to when asking for USDC refunds.

How a payer proves they paid: the signature

A refund request needs a claim and a way to check it. Anyone could say I paid you. The useful answer is a cryptographic one: you sign a message with the same wallet that made the payment, and the seller checks that the signature matches the paying address. Only the holder of the key could have produced it.

This works because the payment itself is already public. The transaction hash, the sender and the amount sit on the chain for anyone to read. What the signature adds is a way to say this request comes from that sender, without sharing a password or an account. It is also why a stranger cannot claim your refund: they cannot sign as your address, so a copied transaction hash is not enough.

In SpendTheBits, a buyer, or an agent signing with the paying wallet, asks within the seller's window, and the seller approves with a transfer signed on their own phone. That transfer can only go back to the payer, for no more than was paid. Because the destination is fixed to the original payer, a refund cannot be quietly redirected to a different address, which protects both sides from mistakes and from fraud.

EIP-3009: the signed authorization behind an x402 payment

Some USDC payments start as a signature rather than a transaction. ERC-3009 is a set of functions that enable meta-transactions and atomic interactions with ERC-20 token contracts via signatures [1]. In plain words, a token holder signs a message that authorizes a transfer, and someone else can then submit it to the chain. The payer can hand off the gas cost, and the recipient or a helper can send it in.

Each authorization uses a unique random nonce instead of a sequential nonce, plus a valid-after and valid-before time window [1]. The standard says nonces are randomly generated 32-byte data unique to the authorizer's address, and it also describes an optional way to cancel an authorization [1]. Once the authorization is submitted and confirmed, it is a normal transfer, and it is final.

In the x402 protocol the client signs a payment payload, the server checks it, and a facilitator settles it on the blockchain [2]. In SpendTheBits, the buyer's signature is an EIP-3009 authorization, so the buyer pays no gas, and the app signs it on your device. For a deeper walk-through, see our explainer on EIP-3009. The key point for refunds is timing: until it settles, an authorization can expire or be cancelled, but after it settles, only a new payment can undo it.

The public refund record: trust you can check

Without a chargeback system, reputation has to do the job that the card network does. Public records are how that can work on a chain, because everything the seller does is visible. A seller who sends refunds promptly leaves a trail you can read, and a seller who stays silent leaves a different trail. Both trails are there for the next buyer to find.

In SpendTheBits, every answer a seller gives to a request for USDC refunds, and every silence, becomes part of the seller's public refund record. That means a buyer can look at how a seller has treated past requests before paying. It also gives honest sellers a way to stand out, because a clean record is worth something when buyers can see it and compare it with others.

For sellers, the bookkeeping side is handled too. x402 Books shows sales, fees, refunds and net income for a period, built from public records only. For buyers, your own habits help as well: check what you approve in your wallet, and see our guide to revoking token approvals. A stated window, a signed request, and a public record give you something to check before you pay, even though no one can reverse the original payment.

In the app · 3 steps

Answer a refund request in SpendTheBits

Refunds are payments you choose to send back. Here is where they live in the app.

  1. Set your promise

    When you sell to agents, choose a refund window for each paid link under Get paid by agents.

    The Get paid by agents screen in SpendTheBits
  2. Answer requests

    Refund requests lists each request with its reason. Approve with a signed refund or decline with a reason.

    The Refund requests screen in SpendTheBits with a refund record
  3. Refund a checkout sale

    For in-person sales, open the order in Checkout and tap Refund.

    A SpendTheBits checkout order marked as refunded

Hold your own keys, keep the yield, skip the middleman.

SpendTheBits is a fully non-custodial wallet for 13 chains, free on iOS and Android.

Frequently asked

Yes, if the seller agrees. A sale is final on chain, so a refund is a new payment the seller sends back to you.

No. Your protection is the seller's refund promise and their public record.

No. In SpendTheBits, refunds on x402 payments are never automatic: the seller approves with a transfer signed on their own phone that can only go back to the payer, for no more than was paid.

No. The wallet is fully non-custodial and the backend cannot move, freeze or reverse user funds. Only the seller can send money back.

Sources

  1. 1.ERC-3009: Transfer With Authorization · Ethereum Improvement Proposals · accessed 2026-10-23
  2. 2.GitHub - coinbase/x402: A payments protocol for the internet. Built on HTTP. · GitHub · accessed 2026-10-23
  3. 3.USDC | Powering global finance. Issued by Circle. · Circle · accessed 2026-10-23

This article is educational and reflects observed data and public sources on the date shown. It is not financial, legal or tax advice. Digital assets can lose value; yields shown are observed, not promised.

STB Weekly, every tuesday

The short version of pieces like this one, plus what moved in AI in finance and agent payments. What you get

Product updates and release notes. No price calls, no spam, unsubscribe in one click. We email you once to confirm before anything else is sent.