# Payment Status Lifecycle

Every checkout session follows a deterministic state machine. These states are returned on every query and drive downstream integration logic.

<table><thead><tr><th width="122.9609375">Status</th><th>Meaning</th></tr></thead><tbody><tr><td><strong>Created</strong></td><td>The checkout session has been generated. No payment has been detected yet.</td></tr><tr><td><strong>Pending</strong></td><td>An inbound transfer has been detected on-chain but has not yet reached the required confirmation threshold.</td></tr><tr><td><strong>Paid</strong></td><td>The payment has been confirmed on-chain with sufficient block confirmations. Settlement processing begins.</td></tr><tr><td><strong>Settled</strong></td><td>Funds have been credited to the merchant's participant account. Terminal state for successful payments.</td></tr><tr><td><strong>Expired</strong></td><td>The expiry window elapsed before a valid payment was detected. Terminal state — no further action is taken.</td></tr></tbody></table>


---

# Agent Instructions: 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:

```
GET https://city-protocol.gitbook.io/docs/neofinance-as-a-service/payment-module/payment-status-lifecycle.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
