Skip to content
Rechnungskit
Stripe + Rechnungskit

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
Set up in under an hour · free test mode before you go live
The gap

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.

Stripe alone
  • 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
With Rechnungskit
  • 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.

Schritt 1:Stripe
Payment or subscription billing
  • Checkout, Payment Link or API
  • Stripe Billing (subscriptions)
  • Invoice with payment terms
Webhook, set up automatically
Schritt 2:Rechnungskit
German e-invoice
  • Your own number range
  • ZUGFeRD 2.5, validated against EN 16931
  • Refund becomes a cancellation invoice
DATEV export
DATEV export
Schritt 3:DATEV
Monthly booking batch
  • Revenue by VAT rate
  • Stripe fees as a separate expense
  • Payouts through the transit account
Filed in parallel
  • GoBD archive with checksum
  • XRechnung for a Leitweg-ID
How it works with Stripe

Four steps from payment to booking.

  1. 01
    Connect
    Connect your Stripe account in a few minutes. No code needed.
  2. 02
    Import
    Rechnungskit imports every Stripe payment and matches it to its order. Without a reference it lands with you for review.
  3. 03
    Erzeugen
    Every payment becomes a validated e-invoice under EN 16931.
  4. 04
    Archive
    The invoice is archived to GoBD standards and is ready for the DATEV export.
Step-by-step guide Connect Stripe Setup step by step, common snags and detailed questions.
Formats & standards

Every format Stripe doesn't deliver.

ZUGFeRD 2.5 Germany live
XRechnung 3.0 Germany (public sector clients) live
EN 16931 XML EU (OSS) live

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.

Three ways to get paid in Stripe
When Rechnungskit issues the e-invoice
One-time payment
Checkout, Payment Link or API: the customer pays immediately
Invoice createdat payment
Subscription (Stripe Billing)
Every subscription invoice with line items, VAT rates and service period
Invoice createdper period
Payment terms
Stripe invoice your customer pays later by bank transfer to their Stripe IBAN (a switch in the document rules)
Invoice createdwith the Stripe invoice
All three cases run through the same Stripe connection. Details: Stripe Billing and Stripe invoice with payment terms.

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.

Stripe Dashboard: the Developers, API keys area with the highlighted "Create restricted key" button in the "Restricted keys" section

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.

Stripe setting: Customer emails, the "Send finalized invoices and credit notes to customers" switch is turned off

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.

FAQ

Stripe and e-invoicing: FAQ

You create a restricted key for Rechnungskit in Stripe and add it in Rechnungskit under Connections. Rechnungskit sets up the webhook itself. It takes a few minutes. Every click and the list of required permissions are in the guide: Connect Stripe.
More integrations
The same validated pipeline for your whole stack.

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
de en