Stripe e‑invoicing for Germany: an e‑invoice from every payment
Stripe collects payments reliably, but it does not create e-invoices under EN 16931, and for B2B invoices in Germany these become mandatory step by step from 2027. Rechnungskit automatically turns every Stripe payment and subscription into a finished German invoice.
- ZUGFeRD invoice with your own number range, validated against EN 16931
- GoBD archive with checksum, refunds become cancellation invoices
- DATEV export with revenue, Stripe fees and payouts
Stripe takes the payment. The invoice is your job.
From 2027, businesses in Germany with more than 800,000 euros in prior-year revenue must send invoices to domestic business customers as e-invoices, and from 2028 essentially all businesses must. Stripe itself states that Billing and Invoicing do not create e-invoices directly. Archiving and bookkeeping are left open as well. Rechnungskit takes over this part while your payments keep running through Stripe.
- Invoicing and Billing create PDFs, not e-invoices under EN 16931
- No GoBD claim for the invoices, invoice links expire
- Payouts as a lump sum minus fees, with no booking entries
- No DATEV export, only through third parties
- ZUGFeRD 2.5 under EN 16931, XRechnung automatically for customers with a Leitweg-ID
- Your own sequential number range, a cancellation invoice from every Stripe refund
- GoBD archive, immutable and with a SHA-256 checksum
- Every payout split into payments, refunds and fees, as a DATEV batch
From the Stripe payment to the booking at your tax advisor
Stripe stays your payment provider. Rechnungskit reads every payment via webhook, issues the invoice and hands over the bookings.
- Checkout, Payment Link or API
- Stripe Billing (subscriptions)
- Invoice with payment terms
- Your own number range
- ZUGFeRD 2.5, validated against EN 16931
- Refund becomes a cancellation invoice
- Revenue by VAT rate
- Stripe fees as a separate expense
- Payouts through the transit account
- GoBD archive with checksum
- XRechnung for a Leitweg-ID
Four steps from payment to booking.
- 01ConnectConnect your Stripe account in a few minutes. No code needed.
- 02ImportRechnungskit imports every Stripe payment and matches it to its order. Without a reference it lands with you for review.
- 03ErzeugenEvery payment becomes a validated e-invoice under EN 16931.
- 04ArchiveThe invoice is archived to GoBD standards and is ready for the DATEV export.
Every format Stripe doesn't deliver.
Why Stripe alone is not enough for German invoices
Stripe is excellent at processing payments. The invoice afterwards, though, is a PDF or a receipt, and Stripe itself states that Billing and Invoicing do not create e-invoices directly. For invoices to businesses in Germany, the e-invoice under EN 16931 is mandatory (§ 14 (2) sentence 2 no. 1 UStG), with transition periods under § 27 (38) UStG: from 2027 above 800,000 euros in prior-year revenue, from 2028 for everyone. On top of that you need a GoBD-compliant archive and bookings your tax advisor (Steuerberater) can take over without rework. What Stripe Invoicing and Billing can do and what is missing is covered in Stripe invoices. If you issue individual invoices in Stripe, the guide Stripe Invoicing walks you through creating them, the costs and the settings for German invoices.
This is where Rechnungskit comes in. As soon as a Stripe payment arrives, Rechnungskit matches it to the right order, creates a ZUGFeRD invoice under EN 16931 and stores it in line with GoBD. Customers with a Leitweg-ID, such as public authorities or universities, receive the same invoice as XRechnung 3.0. The DATEV export hands revenue, fees and payouts to your tax advisor; how the bookings behind it look is explained in Exporting Stripe to DATEV.
Already using a partner app from the Stripe App Marketplace or a converter like Fizard? The comparison between Stripe and Rechnungskit shows cell by cell what Stripe covers itself, and the comparison with Fizard shows how converting the Stripe invoice differs from issuing your own. For SaaS providers, e-invoicing for SaaS sums up the whole process.
How to connect Stripe
To connect, you need a restricted Stripe key from your live account, no programming required. You create it in the Stripe Dashboard under Developers, API keys, give it the permissions Rechnungskit needs and enter it in Rechnungskit under Connections, Connect. Rechnungskit then sets up the webhook itself. Rechnungskit mostly just reads. The key needs write permissions for the webhook setup and, if you use them, for Stripe subscriptions, invoices with payment terms and Rechnungskit Checkout via Stripe.

Which permission is needed for what is listed in full, and kept current, in the guide Connect Stripe, together with all screenshots and why a test key never sees your real payments.
Invoices with payment terms: the customer pays later
If you send invoices with payment terms in Stripe, Rechnungskit can create the e-invoice as soon as the invoice is sent, with your customer's virtual Stripe IBAN and the Stripe number as the payment reference. Stripe matches the bank transfer, and Rechnungskit closes the open item. The feature is a switch in the document rules and also needs the Funding Instructions permission (Write). Everything about it is in Stripe invoice with payment terms.
Payments and subscriptions (Stripe Billing): one connection, two cases
However you get paid in Stripe, Rechnungskit turns it into the right invoice over the same connection:
- Regular payments (Checkout, Payment Link, API): Rechnungskit matches the payment to the right order and creates the e-invoice from it.
- Stripe Billing (subscriptions): Here Stripe issues the subscription invoice itself, with line items, VAT rates and service period. Rechnungskit reads exactly this data and turns it into a complete ZUGFeRD invoice with your number, instead of a bare payment without details.
The service period goes straight from Stripe onto the invoice and into the e-invoice. If it extends beyond the invoice month, as with an annual subscription, the DATEV export books the deferred revenue (pRAP under § 250 (2) HGB) automatically, monthly or to the day across the months and across the year end. This requires that you use accrual accounting and that the pRAP account is set up with your tax advisor. With EÜR (cash-basis accounting), income counts when received (§ 11 (1) EStG), so there is no deferral, and the period appears on the invoice for information only.
For Stripe subscriptions: turn off Stripe's invoice emails
Stripe automatically creates its own invoice for every subscription payment. You cannot turn that off, but you can turn off sending it to your customers, and you need to: the Rechnungskit invoice is the one that counts for tax purposes. If Stripe keeps sending, your customers get two invoices for the same purchase.
To do this, go to Billing in the Stripe Dashboard and turn off the customer emails: switch off "Send finalized invoices and credit notes to customers" and, under customer emails, the receipt for successful payments. Payment collection and webhooks are not affected.

After you connect, Rechnungskit reminds you of this step right on the Stripe connection, with a direct link to the right place in the Stripe Dashboard. Once you have turned off the emails, you confirm it there once and the notice disappears.
Stripe and e-invoicing: FAQ
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.
Connect Stripe, e-invoicing done.
Create an account, connect your payment provider, check everything in free test mode. Billing starts when you go live.
Try it now