MCP-Tools: Rechnungen und Buchhaltung

Rechnungen entwerfen, finalisieren und korrigieren sowie Buchhaltungsbelege und die Einnahmenübersicht lesen und pflegen.

Voraussetzungen
  • Module Rechnungen bzw. Buchhaltung aktiv.
  • Für § 11 UStG: Leistungsdatum sowie Name, Adresse und UID des Rechnungsstellers.

list_invoices

Listet Rechnungen, neueste zuerst; filterbar nach Status, Projekt und CRM-Lead. Für Mitglieder gilt die rollenbasierte Projektsichtbarkeit: Rechnungen ohne Projekt sind immer sichtbar, Rechnungen mit Projekt nur, wenn das Projekt in der Rollen-Sichtbarkeit liegt. Voraussetzungen: Rolle Viewer oder höher, Schlüssel-Scope „read“ oder höher, Modul „Rechnungen“ aktiv.

status
Optional · string · draft | sent | paid | overdue | cancelled — Nur Rechnungen mit diesem Status.
projectId
Optional · string — Nur Einträge dieses Projekts.
crmLeadId
Optional · string — Nur Rechnungen zu diesem CRM-Lead.
limit
Optional · number — Maximale Anzahl Ergebnisse (Standard 50, höchstens 200).

get_invoice

Liefert eine Rechnung mit allen Positionen (items, nach Reihenfolge sortiert). Liegt sie außerhalb deiner Sichtbarkeit, erscheint sie als „Invoice not found“. Voraussetzungen: Rolle Viewer oder höher, Schlüssel-Scope „read“ oder höher, Modul „Rechnungen“ aktiv.

id
Pflicht · string — ID der Rechnung.

create_invoice

Legt eine Rechnung an. Sie startet als nummerierungslose Entwurfsrechnung; die Rechnungsnummer wird automatisch vergeben, wenn der Entwurf über update_invoice finalisiert wird. Beträge in Cent. Positionen mit timeEntryId übernehmen Menge (auf 0,01 Std. gerundet) und gespeicherten Satz vom Server; der Zeiteintrag muss abgeschlossen, abrechenbar und freigegeben (approved) sein, zum Projekt der Rechnung gehören und noch in keiner Rechnung stecken, und die Rechnung muss in EUR lauten. Er wird dabei als reserviert markiert. Nach österreichischem Recht (§ 11 UStG) sind Leistungsdatum sowie Name, Adresse und UID des Rechnungsstellers nötig. Projekt-, Lead- und Zeiteintragsbezüge werden gegen die Organisation und deine Sichtbarkeit geprüft. Der Vorgang wird im Audit-Log als MCP-Aktion protokolliert. Voraussetzungen: Rolle Member oder höher, Schlüssel-Scope „write“ oder höher, Modul „Rechnungen“ aktiv.

clientName
Pflicht · string — Rechnungsempfänger: Name bzw. Firma.
clientEmail
Optional · string — Rechnungsempfänger: E-Mail-Adresse.
clientAddress
Optional · string — Rechnungsempfänger: Straße und Hausnummer.
clientPostalCode
Optional · string — Rechnungsempfänger: Postleitzahl.
clientCity
Optional · string — Rechnungsempfänger: Ort.
clientCountryCode
Optional · string — Rechnungsempfänger: Ländercode (z. B. AT, DE).
clientElectronicAddress
Optional · string — Rechnungsempfänger: elektronische Adresse für die E-Rechnung.
clientElectronicAddressScheme
Optional · string — Schema der elektronischen Adresse des Empfängers (z. B. EM für E-Mail).
buyerReference
Optional · string — Käuferreferenz für die E-Rechnung (XRechnung), z. B. eine Leitweg-ID.
clientUID
Optional · string — UID-Nummer des Empfängers (ATU…); ab 10.000 € Rechnungsbetrag Pflicht.
crmLeadId
Optional · string — Verknüpft die Rechnung mit einem CRM-Lead.
projectId
Optional · string — ID des zugeordneten Projekts.
dueDate
Optional · string — Zahlungsziel (YYYY-MM-DD).
serviceDate
Optional · string — Liefer-/Leistungsdatum (YYYY-MM-DD) – Pflichtangabe nach § 11 UStG.
servicePeriodEnd
Optional · string — Ende des Leistungszeitraums (YYYY-MM-DD), optional.
currency
Optional · string · Standard: EUR — Währungscode. Standard: EUR.
taxRate
Optional · number — Steuersatz in Prozent (Österreich: 20 Standard, 10 ermäßigt, 13 Sondersatz, 0 steuerfrei). Standard: 0.
notes
Optional · string — Notizen als Freitext.
supplierName
Optional · string — Rechnungssteller: Name bzw. Firma (Pflicht nach § 11 UStG).
supplierAddress
Optional · string — Rechnungssteller: Adresse (Pflicht nach § 11 UStG).
supplierUID
Optional · string — Rechnungssteller: UID-Nummer (ATU…).
supplierIBAN
Optional · string — Rechnungssteller: IBAN für die Zahlungsinformationen.
supplierBIC
Optional · string — Rechnungssteller: BIC/SWIFT.
supplierPostalCode
Optional · string — Rechnungssteller: Postleitzahl.
supplierCity
Optional · string — Rechnungssteller: Ort.
supplierCountryCode
Optional · string — Rechnungssteller: Ländercode.
supplierElectronicAddress
Optional · string — Rechnungssteller: elektronische Adresse für die E-Rechnung.
supplierElectronicAddressScheme
Optional · string — Schema der elektronischen Adresse des Rechnungsstellers.
supplierPhone
Optional · string — Rechnungssteller: Telefonnummer.
supplierEmail
Optional · string — Rechnungssteller: E-Mail-Adresse.
taxCategoryCode
Optional · string · S | Z | E | AE | G | O — Steuerkategorie nach EN 16931: S (Normalsatz), Z (Nullsatz), E (befreit), AE (Reverse Charge), G (steuerfreier Export), O (nicht steuerbar). Standard: S.
taxExemptionReason
Optional · string — Begründung der Steuerbefreiung.
items
Optional · object[] — Rechnungspositionen als Liste von Objekten: description (Pflicht), quantity (Pflicht), unitPrice in Cent (Pflicht) und optional timeEntryId (abgeschlossener, abrechenbarer und freigegebener Zeiteintrag – Menge und gespeicherter Satz werden serverseitig abgeleitet; jeder Zeiteintrag darf nur einmal vorkommen).

