What the law requires
Every commercial online retailer in Germany has to document their business transactions properly — regardless of legal form, and regardless of whether the small-business rule applies.
Many underestimate the effort behind that. Working manually, several hours a week quickly go into invoices, matching payments and preparing handovers for the tax adviser.
- Every order is a business transaction that has to be documented.
- Records must be retained — eight years for invoices and accounting records since 2025, previously ten.
- Income and expenses have to be recorded completely and promptly.
- The records must be traceable, tamper-evident and verifiable by a third party.
GoBD: what belongs on an invoice
The GoBD require invoices to carry certain mandatory details and to be archived in a tamper-evident form. Shopify by default produces order confirmations, not invoices — a difference that matters for tax purposes.
The invoice number is where this most often goes wrong. It has to be sequential and unique, including across different sales channels. A common format is `RE-2026-0001`. The Shopify order number does not meet this requirement.
- Full name and address of seller and buyer
- Tax number or VAT ID of the seller
- Sequential, unique invoice number
- Date of issue and date of supply
- Quantity and description of the goods supplied
- Net amount, tax rate, tax amount and gross amount
- Where tax is not charged: the relevant note, such as Section 19 or the reverse-charge mechanism
VAT: standard taxation, small business, OSS
VAT is the most complex topic for most merchants. Which rules apply depends on the business model, the turnover and the delivery country.
Under standard taxation you show 19 percent on every invoice, 7 percent on reduced-rate goods, file a monthly or quarterly return and remit the tax collected.
Under the small-business rule in Section 19 you charge no VAT and cannot deduct input tax. Details are in Shopify and the small-business rule.
Selling to EU consumers above the threshold brings in the OSS scheme: the sale is taxed at the destination country's rate and reported centrally. Those sales have to be recorded separately by destination country.
Shopify Payments: why the bank account does not match the books
Shopify Payments bundles several orders into one payout and deducts fees, refunds and chargebacks. What lands in the bank account is a net figure that matches no single order.
The most common mistake here is booking the payout as revenue. The correct treatment: each order individually at the gross amount as revenue, the fee separately as an expense, refunds as cancellations or credit notes.
Under the German SKR03 chart of accounts the fees belong on account 4970, under SKR04 on 6855. Which account is right in your case is for your tax adviser to confirm.
When automation starts to pay off
Manual bookkeeping works — until it doesn't. At five orders a day the effort is manageable. At thirty the picture changes.
Create the invoice, check the customer data, assign the tax rate, book the payment: done by hand that takes three to five minutes per order. At thirty orders a day that is one and a half to two and a half hours — every day.
Worth being clear about: automated accounting does not replace your tax adviser. It replaces manual data entry. The tax judgement stays where it is.
Three ways to connect Shopify
An app is not the only route, and depending on your size it is not necessarily the best one.
- Manual export: download orders as CSV and import them into your accounting software. Costs nothing but time, does not scale, and is error-prone on tax cases.
- Your own API integration: full control, in exchange for development and maintenance. Worth it for special requirements no standard app covers.
- An off-the-shelf app: continuously turns orders into usable accounting documents. The default for shops without special logic.
What an integration should do
Not every app with „accounting“ in its name does the same thing. These points decide it in practice:
- Automatic invoice creation with its own sequential number range — not the Shopify order number.
- Tax rate detection for 19 and 7 percent, intra-Community supplies, non-EU and OSS cases.
- Traceable assignment: which tax case was chosen and why has to remain visible.
- A write-back to the order so Shopify shows whether a document exists and under which number.
- A clean approach to refunds — and the honesty to say what the app cannot do there.
Common mistakes
Recurring in practice:
- Booking payout amounts as revenue instead of the gross amount per order.
- Not running an own invoice number range and using the Shopify order number instead.
- Not recording OSS sales separately by destination country.
- Letting fees and refunds disappear inside the payout figure instead of recording them individually.
- Leaving invoices as PDFs in the shop backend without tamper-evident archiving.
Checklist
Before launch, or when reviewing an existing setup:
- Accounting software chosen and agreed with your tax adviser
- Tax model settled: standard taxation or small-business rule
- Invoice template set up with all mandatory details
- Own sequential invoice number range defined
- OSS participation checked and registered where needed
- Account for payment fees defined
- Archiving settled: where documents live and for how long
