> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ionicfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment flow

> How checkout sessions, payment links, and refunds fit together.

Ionic separates your server integration from buyer payment collection. Your backend creates checkout resources and may update open-session choices. Ionic checkout collects payment details and drives the buyer through the payment experience.

## Objects in the flow

| Object           | What it represents                                | Who usually creates it              |
| ---------------- | ------------------------------------------------- | ----------------------------------- |
| Checkout session | One buyer attempt to pay through hosted checkout. | Your server.                        |
| Payment link     | Reusable hosted checkout configuration.           | Your server or dashboard workflow.  |
| Product          | What you sell.                                    | Your server or dashboard workflow.  |
| Price            | The amount and currency for a product.            | Your server or dashboard workflow.  |
| Customer         | Buyer identity and contact details.               | Your server or checkout collection. |
| Refund           | A reversal against a completed payment.           | Your server or support workflow.    |

## Happy path

```text theme={null}
cart -> checkout session -> hosted checkout -> paid state -> fulfillment
```

Embedded and custom flows can include a server-side confirm step before collection:

The embedded path is covered end to end in the [embedded checkout guide](/guides/embedded-checkout) — same session object, rendered on your own page.

```text theme={null}
cart -> checkout session -> confirm session -> collect payment -> paid state
```

## Payment link path

```text theme={null}
catalog -> payment link -> buyer opens link -> hosted checkout -> paid state
```

## Recovery path

```text theme={null}
timeout or redirect issue -> retrieve checkout session -> check payment status
```

Your fulfillment system should verify server-side state before shipping goods, provisioning access, or marking an order complete. Redirects are useful for buyer experience, but they are not a settlement signal by themselves.
