What’s changed
- Style the inline clickwrap to match your site — The
styleoption now covers the container, text, links, formatting marks, and every checkbox state (hover, checked, focus, disabled), so you can match your own design without reaching into the Shadow DOM. See the styling reference. - Loading states that feel at home in your app — Inline clickwraps now offer optional
onLoading,onReady, andonErrorcallbacks, giving you an easy way to show your own loader, success state, or retry message. See inline lifecycle callbacks. - Smoother loading, even when the network wobbles — Clickwraps now retry once when a load fails on a temporary error, so users are less likely to hit an error. No setup changes needed.
- Clearer date wording — The agreement subtitle now reads Effective as of instead of Published on, which better describes the date being shown. Updated in every supported language.
- Formatting that stays true to your agreement — Strikethrough text is now preserved when agreement content is displayed.
What’s changed
- A steadier experience on unreliable connections — The SDK now retries once when a load fails on a temporary error before showing an error. Your existing integration keeps working as-is.
- Clearer date wording — The dialog subtitle now reads Effective as of instead of Published on.
- Localized Close button — The dialog’s Close button now uses a dedicated
closetranslation, falling back tocancelfor integrations that have not supplied one yet.
What’s changed
- A steadier experience on unreliable connections — The SDK now retries once when a load fails on a temporary error before showing an error. Your existing integration keeps working as-is.
What’s changed
- Fresh native foundations — React Native apps now use iOS SDK
1.2.0and Android SDK2.3.0, keeping both platforms in step while the JavaScript and TypeScript API stays exactly the same.
What’s new
- Install without source access — Add the prebuilt iOS SDK through Swift Package Manager or download the XCFramework directly from the ClickTerm CDN. See the iOS installation guide for both options.
What’s changed
- More of your theme, everywhere — Checkbox and scroll bar colors now match the colors selected in ClickTerm Template Preview & Customize.
- A few behind-the-scenes tune-ups.
What’s changed
- A maintenance release with behind-the-scenes improvements. No integration changes needed.
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

