Skip to content
Rechnungskit
Feature

Subscriptions with a customer portal

With subscriptions you sell recurring services through a shareable subscription link. Rechnungskit sets up the payment mandate via Mollie or Stripe, charges monthly or yearly and issues an e-invoice with the service period for every period. Your customers cancel or withdraw in the customer portal, without logging in.

Why it matters

A subscription creates a new invoice every month or year, and each one needs the right service period, the right VAT and, for prepayments, deferral to the correct period. On top of that come duties toward consumers: the cancel button under § 312k BGB and, since June 19, 2026, the withdrawal button under § 356a BGB must be permanently available and easy to reach (§ 312k para. 2 sentence 4, § 356a para. 1 sentence 3 BGB). The safest way is one without any login. Upgrades and downgrades in the middle of a period are separate cases for VAT as well.

From plan to period invoice

A subscription starts with a product whose sale type is subscription. In it you create one or more plans, each with an interval (monthly or yearly) and a price. Every plan gets its own subscription link like checkout.rechnungskit.de/s/your-slug.

Subscription lifecycle · what each step creates
From sign-up to cancellation
  1. Sign-upSubscription link, "Order with obligation to pay"Payment mandate, for example by card or SEPA direct debit. Button label under § 312j Abs. 3 BGB
  2. Trial, if setNo money, no invoiceOnly the mandate is stored. The first charge follows at the end of the trial
  3. Every periodCharge and e-invoiceWith service period, archive and DATEV export; for a yearly plan with pRAP under § 250 Abs. 2 HGB
  4. Mid-periodMore seats, upgrade or add-onCharged pro rata right away as a supplementary invoice (§ 31 Abs. 1 UStDV); less gives a pro-rata credit note (§ 17 Abs. 1 UStG)
  5. In the first 14 days"Withdraw from contract"Second click "Confirm withdrawal" (§ 356a BGB, period under § 355 Abs. 2 BGB). Rechnungskit cancels the paid invoices, you trigger the refund
  6. Any time"Cancel contract"Second click "Confirm cancellation" (§ 312k BGB). Depending on the plan the subscription ends at the end of the period or immediately with a pro-rata credit note
If you have set up a webhook, Rechnungskit reports activation, charges, changes, cancellation and withdrawal to your system.

The screenshots come from the account of "Stadtnotizen Leipzig", a made-up local newspaper that sells a team subscription with reader seats. Names and addresses are invented. App, checkout and portal are shown in English; product names the merchant entered only in German, and the invoice itself, stay German.

On the plan you set price, gross or net, trial and how cancellation works. With "Quantity selectable" the price applies per unit, here per reader seat, with a minimum and maximum quantity. Under "Use" a plan becomes an add-on to another subscription product.

Rechnungskit, product "Stadtnotizen for Teams", Subscription section: plan "Team, monthly" at €6.00 gross with no trial and plan "Team, yearly" at €60.00 gross. The yearly plan is open for editing: trial 14 days, use "Standalone plan (own subscription link)", cancellation at end of period, quantity selectable from 1 to 50. Price, gross/net and use are locked because subscriptions already run on this plan. Below is the cancellation link konto.rechnungskit.de/subscription

How it works for your customer:

  1. They open the link and choose private individual or business, with a VAT ID for reverse charge if they are a business.
  2. They enter their billing address and choose how to pay: card or SEPA direct debit, via Mollie also PayPal or Apple Pay, depending on what is enabled in your account. For SEPA the page shows the mandate with pre-notification and the right to a refund.
  3. The first payment activates the subscription. Rechnungskit then triggers the recurring charges itself.

In the subscription checkout your customer picks the quantity and adds the add-on with a checkbox. The server recalculates the amount under "Due today", including VAT, on every change.

Subscription checkout on desktop in English: on the left "21,00 € per month" in total. The line "Stadtnotizen for Teams" shows 18,00 € for quantity 3 at 6,00 € each, below it the ticked add-on "Archive access since 2015" with its own amount "+3,00 € per month", subtotal (net) 17,64 €, VAT (19 %, included) 3,36 € and "Due today 21,00 €". On the right the form "Start subscription" with Business selected, company Muster Medien GmbH, billing address in Leipzig and payment method Card or PayPal

On a smartphone the consents sit one below the other. Below them come the key characteristics of the subscription and the button "Order with obligation to pay".

Subscription checkout on a smartphone: payment method Card or PayPal, a checkbox for starting the service early with a note on the right of withdrawal and compensation, a checkbox for the terms, links to terms, cancellation policy, privacy, legal notice and tracking settings. Below that the box "What you are ordering" with "3 × Stadtnotizen for Teams", the merchant's English text "Every issue plus the newsletter for your team, with a separate login for each reader seat.", the add-on "+ Archive access since 2015" and "21,00 € per month. Cancelable anytime, effective at the end of the period.", then the button "Order with obligation to pay"

If the plan has a trial, the checkout shows "Due today 0,00 €" together with the date of the first charge.

Summary in the subscription checkout with a trial: 120,00 € per year, the note "Try 14 days free", the line "Stadtnotizen for Teams" at 0,00 € with "Trial · 14 days free", quantity 2, "Then from 18.10.2026 120,00 € per year" and "Due today 0,00 €". Below it says that after the trial ends on 18.10.2026, 120,00 € will be charged per year

After the first payment, "Manage subscription" on the confirmation page takes the customer straight into the customer portal in the same browser.

Confirmation page after signing up: "Subscription active" with "Thank you. You will find your invoices in your account." and the button "Manage subscription", below it "Back to Stadtnotizen Leipzig" and a note that your account shows your invoices and lets you manage your subscription

Under Subscriptions you see your plans and all subscribers with amount, quantity, add-ons, payment method and next charge.

Rechnungskit, Subscriptions: table of plans with interval, subscribers, MRR, trial, cancellation and price. Plan and product names appear as the merchant entered them, in German. The plan "Team, monatlich" has 5 subscribers and €90.00 MRR, the add-on "Archivzugang ab 2015" 4 subscribers and €12.00 MRR, the plan "Team, jährlich" 0 subscribers plus 1 in trial. Below it the subscribers: monthly subscriptions with 3 × €6.00, most with the archive add-on, two of them "Activating", and a yearly subscription with 2 × €60.00 in status "Trial until 18/10/2026 · ending"

Every charge runs through the same invoice pipeline as a normal order. VAT follows the billing address, the e-invoice carries the service period, and for a prepaid yearly subscription the revenue is deferred over twelve months (§ 250 Abs. 2 HGB). A subscription for a public authority with a Leitweg-ID (the German routing ID for public buyers) creates an XRechnung on every charge.

In the example the invoice carries the service period from 04.10. to 04.11.2026 and two line items, three reader seats and the add-on, each line with its tax rate, here 19% for both.

Rechnungskit, invoice SN-2026-1045 from a subscription: preview of the German-language invoice with service period 04.10.2026 to 04.11.2026, line 1 "Stadtnotizen für Teams" 3 units at 5,04 € net, line 2 "Archivzugang ab 2015" 1 unit at 2,52 € net, VAT 19 % and a total of 21,00 €. On the right ZUGFeRD 2.5 as an archived document and buttons to download PDF and XML

What happens with changes mid-period?

If a customer increases the quantity or moves to a bigger plan, Rechnungskit charges the rest of the period pro rata in a supplementary invoice that refers to the period invoice (§ 31 Abs. 1 UStDV). A reduction or downgrade gives a pro-rata credit note as a reduction of the price (§ 17 Abs. 1 UStG). For quantity changes Rechnungskit always uses the subscription's frozen unit price, never a new price. What this looks like in detail for seats and add-ons is shown in Subscription billing for SaaS.

Your customer changes the quantity in the customer portal. Before confirming, they see the one-time amount for the rest of the period and what they pay every month after that.

