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

# Launch Checklist

> Essential checklist of tasks to complete before launching your Knot integration in production.

<Warning>
  Ensure you complete all of the below tasks before launching your integration with Knot in production.
</Warning>

## Basic Setup

* Contact the Knot team to request production access and align on your go-live timeline
* Retrieve your production `client_id` and generate a `secret` to create your API key for the production environment
* Do not store your production credentials in source control or client-accessible code
* Configure a webhook for the production environment in the [Knot Dashboard](https://dashboard.knotapi.com/developers/webhooks) to receive critical server-side events webhooks

## SDK

* Install and use the latest version of the Knot SDK, including bumping to any patch versions
* Call [Create Session](/api-reference/sessions/create-session) to generate a new session **every time** you initialize the SDK
* Do not log session IDs internally or in 3rd party tooling
* Only invoke the Knot SDK with sessions generated with your production API key in your production environment
* Pass your production `client_id` and `environment: production` when invoking the Knot SDK in your production environment
* Handle client-side callbacks (`onSuccess`, `onError`, `onExit`, `onEvent`)
* Pass a value for the [`entry_point`](/sdk/ios#configure-the-session) parameter at SDK initialization for analytics & funnel tracking
* In case users use the Knot SDK for >30 minutes when the session will expire, handle the `onEvent` callback with `event: REFRESH_SESSION_REQUEST` and call [Extend Session](/api-reference/sessions/extend-session) when you receive the event
* If using the Web SDK, you can optionally enable domain allowlisting by reaching out to the Knot team, then allowlisting domains in the [Knot Dashboard](https://dashboard.knotapi.com/developers/domains) for additional security.

## Other

* Remove any test/development/staging credentials (e.g., `user_good`) from client-side or server-side code for production
* Contact Knot team to request production access and align go-live timeline

## Product-Specific

### CardSwitcher

* Always call [Switch Card (JWE)](/api-reference/products/card-switcher/switch-card-jwe) or [Switch Card](/api-reference/products/card-switcher/switch-card) within 15 seconds of receiving the `AUTHENTICATED` webhook
* If you display merchants natively in your app, handle the [`MERCHANT_STATUS_UPDATE`](/link/webhook-events/merchant-status-update) webhook event to gracefully handle changes in merchant availability by product `type`, `platform`, and `min_sdk_version` (more [here](/link/retrieving-and-listing-merchants#retrieving%2C-listing%2C-and-searching))
