Welcome to the documentation for integrating Yoti Age Verification with Shopify.
The Yoti Age Verification Service helps merchants stay compliant when selling age-restricted products by offering two flexible verification options within a single app:
Sitewide Age Verification (Storefront age-gating)
- This feature allows merchants to enable sitewide age verification through a pop-up that blocks access to the storefront until the customer successfully verifies their age.
- Merchants can also configure geographic restrictions, allowing the age-gate pop-up to appear only for specific countries or states.
Check-out Age Verification
This feature ensures that age verification is triggered only when age-restricted items are present in the cart. Merchants need to tag such products with the “age_check_required” tag.
- If the cart includes only unrestricted products, the age verification button will not appear during the checkout process.
- If any age-restricted item is added, the age verification button automatically appears during checkout.
This ensures a seamless checkout experience while maintaining compliance with restricted products.
Checkout Age verification extension are available only to stores on a Shopify Plus plan
In order to configure the integration, an organisation must be registered with Yoti. For information on how to do this, please refer to our Onboarding guide.
Details you will need:
- A verified organisation through the Yoti Hub
- Age Verification API Key consisting of an SDK ID and a Bearer Token
The following are the integration steps:
- Download the plugin
- Install the plugin
- Add your keys and configure the plugin options
- Enable Age verification for relevant posts/pages
Install the plugin
Go to the Shopify App Store and search for Yoti Age Verification Service.
- Link to our shopify app - Yoti Age Verification Service
Click Install.
You’ll be redirected to admin.shopify.com → log in with your account.
- If you’re already logged in, you’ll see a prompt to install.

- Click install the app
- Once installed, click the View Setup Guide button at the top → follow the steps shown.

Yoti has two extensions:
- Theme App Extension (sitewide protection)
- Checkout Extension (checkout-level verification)
Theme App Extension
- Go to Shopify Admin → Online Store → Themes.
- Click Customise on your active theme.

- In the theme editor, click Add embeds (bottom left).
- Search for Yoti Age Verification Service and add it.
- In the app configuration, ensure Enable sitewide age verification is checked.

- click Save.
Below are the settings you need to complete the integration:
| Settings | Explaination |
|---|---|
| Configuration | Enable sitewide age verification in your app settings. |
| Theme Setup | Add the theme extension to your store’s theme. |
| Visitor Protection | Shoppers see a blocking popup requiring verification before browsing. |
| Complete Verification | Store content unlocks only after verification. |
| Session Management | Once verified, customers can shop freely for the configured session duration. |
| Geographic Control | Verification appears only for countries/states you configure. |
The Enable sitewide age verification option must be checked in your app settings before setup.
Skip to the product tags section.
Checkout Extension
- Go to Shopify Admin → Settings → Checkout → Customise.
- Under Apps, find yoti-avs-checkout.

