Skip to main content

The Joomla withdrawal button German law asks for

Four steps: the visitor clicks the button, the form opens, they fill it in and send it, the acknowledgement appears.

Since 19 June 2026 every website offering contracts to consumers needs an electronic withdrawal function. JoomRevoke adds it to your Joomla website, whatever shop or booking system you run there and even if you run none at all.

A simple, quick way to add the withdrawal button

Set up in a few minutes

Install the package, add a menu item, put the button in the footer. That is all.

Open to every customer

One click is enough, with no account and no login. The law asks for exactly that.

Your data stays with you

Everything runs on your own server. No CDN, no external mailing, no foreign captcha.

What the law asks for and how JoomRevoke delivers it

Section 356a of the German Civil Code names five points. The Joomla withdrawal button is built along exactly those five, not along a feature list.

1. A permanently available button labelled „Vertrag widerrufen“

A module for footer or menu, carrying exactly that wording

2. A form for name, contract reference and contact route

Exactly those required fields, no more

3. A confirmation button labelled „Widerruf bestätigen“

The submit button carries that label

4. Immediate confirmation on a durable medium

E-mail and printable confirmation page, both with the time

5. The moment of sending is what counts

Server-side timestamp, not editable afterwards

What happens after your customer submits the withdrawal

Your overview in the Joomla backend.

The workflow in the backend: an email announces the new withdrawal, the list in the Joomla backend shows it as new, the entry is opened, set to closed and saved.

What JoomRevoke gives you

Your customers get a confirmation straight away

The timestamp is settled, for both sides

It keeps running, even when the licence runs out

Your customers' data stays with you

One click is enough, no account needed

German and English

It adapts to your template

An overview you understand right away

Print records, export data

Discreet towards strangers

It reaches every visitor

Frequently asked questions

Do I even need the withdrawal button?

It applies to businesses offering consumers contracts online where a right of withdrawal exists. That reaches far beyond online shops: subscriptions, bookings, courses and service contracts are covered too.

Whether it applies to your offering is worth a short word with your lawyer. If the answer is yes, JoomRevoke gets the technical side done in a few minutes.

And if the answer stays unclear: having the button without needing it harms nobody. It costs 39 euros a year. Needing it and not having it can bring a formal warning letter, and those quickly reach four figures. The ratio speaks for itself.

I have no shop at all. Does it still work?

Yes, and that is exactly what JoomRevoke was built for. It needs no shop system and no order database behind it.

Your customer writes what the withdrawal is about: an order number, a contract number, or simply the name of the service. You can match it up afterwards, at your own pace, in the backend.

Does this apply to online appointment booking?

The legal position here is not clear-cut. Whether a treatment, a consultation or a workshop slot booked online is a distance contract that can be withdrawn depends on the detail: which service it is, when it is delivered, and whether one of the statutory exceptions applies. To this day there is no settled answer.

The risk of that uncertainty sits with the operator of the website, not with the consumer. A withdrawal button that strictly speaking was not required costs you nothing but the licence. A missing button that is later held to be required can cost a great deal more.

A dependable answer for your own offering comes only from your lawyer. The technical side is done in a few minutes with JoomRevoke, whichever way that question falls for you.

Can I not simply build the button and form myself?

Technically, yes. The law prescribes no particular extension, it prescribes a result: a permanently available button labelled „Vertrag widerrufen“, a form with the required fields, a submit button labelled „Widerruf bestätigen“, and an immediate confirmation on a durable medium. Build all of that properly yourself and you meet the requirements just as well.

The question is what getting there costs. It adds up: the form, two e-mails, evidence of the moment of sending that cannot be altered afterwards, protection against form robots without a foreign captcha, operation without JavaScript, an overview in the backend - and all of it again when Joomla brings a new major release. A web designer bills that by the hour.

JoomRevoke costs 39 euros a year, is set up in minutes and is maintained. For most people that sum works out quickly.

What happens when my licence expires?

Nothing changes for your customers. The withdrawal button, the form, the acknowledgements and your backend carry on exactly as before.

What stops are the updates, and that is the part worth keeping an eye on. If the law changes, if a new Joomla release needs an adjustment, or if we close a security hole, that only reaches you with a valid licence. Your site keeps running, but on the state it is in today.

That the function never switches itself off is deliberate: a button required by law must not depend on whether an invoice happens to be outstanding. It is not an invitation to leave the extension to itself after a year.

Does my test installation use up a licence slot?

No, your building site is free. localhost and anything on .test, .local, .localhost, .invalid or .example never counts.

Neither do staging., dev. and test. in front of a domain your licence already covers. Develop, test and demo without using up slots.

Can I move a website to a different domain?

Yes, and it costs you nothing. Just tell us which domain should be released. We free the slot, usually the same day, and you simply enter your key again on the new domain.

Does this work with YOOtheme Pro?

Yes, very well. You place the withdrawal button anywhere in the builder through YOOtheme's own Module element.

Is there spam protection or a captcha?

Yes. JoomRevoke brings two quiet checks that run entirely on your server: a field invisible to people that form robots fill in reliably, and the time between opening and sending. Your visitors notice nothing.

If a check triggers, the submission is still not discarded. The sender is politely asked to send it once more and finds every entry still in place. A genuine withdrawal must never get lost.

If you have a captcha configured in Joomla, the form uses that as well.

Where does my customers' data live?

In the database of your own Joomla installation, and nowhere else.

No CDN, no external mail service, no foreign captcha, no remotely loaded font, no tracking. The only outbound connection is the licence check, and it carries nothing but the key and your domain name.

How long must I keep withdrawals?

That depends on your sector and your record-keeping duties. So JoomRevoke sets no period and deletes nothing by itself.

Withdrawals stay in the list until you mark them there and delete them. That leaves you deciding case by case what may go and what you keep as evidence.

Which Joomla and PHP version do I need?

Joomla 5 or 6, and PHP 8.3 or newer.

Joomla itself would start on PHP 8.1. We aim higher on purpose, because 8.1 and 8.2 no longer receive security fixes and your customers' contact details are handled here. With most hosts the PHP version can be switched in the control panel in two clicks.

Does the customer have to confirm by clicking a link (double opt-in)?

No, and that is a good thing. Under section 356a(5) the withdrawal takes effect the moment it is sent.

A confirmation link that effectiveness depended on would be an extra hurdle for your customer and legally shaky. JoomRevoke does without one.

Is JoomRevoke legal advice?

No, JoomRevoke provides a technical solution. We turn the requirements of section 356a into software and explain openly why we build it the way we do.

The legal questions stay with the experts: whether your offering falls under the duty, which details you may collect and how long you keep them is for your lawyer. The technology is our part.

Which languages does the form come in?

JoomRevoke comes in German and English: form, confirmation page, both e-mails and the entire backend.

On a multilingual Joomla site the language follows the page your customer is looking at. The language a withdrawal came in on is stored with it.

Does the form work without JavaScript?

Yes, completely. Form and confirmation page are rendered on your server, with no script in the browser at all.

That helps everyone using a screen reader, sitting behind a strict corporate network or working on an older device. A function required by law should reach every single person.


JoomRevoke is not affiliated with or endorsed by The Joomla! Project™ or Open Source Matters, Inc. The Joomla!® name and logo are registered trademarks of Open Source Matters, Inc. in the United States and other countries.

© 2026 JoomRevoke