Skip to main content

ESIGN Consent Disclosure

Under the ESIGN Act section 101(c), consumers must consent to receiving records electronically before an electronic signature can be captured. SpitShake shows a consent disclosure modal to every signer by default. Senders can configure this modal per template: customize the copy, or disable it entirely for B2B transactions where the consumer consent requirement does not apply.

How it works

  1. A signer opens their signing link (/s/:slug).
  2. Before seeing the signing form, they see a full-screen consent disclosure modal.
  3. The modal displays the required information (paper alternative, withdrawal rights, hardware requirements, etc.).
  4. The signer clicks I Agree & Continue to proceed, or Decline to exit.
  5. Acceptance is recorded in the submitter’s encrypted metadata with a timestamp, IP address, and user agent.
  6. An immutable audit entry of type esign_disclosure.accepted is written.

Configuration

Template preferences

The consent modal is controlled by these template.preferences keys:

Customizing the modal copy

Override the title, body, or button text via the API:
The body uses plain text with \n\n for paragraph breaks (rendered with whitespace-pre-line). When a custom body is set, it replaces the default federally-compliant copy entirely. The “Full disclosure” link to /legal/esignature-disclosure is always shown regardless of custom body.
If you provide custom body text, ensure it meets ESIGN Act section 101(c) disclosure requirements. Your organization’s legal counsel should review any custom copy before use.

Disabling for B2B templates

For pure B2B transactions where both parties are businesses (not consumers), the ESIGN section 101(c) consumer consent requirement does not apply. You can disable the modal:
Both flags must be set. The server requires esign_disclosure_bypass_acknowledged: true alongside esign_disclosure_enabled: false — setting the disable flag alone without the acknowledgment has no effect (the modal still shows). When the modal is disabled:
  • The signer lands directly on the start screen or first field.
  • The server auto-stamps acceptance metadata with esign_disclosure_bypassed_by_template: true and esign_disclosure_bypass_reason: "template_preference".
  • An immutable audit entry of type esign_disclosure.bypassed_by_template is written.
Only disable for B2B / non-consumer transactions. Under the ESIGN Act, consumer signers must consent to receiving records electronically. Your organization’s legal counsel should approve disabling the disclosure.

Re-enabling

Set esign_disclosure_enabled back to true (or remove it from preferences):
New submissions created after re-enabling will show the modal. Previously-bypassed submitters retain their bypass metadata (no retroactive change).

Builder UI

The consent modal can also be configured in the template Builder:
  1. Open a template in the Builder (/templates/:id/edit).
  2. Open the template settings panel.
  3. Find the Electronic Signature Disclosure section.
  4. Toggle Show ESIGN consumer consent disclosure to enable or disable.
  5. When enabled: fill in optional custom title, body, and agree button text.
  6. When disabled: an amber warning appears with a B2B acknowledgment checkbox that must be checked.
  7. Changes auto-save after 3 seconds.

Audit trail

ESIGN consent events are recorded in the immutable audit trail: Audit entry example (signer accepted):
Submitter metadata after acceptance:
Submitter metadata when bypassed by template:

Submission gate

The consent disclosure is enforced as a server-side gate. If a signer attempts to submit (POST /s/:slug/submit) without prior acceptance, the server returns:
This gate fires regardless of client-side state — even if the frontend modal is bypassed (e.g., by a custom integration), the server blocks submission until acceptance metadata is present.
The consent disclosure applies to all submitters on the template. If you need different consent behavior per role, create separate templates for each role.
The full statutory disclosure text is always available at /legal/esignature-disclosure, and the modal links to it regardless of custom body text. This ensures signers always have access to the complete federally-required information.