Budget & Positionen
Die Budgetverwaltung in InLoox umfasst mehrere zusammenhängende Entitäten: Budget, LineItem (Positionen), BudgetGroup, BudgetState, BudgetPreset, FiscalPeriod und FiscalPeriodFunding. Über die OData-API können Sie die gesamte Finanzstruktur eines Projekts programmatisch verwalten.
| Entität | Beschreibung |
|---|---|
| Budget | Das übergeordnete Budgetobjekt eines Projekts |
| LineItem | Einzelne Budgetpositionen (Einnahmen/Ausgaben) |
| BudgetGroup | Gruppierung von Positionen |
| BudgetState | Statusdefinitionen für Budgets |
| BudgetPreset | Budgetvorlagen |
| FiscalPeriod | Geschäftsperioden |
| FiscalPeriodFunding | Finanzierungsplanung pro Periode |
| LineItemTemplate | Vorlagen für Budgetpositionen |
Budget
Datenmodell
| Property | Type | Description |
|---|---|---|
BudgetId | Guid (UUID) | Eindeutiger Bezeichner des Budgets (Primärschlüssel). |
ProjectId | Guid | Zugehöriges Projekt. |
BudgetType | int32 | Budgettyp (z. B. Einnahmen, Ausgaben). |
BudgetStateId | Guid | Aktueller Status des Budgets. |
ConsecutiveNumber | int32 | Fortlaufende Nummer. |
Name | string? | Name des Budgets. |
BudgetDate | DateTimeOffset | Datum des Budgets. |
BudgetContactId | Guid? | Zuständiger Kontakt. |
BudgetCreatedDate | DateTimeOffset | Erstellungsdatum. |
BudgetChangedDate | DateTimeOffset? | Datum der letzten Änderung. |
AmountAssets | double | Gesamtbetrag. |
Endpunkte
/odata/BudgetAlle Budgets abrufen. Unterstützt OData-Abfrageparameter.
/odata/BudgetNeues Budget erstellen.
| Parameter | Type | Required | Description |
|---|---|---|---|
Body | Delta<ApiBudget> | ✅ | JSON-Objekt mit den Budgeteigenschaften. |
/odata/Budget({key})Ein einzelnes Budget abrufen.
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
/odata/Budget({key})Budget teilweise aktualisieren.
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Body | Delta<ApiBudget> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
/odata/Budget({key})Budget löschen.
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
/odata/Budget/$countGesamtanzahl aller Budgets abrufen.
Rechnungserstellung
/odata/Budget({key})/GetUnbilledLineitemsCount()Anzahl der noch nicht abgerechneten Positionen abrufen.
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
/odata/Budget({key})/CreateInvoiceForAllLineitems()Eine Rechnung für alle Positionen des Budgets erstellen.
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
/odata/Budget({key})/CreateInvoiceForSelectedLineitemsEine Rechnung für ausgewählte Positionen erstellen.
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
lineItemIds | Guid[] | ✅ | Array der LineItem-IDs (als Query-Parameter). |
Body | object | ✅ | JSON-Objekt mit weiteren Rechnungsdetails. |
Dokumente & Verknüpfungen
/odata/Budget({key})/AddDocumentToBudgetEin Dokument mit dem Budget verknüpfen.
/odata/Budget({key})/RemoveDocumentFromBudgetEin Dokument vom Budget entfernen.
/odata/Budget({key})/AddRelationEine Verknüpfung zum Budget hinzufügen.
/odata/Budget({key})/RemoveRelationEine Verknüpfung vom Budget entfernen.
Vorlagen
/odata/Budget({key})/AddLineItemFromTemplateEine Position aus einer Vorlage zum Budget hinzufügen.
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Body | object | ✅ | JSON-Objekt mit der Vorlagen-ID. |
LineItem (Positionen)
Datenmodell
| Property | Type | Description |
|---|---|---|
LineItemId | Guid (UUID) | Eindeutiger Bezeichner der Position (Primärschlüssel). |
BudgetId | Guid | Zugehöriges Budget. |
GroupId | Guid | Zugehörige Budgetgruppe. |
PerformedByContactId | Guid? | Ausführender Kontakt. |
OrdinalPosition | int32 | Reihenfolgeposition. |
ConsecutiveNumber | int32 | Fortlaufende Nummer. |
ShortDescription | string? | Kurzbeschreibung der Position. |
Quantity | double | Menge. |
Unit | string? | Einheit (z. B. "Stunden", "Stück"). |
PricePerUnit | double | Preis pro Einheit. |
SecondaryPricePerUnit | double | Sekundärer Preis pro Einheit (Einkaufspreis). |
IsCustomPricePerUnit | boolean | Benutzerdefinierter Preis aktiviert. |
IsBilled | boolean | Position ist abgerechnet. |
IsBillable | boolean | Position ist abrechenbar. |
CreatedByContactId | Guid | Ersteller der Position. |
CreatedDate | DateTimeOffset | Erstellungsdatum. |
ChangedByContactId | Guid? | Letzter Bearbeiter. |
ChangedDate | DateTimeOffset? | Datum der letzten Änderung. |
ProvisionDate | DateTimeOffset? | Leistungsdatum. |
DescriptionText | string? | Beschreibung als Klartext. |
DescriptionHTML | string? | Beschreibung als HTML. |
ProjectId | Guid | Zugehöriges Projekt. |
LineItemType | LineItemType | Typ der Position (Enum: 0, 1, 2). |
Endpunkte
/odata/LineItemAlle Positionen abrufen.
/odata/LineItemNeue Position erstellen.
| Parameter | Type | Required | Description |
|---|---|---|---|
Body | Delta<ApiLineItem> | ✅ | JSON-Objekt mit den Positionseigenschaften. |
/odata/LineItem({key})Eine einzelne Position abrufen.
/odata/LineItem({key})Position teilweise aktualisieren.
/odata/LineItem({key})Position löschen.
/odata/LineItem/$countGesamtanzahl aller Positionen abrufen.
/odata/LineItem({key})/CopyPosition kopieren.
/odata/LineItem({key})/AddDocumentToLineItemDokument mit der Position verknüpfen.
/odata/LineItem({key})/RemoveDocumentFromLineItemDokument von der Position entfernen.
/odata/LineItem({key})/AddRelationVerknüpfung zur Position hinzufügen.
/odata/LineItem({key})/RemoveRelationVerknüpfung von der Position entfernen.
BudgetGroup
Datenmodell
| Property | Type | Description |
|---|---|---|
BudgetGroupId | Guid (UUID) | Eindeutiger Bezeichner der Gruppe. |
Name | string? | Name der Budgetgruppe. |
OrdinalPosition | int32 | Sortierposition. |
PurchasePrice | double | Einkaufspreis. |
DispositionPrice | double | Verkaufspreis. |
Visible | boolean? | Sichtbarkeit der Gruppe. |
Endpunkte
/odata/BudgetGroupAlle Budgetgruppen abrufen.
/odata/BudgetGroupNeue Budgetgruppe erstellen.
/odata/BudgetGroup({key})Eine einzelne Budgetgruppe abrufen.
/odata/BudgetGroup({key})Budgetgruppe aktualisieren.
/odata/BudgetGroup({key})Budgetgruppe löschen.
/odata/BudgetGroup/$countGesamtanzahl der Budgetgruppen abrufen.
BudgetState
Datenmodell
| Property | Type | Description |
|---|---|---|
BudgetStateId | Guid (UUID) | Eindeutiger Bezeichner des Budgetstatus. |
Name | string? | Name des Status. |
IsHidden | boolean | Gibt an, ob der Status ausgeblendet ist. |
Endpunkte
/odata/BudgetStateAlle Budgetstatus-Definitionen abrufen.
/odata/BudgetStateNeuen Budgetstatus erstellen.
/odata/BudgetState({key})Einen einzelnen Budgetstatus abrufen.
/odata/BudgetState({key})Budgetstatus aktualisieren.
/odata/BudgetState({key})Budgetstatus löschen.
/odata/BudgetState/$countGesamtanzahl der Budgetstatus-Definitionen abrufen.
BudgetPreset (Budgetvorlagen)
Datenmodell
| Property | Type | Description |
|---|---|---|
PresetId | Guid (UUID) | Eindeutiger Bezeichner der Vorlage. |
PresetType | int32 | Typ der Vorlage. |
Name | string? | Name der Vorlage. |
PresetDate | DateTimeOffset | Datum der Vorlage. |
AmountAssets | double | Gesamtbetrag. |
IsGlobal | boolean | Gibt an, ob die Vorlage global verfügbar ist. |
Endpunkte
/odata/BudgetPresetAlle Budgetvorlagen abrufen.
/odata/BudgetPresetNeue Budgetvorlage erstellen.
/odata/BudgetPreset({key})Eine einzelne Vorlage abrufen.
/odata/BudgetPreset({key})Vorlage aktualisieren.
/odata/BudgetPreset({key})Vorlage löschen.
/odata/BudgetPreset/$countGesamtanzahl der Vorlagen abrufen.
/odata/BudgetPreset({key})/LoadTemplateForProjectBudgetvorlage in ein Projekt laden.
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Guid | ✅ | Die PresetId. |
Body | object | ✅ | JSON-Objekt mit der Projekt-ID. |
/odata/BudgetPreset/SaveTemplateForBudgetEin Budget als Vorlage speichern.
| Parameter | Type | Required | Description |
|---|---|---|---|
Body | object | ✅ | JSON-Objekt mit der Budget-ID und dem Vorlagennamen. |
FiscalPeriod (Geschäftsperioden)
Datenmodell
| Property | Type | Description |
|---|---|---|
FiscalPeriodId | Guid (UUID) | Eindeutiger Bezeichner der Geschäftsperiode. |
Name | string? | Name der Periode. |
PeriodType | int32 | Periodentyp (z. B. Monat, Quartal, Jahr). |
PeriodStart | DateTimeOffset | Startdatum der Periode. |
PeriodEnd | DateTimeOffset | Enddatum der Periode. |
Endpunkte
Geschäftsperioden können nur gelesen, aber nicht über die API erstellt, geändert oder gelöscht werden. Die Verwaltung erfolgt über die InLoox-Administrationseinstellungen.
/odata/FiscalPeriodAlle Geschäftsperioden abrufen.
/odata/FiscalPeriod({key})Eine einzelne Geschäftsperiode abrufen.
/odata/FiscalPeriod/$countGesamtanzahl der Geschäftsperioden abrufen.
FiscalPeriodFunding (Periodenfinanzierung)
Datenmodell
| Property | Type | Description |
|---|---|---|
FiscalPeriodFundingId | Guid (UUID) | Eindeutiger Bezeichner. |
FiscalPeriodId | Guid | Zugehörige Geschäftsperiode. |
FiscalPeriodName | string? | Name der Geschäftsperiode (schreibgeschützt). |
ProjectId | Guid | Zugehöriges Projekt. |
Description | string? | Beschreibung. |
BudgetOpex | double? | Budgetierter OPEX-Betrag. |
BudgetCapex | double? | Budgetierter CAPEX-Betrag. |
BudgetTotal | double? | Budgetierter Gesamtbetrag. |
PlannedOpex | double | Geplanter OPEX-Betrag. |
PlannedCapex | double | Geplanter CAPEX-Betrag. |
PlannedTotal | double | Geplanter Gesamtbetrag. |
ActualOpex | double | Tatsächlicher OPEX-Betrag. |
ActualCapex | double | Tatsächlicher CAPEX-Betrag. |
ActualTotal | double | Tatsächlicher Gesamtbetrag. |
EstimatedOpex | double | Geschätzter OPEX-Betrag. |
EstimatedCapex | double | Geschätzter CAPEX-Betrag. |
EstimatedTotal | double | Geschätzter Gesamtbetrag. |
ActualBenefit | double | Tatsächlicher Nutzen. |
PlannedBenefit | double | Geplanter Nutzen. |
PeriodType | int32 | Periodentyp. |
BudgetApprovalState | int32 | Genehmigungsstatus des Budgets. |
Endpunkte
/odata/FiscalPeriodFundingAlle Periodenfinanzierungen abrufen.
/odata/FiscalPeriodFundingNeue Periodenfinanzierung erstellen.
/odata/FiscalPeriodFunding({key})Eine einzelne Periodenfinanzierung abrufen.
/odata/FiscalPeriodFunding({key})Periodenfinanzierung aktualisieren.
/odata/FiscalPeriodFunding({key})Periodenfinanzierung löschen.
/odata/FiscalPeriodFunding/$countGesamtanzahl der Periodenfinanzierungen abrufen.
/odata/FiscalPeriodFunding/CreateFundingPlanForProjectFinanzierungsplan für ein Projekt automatisch erstellen.
| Parameter | Type | Required | Description |
|---|---|---|---|
Body | object | ✅ | JSON-Objekt mit der Projekt-ID. |
LineItemTemplate (Positionsvorlagen)
Datenmodell
| Property | Type | Description |
|---|---|---|
LineItemTemplateId | Guid (UUID) | Eindeutiger Bezeichner der Positionsvorlage. |
Name | string? | Name der Vorlage. |
ShortDescription | string? | Kurzbeschreibung. |
LongDescription | string? | Ausführliche Beschreibung. |
Quantity | double | Standardmenge. |
Endpunkte
/odata/LineItemTemplateAlle Positionsvorlagen abrufen.
/odata/LineItemTemplateNeue Positionsvorlage erstellen.
/odata/LineItemTemplate({key})Eine einzelne Positionsvorlage abrufen.
/odata/LineItemTemplate({key})Positionsvorlage aktualisieren.
/odata/LineItemTemplate({key})Positionsvorlage löschen.
/odata/LineItemTemplate/$countGesamtanzahl der Positionsvorlagen abrufen.
/odata/LineItemTemplate({key})/AddGroupEine Gruppe zur Positionsvorlage hinzufügen.
/odata/LineItemTemplate({key})/RemoveGroupEine Gruppe von der Positionsvorlage entfernen.
DynamicBudget & DynamicLineItem
Für Budgets und Positionen stehen jeweils abgeflachte, schreibgeschützte Ansichten zur Verfügung, die Daten aus mehreren Entitäten zusammenführen.
DynamicBudget
/odata/DynamicBudgetAbgeflachte Budgetliste mit Projekt-, Status- und Berechtigungsdaten.
/odata/DynamicBudget/$countGesamtanzahl der DynamicBudget-Einträge.
DynamicLineItem
/odata/DynamicLineItemAbgeflachte Positionsliste mit Budget-, Projekt- und Gruppendaten.
/odata/DynamicLineItem/$countGesamtanzahl der DynamicLineItem-Einträge.
DynamicBudget und DynamicLineItem unterstützen ausschließlich GET-Anfragen. Zum Erstellen oder Bearbeiten verwenden Sie die regulären Endpunkte.
OData-Abfragebeispiele
Alle Budgets eines Projekts
GET /odata/Budget?$filter=ProjectId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
Positionen eines Budgets abrufen
GET /odata/LineItem?$filter=BudgetId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
Nur abrechenbare, nicht abgerechnete Positionen
GET /odata/LineItem?$filter=IsBillable eq true and IsBilled eq false
Position erstellen
POST /odata/LineItem
Content-Type: application/json
{
"BudgetId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"GroupId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ShortDescription": "Beratungsstunden",
"Quantity": 8.0,
"Unit": "Stunden",
"PricePerUnit": 150.00,
"IsBillable": true,
"ProjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Finanzierungsplan für alle Perioden eines Projekts
GET /odata/FiscalPeriodFunding?$filter=ProjectId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'&$orderby=FiscalPeriodName
Verwenden Sie CreateInvoiceForAllLineitems oder CreateInvoiceForSelectedLineitems, um aus Budgetpositionen direkt Rechnungen zu generieren. Prüfen Sie vorher mit GetUnbilledLineitemsCount, wie viele Positionen noch offen sind.