Skip to content
Rechnungskit
Law · Online contracts with consumers
Explainer

The German withdrawal button (§ 356a BGB): mandatory since June 19, 2026

Since June 19, 2026, every business that concludes distance contracts with consumers through a website or app must offer an electronic withdrawal function (§ 356a BGB, the German Civil Code). It is labeled "Vertrag widerrufen" (withdraw from contract) or with equivalent wording and stays permanently available during the withdrawal period. The withdrawal is only sent through a second button, "Widerruf bestätigen" (confirm withdrawal), after which the customer receives a receipt confirmation with date and time.

What the withdrawal button is

Consumers can usually withdraw from online contracts within 14 days (§ 355(2) BGB, German). A declaration to the business is enough, for example by email or letter (§ 355(1) BGB, German), or the model withdrawal form (§ 356(1) BGB, German). Since June 19, 2026, the business must also offer a withdrawal function directly in the interface through which the contract was concluded. In everyday language it is called the withdrawal button (Widerrufsbutton).

The legal basis is the Act amending consumer contract and insurance contract law of February 3, 2026, published in the Federal Law Gazette 2026 I No. 28 (German). It implements Directive (EU) 2023/2673, rewrites § 356a BGB (German) and, under its Art. 10, enters into force on June 19, 2026.

Who needs it

§ 356a(1) BGB (German) covers distance contracts concluded through an online interface. The Verbraucherzentrale names a web shop, an online form, a booking page and an app as examples. Unlike the cancellation button, it does not depend on a subscription. A single purchase is covered too, and unlike § 312k(1) sentence 2 BGB (German), the provision has no exception for financial services.

The function must be available while the withdrawal period is running (§ 356a(1) sentence 3 BGB, German). If there is no right of withdrawal, for example with business customers, no period runs either. For the statutory exceptions to the right of withdrawal, and for digital content where the right expires early with the customer's consent, the answer depends on the individual case. Have a lawyer look at that.

Quick check
Do I need the withdrawal button?
Private individuals buy in your online shopSingle purchases too, not only subscriptions
Required
Private individuals sign up for a subscription via website or appSoftware, membership, course
Required
Financial services online to consumersNo exception as with the cancellation button (§ 356a(1) BGB)
Required
Business customers onlyNo consumer contract (§ 356a(1) BGB)
Not required
Contract in a store, by phone or by individual emailNot concluded through an online interface (§ 356a(1) BGB)
Not required
Borderline cases such as exceptions to the right of withdrawal or rights that expired early for digital content are deliberately left out here. They need a lawyer's review.

What § 356a BGB requires

The process has two steps, and both labels are written into § 356a BGB (German):

  1. The withdrawal function. It is clearly labeled "Vertrag widerrufen" (withdraw from contract) or with equivalent clear wording. During the withdrawal period it is permanently available in the interface, prominently placed and easily accessible (para. 1).
  2. The details. The customer can enter or confirm their name, the contract or part of the contract they want to withdraw from, and the channel for the receipt confirmation (para. 2). The law expressly allows the customer to only confirm details, such as prefilled data.
  3. The confirmation function. Only a second button, "Widerruf bestätigen" (confirm withdrawal) or equivalent, sends the withdrawal (para. 3).
  4. The receipt confirmation. You send it without delay on a durable medium, in practice by email. It contains at least the content of the declaration and the date and time of receipt (para. 4).

For the deadline, sending is what counts: a customer who clicks "Widerruf bestätigen" before the period ends has withdrawn in time (para. 5).

Process under § 356a BGB
One click is not enough: withdrawal in two steps
  1. Step 1"Vertrag widerrufen"Prominent, permanently available during the period
  2. DetailsName, contract, email for the confirmationEnter them or confirm prefilled data
  3. Step 2"Widerruf bestätigen"Withdrawal sent
  4. Without delayReceipt confirmationContent of the declaration, date and time of receipt
The labels "Vertrag widerrufen" (withdraw from contract) and "Widerruf bestätigen" (confirm withdrawal) come from § 356a(1) and (3) BGB. Equivalent clear wording is allowed.

