Finanzen — API und MCP
Überblick
Dieser Bereich stellt 83 Operationen bereit. Jede davon ist zugleich ein MCP-Werkzeug.
Der Bereich hängt am Modul-Schalter module.accounting. Ist das Modul aus, antworten diese Operationen mit 404.
Operationen
| Methode | Pfad | Zweck | Recht | Parameter | |||
|---|---|---|---|---|---|---|---|
GET | /api/v1/accounting/account-rules | Liste der FinanceAccountRule | accounting.account_rule.view | page, direction, active, brandId | |||
POST | /api/v1/accounting/account-rules | Eine FinanceAccountRule anlegen | accounting.account_rule.manage | + Rumpf | |||
DELETE | /api/v1/accounting/account-rules/{ulid} | Eine FinanceAccountRule löschen | accounting.account_rule.manage | ulid | |||
GET | /api/v1/accounting/account-rules/{ulid} | Eine FinanceAccountRule lesen | accounting.account_rule.view | ulid | |||
PATCH | /api/v1/accounting/account-rules/{ulid} | Eine FinanceAccountRule ändern | accounting.account_rule.manage | ulid, + Rumpf | |||
GET | /api/v1/accounting/bank-accounts | Liste der FinanceBankAccount | accounting.bank_account.view | page, active, brandId | |||
POST | /api/v1/accounting/bank-accounts | Eine FinanceBankAccount anlegen | accounting.bank_account.manage | + Rumpf | |||
DELETE | /api/v1/accounting/bank-accounts/{ulid} | Eine FinanceBankAccount löschen | accounting.bank_account.manage | ulid | |||
GET | /api/v1/accounting/bank-accounts/{ulid} | Eine FinanceBankAccount lesen | accounting.bank_account.view | ulid | |||
PATCH | /api/v1/accounting/bank-accounts/{ulid} | Eine FinanceBankAccount ändern | accounting.bank_account.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/bank-accounts/{ulid}/import | Kontoauszug einlesen — Liest einen Kontoauszug in dieses Bankkonto ein (format camt053\ | mt940\ | csv\ | auto, Inhalt base64). Derselbe Auszug ein zweites Mal erzeugt keine Dubletten, sondern zählt sie unter duplicates. Ein Auszug, dessen Kontokennung nicht zu diesem Konto gehört oder dessen Salden nicht aufgehen, wird mit 422 abgewiesen — ohne eine einzige gebuchte Zeile. | accounting.transaction.manage | ulid, + Rumpf |
GET | /api/v1/accounting/bank-connection-accounts | Liste der FinanceBankConnectionAccount | accounting.bank_connection.view | page, connectionUlid, linked | |||
PATCH | /api/v1/accounting/bank-connection-accounts/{ulid} | Eine FinanceBankConnectionAccount ändern | accounting.bank_connection.manage | ulid, + Rumpf | |||
GET | /api/v1/accounting/bank-connection-providers | Liste der FinanceBankConnectionProvider | accounting.bank_connection.view | — | |||
GET | /api/v1/accounting/bank-connection-providers/{providerKey} | Eine FinanceBankConnectionProvider lesen | accounting.bank_connection.view | providerKey | |||
GET | /api/v1/accounting/bank-connections | Liste der FinanceBankConnection | accounting.bank_connection.view | page, status, providerKey, brandId | |||
POST | /api/v1/accounting/bank-connections | Eine FinanceBankConnection anlegen | accounting.bank_connection.manage | + Rumpf | |||
DELETE | /api/v1/accounting/bank-connections/{ulid} | Eine FinanceBankConnection löschen | accounting.bank_connection.manage | ulid | |||
GET | /api/v1/accounting/bank-connections/{ulid} | Eine FinanceBankConnection lesen | accounting.bank_connection.view | ulid | |||
POST | /api/v1/accounting/bank-connections/{ulid}/begin | Bank-Zustimmung starten oder erneuern — Startet beim Aggregator Zustimmung bzw. starke Kundenauthentifizierung. Ändert keine Kontodaten — es entsteht nichts Neues (200). | accounting.bank_connection.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/bank-connections/{ulid}/refresh | Zustand und Kontenliste neu holen — Holt Status und Kontenliste beim Anbieter neu und schreibt sie an der Verknüpfung fort. Vorbedingung: eine gültige Einwilligung. | accounting.bank_connection.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/bank-connections/{ulid}/sync | Sync bank connection — Sync bank connection. Dedicated action endpoint — not a standard CRUD create. | accounting.bank_connection.sync | ulid, + Rumpf | |||
GET | /api/v1/accounting/bank-transactions | Liste der FinanceBankTransaction | accounting.transaction.view | page, accountUlid, status, from, to, q | |||
POST | /api/v1/accounting/bank-transactions | Eine FinanceBankTransaction anlegen | accounting.transaction.manage | + Rumpf | |||
POST | /api/v1/accounting/bank-transactions/auto-match | Eine FinanceBankTransaction anlegen | accounting.transaction.manage | + Rumpf | |||
GET | /api/v1/accounting/bank-transactions/{ulid} | Eine FinanceBankTransaction lesen | accounting.transaction.view | ulid | |||
POST | /api/v1/accounting/bank-transactions/{ulid}/ignore | Kontoumsatz als „nicht zuzuordnen" beiseitelegen — Setzt den Umsatz von unmatched auf ignored (Body optional {note}). Er verschwindet damit aus dem Zahlungsabgleich und aus jedem Auto-Match-Lauf — offene Rechnungen bleiben offen. Nur aus unmatched möglich (sonst 409); reversibel über /unignore. | accounting.transaction.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/bank-transactions/{ulid}/match | Umsatz einer Rechnung zuordnen — Ordnet den Bankumsatz Ausgangsrechnungen oder einer Eingangsrechnung zu und schreibt die Zahlung fort. ENDGÜLTIG — eine Rücknahme gibt es nicht (GoBD). | accounting.transaction.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/bank-transactions/{ulid}/unignore | Ignoriert-Markierung zurücknehmen — Nimmt die Ignoriert-Markierung zurück; der Umsatz erscheint wieder im offenen Abgleich. | accounting.transaction.manage | ulid, + Rumpf | |||
GET | /api/v1/accounting/cash-books | Liste der FinanceCashBook | accounting.cash_book.view | page, active, brandId | |||
POST | /api/v1/accounting/cash-books | Eine FinanceCashBook anlegen | accounting.cash_book.manage | + Rumpf | |||
GET | /api/v1/accounting/cash-books/{ulid} | Eine FinanceCashBook lesen | accounting.cash_book.view | ulid | |||
PATCH | /api/v1/accounting/cash-books/{ulid} | Eine FinanceCashBook ändern | accounting.cash_book.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/cash-books/{ulid}/close | Kassenbuch bis zu einem Tag festschreiben — Schreibt den Zeitraum bis through (Default heute) unwiderruflich fest: danach ist in diesem Buch KEINE Buchung mehr auf oder vor diesem Tag möglich. Ein bereits abgeschlossener oder späterer Tag: 409, ein Datum in der Zukunft: 422. Die Antwort trägt den festgeschriebenen Bestand. | accounting.cash_book.manage | ulid, + Rumpf | |||
GET | /api/v1/accounting/cash-books/{ulid}/entries | Liste der FinanceCashEntry | accounting.cash_book.view | ulid, page, from, to | |||
POST | /api/v1/accounting/cash-books/{ulid}/entries | Kassenzeile buchen — Bucht eine Zeile in das Kassenbuch. Gebuchte Zeilen sind unveränderlich (§ 146 AO) — eine Korrektur läuft ausschließlich über eine Storno-Gegenbuchung. | accounting.cash_book.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/cash-books/{ulid}/entries/{entryUlid}/reverse | Kassenzeile stornieren (Gegenbuchung) — Legt eine NEUE Zeile mit umgekehrtem Vorzeichen an und verändert den Kassenbestand. Die Ursprungszeile bleibt unangetastet stehen (§146 AO) — beide gehen in den DATEV-Export. Es gibt kein Zurücknehmen der Stornierung. Body optional {reason}. | accounting.cash_book.manage | ulid, entryUlid, + Rumpf | |||
GET | /api/v1/accounting/chart-of-accounts | Eine FinanceChartOfAccounts lesen | accounting.ledger_account.view | — | |||
POST | /api/v1/accounting/chart-of-accounts | Eine FinanceChartOfAccounts anlegen | accounting.ledger_account.manage | + Rumpf | |||
GET | /api/v1/accounting/cost-centers | Liste der FinanceCostCenter | accounting.cost_center.view | page, kind, active, brandId, q | |||
POST | /api/v1/accounting/cost-centers | Eine FinanceCostCenter anlegen | accounting.cost_center.manage | + Rumpf | |||
DELETE | /api/v1/accounting/cost-centers/{ulid} | Eine FinanceCostCenter löschen | accounting.cost_center.manage | ulid | |||
GET | /api/v1/accounting/cost-centers/{ulid} | Eine FinanceCostCenter lesen | accounting.cost_center.view | ulid | |||
PATCH | /api/v1/accounting/cost-centers/{ulid} | Eine FinanceCostCenter ändern | accounting.cost_center.manage | ulid, + Rumpf | |||
GET | /api/v1/accounting/direct-debit-returns | Liste der FinanceDirectDebitReturn | accounting.direct_debit_return.view | page, invoiceUlid, sepaMandateUlid, reasonCategory, brandId | |||
POST | /api/v1/accounting/direct-debit-returns | Eine FinanceDirectDebitReturn anlegen | accounting.direct_debit_return.manage | + Rumpf | |||
GET | /api/v1/accounting/document-extractions | Liste der FinanceDocumentExtraction | accounting.incoming_invoice.view | page, status, source, brandId | |||
POST | /api/v1/accounting/document-extractions | Eine FinanceDocumentExtraction anlegen | accounting.incoming_invoice.manage | + Rumpf | |||
GET | /api/v1/accounting/document-extractions/{ulid} | Eine FinanceDocumentExtraction lesen | accounting.incoming_invoice.view | ulid | |||
PATCH | /api/v1/accounting/document-extractions/{ulid} | Eine FinanceDocumentExtraction ändern | accounting.incoming_invoice.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/document-extractions/{ulid}/confirm | Belegerkennung bestätigen — Übernimmt den bestätigten Vorschlag als Eingangsrechnung im ENTWURF. Korrekturen vorher per PATCH am Vorschlag. | accounting.incoming_invoice.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/document-extractions/{ulid}/discard | Beleg-Vorschlag verwerfen — Setzt den Extraktions-Vorschlag endgültig auf discarded (Body optional {notes}). Es entsteht KEINE Eingangsrechnung, und der Vorschlag lässt sich danach nicht mehr bestätigen — der Beleg muss neu eingelesen werden. Nur aus pending möglich (sonst 409). | accounting.incoming_invoice.manage | ulid, + Rumpf | |||
GET | /api/v1/accounting/export/file | Eine FinanceDatevExport lesen | accounting.export.run | from, to, scope, format | |||
GET | /api/v1/accounting/export/preview | Eine FinanceDatevExport lesen | accounting.export.run | from, to, scope | |||
GET | /api/v1/accounting/incoming-invoices | Liste der FinanceIncomingInvoice | accounting.incoming_invoice.view | page, statusId, q, from, to, brandId, matchStatusId | |||
POST | /api/v1/accounting/incoming-invoices | Eine FinanceIncomingInvoice anlegen | accounting.incoming_invoice.manage | + Rumpf | |||
POST | /api/v1/accounting/incoming-invoices/import-e-invoice | Eine FinanceEInvoiceImport anlegen | accounting.incoming_invoice.manage | + Rumpf | |||
DELETE | /api/v1/accounting/incoming-invoices/{ulid} | Eine FinanceIncomingInvoice löschen | accounting.incoming_invoice.manage | ulid | |||
GET | /api/v1/accounting/incoming-invoices/{ulid} | Eine FinanceIncomingInvoice lesen | accounting.incoming_invoice.view | ulid | |||
PATCH | /api/v1/accounting/incoming-invoices/{ulid} | Eine FinanceIncomingInvoice ändern | accounting.incoming_invoice.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/incoming-invoices/{ulid}/approve | Approve incoming invoice — Approve incoming invoice. Dedicated action endpoint — not a standard CRUD create. | accounting.incoming_invoice.approve | ulid, + Rumpf | |||
POST | /api/v1/accounting/incoming-invoices/{ulid}/mark-paid | Mark incoming invoice as paid — Mark incoming invoice as paid. Dedicated action endpoint — not a standard CRUD create. | accounting.incoming_invoice.manage | ulid, + Rumpf | |||
GET | /api/v1/accounting/incoming-invoices/{ulid}/match | Eine FinanceIncomingInvoiceMatch lesen | accounting.incoming_invoice.view | ulid | |||
POST | /api/v1/accounting/incoming-invoices/{ulid}/match | Drei-Wege-Abgleich festhalten — Hält das Urteil des Abgleichs Bestellung/Wareneingang/Rechnung am Beleg fest und gibt die Rechnung frei, wenn sie in Toleranz liegt und die Auto-Freigabe eingeschaltet ist — deshalb das Freigabe-Recht. | accounting.incoming_invoice.approve | ulid, + Rumpf | |||
GET | /api/v1/accounting/ledger-accounts | Liste der FinanceLedgerAccount | accounting.ledger_account.view | page, type, active, brandId, q | |||
POST | /api/v1/accounting/ledger-accounts | Eine FinanceLedgerAccount anlegen | accounting.ledger_account.manage | + Rumpf | |||
DELETE | /api/v1/accounting/ledger-accounts/{ulid} | Eine FinanceLedgerAccount löschen | accounting.ledger_account.manage | ulid | |||
GET | /api/v1/accounting/ledger-accounts/{ulid} | Eine FinanceLedgerAccount lesen | accounting.ledger_account.view | ulid | |||
PATCH | /api/v1/accounting/ledger-accounts/{ulid} | Eine FinanceLedgerAccount ändern | accounting.ledger_account.manage | ulid, + Rumpf | |||
GET | /api/v1/accounting/payment-proposal | Eine FinancePaymentProposal lesen | accounting.payment_run.view | bankAccountUlid, executionDate, horizonDays, type | |||
GET | /api/v1/accounting/payment-runs | Liste der FinancePaymentRun | accounting.payment_run.view | page, statusId, bankAccountUlid, brandId | |||
POST | /api/v1/accounting/payment-runs | Eine FinancePaymentRun anlegen | accounting.payment_run.manage | + Rumpf | |||
GET | /api/v1/accounting/payment-runs/{ulid} | Eine FinancePaymentRun lesen | accounting.payment_run.view | ulid | |||
POST | /api/v1/accounting/payment-runs/{ulid}/cancel | Cancel payment run — Cancel payment run. Dedicated action endpoint — not a standard CRUD create. | accounting.payment_run.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/payment-runs/{ulid}/execute | Zahllauf als ausgeführt vermerken — Vermerkt den Zahllauf als ausgeführt. Ab hier ist das Geld unterwegs: der Lauf lässt sich nicht mehr verwerfen. | accounting.payment_run.execute | ulid, + Rumpf | |||
POST | /api/v1/accounting/payment-runs/{ulid}/export | SEPA-Datei zum Zahllauf erzeugen — Erzeugt die SEPA-Bankdatei zum Zahllauf zum Einreichen bei der Bank. Verlangt das Ausführungsrecht. | accounting.payment_run.execute | ulid, + Rumpf | |||
GET | /api/v1/accounting/payment-runs/{ulid}/file | Eine FinancePaymentRun lesen | accounting.payment_run.execute | ulid | |||
POST | /api/v1/accounting/payment-runs/{ulid}/prenotify | SEPA-Vorabankündigung versenden — Kündigt die Lastschriften dieses Laufs beim Kunden an — ausdrücklich und schon auf dem ENTWURF. Ab diesem Zeitpunkt läuft die Vorabankündigungs-Frist (accounting.sepa.prenotification_days, ab Werk 14 Kalendertage), die der Export prüft. Idempotent: eine bereits zugestellte Ankündigung wird nicht wiederholt. | accounting.payment_run.manage | ulid, + Rumpf | |||
GET | /api/v1/accounting/sepa-mandates | Liste der FinanceSepaMandate | accounting.sepa_mandate.view | page, status, expired, customerId, brandId | |||
POST | /api/v1/accounting/sepa-mandates | Eine FinanceSepaMandate anlegen | accounting.sepa_mandate.manage | + Rumpf | |||
GET | /api/v1/accounting/sepa-mandates/{ulid} | Eine FinanceSepaMandate lesen | accounting.sepa_mandate.view | ulid | |||
PATCH | /api/v1/accounting/sepa-mandates/{ulid} | Eine FinanceSepaMandate ändern | accounting.sepa_mandate.manage | ulid, + Rumpf | |||
POST | /api/v1/accounting/sepa-mandates/{ulid}/revoke | Lastschriftmandat widerrufen — Entzieht die Einzugsermächtigung: das Mandat geht auf revoked und wird in KEINEN Lastschrift-Lauf mehr aufgenommen — offene Rechnungen dieses Kunden bleiben unbezahlt stehen. Der Datensatz bleibt als Nachweis erhalten (kein DELETE). Body optional {notes}. | accounting.sepa_mandate.manage | ulid, + Rumpf |
Zweckangaben, die nicht dem Standardmuster folgen, stammen unverändert aus der Schnittstellen-Beschreibung im Code.