- Click ➕ Add to include it in your checkout flow.
- Add the block in Checkout → ensures age verification before order completion.
- Add the block in Thank You → captures the order ID and updates order metafields.
- Click Save.
Below are the settings you need to complete the integration:
| Settings | Explaination |
|---|---|
| Tag Products | Add age_check_ required to products needing verification. |
| Customer Shops | Customer adds tagged products to cart. |
| Verification Appears | Age verification button shows up at checkout (only for carts with age restricted products). |
| Complete Verification | Customer verifies successfully. |
| Purchase Enabled | Customer can now complete the order. |
| Order Tracking | Verification results are stored in order metafields for compliance. |
The Enable sitewide age verification option must be checked in your app settings before setup.
Product Tags
- Go to Products → open a product that requires age verification.
- Scroll to the Tags section.
- Add the tag:
age_check_required . - Save the product → verification will now trigger at checkout for this product.
Plugin Settings
See below for all the configuration you need for the plugin:
| Setting | Explained | Example |
|---|---|---|
| Enter the minimum age | Define the age threshold. | If set to 21, only customers verified to be 21 or older can complete checkout. |
| Verification Timeout (seconds) | Defines how long a verification session remains valid before it expires. Customers must complete their age verification within this time window. | Setting this to 900 = 15 minutes. |
| Enable cookies for IP verification | When enabled, the customer’s IP location data is cached using cookies. This prevents repeated API calls on every page load. | N/A |
| IP Location cache duration | Choose how long the IP location data should be cached before it is checked again. Applies to both site-wide and page-level verification. | Default: 24 hours |
| Enable IP Whitelist | Allow specific IP addresses to bypass age verification. Useful for physical stores or staff networks where employees need to access the site without going through verification. | 0.0.0.0 |
| Add IP address or range | Enter individual IPs or CIDR ranges to be whitelisted | 192.168.1.100 or 10.0.0.0/24 |
| Age verification methods | You can choose one or more verification methods:
| Age Estimation |
| Success Message | Enter the message your customers will see after successfully verifying their age __ | Age verification successful! You can now continue with checkout |
| Failure Message | Enter the message your customers will see if their age verification is unsuccessful. This message will appear if the customer does not meet the minimum age requirement or fails the verification process.__ | Sorry, you could not be verified as over 18. You cannot complete this purchase |
| Verification button text | Configure the text for the age verification button at checkout The button initiates the age verification process. | Verify your age |
| Allow Checkout on Verification Failure | Allow checkout even if age verification fails __ | Disabled (default): Customers who fail age verification and cannot complete checkout. This is the recommended setting for compliance. Enabled: Customers may proceed with checkout even if they do not pass age verification. |
Theme App extension Settings
These settings are specific to the theme app.
| Setting | Explained | Example |
|---|---|---|
| Enable Sitewide Age Verification | When enabled, visitors will see an age verification Pop-up before accessing any page on your storefront. This ensures that your content or products are restricted to users of a certain age. | N/A |
| Pop-up Title | This text appears at the top of the age verification Pop-up and informs users about the requirement. | Age Verification Required |
| Pop-up Message | Provides a clear explanation of the age requirement to visitors. | Please confirm that you are 18 years of age or older to continue |
| Verification Button Text | This text is displayed on the button that users click to start the age verification process. | Example: “Confirm Age” |
| Session Duration (seconds) | Once a customer completes age verification, they will not be prompted again for the duration specified. This prevents repeated verification prompts during browsing sessions. | Default: 86400 seconds (24 hours) |
| Page Exception List (Optional) | Specify pages where age verification should NOT appear. When enabled, verification will show on all pages except the ones listed below. Leave empty to show on all pages. When enabled, age verification will be shown on all pages EXCEPT the pages you specify below. | Enter page patterns to exclude from age verification, one per line. Examples: 'home', 'collections/catalog', 'pages/about', 'videos', 'products'. Age verification will show on all other pages. |
Geographic Restrictions
This allows you to configure age verification for specific countries and states/regions.
Yoti offers the ability to configure:
Countries only: Visitors from any state/region in selected countries will see the age verification Pop-up.
Countries + States: Only visitors from the selected states within the selected countries will see the Pop-up.
No countries selected: Age verification is applied globally.
Visitors from locations not selected will bypass the age verification Pop-up.
Select Countries (Multiple Selection)
Choose the countries where age verification should be applied.
Supports multiple selections for more granular control over visitor access
Configure country- and region-specific age verification rules by selecting which verification methods to enable or disable (Digital ID, Identity Verification, Age Estimation, etc.) and setting custom age thresholds for each method. This allows full control over how age checks are applied in different locations.

Results
When a customer successfully completes age verification, the verification result is now stored in the Shopify Admin via metafields.
The metafields are created and updated using the customer’s order ID once the purchase is completed. This ensures that each order has an associated age-verification record, enabling merchants to track and audit verification status directly in the Shopify Admin.
The stored metafields allow consistent, persistent verification data across the store, improving compliance and record-keeping
Thank you page
To successfully receive the final verification result and update metafields, the merchant must add the Thank You extension to the Thank You page.
To enable this:
1. Open the Yoti Age Verification app.
2. Go to the Setup page.
3. Click the Enable checkout verification button.
4. In the Shopify editor, under the Apps section, locate the yoti-avs-checkout block.
5. Click Add to → Thank you and add the extension to the Thank You page.
This step is mandatory, as the Thank You extension is responsible for delivering the final age-verification result back to the app, which is then used to update the metafields for the order.