update_invoice

Ändert Felder einer Rechnung oder ihren Status. Solange die Rechnung ein Entwurf ist, sind alle Felder änderbar. Der erste Wechsel aus draft finalisiert die Rechnung transaktional: Sie erhält lückenlos ihre Nummer, das kanonische PDF, die XRechnung-XML und der Zeitnachweis werden erzeugt, und der Vorgang wird im Audit-Log festgehalten. Danach ist nur noch der Status änderbar; ein Zurück nach draft und das Wiedereröffnen einer stornierten Rechnung sind nicht möglich. paid lässt sich nicht setzen – erfasse stattdessen eine Zahlung. Positionen lassen sich mit diesem Tool nicht ändern. Voraussetzungen: Rolle Member oder höher, Schlüssel-Scope „write“ oder höher, Modul „Rechnungen“ aktiv.

id
Pflicht · string — ID der Rechnung.
status
Optional · string · draft | sent | overdue | cancelled — Neuer Status. Der erste Wechsel aus draft finalisiert die Rechnung und vergibt die Nummer.
clientName
Optional · string — Rechnungsempfänger: Name bzw. Firma.
clientEmail
Optional · string — Rechnungsempfänger: E-Mail-Adresse.
clientAddress
Optional · string — Rechnungsempfänger: Straße und Hausnummer.
clientUID
Optional · string — UID-Nummer des Empfängers (ATU…); ab 10.000 € Rechnungsbetrag Pflicht.
dueDate
Optional · string — Neues Zahlungsziel (YYYY-MM-DD).
serviceDate
Optional · string — Liefer-/Leistungsdatum (YYYY-MM-DD) – Pflichtangabe nach § 11 UStG.
servicePeriodEnd
Optional · string — Ende des Leistungszeitraums (YYYY-MM-DD), optional.
notes
Optional · string — Notizen als Freitext.
taxRate
Optional · number — Neuer Steuersatz in Prozent; Steuerbetrag und Gesamtsumme werden neu berechnet.
supplierName
Optional · string — Rechnungssteller: Name bzw. Firma (Pflicht nach § 11 UStG).
supplierAddress
Optional · string — Rechnungssteller: Adresse (Pflicht nach § 11 UStG).
supplierUID
Optional · string — Rechnungssteller: UID-Nummer (ATU…).
supplierIBAN
Optional · string — Rechnungssteller: IBAN für die Zahlungsinformationen.
supplierBIC
Optional · string — Rechnungssteller: BIC/SWIFT.
supplierPostalCode
Optional · string — Rechnungssteller: Postleitzahl.
supplierCity
Optional · string — Rechnungssteller: Ort.
supplierCountryCode
Optional · string — Rechnungssteller: Ländercode.
supplierElectronicAddress
Optional · string — Rechnungssteller: elektronische Adresse für die E-Rechnung.
supplierElectronicAddressScheme
Optional · string — Schema der elektronischen Adresse des Rechnungsstellers.
supplierPhone
Optional · string — Rechnungssteller: Telefonnummer.
supplierEmail
Optional · string — Rechnungssteller: E-Mail-Adresse.
taxCategoryCode
Optional · string · S | Z | E | AE | G | O — Steuerkategorie nach EN 16931: S (Normalsatz), Z (Nullsatz), E (befreit), AE (Reverse Charge), G (steuerfreier Export), O (nicht steuerbar). Standard: S.
taxExemptionReason
Optional · string — Begründung der Steuerbefreiung.

delete_invoice

