Terms of use of the Todis Age Verification app
Version of 14 November 2026
1. Purpose, parties and acceptance
These terms govern the use of the "Todis Age Verification" app (the "app"), distributed on the Shopify App Store, by the business that installs it on its Shopify store (the "merchant").
The app is published by KOHEX, which also publishes the Todis service (todis.eu).
KOHEX, a société à responsabilité limitée (SARL, French limited liability company) with share capital of €1,000, registered with the Besançon Trade and Companies Register (RCS) under number 918 862 830, whose registered office is located at 20 allée des Sorentines, 25870 Châtillon-le-Duc, France. Intra-community VAT number: FR16918862830. Represented by Raphaël Citeau, gérant (manager).
Publication director: Raphaël Citeau, gérant (manager) of KOHEX.
Contact: contact@todis.eu. Postal address: the registered office stated above.
Publication: this text is published at https://shop-verify.todis.eu/legal/en/conditions.html, and the French original at https://shop-verify.todis.eu/legal/fr/conditions.html.
Contractual documents: the contract between the merchant and KOHEX consists of these terms, the data processing agreement and the privacy policy. In the event of a conflict, the data processing agreement prevails for the personal data of buyers, and these terms for everything else.
Acceptance: these documents are available from the app's listing and from the app's home page. The merchant accepts them by installing or using the app. The applicable version is the one in force on the date of installation, then each version amended under article 10.
Merchant's capacity: the merchant acts for the purposes of its business. These terms are not addressed to consumers.
2. The service
The app has the age of the store's buyers verified by Todis, which verifies credentials presented from a European digital identity wallet (EUDI Wallet). Todis verifies; it issues no credential.
Unless the merchant has turned it off, the app also offers buyers without a wallet an ID document and face check, done in their browser: the buyer films their face and their identity document with their phone's camera; the app's program, run on their device, reads the date of birth on the document, compares the face with the document's photo and sends the app only the answer about age, 18 or over, or not. This method is described in article 2a.
How it works:
- when the cart contains a product tagged
todis-age-18, the app embed of the theme starts the verification at checkout; the buyer presents their wallet, and Todis answers whether they are 18 or over; unless the merchant has turned it off, the buyer can choose the ID document check instead, from the verification page; - the app's checkout rule blocks payment for such a cart without a valid verification;
- when the order is created, if the order carries a verification, the app checks it again: if this check fails, it puts on hold the order's fulfillment orders that it can hold; if it succeeds, it adds the "age verified" tag to the order;
- the merchant can send the buyer a verification link from the "Orders on hold" page; a successful verification releases the hold placed by the app and adds the "age verified" tag.
An order that carries no verification is not checked when it is created (article 8).
The app never cancels an order; the merchant stays in control of the order.
Countries: at launch, the app is offered in France only.
2a. Identity document verification
On by default. The ID document check is offered to buyers as soon as the app is installed. By installing the app and subscribing to a plan, the merchant acknowledges its limits, described below and in section 8, and accepts them; the app keeps the date of this acceptance and the version of the terms accepted. The merchant can turn it off at any time in the app, and turn it back on the same way.
What it does. On the buyer's device, in their browser, the app's program asks for a head movement in front of the camera and checks it, reads an identity document (national identity card, passport, driving licence or residence permit) and reads the date of birth from it, compares the filmed face with the document's photo, and calculates whether the person is 18 or over. On a computer, the page offers to continue on the phone by scanning a code.
What the app receives. Only the answer about age, 18 or over, or not. No image, no data read from the document and no facial measurement leaves the buyer's device or is kept by the app (privacy policy, article 4a). Before opening the camera, the page tells the buyer what is done, where it is done and what is sent, and lets them choose not to continue and go back to the store.
Obligations of the merchant who keeps it on. The merchant is the controller of the processing performed on the buyer's device (data processing agreement, article 2). The merchant describes this verification in its own privacy policy and, where the regulations require it of the merchant, carries out the data protection impact assessment; KOHEX provides the necessary description of the processing (agreement, article 8).
Level of assurance. This method is less secure than the wallet: the document is not authenticated with its issuer, and the result is calculated by the buyer's device. A buyer who tampers with their browser can falsify the result. The app applies limits on number and timing; it does not guarantee that the method prevents all fraud. The merchant who keeps it on accepts this level of assurance, and their responsibility as a seller (section 3) is unchanged.
Billing. An identity document verification that returns an answer about age is a completed verification within the meaning of article 4, at the same price as a wallet verification. A verification that is abandoned, expired or whose result could not be sent is not billed.
3. Merchant's obligations
- The merchant remains solely responsible for complying with the rules that apply to the sale of age-restricted products, wherever it operates. The app helps it verify age at purchase; it does not release it from any obligation.
- The verification concerns the person who presents their wallet or identity document at purchase, not the person who receives the parcel: checking at delivery remains the merchant's responsibility.
- The merchant tags the products concerned, turns on the app embed in its theme and the app's checkout rule, as the app's home page explains. Products it does not tag, and sales channels not covered (article 8), are not verified.
- Human review: a buyer whose payment is blocked or whose order is put on hold can request a human review by contacting the store. The merchant reviews the request by its own means and decides. For a blocked payment, a merchant who accepts the buyer sends them, from the app, a single-use authorisation link; the order then carries the tag "age accepted by merchant", under the merchant's sole responsibility, and is not billed. For an order on hold, the merchant releases the hold, ships with a check at delivery, or cancels.
- Shop channel: a store that uses an age verification app is not eligible for the Shop sales channel.
- Indemnity: the merchant indemnifies KOHEX against any claim, action or penalty by a third party or an authority resulting from the merchant's failure to meet its own obligations as a seller, in particular regarding the sale of age-restricted products and the protection of its buyers' data.
4. Plans and prices
Two plans, chosen by the merchant.
| Plan | Price | Completed verifications included | Beyond that |
|---|---|---|---|
| Standard | free up to those included | 20 per 30-day billing period | €0.35 excl. tax per completed verification |
| Early Bird | €49 excl. tax, paid once (art. 5) | 200 per 30-day billing period, for as long as the service exists (art. 5) | €0.35 excl. tax per completed verification |
Prices excluding tax: prices are stated excluding tax. Applicable taxes are added according to Shopify's billing rules (article 6).
Completed verification: the buyer presented their wallet and Todis gave a usable answer about age, 18 or over or not; or the ID document check (section 2 bis) returned an answer about age. The verification work is the same for an adult and for a minor. Switching from the wallet to the identity document does not count twice: only the verification that returns an answer is counted.
Never billed: refusals in the wallet, abandonments, technical errors, a missing or unreadable age attribute, identity document verifications that are abandoned, expired or whose result was not sent, sales authorised by the merchant after review, and re-verifications of an order on hold (verification link), whatever the result and whatever the method.
Development stores: charges there are test transactions, and a demonstration mode can simulate verifications there; a simulated verification is never counted or billed, and it does not use up the verifications included in the plan.
Changing plan: from the app's "Choose your plan" page, without going through support or reinstalling the app; the new plan replaces the previous one as soon as the merchant approves it at Shopify. From Standard, Early Bird can only be chosen while seats remain and before the deadline (article 5). A store that has Early Bird does not go back to Standard, even after reinstalling.
5. Early Bird plan
- Seats: 100 seats are put on sale. A seat sold is never put back on sale. Development stores do not count among the 100.
- Subscription: open until 31 December 2026 at 23:59, Paris time, while seats remain. A reservation made before the deadline remains valid if the payment approval comes later in Shopify, as long as the purchase has not expired.
- Price: €49 excl. tax, paid once, then the plan's usage-based subscription (200 completed verifications included per period, then the price per completed verification in article 4, under the cap in article 6).
- Duration of the plan: the plan applies for as long as the service exists, that is, as long as KOHEX markets the app on the Shopify App Store. It also applies after uninstalling and then reinstalling the app on the same store, without paying the €49 again. On reinstallation, the plan is recognised without a new purchase; the merchant only has to approve the usage-based subscription again, at the default cap of €100 excluding tax. Any reference to "for life" in the app's listing or in the app has this meaning and no other.
- What is guaranteed: for the whole duration of the plan, KOHEX does not reduce the 200 completed verifications included per period and does not ask for a new one-time payment. The price per verification beyond those included may change under article 10.
- End of the plan: the plan ends:
- when KOHEX stops marketing the app, after 90 days' notice, by email and in the app;
- without notice, if Shopify removes the app from the Shopify App Store, suspends KOHEX's Partner account for a reason not attributable to KOHEX, or stops allowing the app to operate;
- in the event of a serious breach by the merchant (article 9).
In all these cases, the end of the plan gives rise to no refund or compensation.
- Refund: the €49 is not refundable, except for a billing error or a service never provided. There is no right of withdrawal between businesses.
- What the app keeps for this: a keyed fingerprint of the store's myshopify domain, the purchase date and the "development store" flag, with no readable data. It is kept after uninstallation and after the store's erasure request (
shop/redact), as proof of purchase and to perform the plan. The merchant may request its erasure at contact@todis.eu: it then permanently gives up the Early Bird plan for that store, and the seat remains counted as sold.
6. Billing
- By Shopify: all of the app's charges go through Shopify's billing (Billing API) and appear on the merchant's Shopify invoice. The merchant approves, on a Shopify screen, the subscription, the one-time Early Bird purchase and each change of cap; a refusal changes nothing in the current plan. Usage charges are not approved one by one: the app records them at Shopify under the cap the merchant accepted.
- In euros: all charges are stated in euros. The app offers a plan only to stores whose Shopify billing is issued in euros. A store billed in another currency cannot choose a plan and is charged nothing; age verification works there as it does without a plan.
- Cap on usage charges per 30-day billing period, excluding tax: €100 by default, accepted by the merchant, adjustable in the app; each change is approved by the merchant at Shopify. When the plan changes, the new plan keeps the current cap. The cap is never exceeded: a verification that would exceed it is not billed.
- Alert: the app shows a banner when 80% of the cap is reached, then when it is reached.
- Sales are never blocked for a billing reason: with no plan chosen, no usage charges accepted, the cap reached or Shopify unavailable, age verification and payment work as usual.
- Period: that of the subscription at Shopify, 30 days. Without a subscription, nothing is billed.
- What is sent to Shopify for a billed verification: the amount, the date of the verification and a random identifier, with no personal data.
- Disputes: a merchant who disputes an amount reports it to contact@todis.eu within 60 days of the Shopify invoice that carries it. After that period, the amount is deemed accepted.
7. Data and privacy
Data processing is described in the privacy policy and governed by the data processing agreement (article 1).
KOHEX's commitments to the merchant:
- the app processes only the data needed for the service, and no identity data of the buyer: from the verification, it receives only the answer about age, whatever the method;
- it neither sells nor shares any data, and sends nothing about the order to Todis;
- it never writes to the buyer: the merchant sends the verification link, from its own email;
- it uses no data to train an artificial intelligence;
- it erases the store's data after uninstallation, at the latest on the erasure request that Shopify sends 48 hours later, except the Early Bird fingerprint (article 5); backup copies keep them for 30 days at most in normal operation;
- it notifies the merchant of any data breach that concerns it (data processing agreement, article 10).
Statements required by Shopify. The merchant is informed that:
- (i) KOHEX is solely responsible for the app;
- (ii) Shopify is not liable for any fault in the app or any harm that may result from its installation or use;
- (iii) except where expressly stated by Shopify, Shopify cannot provide assistance with the installation or use of the app; and
- (iv) KOHEX is solely responsible for any liability which may arise from the merchant's access to or use of the app, including: (A) the development, use, marketing or distribution of or access to the app, including support of the app; or (B) KOHEX's access, use, distribution or storage of merchant data.
8. Availability, known limits and liability
Best-efforts obligation: KOHEX undertakes to use reasonable means to provide the app as described (obligation de moyens). The result of a verification depends on the buyer's wallet, on the wallets accepted by Todis in production and on the European digital identity ecosystem, which KOHEX does not control, and, for identity document verification, on the buyer's device, camera and document. KOHEX does not guarantee that the app prevents every sale to a minor.
Known limits:
- A buyer without a compatible digital wallet can buy a tagged product online through the ID document check (section 2 bis), unless the merchant has turned it off; in that case, they cannot buy that product online. In all cases, human review by the merchant remains available (section 3).
- Identity document verification relies on a calculation made in the buyer's browser: its result can be falsified by a knowledgeable buyer, and a person may be wrongly refused (lighting, damaged document, covered face). It does not authenticate the document with its issuer and does not check its expiry date: an expired document may pass. The merchant who keeps it on accepts this level of assurance.
- Accelerated checkout and "Buy it now" buttons do not carry the verification: the checkout rule blocks the buyer, even when verified. The app advises hiding them on tagged products.
- Point of sale, orders created by API, orders created by the merchant in the admin (including draft orders), order editing, pre-orders and subscriptions are not covered by the checkout rule.
- An order that carries no verification, in particular an order created by the merchant in the admin (including a draft order), by API or at the point of sale, is not checked when it is created: the app does not put it on hold and does not add the "age verified" tag. Checking these orders is the merchant's responsibility.
- Shipping handled by a third-party fulfillment service is not put on hold; the merchant is alerted in the app when the order has only such shipping.
- The app creates the checkout rule without the "Allow all customers to complete checkout" option. If the merchant checks this option, a runtime error lets the purchase through.
- A merchant who changes the app proxy path (
/apps/todis) must copy it into the "Proxy path" setting of the app embed; verification links already sent stop working.
Availability: KOHEX makes no numerical availability commitment.
Liability: KOHEX's liability towards the merchant, for all causes combined, is limited to direct and foreseeable damage. Indirect damage is not compensated, in particular loss of revenue, profit, customers or reputation, nor penalties imposed on the merchant for its own failures. The total amount owed by KOHEX is capped at the higher of: the sums paid by the merchant for the app during the 12 months preceding the event giving rise to liability, or €500 excluding tax. These limits do not apply in the event of gross negligence or wilful misconduct by KOHEX, or where the law prohibits limiting liability.
Force majeure: KOHEX is not liable for a failure caused by force majeure within the meaning of article 1218 of the French Civil Code, nor for an unavailability of Shopify, a digital identity wallet or a hosting provider that is not attributable to it.
9. Term and termination
The terms apply as long as the app is installed. The merchant can uninstall the app at any time, at no cost; uninstalling cancels the subscription at Shopify. The data is then erased as article 7 states, and the Early Bird right remains with the store under the conditions of article 5.
KOHEX may end the terms on 30 days' notice. For a store that has the Early Bird plan, KOHEX ends the terms only in the cases set out in article 5.
KOHEX may suspend access to the app immediately, and end it without notice or refund, in the event of a serious breach by the merchant (in particular fraudulent or unlawful use of the app, an attack on its security or circumvention of its billing) or a security risk. Outside a serious breach, a suspension for a security risk lasts as long as needed to address it.
10. Changes to the terms
KOHEX announces any change to the terms to the merchant 30 days before it applies, by email and in the app. A merchant who refuses the change may uninstall the app at no cost before it applies; otherwise, it accepts it.
A change applies immediately if it is favourable to the merchant, if it strengthens security or data protection without reducing the merchant's rights, or if the law or Shopify require it.
No change reduces the guarantees of the Early Bird plan described in article 5.
An optional feature that is off by default applies to the merchant only from the moment they turn it on; turning it on counts as acceptance of the version of the terms that describes it. A feature that is on by default is accepted together with the terms that describe it; a merchant who does not want it turns it off.
11. Governing law and disputes
These terms are governed by French law. Failing an amicable resolution, any dispute falls within the jurisdiction of the courts for the place of KOHEX's registered office (Besançon), including in the event of multiple defendants or third-party claims.
Limitation period: any action by the merchant against KOHEX under these terms is time-barred one year after the day on which the merchant knew or should have known of the facts on which it is based (article 2254 of the French Civil Code).
Language: the French text prevails; the English text is a faithful translation of it.
12. General provisions
- Severability: if a clause is declared void or deemed unwritten, the other clauses remain applicable.
- No waiver: KOHEX's failure to rely on a clause does not waive its right to rely on it later.
- Assignment: KOHEX may assign the contract to any company that takes over the operation of the app, informing the merchant. The merchant may assign the contract only together with the store itself.
- Evidence: the records of Shopify (installation, billing approvals, invoices) and of the app are binding between the parties, unless proven otherwise.
13. Contact and support
A single address, contact@todis.eu, for support as for any other request.