# WPsigner Support Pack

> Troubleshooting, FAQ, security disclosure, and using docs with AI.

Generated for AI assistants from the official WPsigner docs.
HTML guide: https://docs.wpsigner.com/support/use-with-ai/
Pages in this pack: 5

## Suggested prompt

```text
You are helping me configure and use WPsigner, a self-hosted electronic-signature plugin for WordPress.
Use ONLY the documentation below as your source of truth.
Each page header includes edition: lite, pro, or both. Never invent Pro-only features for Lite.
If something is not covered, say so clearly and ask for the missing detail.
Prefer exact admin menu paths, shortcodes, endpoints, and settings names from the docs.
```

## Contents

1. [Support](https://docs.wpsigner.com/md/support.md) — https://docs.wpsigner.com/support/
2. [Frequently Asked Questions](https://docs.wpsigner.com/md/support/faq.md) — https://docs.wpsigner.com/support/faq/
3. [Report a Security Issue](https://docs.wpsigner.com/md/support/security.md) — https://docs.wpsigner.com/support/security/
4. [Troubleshooting](https://docs.wpsigner.com/md/support/troubleshooting.md) — https://docs.wpsigner.com/support/troubleshooting/
5. [Use Documentation with AI](https://docs.wpsigner.com/md/support/use-with-ai.md) — https://docs.wpsigner.com/support/use-with-ai/

---

# Support

> Find solutions to common issues, answers to frequently asked questions, and ways to get help with WPsigner.

edition: both
Edition: Lite + Pro
AI note: This page applies to Lite and Pro. Call out Lite limits (PDF only, max 2 signers, email OTP, local timestamp) when they apply. Do not invent Pro-only features.
HTML: https://docs.wpsigner.com/support/
Markdown: https://docs.wpsigner.com/md/support.md

Having trouble with WPsigner? This section covers the most common issues and questions. If you can't find what you're looking for here, reach out to the support team directly.

---

## Support Resources

| Resource | Description |
|----------|-------------|
| [Use Docs with AI](/support/use-with-ai/) | Copy per-page Markdown or topic packs into ChatGPT, Claude, Cursor, or any assistant |
| [Troubleshooting](/support/troubleshooting/) | Step-by-step solutions for installation issues, email delivery problems, signing errors, and integration failures |
| [FAQ](/support/faq/) | Answers about Lite vs Pro, licensing, MainWP, Uncanny Automator, and security |
| [Lite vs Pro](/getting-started/lite-vs-pro/) | Feature matrix and upgrade path without losing documents |
| [Glossary](/glossary/) | Envelope, TSA, OTP, campaign, audit trail, and other terms |
| [Report a Security Issue](/support/security/) | Responsible disclosure for vulnerabilities in WPsigner |

---

## Common Issues

### Installation & Activation
- Plugin won't activate → Check PHP version (7.4+ required) and missing extensions
- Setup wizard errors → Verify `openssl` and `gd`/`imagick` extensions are enabled
- Database errors → Ensure MySQL 5.7+ and `CREATE TABLE` permissions

### Email Delivery
- Signers not receiving emails → Check SMTP configuration or install a mail plugin (WP Mail SMTP, FluentSMTP)
- Emails going to spam → Configure SPF, DKIM, and DMARC records for your domain

### Signing Page
- PDF not loading → Check server memory limit (256MB+ recommended)
- Signature not saving → Verify JavaScript errors in the browser console
- Mobile display issues → Clear browser cache and ensure responsive mode is active
- Vietnamese or accented names missing on the signed PDF → **WPsigner → Languages → Signed PDF fonts** → install **Accented Latin**
- Signer asked to log in to WordPress → that row has **Require WordPress login** on; they must use the matching account email

For detailed solutions, see the [Troubleshooting Guide](/support/troubleshooting/).

---

## Contact Support

If the documentation doesn't resolve your issue:

- **Support Portal**: [wpsigner.com/contact](https://wpsigner.com/contact/)
- **Security issues**: [Report a vulnerability](/support/security/) (Patchstack VDP)
- **Response Time**: Typically within 24 hours on business days

When contacting support, include:
1. Your WPsigner version (found in **WPsigner → Settings → General**)
2. Your WordPress and PHP versions
3. A description of the issue and steps to reproduce it
4. Any error messages from `wp-content/debug.log`

> **tip**
Enable debug logging before contacting support — it helps resolve issues faster:

```php
// In wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
```

Then check `wp-content/debug.log` for entries starting with `[WPsigner]`.

---

# Frequently Asked Questions

> Answers to common questions about WPsigner electronic signatures, legal compliance, security, and features.

edition: both
Edition: Lite + Pro
AI note: This page applies to Lite and Pro. Call out Lite limits (PDF only, max 2 signers, email OTP, local timestamp) when they apply. Do not invent Pro-only features.
HTML: https://docs.wpsigner.com/support/faq/
Markdown: https://docs.wpsigner.com/md/support/faq.md

Find answers to the most common questions about WPsigner electronic signatures.

## Lite vs Pro

### What is the difference between Lite and Pro?

**Lite** is free (WordPress.org): PDF only, max two signers, email OTP, local timestamp, audit trail. **Pro** adds unlimited signers, campaigns, templates, addons, integrations, client portal, REST API/webhooks, external TSA, and full white-label. Full matrix: [Lite vs Pro](/getting-started/lite-vs-pro/).

### Can I upgrade from Lite to Pro without losing documents?

Yes. Pro uses the same `wps_*` database tables and secure storage. When Pro is active, Lite does not load. Your documents and audit logs remain.

### Is Lite a time-limited trial?

No. Lite is a complete free edition with published limits. Pro is a separate paid plugin.

### Where do I buy or upgrade to Pro?

Use [wpsigner.com/pricing](https://wpsigner.com/pricing/?utm_source=docs&utm_medium=upgrade&utm_campaign=faq) or the **Upgrade to Pro** button on Pro-only docs pages.

### I installed Lite from WordPress.org. Where do I start?

Follow **[First Document on Lite](/getting-started/first-document-lite/)** (PDF → up to two signers → send). For the full product path, see [Quick Start](/getting-started/quick-start/). Definitions of OTP, TSA, campaign, and audit trail: [Glossary](/glossary/).

## Legal & Compliance

### Are electronic signatures legally valid?

Electronic signatures are legally recognized in many countries, but validity for a particular transaction depends on consent, intent, identity evidence, retention, document type, and local exceptions:

| Region | Law | Status |
|--------|-----|--------|
| **United States** | ESIGN Act, UETA | ✅ Legal since 2000 |
| **European Union** | eIDAS Regulation | ✅ Legal since 2016 |
| **United Kingdom** | UK eIDAS/ECA 2000 | ✅ Legal |
| **Canada** | PIPEDA, Provincial laws | ✅ Legal |
| **Australia** | Electronic Transactions Act | ✅ Legal |

Electronic records generally cannot be rejected solely because they are electronic, but this does not make every workflow or document automatically enforceable.

### What documents can I sign electronically?

**Most documents** can be signed electronically:

| ✅ **Can Sign Electronically** | ❌ **May Require Wet Signature** |
|-------------------------------|----------------------------------|
| Contracts | Wills and testaments |
| Employment agreements | Court documents |
| NDAs | Some real estate deeds |
| Service agreements | Notarized documents |
| Purchase orders | Powers of attorney (varies) |
| HR documents | Some government forms |
| Client proposals | |

Check your local requirements for specific document types.

### Is WPsigner HIPAA compliant?

WPsigner can be used in a HIPAA-compliant manner when:

1. **You host on HIPAA-compliant infrastructure** (WPsigner is self-hosted)
2. **You configure appropriate security settings:**
   - Enable OTP verification
   - Use Digital ID signing
   - Configure audit trails
3. **Your hosting provider has a BAA** (Business Associate Agreement)
4. **You implement proper access controls**

WPsigner provides the tools; you ensure compliance through proper configuration.

### Does WPsigner meet eIDAS requirements?

WPsigner provides controls that can contribute to different eIDAS-oriented workflows:

| Level | WPsigner role | Additional requirements |
|-------|---------------|-------------------------|
| **Simple Electronic Signature (SES)** | Captures a signature and audit evidence | Transaction-specific consent and retention |
| **Advanced Electronic Signature (AdES)** | OTP, KYC, audit, certificate, and timestamp controls can contribute | Must satisfy all eIDAS AdES criteria, not just enable a preset |
| **Qualified Electronic Signature (QES)** | Can retain related evidence | Requires a qualified certificate, qualified signature-creation device/process, and QTSP |

The Security & Compliance score is guidance only and does not certify a workflow as AdES or QES.

---

## Security & Privacy

### Where is my data stored?

**On your own WordPress server.** WPsigner is completely self-hosted.

| Data Type | Storage Location |
|-----------|-----------------|
| Documents | `/wp-content/uploads/wpsigner/` |
| Signatures | Your WordPress database |
| User data | Your WordPress database |
| Audit logs | Your WordPress database |

WPsigner does **not** send data to external servers (except TSA timestamps if enabled).

### Is my data encrypted?

| Layer | Encryption |
|-------|------------|
| **In transit** | HTTPS (SSL/TLS) - you configure |
| **At rest** | Server-level - you configure |
| **Signed PDFs** | Digitally signed, tamper-evident |

You control encryption through your server and WordPress configuration.

### Can WPsigner access my documents?

**No.** WPsigner is a self-hosted plugin. The developers have no access to:
- Your documents
- Your signatures
- Your user data
- Your server

Everything stays on your infrastructure.

### How are signatures protected?

Signatures are protected through:

1. **Unique signing links** - Cryptographically secure tokens
2. **Link expiration** - Configurable expiry
3. **Optional PIN protection** - Extra access layer
4. **Optional OTP verification** - Email-based MFA
5. **Audit trail** - Complete activity logging
6. **Digital signature** - Cryptographic integrity

### What happens to documents after signing?

| Stage | What Happens |
|-------|--------------|
| Signing complete | PDF locked with digital signature |
| Audit trail appended | Certificate of Completion added |
| Notifications sent | All parties receive copy |
| Original stored | Remains on your server |

Documents remain on your server indefinitely until you delete them.

---

## Features & Functionality

### What file formats are supported?

| Format | Upload | Output |
|--------|--------|--------|
| **PDF** | ✅ Yes | ✅ Yes |
| **PNG** | ✅ Yes | ✅ Converted to PDF |
| **JPG/JPEG** | ✅ Yes | ✅ Converted to PDF |
| **Word (.docx)** | ❌ No | ❌ No |
| **Excel** | ❌ No | ❌ No |

Upload PDFs for best results. Images are converted to PDF automatically.

### How many signers can sign a document?

There's **no hard limit** on the number of signers. Practical limits depend on:
- Document layout (space for signatures)
- Workflow complexity
- Performance (server resources)

Most common use cases: 1-10 signers per document.

### Can I have multiple signature fields per signer?

**Yes.** Each signer can have multiple fields:
- Multiple signature fields
- Initials on each page
- Date fields
- Text fields
- Any combination of field types

### What's the difference between parallel and sequential signing?

| Parallel | Sequential |
|----------|------------|
| All signers receive invite simultaneously | Signers receive invite one at a time |
| Any order of completion | Must complete in specified order |
| Faster for independent signers | Required for approval chains |
| All can sign at once | Next signer waits for previous |

### Can signers decline to sign?

**Yes**, if you enable declining:

1. Signer clicks "Decline" button
2. Optional reason prompt appears
3. Document owner is notified immediately
4. Document status changes to "Declined"

You can disable declining in Settings if not desired.

### Can I customize the signing page?

**Yes.** Open **WPsigner → Appearance** ([Appearance guide](/customization/appearance/)):
- **Brand** — company logo, name, and primary color
- **Signing Page** — button color, size, corners, style, and light/dark theme
- **Client Portal** — portal look if you use the front-end dashboards

Full white-label renaming is in [Whitelabeling](/customization/whitelabeling/). Button labels (Finish, Decline) stay in Custom Texts.

### How do I send the same template to many people?

Open **Documents → Bulk Send**. Download the sample CSV, add name and email, choose a template, **name the send** (that name becomes a tag), and start. Guide: [Bulk Send](/core-features/bulk-send/). For a public link instead of a list, use [Campaigns](/core-features/campaigns/).

### How do I keep Vietnamese (or other accented) text on the signed PDF?

Install a **Signed PDF font**, not a language pack. Go to **WPsigner → Languages → Signed PDF fonts**, install **Accented Latin** for Vietnamese, then click **Use for signed PDFs**. That does not translate the admin screens. Guide: [Languages](/customization/languages/#signed-pdf-fonts).

### Can I pick signers from WordPress users?

**Yes (Pro 3.2.0+).** On Add Signers or Use Template, type at least two characters in the name or email field and choose the user. Check **Add me as signer #1** to fill the first row with your account. Guide: [Creating Documents](/core-features/creating-documents/#wordpress-users).

### Who is Signer #1 for signature fields?

The first person you add (the top row). The second person is Signer #2, and so on. Drag rows to change the order. **Add me as signer #1** only fills that first slot. Guide: [Signer order](/core-features/signer-workflows/#signer-order).

### Can I require a WordPress login before someone signs?

**Yes, per signer (Pro 3.2.0+).** Check **Require WordPress login with this email**. The email must already be a WordPress user. The signing link is not enough — they must be logged in with that same email. Leave it off for guests. It does not apply to campaigns or Bulk Send CSV rows. Guide: [Security & Compliance](/core-features/security-compliance/#wordpress-login-per-signer).

---

## Technical Questions

### What are the system requirements?

| Requirement | Minimum |
|-------------|---------|
| WordPress | 5.0+ |
| PHP | 7.4+ |
| Memory | 128MB (256MB recommended) |
| Extensions | OpenSSL, GD or Imagick, mbstring |
| SSL | Required for signing pages |

See [Requirements](/getting-started/requirements/) for details. For recommended hosts and shared hosting tips, see [Hosting Compatibility](/getting-started/hosting-compatibility/).

### Does WPsigner work on small / shared hosting sites?

**Yes.** WPsigner is tested on small WordPress sites and runs well for typical signing workloads when the [system requirements](/getting-started/requirements/) are met. See [Hosting Compatibility](/getting-started/hosting-compatibility/) for limits, checklists, and when to upgrade.

### Does WPsigner work with multisite?

**Yes**, WPsigner works with WordPress multisite:
- Network activate for all sites
- Per-site activation supported
- Separate settings per site

### Does WPsigner slow down my website?

**Minimal impact.** WPsigner:
- Only loads on WPsigner admin pages
- Signing pages are standalone
- No scripts on frontend pages
- Optimized database queries

### Can I use WPsigner on localhost?

**Yes**, for testing. However:
- Emails may not send (need SMTP)
- SSL recommended but optional locally
- TSA timestamps require internet access
- Some features need public URLs

### What happens if I deactivate the plugin?

| Action | Data Preserved |
|--------|----------------|
| Deactivate | ✅ Yes, all data kept |
| Reactivate | ✅ Returns to previous state |
| Delete plugin | ⚠️ Database tables remain (by design) |

Data is never automatically deleted for safety.

---

## Signing Experience

### How do signers sign?

Signers have multiple options:

| Method | Description |
|--------|-------------|
| **Draw** | Draw signature with mouse/finger/stylus |
| **Type** | Type name, select font style |
| **Upload** | Upload image of signature |

All methods are legally equivalent.

### Do signers need an account?

**No.** Signers:
- Click the unique link in their email
- Review the document
- Sign using any method
- Done!

No registration, no login, no account needed.

### Can signers access documents on mobile?

**Yes.** The signing experience is fully responsive:
- Works on smartphones
- Tablet-optimized
- Touch-friendly signature pad
- Pinch-to-zoom document viewing

### What if a signer loses their link?

Options:
1. **Check email** - Search for subject line
2. **Check spam** - May be filtered
3. **Request resend** - Contact document owner
4. **Owner resends** - From document actions menu

### Can signers download the signed document?

**Yes.** After completion:
- All signers receive email with signed document
- Download link in completion email
- Link remains active

---

## Documents & Storage

### Is there a document size limit?

| Limit Type | Default | Adjustable |
|------------|---------|------------|
| File size | Server limit | Yes, in php.ini |
| Page count | No limit | N/A |
| Field count | No limit | N/A |

Large documents may process slower.

### How long are documents stored?

**Until you delete them.** WPsigner doesn't auto-delete.

Recommendations:
- Keep completed documents per your retention policy
- Archive to external storage as needed
- Delete when no longer required

### Can I export/backup my documents?

**Yes**, multiple methods:

| Method | How |
|--------|-----|
| Download individual | From document view |
| Bulk download | Select multiple, download |
| Server backup | Backup `/wp-content/uploads/wpsigner/` |
| Database export | Standard WordPress backup includes data |

### Can I integrate with cloud storage?

Manual upload to:
- Google Drive
- Dropbox
- OneDrive
- Any cloud storage

Use [Webhooks](/api/webhooks/) for automation.

---

## Campaigns (Public Links)

### What's the difference between documents and campaigns?

| Documents | Campaigns |
|-----------|-----------|
| Send to specific people | Anyone with link can sign |
| Known recipients | Anonymous or known |
| One-time use links | Reusable link |
| Track individual signers | Track by campaign |

### Who can access campaign links?

Anyone with the link. Use campaigns for:
- Website forms
- QR codes
- Social media
- Mass distribution

Every new access creates a unique signing session.

### Can I limit campaign responses?

**Yes**, you can configure:
- Maximum submissions
- Expiration date
- Active/inactive status

---

## Integrations

### Can I integrate with my CRM?

**Yes**, through:
- [REST API](/api/) - Full programmatic access
- [Webhooks](/api/webhooks/) - Event notifications
- Zapier (via webhooks) - No-code automation

### Does WPsigner work with WooCommerce?

Manual integration via:
- Webhooks for order events
- API for document creation
- Custom development

### Can I trigger signatures from forms?

**Yes**, integrate with:
- Gravity Forms (via API/webhooks)
- WPForms (via API/webhooks)
- Contact Form 7 (via hooks)
- Any form plugin (via REST API)

---

## Pricing & Licensing

### How is WPsigner licensed?

WPsigner uses a **per-site license**:
- One license = one WordPress installation
- Development/staging sites typically free
- Volume discounts available

### Are there document limits?

License determines:
- Features available
- Support level
- Update access

No per-document fees or usage limits.

### What's included in support?

Support includes:
- Email assistance
- Bug fixes
- Compatibility updates
- Documentation access

---

## Getting Started

### How do I get started?

1. [Install the plugin](/getting-started/installation/)
2. Configure [settings](/customization/whitelabeling/)
3. Create your [first document](/getting-started/quick-start/)
4. Send for signature!

### Is there a demo?

Visit [wpsigner.com](https://wpsigner.com) for:
- Live demos
- Video tutorials
- Feature previews

### Where can I get help?

| Resource | For |
|----------|-----|
| [Documentation](https://docs.wpsigner.com) | Self-help guides |
| [Troubleshooting](/support/troubleshooting/) | Common issues |
| [Contact Support](https://wpsigner.com/contact) | Direct assistance |

---

## MainWP Addon

### Does WPSigner integrate with MainWP?

**Yes.** The official **[WPSigner for MainWP](/addons/mainwp/)** addon runs on your MainWP **Dashboard** (alongside WPSigner). You link contracts to MainWP Clients and Sites, then create, send, and remind from MainWP. WPSigner is **not** installed on child sites for this workflow.

### Can I enable OTP or KYC from MainWP?

When WPSigner Security is set to **Choose per document**, Create and Quick create can turn OTP/KYC on for that contract. MainWP does **not** change global WPSigner security options (addon **1.5.8+**). See [MainWP Security](/addons/mainwp-security/).

### Why are signing links hidden in MainWP?

Only WordPress admins (`manage_options`) or WPSigner users with full manage rights see raw signing URLs. Other team members can still manage contracts and view PDFs when allowed. Details: [MainWP Security](/addons/mainwp-security/).

### Where is MainWP troubleshooting?

See the dedicated guide: [MainWP Troubleshooting](/addons/mainwp-troubleshooting/).

---

## Uncanny Automator Addon

### Does WPsigner work with Uncanny Automator?

**Yes.** The official **[WPsigner for Uncanny Automator](/addons/uncanny-automator/)** addon registers a WPsigner integration inside Automator on the same WordPress site. There is no remote Automator app connection.

### Do I need Automator Pro?

No for triggers and actions. **Uncanny Automator Pro** is required only for WPsigner conditions and signer token loops.

### Are signing links stored in Automator logs?

If a recipe uses the Signing URL token, Automator may store it. Turn the token off under **Automator → WPsigner**. Details: [Settings](/addons/uncanny-automator-settings/) and [Security](/addons/uncanny-automator-security/).

### Where is Uncanny Automator troubleshooting?

See [Uncanny Automator Troubleshooting](/addons/uncanny-automator-troubleshooting/).

---

## More Questions?

Can't find your answer?
- Check [Troubleshooting](/support/troubleshooting/)
- Contact [support](https://wpsigner.com/contact/)
- Ask in the community

---

# Report a Security Issue

> How to responsibly report security vulnerabilities in the WPsigner WordPress plugin.

edition: both
Edition: Lite + Pro
AI note: This page applies to Lite and Pro. Call out Lite limits (PDF only, max 2 signers, email OTP, local timestamp) when they apply. Do not invent Pro-only features.
HTML: https://docs.wpsigner.com/support/security/
Markdown: https://docs.wpsigner.com/md/support/security.md

If you believe you have found a security issue in WPsigner, please report it through our managed disclosure program. Do not post it publicly until we have had a chance to fix it.

WPsigner works with [Patchstack](https://patchstack.com/for-plugins/) to review reports, coordinate patches, and protect customers.

## Report a vulnerability

<iframe title="Report a security vulnerability in WPsigner" width="100%" height="700" style="max-width:500px;border:0;border-radius:12px;" src="https://patchstack.com/iframe/vendor?uuids=b983bd49-bd9c-4e59-9a6c-365e9be98cdc&theme=light" loading="lazy"></iframe>

[Open the reporting form in a new tab →](https://patchstack.com/database/vdp/wpsigner)

## What to include

- WPsigner version, plus WordPress and PHP versions
- Steps to reproduce the issue
- What an attacker could do if the issue were exploited
- Screenshots or a proof-of-concept, if you have one

## What happens next

1. Patchstack validates the report.
2. If it is confirmed, we receive the details and prepare a fix.
3. We release an update and coordinate disclosure when appropriate.

## Scope

This program covers the **WPsigner plugin** only. General product support is on the [support overview](/support/) page or [wpsigner.com/contact](https://wpsigner.com/contact/).

For the same policy on our main site, see [wpsigner.com/security](https://wpsigner.com/security/).

---

# Troubleshooting

> Solutions to common issues with WPsigner installation, configuration, signing, and document processing.

edition: both
Edition: Lite + Pro
AI note: This page applies to Lite and Pro. Call out Lite limits (PDF only, max 2 signers, email OTP, local timestamp) when they apply. Do not invent Pro-only features.
HTML: https://docs.wpsigner.com/support/troubleshooting/
Markdown: https://docs.wpsigner.com/md/support/troubleshooting.md

This guide covers the most common issues you might encounter with WPsigner and provides step-by-step solutions.

## Quick Diagnostics

Before troubleshooting specific issues, check the System Status:

1. Go to **WPsigner → More → System Status**
2. Review all health checks
3. Address any items marked with ⚠️ or ❌

---

## Installation Issues

### "Plugin could not be activated"

**Symptoms:**
- Error message on activation
- White screen after activation
- Plugin immediately deactivates

**Causes & Solutions:**

| Cause | Solution |
|-------|----------|
| **PHP version too low** | Upgrade to PHP 7.4 or higher |
| **Missing OpenSSL** | Enable OpenSSL extension |
| **Memory limit** | Increase to 128MB minimum |
| **Plugin conflict** | Deactivate other plugins to identify conflict |

**How to check PHP version:**
```bash
php -v
```

**How to enable debug mode:**
Add to `wp-config.php`:
```php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
```
Then check `/wp-content/debug.log` for specific errors.

### "Upload failed - file size exceeds limit"

**Symptoms:**
- Cannot upload plugin zip file
- Error during upload process

**Solutions:**

1. **Increase PHP upload limits** in `php.ini`:
```ini
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
```

2. **Or use FTP upload method:**
   - Extract the zip file locally
   - Upload via FTP to `/wp-content/plugins/`
   - Activate in WordPress admin

### Fatal error on activation

**Full error message check:**
1. Enable debug mode (see above)
2. Try activating again
3. Check `/wp-content/debug.log`
4. Search for the specific error

**Common fatal errors:**

| Error | Solution |
|-------|----------|
| `Cannot redeclare function` | Plugin conflict - identify and deactivate |
| `Class not found` | Missing dependency - reinstall plugin |
| `Memory exhausted` | Increase `WP_MEMORY_LIMIT` |

---

## Form integrations (Fluent Forms / WPForms)

### OTP says verified, but submit fails

**Symptoms:**
- OTP modal shows **Identity verified**
- Form then shows “Please verify your identity…” (or similar)
- No signed document is created

**Solution:**
1. Update **WPsigner to 3.1.1+**
2. Hard-refresh the form page (Ctrl+F5 / Cmd+Shift+R)
3. Submit again and complete OTP once

This mainly affects **content signing** forms with many fields + OTP. See [Fluent Forms](/integrations/fluent-forms/) and [WPForms](/integrations/wpforms/).

### Cannot save a content-signing feed

**Symptoms:**
- Feed Name and Form are filled
- Save shows “Please fill in Feed Name and Form”
- You are not using a PDF template (inline Signing field)

**Solution:** Update to **3.1.1+**. Content-signing feeds do not require a template — only Feed Name and Form.

### Wrong signer name on the document

Map a real **Name** / **Names** field. Do not map a field labeled only **Username**.

### Field labels missing in feed mapping

In the PDF editor, **double-click** each field and set a **Field name**. Details: [Form fields](/core-features/form-fields/#field-name-mapping-name-and-placeholder).

---

## Email Issues

### Emails not sending

This is the most common issue. Emails may not send for several reasons.

**Step 1: Verify email configuration**
1. Go to **WPsigner → Settings → Email Settings**
2. Verify "From Name" and "From Email" are set
3. Ensure email address is valid

**Step 2: Send a test email**
1. Go to **WPsigner → More → Email Templates**
2. Click **Send Test**
3. Enter your email address
4. Check if received

**Step 3: Configure SMTP**

WordPress's default `wp_mail()` function often fails. Install an SMTP plugin:

| Plugin | Recommendation |
|--------|----------------|
| **WP Mail SMTP** | Most popular, easy setup |
| **FluentSMTP** | Free, full-featured |
| **Post SMTP** | Good logging |

**Step 4: Check SMTP logs**

Most SMTP plugins have logging. Check for:
- Connection errors
- Authentication failures
- Rejected recipients

### Emails going to spam

**Causes:**
- No SPF/DKIM records
- Using @gmail.com as sender
- Poor sender reputation
- Missing authentication

**Solutions:**

1. **Use your own domain** for "From Email" (not @gmail.com)

2. **Set up email authentication:**
   - Add SPF record to DNS
   - Configure DKIM signing
   - Set up DMARC policy

3. **Check content:**
   - Avoid spam trigger words
   - Don't use all caps
   - Include clear unsubscribe option (if applicable)

### Signer claims they didn't receive email

**Checklist:**
1. ✅ Verify email address is correct (check for typos)
2. ✅ Check spam/junk folder
3. ✅ Check "Promotions" tab (Gmail)
4. ✅ Ask if email was blocked by corporate filter
5. ✅ Use **Resend** option in document actions
6. ✅ Review SMTP logs for delivery status

---

## Document Issues

### Vietnamese or accented characters missing on the signed PDF

**Symptoms:**
- Names look fine on the signing page but the downloaded PDF shows boxes, `?`, or missing marks
- Certificate of Completion drops ă, ơ, ư, đ, or similar

**Solution:**

1. Go to **WPsigner → Languages**
2. Open **Signed PDF fonts**
3. Install **Accented Latin** (Vietnamese and other Latin languages with accents)
4. Click **Use for signed PDFs**
5. Send a **new** test document — already flattened PDFs are not rewritten

For Chinese, Japanese, Korean, Arabic, Hebrew, or Thai, install that pack instead. Guide: [Signed PDF fonts](/customization/languages/#signed-pdf-fonts).

### Require WordPress login will not stay checked

The signer email is not a WordPress user, or the document has an active public campaign. Create the user first, pause the campaign, or leave the option off. Guide: [WordPress login](/core-features/security-compliance/#wordpress-login-per-signer).

### PDF generation failed

**Symptoms:**
- Error when finalizing document
- Certificate of Completion not appending
- Blank or corrupted PDF output

**Required extensions:**

| Extension | Purpose | Check Command |
|-----------|---------|---------------|
| **GD** | Image processing | `php -m | grep gd` |
| **Imagick** | Advanced image/PDF | `php -m | grep imagick` |
| **mbstring** | String handling | `php -m | grep mbstring` |

**Solutions:**

1. **Enable GD extension:**
   ```bash
   # Ubuntu/Debian
   sudo apt-get install php-gd
   sudo service apache2 restart
   ```

2. **Check file permissions:**
   ```bash
   # The uploads directory must be writable
   chmod 755 wp-content/uploads
   chmod 755 wp-content/uploads/wpsigner
   ```

3. **Increase memory limit:**
   Add to `wp-config.php`:
   ```php
   define('WP_MEMORY_LIMIT', '256M');
   ```

### Document upload fails

**Common causes:**

| Issue | Solution |
|-------|----------|
| File too large | Increase `upload_max_filesize` |
| Wrong format | Use PDF, PNG, or JPG only |
| Timeout | Increase `max_execution_time` |
| Permissions | Check `/wp-content/uploads/` is writable |

**Check upload limits:**
1. Go to **WPsigner → More → System Status**
2. Review "Upload Size" value
3. Increase if needed in `php.ini`

### Document appears blank or corrupted

**Possible causes:**
- PDF was created with unsupported features
- PDF is password-protected
- File was corrupted during upload

**Solutions:**
1. Try re-uploading the document
2. Use a simpler PDF (avoid complex layers/fonts)
3. Convert to PDF/A format
4. Remove password protection before uploading

---

## Signing Issues

### Signing page not loading

**Symptoms:**
- White screen when signer clicks link
- 404 error on signing page
- Redirect loop

**Solutions:**

1. **Flush permalinks:**
   - Go to **Settings → Permalinks**
   - Click **Save Changes** (without changing anything)

2. **Check permalink structure:**
   - WPsigner requires "pretty" permalinks
   - Select any option except "Plain"

3. **Check for conflicts:**
   - Disable caching plugins temporarily
   - Try a default theme
   - Deactivate security plugins for testing

### Signature pad not working

**Symptoms:**
- Cannot draw on signature pad
- Signature not appearing
- Pad is unresponsive

**Causes & Solutions:**

| Cause | Solution |
|-------|----------|
| JavaScript error | Check browser console for errors |
| Cache | Clear browser cache, disable caching plugin |
| Plugin conflict | Test in incognito mode |
| Touch issues | Update browser, try different device |

**Browser compatibility:**
- Chrome 80+ ✅
- Firefox 75+ ✅
- Safari 13+ ✅
- Edge 80+ ✅
- Internet Explorer ❌ (not supported)

### "Access denied" or "Invalid link"

**Causes:**
- Link has expired
- Document was voided
- Link was already used (for single-use links)
- Wrong link/typo

**Solutions:**
1. Check document status (expired? voided?)
2. Use **Resend** to generate fresh email
3. Verify the complete URL was clicked

---

## Digital Signature Issues

### "Certificate not found" error

**Symptoms:**
- Error when signing document
- Digital signature not applying
- Adobe shows "Signature is invalid"

**Solutions:**

1. **Configure Digital ID:**
   - Go to **WPsigner → More → Digital ID**
   - Generate or upload a certificate
   - Verify it shows as "Active"

2. **Certificate expired:**
   - Check certificate validity dates
   - Generate new or upload renewed certificate

### Adobe shows "Unknown Signer"

**This is expected for self-signed certificates.**

For self-signed certificates, recipients must manually trust:
1. Click on the signature in Adobe
2. Click "Validate Signature"
3. Choose "Trust this certificate"

**For globally trusted signatures:**
Purchase a certificate from an AATL member (DigiCert, GlobalSign, etc.)

### Timestamp not appearing

**Causes:**
- TSA not enabled
- TSA server unreachable
- Firewall blocking requests

**Solutions:**

1. **Enable TSA:**
   - Go to **WPsigner → Settings → Legal & Privacy**
   - Check "Enable certified timestamp (TSA)"
   - Save settings

2. **Test TSA connection:**
   ```bash
   curl -I https://freetsa.org/tsr
   ```

3. **Try different TSA:**
   - FreeTSA.org
   - DigiCert timestamp server
   - Sectigo timestamp server

---

## Performance Issues

### Plugin is slow

**Optimization steps:**

1. **Enable caching** (but configure WPsigner exclusions)

2. **Optimize database:**
   - Delete old/completed documents you no longer need
   - Use a database optimization plugin

3. **Upgrade hosting:**
   - Move from shared to VPS
   - Ensure adequate PHP memory

4. **CDN for static assets:**
   - Won't help with signing pages
   - Does help general WordPress performance

### Signing page loads slowly

**Causes:**
- Large PDF files
- Slow server
- Multiple large images in document

**Solutions:**
1. Optimize PDF size before uploading
2. Use compression for images
3. Upgrade hosting resources
4. Move to geographically closer hosting for your signers

---

## API Issues

### API returns 401 Unauthorized

**Causes:**
- Invalid API key
- Invalid API secret
- Key revoked
- Missing headers

**Checklist:**
1. Verify API key is active (not revoked)
2. Check both key AND secret are correct
3. Ensure headers are set correctly:
   ```
   X-WPS-API-KEY: your_key_here
   X-WPS-API-SECRET: your_secret_here
   ```

### API returns 403 Forbidden

**Causes:**
- Key has read-only permissions for write endpoint
- User doesn't have required WordPress capabilities

**Solutions:**
1. Check key permissions (read vs read_write)
2. Create new key with appropriate permissions

### Rate limit exceeded

**Default limits:**
- 60 requests per minute per key

**Solutions:**
1. Implement request throttling in your code
2. Use bulk endpoints where available
3. Cache responses to reduce calls

---

## WordPress Conflicts

### Conflict with caching plugins

**Symptoms:**
- Signing page shows cached content
- Changes not appearing
- Session issues

**Solution - Add exclusions:**

| Caching Plugin | Exclusion Pattern |
|----------------|-------------------|
| WP Rocket | Add `/sign/*` to never cache URLs |
| W3 Total Cache | Add to page cache exceptions |
| LiteSpeed | Add to Do Not Cache URIs |
| WP Super Cache | Add to rejected pages |

### Conflict with security plugins

**Common conflicts:**
- Wordfence blocking signing requests
- iThemes Security blocking API
- Sucuri WAF filtering uploads

**Solutions:**
1. Whitelist WPsigner paths (`/sign/*`, `/wp-json/wpsigner/*`)
2. Add WPsigner to trusted plugins
3. Review security logs for blocks

### Theme compatibility issues

**Symptoms:**
- Signing page has theme elements
- Broken layout on signing page
- Missing styles

**Solutions:**
1. WPsigner signing pages should be standalone
2. If theme is interfering, check for forced templates
3. Report to support with theme name

---

## Database Issues

### Missing database tables

**Symptoms:**
- "Table doesn't exist" errors
- Plugin functions not working
- Data not saving

**Solution:**

1. Deactivate and reactivate plugin (triggers table creation)

2. If that fails, manually run table creation:
   - Access your database via phpMyAdmin
   - Check if `wp_wps_*` tables exist
   - If missing, try reinstalling plugin

### Data migration issues

**When upgrading:**
1. Always backup before upgrading
2. Check that database updates run successfully
3. Review changelog for migration notes

---

## Getting More Help

### Information to gather before contacting support

Collect this information for faster resolution:

| Information | How to Get It |
|-------------|---------------|
| WordPress version | Dashboard → At a Glance |
| PHP version | System Status page |
| WPsigner version | Plugins page |
| Error messages | Debug log, browser console |
| Steps to reproduce | Write down exact steps |
| Screenshots | Capture error screens |

### Enable debug mode

For detailed error information:

```php
// Add to wp-config.php (before "That's all, stop editing!")
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
```

Errors are logged to `/wp-content/debug.log`

### Contact support

If you've tried the troubleshooting steps:

1. Visit [wpsigner.com/contact](https://wpsigner.com/contact/)
2. Include all gathered information
3. Attach debug logs and screenshots
4. Describe expected vs actual behavior

---

## Next Steps

- [System Requirements](/getting-started/requirements/) - Verify compatibility
- [Installation](/getting-started/installation/) - Reinstallation steps
- [FAQ](/support/faq/) - Common questions
- [MainWP Troubleshooting](/addons/mainwp-troubleshooting/) - Dashboard / Clients / Sites contract issues
- [Uncanny Automator Troubleshooting](/addons/uncanny-automator-troubleshooting/) - Recipes, tokens, prefill, and messaging

---

# Use Documentation with AI

> Copy WPsigner documentation into ChatGPT, Claude, Cursor, or any AI assistant using per-page Markdown, topic packs, and the full corpus.

edition: both
Edition: Lite + Pro
AI note: This page applies to Lite and Pro. Call out Lite limits (PDF only, max 2 signers, email OTP, local timestamp) when they apply. Do not invent Pro-only features.
HTML: https://docs.wpsigner.com/support/use-with-ai/
Markdown: https://docs.wpsigner.com/md/support/use-with-ai.md

Every WPsigner docs page has a matching **Markdown** twin built for AI assistants. Use it when Ask AI is unavailable, when you work in Cursor/ChatGPT/Claude, or when you want a portable offline reference.

## Fastest path

1. Open any documentation page.
2. Click **Copy for AI** under the title.
3. Paste into your assistant with a prompt like:

```text
You are helping me configure and use WPsigner, a self-hosted electronic-signature plugin for WordPress.
Use ONLY the documentation I paste as your source of truth.
If something is not covered, say so clearly.
Prefer exact admin menu paths, shortcodes, endpoints, and settings names from the docs.
```

You can also click **View Markdown** to open the `.md` file in the browser and copy it manually.

---

## What we publish for AI

| Resource | URL | Best for |
|----------|-----|----------|
| **Per-page Markdown** | `/md/{slug}.md` | One feature or integration |
| **Lite pack** | [`/md/packs/lite.md`](/md/packs/lite.md) | Lite-safe pages only (`edition: both` + Lite hubs) |
| **Topic packs** | [`/md/README.md`](/md/README.md) (packs listed there) | Setup, security, API, integrations, addons |
| **Complete pack** | [`/md/packs/complete.md`](/md/packs/complete.md) | Full docs in one file |
| **Markdown index** | [`/md/README.md`](/md/README.md) | Catalog of every page + pack |
| **LLM sitemap** | [`/llms.txt`](/llms.txt) | Crawlers and agent discovery |
| **Full corpus text** | [`/llms-full.txt`](/llms-full.txt) | Large-context models |

HTML and Markdown are generated from the **same** source files. If a page exists in the docs, it has a Markdown twin. Every `/md/{slug}.md` file starts with `edition: lite`, `edition: pro`, or `edition: both` so assistants do not invent Pro features for Lite users.

---

## Recommended packs

| Pack | Use when |
|------|----------|
| [Lite](/md/packs/lite.md) | WordPress.org / Lite questions — excludes Pro-only pages |
| [Setup](/md/packs/setup.md) | Installing, hosting, first document, system status |
| [Security](/md/packs/security.md) | Roles, OTP/KYC, Digital ID, TSA, audit, storage |
| [Core features](/md/packs/core-features.md) | Documents, campaigns, portal, workflows, fields |
| [API](/md/packs/api.md) | REST endpoints, auth, webhooks, examples |
| [Integrations](/md/packs/integrations.md) | Forms, Fluent Community, CRM, storage, automation |
| [Addons](/md/packs/addons.md) | Document Builder, Smart Forms, MainWP, Uncanny Automator, importers |
| [Customization](/md/packs/customization.md) | Branding, emails, languages |
| [Support](/md/packs/support.md) | Troubleshooting, FAQ, security disclosure |
| [Complete](/md/packs/complete.md) | Everything (large — use only if the model allows) |

> **tip**
Start with the smallest pack that covers your question. Large packs can overflow model context windows and reduce answer quality.

---

## Example URLs

| HTML page | Markdown twin |
|-----------|---------------|
| [/getting-started/installation/](/getting-started/installation/) | [/md/getting-started/installation.md](/md/getting-started/installation.md) |
| [/core-features/team-roles/](/core-features/team-roles/) | [/md/core-features/team-roles.md](/md/core-features/team-roles.md) |
| [/integrations/fluent-community/](/integrations/fluent-community/) | [/md/integrations/fluent-community.md](/md/integrations/fluent-community.md) |
| [/api/documents/](/api/documents/) | [/md/api/documents.md](/md/api/documents.md) |
| [/addons/document-builder/](/addons/document-builder/) | [/md/addons/document-builder.md](/md/addons/document-builder.md) |
| [/addons/uncanny-automator/](/addons/uncanny-automator/) | [/md/addons/uncanny-automator.md](/md/addons/uncanny-automator.md) |
| [/glossary/](/glossary/) | [/md/glossary.md](/md/glossary.md) |
| [/getting-started/lite-vs-pro/](/getting-started/lite-vs-pro/) | [/md/getting-started/lite-vs-pro.md](/md/getting-started/lite-vs-pro.md) |

Machine-readable map: [`/md/manifest.json`](/md/manifest.json)

---

## Prompt recipes

### Configure a feature

```text
I am setting up WPsigner on my WordPress site.
Using only the Markdown below, give me a numbered checklist with exact admin paths and settings.
Ask me for any missing site-specific details (domain, SMTP, plugins already installed).

```

### Debug an error

```text
WPsigner shows this error: 
Using only the documentation below, list the most likely causes and the exact checks to run.
Do not invent menu names or endpoints that are not in the docs.

```

### Build an integration

```text
I need to connect WPsigner to .
Using only the documentation below, outline prerequisites, configuration steps, webhooks/events, and test plan.

```

---

## Completeness guarantees

On every production build we verify:

1. Every docs source file is exported to `/md/` and the Ask AI corpus.
2. The **complete** pack includes every page (no omissions).
3. Named packs only reference slugs that exist.
4. `llms.txt` and `llms-full.txt` are regenerated from the same source set.

If a Markdown twin is missing for a page, treat it as a docs build bug and report it.

---

## Related resources

- [Troubleshooting](/support/troubleshooting/)
- [FAQ](/support/faq/)
- [Glossary](/glossary/)
- [Lite vs Pro](/getting-started/lite-vs-pro/)
- [REST API Overview](/api/)
- Docs LLM index: [docs.wpsigner.com/llms.txt](https://docs.wpsigner.com/llms.txt)
- Product LLM summary + pricing: [wpsigner.com/llms.txt](https://wpsigner.com/llms.txt) · [Pricing](https://wpsigner.com/pricing/?utm_source=docs&utm_medium=ai&utm_campaign=use-with-ai)
