Anlagegüter
Die Anlagegüter.
GET/api/invoice/fixed_asset
Query-Parameter
idinteger | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE | Standardwert: false |
namestring | |
inventoryNumberstring | Inventarnummer - frei vergeben, aber für die Inventur unverzichtbar. | Benötigt Zugriffs-Tag: SCOPE |
acquisitionDatestring | Tag der Anschaffung oder Herstellung. Bestimmt den Beginn der Abschreibung und den Zeitanteil im ersten Jahr: abgeschrieben wird ab dem Anschaffungsmonat, angefangene Monate zählen voll (§ 7 Abs. 1 Satz 4 EStG). |
acquisitionCostnumber | Anschaffungs- oder Herstellungskosten. Netto, soweit die Vorsteuer abziehbar ist. Ist sie das nicht – im ideellen Bereich eines Vereins etwa –, gehört sie zu den Anschaffungskosten und erhöht damit die Bemessungsgrundlage. |
usefulLifeMonthsstring | Betriebsgewöhnliche Nutzungsdauer in Monaten. In Monaten statt in Jahren, weil die Abschreibung monatsgenau läuft und es Nutzungsdauern unter einem Jahr gibt. |
depreciationMethodstring | |
ledgerAccountstring | Aktivkonto, auf dem das Gut steht – z. B. SKR04 0630. |
depreciationAccountstring | Aufwandskonto der Abschreibung – z. B. SKR04 6220. |
costCenterstring | Die steuerliche Sphäre, der das Gut dient. | Erfordert Zugriffs-Tag: SCOPE |
expenseCategorystring | Die EÜR-Kategorie der Abschreibung. Dieselbe Brücke wie am Sachkonto: wer die EÜR führt, bekommt seine Zeile in der Anlage EÜR, ohne dass es einen Kontenrahmen bräuchte. | Erfordert Zugriffs-Tag: SCOPE |
incomingInvoicestring | Der Beleg, aus dem das Gut entstanden ist. | Erfordert Zugriffs-Tag: SCOPE |
disposalDatestring | Tag des Abgangs - Verkauf, Verschrottung, Entnahme. | Benötigtes Zugriffsrecht: SCOPE |
disposalTaxRatestring | Umsatzsteuersatz auf den Verkaufserlös, in Prozent. Der Verkauf eines Anlageguts ist ein steuerpflichtiger Umsatz wie jeder andere - vorher wurde der Erlös netto ohne Steuer gebucht, und die Umsatzsteuer fehlte in Bilanz und Voranmeldung. Bewusst ohne Vorgabewert: ob Steuer anfällt, hängt am Vorgang. Eine Verschrottung, eine Entnahme und der Verkauf aus dem ideellen Bereich eines Vereins sind steuerfrei; der gewerbliche Verkauf ist es nicht. Ein geratener Satz wäre in der Hälfte der Fälle falsch. | Benötigt Zugriffsrecht: SCOPE |
isMovableboolean | Bewegliches Wirtschaftsgut? Die degressive AfA des § 7 Abs. 2 EStG gilt nur für bewegliche Wirtschaftsgüter des Anlagevermögens – ein Gebäude oder eine Software degressiv abzuschreiben ist unzulässig, und ohne dieses Merkmal konnte es niemand verhindern. Standardwert true: Betriebs- und Geschäftsausstattung ist in diesem System der Regelfall. |
createdstring | |
updatedstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Anlagegüterarray<FixedAsset>
Felder anzeigen (20)
idintegerPrimärschlüssel des Anlageguts. Interne ID.
inventory_numberstringInventarnummer - frei vergeben, aber für die Inventur unverzichtbar.
acquisition_datestring (date-time)Tag der Anschaffung oder Herstellung. Bestimmt den Beginn der Abschreibung und den Zeitanteil im ersten Jahr: abgeschrieben wird ab dem Anschaffungsmonat, angefangene Monate zählen voll (§ 7 Abs. 1 Satz 4 EStG).
acquisition_costnumber (float)Anschaffungs- oder Herstellungskosten. Netto, soweit die Vorsteuer abziehbar ist. Ist sie das nicht - im ideellen Bereich eines Vereins etwa -, gehört sie zu den Anschaffungskosten und erhöht damit die Bemessungsgrundlage.
useful_life_monthsintegerBetriebsgewöhnliche Nutzungsdauer in Monaten. In Monaten statt in Jahren, weil die Abschreibung monatsgenau läuft und es Nutzungsdauern unter einem Jahr gibt.
depreciation_methodstringAbschreibungsmethode, zum Beispiel linear.
ledger_accountLedgerAccountAktivkonto, auf dem das Gut steht – z. B. SKR04 0630.
Felder anzeigen (15)
display_namestringidintegerPrimärschlüssel des Hauptbuchkontos. Interne ID.
numberstringKontonummer im Kontenrahmen, z.B. "1200" (SKR03 Bank) oder "40000" (SKR42). Als String geführt, weil SKR42 fünfstellig ist und führende Nullen bedeutungstragend sein können.
chart_of_accountsstringKontenrahmen, zu dem das Konto gehört, zum Beispiel SKR03.
account_typestringArt des Kontos, zum Beispiel Aktiv oder Erlös.
default_taxTaxSteuersatz, der beim Buchen auf dieses Konto vorgeschlagen wird. Bei Erlös- und Aufwandskonten ist der Satz durch die Kontonummer vorgegeben (etwa „Erlöse 19% USt“), deshalb hängt er am Konto und nicht an der einzelnen Buchung.
tax_accountLedgerAccountGegenkonto für die Steuer, die beim Buchen auf dieses Konto entsteht. Bei Erlöskonten das Umsatzsteuerkonto, bei Aufwandskonten das Vorsteuerkonto. Damit lässt sich aus einem Bruttobetrag automatisch der dreizeilige Buchungssatz erzeugen.
expense_categoryExpenseCategory10Brücke zur EÜR: auf welcher Zeile der Anlage EÜR dieses Konto zählt. Erlaubt es, beide Gewinnermittlungsarten aus denselben Belegen zu bedienen - etwa im Wechseljahr oder wenn ein Verein den wirtschaftlichen Geschäftsbetrieb per EÜR und den Rest bilanziell führt.
cost_center_requiredbooleanOb auf diesem Konto eine Kostenstelle angegeben werden muss. Der SKR42 bildet die vier steuerlichen Sphären eines gemeinnützigen Vereins über Kostenstellen ab, nicht über getrennte Konten. Für die Erfolgskonten ist die Angabe dort deshalb Pflicht.
is_systembooleanVom Kontenrahmen-Initialisierer angelegt. Nummer und Art sind dann durch den Rahmen vorgegeben und sollten nicht geändert werden.
is_activebooleanKonten lassen sich stilllegen, statt sie zu löschen - bebuchte Konten dürfen nicht verschwinden.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
depreciation_accountLedgerAccountAufwandskonto der Abschreibung – z. B. SKR04 6220.
Felder anzeigen (15)
display_namestringidintegerPrimärschlüssel des Hauptbuchkontos. Interne ID.
numberstringKontonummer im Kontenrahmen, z.B. "1200" (SKR03 Bank) oder "40000" (SKR42). Als String geführt, weil SKR42 fünfstellig ist und führende Nullen bedeutungstragend sein können.
chart_of_accountsstringKontenrahmen, zu dem das Konto gehört, zum Beispiel SKR03.
account_typestringArt des Kontos, zum Beispiel Aktiv oder Erlös.
default_taxTaxSteuersatz, der beim Buchen auf dieses Konto vorgeschlagen wird. Bei Erlös- und Aufwandskonten ist der Satz durch die Kontonummer vorgegeben (etwa „Erlöse 19% USt“), deshalb hängt er am Konto und nicht an der einzelnen Buchung.
tax_accountLedgerAccountGegenkonto für die Steuer, die beim Buchen auf dieses Konto entsteht. Bei Erlöskonten das Umsatzsteuerkonto, bei Aufwandskonten das Vorsteuerkonto. Damit lässt sich aus einem Bruttobetrag automatisch der dreizeilige Buchungssatz erzeugen.
expense_categoryExpenseCategory10Brücke zur EÜR: auf welcher Zeile der Anlage EÜR dieses Konto zählt. Erlaubt es, beide Gewinnermittlungsarten aus denselben Belegen zu bedienen - etwa im Wechseljahr oder wenn ein Verein den wirtschaftlichen Geschäftsbetrieb per EÜR und den Rest bilanziell führt.
cost_center_requiredbooleanOb auf diesem Konto eine Kostenstelle angegeben werden muss. Der SKR42 bildet die vier steuerlichen Sphären eines gemeinnützigen Vereins über Kostenstellen ab, nicht über getrennte Konten. Für die Erfolgskonten ist die Angabe dort deshalb Pflicht.
is_systembooleanVom Kontenrahmen-Initialisierer angelegt. Nummer und Art sind dann durch den Rahmen vorgegeben und sollten nicht geändert werden.
is_activebooleanKonten lassen sich stilllegen, statt sie zu löschen - bebuchte Konten dürfen nicht verschwinden.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
cost_centerCostCenterDie steuerliche Sphäre, der das Gut dient.
Felder anzeigen (10)
display_namestringidintegerPrimärschlüssel der Kostenstelle. Interne ID.
numberstringNummer der Kostenstelle.
spherestringSteuerliche Sphäre, null bei rein betriebswirtschaftlicher Gliederung.
is_systembooleanDie Kostenstelle wird vom System angelegt und kann nicht gelöscht werden.
is_activebooleanDie Kostenstelle ist aktiv.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
expense_categoryExpenseCategory10Die EÜR-Kategorie der Abschreibung. Dieselbe Brücke wie am Sachkonto: wer die EÜR führt, bekommt seine Zeile in der Anlage EÜR, ohne dass es einen Kontenrahmen bräuchte.
Felder anzeigen (19)
idintegerPrimärschlüssel der Ausgabenkategorie. Interne ID.
codestringKurzbezeichnung/Code (z.B. "WAREN", "PERSONAL", "MIETE")
eur_line_numberintegerZeile in der Anlage EÜR (z. B. 23 für Wareneinkauf)
eur_line_namestringBezeichnung der EÜR-Zeile (z. B. „Waren, Rohstoffe und Hilfsstoffe“)
category_typestringTyp der Kategorie (expense, income, neutral, asset, private)
default_taxTaxStandard-Steuersatz für diese Kategorie
cost_centerCostCenterKostenstelle der Kategorie - bei Vereinen die steuerliche Sphäre. Ein Beleg trägt keine eigene Sphäre; über seine Kategorie bekommt er eine. Die EÜR des wirtschaftlichen Geschäftsbetriebs liest sie (billing_euer_commercial_sphere_only), die automatische Buchung setzt sie auf die Buchungszeilen (billing_accounting_cost_center_from_category).
is_vat_deductiblebooleanIst Vorsteuerabzug möglich?
is_immediate_deductionbooleanIst die Kategorie sofort abzugsfähig? (vs. Abschreibung über mehrere Jahre)
depreciation_yearsintegerAbschreibungsdauer in Jahren (für Anlagevermögen)
sort_orderintegerSortierreihenfolge
is_activebooleanIst die Kategorie aktiv/sichtbar?
colorstringFarbe für UI-Darstellung (Hex-Code)
iconstringIcon-Name für UI-Darstellung
is_systembooleanIst dies eine System-Kategorie? (nicht löschbar)
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
incoming_invoiceIncomingInvoice3Der Beleg, aus dem das Gut entstanden ist.
Felder anzeigen (43)
idintegerPrimärschlüssel des Rechnungsdokuments. Interne ID.
tokenstringToken, das das Dokument für den öffentlichen Zugriff identifiziert.
numberintegerLaufende Belegnummer.
manual_number_prefixstringPräfix einer manuell eingegebenen Dokumentnummer.
manual_numberintegerManuell eingegebene Dokumentnummer.
number_stringstringBelegnummer, wie sie den Benutzern angezeigt wird.
generation_datestring (date-time)Datum, an dem das Dokument erstellt wurde.
number_datestring (date-time)Datum, das für die Belegnummer verwendet wird.
messagestringAuf dem Dokument gedruckte Nachricht.
currencystringWährung des Dokuments.
namestringName des Dokuments.
due_datestring (date-time)Fälligkeitsdatum des Dokuments.
netto_valuenumber (float)Nettosumme des Dokuments.
brutto_valuenumber (float)Bruttogesamtbetrag des Dokuments.
tax_valuenumber (float)Gesamter Steuerbetrag des Dokuments.
taxTaxPflichtAuf das Dokument angewendeter Steuersatz.
linked_number_titlestringTitel der verknüpften Dokumentnummer.
linked_numberstringNummer des verknüpften Belegs.
statusstringStatus des Dokuments.
previous_statusstringStatus vor der letzten Änderung.
status_updatedstring (date-time)Zeitpunkt, zu dem der Status zuletzt geändert wurde.
archivedbooleanOb das Dokument archiviert ist.
last_pdf_exportstring (date-time)Zeitpunkt, zu dem das PDF zuletzt exportiert wurde.
last_status_exportstringStatus beim letzten Export.
search_stringstringText, unter dem die Entität gesucht werden kann.
external_invoice_numberstringExterne Rechnungsnummer des Lieferanten
received_datestring (date-time)Eingangsdatum (wann wurde die Rechnung empfangen)
payment_datestring (date-time)Zahlungsdatum
service_date_startstring (date-time)Leistungszeitraum Start
service_date_endstring (date-time)Leistungszeitraum Ende
vat_categorystringDer umsatzsteuerliche Sachverhalt. Auf der Eingangsseite entscheidet er darüber, ob die Vorsteuer unter Kennzahl 66 steht (Rechnung eines anderen Unternehmers), unter 61 (innergemeinschaftlicher Erwerb), unter 62 (Einfuhrumsatzsteuer) oder unter 67 (§ 13b UStG). Beim Erwerb und bei § 13b kommt eine zweite Zeile hinzu: Die Steuer schulden wir selbst, obwohl sie uns niemand berechnet hat, und sie steht deshalb zugleich als Umsatzsteuer im Vordruck. Wer nur eine der beiden bucht, zahlt zu viel oder zu wenig. Ohne Angabe gilt der Regelfall.
vat_self_assessed_ratenumber (float)Der Steuersatz, mit dem die selbst geschuldete Steuer zu rechnen ist. Beim innergemeinschaftlichen Erwerb und bei § 13b UStG berechnet der Lieferant keine Steuer – die Rechnung ist netto, und die Steuer schulden wir. Womit sie zu rechnen ist, steht deshalb auf keinem Beleg: es ist der Satz, der im Inland auf diese Leistung anzuwenden wäre. Ohne Angabe rechnet die Voranmeldung mit dem Regelsatz und sagt in den Hinweisen, bei wie vielen Belegen sie das getan hat. Stillschweigend zu raten wäre in einer Steueranmeldung das Falsche.
import_vat_amountstringDie Einfuhrumsatzsteuer aus dem Zollbescheid. Sie steht NICHT auf der Rechnung des Lieferanten - die ist bei einer Einfuhr ohne deutsche Steuer. Entrichtet wird sie an den Zoll, und nur der entrichtete Betrag ist als Vorsteuer abziehbar (§ 15 Abs. 1 Satz 1 Nr. 2 UStG, Kennzahl 62 der Voranmeldung). Den Steuerbetrag der Lieferantenrechnung dafür zu nehmen war schlicht der falsche Beleg.
paid_valuenumber (float)Bereits bezahlter Betrag (für Teilzahlungen)
sellerIncomingInvoiceSellerVerkäufer/Lieferant Informationen (Snapshot)
expense_categoryExpenseCategory10Hauptkategorie für EÜR
document_pathstringPfad zur gespeicherten Rechnungsdatei (PDF/Bild)
document_filenamestringOriginal Dateiname
document_mime_typestringMIME-Typ des Dokuments
notesstringNotizen/Bemerkungen
is_deductiblebooleanIst die Rechnung für den Vorsteuerabzug relevant?
is_approvedbooleanWurde die Rechnung geprüft/freigegeben?
approved_atstring (date-time)Zeitpunkt, zu dem die Eingangsrechnung genehmigt wurde.
disposal_datestring (date-time)Tag des Abgangs - Verkauf, Verschrottung, Entnahme.
disposal_proceedsnumber (float)Verkaufserlös beim Abgang, netto.
disposal_tax_ratenumber (float)Umsatzsteuersatz auf den Verkaufserlös, in Prozent. Der Verkauf eines Anlageguts ist ein steuerpflichtiger Umsatz wie jeder andere - vorher wurde der Erlös netto ohne Steuer gebucht, und die Umsatzsteuer fehlte in Bilanz und Voranmeldung. Bewusst ohne Vorgabewert: ob Steuer anfällt, hängt am Vorgang. Eine Verschrottung, eine Entnahme und der Verkauf aus dem ideellen Bereich eines Vereins sind steuerfrei; der gewerbliche Verkauf ist es nicht. Ein geratener Satz wäre in der Hälfte der Fälle falsch.
is_movablebooleanBewegliches Wirtschaftsgut? Die degressive AfA des § 7 Abs. 2 EStG gilt nur für bewegliche Wirtschaftsgüter des Anlagevermögens - ein Gebäude oder eine Software degressiv abzuschreiben ist unzulässig, und ohne dieses Merkmal konnte es niemand verhindern. Vorgabe true: Betriebs- und Geschäftsausstattung ist in diesem System der Regelfall.
disposal_reasonstringGrund für die Ausbuchung des Anlageguts.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/fixed_asset \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/fixed_asset', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/invoice/fixed_asset', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/fixed_asset_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await FixedAssetController.getList();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"inventory_number": "string",
"acquisition_date": "2026-10-15T09:30:00+02:00",
"acquisition_cost": 1.5,
"useful_life_months": 1,
"depreciation_method": "string",
"ledger_account": {
"display_name": "Beispiel",
"id": 42,
"name": "Beispiel",
"number": "string",
"chart_of_accounts": "string",
"account_type": "string",
"cost_center_required": true,
"is_system": true,
"is_active": true,
"deleted": true
},
"depreciation_account": {
"display_name": "Beispiel",
"id": 42,
"name": "Beispiel",
"number": "string",
"chart_of_accounts": "string",
"account_type": "string",
"cost_center_required": true,
"is_system": true,
"is_active": true,
"deleted": true
},
"cost_center": {
"display_name": "Beispiel",
"id": 42,
"name": "Beispiel",
"number": "string",
"sphere": "string",
"is_system": true,
"is_active": true,
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}
}
]Legt ein Anlagegut ohne Beleg an.
POST/api/invoice/fixed_asset
Bisher entstand ein Anlagegut nur aus einer Eingangsrechnung. Das deckt den Regelfall ab und lässt zwei Fälle offen, die es häufig gibt: den Altbestand beim Umstieg auf diese Anwendung, und die Einlage aus dem Privatvermögen. Beide haben keine Eingangsrechnung im System und waren damit nicht erfassbar – in der Bilanz fehlten sie dann vollständig.
Gebucht wird dabei nichts: beim Altbestand ist der Zugang längst in der Eröffnungsbilanz enthalten, und ihn ein zweites Mal zu buchen zeigte das Anlagevermögen doppelt. Der Abschreibungsplan entsteht trotzdem sofort – er ist der Grund, warum das Gut erfasst wird.
Request-Body application/json
namestringacquisition_datestring (date)acquisition_costnumberuseful_life_monthsintegerdepreciation_methodstringinventory_numberstringexpense_categoryintegercost_centerintegerledger_accountintegerdepreciation_accountinteger
Antworten
201Das angelegte Anlagegut samt Abschreibungsplan
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/invoice/fixed_asset \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"name": "Notebook",
"acquisition_date": "2026-03-01",
"acquisition_cost": 1200,
"useful_life_months": 36,
"depreciation_method": "linear",
"inventory_number": "AV-2026-004"
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
name: 'Notebook',
acquisition_date: '2026-03-01',
acquisition_cost: 1200,
useful_life_months: 36,
depreciation_method: 'linear',
inventory_number: 'AV-2026-004'
})
};
fetch('https://eure-instanz.iw-erp.de/api/invoice/fixed_asset', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset"
payload = {
"name": "Notebook",
"acquisition_date": "2026-03-01",
"acquisition_cost": 1200,
"useful_life_months": 36,
"depreciation_method": "linear",
"inventory_number": "AV-2026-004"
}
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/invoice/fixed_asset', [
'body' => '{"name":"Notebook","acquisition_date":"2026-03-01","acquisition_cost":1200,"useful_life_months":36,"depreciation_method":"linear","inventory_number":"AV-2026-004"}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"name\":\"Notebook\",\"acquisition_date\":\"2026-03-01\",\"acquisition_cost\":1200,\"useful_life_months\":36,\"depreciation_method\":\"linear\",\"inventory_number\":\"AV-2026-004\"}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"name\":\"Notebook\",\"acquisition_date\":\"2026-03-01\",\"acquisition_cost\":1200,\"useful_life_months\":36,\"depreciation_method\":\"linear\",\"inventory_number\":\"AV-2026-004\"}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset"
payload := strings.NewReader("{\"name\":\"Notebook\",\"acquisition_date\":\"2026-03-01\",\"acquisition_cost\":1200,\"useful_life_months\":36,\"depreciation_method\":\"linear\",\"inventory_number\":\"AV-2026-004\"}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/fixed_asset_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await FixedAssetController.create(name: '…', acquisitionDate: DateTime.fromJson({
"name": "Notebook",
"acquisition_date": "2026-03-01",
"acquisition_cost": 1200,
"useful_life_months": 36,
"depreciation_method": "linear",
"inventory_number": "AV-2026-004"
}), acquisitionCost: 42);
if (result.success) {
print(result.data);
}Nutzungsdauern und Wertgrenzen als Vorschlag für die Oberfläche.
GET/api/invoice/fixed_asset/suggestions
Antworten
200Nutzungsdauern aus den AfA-Tabellen und die Wertgrenzen des § 6 EStG
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/suggestions \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/suggestions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/suggestions"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/suggestions', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/suggestions"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/suggestions")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/suggestions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/fixed_asset_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await FixedAssetController.getSuggestions();
if (result.success) {
print(result.data);
}Der Anlagenspiegel eines Jahres.
GET/api/invoice/fixed_asset/schedule
Query-Parameter
yearstring | Jahr, Vorgabe das laufende |
Antworten
200Anlagenspiegel mit Zu- und Abgängen, Abschreibung und Restbuchwert
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/schedule \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/schedule', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/schedule"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/schedule', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/schedule"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/schedule")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/schedule"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/fixed_asset_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await FixedAssetController.getSchedule();
if (result.success) {
print(result.data);
}Legt ein Anlagegut aus einer Eingangsrechnung an.
POST/api/invoice/fixed_asset/from_invoice
Der Weg, den die Verbuchen-Liste anbietet: statt die Rechnung als Aufwand zu buchen, wird sie aktiviert.
Request-Body application/json
incoming_invoice_idintegernamestringacquisition_costnumberuseful_life_monthsintegerdepreciation_methodstringcost_centerintegerOhne Angabe die Kostenstelle der Rechnungskategorie
Antworten
200Das angelegte Anlagegut samt Abschreibungsplan
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/from_invoice \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"name": "Beispiel",
"incoming_invoice_id": 42,
"acquisition_cost": 1.5,
"useful_life_months": 1,
"depreciation_method": "string",
"cost_center": 1
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
name: 'Beispiel',
incoming_invoice_id: 42,
acquisition_cost: 1.5,
useful_life_months: 1,
depreciation_method: 'string',
cost_center: 1
})
};
fetch('https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/from_invoice', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/from_invoice"
payload = {
"name": "Beispiel",
"incoming_invoice_id": 42,
"acquisition_cost": 1.5,
"useful_life_months": 1,
"depreciation_method": "string",
"cost_center": 1
}
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/from_invoice', [
'body' => '{"name":"Beispiel","incoming_invoice_id":42,"acquisition_cost":1.5,"useful_life_months":1,"depreciation_method":"string","cost_center":1}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/from_invoice"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"name\":\"Beispiel\",\"incoming_invoice_id\":42,\"acquisition_cost\":1.5,\"useful_life_months\":1,\"depreciation_method\":\"string\",\"cost_center\":1}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"name\":\"Beispiel\",\"incoming_invoice_id\":42,\"acquisition_cost\":1.5,\"useful_life_months\":1,\"depreciation_method\":\"string\",\"cost_center\":1}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/from_invoice")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/from_invoice"
payload := strings.NewReader("{\"name\":\"Beispiel\",\"incoming_invoice_id\":42,\"acquisition_cost\":1.5,\"useful_life_months\":1,\"depreciation_method\":\"string\",\"cost_center\":1}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/fixed_asset_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await FixedAssetController.createFromInvoice(42);
if (result.success) {
print(result.data);
}Bucht die geplanten Abschreibungen eines Jahres.
POST/api/invoice/fixed_asset/depreciation_run
Request-Body application/json
yearinteger
Antworten
200Wie viele Abschreibungen gebucht wurden und was fehlschlug
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/depreciation_run \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '{"year":2026}'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({year: 2026})
};
fetch('https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/depreciation_run', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/depreciation_run"
payload = { "year": 2026 }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/depreciation_run', [
'body' => '{"year":2026}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/depreciation_run"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"year\":2026}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"year\":2026}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/depreciation_run")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/depreciation_run"
payload := strings.NewReader("{\"year\":2026}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/fixed_asset_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await FixedAssetController.runDepreciation(42);
if (result.success) {
print(result.data);
}Berechnet den Abschreibungsplan neu.
POST/api/invoice/fixed_asset/{identifier}/rebuild_schedule
Nach einer Korrektur der Nutzungsdauer oder der Anschaffungskosten. Gebuchte Jahre stehen dem im Weg - die müssten erst storniert werden.
Pfad-Parameter
identifierPflichtstring |
Antworten
200Das Anlagegut mit neu berechnetem Plan
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/rebuild_schedule \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/rebuild_schedule', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/rebuild_schedule"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/rebuild_schedule', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/rebuild_schedule"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/rebuild_schedule")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/rebuild_schedule"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/fixed_asset_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await FixedAssetController.rebuildSchedule('42');
if (result.success) {
print(result.data);
}Bucht den Zugang.
POST/api/invoice/fixed_asset/{identifier}/post_acquisition
Pfad-Parameter
identifierPflichtstring |
Antworten
200Der erzeugte Buchungssatz, oder null bei ausgeschalteter Automatik
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/post_acquisition \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/post_acquisition', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/post_acquisition"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/post_acquisition', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/post_acquisition"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/post_acquisition")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/post_acquisition"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/fixed_asset_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await FixedAssetController.postAcquisition('42');
if (result.success) {
print(result.data);
}Ändert ein Anlagegut.
PUT/api/invoice/fixed_asset/{identifier}
Anschaffungskosten, Nutzungsdauer, Methode und Datum bestimmen den Abschreibungsplan; wird eines davon geändert, wird er neu berechnet. Bereits gebuchte Jahre stehen dem im Weg und müssten zuerst storniert werden.
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
idintegerPrimärschlüssel des Anlageguts. Interne ID.
inventory_numberstringInventarnummer - frei vergeben, aber für die Inventur unverzichtbar.
acquisition_datestring (date-time)Tag der Anschaffung oder Herstellung. Bestimmt den Beginn der Abschreibung und den Zeitanteil im ersten Jahr: abgeschrieben wird ab dem Anschaffungsmonat, angefangene Monate zählen voll (§ 7 Abs. 1 Satz 4 EStG).
acquisition_costnumber (float)Anschaffungs- oder Herstellungskosten. Netto, soweit die Vorsteuer abziehbar ist. Ist sie das nicht - im ideellen Bereich eines Vereins etwa -, gehört sie zu den Anschaffungskosten und erhöht damit die Bemessungsgrundlage.
useful_life_monthsintegerBetriebsgewöhnliche Nutzungsdauer in Monaten. In Monaten statt in Jahren, weil die Abschreibung monatsgenau läuft und es Nutzungsdauern unter einem Jahr gibt.
depreciation_methodstringAbschreibungsmethode, zum Beispiel linear.
ledger_accountLedgerAccountAktivkonto, auf dem das Gut steht – z. B. SKR04 0630.
Felder anzeigen (15)
display_namestringidintegerPrimärschlüssel des Hauptbuchkontos. Interne ID.
numberstringKontonummer im Kontenrahmen, z.B. "1200" (SKR03 Bank) oder "40000" (SKR42). Als String geführt, weil SKR42 fünfstellig ist und führende Nullen bedeutungstragend sein können.
chart_of_accountsstringKontenrahmen, zu dem das Konto gehört, zum Beispiel SKR03.
account_typestringArt des Kontos, zum Beispiel Aktiv oder Erlös.
default_taxTaxSteuersatz, der beim Buchen auf dieses Konto vorgeschlagen wird. Bei Erlös- und Aufwandskonten ist der Satz durch die Kontonummer vorgegeben (etwa „Erlöse 19% USt“), deshalb hängt er am Konto und nicht an der einzelnen Buchung.
tax_accountLedgerAccountGegenkonto für die Steuer, die beim Buchen auf dieses Konto entsteht. Bei Erlöskonten das Umsatzsteuerkonto, bei Aufwandskonten das Vorsteuerkonto. Damit lässt sich aus einem Bruttobetrag automatisch der dreizeilige Buchungssatz erzeugen.
expense_categoryExpenseCategory10Brücke zur EÜR: auf welcher Zeile der Anlage EÜR dieses Konto zählt. Erlaubt es, beide Gewinnermittlungsarten aus denselben Belegen zu bedienen - etwa im Wechseljahr oder wenn ein Verein den wirtschaftlichen Geschäftsbetrieb per EÜR und den Rest bilanziell führt.
cost_center_requiredbooleanOb auf diesem Konto eine Kostenstelle angegeben werden muss. Der SKR42 bildet die vier steuerlichen Sphären eines gemeinnützigen Vereins über Kostenstellen ab, nicht über getrennte Konten. Für die Erfolgskonten ist die Angabe dort deshalb Pflicht.
is_systembooleanVom Kontenrahmen-Initialisierer angelegt. Nummer und Art sind dann durch den Rahmen vorgegeben und sollten nicht geändert werden.
is_activebooleanKonten lassen sich stilllegen, statt sie zu löschen - bebuchte Konten dürfen nicht verschwinden.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
depreciation_accountLedgerAccountAufwandskonto der Abschreibung – z. B. SKR04 6220.
Felder anzeigen (15)
display_namestringidintegerPrimärschlüssel des Hauptbuchkontos. Interne ID.
numberstringKontonummer im Kontenrahmen, z.B. "1200" (SKR03 Bank) oder "40000" (SKR42). Als String geführt, weil SKR42 fünfstellig ist und führende Nullen bedeutungstragend sein können.
chart_of_accountsstringKontenrahmen, zu dem das Konto gehört, zum Beispiel SKR03.
account_typestringArt des Kontos, zum Beispiel Aktiv oder Erlös.
default_taxTaxSteuersatz, der beim Buchen auf dieses Konto vorgeschlagen wird. Bei Erlös- und Aufwandskonten ist der Satz durch die Kontonummer vorgegeben (etwa „Erlöse 19% USt“), deshalb hängt er am Konto und nicht an der einzelnen Buchung.
tax_accountLedgerAccountGegenkonto für die Steuer, die beim Buchen auf dieses Konto entsteht. Bei Erlöskonten das Umsatzsteuerkonto, bei Aufwandskonten das Vorsteuerkonto. Damit lässt sich aus einem Bruttobetrag automatisch der dreizeilige Buchungssatz erzeugen.
expense_categoryExpenseCategory10Brücke zur EÜR: auf welcher Zeile der Anlage EÜR dieses Konto zählt. Erlaubt es, beide Gewinnermittlungsarten aus denselben Belegen zu bedienen - etwa im Wechseljahr oder wenn ein Verein den wirtschaftlichen Geschäftsbetrieb per EÜR und den Rest bilanziell führt.
cost_center_requiredbooleanOb auf diesem Konto eine Kostenstelle angegeben werden muss. Der SKR42 bildet die vier steuerlichen Sphären eines gemeinnützigen Vereins über Kostenstellen ab, nicht über getrennte Konten. Für die Erfolgskonten ist die Angabe dort deshalb Pflicht.
is_systembooleanVom Kontenrahmen-Initialisierer angelegt. Nummer und Art sind dann durch den Rahmen vorgegeben und sollten nicht geändert werden.
is_activebooleanKonten lassen sich stilllegen, statt sie zu löschen - bebuchte Konten dürfen nicht verschwinden.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
cost_centerCostCenterDie steuerliche Sphäre, der das Gut dient.
Felder anzeigen (10)
display_namestringidintegerPrimärschlüssel der Kostenstelle. Interne ID.
numberstringNummer der Kostenstelle.
spherestringSteuerliche Sphäre, null bei rein betriebswirtschaftlicher Gliederung.
is_systembooleanDie Kostenstelle wird vom System angelegt und kann nicht gelöscht werden.
is_activebooleanDie Kostenstelle ist aktiv.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
expense_categoryExpenseCategory10Die EÜR-Kategorie der Abschreibung. Dieselbe Brücke wie am Sachkonto: wer die EÜR führt, bekommt seine Zeile in der Anlage EÜR, ohne dass es einen Kontenrahmen bräuchte.
Felder anzeigen (19)
idintegerPrimärschlüssel der Ausgabenkategorie. Interne ID.
codestringKurzbezeichnung/Code (z.B. "WAREN", "PERSONAL", "MIETE")
eur_line_numberintegerZeile in der Anlage EÜR (z. B. 23 für Wareneinkauf)
eur_line_namestringBezeichnung der EÜR-Zeile (z. B. „Waren, Rohstoffe und Hilfsstoffe“)
category_typestringTyp der Kategorie (expense, income, neutral, asset, private)
default_taxTaxStandard-Steuersatz für diese Kategorie
cost_centerCostCenterKostenstelle der Kategorie - bei Vereinen die steuerliche Sphäre. Ein Beleg trägt keine eigene Sphäre; über seine Kategorie bekommt er eine. Die EÜR des wirtschaftlichen Geschäftsbetriebs liest sie (billing_euer_commercial_sphere_only), die automatische Buchung setzt sie auf die Buchungszeilen (billing_accounting_cost_center_from_category).
is_vat_deductiblebooleanIst Vorsteuerabzug möglich?
is_immediate_deductionbooleanIst die Kategorie sofort abzugsfähig? (vs. Abschreibung über mehrere Jahre)
depreciation_yearsintegerAbschreibungsdauer in Jahren (für Anlagevermögen)
sort_orderintegerSortierreihenfolge
is_activebooleanIst die Kategorie aktiv/sichtbar?
colorstringFarbe für UI-Darstellung (Hex-Code)
iconstringIcon-Name für UI-Darstellung
is_systembooleanIst dies eine System-Kategorie? (nicht löschbar)
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
incoming_invoiceIncomingInvoice3Der Beleg, aus dem das Gut entstanden ist.
Felder anzeigen (43)
idintegerPrimärschlüssel des Rechnungsdokuments. Interne ID.
tokenstringToken, das das Dokument für den öffentlichen Zugriff identifiziert.
numberintegerLaufende Belegnummer.
manual_number_prefixstringPräfix einer manuell eingegebenen Dokumentnummer.
manual_numberintegerManuell eingegebene Dokumentnummer.
number_stringstringBelegnummer, wie sie den Benutzern angezeigt wird.
generation_datestring (date-time)Datum, an dem das Dokument erstellt wurde.
number_datestring (date-time)Datum, das für die Belegnummer verwendet wird.
messagestringAuf dem Dokument gedruckte Nachricht.
currencystringWährung des Dokuments.
namestringName des Dokuments.
due_datestring (date-time)Fälligkeitsdatum des Dokuments.
netto_valuenumber (float)Nettosumme des Dokuments.
brutto_valuenumber (float)Bruttogesamtbetrag des Dokuments.
tax_valuenumber (float)Gesamter Steuerbetrag des Dokuments.
taxTaxPflichtAuf das Dokument angewendeter Steuersatz.
linked_number_titlestringTitel der verknüpften Dokumentnummer.
linked_numberstringNummer des verknüpften Belegs.
statusstringStatus des Dokuments.
previous_statusstringStatus vor der letzten Änderung.
status_updatedstring (date-time)Zeitpunkt, zu dem der Status zuletzt geändert wurde.
archivedbooleanOb das Dokument archiviert ist.
last_pdf_exportstring (date-time)Zeitpunkt, zu dem das PDF zuletzt exportiert wurde.
last_status_exportstringStatus beim letzten Export.
search_stringstringText, unter dem die Entität gesucht werden kann.
external_invoice_numberstringExterne Rechnungsnummer des Lieferanten
received_datestring (date-time)Eingangsdatum (wann wurde die Rechnung empfangen)
payment_datestring (date-time)Zahlungsdatum
service_date_startstring (date-time)Leistungszeitraum Start
service_date_endstring (date-time)Leistungszeitraum Ende
vat_categorystringDer umsatzsteuerliche Sachverhalt. Auf der Eingangsseite entscheidet er darüber, ob die Vorsteuer unter Kennzahl 66 steht (Rechnung eines anderen Unternehmers), unter 61 (innergemeinschaftlicher Erwerb), unter 62 (Einfuhrumsatzsteuer) oder unter 67 (§ 13b UStG). Beim Erwerb und bei § 13b kommt eine zweite Zeile hinzu: Die Steuer schulden wir selbst, obwohl sie uns niemand berechnet hat, und sie steht deshalb zugleich als Umsatzsteuer im Vordruck. Wer nur eine der beiden bucht, zahlt zu viel oder zu wenig. Ohne Angabe gilt der Regelfall.
vat_self_assessed_ratenumber (float)Der Steuersatz, mit dem die selbst geschuldete Steuer zu rechnen ist. Beim innergemeinschaftlichen Erwerb und bei § 13b UStG berechnet der Lieferant keine Steuer – die Rechnung ist netto, und die Steuer schulden wir. Womit sie zu rechnen ist, steht deshalb auf keinem Beleg: es ist der Satz, der im Inland auf diese Leistung anzuwenden wäre. Ohne Angabe rechnet die Voranmeldung mit dem Regelsatz und sagt in den Hinweisen, bei wie vielen Belegen sie das getan hat. Stillschweigend zu raten wäre in einer Steueranmeldung das Falsche.
import_vat_amountstringDie Einfuhrumsatzsteuer aus dem Zollbescheid. Sie steht NICHT auf der Rechnung des Lieferanten - die ist bei einer Einfuhr ohne deutsche Steuer. Entrichtet wird sie an den Zoll, und nur der entrichtete Betrag ist als Vorsteuer abziehbar (§ 15 Abs. 1 Satz 1 Nr. 2 UStG, Kennzahl 62 der Voranmeldung). Den Steuerbetrag der Lieferantenrechnung dafür zu nehmen war schlicht der falsche Beleg.
paid_valuenumber (float)Bereits bezahlter Betrag (für Teilzahlungen)
sellerIncomingInvoiceSellerVerkäufer/Lieferant Informationen (Snapshot)
expense_categoryExpenseCategory10Hauptkategorie für EÜR
document_pathstringPfad zur gespeicherten Rechnungsdatei (PDF/Bild)
document_filenamestringOriginal Dateiname
document_mime_typestringMIME-Typ des Dokuments
notesstringNotizen/Bemerkungen
is_deductiblebooleanIst die Rechnung für den Vorsteuerabzug relevant?
is_approvedbooleanWurde die Rechnung geprüft/freigegeben?
approved_atstring (date-time)Zeitpunkt, zu dem die Eingangsrechnung genehmigt wurde.
disposal_datestring (date-time)Tag des Abgangs - Verkauf, Verschrottung, Entnahme.
disposal_proceedsnumber (float)Verkaufserlös beim Abgang, netto.
disposal_tax_ratenumber (float)Umsatzsteuersatz auf den Verkaufserlös, in Prozent. Der Verkauf eines Anlageguts ist ein steuerpflichtiger Umsatz wie jeder andere - vorher wurde der Erlös netto ohne Steuer gebucht, und die Umsatzsteuer fehlte in Bilanz und Voranmeldung. Bewusst ohne Vorgabewert: ob Steuer anfällt, hängt am Vorgang. Eine Verschrottung, eine Entnahme und der Verkauf aus dem ideellen Bereich eines Vereins sind steuerfrei; der gewerbliche Verkauf ist es nicht. Ein geratener Satz wäre in der Hälfte der Fälle falsch.
is_movablebooleanBewegliches Wirtschaftsgut? Die degressive AfA des § 7 Abs. 2 EStG gilt nur für bewegliche Wirtschaftsgüter des Anlagevermögens - ein Gebäude oder eine Software degressiv abzuschreiben ist unzulässig, und ohne dieses Merkmal konnte es niemand verhindern. Vorgabe true: Betriebs- und Geschäftsausstattung ist in diesem System der Regelfall.
disposal_reasonstringGrund für die Ausbuchung des Anlageguts.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
Antworten
200Das geaenderte Anlagegut
409Der Plan wäre neu zu rechnen, ist aber schon gebucht
curl --request PUT \
--url https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"id": 42,
"name": "Beispiel",
"inventory_number": "string",
"acquisition_date": "2026-10-15T09:30:00+02:00",
"acquisition_cost": 1.5,
"useful_life_months": 1
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
id: 42,
name: 'Beispiel',
inventory_number: 'string',
acquisition_date: '2026-10-15T09:30:00+02:00',
acquisition_cost: 1.5,
useful_life_months: 1
})
};
fetch('https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42"
payload = {
"id": 42,
"name": "Beispiel",
"inventory_number": "string",
"acquisition_date": "2026-10-15T09:30:00+02:00",
"acquisition_cost": 1.5,
"useful_life_months": 1
}
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42', [
'body' => '{"id":42,"name":"Beispiel","inventory_number":"string","acquisition_date":"2026-10-15T09:30:00+02:00","acquisition_cost":1.5,"useful_life_months":1}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"id\":42,\"name\":\"Beispiel\",\"inventory_number\":\"string\",\"acquisition_date\":\"2026-10-15T09:30:00+02:00\",\"acquisition_cost\":1.5,\"useful_life_months\":1}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"id\":42,\"name\":\"Beispiel\",\"inventory_number\":\"string\",\"acquisition_date\":\"2026-10-15T09:30:00+02:00\",\"acquisition_cost\":1.5,\"useful_life_months\":1}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42")
.put(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42"
payload := strings.NewReader("{\"id\":42,\"name\":\"Beispiel\",\"inventory_number\":\"string\",\"acquisition_date\":\"2026-10-15T09:30:00+02:00\",\"acquisition_cost\":1.5,\"useful_life_months\":1}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/fixed_asset_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await FixedAssetController.update('42');
if (result.success) {
print(result.data);
}Trägt den Abgang ein und bucht ihn.
POST/api/invoice/fixed_asset/{identifier}/disposal
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
disposal_datestringdisposal_proceedsnumberVerkaufserlös netto
disposal_tax_ratenumberUmsatzsteuersatz auf den Erloes in Prozent; leer bei steuerfreiem Abgang
disposal_reasonstring
Antworten
200Das Anlagegut mit Abgang und der Buchungssatz
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/disposal \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"disposal_date": "2028-06-30",
"disposal_proceeds": 1.5,
"disposal_tax_rate": 19,
"disposal_reason": "string"
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
disposal_date: '2028-06-30',
disposal_proceeds: 1.5,
disposal_tax_rate: 19,
disposal_reason: 'string'
})
};
fetch('https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/disposal', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/disposal"
payload = {
"disposal_date": "2028-06-30",
"disposal_proceeds": 1.5,
"disposal_tax_rate": 19,
"disposal_reason": "string"
}
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/disposal', [
'body' => '{"disposal_date":"2028-06-30","disposal_proceeds":1.5,"disposal_tax_rate":19,"disposal_reason":"string"}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/disposal"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"disposal_date\":\"2028-06-30\",\"disposal_proceeds\":1.5,\"disposal_tax_rate\":19,\"disposal_reason\":\"string\"}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"disposal_date\":\"2028-06-30\",\"disposal_proceeds\":1.5,\"disposal_tax_rate\":19,\"disposal_reason\":\"string\"}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/disposal")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/fixed_asset/42/disposal"
payload := strings.NewReader("{\"disposal_date\":\"2028-06-30\",\"disposal_proceeds\":1.5,\"disposal_tax_rate\":19,\"disposal_reason\":\"string\"}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/fixed_asset_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await FixedAssetController.postDisposal('42', disposalDate: DateTime.fromJson({
"disposal_date": "2028-06-30",
"disposal_proceeds": 1.5,
"disposal_tax_rate": 19,
"disposal_reason": "string"
}));
if (result.success) {
print(result.data);
}