Age Verification and Identity Verification for WordPress and WooCommerce
Token of Trust is a powerful
Age Verification and
Identity Verification (KYC) plugin for WordPress and WooCommerce. Unlike simple age disclaimers, our solution provides robust AI-based checks to verify user identity, prevent underage purchases, and maintain compliance with regulations for alcohol, tobacco, vape, cannabis, gaming, firearms, and other age-restricted products.
[youtube
https://youtu.be/u9ga4OpzLoo]
SELL AGE-RESTRICTED GOODS • VERIFY IDENTITIES • PREVENT FRAUD
Your customers will check out faster with Token of Trust's seamless age verification and identity verification flows.
Integrate directly within the WooCommerce checkout process or WordPress account registration. Token of Trust is used for:
- Age Verification Compliance – Enforce age restrictions for tobacco, vape, cannabis, alcohol, gaming, firearms, and more.
- Identity Verification or KYC/AML – Meet regulations across industries such as financial services, web3 or crypto, gambling, or healthcare.
- Safety & Security (Fraud Prevention) – Build trust on social media platforms, online communities, marketplaces, and dating sites.
AGE VERIFICATION SOFTWARE FEATURES
- Turnkey Age Gate Setup – Get your age verification running in minutes with pre-configured settings.
- Expedited Age Verification – Quickly verify age in ecommerce using checkout data often skipping the need for document uploads.
- Flexible Age Requirements – Set different minimum ages (18+, 19+, 21+, etc.) for different products or regions.
- Age Gate Options – Choose between simple disclaimers or robust ID scanning.
- Block Underage Visitors – Disallow access to age-restricted content or purchases.
- ID Document Verification – Analyze over 5000 ID types from 240+ countries.
- Selfie-Match (Optional) – Add extra layers of identity confirmation.
- Loyal Customers – Optionally skip repeat age verifications for returning users.
- Product-Specific Rules – Trigger age checks based on product categories, shipping methods, price, or buyer location.
HOW OUR AGE VERIFICATION FOR WEBSITES WORKS
- You set minimum-age rules (e.g., 21+ for certain products).
- The Token of Trust modal securely gathers relevant data or images.
- Token of Trust's AI system checks user details, and forwards for human intervention if necessary.
- Underage or non-compliant users can be blocked, with an explanation and chance to retry.
- Verification results display in WordPress/WooCommerce and within the Token of Trust dashboard.
IDENTITY VERIFICATION FEATURES
- KYC Compliant – Capture and verify government-issued IDs like passports, driver's licenses, and national IDs.
- Automated Checks – AI-based checks confirm identity details in seconds, reducing manual intervention.
- AML Support – Built-in watchlist checks help maintain Anti-Money Laundering compliance.
- Photo & Video Options – Offer advanced document scanning with optional user selfies or live video.
- Global Coverage – Validate IDs from over 240+ countries to onboard global customers.
- Fraud Engine – Identify suspicious signups using advanced risk analysis.
HOW IDENTITY VERIFICATION WORKS
- Define KYC criteria (e.g., ID scan required, name must match billing).
- Users upload ID documents, optionally supplemented by a selfie or live photo.
- Token of Trust's AI system checks authenticity of documents, cross-references user details, and runs watchlist checks.
- Verification outcome displayed in WordPress/WooCommerce or the Token of Trust portal.
- Flags or alerts can be generated automatically, requiring further manual review if necessary.
WHY CHOOSE TOKEN OF TRUST AMONG AGE VERIFICATION PROVIDERS?
- True Verification – Unlike simple age disclaimers or checkbox solutions, Token of Trust actually verifies age through government IDs and database checks.
- Regulatory Compliance – Stay compliant with age restriction laws for alcohol, tobacco, vape, cannabis, and other regulated industries.
- Reduce Liability – Protect your business from penalties associated with selling to underage customers.
- Seamless Experience – Minimize cart abandonment with a smooth verification process that doesn't disrupt the checkout flow.
- Flexible Configuration – Set different age thresholds for different products, regions, or customer types.
TRUSTED AGE VERIFICATION PROVIDER
As one of the leading age verification companies, Token of Trust provides robust age verification software for websites across industries. Our age verification solution is trusted by over 1,000 businesses worldwide, processing more than 1 million verifications for age-restricted products and content.
DESIGNED FOR PRIVACY
Token of Trust employs industry-leading encryption and strict policy controls to protect your organization's and customers' data. Our platform complies with:
- GDPR (UK & EU)
- CCPA
- PIPEDA
- LGPD
- And more...
NEED HELP?
Have questions about setting up age verification or identity verification with Token of Trust?
Contact us.
You need an active Token of Trust account to use this plugin. Download and activate it in WordPress/WooCommerce, then click "Get Started Now" in the plugin to create or connect your account.
USING TOKEN OF TRUST WITH MEMBER MANAGEMENT PLUGINS
Token of Trust works seamlessly alongside member management systems that set up user profiles, membership tiers, and custom pages in WordPress. Common plugins include:
- BuddyPress
- Ultimate Member
OTHER INTEGRATIONS
Discover
Token of Trust's WordPress Integration Options for details on advanced scenarios and additional plugin compatibility.
LANGUAGES
Token of Trust has been translated into:
- English (US)
- Spanish
- French
- Additional languages available upon request
From Your WordPress Dashboard
- Visit "Plugins" > "Add New"
- Search for "Token of Trust"
- Activate the Token of Trust plugin
- Navigate to the Token of Trust settings page in your WordPress admin menu
- Provide your Production Domain and API keys
- Configure your age or identity verification rules
From
WordPress.org or GitHub
- Upload the Token of Trust plugin folder to:
/wp-content/plugins/
- Activate the Token of Trust plugin
- Navigate to the Token of Trust settings page in the WordPress admin
- Enter your Production Domain and API keys
- Configure verification requirements based on your needs
After setup, the plugin offers a setup wizard to get you started quickly with age verification or identity verification. For additional documentation, visit our
WordPress Plugin Docs.
Widget Shortcodes
Use these shortcodes to embed age verification and identity verification in pages or posts. They default to the currently logged-in user:
Account Connector
Allows a logged-in user to connect their WordPress profile to Token of Trust to begin age verification or identity verification.
For security, only display this widget on protected pages for the intended user.
[tot-wp-embed tot-widget="accountConnector"][/tot-wp-embed]
To show the account connector using to the person API.
[tot-wp-embed tot-widget="accountConnector" verification-model="person"][/tot-wp-embed]
Reputation Summary
Shows a brief overview of the user's verification status (age, identity, or both).
[tot-wp-embed tot-widget="reputationSummary"][/tot-wp-embed]
Profile Photo
Displays the user's chosen Token of Trust photo.
[tot-wp-embed tot-widget="profilePhoto"][/tot-wp-embed]
Verified Indicator
Shows a small icon reflecting how far a user has progressed in age/identity verification.
[tot-wp-embed tot-widget="verifiedIndicator"][/tot-wp-embed]
To display the icon even when the user is not verified:
[tot-wp-embed tot-widget="verifiedIndicator" tot-show-when-not-verified="true"][/tot-wp-embed]
Additional Settings
Override user or widget-specific attributes, for example:
[tot-wp-embed wp-userid="EXAMPLE" tot-widget="reputationSummary"][/tot-wp-embed]
Render in Templates/PHP
Use WordPress shortcodes in your PHP templates:
`
<?php
echo do_shortcode('[tot-wp-embed tot-widget="reputationSummary"][/tot-wp-embed]');
`
== Changelog ==
3.19.2
- Resolved a deprecation warning in PHP 8.4 that caused the Setup Wizard to load indefinitely. This issue was caused by outdated code in the TOT plugin and is now fixed for compatibility with PHP 8.4.
3.19.1
- avoid blocking the checkout even if TOT is unavilable.
3.19.0
- We now display tags on incorrect excise tax orders.
3.18.3
- Tested up to WordPress (6.8.1).
3.18.2
- Fix for a popup message that occurs if there’s no License Key after initial WP install.
3.18.1
- Removed: SkipTests option from cd_release to enforce mandatory test execution during releases.
3.18.0
- Added the "Expand with add-ons" section to display optional add-ons with a card-based layout and modal for activation.
3.17.0
- Enhanced error reporting by enabling front-end errors to be sent to the core product, making them visible in Sentry for improved debugging and monitoring.
3.16.1
- Tested up to WordPress (6.8.0).
3.16.0
- Added the "Expand with add-ons" section to display optional add-ons with a card-based layout and modal for activation.
3.15.3
- Minor updates to copy in setup wizard.
3.15.2
3.15.1
- Enhanced log details to simplify troubleshooting down the road.
3.15.0
- Enhanced the "Let's Get You Started" section with automatic minimization upon completion and an Ellipsis menu to manage setup list visibility.
3.14.1
- Improved testing before releases so updates are safer and smoother.
3.14.0
- Moved minimum age setting to General Settings with a new React page for configuration and seamless navigation.
3.13.4
- Enhanced PHP code reliability so everything runs smoothly.
3.13.3
- Enhanced Setup Wizard reliability so everything runs smoothly.
3.13.2
- Resolved a bug to ensure TOT only runs WooCommerce features if WooCommerce is active.
3.13.1
- When there is an update to the API from core Wordpress now detects it and updates the minimum age setting in Wordpress.
3.13.0
- TOT now works seamlessly with WooCommerce’s block-based checkout flow.
3.12.1
- Tested up to WordPress (6.7.2).
3.12.0
- We now display tags on excise tax orders.
3.11.5
- Added an alert to the Token of Trust WordPress plugin that notifies users working in a localhost environment. The alert provides a link to a helpful guide for setting up and testing the plugin on localhost successfully.
3.11.4
- Fixed License Key Error Message on Get Started Page During Onboarding.
3.11.3
- Strengthened the plugin's structure to improve stability.
3.11.2
- Fixed an issue where we deactivated Wordpress keys are spamming the heck out of us related to invalid domains.
3.11.1
- Fixed a bug to remove extra vape fields after disabling product syncing.
3.11.0
- Token of Trust is now notified of errors in remote wordpress instances after connection to wordpress is established.
3.10.0
- TOT now supports excise tax and order syncing for block checkout.
- Added "Schedule Intro Call" Screen with Avoma scheduling to book support calls.
3.9.0
- Declare incompatibility with checkout blocks.
3.8.0
- Removed the Settings & License option from the TOT menu.
3.7.4
- Fixed potential outage due to legacy license.
3.7.3
- Fixed a bug to allow decimal values for Product syncing.
3.7.2
- Fixed an issue to ensure order syncing works reliably and on schedule.
3.7.1
- WooCommerce now reports orders in milliseconds vs seconds.
3.7.0
- "Sync Now" available for orders.
3.6.1
- Tested up to WordPress (6.7.1).
3.6.0
- When a WordPress user is on an account-based setup, they can now switch to age-based setup when choosing a minimum age.
3.5.2
- Re-enabled the product syncing feature.
3.5.1
- Resolved an issue where the product sync feature was triggered without WooCommerce being active.
3.5.0
- Updated productSync to support overriding synced properties between TOT and WordPress.
3.4.3
- Tested up to WordPress (6.7.0).
3.4.2
- Non-functional changes and bug fixes.
3.4.1
- Moved auto-generation of the TOT pages to plugin activation process to eliminate the duplication issue.
3.4.0
- Add HelpScout Chat Beacon to dashboard.
3.3.6
- Add popup to watch account-based-setup video.
3.3.5
- Add Watch Getting Started video.
3.3.4
- Fixed Get Started link on the plugins page.
3.3.3
- Non-functional changes and bug fixes.
3.3.2
- Fixed not finding appDomain for the old licenses.
3.3.1
- Eliminate the Live Site Domain from the Wordpress License & API settings page.
3.3.0
- Request Minimum Age in Setup and move age to general settings.
3.2.2
- Changed WordPress stepper to have account creation first and placement second.
3.2.1
- Added popup modal in WordPress that informs users about account creation step after selecting configuration.
3.2.0
- We ask before making a change to the Setup Wizard settings.
3.1.0
- Wordpress Setup Wizard Fixes
- prompts and Start Setup button now appear at the top of the page.
3.0.4
- Tested up to WordPress 6.6.2.
3.0.3
- Fixed a syntax error related to removal of quarantine.
3.0.2
- fixed the building process of the setup wizard.
3.0.1
- Reverted back to old QuickStart page
3.0.0
- Using setup wizard on the QuickStart page to improve the UX and make the steps clear.
2.1.2
2.1.1
- Small fix to remove referer from API calls that caused problems for local development.
2.1.0
- Fixed to ensure meta-box is only added on order pages
- fixes collision with another plugin.
2.0.1
- Minor fix to mobile verification UX related to rotate button.
- Update to so that any allowedDomains can be used as live site domain
2.0.0
- Changes to make the plugin compatible with WooCommerce High-Performance Order Storage (HPOS).
1.27.1
- Minor change to fix a button event listener related to analytic events.
1.27.0
- Improved the Connect screen to ensure styling is consistent with TOT standards.
1.26.2
- Fix a bug where Wordpress wasn't pulling product details from TOT backend.
1.26.1
- ProductSync on Wordpress now supports product variations.
1.26.0
- Changed a hook to ensure that we only auto-update minor releases of the major release you're currently on.
- TOT now supports server side confirmation of cleared status ensuring that verification requirement cannot be bypassed by the client side prior to payment.
1.25.3
- Increased "Tested up to".
1.25.2
- Update to the build process to allow change to display images.
1.25.1
- Fixes for labels and validation for ProductSync.
1.25.0
- use appUserId if there's no transactionId with orders
1.24.0
- Removing the first-time activation notice
1.23.2
- Remove the 'TOT Not Activated' on admin panel since it is not 100% true.
1.23.1
1.23.0
- refresh api keys by webhook
1.22.0
- attach process_order function to more woocommerce hooks
1.21.1
- increase the priority of process_order function in TOT
1.21.0
- use options for debug_mode instead of transients
1.20.0
- handling transient with caching plugins
1.19.1
- Fixes to turn off some overly verbose logging.
1.19.0
- Downgrade php dependencies related to error capture. Changed a php timeout.
1.18.0
- Updates to Verification Required screen
1.17.2
1.17.1
- Fixed some issues on the QuickStart page.
1.17.0
- We now have links to 'learn more' and 'get started' links in wordpress quickstart.
- Removed link that directed customers to HQ without a use case.
1.16.0
1.15.1
- Improved error handling.
- Ensure that tot-log isn't indicated for cache.
1.15.0
- Fixed a defect in the UX related to setup of verification gates in QuickStart.
1.14.0
- Updates to fix installation / activation problem.
1.13.2
1.13.1
- Fix for when there's more than one transactionLine with the same product.
1.13.0
- Now detecting the document type so we need to ask for it less likely.
1.12.1
1.12.0
- HQ setting page supports activation / deactivation of back of ID.
1.11.1
- Disable sentry logging for now.
1.11.0
- Minor non-functional fixes.
1.10.1
- UX Improvements, simplifying the verification and improving conversion rates.
- Made back of Drivers License, Selfie compare optional.
- Bug fixes.
1.10.0
- Fix a crash condition for tax collection when a user is logged in and has no roles assigned.
1.9.0
- Simplified the verification process.
- Updated copy on our initial screens that indicate to the consumer why they are going thru verification.
- We have made no selfie, no back of dl and no name match the default configuration when customers sign up via self serve.
- Added the option to do remote logging support for premium support customers.
- Fixed a UX bug surround improperly tagging products
1.8.4
1.8.3
- Fixed a build related issue that was causing the plugin to not be recognized by the 'Add Plugin' screen.
1.8.2
- Build fix. Non-functional.
1.8.1
- Fix internal build. Non-functional change.
1.8.0
- Refactor of authentication for verifications so everything goes thru the steps. Removed re-use of verifications when there is no user record because it caused issues for user later. Improved logging around authentication.
- Fixed defect where product selection in woo-commerce was not skipping consultative questions and providing the correct pricing plans.
1.7.5
1.7.4
- Fixed build issues (non-functional).
1.7.2
1.7.1
- Minor fixes to quickstart.
1.7.0
- Added a Quickstart menu so that it's more clear what to do after you get started.
1.6.43
1.6.42
- We introduced a feature that empowers consumers to resubmit their documents multiple times, guided by the feedback they receive on their document capture.
1.6.41
- Fixed links out to Token of Trust.
1.6.40
- Fixed an issue related to dynamic selection of api server.
1.6.39
- Minor: Fixed some release notes problems.
1.6.38
- New and improved demo that shows what Token of Trust can recognize from an ID. Available on Token of Trust's HQ page after WordPress registration and connection.
1.6.37
1.6.36
- Temporarily reset release to version 1.6.32.
1.6.35
- Product Sync: is configurable and off by default.
1.6.33
- Product Sync: Requires that when new products are created we collect attributes related to excise taxes and synchronizes those with Token of Trust to ensure we can collect excise taxes in real time.
- Product Sync: Support for Import and Export
- Add an FAQ page natively in WordPress so that vendors don't need to direct users to Token of Trust to get answers to common questions.
1.6.32
Updates for opt-in for charity:
- Allow configuration of the checkbox to default to opt-in OR not opt-in.
- Added reporting on what was collected for charity.
- Added export csv report on what was collected for charity.
- Fixed some styling issues.
1.6.31
- Fix a critical error when an invalid live site domain is entered.
- Fix an issue where we were incorrectly labelling some transactions Not Activated.
1.6.30
- Tested up to WordPress 6.2.
- Beta release of 'Round up for Charity'.
- Ensure the appUserid is passed along when user is signed in.
- Fix to ensure that if test servers are down - production api keys can still be fetched.
1.6.29
Tax collection fixes:
- Fixed to ensure wholesale transactions are always tagged as such.
- Fix to ensure traceIds don't change through the transaction.
1.6.28
Tax collection fixes:
- Fixed an issue where disabling verifications also disabled checkout tax collection.
- Added tax collection amounts to orders in a separate field.
- Fixed an issue where post-order 'audit' always failed California since it was looking for the wrong label.
- Fixed an issue where _tot_ordertype was not set to wholesale when a wholesaler was signed in.
1.6.27
- Reverted to 1.6.25 - we're seeing an issue where excise tax collection is turned off for some customers
1.6.26
- Added advanced setting for those using excise tax feature.
1.6.25
- Use the labels returned from the Core Product so that we can conform to CECET and other tax labelling requirements.
- Send the transactional sales price to the backend for tax calculations.
- Fix to wholesaler, retailer role matching.
1.6.24
- Fixed source_url included in links out to tokenoftrust.com that broke auto-connection.
- Fixed links out to sandbox that caused bad license registrations.
- Fixed a caching issue at checkout.
1.6.23
- Added a number of advanced options to support wholesale vs retail for excise tax calculations.
- Added ability to order on behalf of a customer on the admin page and include excise taxes.
1.6.22
- Display warning to admin if attempt is made to use the API key on an invalid domain.
- Revamp to passing transactionId and traceId along with Woo Commerce transactions to facilitate better logic to troubleshoot orders.
- Fix to a problem where the tot-status was incorrectly attributed to the latest post - which was often but not always correct.
1.6.21
- Fixes anchor to get started.
1.6.20
- Ensure traceId is stable from cart through fulfillment.
- Fix an issue where 'Connecting' from TOT didn't appear to work in some cases and didn't provide adequate feedback.
1.6.19
- Reverted to 1.6.17 from 1.6.18 which will come again in 1.6.20
1.6.18
- Made getting started more clear for new installs: how to proceed (Get Started) by hiding unnecessary detail and providing admin level visibility when TOT is not setup.
- Fixed an issue where TOT api was called in a loop - we now cache on the client side.
- Bust cache on plugin browser side includes.
1.6.17
- Support for improved onboarding experience from Token of Trust - HQ screen.
- Improved uniqueness of trace-id on shopping carts.
1.6.16
- Moved more logging toward new debug logging mechanism and increased timeout to 45 minutes.
- Added an advanced option to allow optional debounce of the payment button in case people are mashing it multiple times and the payment plugin isn't properly handling it. WARNING: this option may cause problems with payment providers that depend up simulated button clicks.
1.6.15
- Tested through 6.0.0 and fixed a couple minor warnings.
1.6.14
- Fix an issue where givenName and familyName were not getting set correctly and could come to TOT as '0' or '1'.
1.6.13
- Fix an issue where order of products in cart could cause verification to not trigger on mixed goods cart.
1.6.12
- Fixes post-checkout verification.
1.6.11
- Minor fix - make traceId unique to allow better issue tracking.
1.6.10
- Adds support to specify pages to include or exclude from verification by multi-select.
- Also added support to exempt accounts from verification based upon roles - allowing admins, etc to get to protected pages without verification.
1.6.9
- Links to TOT include conversion_source=WordPress to give better context to WordPress and WooCommerce users when signing up.
- Ability to exempt orders based upon roles (admin, etc) - allowing trusted agents to place orders without verification.
1.6.8
- Updated the stable tag related to the plugin release.
1.6.7
- The Token of Trust plugin will now keep your users' verifications even if they switch email addresses in your system.
1.6.6
- Excise Taxes will not calculate on bundles of other items, but rather the items themselves in the bundle.
1.6.5
- Better excise error handling
1.6.4
- Improved API Connection testing to provide better feedback in the Admin dashboard.
1.6.3
- Better reporting on ToT's performance within WooCommmerce.
1.6.2
- Added the ability for Token of Trust users to add excise taxes to the shopping card process. Contact our success team for more info.