ecommerce / compliance

„Vertrag widerrufen“: the withdrawal button Austrian web shops need from 1 October 2026

From 1 October 2026, Austrian web shops need a two-step „Vertrag widerrufen“ button. What § 13a FAGG requires, the mistakes to avoid, and how we built it.

Open Markdown version

From 1 October 2026, every Austrian online shop that sells to consumers needs a button on its website that lets a customer withdraw from their order. The label is prescribed, the steps are prescribed, and so is the e-mail that comes back afterwards.

We built this into a client’s web shop in September, so this post is what we learned from reading the law closely enough to ship it. It is written for whoever owns the shop’s website, not for lawyers, and it covers what the rule requires, four mistakes to avoid, and how we built it.

This is not legal advice. It is a summary of the primary sources, linked throughout. For your own shop, and especially for your legal texts, talk to a lawyer.

Where the rule comes from, and when it applies

The EU basis is Directive (EU) 2023/2673, which inserts a new Art. 11a into the Consumer Rights Directive. The EU application date was 19 June 2026.

Austria was late. The national rule is § 13a FAGG, introduced by the Verbraucherrechts-Änderungsgesetz 2026 (BGBl. I Nr. 59/2026). It is in force from 1 October 2026 and applies to contracts concluded after 30 September 2026 (§ 20 Abs. 5 FAGG).

That leaves a gap between the EU date and the Austrian one. Whether there is any exposure for contracts concluded between 19 June and 30 September 2026 is open, and we have not seen it settled either way. If that window matters for your business, it is a question for your lawyer.

Two things stay as they were. The withdrawal right only exists for consumers, so this is a B2C obligation. And customers can still withdraw by e-mail, by letter or with the model form (§ 13 Abs. 1 FAGG). The button is an additional channel, and it has to be as easy to use as ordering was.

What the flow has to look like

§ 13a Abs. 2 to 6 FAGG describe a two-step flow and what happens after it. Here is each requirement, with its paragraph, next to what it means on a real website.

Part of the flow What § 13a FAGG requires What that means in practice
Entry point (Abs. 2) Labelled legibly „Vertrag widerrufen“ or an equally unambiguous wording. Continuously available for the whole withdrawal period, prominently placed and easy to reach A permanent link that customers can find without searching. The Austrian explanatory notes also accept „Vom Vertrag zurücktreten“
Step 1: the statement (Abs. 3) The consumer can easily provide or confirm their name, the contract identification and the channel for the acknowledgment A short form: name, order number, e-mail. Pre-filling for logged-in customers is allowed
Step 2: the confirmation (Abs. 4) A button labelled only „Widerruf bestätigen“ or an equally unambiguous wording, such as „Rücktritt bestätigen“ The button text is that phrase and nothing else. A generic „Absenden“ does not meet it
Acknowledgment (Abs. 5) Sent without undue delay on a durable medium, containing the content of the statement and the date and time of receipt An automatic e-mail with what the customer submitted and a timestamp
Deadline (Abs. 6) The withdrawal is in time if the statement was sent before the period ended The timestamp of submission is what counts, so record it

The directive’s official English label for the entry point is “withdraw from contract here” (Art. 11a(1)), and „Widerruf bestätigen“ as “confirm withdrawal”. Keep the German wording on a German-language shop. The law names these labels (or an equally unambiguous one), and a creative variant is a risk you take on for no benefit.

Four mistakes to avoid

The requirements above are short. Most of the ways to get this wrong come from treating the withdrawal form like a returns portal, where the shop decides what it accepts. The explanatory notes put the eligibility check after receipt.

1. Putting it behind a login

Recital 37 of Directive 2023/2673 says withdrawal must be as easy as concluding the contract, and that consumers should not have to “undertake procedures to find or access the function”. If a guest can check out, a guest should be able to withdraw. A customer account can pre-fill the form, but the form has to be reachable without one.

2. Checking eligibility up front

The explanatory notes to § 13a (Erläuterungen RV 498) are explicit: „Der Unternehmer muss … nicht vorab prüfen oder sicherstellen, dass dem Verbraucher im konkreten Fall auch tatsächlich ein Widerrufsrecht zusteht.“ In plain terms, the shop does not have to check in advance whether the customer really has a withdrawal right. The eligibility check happens after receipt. So the form should not stop a submission because the order is too old, the product is excluded or the customer is a business.

3. Rejecting an unknown order number

This follows from the point above, and it is the one a developer is most likely to build in by accident, because validating input against the database is normally good practice. The withdrawal form is the exception. A mistyped or missing order number is not a reason to reject the statement. Accept it, send the acknowledgment and sort out the match internally.

4. Asking for a reason

Step 1 is name, contract identification and the acknowledgment channel. A mandatory “why are you returning this” field adds a step the law does not ask for. If you want the feedback, make the field optional.

The wine myth

It is easy to assume online wine shops are exempt because alcohol is excluded from the withdrawal right. For ordinary orders, that is wrong.

The alcohol exception in § 18 Abs. 1 Z 7 FAGG (Art. 16(g) of the Consumer Rights Directive) needs all three of these conditions:

  • the price was agreed when the contract was concluded,
  • delivery can take place no earlier than 30 days later, and
  • the value depends on market fluctuations.

That describes en primeur sales (recital 49 of the Consumer Rights Directive names this case). A customer ordering six bottles of wine for delivery next week has the normal 14-day withdrawal right, and the shop needs the button.

The button on its own does not cover it. Two texts change as well:

  • The Widerrufsbelehrung (the withdrawal instructions) gets the new sentence from Anhang I Teil A, Gestaltungshinweis 3: „Sie können Ihr Widerrufsrecht auch online unter … ausüben …“, with the link to your function.
  • The pre-contractual information must say that the function exists and where it is (§ 4 Abs. 1 Z 8 FAGG).

These are legal texts, so have whoever maintains your terms make the changes. What you can do is give them the exact URL of the new function before they start.

How we built it

Our client’s shop runs on Odoo, which does not ship this function, so we built it into the storefront. In general terms it works like this:

  1. A page with no login, linked from a fixed footer row that a CMS edit cannot remove, and from the order confirmation page with the order number pre-filled.
  2. Step 1 asks for name and e-mail. Order number, order date, whole order or selected items, and a message are all optional. There is no reason field. Spam protection runs without a puzzle for the customer to solve.
  3. Step 2 shows a summary and a button labelled only „Widerruf bestätigen“.
  4. The acknowledgment e-mail goes out first. It carries the content of the statement, the date and time of receipt and a reference number, and it is the only thing the customer’s request waits for.
  5. Then the shop matches the withdrawal to the order, by order number and the customer’s e-mail together, so a stranger cannot write on someone else’s order. The team gets a note on the order and a to-do to review it.
  6. An unmatched statement is still accepted. It is flagged for a person to match by hand.

The order of steps 4 and 5 is deliberate. The legal obligation is the acknowledgment, so nothing that can fail in the back office sits between the customer and that e-mail. The whole flow took us about a day to build, test and deploy.

The same shop also needed the EU guarantee notice „Gesetzliche Gewährleistung“, which has applied since 27 September. We cover it in the EU guarantee notice every online shop has to show.

Getting it into your shop

If you want the withdrawal function built into your storefront, that is part of our headless website work, and we also connect shops to the ERP systems behind them. For anything else, get in touch.

If your website has become a bottleneck, let’s talk.

Start with an AuditOr email me directly