Documentation Index
Fetch the complete documentation index at: https://docs.spitshake.io/llms.txt
Use this file to discover all available pages before exploring further.
Email 2FA Verification
Email 2FA adds an extra layer of identity verification to the signing process. When enabled on a template, signers must verify their email address by entering a one-time code before they can access the signing form.How it works
- A signer opens the signing link (
/s/:slug). - Instead of seeing the signing form immediately, they see an email verification screen.
- DocuTrust sends a 6-digit verification code to the signer’s email address.
- The signer enters the code on the verification screen.
- If the code is valid, the signer proceeds to the signing form.
- If the code is invalid or expired, the signer can request a new one.
Enabling Email 2FA
Per-template configuration
Enable email 2FA verification on a template by setting therequire_email_2fa preference:
Disabling Email 2FA
Setrequire_email_2fa to false:
Verification flow
Step 1: Signer opens signing link
When a signer opens their signing URL and the template hasrequire_email_2fa: true, they see an email verification screen instead of the signing form.
The screen displays:
- A message explaining that email verification is required.
- The signer’s email address (partially masked for privacy, e.g.,
j***@example.com). - A button to send the verification code.
Step 2: Code delivery
DocuTrust sends an email containing:- A 6-digit numeric verification code.
- The template name for context.
- An expiration notice (codes expire after 10 minutes).
Step 3: Code entry
The signer enters the 6-digit code on the verification screen. Validation rules:| Rule | Behavior |
|---|---|
| Correct code | The signer is redirected to the signing form. |
| Incorrect code | An error message is shown. The signer can retry. |
| Expired code (after 10 minutes) | An error message is shown with an option to resend a new code. |
| Too many failed attempts (5 attempts) | The signer is temporarily locked out for 15 minutes. |
Step 4: Signing form access
After successful verification, the signer proceeds to the normal signing form. The verification status is stored in the submitter’s session — the signer does not need to re-verify if they navigate away and return within the same browser session.Audit trail
Email 2FA verification events are recorded in the immutable audit trail:| Event | Description |
|---|---|
email_2fa_code_sent | A verification code was sent to the signer’s email. |
email_2fa_code_verified | The signer entered a valid verification code. |
email_2fa_code_failed | The signer entered an invalid verification code. |
email_2fa_code_expired | A verification code expired without being used. |
email_2fa_lockout | The signer was temporarily locked out after too many failed attempts. |
email_2fa_code_resent | A new verification code was resent after the previous one expired or was requested again. |
Combining with other verification methods
Email 2FA can be combined with other verification methods for multi-layer identity verification:| Combination | Flow |
|---|---|
| Email 2FA + SMS OTP | Signer verifies email first, then verifies phone via SMS OTP on a phone_verification field. |
| Email 2FA + KBA | Signer verifies email first, then answers knowledge-based authentication questions. |
| Email 2FA + QES | Signer verifies email first, then completes Qualified Electronic Signature verification. |
Email 2FA verification applies to all submitters on the template, regardless of role. If you want different verification requirements per role, create separate templates for each role with different preferences.