Deadline, refund and compensation

The button does not change the right of withdrawal itself. The period is 14 days (§ 355(2) BGB, German). For services, which includes most software subscriptions, it starts when the contract is concluded. For goods it generally starts when the goods are received, and for regular deliveries when the first one is received (§ 356(2) BGB, German). Without a proper withdrawal notice it does not start, and the right then expires at the latest twelve months and 14 days later (§ 356(3) and (4) BGB, German). So the notice is still required, button or not.

After a withdrawal, you refund the payment within 14 days at the latest, using the same payment method the customer used (§ 357(1) and (3) BGB, German). For services, the customer owes compensation for the value of the time up to the withdrawal if they expressly asked you to start before the period ended and you informed them properly (§ 357a(2) BGB, German). For digital content not supplied on a physical medium, there is no compensation (§ 357a(3) BGB, German).

What happens without a withdrawal button

There is no published case law on the withdrawal function yet. For the related cancellation button, consumer associations took breaches all the way to the BGH, Germany's Federal Court of Justice (I ZR 161/24, I ZR 200/25, both German). The new law also introduced an administrative offense (BGBl. 2026 I No. 28, Art. 2, German): failing to provide the withdrawal function, or not providing it as required, or not sending a receipt confirmation, is an offense. The fine goes up to €50,000, or up to 4 percent of annual turnover for businesses with more than €1.25 million in annual turnover (Art. 246e § 1(2) no. 14a, § 2 EGBGB, German). It can only be imposed, however, as part of a coordinated enforcement action by the EU consumer protection authorities.

The withdrawal itself does not need the button: it is made by a declaration to the business (§ 355(1) BGB, German). Customers can still withdraw by email or letter.

How it differs from the cancellation button

Withdrawal button Cancellation button
Legal basis § 356a BGB, since June 19, 2026 § 312k BGB
Purpose Unwind a contract within the withdrawal period End an ongoing contract for the future
Applies to All distance contracts with consumers concluded online Continuing contracts concluded online
Financial services Covered Exempt
When visible During the withdrawal period Always
Label "Vertrag widerrufen", then "Widerruf bestätigen" "Verträge hier kündigen" (cancel contracts here), then "jetzt kündigen" (cancel now)
Consequence Both sides return what they received, compensation where applicable (§§ 357, 357a BGB) Contract ends on the cancellation date

For a subscription with consumers, you need both during the first 14 days. What the cancellation button requires is explained under cancellation button under § 312k BGB.

How withdrawal works for Rechnungskit subscriptions

If you sell subscriptions through Rechnungskit's subscription checkout, withdrawal sits in the customer portal at konto.rechnungskit.de directly below cancellation. The customer reaches the page without a login through the personal link in the confirmation email, through "Manage subscription" after the purchase, or through the cancellation link that you copy for each subscription plan under Products and add to your terms, footer or app.

Before the purchase, the subscription checkout already shows your withdrawal notice as a link (Art. 246a § 1(2) sentence 1 no. 1 EGBGB, German), the consent to start performance before the period ends, without which there is no compensation (§ 357a(2) BGB, German), and the "Zahlungspflichtig bestellen" button (order with obligation to pay) (§ 312j(3) BGB, German).

Subscription checkout · Before the purchase
What the customer sees before "Order with obligation to pay"
I expressly request that Example Software GmbH begins performance before the withdrawal period ends. I understand that my right of withdrawal lapses on complete performance of the contract and that, on withdrawal, I owe compensation for the value of the service already provided.
I have read the terms and agree that they apply.
Terms · Cancellation policy · Privacy · Legal notice
Order with obligation to pay
Recreation with an example company, showing the English checkout (German buyers see "Zahlungspflichtig bestellen"). The links go to the legal texts the merchant has added, not Rechnungskit's. With a trial period, the button reads "Subscribe with obligation to pay" (German: "Zahlungspflichtig abonnieren").

