# Checkout Embed (/docs/embed) The checkout embed puts Jetron's full buying flow inside your page: ticket selection, quantities, promo codes, contact details, and payment. You supply one iframe and Jetron handles the rest, so there is no API key, no backend, and no checkout code on your side. ## Add the embed [#add-the-embed] Point an iframe at the checkout host followed by your event's slug: ```html ``` That is the entire integration. The slug is the same `slug` the API returns for the event, so a page that already lists events can build the URL from data it has. Your Jetron Ticket dashboard generates this snippet for you, already filled in with the event slug and your configured theme, under the event's **Integrations → Website Embed** tab. ## Theming [#theming] Two query parameters control the look: | Parameter | Values | Description | | ------------- | ----------------- | -------------------------------------------------------- | | `theme` | `light` or `dark` | Colour mode for the checkout. | | `colorScheme` | 6-digit hex | Accent colour, applied as the checkout's primary colour. | ```html ``` `colorScheme` accepts the hex with or without a leading `#`. If you include the `#`, URL-encode it as `%23`, since a raw `#` would start a URL fragment: ```js const accent = '#e0995a' const src = `https://checkout.jetronticket.com/${slug}?theme=light&colorScheme=${encodeURIComponent(accent)}` ``` If you have set an embed mode or colour on the event in your dashboard, that configuration is applied after the URL parameters and overrides them. Use the dashboard when you want one consistent look, and the query parameters when the embedding page picks the colour per event. ## Sizing [#sizing] The embed does not resize itself and does not post messages to the parent page, so give the iframe a height that fits the tallest step of the flow. Around `760px` works for most events. If your layout allows it, a viewport-relative height such as `min(760px, 90vh)` handles small screens more gracefully. Because there is no message channel, the parent page is not notified when a purchase completes. To react to purchases on your own systems, use [webhooks](/docs/webhooks). ## When to use the embed [#when-to-use-the-embed] The embed is the right choice when you want to start selling quickly, when you do not want to handle payment redirects yourself, or when you are selling a **Seat Map** event. Seat Map events cannot be sold through the API, but the embed supports them fully, including the seat picker. Choose the [API](/docs/concepts/checkout-flow) instead when you need control over every screen, want to collect custom fields, or are building the buying experience into an existing product flow. ## Live example [#live-example] [boba.jtr.rsvp](https://boba.jtr.rsvp/) embeds the checkout on several of its events and passes each event's accent colour through `colorScheme`, so the checkout matches the page it sits in. Its source is on GitHub at [jetronmall/boba-event](https://github.com/jetronmall/boba-event), and [Example site](/docs/example-site) explains the setup. # Example site (/docs/example-site) [**boba.jtr.rsvp**](https://boba.jtr.rsvp/) is a working event site built on Jetron Fluid, and it is **open source**. It is worth a look because it does everything at once: the [checkout embed](/docs/embed) on some events, the [API](/docs/concepts/checkout-flow) on others, and [webhooks](/docs/webhooks) behind both. ## Who supplies what [#who-supplies-what] The site looks nothing like Jetron. It has its own domain, fonts, colours, and layout. | Jetron supplies | The site supplies | | --------------------------------------------------------- | ----------------------------------------------- | | Which events exist, with their dates, posters, and prices | The design: fonts, colours, imagery, and layout | | How many tickets are left right now | The writing: hero copy and event descriptions | | Taking payment and sending out the tickets | Everything the visitor actually sees | Add an event in Jetron Ticket and it appears on the site on its own. ## Two ways to sell, on one site [#two-ways-to-sell-on-one-site] Each event picks how it sells. **With the embed**, the page drops in an iframe and passes its own accent colour so the checkout matches the page around it: ```tsx