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

# Setup Stripe

> Configure Stripe Checkout / PaymentIntents for Join Markt.

Stripe is the primary card processor path in Join Markt.

## Routes

| Route                                      | Role                       |
| ------------------------------------------ | -------------------------- |
| `POST /api/stripe/create-checkout-session` | Hosted Checkout Session    |
| `POST /api/stripe/create-payment-intent`   | PaymentIntent flow         |
| `POST /api/stripe/verify-checkout-session` | Client verify after return |
| `POST /api/stripe/verify-payment`          | Payment verify             |
| `POST /api/stripe/webhook`                 | Settlement                 |

## Seller setup

1. Open **Payment methods** in the dashboard.
2. Connect Stripe keys / account settings for the store.
3. Point Stripe webhooks at `https://YOUR_APP_ORIGIN/api/stripe/webhook`.
4. Enable the events your handler expects (checkout session completed / payment intent succeeded — match the deployed handler).

## Integrator notes

* Create routes are checkout-lifecycle public + rate limited. Amounts must match the DB order (`assertOrderPaymentAmount` on create paths).
* Webhook signature verification is mandatory — unsigned posts are rejected.
* After settlement, `completeOrderFromGateway` runs fulfillment (keys / files).
* Apple Pay / wallet methods depend on Stripe domain verification in your Stripe dashboard; Join Markt does not replace that step.

See [Supported payment methods](/guides/payment-methods) and [Incoming webhooks](/api/webhooks-overview).