Löscht eine Rechnung samt Positionen – aber nur Entwürfe (Status draft). Im Unterschied zu den anderen Löschtools genügt hier die Rolle Member; nötig ist ein Schlüssel mit delete-Scope. Ausgestellte Rechnungen korrigierst du mit create_invoice_correction. Voraussetzungen: Rolle Member oder höher, Schlüssel-Scope „delete“ oder höher, Modul „Rechnungen“ aktiv.

id
Pflicht · string — ID der Rechnung.

create_invoice_correction

Legt eine eigenständige Korrektur-/Stornorechnung zu einer bereits ausgestellten (nicht Entwurf-) Rechnung an. Das Original bleibt unverändert; es entsteht ein neuer, nummerierungsloser Entwurf mit eingefrorener Kopie der Kopfdaten des Originals (Empfänger, Rechnungssteller, Währung, Projekt, CRM-Lead) – ohne Positionen und ohne wiederverwendete Nummer. Die Nummer folgt bei der Finalisierung der Korrektur. Der Vorgang wird im Audit-Log festgehalten. Voraussetzungen: Rolle Member oder höher, Schlüssel-Scope „write“ oder höher, Modul „Rechnungen“ aktiv.

id
Pflicht · string — ID der ausgestellten Rechnung, die korrigiert wird.
reason
Pflicht · string — Pflichtangabe: Grund der Korrektur.

list_accounting_receipts

Listet Belege der Buchhaltung, nach Belegdatum absteigend; filterbar nach Projekt und Status. Ergebnis: { receipts: [...] }. Erfordert mindestens die Rolle Member. Für Mitglieder gilt die rollenbasierte Projektsichtbarkeit. Voraussetzungen: Rolle Member oder höher, Schlüssel-Scope „read“ oder höher, Modul „Buchhaltung“ aktiv.

projectId
Optional · string — Nur Einträge dieses Projekts.
status
Optional · string · uploaded | failed | archived — Nur Belege mit diesem Status.
limit
Optional · number — Maximale Anzahl Ergebnisse (Standard 50, höchstens 200).

update_accounting_receipt

Ändert die Metadaten eines Belegs: Name, Datum, Betrag, Händler, Kategorie, Projektzuordnung und Status. Der Beleg muss in deiner Sichtbarkeit liegen; ein neues Projekt wird gegen die Organisation geprüft. Voraussetzungen: Rolle Member oder höher, Schlüssel-Scope „write“ oder höher, Modul „Buchhaltung“ aktiv.

id
Pflicht · string — ID des Belegs.
displayName
Optional · string — Anzeigename des Belegs.
receiptDate
Optional · string — Belegdatum (YYYY-MM-DD).
amount
Optional · number — Betrag in Cent.
merchant
Optional · string — Händler bzw. Aussteller des Belegs.
category
Optional · string — Kategorie als Freitext.
projectId
Optional · string — ID des zugeordneten Projekts.
status
Optional · string · uploaded | failed | archived — Neuer Status des Belegs.

delete_accounting_receipt

Löscht einen Beleg dauerhaft samt zugrunde liegender Datei. Erfordert mindestens die Rolle Admin und einen Schlüssel mit delete-Scope. Liegt zum Beleg ein Dokument unter Legal Hold, wird das Löschen mit Konflikt (409) verweigert; sowohl blockierte als auch ausgeführte Löschungen werden im Audit-Log festgehalten. Voraussetzungen: Rolle Admin oder höher, Schlüssel-Scope „delete“ oder höher, Modul „Buchhaltung“ aktiv.

id
Pflicht · string — ID des Belegs.

list_accounting_income

Listet die Einnahmen (Rechnungen aus dem Rechnungen-Modul) für die Buchhaltungsübersicht: id, Nummer, Status, Kunde, Ausstellungsdatum, Währung und Summe je Rechnung, dazu totalsByCurrency mit bezahlten und offenen Summen je Währung. Erfordert mindestens die Rolle Member; für Mitglieder gilt die Projektsichtbarkeit. Voraussetzungen: Rolle Member oder höher, Schlüssel-Scope „read“ oder höher, Modul „Buchhaltung“ aktiv. Dieses Tool hat keine Parameter.

Häufige Stolperfallen

  • Nummer entsteht erst beim Finalisieren

    create_invoice legt einen Entwurf ohne Nummer an. Die Nummer wird vergeben, wenn update_invoice den Status erstmals aus draft heraussetzt.

  • Bezahlt lässt sich nicht setzen

    update_invoice lehnt paid ab („Record a payment instead“). Erfasse stattdessen eine Zahlung in der Webapp.

  • Ausgestellt heißt unveränderlich

    Nach der Finalisierung ist nur noch der Status änderbar, ein Zurück nach draft nicht möglich. Für Änderungen nutze create_invoice_correction.

  • Zeiteinträge müssen freigegeben sein

    Positionen mit timeEntryId verlangen einen abgeschlossenen, abrechenbaren und freigegebenen Zeiteintrag im selben Projekt; die Rechnung muss in EUR lauten.

  • Beträge in Cent

    Alle Beträge (unitPrice, amount) sind Cent-Werte.

Weiterlesen

Antwort nicht gefunden oder Problem tritt weiter auf?

Zum Support-Bereich

Fachlich geprüft am 2026-09-26