> ## 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

> Configure requests, environments, placeholders, and languages in the ClickTerm iOS SDK.

## ClickwrapTemplateRequest

```swift theme={null}
let request = ClickwrapTemplateRequest(
    clickwrapTemplateId: "YOUR_TEMPLATE_ID",
    endUserId: "user-123",
    templatePlaceholders: nil,
    language: "en"
)
```

<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. It must not be empty.
</ParamField>

<ParamField body="templatePlaceholders" type="[String: AnyCodable]">
  Structured values inserted into the agreement. See [Template placeholders](/dev/guides/placeholders).
</ParamField>

<ParamField body="language" type="String" required>
  Language code for the agreement and dialog UI. See [supported languages](/product/reference/supported-languages).
</ParamField>

## Template placeholders

```swift theme={null}
let placeholders: [String: AnyCodable] = [
    "fullName": AnyCodable("Alice Example"),
    "email": AnyCodable("alice@example.com"),
    "company": AnyCodable("Acme Corp"),
    "jobTitle": AnyCodable("General Counsel"),
    "date": AnyCodable("2026-07-28"),
    "phoneNumber": AnyCodable("+12025550123"),
    "registrationNumber": AnyCodable("HRB 123456"),
    "vatNumber": AnyCodable("GB123456789"),
    "address": AnyCodable("221B Baker Street, London"),
    "customPlaceholders": AnyCodable([
        "region": "EMEA",
        "plan": "Enterprise"
    ])
]
```

Only send placeholders used by the selected template.

## Environments

Production is the default:

```swift theme={null}
ClicktermClient.initialize(appId: "YOUR_CLICKTERM_APP_ID")
```

Use the development environment while testing:

```swift theme={null}
ClicktermClient.initialize(
    appId: "YOUR_CLICKTERM_APP_ID",
    environment: .development
)
```

The SDK also supports custom API and translation URLs:

```swift theme={null}
import Foundation

let environment = ClicktermEnvironment.custom(
    apiBaseURL: URL(string: "https://api.example.com")!,
    translationsURL: URL(string: "https://static.example.com/translations.json")!
)

ClicktermClient.initialize(
    appId: "YOUR_CLICKTERM_APP_ID",
    environment: environment
)
```

<Warning>
  Use `.custom` only for controlled development or proxy setups. Production apps
  should normally use `.production`.
</Warning>

## Dialog appearance

Dialog colors, buttons, logo, and agreement mode come from the template settings in [ClickTerm Template Preview & Customize](/product/templates/widget-customization). The iOS `show()` method does not require a separate appearance configuration object.
