Data validation
Validation enforces a specific format on a text tag so that a recipient cannot submit the document unless their input matches the expected pattern. Use validation to reduce errors and avoid collecting improperly formatted data — for example, ensuring an email address looks like user@example.com before the agreement is completed.
Validation applies only to text tags. It runs in the recipient's browser at the moment they attempt to advance or complete the document.
Built-in validation types
The following validation types are available in the Validation dropdown when you select a text tag.
Contact and identity
| Type | Format enforced | Example value |
|---|---|---|
EMAIL | Standard email address | jane@example.com |
EMAIL_RFC5322 | RFC 5322 compliant email (broadest standard) | "Jane Doe" <jane@example.com> |
EMAIL_HTML5 | HTML5 input[type=email] pattern (strictest) | jane@example.com |
EMAIL_STRICT | Email with restricted special characters | jane.doe+tag@example.com |
PHONE | Phone number (digits, spaces, dashes, parentheses) | (555) 867-5309 |
SSN | US Social Security Number — 9 digits, formatted or unformatted | 123-45-6789 |
ZIP | US ZIP code — 5 digits or ZIP+4 | 90210 or 90210-1234 |
Date formats
| Type | Format enforced | Example value |
|---|---|---|
DATE | Any recognizable date string | March 3, 2026 |
DATE_MMDDYYYY | MM/DD/YYYY | 03/03/2026 |
DATE_DDMMYYYY | DD/MM/YYYY | 03/03/2026 |
DATE_ISO | ISO 8601 (YYYY-MM-DD) | 2026-03-03 |
Numeric formats
| Type | Format enforced | Example value |
|---|---|---|
NUMBER | Any numeric value (integer or decimal) | 42 or 3.14 |
INTEGER | Whole numbers only, no decimal point | 100 |
DECIMAL | Number with a decimal component | 9.99 |
CURRENCY | Monetary amount with up to two decimal places | 1,250.00 |
PERCENTAGE | Numeric value representing a percentage | 75 or 75.5 |
POSITIVE | Any number greater than zero | 0.01 |
Custom pattern
| Type | Format enforced | Example value |
|---|---|---|
REGEX | Pattern you define as a regular expression | (depends on your pattern) |
How to apply validation
- Select a text tag on the document canvas. The Tag properties panel opens on the right.
- Scroll to the Validation section and open the Validation dropdown.
- Select the validation type that matches the format you want to enforce.
- If you select REGEX, two additional fields appear:
- Validation pattern — enter your regular expression (without surrounding slashes).
- Error message — enter the message recipients see when their input does not match the pattern.
- Send or save the document. Recipients see the error message inline if they enter a value that fails validation.
Custom regex validation
Select REGEX when none of the built-in types match your requirements. You provide the pattern and control the error message recipients see.
Writing the pattern
Enter a standard regular expression without delimiters. The engine matches against the recipient's full input, so anchor your pattern with ^ and $ if you want an exact match.
Example: To require a 6-character alphanumeric code:
- Pattern:
^[A-Za-z0-9]{6}$ - Error message:
Enter a 6-character code using letters and numbers.
Common patterns with recommended error messages
| Use case | Pattern | Recommended error message |
|---|---|---|
| 6-digit numeric PIN | ^\d{6}$ | Enter a 6-digit PIN. |
| US license plate (common format) | ^[A-Z]{1,3}[0-9]{1,4}[A-Z]{0,3}$ | Enter a valid license plate number. |
| Alphanumeric order number | ^[A-Z]{2}-\d{6}$ | Enter your order number in the format AB-123456. |
| URL | ^https?:\/\/.+\..+ | Enter a valid URL starting with http:// or https://. |
| Canadian postal code | ^[A-Za-z]\d[A-Za-z][ -]?\d[A-Za-z]\d$ | Enter a valid Canadian postal code (e.g., K1A 0B1). |
| Four-digit year | `^(19 | 20)\d2$` |
Testing your pattern
Before sending the document:
- Use a regex testing tool such as regex101.com (select ECMAScript flavor, which matches the browser engine).
- Paste your pattern and test it against both valid and invalid sample values.
- Confirm the pattern rejects values you do not want to accept, not just ones you do.
- Keep error messages specific. Tell recipients exactly what format to use, not just that the value is invalid.
Validation checks that input matches the expected format — it does not verify the data is real or accurate.
For example, SSN validation confirms that 9 digits were entered in the correct pattern. It does not verify that the number belongs to a real person or matches any external record. The same applies to all built-in types: EMAIL confirms the address looks syntactically valid, but does not send a test message to confirm deliverability.
If data accuracy matters for your use case, plan a separate verification step outside of Propper Sign.