> ## 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.

# Checkout embed

> Embed Join Markt purchase flows on an external site or landing page.

Use embeds when the buyer starts on **your** marketing site but should still check out through Join Markt.

## Pattern

1. Host a product CTA on the external page
2. Either link out to the storefront product URL, or start a cart via the embed / start-checkout API
3. Finish on `/checkout/[invoiceId]` (platform host)

## Storefront iframe (simple)

```html theme={null}
<iframe
  src="https://{subdomain}.joinmarkt.com/products/{product-slug}"
  title="Join Markt product"
  style="width:100%;min-height:720px;border:0;border-radius:12px;"
  loading="lazy"
  allow="payment *"
></iframe>
```

<Warning>
  Some payment methods refuse framed contexts. Prefer a full-page redirect to checkout for highest conversion.
</Warning>

## Recommended: button → storefront → checkout

```html theme={null}
<a
  class="buy-button"
  href="https://{subdomain}.joinmarkt.com/products/{product-slug}"
>
  Purchase
</a>
```

This avoids iframe payment restrictions and keeps theme + anti-fraud intact.

## Programmatic start

If you build a custom client, call your approved embed / storefront checkout endpoints from the Join Markt origin (CORS and CSRF rules apply). Never put secret API keys in browser code — use buyer session or a short-lived start token issued by your backend.

## Related

* [Checkout links](/developers/checkout-links)
* [Webhooks](/developers/webhooks)
* [API introduction](/api/introduction)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.