The trigger: what “paid” really means in Shopify
The usual trigger, and the right one for the vast majority of shops, is the incoming payment. Shopify reports via a webhook that an order has been paid, and at that moment the invoice is created.
Sounds clear-cut, but it isn't always. “Paid” depends on the payment method, and the differences are bigger than you'd think:
| Payment method | When Shopify reports “paid” | What that means for the invoice |
|---|---|---|
| Credit card, PayPal, Apple Pay | Immediately after the purchase | Invoice is created within seconds |
| Sofortüberweisung, Klarna | Immediately after the provider confirms | Same as above |
| Prepayment (Vorkasse), bank transfer | Only once you manually mark the payment as received | Invoice is created with a delay – sometimes days later |
| Pay on invoice, public authorities | Only after payment arrives, i.e. after delivery | But the customer needs the invoice beforehand |
The last row is the case where payment-only automation fails. If you deliver on invoice – typical with public authorities and in B2B – you have to send the document before anyone pays at all. For this case Belegio has a dedicated switch that also transfers unpaid orders. Without it, the automation correctly waits for money that only arrives later.
The sender: why the email should come from your domain
An invoice that comes from an unfamiliar address looks like a phishing attempt to the customer – and ends up in spam more often. The reason is technical: receiving mail servers use SPF and DKIM to check whether the sending server is allowed to speak for the sender domain. If that doesn't match, the delivery rate drops.
So you have two options, and they differ noticeably:
- Via the Belegio sender: nothing to set up, ready to use immediately. The customer sees an unfamiliar sender domain.
- Via your own email account: you enter the login details of your mailbox. The invoice comes from your domain, lands in your Sent folder and the customer can reply to it.
The second option is the better one as soon as your shop is more than a hobby. Belegio checks the login details you entered and only switches sending over once the check has succeeded – an invoice that never arrives because of a typo in the password would be worse than no automation at all. If you change the password later, the check status is reset and you confirm again.
The language: what the document is based on
If you sell across borders, the invoice should arrive in the customer's language. Belegio creates documents in six languages – German, English, French, Italian, Spanish and Dutch – and picks one based on the order. The legal notice moves with it: on a French invoice, the note about the tax exemption is in French, not in German.
The way back: what happens with refunds
Automatic sending is one half. The other is the case where the money goes back. An issued invoice must not simply disappear then: under § 147 AO (German Fiscal Code) invoices must be kept for ten years, and the GoBD (German principles for proper electronic bookkeeping) prohibit changing a finalised document afterwards. The right way is a credit note that offsets the invoice.
Belegio can do this on its own if you want: when you trigger a refund in Shopify, the matching credit note is created automatically – also for partial refunds, then for exactly the refunded amount. The feature is deliberately off by default; you switch it on in the settings. If you'd rather check your credit notes yourself, leave it off.
When something goes wrong after all
Automation has one drawback: you don't notice when it stops. An expired email password, a full inbox on the customer's side, an order without an email address – all of these mean an invoice is created but doesn't arrive.
That's why Belegio logs what the automation did last and what made it fail, and shows this on the overview – with concrete examples, not just as an error counter. In addition, the app alerts you when invoices are created that show no VAT at all despite standard taxation (Regelbesteuerung): that is almost always a gap in the Shopify tax settings, and without an alert nobody notices it, because the document looks clean.
Three dates that are often confused
An invoice carries several dates, and they mean different things. If you automate, you should know the difference, because the automation fills them in differently.
| Date | What it refers to | Where it comes from |
|---|---|---|
| Invoice date | The day the invoice was issued | The moment the automation kicks in |
| Date of delivery or service | When the goods were delivered or the service was performed | Order date or shipping date |
| Payment date | When the money arrived | Shopify's payment notification |
The date of delivery or service is not optional: § 14 (4) UStG (German VAT Act) requires the time of delivery or service as a separate mandatory detail. If it is missing, the invoice is incomplete, even if everything else is correct. For an order that is paid and shipped on the same day, all three dates coincide – with prepayment they are often days apart.
When Shopify doesn't pass on any tax at all
A real-world case that nobody notices without an alert: a shop under standard taxation sold goods worth just under 480 euros to a German private customer – and the invoice showed 0.00 euros of VAT. The cause wasn't the invoicing app but the Shopify tax settings: no rate had been set up for Germany at all.
The tricky part is that every link in the chain works correctly. Shopify passes on no tax, the app takes that value over unchanged, and the finished document looks clean. It is still wrong. That's why Belegio checks whether an invoice is created without VAT despite standard taxation and reports such cases on the overview – with the affected invoice numbers, so you know where to look. Small businesses under the small-business scheme (Kleinunternehmer) are excluded, since 0 percent is the norm for them.
Orders that change afterwards
Not every order stays the way it was. An item is returned, a line item is added, the customer cancels part of the order. For the automation, a simple rule then applies: an issued invoice is not touched.
- Partial refund: a credit note for the refunded amount is created, the original invoice stays in place.
- Full cancellation: a credit note offsets the invoice, which gets the status cancelled.
- Correction needed: after the cancellation, a corrected invoice with the next number in the sequence can be issued for the same order – based on the current order data, including any changes made in the meantime.
That seems more cumbersome than a quick edit, but it is the only way that fits a number range without gaps.
Setup in four steps
- Install Belegio from the Shopify App Store.
- Complete your company details – without them, creation stays locked, otherwise a placeholder would appear as the sender on the document.
- Under “E-Mail-Zugang” (email access), choose the sending method: your own email account or the Belegio sender.
- Activate automatic creation on payment – and, if needed, the automatic credit note for refunds as well.
From then on it runs without you. You can still print at any time, individually or in bulk.
What reaches the customer
The automation doesn't send a bare file. The customer receives an email with a subject line and a short text, with the invoice attached as a PDF. Subject and text can be customised, including placeholders for invoice number, amount and order number – so the subject line already says what it's about, and the email isn't read as advertising.
If you want, the invoice itself carries a GiroCode: a QR code following the European standard EPC069-12 that the customer scans with their banking app. Recipient, IBAN, amount and payment reference are stored in it, so nobody has to type in an IBAN. This works exclusively for euro amounts – the standard doesn't provide for any other currency. On an invoice in francs or pounds, the code is therefore left out instead of printing an unusable one.
What the document looks like is up to you via the layout.
Limits you should know about
- Shopify webhooks are delivered at least once, in rare cases twice. Belegio recognises repeats and doesn't create a second invoice for the same order.
- If an order changes after invoicing, no new invoice is created. Corrections go through a credit note and – if necessary – a corrected reissue.
- Belegio doesn't replace accounting. It creates and sends the customer documents; for handing over to your accounting there is the tax advisor export as CSV and PDF package.
Note: This article is a general overview and does not replace tax advice. Legal status of the regulations mentioned: August 2026.
If you're just starting out and first want to know which options exist at all, start here:
