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

# Form Filling SDK Prerequisites

> Browser, webhook, authentication, and template setup required before you integrate the Suki Form filling SDK

Before you integrate the Form filling SDK, ensure you have partner credentials, Medical form template IDs, a browser on HTTPS with microphone access, and a production webhook.

## Partner credentials

You need `partnerId` and `partnerToken` from Suki after [Partner onboarding](/documentation/get-started/partner-onboarding). Form filling does not open until sign-in succeeds with valid credentials.

## Medical form templates

The Form filling SDK supports multiple Medical form templates, such as **Vitals**, **Neuro**, and **Skin**. Each template has a unique `type`, such as `VITALS_ASSESSMENT` or `NEURO_ASSESSMENT`. For a complete list, refer to [Form filling templates](/documentation/concepts/form-filling/form-filling-templates).

Work with Suki's [Support team](mailto:support@suki.ai) to get the required <Tooltip tip="A Suki-defined form schema identified by form_template_id for Form filling sessions." cta="View in Glossary" href="/Glossary/m">Medical form template</Tooltip> IDs enabled for your partner account. Pass those IDs in the `form_template_ids` parameter when you call `client.start()` or render `<FormFilling>`. `form_template_ids` is an array of `template_id` values. Each `template_id` is a unique 36-character UUID assigned to your partner account.

<Warning>
  * Template IDs are different for **staging** and **production** environments.
  * Unsupported template IDs are ignored when you call `start()`.
</Warning>

If you also use the Form filling API, `template_id` values are returned from [Suki Medical form templates](/form-filling-api-reference/info/suki-medical-form-templates) (`GET /api/v1/info/suki-medical-form-templates`).

<Note>
  SDK integrations should still use IDs provided by Suki support.
</Note>

## Browser and layout

* Run the SDK in a browser on HTTPS. Microphone access requires a secure context.
* Give the Form filling container explicit height so the hosted UI is visible.
* If your app uses a Content-Security-Policy header, allow the hosted Form filling iframe in `frame-src`:.

| Environment | Origin                       |
| ----------- | ---------------------------- |
| Production  | `https://sdk.suki.ai`        |
| Staging     | `https://sdk.suki-stage.com` |

<Note>
  Form filling runs in an iframe from that URL. If your CSP blocks it, the UI may not appear or you may see error `SUKI_FF_002`.
</Note>

## Partner webhook

After the clinician submits, Suki processes the Form filling session before structured JSON is ready. Processing may take some time and finishes after the clinician closes the tab.

The SDK calls `onSubmit` in the browser when results are available. For production, also register a [Partner webhook](/documentation/webhook/overview) during [Partner onboarding](/documentation/get-started/partner-onboarding). Suki sends the same structured data to your server when processing completes.

For more information, refer to the [Webhook quickstart](/documentation/webhook/quickstart) and [Signature verification](/documentation/webhook/signature-verification), or use the [Webhook handler example](/form-filling-sdk/examples/webhook-handler).

<Warning>
  Do not rely on `onSubmit` alone to save results. Use a webhook in production so structured data still reaches your server if the tab closes before processing finishes.
</Warning>

## Provider context

Form filling only requires `partnerId` and `partnerToken` to sign in. Provider fields are optional when you set `autoRegister: false` (recommended unless you use provider auto-registration). `autoRegister` defaults to `true`, and when it is `true` you must also pass `providerName` and `providerOrgId`.

If your app already knows which clinician is using Form filling, pass their details when you create `SukiAuthManager`:

* `providerId`: your identifier for that clinician in your system.
* `providerName`: display name shown in the hosted UI.
* `providerSpecialty`: clinical specialty, for example `FAMILY_MEDICINE`.

These fields tie the session to the right provider in your workflow. For allowed specialty values, refer to [Specialties](/documentation/concepts/ambient-clinical-notes/specialties). Refer to [Authentication](/form-filling-sdk/guides/authentication) for `autoRegister` and the full sign-in options.

## Next steps

<Icon icon="file-lines" iconType="solid" /> Refer to the [Quickstart](/form-filling-sdk/quickstart) after you have credentials and template IDs.
