ChainUnfold
A VISUAL GUIDE3 min read

Pending, confirmed, and reorganized: a payment’s changing status

A status label is an observation about a transaction and a chain, not a promise about the future.

By chainunfold Reviewed 23 September 2026Revision 1

What you’ll be able to explain

  • Interpret confirmation counts and explain why a transaction’s status may change after a reorganization.

01 / Understand

Put the observer in the sentence

“Your payment is pending” sounds universal. A more precise sentence is “This wallet’s backend knows about the transaction, and has not observed it in a block on its active chain.”

That extra context matters. A second backend may not have the transaction. One node’s mempool entry is not a public guarantee. A wallet interface may also group different internal conditions under the same label.

When the transaction enters a block that the observer accepts in its active chain, it has one confirmation. Each later block adds another. The count is not a measure of how many nodes clicked an approval button.

A fictional timeline

Imagine a payment in block 800 on a miniature chain. When 800 is the tip, it has one confirmation. With tip 801, it has two. With tip 803, it has four:

confirmations = tip height − inclusion height + 1
              = 803 − 800 + 1 = 4

This equation assumes that the inclusion block remains on the active chain. Height alone is not enough: two competing blocks can have the same height. A real integration tracks the block identity and chain context as well as a number.

The idea, at a glance

Pending

Observed locally, without active-chain inclusion.

Confirmed

Included; count later blocks on that chain.

Reorganized

Re-evaluate inclusion when the active history changes.

The timeline describes observations. The outcome after a chain change depends on the new history.

02 / Explore

What a reorganization changes

Now imagine the observer learns of a different valid branch with more accumulated work and switches to it. If the payment’s inclusion block is disconnected, the earlier count no longer describes its current position.

The payment might appear in the replacement branch, remain unconfirmed and eligible for a local mempool, conflict with a spend in the new history, or have another status under current rules. “A reorg sends every transaction back to pending” is too strong.

For a shop, this is why technical observations and fulfillment decisions need separate fields. The shop may adopt a policy for when it releases goods, but the policy does not modify the chain’s properties. A merchant’s label “settled” should be understood in the context of its risk and provider settings.

More confirmations generally make a history reversal harder under the relevant assumptions, but no fixed count is a universal guarantee for every payment, adversary, or business. Nor is there an unconditional clock promising when the next block arrives. Avoid translating a confirmation target into a guaranteed delivery time.

03 / Build

Build a truthful status message

Take this fictional record:

observed transaction: demo-payment-A
active-chain inclusion: block 800-A
active tip height: 803

Expected display: “4 confirmations on the observed active chain.” Now replace block 800-A with a competing block 800-B that does not contain the payment. You cannot simply keep subtracting heights and display four. First re-establish whether and where the transaction appears in the new chain.

Write three separate fields on paper: transaction observation, confirmation evidence, and business decision. Populate the last with “hold shipment” or “release shipment” according to a fictional policy. The exercise succeeds when changing one field does not silently rewrite the meaning of the others.

Pause & explain

A transaction was in a disconnected block. Must it now be in every node’s mempool?

Try explaining it in your own words before opening the answer.

Compare your explanation

No. Its new status depends on the replacement history, conflicts, validity and local policy. A disconnected block does not imply universal mempool acceptance.

Sources & scope

Primary references behind this explanation. Worked examples and diagrams are original teaching material.

  1. 01
    Bitcoin developer guide — Block chain ↗

    Value conservation, accumulated proof of work, and competing valid histories. Not current relay-policy advice.

  2. 02
    Bitcoin Core RPC reference — getrawtransaction ↗

    Decoded transaction fields such as vin, vout, vsize and confirmations. Version-specific API options may differ.

  3. 03
    BTCPay Server — Invoices ↗

    Provider-specific invoice lifecycle and exception statuses. Business fulfillment is a separate application decision.

Where this explanation stops

  • No live risk threshold or merchant confirmation recommendation is provided.

Keep unfolding

What nodes check, and why a blockchain needs consensus Payment received versus order fulfilled: designing clear statuses