A confirmed payment is final
People arrive from a world of chargebacks and expect a version of that to exist here. There is no version of it.
Bucket: ALWAYS
A confirmed transaction cannot be undone by the sender, by an exchange, by the market, or by anyone with a complaint. Value comes back only if the recipient sends a new transaction, voluntarily.
Why the reversal does not exist
Card payments can be reversed because a company sits in the middle holding the ledger, and it can rewrite an entry. In a distributed ledger there is no company and the entry is not rewritable. A confirmed transaction is a fact recorded by everyone, and undoing it would mean convincing everyone to change history.
This is the property the whole design is built around. It is not an oversight or a missing feature. Reversibility was removed on purpose because the parties who could reverse things were what the design was avoiding.
Before confirmation
There is a window. An unconfirmed transaction sitting in the mempool can sometimes be replaced by a conflicting one, depending on the coin, on whether the original signalled replaceability, and on whether the network happens to accept the replacement first. This is not a refund. It is a race.
Treat that window as absent unless you already know how to use it before you need to. It closes in minutes and it is not a plan. Once confirmed, even that disappears.
What people get wrong
The commonest error is thinking a market can pull a payment back. Escrow can release held funds in either direction, which looks like reversal and is not. The funds were held. Nothing was recalled from anyone. Outside that held state, the market has no more power over a transaction than you do, which is none.
The second error is believing a transaction sent to a wrong address might bounce. Nothing bounces. If the address is valid and nobody holds the key, the value sits there permanently. If somebody holds the key, it is theirs. There is no error path.
Where this bites hardest
Deposit addresses. A deposit to a market address that has expired or been superseded is a confirmed payment to somewhere that may not credit it. The transaction succeeded on the chain and failed in every sense that matters to you. Whether it can be sorted out is a support question, not a technical one, and support questions have answers that depend on people.
How to work with it
Slow down at exactly one point, which is the moment before you authorise a send. Everything before that is reversible in the sense that you can walk away. Everything after is not. Most costly mistakes happen because that moment feels like the middle of a process rather than the end of one.
The specific checks worth making there are the destination address and the amount, in that order. Neither can be adjusted afterwards, and the destination is the one nobody rereads because it was pasted from somewhere that felt trustworthy a minute ago.
What would move this
A chain reorganisation deep enough to undo a confirmed transaction. It is possible in principle, it happens rarely at shallow depths, and it is not something you can invoke. Nobody has ever recovered a payment that way on purpose.
The other route is a coin with a designed reversal mechanism. Those exist and they work by having an authority. Using one trades this property for that authority, which is a real choice and a large one.
