Skip to main content
Age verification captures proof of age for an age-restricted sale. It is exposed as a customer-scoped Age verification panel on the customer record (the standalone page was removed): the panel holds an attestation history and the record-proof flow for that customer.

Capturing proof

Proof can be captured two ways:
  • Date of birth — the age policy ages the date to a decision.
  • Manual attestation — the cashier vouches for the check.
A date of birth with no date collapses to “needs check”. The decision maths run in the shared age-verification domain.

Privacy by design

The feature is deliberately local and privacy-preserving:
  • There is no backend route, permission or table for age verification — the use-cases run in-process.
  • The sensitive input (the date of birth) is discarded: only an identity-free attestation — operator, transaction reference, timestamp and outcome — is appended to a durable, append-only compliance log. There is no customer-id column; the customer scope rides on the transaction reference.

Enforcement at checkout

Blocking a restricted basket until proof exists is enforced separately at checkout — this panel is where the proof is recorded.
  • Customers — where the age-verification panel lives.
  • Take payment — where the restricted-sale gate is enforced.