# Actions You Need to Complete

## Update your DNS Settings

### `checkoutBaseUrl`

The Checkout will be hosted on `yourprimarydomain.com`, which will have `checkout.`as a sub-domain, for example `https://checkout.yourprimarydomain.com`. This custom domain base URL is known as the `checkoutBaseUrl`.

{% hint style="info" %}
By way of example, the `checkoutBaseUrl` for `www.badmintonengland.co.uk` is `https://checkout.badmintonengland.co.uk`.
{% endhint %}

By altering your DNS settings accordingly, when users click the "Book" button on your search platform, imin will be able to generate the Checkout page for them to book and pay for their chosen activity. It also allows imin to remotely update and resolve any issues.

{% hint style="success" %}
What you need to do:

* In your name server, add the CNAME record that imin provides to you with:
  * Name: `checkout.yourprimarydomain.com`; and
  * Target/value: `imin-checkout-2.azureedge.net`.
* You can check that this has worked by inputting the `checkoutBaseUrl` into [Google Dig](https://toolbox.googleapps.com/apps/dig/#A/).
  {% endhint %}

{% hint style="info" %}
If you require additional checkout for testing purposes, then these will will also need these to be added to your name server.
{% endhint %}

{% hint style="info" %}
If you do not want to use `checkout.` as the subdomain, please get in touch.
{% endhint %}

### Sender Authentication

You also need to add further DNS records to prevent confirmation emails going to spam folders (this is only actionable once step 1 above has been completed).

{% hint style="success" %}
What you need to do:

* Tell us which provider is your DNS host, e.g. Cloudflare, 123 Reg, GoDaddy, etc.
* We will provide you with three CNAMEs and their corresponding values, which you will need to enter into your DNS host. These will take the following form:
  * Host: `em123.yourwebsite.co.uk`
  * Value: `u1234567890.wl105.sendgrid.net`
    {% endhint %}

Once you have confirmed completion of this step, we will perform some tests before putting it live on your primary domain.

{% hint style="info" %}
imin uses the Stripe API and we have completed the necessary work to use a modern version of TLS in order to comply with PCI-DSS, as per Stripe's guidelines.
{% endhint %}

## Add a "Book" Button to your Search Platform

In your user flow, the user will need to perform an action (normally clicking a “Book” button or a link) to indicate they wish to proceed to the Checkout, where they can select which session time slot they would like to book, before proceeding to payment.

In order for your branded Checkout to appear, you will need to ensure that your "Book" button opens the webpage specified by the `imin:checkoutUrlTemplate`, with the template placeholder`checkoutBaseUrl` to be replaced by your custom domain base URL (e.g. `https://checkout.yourwebsite.com`).

{% hint style="info" %}
For example `"imin:checkoutUrlTemplate": "{checkoutBaseUrl}/v1/events/fusion-123"` should be rendered as `"https://checkout.yourwebsite.com/v1/events/fusion-123"`.
{% endhint %}

Bookable sessions provided via the imin Events API  will have an `imin:checkoutUrlTemplate`. Please note that there are two `imin:checkoutUrlTemplates` provided within `subEvent` of the API:

* A session-level `imin:checkoutUrlTemplate` at `SessionSeries` level; and
* An occurrence-level `imin:checkoutUrlTemplate` for each specific occurrence of a bookable session at the `ScheduledSession` level.

{% hint style="warning" %}
Not all `ScheduledSession` will have an `imin:checkoutUrlTemplate`. This could be because a `ScheduledSession` may be outside of the booking window (7 days), have no remaining capacity, or belong to a provider that is not yet bookable.
{% endhint %}

{% hint style="danger" %}
Please note that `imin:checkoutUrlTemplate` was previously located within `imin:aggregateOffer` at the `EventSeries`level, however, this is no longer the case. `imin:checkoutUrlTemplate` is now only available within the `subEvent` of `SessionSeries` and the`subEvent`of`ScheduledSession`.
{% endhint %}

{% hint style="info" %}
In order to enable Apple Pay and Google Pay, when the user clicks the “Book” button, it should open in:

* The same tab for web;
* A SFSafariViewController for iOS; and
* A Webview for Android.
  {% endhint %}

{% hint style="info" %}
If you are exclusively offering booking via a mobile app, a native in-app web-browser can be used to show the Checkout without pushing the user over to Chrome or Safari. For this you will still need a `checkoutBaseUrl` to enable you to direct the end user to your Branded Checkout in your app.
{% endhint %}

## Update Legal Information to Reference imin

When you begin working with imin, you must agree to and comply with our [Service Terms of Use](https://www.imin.co/terms/service-terms-of-use#Schedule-4-Standard-Terms-of-Sale-for-Bookings) (Schedule 4, clause 4). These terms state that, in situations where imin is processing personal data about your users on your behalf (such as during a booking), you must provide said users with a prominent link to imin's [Privacy Policy](https://www.imin.co/privacy).&#x20;

As such, your user-facing documentation needs to reflect the fact that several parties are involved in providing the booking and payment service to the end user. This documentation can include terms & conditions and/or a privacy policy.

{% hint style="success" %}
What you need to do:

* Add a prominent link to imin's [Privacy Policy](https://www.imin.co/privacy) to your terms & conditions (or your privacy policy if you do not have terms & conditions).
  {% endhint %}

{% hint style="danger" %}
A failure to update your documentation (either your terms & conditions or your privacy policy) in this manner will be considered a breach of our [Service Terms of Use](https://www.imin.co/terms/service-terms-of-use).
{% endhint %}

## Update your Cookie Policy

Your cookie policy needs to reflect the fact that Stripe, the third party payment platform that we use within our Checkout, generates two cookies on our Checkout pages.

Stripe has informed us that it is not possible to remove these cookies, and that they are used for the purposes of fraud prevention and detection of suspicious activity. If you do not update your cookie policy to reference these types of cookies, this will be considered a breach of our [terms](https://www.imin.co/terms/service-terms-of-use).

{% hint style="success" %}
What you need to do:

* Update your cookie policy to reflect the presence of cookies for the purposes of fraud prevention and detection of suspicious activity.
  {% endhint %}

{% hint style="info" %}
Example wording you could include in your cookie policy:

*Stripe, the payment processor used for guest bookings, generates two cookies on our checkout page for the purposes of fraud prevention and detection of suspicious activity.*
{% endhint %}

## Setup Analytics on your Search Platform

By setting up analytics from the start, we can work with you to better understand what how the search platform is performing and where data improvements and UX enhancements can be made.

{% hint style="success" %}
What you need to do:

* Setup analytics on the search platform.
* Let us know if you use Google Tag Manager and we can provide you with instructions.
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.imin.co/incorporating-book-and-pay/imin-checkout-branding/setup/part-ii-actions-you-need-to-complete.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