After the purchase, withdrawal works in two steps, just like cancellation. Clicking "Withdraw from contract" reveals the question "Do you want to submit your withdrawal now? It will be binding." Below it are the details from § 356a(2) BGB (German): the contract with the seller, the customer's name and the email address for the receipt confirmation. If no name is stored in the customer account, the customer can enter it in an optional field. Only "Confirm withdrawal" sends the withdrawal.

The page then shows the withdrawal for the customer's records: declaration, contract, seller, name, receipt with date and time (German time) and the email address, with the button "Print or save confirmation". The receipt confirmation by email contains the same details (§ 356a(4) BGB, German).

Customer portal · konto.rechnungskit.de
Withdrawal in two clicks, during the first 14 days
Seller: Example Software GmbH
Team plan
€29.00 per month
Cancel contract
Within the withdrawal period: the contract ends and the amount you already paid is refunded in full to your original payment method.
Do you want to submit your withdrawal now? It will be binding.
ContractTeam plan · Example Software GmbHNameErika MusterReceipt sent toerika@example.org
Confirm withdrawal
Cancel
  • Click 1"Withdraw from contract"A separate button below cancellation, only visible within 14 days of signing up.
  • Click 2"Confirm withdrawal"Above it are the contract, the name and the email address for the receipt confirmation. If the name is missing from the customer account, the customer can enter it.
  • AfterwardConfirmation and emailThe page shows the withdrawal with the date and time received, to print or save. The "Withdrawal confirmed" email in your name repeats these details and promises the refund.
Recreation of the real portal page (English version) with made-up example values. After the 14 days, only "Cancel contract" remains.

What happens on your side afterward

Once the withdrawal is confirmed, Rechnungskit takes care of the bookkeeping, and you move the money yourself:

After the withdrawal · Merchant view
Subscription ended, invoice canceled, refund as a task
  1. ImmediatelySubscription ends, no further chargesYour system learns about it via the subscription.withdrawn webhook
  2. ImmediatelyCancellation invoice for each paid billing documentCorrection under § 17 UStG referring to the original invoice
  3. Task for youWithdrawal: refund dueWith the amount and the customer's email
  4. Within 14 daysYou refund through the payment providerTo the original payment method, then mark the task as done
Rechnungskit does not move money. You trigger the refund in Stripe or Mollie. During a free trial nothing has been paid, so no task is created.

Rechnungskit cancels the full amount paid. It does not deduct compensation for days already used; if you want to claim it, clarify that with your legal advisor first.

The limit: the withdrawal function in the portal exists for subscriptions from the Rechnungskit subscription checkout. For one-time purchases through the checkout link and for orders from Shopify, WooCommerce or Shopware, Rechnungskit does not provide a withdrawal button. There you need your shop system's function or your own solution. Also check with your legal advisor whether the links from the email and the cancellation link count as "permanently available and prominently placed" for your website, or whether you should add a visible "Vertrag widerrufen" button to your site that leads to the portal.

With Stripe Billing, a shop system or your own code

If you sell through a different system, check these points yourself:

  • A "Vertrag widerrufen" button, permanently available, prominently placed and easily accessible during the period (§ 356a(1) BGB, German)
  • Asking for or confirming name, contract and email for the receipt confirmation (para. 2)
  • A second "Widerruf bestätigen" button that sends the withdrawal (para. 3)
  • A receipt confirmation by email with content, date and time (para. 4)
  • A refund within 14 days to the original payment method (§ 357(1) and (3) BGB, German)
  • A VAT correction of the original invoice (§ 17 UStG, German)
  • For subscriptions, also the cancellation button under § 312k BGB

For software subscriptions, e-invoicing for SaaS shows how the portal, an e-invoice for every period and cancellation invoices fit together. Quantities, add-ons and plan changes are covered in subscription billing. How a cancellation invoice is structured is explained under invoice correction.

FAQ

