Age verification for WooCommerce & Pay4All Shop

Protect the sale of products subject to age restrictions.

With Pay4All Age, your customers send their ID and/or a short 5-second selfie video directly from their smartphone via a QR code. Files are encrypted with AES-256-GCM before storage and are only visible from your WordPress order screen.

Ideal for alcohol, tobacco, CBD, knives, wine and spirits, e-cigarettes, or any other product subject to a legal age requirement.

For Pay4All Shop FREE
For WooCommerce PRO (30-day trial)

Plugin preview

Preview of the age-verification form shown to customers during checkout.

Screenshot 1 of the Pay4All Age plugin
  • 0photos shared with third parties
  • 1click to install
  • 2compatible with WooCommerce and Pay4All Shop
  • 4languages included
    FR / DE / IT / EN

What Pay4All Age does for you

A clean, privacy-friendly age-verification layer connected directly to WooCommerce and/or Pay4All Shop.

Per product, not globally

A checkbox on each product page determines whether verification applies. Sell wine AND apple juice in the same store : only the relevant sale triggers the document request.

View directly from the order

For every WooCommerce or Pay4All Shop order, a button lets you decrypt and open the photos in a new tab. They are never accessible without being logged in as an administrator.

Capture via QR code

The customer scans a QR code from their computer and continues on their smartphone. The camera is used directly, with no app to install. Photos appear in real time in the checkout open on the computer.

Customizable text in 4 languages

Title, description, slot labels, error message, and QR invitation — everything is translated into FR / DE / IT / EN and can be overridden by language from the admin area. Match the tone precisely to your brand.

ID document or selfie video

You choose whether you want the ID document (front + back), a short 5-second selfie video (with embedded anti-fraud verification code), or both. Configurable in one click from the plugin settings.

Anti-cheat challenge code

For every order, a random 4-digit code is generated by your server and automatically stamped into a corner of every captured photo and video. The code is never shown to the customer : it appears only in the final files, and you find it as a reference on the order screen to verify at a glance that the capture was really taken in real time and is not an old file being reused.

Camera required, no file uploads

Photos and video can only be sent through the smartphone (or tablet) camera. On a computer without a camera or when resending from a PC, the upload buttons disappear : the customer has to scan the QR code and take the documents with their phone. Impossible to re-upload an old file stored on disk.

Checkout Blocks + Elementor

Tested with the classic WooCommerce checkout, Checkout Blocks (React), and the checkout widgets from Elementor Pro and Divi. A DOM observer ensures the panel appears even when the theme dynamically rewrites the page.

How it works in 3 steps

No third-party account and no data leaving your server.

  1. Enable “Age verification” on your products

    A checkbox in the Product data panel of WooCommerce or Pay4All Shop. A shield badge in the product-list column lets you identify affected products at a glance.

  2. The customer scans a QR code at checkout

    A panel appears in the checkout. On mobile, the customer goes directly to camera capture ; on a computer, they scan a QR code with their smartphone. The “Next / Place order” button remains disabled until the required documents have been submitted.

  3. You open the photos from the order

    On the order editing screen, an “Age verification” block displays the received slots with one button per photo. One click decrypts the image and opens it in a new tab. Automatic deletion can be configured for N days after the order is deleted.

Blurry, badly framed or suspicious photo ?
Tick the photos in question in the order lightbox and click “Ask the customer to resend the photos”. The customer receives an e-mail with a secure link (30 days) to retake only the requested photos from their smartphone. You are notified once and only once when everything has been resent.

Privacy protection

No third-party service. No data sharing. Photos never leave your server.

Encryption

Each photo is encrypted with AES-256-GCM using a per-order key derived with HMAC-SHA256. The master key is stored in an age.key file outside web-accessible directories (permissions 0600).

Temporary session

A 12-character hexadecimal token (48 bits of entropy) — TTL 20 minutes. The QR code contains a clean URL /age-kyc/<token>. No trace remains after the order is finalized.

Automatic deletion

You set the number of days (0 = never) for which photos are retained after the order is permanently deleted. A daily cron job removes what needs to be deleted — GDPR-friendly.

Pricing for WooCommerce

Pricing depends on the plugin used for your online store:
FREE avec Pay4All Shop.
SUBSCRIPTION with WooCommerce.

LAUNCH OFFERLifetime promotion

Subscribe now and benefit from the offer.
The price remains guaranteed for life.
CHF 7.–/month au lieu de 9.-
CHF 70.–/year au lieu de 90.-
--
days
--
hours
--
min
--
sec

Monthly WooCommerce Lifetime promotion

CHF 9.–CHF 7.– per month / domain

  • Pay4All Age Verification
  • Pay4All TWINT
  • Pay4All Stripe included
  • Support in FR / DE / IT / EN
  • Cancel anytime
Choose monthly

One license per domain. Pay4All Shop is free in its basic version. Pay4All Pro unlocks all advanced Pay4All Shop features, including age verification.
A Pay4All Pro subscription is required for WooCommerce.

Frequently asked questions

Do the photos leave my WordPress site ?

No. They are stored on your WordPress website, encrypted before being written, and can only be decrypted by you from the admin screen. No third-party service is called for recognition or analysis.

Does Pay4All Age verify the authenticity of documents ?

No — this is assisted capture, not automatic recognition. The plugin collects the photos and makes them available to you for human visual inspection.

What happens if the customer refuses ?

The “Place order” button remains disabled and a blocking error appears. No order is finalized without photos. You can customize the error message from the admin area.

Is it compatible with all WooCommerce versions ?

Yes. The plugin declares HPOS and Checkout Blocks compatibility when loading and has been tested with both WooCommerce storage models.

How long are the photos retained ?

For as long as the order exists. After the order is permanently deleted, a configurable retention period triggers automatic deletion.

What happens if I lose the encryption key ?

Existing photos become unreadable. A Download backup key button in the plugin settings lets you save the master key outside the server. This should be done during the initial installation.

Why is Pay4All Age free with Pay4All Shop and paid with WooCommerce ?

Pay4All Shop is our own order-form plugin. To encourage adoption, we provide age verification to all its users with no separate subscription and no domain limit.

On WooCommerce, Pay4All Age remains a premium service with dedicated support and maintenance — CHF 7.–/month or CHF 70.–/year per domain after a one-month free trial. A single Pay4All license also covers Pay4All TWINT and Pay4All Stripe on the same domain.