> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.getmint.money/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.getmint.money/_mcp/server.

# Choose an Integration Path

> Pick the Mint integration style that matches your level of frontend ownership.

Mint supports three main integration styles. All begin with your backend
creating a payment; the difference is who owns the buyer-facing checkout.

| Path            | Best for           | Buyer experience              | Your work                            |
| --------------- | ------------------ | ----------------------------- | ------------------------------------ |
| Hosted payments | Fastest launch     | Mint-hosted page              | Create payment and redirect          |
| React SDK       | React products     | Mint checkout inside your app | Create payment and render the SDK    |
| Direct API      | Fully custom flows | Your UI                       | Build the payment lifecycle yourself |

## 1. Hosted payments

Best when you want the fastest launch and the least frontend work.

1. Your backend creates a payment with Mint.
2. Mint returns a `payment_url` when hosted payments are enabled.
3. You redirect the buyer to that URL.
4. Your server fulfils only after a verified `payment.paid` webhook.

## 2. React SDK

Best when you want Mint checkout embedded inside your product.

1. Your backend creates the payment.
2. Your React app uses `@mintmoney/react`.
3. The SDK opens Mint checkout inside your app.
4. Your server fulfils only after a verified `payment.paid` webhook.

## 3. Direct API

Best when you want full control over the buyer UI and payment orchestration.

1. Your backend creates payments directly with Mint.
2. Your frontend and backend decide how to create attempts, present status,
   and recover from failures.
3. You build and maintain more of the flow yourself.

## One rule that does not change

No matter which path you choose, payment creation happens on your backend with
your Mint secret key. Keep the key out of browser code, persist the Mint
`payment_id` with your order, and use [Webhooks](/getting-started/webhooks)
for fulfilment.