Since June 19, 2026. The Act amending consumer contract and insurance contract law of February 3, 2026 (BGBl. 2026 I No. 28, German) rewrote § 356a BGB (German) and, under its Art. 10, enters into force on June 19, 2026.
Sources & legal basis
  1. [1] § 356a BGB: withdrawal function (gesetze-im-internet.de, German)
  2. [2] Act amending consumer contract and insurance contract law of February 3, 2026, BGBl. 2026 I No. 28 (recht.bund.de, German)
  3. [3] § 355 BGB: right of withdrawal for consumer contracts (gesetze-im-internet.de, German)
  4. [4] § 356 BGB: right of withdrawal for distance contracts (gesetze-im-internet.de, German)
  5. [5] § 357 BGB: legal consequences of withdrawal (gesetze-im-internet.de, German)
  6. [6] § 357a BGB: compensation for value (gesetze-im-internet.de, German)
  7. [7] BGH, judgment of May 22, 2025, I ZR 161/24 (bundesgerichtshof.de, German)
  8. [8] BGH, judgment of July 16, 2026, I ZR 200/25 (bundesgerichtshof.de, German)
  9. [9] Verbraucherzentrale: withdrawal button from June 2026 (German)
  10. [10] IHK Region Stuttgart: withdrawal button, withdrawal by mouse click (German)
Read more
Guide E-invoicing for B2C in Germany: does the mandate apply to online shops? Guide E-invoicing in Germany: the mandate explained for founders Guide Invoicing in a foreign currency in Germany: which exchange rate applies? (ECB, DATEV, OSS) Guide GoBD explained: principles, retention and what they mean for your invoices Guide Small-amount invoices in Germany (§ 33 UStDV): when the buyer's address can be left out Guide E-invoicing for small businesses in Germany (Kleinunternehmer): duties, exemptions, thresholds 2026 Guide The German cancellation button (§ 312k BGB): who needs it and how it works Guide The date of supply on German invoices: shipping date or payment date? Guide Leitweg-ID: what it is, how it is structured and how it gets onto the invoice Guide The OSS scheme explained: the €10,000 threshold, registration and an example Guide Deferred revenue for SaaS and online courses in Germany: when a pRAP is required Guide Proforma invoices in Germany: what they are for and why they are not invoices Guide Deferred revenue in German accounting (pRAP): definition, bookings and an example Guide Changing the billing address on a German invoice afterward: is it possible? (without a cancellation) Guide Correcting an invoice in Germany: which route for which error? Guide Server-side tracking for Meta: Conversions API with a lean consent bar Guide Shopify gift cards in Germany: gift card, discount code and store credit for VAT Guide Shopify invoices in Germany: what Shopify does, what is missing, what applies from 2027 Guide Shopware invoices: what Shopware 6 does on its own and what is missing Guide Stripe DATEV export: getting Stripe payments into DATEV as a booking batch Guide Booking Stripe fees in Germany: clearing account, reverse charge and Stripe Technology Europe Ltd Guide Stripe Invoicing in Germany: creating invoices, pricing and e-invoicing Guide Stripe invoices with payment terms as e-invoices: bank transfer to the Stripe IBAN Guide Stripe invoices in Germany: what Stripe Invoicing and Billing do, what is missing, and what applies from 2027 Guide Shipping costs and VAT in Germany: 7%, 19% or tax-exempt? Guide WooCommerce DATEV export: options, file format and account mapping Guide WooCommerce invoices in Germany: plugins, mandatory details, e-invoicing Guide XRechnung vs ZUGFeRD: the XRechnung format explained Guide Payment terms on invoices in Germany: rules, due date calculation and wording Guide ZUGFeRD explained

Rechnungskit is not a tax advisory or law firm. This article explains general principles and does not replace advice from a tax advisor (Steuerberater, § 5 StBerG) or a lawyer (§ 3 RDG). Rechnungskit is built for businesses based in Germany and prepares documents, tax rates and bookings automatically. How your specific case is treated remains your decision, ideally together with your tax advisor or a lawyer.

Every invoice automatically as a valid e-invoice.

Connect your payment provider and we take care of format, validation and archive. Start for free in test mode.

Try it now
de en