For Craft Commerce 5 · Germany
The file your Steuerberater asked for
Your tax practice wants a Buchungsstapel — a DATEV-Format CSV, one line per booking, that imports straight into DATEV Rechnungswesen. Datevz writes it from your Commerce orders, with the German VAT already worked out, and shows you every posting before the file exists.
One order, one posting
€100 of goods at 19%, as it lands in the file. Gross against the debtor in Soll, revenue in Gegenkonto, Belegdatum as TTMM. The direction lives in the Soll/Haben column — Umsatz is never signed, because a negative one is a rejected import.
Umsatz S/H WKZ Konto Gegenkonto BU Belegdatum Belegfeld 1
119,00 "S" EUR 1400 8400 1503 "RE-1042"
# The revenue account is an Automatikkonto — it carries its own tax
# rate, so the BU-Schlüssel column stays empty. Passing a BU key
# alongside one is a conflict, not extra safety.
What it does
The whole job, from a completed order to a file the practice can import — and a refusal, by name, when something would import wrong.
Preview before the file exists
See every posting a period would produce, grouped by order, with each problem sitting under the order that caused it.
- The preview and the export run the same code
- No second implementation that could drift
German VAT, decided per order
Domestic, EU distance sale under One Stop Shop, reverse charge on a valid VAT ID, or an export outside the EU — read from where the goods went and who bought them.
- VAT IDs checked for all 27 member states
- Never calls VIES — no outbound requests at all
SKR03 and SKR04 presets
Fill the whole chart of accounts from one button, then change whatever your practice does differently. A preset never overwrites a number you have already set.
Reconciles to the cent
Everything is done in integer cents, and no batch is written until each order's postings add back up to its total. A weighted split gives back exactly what it was given.
- A cent of inclusive-tax rounding can go to a rounding account
- Anything larger stops the export and names the order
Debtors, collective or personal
Book every receivable to one account, or allocate a personal account per customer from a range you choose — keyed to the customer and falling back to their email, so a guest who later registers keeps one number.
- Numbers are allocated once and never reused
- Export them as a Debitoren/Kreditoren master-data file
Payments, fees and refunds
Each successful transaction books against the money account for its gateway. A refund puts the money back and reverses the revenue the way a credit note does — posting only the money leaves the debtor account out of balance.
- Gateway fees only when the gateway recorded one — nothing estimated
A batch archive you can prove
Every file is stored whole with a sha256 of the delivered bytes. Months later you can show that the copy the practice holds is the copy Datevz produced.
- An exported order stays out of the next batch
- Delete a batch and its orders are released again
Runs on a cron, fails loudly
Export a month from the command line, write the file where your backups are, and let a dry run exit non-zero when it finds problems — so a scheduled batch tells you instead of mailing a broken file.
Refuses, rather than guesses
A DATEV import is not a good place to find out about a mapping mistake. Each of these stops the export and names the order — and still shows you every other order in the batch.
ERROR The orders fall in 2 different fiscal years. Export one year at a time.
→ Belegdatum carries only a day and a month; the year comes from the
header. Half the batch would book into the wrong year, silently.
ERROR [RE-1042] No account is mapped for Kaffeebohnen at 7%.
ERROR [RE-1088] The postings come to 118,99 but the order total is 119,00.
WARNING [RE-1103] Booked as Export, but the order carries 19,00 of tax.
→ Not Datevz's to fix. Your tax zones and the destination disagree.
Questions
No, and that is deliberate. DATEVconnect and the DATEV Unternehmen online APIs are partner-gated — they need a contract most shops cannot get. The Buchungsstapel is the file every practice can already import, so that is what Datevz writes.
EXTF, header version 700, format category 21 (Buchungsstapel), format version 13 — 125 columns — with version 12 (121 columns) available for older releases. Debtor master data is category 16 (Debitoren/Kreditoren), format version 5.
No, but your Steuerberater does. Datevz ships SKR03 and SKR04 presets so you are not starting from a blank form, and everything is editable because the chart of accounts belongs to the practice. Send one test batch before you rely on the monthly rhythm.
Both. An EU order carrying a valid VAT ID for its own country books as a tax-free intra-community supply, with the customer's VAT ID written into the EU columns. EU distance sales can book to a revenue account you map per destination country. OSS is off by default, because a shop that has not registered for it should still be charging home VAT.
No. It checks the syntax for all 27 member states, but never calls out. A checkout must not depend on a foreign service being up, and by the time you are booking the order, whether the number was valid at the time of sale is a matter for the invoice — not the export.
Yes. The export is a query over completed orders in a date range; there is no marker Datevz needs to have written at checkout. Just watch the fiscal-year rule — one year per batch.
They post the money back and reverse the revenue in the same proportions it was booked, off the same accounts, with the VAT coming back off too. You can turn the credit note off if your practice handles it separately — but posting only the money leaves the debtor account permanently out of balance.
No, and it says so rather than approximating. A Buchungsstapel declares one currency in its header; booking another needs a Basis-Umsatz and an exchange rate that only you can supply. An order in the wrong currency is refused. Multiple stores are fine — filter the export by store.
No. Datevz makes no outbound requests at all. The file is generated on your server and downloaded by you.
$99, one edition, with everything in it — there is no free tier and no feature gate. A shop that needs a DATEV file needs OSS, mapping rules, debtor accounts and payment postings too. Updates are $79 a year; the plugin keeps working when that lapses.
Hand your practice the file they asked for
$99, one edition, everything in it. Renewal is $79 a year for updates, and the plugin keeps working when it lapses.