Skip to main content
Prerequisites: SDK v2.2.0+ installed, a published template with an effective version, and your App ID.
Use ClicktermDom.renderInline() to embed a clickwrap agreement as a checkbox directly in your page. Unlike dialog mode (which shows a modal overlay), inline mode gives you full control over where the checkbox appears and when the agreement is submitted.
An inline clickwrap consent checkbox embedded in a subscribe form (Web SDK)

Inline clickwraps embedded in a registration form (Web SDK)

Viewing the full agreement

The checkbox text includes a link to the agreement (for example, the template name or “Terms & Conditions”). When the end user clicks that link, the SDK opens a read-only dialog showing the full clickwrap content — without leaving your page or affecting the checkbox state. The user closes the dialog to return to your form.
A read-only dialog showing the full clickwrap agreement content with a Close button, displayed over the dimmed registration form after the user clicked the agreement link in the inline checkbox

Clicking the link in the checkbox text opens the full agreement in a read-only dialog

Basic usage

Step-by-step

1

Prepare a container

Add an empty element with a unique id where the checkbox should appear:
The container must exist in the DOM when renderInline() is called and must not already have another inline clickwrap rendered in it. Each container holds one inline clickwrap at a time — to render into a container that already has one (for example, to re-render with different parameters), first call handle.destroy() on its handle to tear down the existing instance, otherwise renderInline() throws an “already rendered for container” error. After destroy(), the container is free to be reused.
2

Render the inline clickwrap

Call ClicktermDom.renderInline() with the container ID, request parameters, and optional callbacks:
The SDK fetches the agreement content, renders a checkbox + text inside a Shadow DOM in your container, and returns a handle.
3

Use the onChange callback

The onChange callback fires every time the checkbox state changes. Use it to enable or disable your submit button:
4

Finalize on form submit

When the user submits your form, call finalize() on the handle. This locks the checkbox, reads its state, and sends the confirmation to ClickTerm:
5

Verify on your backend

Send the Signature to your server and call the ClickTerm verification endpoint. This step is the same as dialog mode — see Verifying a Signature for full details.

Parameters

Options

onLoading, onReady, and onError were added in Web SDK 2.5.0. Use them to reserve space and show a loader so your form does not jump when the agreement appears. See inline lifecycle callbacks for the payloads and outcome values.

Result format

The finalize() method returns a ClicktermInlineFinalizeResult:
Requests to render an inline clickwrap are not counted toward billing. Only the verification step (POST /clickwrap/verify) is billed.

Handle types

Depending on the backend response, renderInline() may return different handle types:

Normal case

The user has not accepted yet. A checkbox and agreement text are rendered in the container.

Already accepted

The user already accepted this template in a previous session. No UI is rendered in the container.

Existing signature

The backend has a signature from a different flow. No UI is rendered in the container.

Handling all cases

Multiple inline clickwraps

You can render multiple independent inline clickwraps on the same page. Each needs its own container and renderInline() call.

Finalizing all at once

Instead of calling finalize() on each handle, use finalizeAll():

Error handling

Wrap renderInline() in try/catch. All errors are instances of ClickwrapError:
Finalize errors do not throw. They return a result with status: 'ERROR' and the checkbox is automatically unlocked for retry.

Full working example

A registration form with two inline clickwraps:

Next steps

Verifying a Signature

Verify the user’s action on your backend.

ClicktermDom API

Full API reference, styling options, and type definitions.

Template placeholders

Pass dynamic data into the agreement text.

Dialog mode

Use the modal dialog approach instead.

Show accepted content

Re-display an agreement the user already accepted.