Attesta answers about five questions when you install it, then writes the invoice for every paid order on its own. This guide walks through each screen and explains what the app decides for you.
Attesta watches your paid Shopify orders. When one is paid it picks the German tax treatment that fits the buyer, takes the next number in your sequence, renders your branded invoice, embeds the machine readable XML inside it, files the result in a ten-year archive and emails it. You do not open the order.
What it produces is a ZUGFeRD 2.2 invoice: a PDF/A-3 a person can read, with the EN 16931 CII XML attached inside the same file. The XML is the part that counts legally, and it is the part a plain PDF has never had. For public-sector buyers with a Leitweg-ID, Attesta emits XRechnung 3.0 instead.
The app is built for Germany. Other EU markets are designed but not active yet, so a shop selling from outside Germany is not covered today.
Installing from the App Store opens a short wizard. It runs once and asks about five questions, then the app is working.
The wizard is deliberately short. Attesta asks about five questions because the rest is either in your shop already or fixed by the law.
Home answers one question: is this shop compliant right now. The status card at the top says either that everything is compliant or that something needs attention, and lists the four checks behind that answer, which are ZUGFeRD and XRechnung generation, gap-free numbering, VAT logic and Reverse-Charge, and the ten-year GoBD archive.
Below it sits a countdown to January 2027, counters for invoices this month, Stornorechnungen and orders waiting on you, a setup checklist for the things worth finishing (logo, IBAN and payment details, DATEV), and the documents issued most recently. Every number comes from your real data.
On the free plan the page also shows how many invoices you have issued this month against the free allowance.

Rechnungen lists every document Attesta has issued, newest first: the number and whether it is a Rechnung or a Stornorechnung, the order behind it, the buyer, the tax treatment that was applied, its status, and the PDF and XML. You can filter by type and search. The list reads from a flat ledger, so it opens at once however many invoices sit behind it, and Export pulls the whole ledger down as a GoBD ZIP.

Opening a document shows the legal record in a readable form:
Download saves the real file, the same bytes that were archived, not a fresh render. There is no Create button on this page, because every document comes from a paid order.

When an order cannot be invoiced, Attesta records the problem rather than failing quietly. The open count shows on Home and the list lives under Probleme, where you can fix the cause and retry the order.
Attesta decides the treatment per order, from the buyer, not from a setting you have to remember to change:
The treatment chooses both the legal notice printed on the invoice and the tax codes written into the XML, and it is shown on every row of the invoice list so you can see what was applied without opening the document.
Reverse-Charge only holds up if the buyer's VAT ID is real, so Attesta collects it before the order is paid. There are three places a business buyer can enter it: a block in checkout, a block in the cart, and their customer account profile.
The ID is checked against VIES, the EU commission's VAT number service. Attesta stores the consultation it got back and shows it on the invoice detail page, so if the treatment is ever questioned you have the check on file with the document rather than a claim that you did it.

A German invoice is never edited after it is issued. It is reversed by a credit note, a Stornorechnung, and Attesta writes those for you.

The Rechnungsvorlage screen is where the invoice gets your brand instead of ours. It has three regions.
Nothing here can change a number. The design controls presentation only, and every layout in the catalog renders all the mandatory EN 16931 fields.

Five cards, each opening its own editor.
At the bottom is a country section that reflects where you sell. For Germany it says that no transmission network is required, because a German invoice reaches the buyer by email.
Every document Attesta issues is stored with its XML and a SHA-256 hash that chains to the document before it, along with a snapshot of the template it was rendered with. That is what makes the archive tamper-evident, and what a Betriebsprüfer is looking for when GoBD asks you to keep the record complete for ten years.
Three exports come out of it:
The GoBD ZIP is available on every plan, including Free, because getting your own records out is not something to charge for. The DATEV batch needs the Accounting plan.


Everything the law requires is in every paid plan. Plans differ by volume and by accounting workflow, never by whether your invoices are legally valid.
Billing runs through Shopify and appears on your normal Shopify invoice, in USD. A year costs ten months, so annual billing saves 16.67%. You can change plans or cancel from inside the app at any time, and if you cancel you land back on Free, where invoicing keeps working: the free tier still issues legally valid e-invoices.
Is a PDF invoice not enough? Not under the German mandate. From January 2027 a B2B invoice has to carry structured data a machine can read. ZUGFeRD solves it by putting that data inside the PDF, so the same file works for your buyer and for their software.
I already have an invoice number series. Will it restart? No. In onboarding, or later under invoice rules, enter the last number you issued and Attesta continues the sequence from there. Numbering stays gap-free across the whole ledger.
My shop is not in Germany. Attesta is Germany-first today. Other markets change the tax-ID fields, the currency, the invoice format and how the invoice is transmitted, and each one has to be built before it is offered. They are on the roadmap, not in the app.
Will it slow my storefront down? No. Attesta works behind Shopify webhooks and touches nothing a shopper loads. An invoice normally appears within a minute of the order being paid.
My buyer never got the invoice email. Check the reply-to address and message under Delivery in Settings, then open the document: if it is archived, the file exists and you can send it yourself with Download while you sort the address out.
What happens to my data if I uninstall? Access is revoked at once and Shopify then asks us to erase the shop's data. Export the GoBD ZIP first: German retention rules are your obligation, and they run for ten years whether or not the app is still installed. See the Privacy Policy.