This page is not translated yet and is shown in English.

WooCommerce

Installing the eIDAS Verify plugin, connecting your API key, choosing which products are gated, and testing the flow before it meets a shopper.

Last updated: 2026-09-04

The WooCommerce plugin puts a verification step into your existing checkout. Your WordPress server holds the API key and talks to the verification API; the checkout page itself never sees the key.

It is one of three integrations — see also Shopify and the JavaScript widget. Pick the one that matches your storefront; they are alternatives, not layers.

Before you start

RequirementMinimum
WordPress6.0
WooCommerce7.0
PHP8.0
HTTPSRequired. The shopper is redirected to an identity provider and back.

You also need an API key from your merchant dashboard, and an account with an active subscription — see API keys and billing.

1. Install and activate

Upload the plugin folder to wp-content/plugins/ and activate it from the Plugins screen, as with any WordPress plugin. It works with both Classic and Blocks checkout, and it is compatible with High-Performance Order Storage.

Once active, its settings live at WooCommerce → Settings → eIDAS Verify.

2. Connect your API key

On that settings screen:

  • API URL — the base URL of the verification API you are integrating against, for example https://api.eidas-pro.com. No trailing slash.
  • API Key — the key from your merchant dashboard. It is stored in WordPress options and sent server-to-server as the x-merchant-api-key header; it is never printed into the checkout page.
  • Enable Verification — the master switch. Leave it off until the rest is configured.

Test Connection checks connectivity and your subscription independently

The button runs two independent checks: a health probe against /api/health, and a subscription lookup against the merchant-subscription endpoint using your key. Whichever succeeds drives the message you see — an active, subscribed account reports "Connected. Subscription active." even if the health probe itself happened to fail, and a reachable API with a bad or unsubscribed key is reported separately from a URL that cannot be reached at all.

If you want to check something yourself: curl https://api.eidas-pro.com/api/config answering 200 with a JSON body means the URL is right. A verification call answering something other than 401 means the key is right. Your merchant dashboard is authoritative for the plan and the usage against it.

3. Choose what to verify

  • Verification Type — the dropdown offers a single option, Age only. Country and combined checks are not implemented end-to-end yet, so there is nothing else to choose. See how a verification works.
  • Verification Method — which family of identity method to request. The eID option routes to bank or government electronic identity; the EU wallet option is a preview and is not a live capability.
  • Country restrictions — optional allow and block lists, carried on the session.
  • Branding — the accent, text, background and border colours of the checkout verification panel, so it does not look pasted in.

Whether any method can serve a request is a property of the deployment, not of these settings. Check it before you launch:

curl https://api.eidas-pro.com/api/config

An empty supportedMethods array means no method is configured there yet and every session will fail closed, whatever the plugin is set to.

4. Choose which products are gated

Gating is per product, and it is opt-out:

  • With verification enabled globally, every product requires verification at checkout.
  • Each product has an eIDAS Verify Settings box on its edit screen with a skip verification for this product checkbox. Tick it for everything that does not need a check.
  • Each product category has its own skip verification for products in this category checkbox, on the category's add/edit screen under Products → Categories. Ticking it exempts every product filed under that category.
  • The product-level box also has an override global settings option, which lets one product use its own country allow/block lists instead of the store-wide ones. A verification-type field is shown there too, but it offers the same single Age only option as the global setting — there is nothing to actually override, and the plugin does not persist a per-product value for it.

A cart triggers verification if it contains at least one product that is neither individually skipped nor filed under a skipped category.

A category skip cannot be overridden per product

A per-product skip and a category skip are independent, equally-weighted exemptions — either one is enough to exempt an item, and neither is overridden back to "requires verification" by the other. If a product sits in a skipped category, unticking its own skip checkbox does not make it require verification again; the only way to require it is to remove it from that category. A product filed under several categories is exempt if any of them is skipped.

The default is to gate everything

A store selling one age-restricted line alongside two hundred ordinary products will, on the first save, ask every shopper to verify. Plan the opt-outs before you flip the master switch, not after.

5. What the shopper sees

At checkout, before order review, the plugin shows a verification step. The shopper completes the identity step with their provider and is returned to your checkout.

While they are away, your WordPress server polls the verification API roughly every two seconds and updates the checkout page when the session reaches a verdict. Checkout proceeds only after the server has confirmed a pass — the browser is never the thing that decides.

The plugin records each attempt in a verification log inside your own WordPress database, and surfaces it as an admin list page, an orders column, and a per-order meta box, so you can see afterwards which orders were gated and how they resolved.

6. Test before you launch

  1. Confirm supportedMethods is non-empty for your deployment. If it is empty, nothing further will work, and that is the deployment's state rather than a mistake in your setup.
  2. Put a non-skipped product in a cart and go to checkout. The verification step should appear.
  3. Complete a verification and confirm the order goes through and appears as verified in the admin log.
  4. Abandon one and confirm checkout stays blocked.

If a step fails, troubleshooting maps the error codes the plugin surfaces — invalid_merchant_key, no_subscription, layer_not_entitled — to their causes.

What the plugin never receives

The verification API returns a session status and two booleans, and no personal data at any point — no date of birth, no name, no country, no document. The plugin therefore has none to store. What it keeps in your database is its own record of the attempt: the session id, the outcome, and the customer details WooCommerce already had from the order.