Zum Inhalt springen
Rechnungskit
Shopify + Rechnungskit

Shopify invoices as e‑invoices, with DATEV export

Shopify sends order confirmations, but no invoices that meet German law. Rechnungskit automatically turns every order into an e-invoice, which becomes mandatory for business customers in Germany from 2027.

  • Every order becomes an e-invoice (ZUGFeRD), with the shipping date as the date of supply (Leistungsdatum)
  • Shopify Payments payouts split into sales, fees and refunds
  • GoBD archive and DATEV export for your tax advisor, every month
Set up in a few minutes, nothing changes in your theme or checkout. Just looking? View live demo.
Set up in under an hour · free test mode before you go live
The gap

Shopify sells. The invoice is your job.

Shopify gives you orders, but no German bookkeeping. Invoicing under § 14 UStG (the German VAT Act), GoBD archiving, DATEV export and the OSS return stay your job.

Shopify alone
  • Order confirmation instead of an invoice under § 14 UStG
  • Invoice apps usually deliver just a PDF, not an e-invoice
  • Shopify Payments pays out as a lump sum
  • No GoBD archive, no DATEV export
With Rechnungskit
  • E-invoice under EN 16931 (ZUGFeRD) from every order
  • Discounts, shipping costs and gift cards line by line
  • Every payout broken down to the individual fee
  • GoBD archive with checksum, DATEV export at the push of a button
How it works with Shopify

Four steps from payment to booking.

  1. 01
    Connect
    Connect your Shopify store in a few minutes. No code needed.
  2. 02
    Import
    Rechnungskit imports every Shopify order and matches its payment.
  3. 03
    Erzeugen
    Every order 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.
Formats & standards

Every format Shopify doesn't deliver.

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

How the Shopify integration works

Rechnungskit connects two data sources: the payment from your payment provider (Shopify Payments, Stripe, Mollie, PayPal or Unzer (German)) and the order from Shopify (German). One setting matters for automatic matching: in Rechnungskit you choose Shopify as the provider's matching source, so the payment looks for its order in the right place. If your payment app also passes the Shopify order number (for PayPal as invoice_id, for Unzer as the order ID), matching runs on that. For PayPal, Rechnungskit also manages without this field (see below). Rechnungskit shows right on the connection whether the latest payments match with these settings. The order supplies what the payment alone does not know: line items, VAT rates per item, discounts, shipping costs and the shipping date.

Together, they produce a validated e-invoice in ZUGFeRD format with the correct date of supply (Leistungsdatum) (German): shipped goods are invoiced on the shipping date, not the payment date. That sounds like a detail, but it decides whether you have a formally correct invoice or a document your tax advisor (Steuerberater) has to explain at the next tax audit. Customers with a Leitweg-ID, such as public authorities or universities, receive the same invoice as XRechnung 3.0.

Example · one Shopify order
From order to booking, without typing anything
  1. OrderCustomer buys and pays in the storeRechnungskit reads the order and payment through the Shopify API
  2. ShippingE-invoice in ZUGFeRD formatLine items, VAT rates, discounts and shipping costs from the orderDate of supply = shipping date
  3. PayoutLump sum broken downSales, fees and refunds matched individually, ready for the DATEV export
Every invoice is archived in line with GoBD with a checksum. Your tax advisor collects the monthly export through their own access.

How to connect your store

The most direct way to start is in Rechnungskit: create an account, enter your store domain under Connections, Connect and confirm the access in Shopify. Alternatively, install the app from the Shopify App Store and link it to your Rechnungskit account there. Both ways deliver the same data. The app installs nothing in your theme or checkout; it reads order, payment and product data through the Shopify API. Step-by-step setup instructions are in the Shopify help (German).

Every payment method, a matching route

How the invoice is created depends on how your customer pays. Rechnungskit matches online payments through Shopify Payments, PayPal or Klarna (German) automatically. With prepayment by bank transfer (Vorkasse) (German) there is no payment provider, so the order status in Shopify serves as the payment signal. For new connections, Rechnungskit does not invoice point-of-sale sales through Shopify POS by default, because your POS app with TSE is responsible for those.

Three ways to pay in Shopify
When is the invoice created?
Paid online
Shopify Payments, PayPal, Klarna or another connected payment provider
InvoiceAutomatically at shipping
Prepayment (Vorkasse)
The customer transfers to your account, you mark the order as paid in Shopify
InvoiceAt shipping, marked as paid
Shopify POS
Sale at the store till, receipt and TSE come from your POS app
InvoiceNone, the till books it
You change the rule for till sales per Shopify connection, for example if you do not use a separate POS app at the till.

Refunds, returns and store credit

If you refund individual items in Shopify, Rechnungskit carries exactly those line items into the cancellation invoice. The original invoice stays unchanged, as the GoBD require. Which correction route fits which case is explained in the article on invoice correction (German). If you give store credit instead of money, Rechnungskit distinguishes between a return and a goodwill gesture; details are on the page about Shopify Store Credit (German).

Already using an invoice app?

Shopify's own Order Printer app designs printable PDF documents. It does not deliver an e-invoice under EN 16931, a GoBD archive or a DATEV export. If a second invoice app is running alongside Rechnungskit, it is best to deactivate it so no conflicting documents are created. What Shopify can do itself and what will be missing from 2027 is in the guide Creating Shopify invoices (German). Direct comparisons with popular Shopify apps are at Rechnungskit or Order Printer Pro (German), Rechnungskit or Sufio (German) and Rechnungskit or Pathway Solutions (German). When you have to send e-invoices is explained in the article on the e-invoicing mandate.

