fiskaltrust / fiskaltrust/docs
KBA to docs: Germany
- Dominant language
- MDX
- Stars
- 0
- Forks
- 0
- Avg merge
- 5d 15h
- Merged PRs (30d)
- 18
Description
Analysis of the export is complete. Results below. Content work has not started.
## The export
`DE_dbo.kbarticle` exported empty, so there is no legacy-entity backlog — only the modern set.
| | `dbo.knowledgearticle` |
|---|---|
| Rows / unique articles | 329 / **126** |
| Created | 2021–2026 |
| Languages | German 155, English 174 |
Parsing note: the DE CSV is shifted by −2 against the `SELECT` column list (`articlepublicnumber` at index 69), the same as FR. AT is **not** — it matches the list exactly. Detect the offset from the column holding the `KA-` values.
**126 articles reviewed.**
## What FR already did for DE
The France pass (#106, PR #109) added market-neutral pages that several DE articles duplicate. These need only the German tab of an existing page, or nothing:
| DE article | Already covered by |
|---|---|
| KA-01088 Middleware fails to start (Mono / `$TMPDIR`) | `middleware-startup-failures.md#components-are-not-extracted` — identical text |
| KA-01118 Windows service takes very long to start, or doesn't start | `middleware-startup-failures.md#the-service-does-not-start-automatically` |
| KA-01117 WinHTTP proxy at boot (empty draft) | `middleware-startup-failures.md#proxy-auto-detection-at-boot` |
| KA-01073 SQLite-Datenbank reparieren | `middleware-startup-failures.md#the-database-is-malformed` |
| KA-01081 Changing offline/online mode of launcher | `configuration.md` |
| KA-01043 Log-Datei erstellen | `middleware/logging.md` |
| KA-01003 Rollenrechte und Primärkontakt ändern | `registration.md#managing-user-rights`, including the re-login note added in the FR pass |
| KA-01004 Send invitation link again | `invitation-process.md#options-with-invited-posoperators` |
| KA-01038 Kassenbetreiber Einladung löschen (empty draft) | `invitation-process.md#withdrawing-an-invitation` |
| KA-01111 Visualize compliance state for queues (empty draft) | `cashbox-failures.md#basic-receipt-check` |
| KA-01016 Add employees to various companies | `registration.md` — the plus-addressing trick is market-neutral and should be added there (AT KA-01106 says the same) |
| KA-01126 Launcher could not register URL | new section for `middleware-startup-failures.md`, market-neutral (AT KA-01074 is the same issue) |
## Disposition
### Discard (≈55)
**Empty drafts (37) — 29 % of the whole export:** KA-01001, 01005, 01010, 01012, 01013, 01017, 01018, 01019, 01024, 01026, 01027, 01036, 01038, 01049, 01055, 01062, 01063, 01070, 01075, 01084, 01091, 01102, 01103, 01111, 01117, 01119, 01120, 01121, 01122, 01123, 01133, 01135, 01138, 01144, 01146, 01147, 01154. Several are titles that describe content worth having (*TSE defekt*, *Proxy troubleshooting*, *Middleware Architecture*, *Force-closing open transactions*) — they are a list of gaps, not a list of content.
### 📌 Flagged for an internal knowledge base — not discarded
Held pending a decision on which fiskaltrust repository carries this, and in what form. **Do not delete these from the export.**
| Article | Subject |
|---|---|
| KA-01023 | Fault-acceptance checklist: SLA classes, Slack channels, D365 case conversion |
| KA-01037 | *Replace Entitlements* — 7,439 chars of D365 quote-and-repair-product steps |
| KA-01042 | Contract § 3: rights and obligations of the parties |
| KA-01046 | Tax and contract: VAT for international customers |
| KA-01054 | Cancellations |
| KA-01057, KA-01076, KA-01083 | Order, billing and entitlement handling |
| KA-01092 | Identifying who placed an order, via the D365 timeline |
| KA-01098 | KBA and search-term analytics in D365 — self-referential |
| KA-01107, KA-01108, KA-01109 | Rollout and subscription management: internal troubleshooting paths |
| KA-01128, KA-01129 | Order status and shop product handling |
⚠️ **KA-01089** (*Order failed*, 9,503 chars) needs splitting rather than parking. Most of it is internal — D365 entitlement inspection, a named "Abonnement Renewal Bug DE" workaround, Power BI reports, Slack channels. But the **order-process phase table** (status codes 10–70 and what to verify at each) and the **customer-facing error messages** (`Not enough entitlements`, `there is already a subscription`, `Shipping has failed`, and the fiskaly `taxNumber must be filled` case) are exactly what a PosDealer needs when an order fails. Extract those two parts into the docs; the rest goes to the internal KB.
⚠️ **KA-01037** likewise has a publishable fragment: the entitlement-check paths (`Shop → Entitlements → Entitlement history`) let a dealer verify their own position without any D365 access.
### Merge — general documentation → tracked in #110
18 German articles turned out to carry concepts that are not German, so they have moved to **#110**, which carries the general-documentation bucket for all markets. Several of them are the same concept as an Austrian article and have been deduplicated there.
Moved: KA-01007, KA-01016, KA-01029, KA-01037 (partial), KA-01064, KA-01082, KA-01085, KA-01089 (partial), KA-01090, KA-01097, KA-01116, KA-01124, KA-01125, KA-01126, KA-01137, KA-01149, KA-01150, KA-01151, KA-01160, KA-01166, KA-01167, KA-01168.
The portal-and-account cluster went entirely: not one article in it was actually German. If any of these turns out to need a national caveat — the Cloud TSE restriction on hardware moves is the likely one — the caveat comes back to this issue and the concept stays in #110.
### Merge — Germany-specific, no equivalent in the repo
**TSE** — the defining DE cluster and by far the biggest gap:
- [ ] KA-01044 — TSE transfer between operators
- [ ] KA-01056 — TAR exports grow with every export, and why
- [ ] KA-01058 — TAR download blocks the daily closing
- [ ] KA-01065 — defective hardware TSE: exchange, return, complaint
- [ ] KA-01067 / KA-01069 — checking Cloud TSE service availability
- [ ] KA-01080 — TSE in virtual environments (already linked from `_markets/de/buy-resell/products/_signing.mdx`, which points at the KB — see below)
- [ ] KA-01086 — CryptoVision/Bundesdruckerei `data fragmentation on transport layer`
- [ ] KA-01100 — QR-code verification fails for CryptoVision TSEs (fixed in MW 1.3.34; the appendix for the Verfahrensdokumentation matters for audits)
- [ ] KA-01099 — zero amounts written as `.00` instead of `0.00` (fixed in MW 1.3.18; same audit-appendix situation)
- [ ] KA-01106 — deactivating a Cloud TSE
- [ ] KA-01110 — updating the FCC manually
- [ ] KA-01112 — **Switch SCU** (10,948 chars, the largest article in the export) and KA-01134 — the force-switch flag
- [ ] KA-01136 — Swissbit chunked TAR export (already linked from `swissbit.md`, see below)
- [ ] KA-01139 — alternative TAR export: bypass flag `0x0000000004000000`, queue parameter `EnableTarFileExport=false`, and the null-receipt flag `0x0000000002000000` to export separately. **Not in the repo.**
- [ ] KA-01141 — emergency TAR export from a CryptoVision TSE with the vendor's `exportAll.jar`
- [ ] KA-01152 — `E_TX_UPSERT` in the log
- [ ] KA-01155 — empty TAR export
- [ ] KA-01156 — `dhSwissbitException: Transaktion nicht gestartet oder bereits beendet`
- [ ] KA-01159 — replacing a defective SCU
- [ ] KA-01161 — manual decommissioning of a queue
- [ ] KA-01162 — fiskaly TSE outage: recovery and re-setup
- [ ] KA-01164 / KA-01165 — hardware TSE expiry (German and English of the same article)
**Tax-office notifications** — `_markets/de/buy-resell/products/_notification.mdx` exists; these are far more substantial than it:
- [ ] KA-01148 — **the nine most common notification errors** (9,111 chars): invalid Steuernummer and the 13-digit format, TSE serial-number and BSI format rules, missing notification product, duplicate queue names, missing `TseInfoJson`, missing PosSystemId with four distinct causes, commissioning date before purchase date, invalid characters in the address. The single highest-value article in the DE export.
- [ ] KA-01143 — Notifications DE FAQ (8,110 chars, 25 Q&As on the dealer/operator workflow, statuses and failure handling). Already FAQ-shaped; note it contains two unfinished stubs and a broken sentence near the top.
- [ ] KA-01142 — what the free Middleware covers under KassenSichV versus the paid POSArchiv and notification add-ons
**DATEV MeinFiskal** — `buy-resell/products/3rd-party/datev-meinfiskal.md` exists and is the target:
- [ ] KA-01093 — the booking date comes from the `cbReceiptMoment` of the daily closing
- [ ] KA-01094 — use precise charge/pay item cases, not wildcards
- [ ] KA-01095 — DFKA field-length limits (the 50-character `cbReceiptReference` trap); applies to DSFinV-K too
- [ ] KA-01096 — PosSystems must be connected properly, or `brand`/`model`/`base_currency_code` are missing
- [ ] KA-01104 — an existing DATEV account blocks the connection, and how to free the address
- [ ] KA-01127 — opt-out option for admins
**Middleware technical:**
- [ ] KA-01153 — configuring a Hauptkasse (main register)
**Compliance and audit:**
- [ ] KA-01140 — what the tax auditor asks for (DSFinV-K and TAR exports) and the two ways to produce it
- [ ] KA-01028 — changes in company structure: relocation, change of legal form, change of ownership. Note the ⚠️ `ftReceiptCaseFlag 0x0000000001000000` on the out-of-operation receipt — **without it the TSE is irreversibly decommissioned.**
*The portal and account cluster is gone from this list: every article in it turned out to be market-neutral and has moved to the general bucket above.*
### Dependencies on the KB to remove
Beyond the shared pages tracked in #105, DE has **deep links into individual articles** that will 404:
- [ ] `_markets/de/buy-resell/products/_signing.mdx` → `portal.fiskaltrust.de/KBArticle#/KA-01112` (Switch SCU) and `#/KA-01080` (TSE for virtual environments)
- [ ] `poscreators/middleware-doc/middleware-de-kassensichv/operation-modes/scu/swissbit.md` → `#/KA-01136` (chunked TAR export)
- [ ] `posdealers/getting-started/onboarding.md` → `portal.fiskaltrust.de/#/KBArticles`
- [ ] `_markets/de/information-sources/contacting-support/_support.mdx` → the KB landing page
All three deep-linked articles are in the merge list above, so the fix is to migrate them first and repoint the links.
## Open items needing a human
1. **KA-01099 and KA-01100** reference appendices for the Verfahrensdokumentation, available in the portal download area. Do those still exist, and should the docs link to them?
2. **KA-01139** — is `EnableTarFileExport` still the parameter name, and are both flags still supported?
3. **KA-01142** describes the free/paid split under KassenSichV. Commercially sensitive and dated 2025; product management should confirm before it becomes public documentation.
4. **KA-01143** contains unfinished stubs (*"What to do if the Queue has been configured in a wrong outlet — Problem: / Solution:"* with both blank) and one truncated sentence. Needs an author, not just a translator.
5. **KA-01029** says a Swissbit or Deutsche Fiskal Cloud TSE cannot be moved between machines because of Cloud Connector binding. Still true?
6. **KA-01112** *Switch SCU* is the largest article and was last modified 2026-08-04, so it is probably current — but it should be read against the SCU-switch feature as it exists now before being reproduced.
Contributor guide
Research direction
Start by reading the Germany-specific targets `_markets/de/buy-resell/products/_notification.mdx`, `_signing.mdx`, `buy-resell/products/3rd-party/datev-meinfiskal.md`, and the linked middleware files. Use the article disposition and open human decisions to determine what can be published, then migrate approved content and remove or repoint the listed KB links. Done means the agreed German content is in the repository and no listed dependency still points to a removed article.
Written by the indexing model from the issue text.
Assessment
- Domain
- content, documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100