# Quick Entry (Schnellerfassung): the complete typing concept

> From the Zendrea manual for AI assistants, generated 2026-10-31 from the knowledge of Zendrea's built-in assistant. All topics: https://www.zendrea.ch/llms.txt; all of them in one file: https://www.zendrea.ch/llms-full.txt. Screen names are quoted in English, account numbers are those of the standard Swiss chart, and nothing here is tax or legal advice.

When the user asks how Quick Entry works, what they can type, or for an overview/cheat sheet, answer with these tables (translated to the user's language, values and keywords verbatim — the keywords themselves are language-independent input, not text to translate). For a narrow question, quote only the relevant row(s).

## The frame: three levels of intent

| You type | The word is |
|---|---|
| `.wort` | keyword only, never joins the description |
| `wort` | best effort: known words and shapes are claimed, a preset word routes AND stays in the text, everything else is description |
| `"wort und mehr"` | description only, nothing inside is interpreted (`«…»` and `“…”` work too) |

## The dot — the only keyword prefix

One lookup, first rank that answers wins; a tie within a rank opens the form instead of guessing; a dotted word that matches nothing opens the form too.

| Rank | Namespace | Example |
|---|---|---|
| 1 | exact account or sub-ledger code | `.6500`, `.k-ionos` |
| 2 | expense preset — the user's own label beats a built-in alias; exact beats unique prefix; hyphens join multi-word labels | `.it`, `.ionos`, `.kk-beitrag` |
| 3 | supplier/client name (word-prefix) | `.swisscom` |
| 4 | the closed vocabulary, so `.vat81` or `.bank` also work | `.bank` |

A preset resolved by dot carries its whole template: account, VAT default, label, and its pinned supplier — so `.ionos` alone books on account against the pinned IONOS creditor. A supplier whose name is shadowed by a same-named preset is always reachable by its code (`.k-ionos`). There is no `@` and no `#`: those characters are ordinary text now ("Sponsoring @veloclub", "#expo26" are fine descriptions).

## Bare words (any of the four app languages, all active at once)

| Kind | Words | Effect |
|---|---|---|
| Booking type | `exp`/`ausgabe`…, `div`/`buchung`…, `pay`/`zahlung`…, `ze` | expense, manual entry, payment, incoming payment; without a verb: a debit/credit pair means manual entry, an open Belegnummer means payment, anything else is an expense |
| Paid from | `bank`, `bar`, `cc`, `transfer`, … | the payment source; must be said, carried from the previous line, or pinned in the preset — otherwise the form opens |
| VAT | see the VAT table | |
| Date words | `heute`/`today`, `gestern`/`yesterday`, … | |
| Preset word | `internet`, `miete`, `restaurant`, … | routes the preset AND stays in the description |

## VAT on an expense line

| Line says | Booking gets |
|---|---|
| nothing, preset named | the preset's default |
| nothing, no preset | NO VAT |
| `vat` / `mwst` / `tva` / `iva` / `inkl` | VAT included at the last rate this company booked with (standard rate if none yet) |
| `vat81`, `vat8.1`, `mwst8`, `tva2.6`, … | VAT included at that rate, validated against the company's active codes (exact → dotless 81=8.1 → whole number 8=8.1); no match opens the form |
| `vat0`, `mwst0`, `tva0`, `iva0`, `novat` | explicitly no VAT |
| `8.1%` | that rate (same as `vat8.1`) |
| any VAT word on a debit/credit pair line | opens the form — a manual entry books no VAT, so the typed VAT is never silently dropped |

The former words `ohne`/`keine`/`sans`/`senza` are plain description text now.

## Shapes recognized by form

| Shape | Meaning |
|---|---|
| `21.08`, `21.8.23`, `22.`, `+1`, `-3` | date; bare day in the carried month; days relative to the carried date |
| `108.10`, `1'500.50`, `1500,50`, `1500.-` | amount |
| `6500/1020` | debit/credit pair → manual entry |
| `6500`, `K-LUIGI` | bare account code |
| `CHF`, `EUR` | currency (enabled ones) |
| `er5`, `RE-2026-008` | Belegnummer: names the bill on a payment line, or overrides the number on a new booking |
| `re` (series head, on a payment line) | completes to the OLDEST open document of that series (Tab/→ accepts) |

## Payments

`pay er5` settles the bill in full · `pay er5 12.01` with an amount is a PARTIAL payment and opens the dialog · `pay 31.53 swisscom` finds the bill from the bank statement's amount and payee, booking only on a unique hit · bare `er5` alone infers the payment · the source may be a word or a code the settlement picker offers: `pay er1 2470`. Salary runs and the VAT/AHV/BVG settlements are deliberately NOT payable here — their own reports settle them.

## Carried between lines, and the keys

Date and paid-from carry forward from the previous line; the Belegnummer draws from the K/B/ER series automatically; ghost suggestions and ↓/↑ recall re-book a previous booking's SHAPE (never its date), including last fiscal year's bookings. Keys: Enter books when the preview is fully resolved, otherwise it opens the right form prefilled · Shift+Enter always opens the form · Tab or → accepts the grey suggestion · ↓/↑ walk the history list · Esc clears, a second Esc leaves · Ctrl+Z twice deletes the last booking of the session.
