What’s changed
- Structured template placeholders —
templatePlaceholdersnow uses named fields (fullName,email,company,jobTitle,date,phoneNumber,registrationNumber,vatNumber,address) plus acustomPlaceholdersmap instead of flatcustom1tocustom10fields.
What’s changed
- Structured template placeholders —
templatePlaceholdersnow uses named fields (fullName,email,company,jobTitle,date,phoneNumber,registrationNumber,vatNumber,address) plus acustomPlaceholdersmap instead of flatcustom1tocustom10fields.
What’s changed
- Structured template placeholders —
templatePlaceholdersnow uses named fields (fullName,email,company,jobTitle,date,phoneNumber,registrationNumber,vatNumber,address) plus acustomPlaceholdersmap instead of flatcustom1tocustom10fields.
What’s changed
- Android dependency bump — Updated the bundled Android SDK to
2.1.1(from2.1.0). No changes to the JavaScript/TypeScript API or the iOS framework.
What’s changed
- iOS framework now fetched at install time — The native
ClicktermSDK.xcframeworkis no longer bundled in the npm package. It’s downloaded automatically from the ClickTerm CDN duringpod install, with a best-effort prefetch right afternpm install. You still don’t run a manual fetch step. - More resilient installs —
npm installno longer fails on Android-only projects, Windows hosts, restricted CI, or when the CDN is unreachable. The iOS prefetch is best-effort; the authoritative fetch happens atpod installtime and stops with an actionable message if it can’t download.
Security
- The iOS framework is downloaded over HTTPS. An optional checksum can be enforced with the
CLICKTERM_IOS_SDK_SHA256environment variable.
What’s new
- Initial release —
@clickterm/react-native-sdkis now available on npm. An Expo Module that wraps the native iOS and Android Clickterm SDKs so React Native apps (Expo or bare) can present clickwrap dialogs without writing custom native bridges. - Promise-based TypeScript API —
initialize(appId),show(request), andshowAcceptedContent(request). - Typed errors — All errors are thrown as
Errorinstances whose.codeproperty is one of the documentedClicktermErrorCodevalues (ERR_CLICKTERM_NOT_INITIALIZED,ERR_CLICKTERM_NETWORK,ERR_CLICKTERM_USER_CANCELLED, and others). - Expo config plugin — A no-op
app.plugin.jsships in the package so consumers can list"@clickterm/react-native-sdk"in theirapp.jsonpluginsarray. Future native-config tweaks can be added without an API break. - Requirements — React Native
0.75+or Expo SDK52+, iOS15.0+, AndroidminSdk 24.
What’s changed
- Published to npm — The Web SDK is now available on npm as
@clickterm/widget, shipping ESM and CJS builds with bundled TypeScript types. The CDN script tag remains fully supported — see Installation. - Additional request metadata — The Web SDK now includes extra SDK metadata in outgoing requests to help with troubleshooting, analytics, and support. This does not affect functionality.
What’s new
- Inline clickwrap mode — New
ClicktermDom.renderInline()method embeds a consent checkbox directly in your page, giving you full control over placement and submission timing. Ideal for registration forms, checkouts, and multi-consent flows ClicktermDom.finalizeAll()— Finalize multiple inline clickwraps at once with a single call- Inline styling API — Customize checkbox color, size, border radius, and text font via the
styleoption (code-based, independent of dashboard customization) - Multiple clickwraps per page — Render independent inline consent checkboxes in separate containers on the same page
Migration from v2.1
Web SDK: Update your script tag:ClicktermDialog code continues to work. The new ClicktermDom class is additive.See Displaying an inline clickwrap and the ClicktermDom API reference to get started.What’s changed
- Additional request metadata — The Android SDK now includes extra SDK metadata in outgoing requests to help with troubleshooting, analytics, and support. This does not affect functionality.
What’s new
- Shadow DOM encapsulation (Web) — Dialog now renders inside a closed Shadow DOM, preventing host page CSS from leaking into the clickwrap dialog
- Server-driven text customizations — Dialog text (button labels, prompts) can now be overridden per language via backend customization settings
- Callback interface renames (Android) —
*Callbackinterfaces renamed to*Listener,onFailurerenamed toonError shutdown()method (Android) — NewClicktermClient.shutdown()to clean up SDK state- Dialog refactoring (Android) — Extracted
DialogCustomization,DialogSession, andDialogTextResolverclasses for better maintainability
Migration from v2.0
Web SDK: Update your script tag:What’s new
- Remote customization settings — Dialog appearance (theme colors, button styles, border radius) is now configurable from the ClickTerm Dashboard per template
- Custom branding — Support for custom logos replacing the default ClickTerm branding in the dialog
- Server-driven agreement mode — Scroll vs. checkbox mode is now controlled via backend customization settings instead of client-side configuration
- Resolved language from server — The SDK now uses the server-resolved language for dialog translations, ensuring consistency with template content
Migration from v1.2
Web SDK: Update your script tag:Endpoints
POST /clickwrap/verify— Signature verificationGET /clickwrap-events/{id}/details— Event detailsGET /clickwrap-events/{id}/certificate— Certificate of Acceptance download (PDF)GET /clickwrap-events/{id}/agreement— Clickwrap Agreement download (PDF)GET /clickwraps/{endUserId}/status— Consent status checkGET /clickwrap-templates— Template discovery with tag filtering
What’s new
- Multi-language support — Dialog UI strings (buttons, prompts, labels) are now translatable. Translations are loaded remotely at initialization with fallback to English
- Supported languages at launch: English, German, French, Spanish, Chinese, Hindi, Russian
- Language can be specified per request via the
languageparameter - Language fallback chain: requested language → app locale → device locale → English
What’s fixed
- Modal responsiveness — Improved dialog sizing on different screen sizes
- Version display — Dialog subtitle now shows the template version number (format:
Published on: {date} | Version: {major}.{minor}) - Null safety (Android) — Fixed potential crash when content parameter is null in subtitle builder
What’s new
- Clickwrap dialog redesign — Full consent dialog UI with open/close animations, scroll tracking, and HTML content rendering
- Two agreement modes —
scroll(accept enabled after scrolling to bottom) andcheckbox(consent checkbox must be checked), configurable viaClicktermDialogConfig showAcceptedContent()— New method for reviewing previously accepted content in a read-only dialog- Promise-based API (Web) and listener callbacks (Android)
What’s changed
- API endpoint versioned — Paths updated from
/public-client/clickwrapto/public-client/v1/clickwrap - Field renames per glossary —
endUser→endUserId,templateId→clickwrapTemplateId,templateParams→templatePlaceholders - Minor version tracking — Added
clickwrapTemplateVersionMinorfield to event and template responses - Improved error handling (Android) — Structured error messages parsed from API response body

