Zum Inhalt springen

API

Der invoiceR stellt eine REST-Schnittstelle mit JSON bereit. Jede Anfrage braucht eine Authentifizierung und läuft mit den Rechten des Benutzers, mit dem sich die Anwendung anmeldet.

Der invoiceR beschreibt seine Endpunkte in drei OpenAPI-Dokumenten:

SchnittstelleFür wenSwagger UIOpenAPI-Datei
Public APIAnwendungen eines Mandanten, zum Beispiel ein Scan-Dienst oder ein eigenes Portal/docs/public/docs/public.json
Management APIPartner, die eine Installation verwalten (Benutzer, Rollen, Stammdaten, Einstellungen)/docs/management/docs/management.json
Interne APINur für die Oberfläche des invoiceR. Kann sich ohne Ankündigung ändern./swagger

Die Pfade gelten relativ zur Adresse des Backends, also zum Beispiel https://<server>/docs/public.

Die Swagger-Dokumentation zeigt alle Endpunkte mit Parametern, Beispielen und den Schemas der Antworten.

  1. Öffne https://<server>/Ui/Login und melde dich mit einem Benutzer des invoiceR an.
  2. Auf der Startseite des Backends findest du unter anderem die Links Öffentlich (Public API) und Management (Management API). Alternativ öffnest du direkt https://<server>/docs/public oder https://<server>/docs/management.

Der Benutzer braucht die Berechtigung Swagger UI (unter Administration). Fehlt sie, antwortet der invoiceR mit dem Status 403. Bist du nicht angemeldet, leitet er dich auf die Anmeldeseite um.

Die Public API deckt den Lebenszyklus eines Belegs ab. Die Endpunkte verlangen dieselben Berechtigungen wie die entsprechenden Funktionen in der Oberfläche:

FunktionWas sie tutBenötigte Berechtigung
Beleg erstellenNimmt eine Rechnung als PDF entgegen und startet den Workflow.Aufgaben und Dokument in Browser erfassen
Dokument hochladenLegt ein Dokument mit Zusatzdaten (erkannter Text, gewähltes Formular, freie Zusatzdaten als JSON) für den Import bereit. Wird zum Beispiel für Spesen aus der Mobile-App verwendet.Dokument in Browser erfassen
Beleg bearbeitenÄndert einen bestehenden Beleg.Aufgabe editieren
Beleg visierenErteilt das Visum für alle Positionen eines Belegs.Visum erteilen
Beleg ablehnenLehnt alle Positionen eines Belegs mit einer Begründung ab.Visum ablehnen
Workflow fortsetzenSchliesst die offene Aufgabe eines Belegs ab und führt ihn in den nächsten Schritt. Die Validierungen laufen dabei wie in der Oberfläche.Mit Beleg fortfahren

Die genauen Pfade, Methoden und Felder findest du in der Swagger UI unter /docs/public.

Die Management API richtet sich an Partner, die eine Installation betreuen. Sie bietet unter anderem:

  • Benutzer und Rollen: Benutzer und Rollen abfragen, Benutzer ändern, Rollen eines Benutzers setzen.
  • Stammdaten: bestehende Konten, Lieferanten und Währungen ändern.
  • Visumsstufen: Visumsstufen abfragen und deren Limiten ändern.
  • Einstellungen: einzelne Einstellungen des Mandanten lesen und schreiben.
  • Version: die installierte Version abfragen.

Jeder Endpunkt prüft die passende Berechtigung, zum Beispiel Stammdaten für die Stammdaten oder die Benutzerverwaltung für Benutzer und Rollen. Einige Endpunkte (Mandanten anlegen, System herunterfahren) sind nur für den Host-Betrieb gedacht.

Endpunkte der Public API und der Management API geben das Ergebnis direkt als JSON zurück, ohne die Hülle { "result": …, "success": … }, die die interne API verwendet.

Kann der invoiceR eine Anfrage nicht ausführen, antwortet er mit einem HTTP-Fehlerstatus.

Fachliche Fehler des invoiceR erkennst du am Feld isInvoiceR. Die Antwort sieht so aus:

{
"isInvoiceR": true,
"code": 500,
"message": "Kurze Beschreibung des Fehlers",
"type": "TaskLockedException",
"details": "{\"taskId\":4711,\"taskExternalId\":\"R-000123\",\"isCurrentUser\":false,\"lockedByDisplayName\":\"Muster Max\",\"lockedOn\":\"2026-10-29T08:15:00\",\"canUnlockTask\":false}",
"eventNames": []
}
FeldBedeutung
isInvoiceRImmer true bei fachlichen Fehlern des invoiceR.
codeDerselbe Wert wie der HTTP-Status. Bei den heutigen fachlichen Fehlern ist das in der Regel 500.
typeArt des Fehlers. Daran entscheidet deine Anwendung, wie sie reagiert.
detailsZusatzinformationen zum Fehler als JSON-Text. Der Aufbau hängt von type ab.
eventNamesInterne Ereignisse, die der Fehler ausgelöst hat. In der Regel leer.

Die Schemas der Fehlertypen und ihrer Details sind in den OpenAPI-Dokumenten enthalten. Häufige Typen:

  • TaskLockedException: Der Beleg ist gerade von einem anderen Benutzer geöffnet und gesperrt. details nennt die Aufgabe, wer sie sperrt, seit wann und ob der aktuelle Benutzer die Sperre aufheben darf. Versuche es später erneut.
  • ValidationException: Eine oder mehrere Validierungen sind fehlgeschlagen, zum Beispiel beim Fortsetzen des Workflows. details listet die fehlgeschlagenen Validierungen auf. Änderungen, die während der Validierung gemacht wurden, verwirft der invoiceR.

Alle anderen Fehler (zum Beispiel fehlende Berechtigung, ungültige Anfrage, Serverfehler) erkennst du am HTTP-Status: 401 ohne gültige Anmeldung, 403 ohne Berechtigung, 400 bei ungültigen Daten, 500 bei einem Fehler im Server.