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.
