The Joomla withdrawal button German law asks for
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.
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
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.
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.
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.
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.
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.
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.
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.
Yes, very well. You place the withdrawal button anywhere in the builder through YOOtheme's own Module element.
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.
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.
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.
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.
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.
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.
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.
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.