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

# Configuration options

> All configuration options for the ClickTerm Android SDK.

## ClickwrapTemplate parameters

<ParamField body="clickwrapTemplateId" type="String" required>
  Template ID from the ClickTerm dashboard.
</ParamField>

<ParamField body="endUserId" type="String" required>
  Your identifier for the end user (max 256 chars).
</ParamField>

<ParamField body="templatePlaceholders" type="TemplatePlaceholdersRequestDto">
  Structured placeholder object with standard fields plus `customPlaceholders` for user-defined keys. See [Template placeholders](/dev/guides/placeholders) for the full list.
</ParamField>

<ParamField body="languageCode" type="String">
  Language code for template content and UI strings. See [supported languages](#supported-languages) below.
</ParamField>

## Dialog configuration

The third parameter of `ClicktermDialog.show()` accepts a nullable `JSONObject` with configuration options:

<ParamField body="disableClose" type="boolean" default="false">
  When `true`, the user cannot close the dialog without accepting or declining.
</ParamField>

```java theme={null}
JSONObject config = new JSONObject();
config.put("disableClose", true);

ClicktermDialog.show(this, request, config,
    new ClicktermDialog.OnAgreementResultListener() {
        @Override
        public void onSuccess(String clicktermSignature) {
            // Handle result
        }

        @Override
        public void onError(String message) {
            // Handle error
        }
    }
);
```

Pass `null` as the config parameter to use defaults:

```java theme={null}
ClicktermDialog.show(this, request, null, listener);
```

## Visual customization

Starting from **SDK version 2.1**, dialog appearance is customized from the [ClickTerm Dashboard](/product/templates/widget-customization) — no code-level configuration needed. Settings apply at the template level across all versions.

## Placeholder values

Pass placeholder values as a `TemplatePlaceholdersRequestDto`:

```kotlin theme={null}
val placeholders = TemplatePlaceholdersRequestDto(
    fullName = "Alice Example",
    email = "alice@example.com",
    company = "Acme Corp",
    jobTitle = "Senior Counsel",
    date = "2026-06-23",
    phoneNumber = "+12025550123",
    registrationNumber = "HRB 123456",
    vatNumber = "GB123456789",
    address = "221B Baker St\nLondon NW1",
    customPlaceholders = mapOf(
        "region" to "EMEA",
        "plan" to "Enterprise",
        "purchaseOrder" to "12345-XYZ",
    ),
)
```

See [Template placeholders](/dev/guides/placeholders) for the full list of available placeholders with types and validation rules.

## Supported languages

The `languageCode` parameter determines both the template content language and UI strings (buttons, prompts, labels). If omitted or unsupported, the default language configured in the ClickTerm UI is used.

| Code | Language                  | Code | Language        |
| ---- | ------------------------- | ---- | --------------- |
| `bg` | 🇧🇬 Bulgarian            | `hu` | 🇭🇺 Hungarian  |
| `cs` | 🇨🇿 Czech                | `it` | 🇮🇹 Italian    |
| `de` | 🇩🇪 German               | `nl` | 🇳🇱 Dutch      |
| `el` | 🇬🇷 Greek                | `no` | 🇳🇴 Norwegian  |
| `en` | 🇬🇧 English              | `pl` | 🇵🇱 Polish     |
| `es` | 🇪🇸 Spanish              | `pt` | 🇵🇹 Portuguese |
| `fi` | 🇫🇮 Finnish              | `ro` | 🇷🇴 Romanian   |
| `fr` | 🇫🇷 French               | `ru` | 🇷🇺 Russian    |
| `hi` | 🇮🇳 Hindi                | `sr` | 🇷🇸 Serbian    |
| `sv` | 🇸🇪 Swedish              | `uk` | 🇺🇦 Ukrainian  |
| `zh` | 🇨🇳 Chinese (Simplified) |      |                 |

<Info>
  ClickTerm does **not** auto-translate your content. Create localized template
  content in the ClickTerm UI for every language you plan to support.
</Info>
