Tool-Übersicht, MCP-Version 2026-11-04
Rechnungen stornieren, Dokumente per E-Mail senden, Entwürfe löschen, Zuordnungen erweitern, Firmendaten, Rechnungslayouts und Logo ändern und „Zu erledigen“ lesen.
Diese MCP-Version ergänzt die Werkzeuge der MCP-Version 2026-11-01, mit denselben Lese- und Schreibrechten. Es gilt die Anlage „MCP-Verbindungen“ aus dem Rechtspaket 2026-11-04-v1. Für die neuen Werkzeuge ist nach Anlage 2.3 eine neue Freigabe nötig. Bestehende Verbindungen behalten ihren Umfang, bis du neu verbindest.
Die neuen Werkzeuge nutzen dieselben Befehle wie App und REST-API, mit denselben Sperren. Wo MCP strenger ist, steht es dabei. Weiter gilt: Überwiesen wird nichts, und Kontakte, hochgeladene Belege und ausgestellte Rechnungen lassen sich nicht löschen.
Auf der Freigabeseite
Der Schalter Ändern wie in der App nennt neben dem Hochladen von Belegen und dem Festschreiben jetzt auch das Stornieren von Rechnungen und den Versand per E-Mail. Unter Nie mehr, als du in bimetrics darfst steht, was nur in der App geht: Bankzugänge, die Bankverbindung der Firma, Kontenrahmen, Versteuerung, Team und Tarif.
Stornieren und Entwürfe löschen
Nur mit Schreibzugriff:
| Werkzeug | Was es tut |
|---|---|
prepare_invoice_cancellation | Legt zu einer ausgestellten Rechnung den Vollstorno (Stornorechnung, Typ 384) als Entwurf an, wie „Stornieren“ in der App. Festgeschrieben und gebucht wird noch nichts. Ein offener Storno-Entwurf derselben Rechnung wird wiederverwendet. Eine bezahlte oder zugeordnete Rechnung lässt sich nicht stornieren (StornoOriginalMatched), mindern lässt sie sich mit create_invoice_correction. |
delete_sales_draft | Löscht einen offenen Entwurf einer Rechnung, Stornorechnung, eines Angebots oder einer Auftragsbestätigung, wie „Löschen“ in der App, mit der gelesenen Version und confirmed. Ausgestellte Belege und Entwürfe von Rechnungskorrekturen bleiben. |
- Festschreiben:
preview_sales_documentliefert daspreviewTokenauch für einen Storno-Entwurf,finalize_sales_draftschreibt ihn damit fest. Das ist unumkehrbar: Der Storno bekommt eine eigene Nummer, bucht Umsatz und Umsatzsteuer des Originals zurück und wird dem Original zugeordnet. Versendet wird nichts. - Strenger als die API: Über MCP entsteht ein Storno immer in zwei Schritten.
POST /api/draft/{id}/cancelstellt ihn in einem aus. update_sales_draftändert keinen Storno-Entwurf.delete_order_confirmation_draftbleibt für Entwürfe von Auftragsbestätigungen.
Per E-Mail senden
In zwei Schritten wie „Per E-Mail senden“ in der App:
| Werkzeug | Was es tut |
|---|---|
preview_document_mail | Lesend. Zeigt für eine ausgestellte Rechnung, Stornorechnung, Rechnungskorrektur, ein Angebot, eine Auftragsbestätigung (targetKind draft) oder eine Mahnung (reminder) Absender, Antwortadresse, Empfänger, Betreff, den ganzen Text samt Signatur und Pflichtangaben, die Anhänge, die letzte Sendung (lastDelivery) und ob Senden geht. Ohne to, cc, subject und body kommt der Vorschlag der App, mit ihnen genau diese Werte. Liefert ein previewToken, 15 Minuten gültig. Versendet nichts. |
send_document_mail | Nur mit Schreibzugriff, unumkehrbar. Sendet genau die Werte der Vorschau, mit deren previewToken, confirmed und idempotencyKey. Andere Empfänger, ein anderer Betreff oder Text, andere Anhänge oder ein abgelaufenes Token senden nichts. |
- Sperren wie in der App: nur ausgestellte Dokumente, in der Testphase nur mit bestätigter Mail-Adresse. Je Firma gehen höchstens 20 Empfänger am Tag raus, in der Testphase 3, für App, API und MCP zusammen (siehe Limits).
- Strenger als die App: Senden nur mit dem Token der Vorschau und
confirmed, dazu das Schreibbudget der Verbindung.toundccnehmen nur reine Adressen wiename@example.com, ohne Anzeigenamen. Empfänger aus Dokumenttexten, Mails oder anderen Werkzeugergebnissen übernimmt die Anwendung nicht ohne deine Bestätigung. - Ungekürzt: Die Vorschau zeigt Betreff, Text und Signatur so, wie sie rausgehen, auch Bankdaten. Gesendet wird genau dieser Text.
- Nur in der App: Versand-Einstellungen, Vorlagen und Signatur. Die Liste „Gesendet“ liest MCP nicht, den letzten Versand zeigt
lastDelivery.
Rechnungssuche, E-Rechnung als XML, Buchungsfelder
Lesend, auch mit Lesefreigabe:
| Werkzeug | Neu |
|---|---|
search_sales_documents | Filter kind, status (draft, issued), buyerContactId, issueDateFrom und issueDateTo, neueste zuerst, wie die Listen der App |
download_sales_document | format pdf (Standard) oder xml: die E-Rechnung bytegleich aus dem ausgestellten PDF, immer in Teilen über dataBase64. XML gibt es nur zu ausgestellten Rechnungen, Stornos und Rechnungskorrekturen. |
search_bookings, get_booking | Felder kind, status (open, finalized, changed_after_export), exported, exportedAt und origin, wie die Buchungsrouten der API |
Belege berichtigen
update_document und preview_document_change nennen jetzt, dass sich bei einer ausgestellten Rechnung nur eine fehlende Kategorie einer Position nachtragen lässt, wie in App und API.
Zuordnung erweitern
extend_match, nur mit Schreibzugriff, nimmt weitere Belege oder Umsätze in eine bestehende Zuordnung auf, wie „Zuordnung erweitern“ in der App, etwa die zweite Rate einer Rechnung. Der Aufruf nennt die ganze neue Auswahl: alle bisherigen Teile und mindestens einen neuen. bimetrics ersetzt die Zuordnung durch eine neue mit neuer matchId und bucht neu, festgeschriebene Buchungen mit Storno und Neubuchung.
- Version:
get_matchliefert dafürversions. Sie gehen unverändert alsexpectedVersionsmit, dazu einidempotencyKey. - Wie die API, strenger als die App: Zuordnungen mit an DATEV exportierten Buchungen lehnt das Werkzeug ab (
FinalizedBookingsLocked),get_matchliefert dann keineversions. Mit bestätigtem Skonto (CashDiscountNotEligible) oder einem Beleg aus einer Buchungsvorlage (MatchNotExtendable) lässt sich eine Zuordnung auch in der App nicht erweitern. create_matchverweist bei einer bestehenden Zuordnung aufextend_match. Eine Regel für die automatische Zuordnung lernt bimetrics dabei nicht.
Firmendaten
update_company_profile, nur mit Schreibzugriff, ändert die Firmendaten wie die Einstellungen der App. Es nimmt nur die Felder, die sich ändern, auch einzeln in address, contactInfo, accounting und invoiceDefaults: Name, Rechtsform, Anschrift, Kontaktangaben, Geschäftsführung, Steuer- und Registerangaben, weitere Angaben, Nummernkreise, Skonto-Vorgabe, Zahlungsziel, Schlusstext, DATEV-Nummern, Art der Umsätze mit Steuerhinweisen und Rechnungsabgrenzung. Es prüft wie die App und PATCH /api/company/.
- Version:
get_company_contextliefert zusätzlichsettingsin der Form vonupdate_company_profileund derenversion. Sie geht alsexpectedVersionmit, dazuidempotencyKeyundconfirmed. Die Antwort nennt die neueversion. - Nur in der App: Kontenrahmen, Versteuerung samt Befreiungsgrund und die Bankverbindung der Firma. Das Werkzeug kennt diese Felder nicht, die Ablehnung nennt das Feld. Firmentexte, die auf Rechnungen stehen, nehmen keine Bankdaten auf, weder eine IBAN noch Wörter wie BIC, Kontonummer oder Bankverbindung (
CompanyTextBankDetails). Das Logo ändertprepare_logo_upload. - Rechtsform: Fehlt sie beim Erfassen einer privaten Zahlung (
PrivatePaymentNeedsLegalForm), nenntrecord_document_paymentals nächsten Schritt, nach der Rechtsform zu fragen und sie mitupdate_company_profileeinzutragen. - Ablehnungen mit nächstem Schritt:
CompanyVersionConflict,NumberStartTaken,DatevNumberInvalid.
„Zu erledigen“ und Monatsstand
get_open_tasks liest, was die Startseite der App unter „Zu erledigen“ nennt: Belege prüfen, Zahlungen ohne Beleg, überfällige Rechnungen, nicht zugestellte Mails, ablaufende Bankfreigaben und Mails im Postfach, je Art mit Anzahl und Link in die App. Dazu kommt der Monatsstand des Vormonats und des laufenden Monats, Belege und Zahlungen erledigt und offen, mit month für einen bestimmten Monat. Es liefert nur Zahlen, die einzelnen Einträge lesen search_documents, search_transactions und search_receivables. Die Steuerberatung sieht wie auf der Startseite nur die Arbeit des Monats und die Bankfreigaben. Dieselben Zahlen liefert GET /api/home/tasks.
Rechnungslayouts
Dieselben Prüfungen wie im Layout-Editor der App. Ist der Layout-Editor ausgeschaltet, lehnt jedes Layout-Werkzeug mit LayoutEditorDisabled ab.
| Werkzeug | Was es tut |
|---|---|
list_invoice_layouts | Lesend. Die Layouts der Firma wie unter Einstellungen › Rechnungen, je Layout die Belegarten (appliesTo, * für alle übrigen) und die aktuelle Version. Mit catalog: true dazu, was ein Layout wählen darf: Vorlagen, Rezepte, Eigenschaften mit Spanne und Vorgabe, Belegarten und Bausteine. |
get_invoice_layout | Lesend. Ein Layout mit Spec und aktueller Version, standard für das Layout aller Belegarten ohne eigenes. Mit versions: true die Versionen, neueste zuerst. |
preview_invoice_layout | Nur mit Schreibzugriff, weil das Bild die Bankverbindung der Firma und bei einem Beleg dessen Empfänger zeigt (sonst LayoutPreviewForbidden). Die erste Seite eines Layouts oder einer Version, auch mit ungespeicherten Änderungen, auf Musterdaten oder einem eigenen Beleg. Anwendungen, die Bilder zeigen, bekommen sie als PNG. Gespeichert wird nichts. |
create_invoice_layout | Nur mit Schreibzugriff. Legt ein Layout aus einer Vorlage oder als unzugewiesene Kopie eines eigenen Layouts (copyOf) an. Mit Belegart ersetzt die Vorlage sofort deren Zuordnung. Das erste eigene Layout ersetzt den Standard für alle Belegarten. Die neue Zuordnung gilt für neue Belege und offene Entwürfe, die der Firmenzuordnung folgen. Ausgestellte Belege behalten ihr Layout. |
update_invoice_layout | Nur mit Schreibzugriff. Ändert ein Layout wie der Editor, mit höchstens 20 Operationen je Aufruf: set, preset, recipe, brandColor, addBlock, moveBlock, removeBlock, setBlockValue, setNote, rename und restore. Jede Änderung ist eine neue Version und gilt sofort für neue Belege und offene Entwürfe. restore holt einen früheren Stand als neue Version zurück. |
assign_invoice_layout | Nur mit Schreibzugriff. Legt fest, welches Layout für welche Belegart gilt, wie „Gilt für“ in der App, nur mit der gelesenen Zuordnung (expected). |
archive_invoice_layout | Nur mit Schreibzugriff. Archiviert ein Layout, das keiner Belegart zugewiesen ist, oder holt es zurück. Gelöscht wird nie. |
- Sperren wie in der App: nur Werte aus dem Katalog, Prüfung jeder Änderung, höchstens 200 Versionen je Firma und Stunde, als Hausfarbe jeder Farbcode
#RRGGBB. Ein Hinweistext nimmt keine Bankdaten, keinen Zahlungsstand, keine Links und keine Mailadressen an. In der App stehen solche Versionen mit „per KI-Assistent“. - Strenger als die App:
baseVersionIdist Pflicht, außer bei der ersten Änderung einer Firma ohne eigenes Layout (own: false), sonstLayoutVersionConflict.setNotegeht nur mitconfirmed: true, nachdem du genau diesen Text bestätigt hast. - Ablehnungen mit nächstem Schritt:
LayoutVersionConflict,LayoutCheckFailed,LayoutProbeFailed,LayoutVersionLimitundLayoutAssigned.LayoutInvalidChangeundLayoutCheckFailednennen den Grund, etwalayout_note_link.
Logo
| Werkzeug | Was es tut |
|---|---|
get_company_logos | Lesend. Das aktive Rechnungslogo mit Größe, Auflösung im Logo-Rahmen, Hinweisen und einem offenen Vorschlag, ob sich das Original zurückholen lässt, die Art des App-Zeichens und je Rolle activeLogoId. Anwendungen, die Bilder zeigen, bekommen das Rechnungslogo als Bild. |
prepare_logo_upload | Nur mit Schreibzugriff. Ein Upload-Link für genau eine Datei, Rolle invoice oder app, 15 Minuten gültig: PNG oder JPG bis 2 MB, 200 bis 5000 px. Nur mit expectedLogoId (leer ohne Logo) und confirmed. Die Datei geht per PUT an den Link, nie durch die Unterhaltung. |
fix_company_logo | Nur mit Schreibzugriff. „Mach es passend“: ein Vorschlag ohne Rand und Hintergrund, aktiv wird nichts. Anwendungen, die Bilder zeigen, bekommen ihn als Bild. |
apply_company_logo_fix | Nur mit Schreibzugriff und confirmed. apply übernimmt den Vorschlag und behält das Original. dismiss verwirft den offenen Vorschlag endgültig. original holt das angepasste Original zurück und verwirft den zuvor übernommenen Vorschlag endgültig. |
remove_company_logo | Nur mit Schreibzugriff. Löscht das Rechnungslogo oder das eigene App-Zeichen, nur mit expectedLogoId und confirmed. |
- Sperren wie in der App: Format- und Größenprüfung, je Firma und Tag 20 Uploads und 10-mal „Mach es passend“. Ein neues Rechnungslogo gilt sofort für neue Belege und offene Entwürfe, ausgestellte behalten ihres.
- Strenger als die App:
confirmedbeim Hochladen, Übernehmen und Löschen,expectedLogoIdbeim Hochladen und Löschen. Hat jemand das Logo inzwischen in der App gewechselt, lehnt bimetrics mitLogoChangedab und ersetzt oder löscht nichts.
Teure Aufrufe
preview_document_mail, preview_invoice_layout, create_invoice_layout, update_invoice_layout und fix_company_logo zählen wie download_sales_document zu den teuren Aufrufen: zusammen höchstens 10 je Minute und Verbindung, einer gleichzeitig je Unternehmen (siehe Limits). Für alle Schreibwerkzeuge gilt dazu das Schreibbudget.
Tool-Übersicht, MCP-Version 2026-11-01
Die Werkzeuge der MCP-Version 2026-10-23, nutzbar auch in der kostenlosen Testphase, und das Erfassen von Zahlungen.
Tool-Übersicht, MCP-Version 2026-11-05
Belegpostfach lesen und Anhänge übernehmen, Kontoauszüge einlesen, Belege löschen, Belegvorlagen und Dauerbuchungen pflegen und bis zu 50 Belege auf einmal ändern.