Diese Referenz listet die Felder der API-Endpunkte expensecategory (Belegart, nur GET) und expense (Beleg) auf. Wie du sie verwendest, steht in Spesen & Belege über die API anlegen. Mit * markierte Felder sind beim Anlegen Pflicht.
Belegart – expensecategory
Nur GET, rein informativ. Über diesen Endpunkt suchst du die passende Belegart und ihre ID.
| Feld | Datentyp | Beschreibung |
|---|---|---|
name | string | Name der Belegart |
internalName | string | interner Name der Belegart |
description | string | Beschreibung |
active | boolean | nutzbar ja/nein |
type | enum | Belegtyp |
currency | number | Währungs-ID |
defaultPaymentMethod | enum | Standard-Zahlungsart |
defaultVehicle | enum | Standard-Fahrzeug |
Beleg – expense (alle Felder)
Vollständige Übersicht aller Felder, die ein Beleg tragen kann. Welche davon je Belegart Pflicht sind, steht weiter unten.
| Feld | Datentyp | Beschreibung |
|---|---|---|
date | string | Belegdatum im ISO-Format (YYYY-MM-DD). Standard: aktueller Tag |
number | string | Belegnummer (automatisch generiert) |
voucherNumber | string | Nummer des Originalbelegs |
description | string | Beschreibung |
type | enum | Belegtyp (Reisekosten, Provision usw.); durch die Belegart bestimmt |
expenseCategory | number | ID der Belegart |
coworker | number | Mitarbeiter-ID |
project | number | Projekt-ID |
customer | number | Kunden-ID |
financeRecordID | number | Rechnungs-ID |
quantity | number | Menge (für Berechnungen mit Basispreis) |
voucherCurrencyFactor | number | Währungsfaktor des Belegs (automatisch generiert) |
voucherVat | number | Umsatzsteuer des Belegs |
voucherCurrency | number | Währungs-ID |
voucherNetto | number | Netto (Belegwährung) |
voucherGross | number | Brutto (Belegwährung) |
voucherPrivateShare | number | privater Anteil des Mitarbeiters; wird vom Erstattungsbetrag abgezogen (Belegwährung) |
relevantNetto | number | Nettobetrag (Mandantenwährung) |
externalBillable | enum | Abrechenbar gegenüber Organisation |
externalNetto | number | abrechenbarer Betrag für Organisation (Mandantenwährung) |
projectBillable | enum | Abrechenbar gegenüber Projekt |
projectNetto | number | abrechenbarer Betrag für Projekt (Mandantenwährung) |
coworkerBillable | enum | Abrechenbar gegenüber Mitarbeiter |
coworkerNetto | number | abrechenbarer Betrag für Mitarbeiter (Mandantenwährung) |
coworkerNettoTaxfree | number | steuerfreier abrechenbarer Betrag für Mitarbeiter (Mandantenwährung) |
startLocation | string | Startort |
finishLocation | string | Zielort |
distance | number | Distanz in Kilometern |
overtime | number | Überstunden in Minuten |
vehicle | enum | Fahrzeugtyp (privat / Firma) |
paymentMethod | enum | Zahlungsart (privat / Firma) |
containsBreakfast | boolean | enthält Frühstück |
containsLunch | boolean | enthält Mittagessen |
containsDinner | boolean | enthält Abendessen |
travelExpense | number | Reise-ID |
time | enum | Zeit für Verpflegungsmehraufwand |
isTaxMandatory | boolean | Pflichtbesteuerung |
costcenterOverride | number | Kostenstellen-ID |
costunitOverride | number | Kostenträger-ID |
costtypeOverride | number | Kostenart-ID |
costunitAuto | number | Kostenträger-ID (aus Belegart) |
costtypeAuto | number | Kostenart-ID (aus Belegart) |
costcenterAuto | number | Kostenstellen-ID (aus Belegart) |
Pflichtfelder je Belegart
Allen Belegarten gemeinsam sind expenseCategory* und coworker* als Pflicht. Zusätzlich gelten je Typ:
Provision
Pflicht: expenseCategory*, coworker*, voucherNetto*. Optional u. a. project, customer, financeRecordID, voucherCurrency, relevantNetto, die Abrechenbar-Felder, travelExpense sowie die Kostenstellen-/Kostenträger-/Kostenart-Overrides.
Überstundenauszahlung (Overtime)
Pflicht: expenseCategory*, coworker*, coworkerNetto*, overtime*. Hinweis: Es muss mindestens einer der Werte coworkerNetto oder overtime angegeben werden.
Kilometergeld (Mileage)
Pflicht: expenseCategory*, coworker*, distance*, vehicle*. Optional u. a. voucherNumber, voucherNetto, startLocation, finishLocation, die Abrechenbar-Felder und die Kostenstellen-Overrides.
Material
Pflicht: expenseCategory*, coworker*, quantity*. quantity dient der Berechnung mit dem Basispreis.
Beleg (Expense voucher)
Pflicht: expenseCategory*, coworker*, quantity*, voucherNetto*, voucherGross*, paymentMethod*. Hinweis: Sind sowohl voucherNetto als auch voucherGross leer, wird der Basispreis der Belegart genutzt; ist keiner definiert, kommt ein Fehler. Ist nur voucherGross angegeben, wird voucherNetto berechnet.
Verpflegungsmehraufwand (Meal)
Pflicht: expenseCategory*, coworker*, containsBreakfast*, containsLunch*, containsDinner*, time*. Optional u. a. isTaxMandatory, die Abrechenbar-Felder und die Kostenstellen-Overrides.
Zuschlag (Supplement)
Pflicht: expenseCategory*, coworker*, voucherNetto*. Optional u. a. project, customer, die Abrechenbar-Felder, travelExpense und die Kostenstellen-Overrides.
Eingangsrechnung (Expense invoice)
Pflicht: expenseCategory*, coworker*, financeRecordID*, paymentMethod*. Optional u. a. voucherPrivateShare, die Abrechenbar-Felder und die Kostenstellen-Overrides.
Enum-Werte
Einige Felder erwarten feste Aufzählungswerte. Belegt sind unter anderem:
| Feld | Beispielwert | Bedeutung |
|---|---|---|
externalBillable, projectBillable, coworkerBillable | YES_MANUAL | abrechenbar, Betrag manuell gesetzt (Fallback: Wert der Belegart) |
vehicle | PRIVATE | privates Fahrzeug (alternativ Firmenfahrzeug) |
paymentMethod | PRIVATE | privat bezahlt (alternativ Firma) |
time (Verpflegung) | RATE_24H | Pauschale für 24 Stunden |
Die jeweils gültigen Werte eines Enums liefert die API selbst über die zugehörige enum-Ressource (z. B. /api/enum/contactfieldtype); im API-Explorer kannst du sie durchsuchen.
Beispiel-Requests je Belegart
Jeweils ein POST /api/expense mit den Pflichtfeldern (IDs sind exemplarisch):
// Provision
{ "date": "2025-03-01", "description": "Provision", "expenseCategory": 176370223, "coworker": 54967, "voucherNetto": 100, "coworkerBillable": "YES_MANUAL" }
// Überstundenauszahlung
{ "date": "2025-03-07", "expenseCategory": 174025224, "coworker": 54967, "overtime": 60, "coworkerBillable": "YES_MANUAL" }
// Kilometergeld
{ "date": "2025-03-03", "expenseCategory": 11582821, "coworker": 54967, "distance": 100, "vehicle": "PRIVATE" }
// Material
{ "date": "2025-03-07", "expenseCategory": 15478132, "coworker": 54967, "quantity": 100, "coworkerBillable": "YES_MANUAL" }
// Beleg (Expense voucher)
{ "date": "2025-03-07", "expenseCategory": 12199867, "coworker": 54967, "quantity": 2, "voucherNetto": 200, "paymentMethod": "PRIVATE" }
// Verpflegungsmehraufwand
{ "date": "2025-03-10", "expenseCategory": 69707469, "coworker": 54967, "containsBreakfast": true, "containsLunch": true, "time": "RATE_24H" }
// Zuschlag
{ "date": "2025-03-14", "expenseCategory": 185792490, "coworker": 54967, "voucherNetto": 100, "coworkerBillable": "YES_MANUAL" }
// Eingangsrechnung
{ "date": "2025-03-13", "expenseCategory": 185767407, "coworker": 54967, "financeRecordID": 185797405, "paymentMethod": "PRIVATE" }
Hinweise
- Automatisch generierte Felder (z. B.
number,voucherCurrencyFactor) musst du nicht mitgeben. - Nicht als Pflicht markierte Beträge berechnet das System – ein manuelles Überschreiben kann beim späteren Bearbeiten im System wieder überschrieben werden.
- Die Abrechenbar-Felder nutzen den Wert der Belegart als Fallback; abweichende Werte musst du manuell setzen.
Verwandte Themen
- Spesen & Belege über die API anlegen API Anleitung
- Aufbau der API-Adressen (URL-Struktur) API Konzept
- Thema: Kosten & Reisekosten Kosten & Reisekosten