API Dokumentation – Abruf von Aufträgen/Rechnungen und Gutschriften
Endpunkt /api/invoices/list zum Abruf von Auftraegen mit Umsaetzen, Positionen, Kunden- und Fahrzeugdaten.
Authentifizierung
Dieser Endpunkt erfordert den Parameter
Bei ungueltigem oder fehlendem Token wird
Dieser Endpunkt erfordert den Parameter
token mit dem gueltigen API-Token (aus den Systemeinstellungen).Bei ungueltigem oder fehlendem Token wird
HTTP 401 mit {"error": "Unauthorized. A valid token is required."} zurueckgegeben.GET
/api/invoices/list
/api/invoices/list
Gibt eine Liste von Auftraegen (Rechnungen, Werkstattauftraegen etc.) mit vollstaendiger Umsatz-/Gewinnaufschluesselung, Positionsdaten sowie verknuepften Kunden- und Fahrzeugdaten zurueck.
Parameter
| Name | Typ | Beschreibung |
|---|---|---|
| token | string | API-Token Pflicht |
| start | string | Startdatum, Format: dd.mm.YYYY Pflicht |
| end | string | Enddatum, Format: dd.mm.YYYY Pflicht |
| statusid | integer | Status-Filter (Standard: -1, siehe Tabelle unten) optional |
| typecastid | integer | Dokumenttyp-Filter (Standard: 0 = alle positiven Typen) optional |
| branch | integer | Filial-ID optional |
| customerid | integer | Kunden-ID – nur Auftraege dieses Kunden optional |
| documentid | integer | Einzelnes Dokument per ID abrufen optional |
| processorid | integer | Bearbeiter/Mitarbeiter-ID optional |
| doneonly | integer | 1 = nur fertiggestellte Auftraege (is_ready = 1) optional |
| basedondelivery | integer | 1 = Datumsfilter auf Lieferdatum statt Belegdatum optional |
| basedonintakedate | integer | 1 = Datumsfilter auf Annahmedatum optional |
| includecredits | integer | 1 = Gutschriften in die Ergebnisse integrieren optional |
Status-IDs (statusid)
| Wert | Bedeutung |
|---|---|
| -1 | Alle Status (Standard) |
| 0 | Nur offene / Entwurf |
| 1 | Fakturiert |
| 2 | Bezahlt |
| 3 | Ueberfaellig |
| 11 | GA abgerechnet |
| -2 | Fakturiert + Bezahlt + Ueberfaellig |
| -3 | Fakturiert + Bezahlt + Ueberfaellig + Gutgeschrieben + GA abger. |
| -4 | Fakturiert + Bezahlt + Ueberfaellig + Gutgeschrieben + Storniert + GA abger. |
| -5 | Fakturiert + Ueberfaellig + GA abger. |
| -6 | Alle inkl. Entwurf + Storniert |
| -7 | Entwurf + Fakturiert + GA abgerechnet |
Dokumenttyp-IDs (typecastid)
| Wert | Bedeutung |
|---|---|
| 0 | Alle regulaeren Auftragstypen (Standard, nur positive Typecasts) |
| > 0 | Spezifischer Typ, z. B. WA, IA etc. (laut Konfiguration) |
| -6 | GA Auftrag / Garantieauftrag |
| -5 | Anzahlungsrechnung |
| -4 | Interne Aufwendungen |
Hinweis Datumsfilter: Standardmaessig wird nach dem Belegdatum (document_date) gefiltert. Mit
basedondelivery=1 wird stattdessen das Lieferdatum, mit basedonintakedate=1 das Annahmedatum verwendet.Beispiel-Aufrufe
GET /api/invoices/list?token=xxx&start=01.01.2026&end=31.01.2026
GET /api/invoices/list?token=xxx&start=01.01.2026&end=31.01.2026&statusid=0
(nur offene Auftraege)
GET /api/invoices/list?token=xxx&start=01.01.2026&end=31.01.2026&statusid=-2&typecastid=1
(fakturiert/bezahlt/ueberfaellig, nur Typ 1)
GET /api/invoices/list?token=xxx&start=01.01.2026&end=31.01.2026&customerid=200
(alle Auftraege eines bestimmten Kunden)
GET /api/invoices/list?token=xxx&start=01.01.2026&end=31.01.2026&includecredits=1
(inklusive Gutschriften)
Erfolgreiche Antwort (JSON Array)
[
{
"document_id": 1234,
"intern_id": "WA20261234",
"former_wa_id": "WA20261234",
"status": 1,
"typecast_id": 1,
"typecast_name": "WA",
"branch_id": 1,
"document_date": "2026-01-15",
"delivery_date": "2026-01-18",
"intake_date": "2026-01-14",
"outsource_date": null,
"added_time": "2026-01-14 09:30:00",
"added_by": 5,
"parent_id": 0,
"is_down_payment": false,
"is_credit": false,
"credited_invoice_intern_id": null,
"processor_name": "Max Mustermann",
"revenue": {
"net_total": 1500.00,
"article_total": 800.50,
"aw_total": 450.00,
"mobile_total": 0,
"divers_total": 249.50,
"package_total": 0,
"ek_total": 520.30,
"profit": 979.70,
"profit_percent": 65.31,
"article_profit": 480.20,
"aw_profit": 350.00,
"mobile_profit": 0,
"divers_profit": 149.50,
"package_profit": 0,
"transit_profit": 0,
"discount_global_percent": 0,
"discount_global_price": 0,
"aw_quantity_raw": 3.0
},
"customer": {
"id": 200,
"fibu": "10200",
"company_name": "Muster GmbH",
"forename": "Max",
"surname": "Mustermann",
"zip": "80331",
"city": "Muenchen",
"street": "Musterstr. 1",
"email": "max@muster.de",
"phone": "089 12345678"
},
"vehicle": {
"id": 1085,
"mobile_sign": "M-AB 1234",
"name": "Golf VII",
"fabricator": "Volkswagen",
"modell": "1.4 TSI",
"chassis_number": "WVWZZZ3CZWE123456",
"mileage": 85000,
"ez": "03/2019",
"vehicle_key_code": "",
"key_code": "1234",
"motor_code": "CZDA",
"general_inspection": "03/2026"
},
"foreign_vehicle": {
"id": 502,
"mobile_sign": "M-CD 5678",
"name": "Passat Variant",
"fabricator": "Volkswagen",
"modell": "2.0 TDI",
"chassis_number": "WVWZZZ3CZWE654321",
"mileage": 120000,
"ez": "06/2018",
"vehicle_key_code": "",
"key_code": "",
"motor_code": "DFGA",
"general_inspection": "06/2025",
"source": "clientmobiles"
},
"positions": [
{
"position_type": "article",
"id": "ART-001",
"dbid": 55,
"name": "Bremsscheibe vorne",
"quantity": 2,
"price": 89.50,
"pricetotal": 179.00,
"discount_percent": 0,
"ek_price": 52.00,
"profit": 127.00,
"unit": "Stk.",
"subpackages": null
},
{
"position_type": "laborvalue",
"id": "AW-010",
"dbid": 12,
"name": "Bremsenwechsel vorne",
"quantity": 1.5,
"price": 300.00,
"pricetotal": 450.00,
"discount_percent": 0,
"ek_price": 100.00,
"profit": 350.00,
"unit": "AW",
"subpackages": null
}
],
"positions_count": 2
}
]
Fehler-Antworten
HTTP 401 { "error": "Unauthorized. A valid token is required." }
HTTP 200 { "error": "start and end parameters are required (dd.mm.YYYY)" }
Felder-Referenz
Auftrags-Objekt (Hauptebene)
| Feld | Typ | Beschreibung |
|---|---|---|
| document_id | integer | Interne Dokument-ID |
| intern_id | string | Interne Belegnummer (z. B. „WA20261234“) |
| former_wa_id | string | Ehemalige WA-Nummer (nach Fakturierung) |
| status | integer | Belegstatus (0=Entwurf, 1=Fakturiert, 2=Bezahlt, 3=Ueberfaellig, 4=Gutgeschrieben, 5=Storniert, 11=GA abger.) |
| typecast_id | integer | Dokumenttyp-ID |
| typecast_name | string | Dokumenttyp-Name (z. B. „WA“) |
| branch_id | integer | Filial-ID |
| document_date | string|null | Belegdatum (YYYY-MM-DD) |
| delivery_date | string|null | Lieferdatum (YYYY-MM-DD) |
| intake_date | string|null | Annahmedatum (YYYY-MM-DD) |
| outsource_date | string|null | Auslagerungsdatum (YYYY-MM-DD) |
| added_time | string|null | Anlagedatum (YYYY-MM-DD HH:mm:ss) |
| added_by | integer | Bearbeiter-/Ersteller-ID |
| processor_name | string | Name des Bearbeiters |
| parent_id | integer | Verknuepfter uebergeordneter Beleg (0 wenn keiner) |
| is_down_payment | boolean | Ist Anzahlungsrechnung |
| is_credit | boolean | Ist Gutschrift (nur bei includecredits=1) |
| credited_invoice_intern_id | string|null | Intern-ID der gutgeschriebenen Rechnung |
Umsatz-/Gewinn-Objekt (revenue)
Alle Betraege sind Netto in EUR.
| Feld | Typ | Beschreibung |
|---|---|---|
| net_total | float | Netto-Gesamtbetrag |
| article_total | float | Umsatz Artikel/Ersatzteile |
| aw_total | float | Umsatz Arbeitswerte (Lohn) |
| mobile_total | float | Umsatz Fahrzeuge |
| divers_total | float | Umsatz Diverses |
| package_total | float | Umsatz Pakete |
| ek_total | float | Einkaufspreis gesamt |
| profit | float | Gewinn gesamt |
| profit_percent | float | Gewinnmarge in % |
| article_profit | float | Gewinn Artikel |
| aw_profit | float | Gewinn Arbeitswerte |
| mobile_profit | float | Gewinn Fahrzeuge |
| divers_profit | float | Gewinn Diverses |
| package_profit | float | Gewinn Pakete |
| transit_profit | float | Durchlaufende Posten |
| discount_global_percent | float | Globaler Rabatt in % |
| discount_global_price | float | Globaler Rabatt-Betrag |
| aw_quantity_raw | float | Anzahl verkaufter AW (Menge) |
Kunden-Objekt (customer)
Ist null wenn kein Kunde zugeordnet ist.
| Feld | Typ | Beschreibung |
|---|---|---|
| id | integer | Kunden-ID |
| fibu | string | FiBu-Nummer |
| company_name | string | Firmenname |
| forename | string | Vorname |
| surname | string | Nachname |
| zip | string | PLZ |
| city | string | Stadt |
| street | string | Strasse |
| string | ||
| phone | string | Telefon |
Fahrzeug-Objekt (vehicle / foreign_vehicle)
vehicle enthalt das Fahrzeug, das zum Zeitpunkt der Auftragserstellung verknuepft war (Snapshot).
foreign_vehicle enthalt das Fremdfahrzeug (sofern vorhanden). Ist null wenn keine Fremdverknuepfung besteht.
| Feld | Typ | Beschreibung |
|---|---|---|
| id | integer | Fahrzeug-ID |
| mobile_sign | string | Kennzeichen |
| name | string | Fahrzeugbezeichnung |
| fabricator | string | Hersteller |
| modell | string | Modell |
| chassis_number | string | Fahrgestellnummer (VIN) |
| mileage | integer | Kilometerstand |
| ez | string | Erstzulassung |
| vehicle_key_code | string | Fahrzeug-Schluesselcode |
| key_code | string | Schluesselcode |
| motor_code | string | Motorcode |
| general_inspection | string | HU/AU |
| source | string | Nur bei foreign_vehicle: "clientmobiles" oder "mobiles" |
Fremdverknuepfung: Das Feld
source gibt an, ob das Fremdfahrzeug aus der Kundenfahrzeug-Tabelle (clientmobiles) oder aus der Fahrzeug-/Bestandstabelle (mobiles) stammt.Positions-Objekt (positions[])
| Feld | Typ | Beschreibung |
|---|---|---|
| position_type | string | Positionstyp: article, laborvalue, package, group, mobile oder divers |
| id | string | Positions-ID / Artikelnummer |
| dbid | integer|null | Datenbank-ID des Artikels |
| name | string | Positionsbezeichnung |
| quantity | float | Menge |
| price | float | Einzelpreis (netto) |
| pricetotal | float | Gesamtpreis (netto) |
| discount_percent | float | Positionsrabatt in % |
| ek_price | float | Einkaufspreis (berechnet) |
| profit | float | Gewinn der Position |
| unit | string | Einheit (z. B. „Stk.“, „AW“) |
| subpackages | array|null | Unterelemente bei Paketen/Gruppen |