Kündigungsbutton (§ 312k BGB) / Guide
Cancellation button for WooCommerce: § 312k BGB guide
Do you sell continuing contracts to consumers in Germany through WooCommerce? This guide explains the public cancellation route under § 312k BGB and how to implement it by hand.
Who needs the button?
§ 312k BGB applies to businesses offering consumers paid continuing contracts online, such as memberships, software subscriptions or recurring subscription boxes. The contract matters, not the shop system. Ordinary one-off purchases are outside this rule. Exceptions include financial services and contracts for which the law exclusively requires cancellation in a form stricter than text form.
The law and current BGH position
A legible “Verträge hier kündigen” button, or equally clear wording, leads directly to the confirmation page. Both buttons and the page must always be available and directly and easily accessible. Customers must be able to provide the cancellation type, reason for extraordinary cancellation, identifying details, contract, desired end date and an address for prompt electronic confirmation. The final button says “jetzt kündigen” or an equally clear equivalent.
After submission, the declaration must be savable on a durable medium with its date and time. Immediately confirm electronically in text form, for example by email, including the content, receipt date and time and the end date. Without a specified date, the earliest possible termination applies in case of doubt. A missing statutory cancellation route can allow cancellation without notice.
On 16 July 2026, the BGH held in I ZR 200/25 that retention offers, pause buttons and additional advertising do not belong on the confirmation page. The login cases I ZR 272/25 and I ZR 275/25 were heard on 5 November 2026; judgment is pending. Design a route without a password requirement.
WooCommerce: manual implementation
- Create a public “Verträge hier kündigen” page under Pages > Add New. Implement the form as a shortcode in a small WordPress plugin; keep the page publicly accessible. Neither a WooCommerce account page nor the subscription cancellation link inside an account replaces this public route.
- For a block theme, edit the Footer template part under Appearance > Editor. For a classic theme, use its footer menu under Appearance > Menus or a child-theme hook. Link straight to the form. Give the form a plain template without shop promotions.
- Handle POST requests server-side in your plugin, validate the fields, and store the declaration and receipt time in a custom table. Immediately send the customer confirmation and merchant notification through wp_mail. Configure reliable mail transport; a successful function call does not prove delivery.
Test before publishing
Protect processing against duplicate submissions without requiring login. Offer a downloadable or printable receipt containing the declaration and receipt time; keep sensitive form data out of public URLs. Test the entire route logged out on a phone and check the confirmation inbox. After theme updates, verify the footer link still exists. Disable retention popups on the confirmation page and check caching, cookie banners and maintenance mode. Then process the declaration in the actual subscription system; the form does not stop billing by itself.
Sources
- § 312k BGB on gesetze-im-internet.de (Federal Ministry of Justice)
- BGH press release no. 128/2026: judgment of 16 July 2026, I ZR 200/25
- BGH press release no. 133/2026: hearing on 5 November 2026 in I ZR 272/25 and I ZR 275/25 (German)
Statute and BGH press releases; as of 6 November 2026. Not legal advice.