ProjectTimeReport
Diese Methode liefert ein einzelnes ProjectTimeReport-Objekt mit der angegebenen ID
GET/api/invoice/projecttimereports/{id}
Pfad-Parameter
idPflichtstring |
Antworten
200Liefert ein einzelnes ProjectTimeReport-Objekt.ProjectTimeReport2
Felder anzeigen (9)
idintegerPrimärschlüssel des Projektzeitberichts. Interne ID.
projectCRMProject12Projekt, zu dem der Zeitbericht gehört.
Felder anzeigen (19)
idintegerPrimärschlüssel des Projekts. Interne ID.
namestringName des Projekts.
closedstring (date-time)Zeitpunkt, zu dem das Projekt geschlossen wurde.
billedstring (date-time)Zeitpunkt, zu dem das Projekt abgerechnet wurde.
numberstringNummer des Projekts.
startstring (date-time)Beginn des Projekts.
endstring (date-time)Ende des Projekts.
descriptionstringBeschreibung des Projekts.
companyCRMCompanyUnternehmen, zu dem das Projekt gehört.
internal_main_contactUser14Interner Benutzer, der Hauptansprechpartner ist.
categoryCRMProjectCategoryKategorie des Projekts.
archivedbooleanDas Projekt ist archiviert.
visible_for_customerbooleanDas Projekt ist in der Kunden-App sichtbar.
name_for_customerstringName des Projekts, das Kunden angezeigt wird.
invoice_emailstringE-Mail-Adresse für Rechnungen des Projekts.
time_report_emailstringE-Mail-Adresse für Zeitberichte des Projekts.
search_stringstringText, unter dem die Entität gesucht werden kann.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
invoiceInvoice16Rechnung, auf der der Zeitbericht abgerechnet wurde.
Felder anzeigen (38)
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.
accounting_typeAccountingTypePflichtBuchungsart der Rechnung.
payment_typePaymentTypeZahlungsart der Rechnung.
payment_goalPaymentGoalZahlungsbedingung der Rechnung.
expense_categoryExpenseCategory10EÜR-Kategorie für diese Rechnung (Einnahmen-Zuordnung) Wenn nicht gesetzt, wird die Default-Kategorie des AccountingTypes verwendet
buyerInvoiceBuyer16Käufer der Rechnung.
payment_datestring (date-time)Datum, an dem die Rechnung bezahlt wurde.
vat_categorystringDer umsatzsteuerliche Sachverhalt. Der Steuersatz sagt nicht, in welche Zeile der Voranmeldung ein Umsatz gehört. Null Prozent stehen an einer innergemeinschaftlichen Lieferung (Kennzahl 41), an einer Ausfuhr (43), an einer Leistung nach § 13b UStG (60) und an einem steuerfreien Umsatz nach § 4 UStG (48) - vier verschiedene Zeilen, derselbe Steuersatz. Hier ist die einzige Stelle, an der jemand das weiß: beim Schreiben der Rechnung ist bekannt, ob der Kunde eine USt-IdNr. hat und wohin die Ware geht. Später ist es nicht mehr rekonstruierbar. Ohne Angabe der Regelfall - alles andere war bisher nicht erfassbar.
is_payment_date_from_ext_servicebooleanDas Zahlungsdatum stammt von einem externen Dienst.
direct_debit_exportedbooleanDie Rechnung wurde für das Lastschriftverfahren exportiert.
cancel_datestring (date-time)Datum, an dem die Rechnung storniert wurde.
cancel_textstringText der Stornierung.
start_datestring (date-time)Beginn des abgerechneten Zeitraums.
end_datestring (date-time)Ende des abgerechneten Zeitraums.
itemsarray<ProjectTimeReportItem2>Positionen des Zeitberichts.
Felder anzeigen (7)
idintegerPrimärschlüssel der Projektzeitbericht-Position. Interne ID.
ticketCustomerTicket5Ticket, aus dem der Gegenstand angelegt wurde.
project_time_reportProjectTimeReport2Projektzeitbericht, zu dem die Position gehört.
namestringName des Tickets oder der Aufgabe.
statusstringStatus des Tickets oder der Aufgabe.
time_string_billablestringAbrechnungsfähige Zeit als Text.
time_string_not_billablestringNicht abrechenbare Zeit als Text.
time_billed_on_ticket_closebooleanDie Zeit wird abgerechnet, wenn das Ticket geschlossen wird.
startstring (date-time)Beginn des gemeldeten Zeitraums.
endstring (date-time)Ende des gemeldeten Zeitraums.
time_string_billablestringAbrechnungsfähige Zeit als Text.
time_string_not_billablestringNicht abrechenbare Zeit als Text.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/projecttimereports/42 \
--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/projecttimereports/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/projecttimereports/42"
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/projecttimereports/42', [
'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/projecttimereports/42"),
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/projecttimereports/42")
.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/projecttimereports/42"
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/project_time_report_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 ProjectTimeReportController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"project": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"invoice_email": "lena.hartmann@example.org",
"time_report_email": "lena.hartmann@example.org",
"closed": "2026-10-15T09:30:00+02:00",
"billed": "2026-10-15T09:30:00+02:00",
"number": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00"
},
"invoice": {
"tax": {
"name": "Beispiel",
"id": 42,
"value": 1.5,
"deleted": true,
"global_default": true,
"datev_tax_key": 1
},
"accounting_type": {
"name": "Beispiel",
"type": "string",
"id": 42,
"cancelled_name": "Beispiel",
"deleted": true
},
"id": 42,
"currency": "EUR",
"name": "Beispiel",
"linked_number_title": "Beispiel",
"cancel_text": "Text",
"token": "string",
"number": 1,
"manual_number_prefix": "string"
},
"items": [
{
"id": 42,
"name": "Beispiel",
"status": "string",
"time_string_billable": "string",
"time_string_not_billable": "string"
}
],
"time_billed_on_ticket_close": true,
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"time_string_billable": "string",
"time_string_not_billable": "string"
}Diese Methode liefert alle ProjectTimeReport-Objekte
GET/api/invoice/projecttimereports
Query-Parameter
idstring | |
projectstring | |
invoicestring | |
timeBilledOnTicketCloseboolean | |
startstring | |
endstring | |
timeStringBillablestring | |
timeStringNotBillablestring | |
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
200Liefert eine Liste der ProjectTimeReport-Objekte.array<ProjectTimeReport3>
Felder anzeigen (8)
idintegerPrimärschlüssel des Projektzeitberichts. Interne ID.
projectCRMProjectProjekt, zu dem der Zeitbericht gehört.
Felder anzeigen (19)
idintegerPrimärschlüssel des Projekts. Interne ID.
namestringName des Projekts.
closedstring (date-time)Zeitpunkt, zu dem das Projekt geschlossen wurde.
billedstring (date-time)Zeitpunkt, zu dem das Projekt abgerechnet wurde.
numberstringNummer des Projekts.
startstring (date-time)Beginn des Projekts.
endstring (date-time)Ende des Projekts.
descriptionstringBeschreibung des Projekts.
companyCRMCompanyUnternehmen, zu dem das Projekt gehört.
internal_main_contactUser14Interner Benutzer, der Hauptansprechpartner ist.
categoryCRMProjectCategoryKategorie des Projekts.
archivedbooleanDas Projekt ist archiviert.
visible_for_customerbooleanDas Projekt ist in der Kunden-App sichtbar.
name_for_customerstringName des Projekts, das Kunden angezeigt wird.
invoice_emailstringE-Mail-Adresse für Rechnungen des Projekts.
time_report_emailstringE-Mail-Adresse für Zeitberichte des Projekts.
search_stringstringText, unter dem die Entität gesucht werden kann.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
invoiceInvoiceRechnung, auf der der Zeitbericht abgerechnet wurde.
Felder anzeigen (38)
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.
accounting_typeAccountingTypePflichtBuchungsart der Rechnung.
payment_typePaymentTypeZahlungsart der Rechnung.
payment_goalPaymentGoalZahlungsbedingung der Rechnung.
expense_categoryExpenseCategory10EÜR-Kategorie für diese Rechnung (Einnahmen-Zuordnung) Wenn nicht gesetzt, wird die Default-Kategorie des AccountingTypes verwendet
buyerInvoiceBuyerKäufer der Rechnung.
payment_datestring (date-time)Datum, an dem die Rechnung bezahlt wurde.
vat_categorystringDer umsatzsteuerliche Sachverhalt. Der Steuersatz sagt nicht, in welche Zeile der Voranmeldung ein Umsatz gehört. Null Prozent stehen an einer innergemeinschaftlichen Lieferung (Kennzahl 41), an einer Ausfuhr (43), an einer Leistung nach § 13b UStG (60) und an einem steuerfreien Umsatz nach § 4 UStG (48) - vier verschiedene Zeilen, derselbe Steuersatz. Hier ist die einzige Stelle, an der jemand das weiß: beim Schreiben der Rechnung ist bekannt, ob der Kunde eine USt-IdNr. hat und wohin die Ware geht. Später ist es nicht mehr rekonstruierbar. Ohne Angabe der Regelfall - alles andere war bisher nicht erfassbar.
is_payment_date_from_ext_servicebooleanDas Zahlungsdatum stammt von einem externen Dienst.
direct_debit_exportedbooleanDie Rechnung wurde für das Lastschriftverfahren exportiert.
cancel_datestring (date-time)Datum, an dem die Rechnung storniert wurde.
cancel_textstringText der Stornierung.
start_datestring (date-time)Beginn des abgerechneten Zeitraums.
end_datestring (date-time)Ende des abgerechneten Zeitraums.
time_billed_on_ticket_closebooleanDie Zeit wird abgerechnet, wenn das Ticket geschlossen wird.
startstring (date-time)Beginn des gemeldeten Zeitraums.
endstring (date-time)Ende des gemeldeten Zeitraums.
time_string_billablestringAbrechnungsfähige Zeit als Text.
time_string_not_billablestringNicht abrechenbare Zeit als Text.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/projecttimereports \
--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/projecttimereports', 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/projecttimereports"
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/projecttimereports', [
'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/projecttimereports"),
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/projecttimereports")
.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/projecttimereports"
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/project_time_report_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 ProjectTimeReportController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"project": {
"id": 42,
"name": "Beispiel",
"description": "Text",
"invoice_email": "lena.hartmann@example.org",
"time_report_email": "lena.hartmann@example.org",
"closed": "2026-10-15T09:30:00+02:00",
"billed": "2026-10-15T09:30:00+02:00",
"number": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00"
},
"invoice": {
"id": 42,
"currency": "EUR",
"name": "Beispiel",
"linked_number_title": "Beispiel",
"cancel_text": "Text",
"token": "string",
"number": 1,
"manual_number_prefix": "string",
"manual_number": 1,
"number_string": "string"
},
"time_billed_on_ticket_close": true,
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"time_string_billable": "string",
"time_string_not_billable": "string"
}
]Diese Methode druckt einen ProjectTimeReport als PDF
GET/api/invoice/projecttimereports/{id}/pdf
Pfad-Parameter
idPflichtstring |
Antworten
default
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/projecttimereports/42/pdf \
--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/projecttimereports/42/pdf', 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/projecttimereports/42/pdf"
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/projecttimereports/42/pdf', [
'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/projecttimereports/42/pdf"),
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/projecttimereports/42/pdf")
.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/projecttimereports/42/pdf"
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/project_time_report_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 ProjectTimeReportController.getDownloadLinkPdf('42');
print(result);