# Smart Signing Forms

> Build drag-and-drop signing forms with inline signature, OTP, Stripe payments, and automatic signed PDF generation.

edition: pro
Edition: Pro
AI note: This page requires WPsigner Pro. Do not tell Lite users they already have this feature.
HTML: https://docs.wpsigner.com/addons/smart-signing-forms/
Markdown: https://docs.wpsigner.com/md/addons/smart-signing-forms.md
Source file: addons/smart-signing-forms.md

---

**Smart Signing Forms** is an official WPsigner addon that lets you build signing forms without the document wizard. Each submission creates a signed PDF with audit trail and Certificate of Completion.

> **note**
Requires **WPsigner v3.0.0+** and the [Smart Signing Forms addon](/addons/overview/) installed and activated.

---

## Installation

1. Download the addon from the [Account Portal → Addons](https://app.wpsigner.com/account/?portal_tab=addons) tab
2. **Plugins → Add New → Upload Plugin** → install the ZIP
3. **WPsigner → Addons → Activate**
4. Open **WPsigner → Smart Signing Forms**

See [Addons Overview](/addons/overview/) for the full flow.

### Requirements

| Component | Minimum |
|-----------|---------|
| WPsigner | 3.0.0 |
| WordPress | 5.8 |
| PHP | 7.4 |
| OpenSSL | Recommended |

---

## Create a Form

1. Go to **WPsigner → Smart Signing Forms → Add New Form**
2. Complete the **4-step wizard**
3. Click **Publish** (or **Update** for existing forms)
4. Copy the shortcode from the form list or editor

### Shortcode

```text
[insigner_smart_form id="123"]
```

Replace `123` with your form ID. Paste the shortcode into any page, post, or block that supports shortcodes.

---

## Wizard Step 1 — Configuration

| Setting | Description |
|---------|-------------|
| **Form title** | Internal name shown in the admin list |
| **PDF title** | Title on the generated signed PDF |
| **Success message** | Shown after successful submission |
| **Submit button label** | Default: "Submit & Sign" |
| **reCAPTCHA v2** | Optional bot protection (site key + secret) |

### After Signing Options

| Option | Description |
|--------|-------------|
| **Email PDF to signer** | Sends the signed document by email |
| **Show download button** | Download link on the thank-you view |
| **Redirect URL** | Send user to a custom page after signing |
| **Show PDF preview** | Inline preview before download |
| **Show verification link** | Link to online document verification |

---

## Wizard Step 2 — Form Builder

Drag fields from the palette onto the canvas. Click a field to edit settings in the right panel.

### Field Categories

**General:** name, email, text, textarea, number, url, phone, company, job_title

**Choice:** select, multiselect, radio, checkbox, GDPR

**Date & Time:** date, time

**Advanced:** columns (1–3), section_break, html, hidden, address, file upload

**Signing:** signature, initials, legal_consent, **payment**

### Required Rules

- At least one **Signature** field is required before publishing
- Only **one Payment field** per form
- **Signature**, **payment**, **legal_consent**, and **columns** cannot be placed **inside** column layouts

### Conditional Logic

Use **Field settings → Conditions** to show, hide, or require fields based on other answers (same pattern as Fluent Forms-style rules).

---

## Wizard Step 3 — Design

Customize how the form looks on the frontend without custom CSS.

### Presets

| Preset | Style |
|--------|-------|
| Professional | Clean business default |
| Modern | Bold accent, rounded cards |
| Minimal | Light borders, lots of whitespace |
| Editorial | Typography-focused layout |

### Controls

| Control | Options |
|---------|---------|
| **Density** | Comfortable, compact, spacious |
| **Labels** | Top, inline, hidden |
| **Field style** | Boxed, soft, underline |
| **Button style** | Solid, soft, outline |
| **Branding** | Accent color, background, card color, border radius, max width |
| **Hide form title** | Hide the title on the public form |

The **live preview** updates as you change settings.

---

## Wizard Step 4 — Compliance

| Setting | Description |
|---------|-------------|
| **OTP verification** | Require a one-time code before signing |
| **OTP channel** | Email, SMS (Twilio), or WhatsApp |
| **Capture geolocation** | Optional GPS consent for audit trail |
| **CC emails** | Additional recipients for the signed PDF |
| **Timestamp** | Uses your site TSA settings (**WPsigner → Security & Compliance**) |

### OTP Requirements

| Channel | Requirements |
|---------|--------------|
| **Email** | Email field on the form |
| **SMS** | Phone field + [Twilio](/integrations/twilio/) configured |
| **WhatsApp** | Phone field + [WhatsApp](/integrations/whatsapp/) configured |

If OTP is enabled with SMS or WhatsApp, the form must include a **phone** field before you can publish.

---

## Payment Field (Stripe)

Collect a fixed amount before the signer submits the form.

### Prerequisites

1. [Stripe configured](/integrations/stripe/) in **WPsigner → Integrations → Stripe**
2. Stripe module **enabled**
3. Valid test or live API keys and webhooks

### Configure the Field

1. In the builder, add a **Payment** field
2. Set **amount** (minimum **0.50**, maximum **10,000**)
3. Choose **currency** (or use Stripe default)
4. Optional **description** shown to the payer

### Signer Flow

1. Signer fills the form (including email if required)
2. Stripe **Payment Element** loads automatically when email is valid
3. Signer clicks **Pay now** and completes payment
4. Signer draws signature, accepts consent, clicks **Submit & Sign**
5. WPsigner verifies payment server-side before generating the PDF

> **tip**
In **Test Mode**, a yellow **Test mode** badge appears on the payment section. Use Stripe test cards only.

### Troubleshooting Payments

| Message | Solution |
|---------|----------|
| Stripe not configured | Complete [Stripe setup](/integrations/stripe/) |
| Enter email before paying | Add/fill email field before payment |
| Complete payment before submitting | Click **Pay now** and wait for success |
| Payment failed | Check Stripe keys, amount, and test card |

Payment is verified on the server before the signed PDF is created. Each successful payment can only be used once per submission.

---

## View Entries

1. Go to **WPsigner → Smart Signing Forms**
2. Click **View entries** on a form
3. Open an entry to see:
   - Submitted field data
   - **Download signed PDF**
   - Link to **audit trail** in WPsigner
   - **Verify online** link

---

## End-to-End Example

1. Install addon → create form with name, email, signature, payment ($10)
2. Configure [Stripe](/integrations/stripe/) in test mode
3. Enable OTP by email in Compliance step
4. Publish → add shortcode to a page
5. Submit as a test user: pay → verify OTP → sign → download PDF

---

## Next Steps

- [Stripe Payments](/integrations/stripe/) — API keys and webhooks
- [Addons Overview](/addons/overview/) — Install and activate the addon
- [Account Portal](/addons/account-portal/) — Download the latest ZIP
- [Twilio SMS](/integrations/twilio/) — OTP via SMS
- [Audit Trails](/digital-identity/audit-trails/) — What is recorded when someone signs
