Migrating from sevDesk
Migrating from sevDesk
One-time import of your sevDesk history — contacts, issued invoices, expenses (Belege) and quotes (Angebote) — so you can cancel the subscription without losing access to your records. Wizard: Settings → Accounting → sevDesk-Import (
/settings/accounting/sevdesk-import).
Before you cancel sevDesk — export checklist
Do all of this while your sevDesk account is still active:
- Export the three CSVs from sevDesk: Rechnungen, Kontakte, and Belege. These are available on every plan.
- Export the "Alle Angebote" list as a PDF. Quotes are the one record type sevDesk does not offer as a CSV — the only export is the combined list. Print or export that list to PDF before you cancel; there is no other way to get your quote history out, and the wizard imports it from that file.
- Download your document PDFs. The CSV export carries header-level data only. Download the per-document PDFs too — the wizard's final step attaches them to the imported records (see Attaching your document PDFs below). GoBD requires those documents to stay readable for 10 years, and sevDesk access ends with the subscription.
- (Optional but recommended) Export sevDesk's DATEV file or per-year EÜR figures — the wizard shows per-year gross totals at the preview step so you can cross-check the import to the cent.
What the import does
| File | Result |
|---|---|
| Rechnungen | Invoice records with the original sevDesk number kept verbatim, real status (paid / sent / cancelled), invoice + payment dates, and gross/net/VAT totals as one summary line item per invoice. sevDesk's export carries no status column, so status is derived from what it does record: a payment date means paid, a negative total is a Storno, an invoice a Storno refers to is marked cancelled, and an outstanding amount means still open. Drafts are skipped (no number was burned). Teilbezahlt rows keep their partial status when the export carries an outstanding amount; without one they import as sent with a warning. |
| Kontakte | Contacts created, or merged into existing contacts (matched by customer number, then email, then name) filling only fields that are empty locally — your local data is never overwritten. Postal address and USt-IdNr. come across too. sevDesk exports one row for the company and one per contact person: each person is kept as their own contact with the company recorded alongside, so a shared office mailbox no longer merges colleagues into one another. |
| Angebote (PDF, not CSV) | Quote records with the original number kept verbatim, date, status, customer and the printed net total. The aggregate list is all sevDesk gives, so an imported quote is a faithful transcription of one summary row, not a reconstruction: it carries no line items, no tax breakdown and no customer number, and none of those is invented to fill the gap. Identity is the number and date pair, because one number legitimately recurs — AN-1011 appears three times in a real export, on three dates, for three customers. sevDesk's printed status is kept verbatim beside the mapped one; note Berechnet means invoiced, so it maps to converted to invoice, not merely accepted. Imported quotes never touch your own quote-number counter. |
| Belege | Expense records (date, gross, VAT rate, vendor, receipt number) with an interactive category-mapping step — your sevDesk category names map onto local expense categories, and your choices are remembered for re-runs. Multi-position Belege are grouped under their document row. Income-Belege files are not supported in v1. |
What imported documents can and cannot do
Imported documents are terminal history (GoBD): they show an "Importiert" chip, open for view and PDF download only, and are excluded from editing, finalizing, Storno, Rechnungskorrektur, dunning, and recurring schedules. They never touch your RE-/RK- number counters, so your own gap-free numbering continues unaffected.
Tax flows see imported history only through its real historical dates: a 2024-paid invoice contributes to 2024 figures, never to your current UStVA/EÜR period. Note that the in-app EÜR form renders tax years 2025+ — for earlier, already-filed years your sevDesk PDFs remain the reference (that's part of why the export checklist above matters).
Import the files in this order
Kontakte first, then Rechnungen, then Belege. sevDesk's invoice export does not contain a customer
name at all — it identifies the recipient only by the customer number (Empfänger-KdNr) plus one
run-together address line. The import resolves that number against your contacts, so importing
Kontakte first is what gives every invoice a real customer with its billing address. If you import
Rechnungen first, each row falls back to the address line, and the preview warns
customer-unresolved for every one of them.
Running the wizard
- Pick file — drop one CSV. The type (Rechnungen/Kontakte/Belege) is auto-detected; you can override it. Past import batches are listed here with an Undo button each. This step also carries the separate Import quote history (Angebote PDF) button — quotes are not part of the CSV exports, so they run their own short flow (see Importing quotes below) rather than appearing as a fourth detected type.
- Mapping — the sevDesk column preset is pre-applied and editable, so export-format drift between sevDesk versions is a dropdown fix, not a blocker. For Belege, confirm the expense/income direction.
- Categories (Belege only) — map sevDesk categories to your local ones; unmapped categories fall back to the standard "unmapped" category with a warning.
- Preview — dry run showing row counts, duplicates that will be skipped, warnings, and per-year gross totals for the sevDesk cross-check. Nothing is written yet.
- Import & result — applies the batch and shows the summary. Re-running the same file is safe: documents are deduplicated by invoice number (Rechnungen) or receipt number + date (Belege), so a re-import creates zero duplicates.
Importing quotes (Angebote)
Quotes take their own path because sevDesk exports them differently. From the Pick file step, choose Import quote history (Angebote PDF) and select the combined Alle Angebote list — not a single quote PDF, which the step will tell you it cannot read.
The step reads the PDF, shows you what it found, and writes nothing until you press Import n quotes. Each row becomes a quote in your history with its original number, date, status, customer and net total. A quotes run is a batch like any other, so it appears in Previous imports on the pick step and its Undo removes exactly the quotes it created.
Attaching your document PDFs
The CSVs carry data, not files. After importing them, run the wizard's last step —
Attach document PDFs on the result screen — and select the PDFs from sevDesk's
Rechnungen and Belege folders (you can select them all at once).
Each PDF is matched to its record by the number sevDesk writes into the filename
(2024-08-19_Rechnung_RE-24-1039_<hash>.pdf):
- Invoices match on the invoice number — unique, so this is a clean 1:1 join.
- Receipts match on number and date. Receipt numbers repeat: a monthly bill can
carry the same
Belegnummeron dozens of documents.
Before anything uploads you get a report: how many will be attached, how many are being left alone and why, and how many imported documents have no PDF in your selection. Anything ambiguous is skipped rather than guessed — this writes to locked GoBD history. Files are skipped when they belong to a document that was not imported (a draft, an income receipt) or when the document already has a PDF.
An attached invoice shows a PDF link in the invoice list that opens the original.
This step needs a connection. The offline upload queue holds five files; a full archive goes straight to cloud storage instead. If an upload fails the rest continue and the failures are listed by name — re-running is safe, because each file uploads to the same fixed location.
Undo
Every import is a batch that can be removed as a unit from the pick step — undo removes exactly the rows that batch created and never touches anything else. Exception: contact merges into pre-existing contacts are not reverted (only newly created contacts are removed).
Troubleshooting
- "Position sum mismatch" warning — a Beleg's position rows didn't add up to its document total in the CSV; the document total wins. Cross-check that receipt against your sevDesk PDF.
- Unmatched columns listed at the mapping step — sevDesk added/renamed export columns; assign them manually or leave them unmapped if not needed.
- Per-year totals differ from sevDesk's EÜR — usually skipped drafts. The preview warnings list every skip. Totals themselves are taken verbatim from the CSV, so they tie out to the cent.
- "N rows were realigned" notice at the mapping step — sevDesk writes an uneven number of columns when a description contains a semicolon or a quotation mark. Those rows are put back together rather than dropped; spot-check them in the preview.
customer-unresolvedwarnings on every invoice — you imported Rechnungen before Kontakte. Undo the invoice batch, import Kontakte, then re-run it.- "Mixed tax rates" warning on a Beleg — that receipt has positions at different VAT rates, and an expense record holds one rate. The rate covering the largest share is used; check the receipt if the split matters for your UStVA.
Last Updated: 2026-09-10 Version: 0.790.2
