Skip to content

Validation Rules

What values are valid for each field type.


Text Fields

Location Name

  • Required: Yes
  • Min length: 1 character
  • Max length: 100 characters
  • Allowed: Letters, numbers, spaces, basic punctuation

Item Name

  • Required: Yes
  • Min length: 1 character
  • Max length: 200 characters
  • Allowed: Any characters

Description

  • Required: No
  • Max length: 1000 characters
  • Allowed: Any characters, basic HTML in some contexts

Coupon Code

  • Required: Yes
  • Min length: 3 characters
  • Max length: 20 characters
  • Allowed: Letters, numbers, no spaces
  • Case: Converted to uppercase

Number Fields

Price / Currency

  • Min: 0
  • Max: 99999.99
  • Decimals: 2
  • Format: Stored in cents internally

Prep Time (minutes)

  • Min: 1
  • Max: 180
  • Default: 15
  • Unit: Minutes

Delay Time (minutes)

  • Min: 0
  • Max: 120
  • Default: 0
  • Unit: Minutes

Time Slot Duration

  • Allowed values: 5, 10, 15, 20, 30, 45, 60
  • Default: 30
  • Unit: Minutes

Orders Per Time Slot

  • Min: 1
  • Max: 999
  • Default: 10

Items Per Time Slot

  • Min: 1
  • Max: 999
  • Default: 50

Days in Advance (Scheduling)

  • Min: 0
  • Max: 365
  • Default: 30
  • Unit: Days

Idle Timeout

  • Min: 30
  • Max: 600
  • Default: 120
  • Unit: Seconds

Delivery Radius

  • Min: 0.5
  • Max: 50
  • Default: 5
  • Unit: Kilometers

Minimum Order Amount

  • Min: 0
  • Max: 999.99
  • Default: 0

Tip Percentages

  • Min: 1
  • Max: 100
  • Default: [10, 15, 20]
  • Array: 1-5 values

Loyalty Points Per Currency

  • Min: 0.1
  • Max: 100
  • Default: 1

Point Value

  • Min: 0.001
  • Max: 1
  • Default: 0.01

KDS Timer (seconds)

  • Min: 60
  • Max: 3600
  • Default: Caution: 300, Late: 600

Volume

  • Min: 0
  • Max: 100
  • Default: 50

Contact Fields

Email

  • Required: Depends on setting
  • Format: valid@email.com
  • Validation: RFC 5322 compliant
  • Max length: 254 characters

Phone

  • Required: Depends on setting
  • Format: International format preferred (+XX XXX XXX XXX)
  • Validation: Must be valid phone number
  • Min digits: 7
  • Max digits: 15

URL


Address Fields

Address Line 1

  • Required: Yes
  • Max length: 200 characters

City

  • Required: Yes
  • Max length: 100 characters

Postal Code

  • Required: Yes
  • Format: Varies by country
    • Belgium: 4 digits (1000-9999)
    • Netherlands: 4 digits + 2 letters (1234 AB)
    • France: 5 digits
    • Germany: 5 digits
    • US: 5 digits or 5+4 (12345 or 12345-6789)

Country

  • Required: Yes
  • Format: ISO 3166-1 alpha-2 code (be, nl, fr, de, us, etc.)

Date & Time Fields

Date

  • Format: YYYY-MM-DD
  • Example: 2024-12-25

Time

  • Format: HH:MM (24-hour)
  • Example: 14:30
  • Range: 00:00 to 23:59

Business Hours Time Range

  • Format:
  • Validation: End must be after start (or next day for overnight)

Restricted Date

  • Format: YYYY-MM-DD
  • Validation: Cannot be in the past (for new entries)

Select Fields

Country Codes

be, fr, us, de, nl, pt, es, ie, it

Language Codes

en, nl, fr, de, es, pt, it

Currency Codes

EUR, USD, GBP

Timezone

Europe/Brussels, Europe/Amsterdam, Europe/Paris, 
Europe/Berlin, Europe/London, America/New_York, etc.

Full IANA timezone database supported.


Array Fields

Business Hours

json
{
  "Monday": {
    "is_available": true,
    "times": [
      { "start": "09:00", "end": "17:00" }
    ]
  }
}
  • Days: Sunday through Saturday
  • Times: Array of time ranges (max 3 per day)

Postal Codes (Delivery Zone)

json
["1000", "1010", "1020", "1030"]
  • Format: Strings (to preserve leading zeros)
  • Max: 500 postal codes

Tip Options

json
[10, 15, 20]
  • Min items: 1
  • Max items: 5
  • Values: 1-100

Allergens

json
["Gluten", "Milk", "Eggs"]
  • Values: Must be from predefined list

Dietary Preferences

json
["Vegan", "Gluten-free"]
  • Values: Must be from predefined list

Image Fields

Product Image

  • Formats: JPG, JPEG, PNG, WebP
  • Max size: 5 MB
  • Recommended: 800x800 pixels, square
  • Min dimensions: 200x200 pixels
  • Formats: JPG, JPEG, PNG, SVG
  • Max size: 2 MB
  • Recommended: 400x400 pixels or vector
  • Formats: JPG, JPEG, PNG, WebP
  • Max size: 10 MB
  • Recommended: 1920x600 pixels

Color Fields

Color Values

  • Format: Hex code with #
  • Example: #FF5733
  • Validation: Must be valid 6-digit hex

Special Validations

Modifier Group

  • Min selections: 0 to max_selections
  • Max selections: min_selections to 99
  • Rule: min_selections <= max_selections

Time Specific Rule

  • Start time: Must be before end time
  • Days: At least one day selected
  • Order limit: Must be > 0

Delivery Fee (Free Over Amount)

  • Minimum amount: Must be > 0 when this type selected

Coupon Usage

  • Total limit: 0 (unlimited) or > 0
  • Per customer limit: 0 (unlimited) or > 0
  • Rule: per_customer <= total (if both set)

Error Messages

ValidationError Message
Required field empty"This field is required"
Below minimum"Value must be at least {min}"
Above maximum"Value must be at most {max}"
Invalid email"Please enter a valid email address"
Invalid phone"Please enter a valid phone number"
Invalid URL"Please enter a valid URL"
Invalid postal code"Please enter a valid postal code"
File too large"File size must be less than {max} MB"
Invalid file type"File type not supported. Use {types}"
Invalid time range"End time must be after start time"
Duplicate value"This value already exists"