Customer portal in English, change quantity: from 3 to 5 units. The text says a one-time €12.00 is charged to the saved payment method for the rest of the period until 04/11/2026 and €33.00 per month after that, followed by the button "Confirm change and pay"

Cancel and withdraw without logging in

Every subscriber has their own page in the customer portal at konto.rechnungskit.de. The personal link to it is in the subscription confirmation email. The page offers "Cancel contract" (§ 312k BGB) and, in the first 14 days, "Withdraw from contract" (§ 356a BGB). Both need a second click to confirm. On withdrawal Rechnungskit cancels the paid invoices and adds a task for you to make the refund. What the law requires is explained in the articles on the cancel button and the withdrawal button.

Customer portal on konto.rechnungskit.de in English: subscription "Stadtnotizen for Teams" (the product's English name) from Stadtnotizen Leipzig, €21.00 per month (3 × €6.00), the add-on "Archive access since 2015" at €3.00 per month and the status "Active · current period until 04/11/2026". Below it the buttons "Change quantity", "Cancel contract" and "Withdraw from contract", each with a short note

Before the withdrawal the portal shows the contract, the name and the email address for the confirmation of receipt.

Customer portal, second step of the withdrawal: the question "Do you want to submit your withdrawal now? It will be binding." with the contract "Stadtnotizen for Teams (Team, monatlich) · Stadtnotizen Leipzig", the name Erika Muster and the email address the receipt goes to, followed by "Confirm withdrawal" and "Cancel"

Once the cancellation is confirmed, it appears on the page with the time it was received and the contract end date. Your customer can print it or save it as a PDF.

Customer portal after cancelling: status "Canceled. Runs until 04/11/2026." and the block "Your cancellation" with the declaration "Cancellation at the end of the current billing period", contract "Stadtnotizen for Teams (Team, monatlich)", provider, "Received 4 October 2026 at 15:27 (German time)", contract end 4 November 2026 and email address, followed by "Print or save confirmation"

Grant access automatically

Rechnungskit reports every step of a subscription by webhook: from activation through successful and failed charges to cancellation, end and withdrawal. Every message carries the full subscription state. For courses on Memberspot and memberships on Ghost you need no webhook of your own, because the native integrations grant and revoke access. How to secure webhooks is explained in Checkout webhooks (in German).

You pick which events an endpoint receives from a checklist under Connections, API.

Rechnungskit, checkout webhooks, events: checkout.paid and checkout.failed plus the subscription events subscription.activated, charged, payment_failed, updated, canceled, ended and withdrawn, each with a short explanation

In detail

  • Collected via Mollie or Stripe, by card or SEPA direct debit with mandate and pre-notification, via Mollie also by PayPal or Apple Pay; prices gross or net, optionally with a free trial
  • Every period is a normal e-invoice with service period, archive, DATEV export and deferral to the correct period (pRAP), sent to the customer by email automatically
  • Customer portal at konto.rechnungskit.de with no login required: cancel button under § 312k and withdrawal under § 356a BGB, each in two steps, plus an invoice overview with PDF and XML
  • Upgrades and quantity increases are charged pro rata right away (supplementary invoice under § 31 UStDV), downgrades and reductions are credited pro rata (reduction of the price under § 17 UStG)
  • Quantity selectable per plan and changeable later; add-ons run on the same invoice with the same charge
  • Your business is always the contracting party, your legal texts are linked, and confirmations go out in your name
  • Seven subscription webhooks from activation to withdrawal, so your system can grant and revoke access itself
  • Existing Stripe Billing subscriptions can be taken over without the customer signing up again, using the existing payment mandate

Legal basis

Frequently asked questions

No. Rechnungskit collects through your existing Stripe account or through Mollie and triggers the recurring charges itself. If you keep using Stripe Billing, Rechnungskit reads the paid Stripe invoices instead and creates the e-invoices from them.

Recent changes

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.

Try it with your real data in the free test mode.

Connect your shop and payment provider and Rechnungskit runs alongside. Billing only starts at go-live.

Try it now
de en