> For the complete documentation index, see [llms.txt](https://docs.gobtcpay.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gobtcpay.com/guides/payment-lifecycle.md).

# Payment Lifecycle

This guide follows a GoBTC Pay payment from the moment a customer pays at your till to the moment it is final on the Bitcoin network.

### The one thing to understand

{% hint style="success" %}
**A GoBTC Pay payment is accepted instantly, but settles on Bitcoin a little later.**
{% endhint %}

The instant you see **Approved**, the money is yours, and you can hand over the goods. Behind the scenes, the actual Bitcoin transaction is bundled with others and recorded on-chain over the next few hours. That second step doesn't change whether you got paid; it just makes the payment final and irreversible.

Think of it like a card payment: the terminal says "approved" right away, and the funds settle into your account afterward.

### What the customer experiences

1. The customer reviews the amount and confirms it in their wallet.
2. GoMining checks the confirmation and returns **Approved** in about a second.
3. You hand over the goods. Done: from your side, the sale is complete.

The customer pays **no fee** and never touches a Bitcoin network fee.

### The three states of a payment

| State         | What it means                                                                             | What you should do                          |
| ------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------- |
| **Pending**   | Accepted at the till. Funds are yours; the on-chain transaction hasn't been recorded yet. | Hand over the goods. Nothing else needed.   |
| **Confirmed** | The transaction has been recorded in a Bitcoin block.                                     | Nothing; settlement is underway.            |
| **Final**     | Settled on Bitcoin. No chargebacks, no disputes, no reserves, ever.                       | Nothing. The payment can never be reversed. |

{% hint style="info" %}
Your dashboard shows **Pending** as soon as a payment is accepted. The word **Approved** you may see in API responses means the same thing: accepted at the till.
{% endhint %}

### How long settlement take

GoMining produces about **two blocks per day**, so a payment usually becomes **Confirmed** within a few hours. This wait is expected; it does not affect the fact that you were already paid the moment you saw **Pending**.

If GoMining's mining is briefly unavailable, the pending transactions can be sent to the public Bitcoin network instead, where any miner can record them. Settlement is never stuck indefinitely.

### What does it cost you?

* **Customers:** no fee.
* **Merchants:** a **0.2% acquiring fee** (split as 0.1% to miners and 0.1% to wallet providers).

### Where your money lands

How a payment settles on-chain depends on your chosen settlement mode:

* **Operator-settled (default):** GoMining receives the on-chain payment and reconciles your payout afterward. Simplest to run.
* **Direct-to-merchant (optional):** the payment goes straight to a Bitcoin address you co-control, for full Layer 1 finality.

See [Settlement Modes](/guides/settlement-modes.md) for the full comparison and fees.

***

### Under the hood (technical details)

The rest of this page explains the mechanics for readers integrating the protocol. You don't need any of it to accept payments.

#### Cumulative pre-authorization

Instead of signing a fixed spending limit, the customer signs a **growing running total** with each payment. Every new payment is signed for the previous total plus the new amount:

```
new total = previous total + this payment
```

Each signed total must be strictly larger than the last. This gives GoMining an upper bound it cannot exceed, and makes rollback and double-spend impossible inside the instant-payment subsystem: the wallet refuses to sign a total that is smaller than, or inconsistent with, the previous one.

#### Custody during the lifecycle

* Funds sit at a **2-of-3 multisig** address under your cryptographic co-control. GoMining cannot move them alone.
* An incoming multisig UTXO becomes spendable only after at least **5 confirmations** on the Bitcoin main chain, which protects against chain reorganizations.
* At settlement, the authorized amount moves on-chain. Any residual value above that amount and the network fee returns as change to the same multisig, so it stays self-custodied.

#### Settlement transactions

The customer's latest authorized amount settles in its own compact Bitcoin transaction, grouped with other users' transactions into a block GoMining mines itself. Because every settlement transaction is a standard, independently valid Bitcoin transaction, GoMining absorbs and amortizes the on-chain fee across the whole batch, which is why customers pay no network fee.

### See also

* [White Paper](https://gobtcpay.com/docs/BTC_Instant_v1_3_0.pdf): sections 5 (POS flow), 6 (settlement), 7 (recovery)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.gobtcpay.com/guides/payment-lifecycle.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
