Skip to main content

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

TypeFormat enforcedExample value
EMAILStandard email addressjane@example.com
EMAIL_RFC5322RFC 5322 compliant email (broadest standard)"Jane Doe" <jane@example.com>
EMAIL_HTML5HTML5 input[type=email] pattern (strictest)jane@example.com
EMAIL_STRICTEmail with restricted special charactersjane.doe+tag@example.com
PHONEPhone number (digits, spaces, dashes, parentheses)(555) 867-5309
SSNUS Social Security Number — 9 digits, formatted or unformatted123-45-6789
ZIPUS ZIP code — 5 digits or ZIP+490210 or 90210-1234

Date formats

TypeFormat enforcedExample value
DATEAny recognizable date stringMarch 3, 2026
DATE_MMDDYYYYMM/DD/YYYY03/03/2026
DATE_DDMMYYYYDD/MM/YYYY03/03/2026
DATE_ISOISO 8601 (YYYY-MM-DD)2026-03-03

Numeric formats

TypeFormat enforcedExample value
NUMBERAny numeric value (integer or decimal)42 or 3.14
INTEGERWhole numbers only, no decimal point100
DECIMALNumber with a decimal component9.99
CURRENCYMonetary amount with up to two decimal places1,250.00
PERCENTAGENumeric value representing a percentage75 or 75.5
POSITIVEAny number greater than zero0.01

Custom pattern

TypeFormat enforcedExample value
REGEXPattern you define as a regular expression(depends on your pattern)

How to apply validation

  1. Select a text tag on the document canvas. The Tag properties panel opens on the right.
  2. Scroll to the Validation section and open the Validation dropdown.
  3. Select the validation type that matches the format you want to enforce.
  4. 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.
  5. 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.
Use casePatternRecommended 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`^(1920)\d2$`

Testing your pattern

Before sending the document:

  1. Use a regex testing tool such as regex101.com (select ECMAScript flavor, which matches the browser engine).
  2. Paste your pattern and test it against both valid and invalid sample values.
  3. Confirm the pattern rejects values you do not want to accept, not just ones you do.
  4. Keep error messages specific. Tell recipients exactly what format to use, not just that the value is invalid.

Format validation only

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.