Discounts, shipping costs and gift cards, correctly assigned

Shopify orders often include discount codes, tiered shipping costs and redeemed gift cards. Rechnungskit takes over this data line by line: discounts reduce the right line item, shipping costs are charged at the right VAT rate (German), including in a mixed cart, and vouchers (German) are treated correctly for VAT. A sold Shopify gift card (German) gets a purchase receipt without VAT, and when it is redeemed it appears on the invoice as a payment.

Matching direct PayPal payments

If you use PayPal directly alongside Shopify Payments, a lot depends on a single field. For some payments, the PayPal field invoice_id contains the order number, and Rechnungskit reads the match straight from it. For the rest, it contains an internal checkout session key with no order number behind it. If you only evaluate PayPal's payment data, you find nothing for these payments.

So Rechnungskit asks the other side: the Shopify order. The PayPal transaction ID is stored there, and it connects order and payment unambiguously, even though PayPal does not know the order number. Matching runs on the transaction ID instead of an estimate from amount and time, which can easily produce an invoice for the wrong order. There is nothing to set up. The existing Shopify connection is enough. Fees and refunds keep running through the PayPal integration (German).

This also works retroactively: payments that were left unmatched so far are picked up the same way.

Payouts that add up

Shopify Payments pays out in bundles. Your bank statement shows one total, and behind it are dozens of sales, fees and refunds. Rechnungskit splits every payout back into its components and matches them to the individual payments, so your books add up.

Rechnungskit checks every line item, not only the final total. If something does not fit, you see a task to resolve instead of a silent rounding, because a difference usually means a transaction is missing, recorded twice or valued incorrectly. Refunds are tricky because Shopify books them under a separate transaction ID that does not match the original payment. They are therefore resolved through the order that Shopify supplies with them. If the order dates from before your Belegstart (the date Rechnungskit takes over invoicing), the line item stays quiet: the transaction belongs in your previous system and there is nothing to resolve.

Example · one week of payouts
Three totals in your account, every line item per payment method in Rechnungskit
On the bank statementWhat is inside? Impossible to tell
Shopify Payments€1,162.47
PayPal€395.79
Klarna€280.07
Broken down in Rechnungskit, per payment methodAdds up
Shopify Payments12 orders
Sales€1,240.00
Fees−€27.63
Refunds−€49.90
Payout€1,162.47
PayPal5 orders
Sales€410.00
Fees−€14.21
Refunds€0.00
Payout€395.79
Klarna3 orders
Sales€289.00
Fees−€8.93
Refunds€0.00
Payout€280.07
Figures are made up. Each payment method runs through its own transit account (Geldtransitkonto), every fee is attached to its payment and goes into the DATEV export as a separate booking.

The same principle applies to PayPal and Klarna. Neither pays out through Shopify Payments; both pay out from their own account. Rechnungskit fetches payments, fees and payouts directly from there as soon as you also connect PayPal (German) and Klarna (German), and keeps each provider on its own transit account.

Fees per payment provider
Where Rechnungskit gets fees and payouts from
Shopify Payments
Fee per transaction and payouts straight from Shopify, without separate credentials
SourceShopify connection
PayPal
Fee per transaction and withdrawals to your bank account from your PayPal account
SourcePayPal connection
Klarna
Payouts with fees per purchase from the Klarna settlements
SourceKlarna connection
Each provider runs through its own transit account. That way you can see which payout comes from whom and where each fee belongs.

EU sales automatically in the OSS return

If you sell through Shopify to other EU countries, Rechnungskit monitors the 10,000-euro delivery threshold and groups your EU sales by country in the quarterly OSS return (German), with the applicable VAT rate per product category and destination country.

Example · an order from Austria
Above the threshold, the destination country's VAT rate applies
  1. OrderA private customer in Vienna buys a coffee grinderYour EU sales to private customers are already above 10,000 euros this year
  2. Invoice20% Austrian VATThe rate comes from the VAT matrix for Austria and the product categoryDestination country rate
  3. Quarter endOSS returnSales per country and VAT rate, ready to file with the BZSt
The 10,000 euros apply to all EU countries combined (§ 3c UStG). Below that, you charge German VAT. More in the article on the OSS procedure (German).

Several markets and legal entities, invoiced separately

If you use Shopify Markets (Shopify Plus) and bill different markets through different legal entities, for example the EU through your German GmbH and Switzerland through a separate Swiss company, you can control the connection per market. When you connect, Rechnungskit detects that your store has several markets and offers a market filter.

This lets you limit a connection to the markets that belong to this legal entity. Either you choose "All except these", for example to ignore the Swiss market here because another system invoices it, or "Only these" for a specific selection. Orders from excluded markets are not invoiced by this connection.

If you want to bill a second market separately in Rechnungskit, connect the same store from a second account or project and filter the other way round there. Each legal entity then gets its own number range and its own documents, all with a single Shopify app.

FAQ

Shopify and e-invoicing: FAQ

Yes, and it does more: invoice apps usually only create a PDF. Rechnungskit creates a real e-invoice under EN 16931, archives it in line with GoBD and delivers the DATEV export as well.
More integrations
The same validated pipeline for your whole stack.

Connect Shopify, e-invoicing done.

Create an account, connect your store, check everything in free test mode. Billing starts when you go live.

Start for free
de en