Zum Inhalt springen
Developer

TrainerTimeBilling

Trainer11 EndpunkteTimeTracking / TrainerTimeBilling

Alle TrainerTimeBilling abrufen

GET/api/time/trainer_time_billings

Query-Parameter

searchStringstringText, nach dem in der Liste gesucht wird
orderFieldNamestringName des Bestellfelds
orderFieldSortstringSortiermodusErlaubt: DESCASC
pageintegerSeite der Liste
pageSizeintegerAnzahl der Einträge je Seite
withMaxPageNumberstringgibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist

Antworten

default

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/trainer_time_billings \
  --header 'x-iw-jwt-token: <TOKEN>'

TrainerTimeBilling anlegen: sammelt bestätigte Einträge für eine Person / einen Monat / ein Jahr

POST/api/time/trainer_time_billings

Antworten

200TrainerTimeBilling anlegenTrainerTimeBilling

Felder anzeigen (14)
  • idinteger

    Primärschlüssel der Trainerzeitabrechnung. Interne ID.

  • personCRMPerson10

    Trainer, für den die Abrechnung erstellt wird.

    Felder anzeigen (81)
    • idinteger

      Primärschlüssel der Person. Interne ID.

    • first_namestring

      Vorname der Person.

    • last_namestring

      Nachname der Person.

    • numberinteger

      Mitglieds- oder Kundennummer der Person.

    • manual_numberinteger

      Manuell gesetzte Nummer statt der automatischen Nummer.

    • number_stringstring

      Mitglieds- oder Kundennummer als Text, einschließlich Präfix.

    • genderstring

      Geschlecht der Person.

    • titlestring

      Akademischer oder sonstiger Titel der Person.

    • positionstring

      Position oder Rolle der Person.

    • languagestring

      Bevorzugte Sprache der Person.

    • special_salutationstring

      Besonderer Anredetext für Briefe.

    • form_of_salutationstring

      Form der Anrede, zum Beispiel förmlich oder informell.

    • birthdaystring (date-time)

      Geburtstag der Person.

    • known_allergiesstring

      Bekannte Allergien der Person.

    • confirmed_no_allergiesboolean

      Erziehungsberechtigte(r) bestätigt, dass keine bekannten Allergien vorliegen.

    • allow_photosboolean

      Fotos der Person dürfen aufgenommen und veröffentlicht werden.

    • allow_leaving_aloneboolean

      Die Person darf die Veranstaltung allein verlassen.

    • authorized_pickupstring

      Personen, die die Person abholen dürfen.

    • needs_supportboolean

      Die Person benötigt Unterstützung, zum Beispiel zur Inklusion.

    • support_descriptionstring

      Beschreibung der Unterstützung, die die Person benötigt.

    • financial_supportboolean

      Die Person erhält finanzielle Unterstützung.

    • financial_support_numberstring

      Nummer der finanziellen Förderung.

    • municipal_supportboolean

      Die Person erhält kommunale Unterstützung.

    • municipal_support_numberstring

      Nummer der kommunalen Förderung.

    • grade_levelinteger

      Schuljahrgang der Person.

    • school_classstring

      Schulklasse der Person.

    • start_timestring (date-time)

      Beginn der Mitgliedschaft oder Aktivität.

    • start_time_reasonstring

      Grund für den Beginn.

    • end_timestring (date-time)

      Ende der Mitgliedschaft oder Aktivität.

    • end_time_reasonstring

      Grund für das Ende.

    • confirmed_gtc_timestring (date-time)

      Zeitpunkt, zu dem die AGB bestätigt wurden.

    • chatbot_opt_inboolean

      Einwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das prüfbare Protokoll steht in ChatbotConsent.

    • chatbot_opt_in_atstring (date-time)

      Zeitpunkt, zu dem die Person dem Chatbot zugestimmt hat.

    • chatbot_opt_in_text_versionstring

      Version des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.

    • app_usage_statistics_opt_outboolean

      Widerspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezählten Aufrufe selbst haben keinen Bezug zur Person.

    • crm_person_contact_dataarray<CRMPersonContactData>

      Kontaktdaten der Person, zum Beispiel Telefon und E-Mail.

    • archivedboolean

      Ob die Person archiviert ist.

    • subscribed_newsletterboolean

      Ob die Person den Newsletter abonniert hat.

    • subscribed_magazineboolean

      Ob die Person das Magazin abonniert hat.

    • printed_member_cardboolean

      Ob für die Person ein Mitgliedsausweis gedruckt wurde.

    • has_login_userboolean

      Ob die Person einen Anmelde-Benutzer hat.

    • profile_picture_urlstring

      URL des Profilbilds der Person.

    • log_book_staffboolean

      Logbuch-Kennzeichen: Personal.

    • log_book_staff1boolean

      Logbuch-Kennzeichen: Personal, Stufe 1.

    • log_book_staff2boolean

      Logbuch-Kennzeichen: Personal, Stufe 2.

    • log_book_memberboolean

      Logbuch-Kennzeichen: Mitglied.

    • log_book_trainerboolean

      Logbuch-Kennzeichen: Trainer.

    • log_book_trainer1boolean

      Logbuch-Kennzeichen: Trainer, Stufe 1.

    • log_book_trainer2boolean

      Logbuch-Kennzeichen: Trainer, Stufe 2.

    • log_book_head_of_departmentboolean

      Logbuch-Kennzeichen: Abteilungsleitung.

    • log_book_supervisory_boardboolean

      Logbuch-Kennzeichen: Aufsichtsrat.

    • log_book_board_of_directorsboolean

      Logbuch-Kennzeichen: Vorstand.

    • log_book_honorary_memberboolean

      Logbuch-Kennzeichen: Ehrenmitglied.

    • log_book_club_card_oneboolean

      Logbuch-Kennzeichen: Vereinskarte.

    • log_book_health_recoveredboolean

      Logbuch-Kennzeichen: von Krankheit genesen.

    • log_book_health_vaccinatedboolean

      Logbuch-Kennzeichen: geimpft.

    • log_book_health_vaccinated_additionstring

      Details der Impfung.

    • log_book_good_conductboolean

      Logbuch-Kennzeichen: Führungszeugnis.

    • log_book_first_aidboolean

      Logbuch-Kennzeichen: Erste-Hilfe-Schulung.

    • log_book_measles_vaccinationboolean

      Logbuch-Kennzeichen: Masernimpfung.

    • sync_lanistaboolean

      Ob die Person mit Lanista synchronisiert ist.

    • categoryCRMPersonCategory

      Personenkategorie.

    • nicknamestring

      Spitzname der Person.

    • preferred_color_hexstring

      Bevorzugte Farbe der Person als Hexwert.

    • avatar_tokenstring

      Token des Avatarbildes.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

    • addressstring

      Adresse als Text.

    • address_streetstring

      Straße der Adresse.

    • address_house_numberstring

      Hausnummer der Adresse.

    • address_street_levelstring

      Straße und Hausnummer der Adresse.

    • address_costring

      Care-of-Zeile der Adresse.

    • address_citystring

      Ort der Adresse.

    • address_zipstring

      Postleitzahl der Adresse.

    • address_admin_level1string

      Erste Verwaltungsebene der Adresse, z. B. das Bundesland.

    • address_countrystring

      Ländercode der Adresse.

    • address_full_countrystring

      Vollständiger Name des Landes der Adresse.

    • address_geo_latstring

      Breitengrad der Adresse.

    • address_geo_lngstring

      Längengrad der Adresse.

    • address_external_provider_idstring

      Feld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • … 2 weitere Felder
  • userUser14

    Benutzer des Trainers.

    Felder anzeigen (10)
    • idinteger

      Primärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.

    • namestring

      Anzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.

    • usernamestring

      Anmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.

    • emailstring

      E-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.

    • positioningeneralstring

      Freitext zur Position oder Rolle des Benutzers.

    • crm_personCRMPerson10

      CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.

    • profile_picture_urlstring

      URL des Profilbilds des Benutzers.

    • archivedboolean

      Markiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.

    • require2faboolean

      Für diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

  • monthinteger

    Monat der Abrechnung.

  • yearinteger

    Jahr der Abrechnung.

  • generation_datestring (date-time)

    Zeitpunkt, zu dem die Abrechnung erstellt wurde.

  • total_durationinteger

    Gesamtdauer in Sekunden

  • total_netto_valuenumber (float)

    Gesamter Nettobetrag der Abrechnung.

  • positionsarray<TrainerTimeBillingPosition>

    Positionen der Abrechnung.

    Felder anzeigen (13)
    • idinteger

      Primärschlüssel der Trainerzeitabrechnungs-Position. Interne ID.

    • trainer_time_entryTrainerTimeEntry3

      Trainer-Zeiteintrag, auf dem die Position basiert.

    • datestring (date-time)

      Datum der Tätigkeit.

    • start_timestring (date-time)

      Beginn der Arbeit.

    • end_timestring (date-time)

      Ende der Arbeit.

    • durationinteger

      Dauer in Sekunden

    • descriptionstring

      Beschreibung der Arbeit.

    • netto_valuenumber (float)

      Nettowert der Position.

    • event_namestring

      Name der Veranstaltung.

    • booking_namestring

      Name der Buchung.

    • hourly_ratenumber (float)

      Für diese Position angewendeter Stundensatz

    • is_weekendboolean

      Ob diese Position auf ein Wochenende fällt

    • weekend_additionnumber (float)

      Angewendeter Wochenendzuschlag (je Stunde)

  • instructor_allowance_yearly_amountnumber (float)

    Jährliche Übungsleiterpauschale zum Zeitpunkt der Erstellung dieser Abrechnung. Eingefroren, weil der gesetzliche Betrag sich im Laufe der Zeit ändert und ein Neudruck mit den unten stehenden Werten übereinstimmen muss. null = Pauschalenbuchung nicht angewendet.

  • instructor_allowance_appliednumber (float)

    Betrag dieser Abrechnung, der durch die jährliche Übungsleiterpauschale gedeckt ist (§ 3 Nr. 26 EStG). null = Pauschale wird nicht angewendet.

  • instructor_allowance_used_beforenumber (float)

    Jährliche Übungsleiterpauschale, die bereits durch frühere Abrechnungen desselben Jahres verbraucht war, zum Zeitpunkt der Erstellung dieser Abrechnung.

  • instructor_allowance_remainingnumber (float)

    Verbleibende jährliche Übungsleiterpauschale nach dieser Abrechnung.

  • instructor_allowance_exceedingnumber (float)

    Teil dieser Abrechnung, der die jährliche Übungsleiterpauschale übersteigt und daher steuerpflichtig ist.

Anfrage
curl --request POST \
  --url https://eure-instanz.iw-erp.de/api/time/trainer_time_billings \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "person": {
    "id": 42,
    "first_name": "Lena",
    "last_name": "Hartmann",
    "title": "Beispiel",
    "language": "de",
    "support_description": "Text",
    "profile_picture_url": "https://vynst.de",
    "address_street": "Jakobistr. 39",
    "address_city": "Hannover",
    "address_zip": "30163"
  },
  "user": {
    "id": 42,
    "name": "Beispiel",
    "username": "lena.hartmann@example.org",
    "email": "lena.hartmann@example.org",
    "profile_picture_url": "https://vynst.de",
    "positioningeneral": "string",
    "crm_person": {
      "id": 42,
      "first_name": "Lena",
      "last_name": "Hartmann",
      "title": "Beispiel",
      "language": "de",
      "support_description": "Text",
      "profile_picture_url": "https://vynst.de",
      "address_street": "Jakobistr. 39",
      "address_city": "Hannover",
      "address_zip": "30163"
    },
    "archived": true,
    "require2fa": true,
    "search_string": "string"
  },
  "month": 1,
  "year": 1,
  "generation_date": "2026-10-15T09:30:00+02:00",
  "total_duration": 1,
  "total_netto_value": 1.5,
  "positions": [
    {
      "id": 42,
      "description": "Text",
      "event_name": "Beispiel",
      "booking_name": "Beispiel",
      "date": "2026-10-15T09:30:00+02:00",
      "start_time": "2026-10-15T09:30:00+02:00",
      "end_time": "2026-10-15T09:30:00+02:00",
      "duration": 1,
      "netto_value": 1.5,
      "hourly_rate": 1.5
    }
  ],
  "instructor_allowance_yearly_amount": 49.9
}

Vorschau, was eine TrainerTimeBilling für eine Person und einen Monat enthalten würde

GET/api/time/trainer_time_billings/preview

Probelauf der Abrechnung: meldet die abrechenbaren Positionen mit der Vertragspreisgestaltung, die sich ergebenden Summen, den wirksamen Abrechnungsmodus und die Abrechnung der Übungsleiterpauschale, ohne etwas zu schreiben. Wird von der Verwaltung genutzt, bevor die Abrechnung tatsächlich angelegt wird.

Query-Parameter

personPflichtintegerID der Trainer-Person
monthPflichtintegerMonat der Abrechnung
yearPflichtintegerJahr der Abrechnung

Antworten

default

Anfrage
curl --request GET \
  --url 'https://eure-instanz.iw-erp.de/api/time/trainer_time_billings/preview?person=1&month=1&year=1' \
  --header 'x-iw-jwt-token: <TOKEN>'

Einzelne TrainerTimeBilling abrufen

GET/api/time/trainer_time_billings/{id}

Pfad-Parameter

idPflichtstring

Antworten

default

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/trainer_time_billings/42 \
  --header 'x-iw-jwt-token: <TOKEN>'

Eine TrainerTimeBilling löschen

DELETE/api/time/trainer_time_billings/{id}

Pfad-Parameter

idPflichtstring

Antworten

default

Anfrage
curl --request DELETE \
  --url https://eure-instanz.iw-erp.de/api/time/trainer_time_billings/42 \
  --header 'x-iw-jwt-token: <TOKEN>'

Eingangsrechnung im Namen des Trainers für eine Abrechnung erzeugen

POST/api/time/trainer_time_billings/{id}/incoming_invoice

Pfad-Parameter

idPflichtstring

Antworten

200Eingangsrechnung für eine TrainerTimeBilling erzeugenTrainerTimeBilling

Felder anzeigen (14)
  • idinteger

    Primärschlüssel der Trainerzeitabrechnung. Interne ID.

  • personCRMPerson10

    Trainer, für den die Abrechnung erstellt wird.

    Felder anzeigen (81)
    • idinteger

      Primärschlüssel der Person. Interne ID.

    • first_namestring

      Vorname der Person.

    • last_namestring

      Nachname der Person.

    • numberinteger

      Mitglieds- oder Kundennummer der Person.

    • manual_numberinteger

      Manuell gesetzte Nummer statt der automatischen Nummer.

    • number_stringstring

      Mitglieds- oder Kundennummer als Text, einschließlich Präfix.

    • genderstring

      Geschlecht der Person.

    • titlestring

      Akademischer oder sonstiger Titel der Person.

    • positionstring

      Position oder Rolle der Person.

    • languagestring

      Bevorzugte Sprache der Person.

    • special_salutationstring

      Besonderer Anredetext für Briefe.

    • form_of_salutationstring

      Form der Anrede, zum Beispiel förmlich oder informell.

    • birthdaystring (date-time)

      Geburtstag der Person.

    • known_allergiesstring

      Bekannte Allergien der Person.

    • confirmed_no_allergiesboolean

      Erziehungsberechtigte(r) bestätigt, dass keine bekannten Allergien vorliegen.

    • allow_photosboolean

      Fotos der Person dürfen aufgenommen und veröffentlicht werden.

    • allow_leaving_aloneboolean

      Die Person darf die Veranstaltung allein verlassen.

    • authorized_pickupstring

      Personen, die die Person abholen dürfen.

    • needs_supportboolean

      Die Person benötigt Unterstützung, zum Beispiel zur Inklusion.

    • support_descriptionstring

      Beschreibung der Unterstützung, die die Person benötigt.

    • financial_supportboolean

      Die Person erhält finanzielle Unterstützung.

    • financial_support_numberstring

      Nummer der finanziellen Förderung.

    • municipal_supportboolean

      Die Person erhält kommunale Unterstützung.

    • municipal_support_numberstring

      Nummer der kommunalen Förderung.

    • grade_levelinteger

      Schuljahrgang der Person.

    • school_classstring

      Schulklasse der Person.

    • start_timestring (date-time)

      Beginn der Mitgliedschaft oder Aktivität.

    • start_time_reasonstring

      Grund für den Beginn.

    • end_timestring (date-time)

      Ende der Mitgliedschaft oder Aktivität.

    • end_time_reasonstring

      Grund für das Ende.

    • confirmed_gtc_timestring (date-time)

      Zeitpunkt, zu dem die AGB bestätigt wurden.

    • chatbot_opt_inboolean

      Einwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das prüfbare Protokoll steht in ChatbotConsent.

    • chatbot_opt_in_atstring (date-time)

      Zeitpunkt, zu dem die Person dem Chatbot zugestimmt hat.

    • chatbot_opt_in_text_versionstring

      Version des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.

    • app_usage_statistics_opt_outboolean

      Widerspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezählten Aufrufe selbst haben keinen Bezug zur Person.

    • crm_person_contact_dataarray<CRMPersonContactData>

      Kontaktdaten der Person, zum Beispiel Telefon und E-Mail.

    • archivedboolean

      Ob die Person archiviert ist.

    • subscribed_newsletterboolean

      Ob die Person den Newsletter abonniert hat.

    • subscribed_magazineboolean

      Ob die Person das Magazin abonniert hat.

    • printed_member_cardboolean

      Ob für die Person ein Mitgliedsausweis gedruckt wurde.

    • has_login_userboolean

      Ob die Person einen Anmelde-Benutzer hat.

    • profile_picture_urlstring

      URL des Profilbilds der Person.

    • log_book_staffboolean

      Logbuch-Kennzeichen: Personal.

    • log_book_staff1boolean

      Logbuch-Kennzeichen: Personal, Stufe 1.

    • log_book_staff2boolean

      Logbuch-Kennzeichen: Personal, Stufe 2.

    • log_book_memberboolean

      Logbuch-Kennzeichen: Mitglied.

    • log_book_trainerboolean

      Logbuch-Kennzeichen: Trainer.

    • log_book_trainer1boolean

      Logbuch-Kennzeichen: Trainer, Stufe 1.

    • log_book_trainer2boolean

      Logbuch-Kennzeichen: Trainer, Stufe 2.

    • log_book_head_of_departmentboolean

      Logbuch-Kennzeichen: Abteilungsleitung.

    • log_book_supervisory_boardboolean

      Logbuch-Kennzeichen: Aufsichtsrat.

    • log_book_board_of_directorsboolean

      Logbuch-Kennzeichen: Vorstand.

    • log_book_honorary_memberboolean

      Logbuch-Kennzeichen: Ehrenmitglied.

    • log_book_club_card_oneboolean

      Logbuch-Kennzeichen: Vereinskarte.

    • log_book_health_recoveredboolean

      Logbuch-Kennzeichen: von Krankheit genesen.

    • log_book_health_vaccinatedboolean

      Logbuch-Kennzeichen: geimpft.

    • log_book_health_vaccinated_additionstring

      Details der Impfung.

    • log_book_good_conductboolean

      Logbuch-Kennzeichen: Führungszeugnis.

    • log_book_first_aidboolean

      Logbuch-Kennzeichen: Erste-Hilfe-Schulung.

    • log_book_measles_vaccinationboolean

      Logbuch-Kennzeichen: Masernimpfung.

    • sync_lanistaboolean

      Ob die Person mit Lanista synchronisiert ist.

    • categoryCRMPersonCategory

      Personenkategorie.

    • nicknamestring

      Spitzname der Person.

    • preferred_color_hexstring

      Bevorzugte Farbe der Person als Hexwert.

    • avatar_tokenstring

      Token des Avatarbildes.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

    • addressstring

      Adresse als Text.

    • address_streetstring

      Straße der Adresse.

    • address_house_numberstring

      Hausnummer der Adresse.

    • address_street_levelstring

      Straße und Hausnummer der Adresse.

    • address_costring

      Care-of-Zeile der Adresse.

    • address_citystring

      Ort der Adresse.

    • address_zipstring

      Postleitzahl der Adresse.

    • address_admin_level1string

      Erste Verwaltungsebene der Adresse, z. B. das Bundesland.

    • address_countrystring

      Ländercode der Adresse.

    • address_full_countrystring

      Vollständiger Name des Landes der Adresse.

    • address_geo_latstring

      Breitengrad der Adresse.

    • address_geo_lngstring

      Längengrad der Adresse.

    • address_external_provider_idstring

      Feld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • … 2 weitere Felder
  • userUser14

    Benutzer des Trainers.

    Felder anzeigen (10)
    • idinteger

      Primärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.

    • namestring

      Anzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.

    • usernamestring

      Anmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.

    • emailstring

      E-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.

    • positioningeneralstring

      Freitext zur Position oder Rolle des Benutzers.

    • crm_personCRMPerson10

      CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.

    • profile_picture_urlstring

      URL des Profilbilds des Benutzers.

    • archivedboolean

      Markiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.

    • require2faboolean

      Für diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

  • monthinteger

    Monat der Abrechnung.

  • yearinteger

    Jahr der Abrechnung.

  • generation_datestring (date-time)

    Zeitpunkt, zu dem die Abrechnung erstellt wurde.

  • total_durationinteger

    Gesamtdauer in Sekunden

  • total_netto_valuenumber (float)

    Gesamter Nettobetrag der Abrechnung.

  • positionsarray<TrainerTimeBillingPosition>

    Positionen der Abrechnung.

    Felder anzeigen (13)
    • idinteger

      Primärschlüssel der Trainerzeitabrechnungs-Position. Interne ID.

    • trainer_time_entryTrainerTimeEntry3

      Trainer-Zeiteintrag, auf dem die Position basiert.

    • datestring (date-time)

      Datum der Tätigkeit.

    • start_timestring (date-time)

      Beginn der Arbeit.

    • end_timestring (date-time)

      Ende der Arbeit.

    • durationinteger

      Dauer in Sekunden

    • descriptionstring

      Beschreibung der Arbeit.

    • netto_valuenumber (float)

      Nettowert der Position.

    • event_namestring

      Name der Veranstaltung.

    • booking_namestring

      Name der Buchung.

    • hourly_ratenumber (float)

      Für diese Position angewendeter Stundensatz

    • is_weekendboolean

      Ob diese Position auf ein Wochenende fällt

    • weekend_additionnumber (float)

      Angewendeter Wochenendzuschlag (je Stunde)

  • instructor_allowance_yearly_amountnumber (float)

    Jährliche Übungsleiterpauschale zum Zeitpunkt der Erstellung dieser Abrechnung. Eingefroren, weil der gesetzliche Betrag sich im Laufe der Zeit ändert und ein Neudruck mit den unten stehenden Werten übereinstimmen muss. null = Pauschalenbuchung nicht angewendet.

  • instructor_allowance_appliednumber (float)

    Betrag dieser Abrechnung, der durch die jährliche Übungsleiterpauschale gedeckt ist (§ 3 Nr. 26 EStG). null = Pauschale wird nicht angewendet.

  • instructor_allowance_used_beforenumber (float)

    Jährliche Übungsleiterpauschale, die bereits durch frühere Abrechnungen desselben Jahres verbraucht war, zum Zeitpunkt der Erstellung dieser Abrechnung.

  • instructor_allowance_remainingnumber (float)

    Verbleibende jährliche Übungsleiterpauschale nach dieser Abrechnung.

  • instructor_allowance_exceedingnumber (float)

    Teil dieser Abrechnung, der die jährliche Übungsleiterpauschale übersteigt und daher steuerpflichtig ist.

Anfrage
curl --request POST \
  --url https://eure-instanz.iw-erp.de/api/time/trainer_time_billings/42/incoming_invoice \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "person": {
    "id": 42,
    "first_name": "Lena",
    "last_name": "Hartmann",
    "title": "Beispiel",
    "language": "de",
    "support_description": "Text",
    "profile_picture_url": "https://vynst.de",
    "address_street": "Jakobistr. 39",
    "address_city": "Hannover",
    "address_zip": "30163"
  },
  "user": {
    "id": 42,
    "name": "Beispiel",
    "username": "lena.hartmann@example.org",
    "email": "lena.hartmann@example.org",
    "profile_picture_url": "https://vynst.de",
    "positioningeneral": "string",
    "crm_person": {
      "id": 42,
      "first_name": "Lena",
      "last_name": "Hartmann",
      "title": "Beispiel",
      "language": "de",
      "support_description": "Text",
      "profile_picture_url": "https://vynst.de",
      "address_street": "Jakobistr. 39",
      "address_city": "Hannover",
      "address_zip": "30163"
    },
    "archived": true,
    "require2fa": true,
    "search_string": "string"
  },
  "month": 1,
  "year": 1,
  "generation_date": "2026-10-15T09:30:00+02:00",
  "total_duration": 1,
  "total_netto_value": 1.5,
  "positions": [
    {
      "id": 42,
      "description": "Text",
      "event_name": "Beispiel",
      "booking_name": "Beispiel",
      "date": "2026-10-15T09:30:00+02:00",
      "start_time": "2026-10-15T09:30:00+02:00",
      "end_time": "2026-10-15T09:30:00+02:00",
      "duration": 1,
      "netto_value": 1.5,
      "hourly_rate": 1.5
    }
  ],
  "instructor_allowance_yearly_amount": 49.9
}

PDF für eine TrainerTimeBilling erzeugen

GET/api/time/trainer_time_billings/{id}/pdf

Pfad-Parameter

idPflichtstring

Antworten

default

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/trainer_time_billings/42/pdf \
  --header 'x-iw-jwt-token: <TOKEN>'

Alle eigenen TrainerTimeBilling abrufen

GET/api/time/own_trainer_time_billings

Query-Parameter

searchStringstringText, nach dem in der Liste gesucht wird
orderFieldNamestringName des Bestellfelds
orderFieldSortstringSortiermodusErlaubt: DESCASC
pageintegerSeite der Liste
pageSizeintegerAnzahl der Einträge je Seite
withMaxPageNumberstringgibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist

Antworten

default

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/own_trainer_time_billings \
  --header 'x-iw-jwt-token: <TOKEN>'

Eigene TrainerTimeBilling (Übungsleiterabrechnung) für einen Monat anlegen

POST/api/time/own_trainer_time_billings

Nur im Abrechnungsmodus "export" und nur, wenn die Einstellung trainer_time_allow_own_billing_document aktiviert ist. Gesammelt werden alle bestätigten und noch nicht abgerechneten Einträge des angemeldeten Trainers im angegebenen Monat.

Query-Parameter

monthPflichtintegerMonat der Abrechnung
yearPflichtintegerJahr der Abrechnung

Antworten

200Die eigene Trainerabrechnung für einen Monat anlegenTrainerTimeBilling

Felder anzeigen (14)
  • idinteger

    Primärschlüssel der Trainerzeitabrechnung. Interne ID.

  • personCRMPerson10

    Trainer, für den die Abrechnung erstellt wird.

    Felder anzeigen (81)
    • idinteger

      Primärschlüssel der Person. Interne ID.

    • first_namestring

      Vorname der Person.

    • last_namestring

      Nachname der Person.

    • numberinteger

      Mitglieds- oder Kundennummer der Person.

    • manual_numberinteger

      Manuell gesetzte Nummer statt der automatischen Nummer.

    • number_stringstring

      Mitglieds- oder Kundennummer als Text, einschließlich Präfix.

    • genderstring

      Geschlecht der Person.

    • titlestring

      Akademischer oder sonstiger Titel der Person.

    • positionstring

      Position oder Rolle der Person.

    • languagestring

      Bevorzugte Sprache der Person.

    • special_salutationstring

      Besonderer Anredetext für Briefe.

    • form_of_salutationstring

      Form der Anrede, zum Beispiel förmlich oder informell.

    • birthdaystring (date-time)

      Geburtstag der Person.

    • known_allergiesstring

      Bekannte Allergien der Person.

    • confirmed_no_allergiesboolean

      Erziehungsberechtigte(r) bestätigt, dass keine bekannten Allergien vorliegen.

    • allow_photosboolean

      Fotos der Person dürfen aufgenommen und veröffentlicht werden.

    • allow_leaving_aloneboolean

      Die Person darf die Veranstaltung allein verlassen.

    • authorized_pickupstring

      Personen, die die Person abholen dürfen.

    • needs_supportboolean

      Die Person benötigt Unterstützung, zum Beispiel zur Inklusion.

    • support_descriptionstring

      Beschreibung der Unterstützung, die die Person benötigt.

    • financial_supportboolean

      Die Person erhält finanzielle Unterstützung.

    • financial_support_numberstring

      Nummer der finanziellen Förderung.

    • municipal_supportboolean

      Die Person erhält kommunale Unterstützung.

    • municipal_support_numberstring

      Nummer der kommunalen Förderung.

    • grade_levelinteger

      Schuljahrgang der Person.

    • school_classstring

      Schulklasse der Person.

    • start_timestring (date-time)

      Beginn der Mitgliedschaft oder Aktivität.

    • start_time_reasonstring

      Grund für den Beginn.

    • end_timestring (date-time)

      Ende der Mitgliedschaft oder Aktivität.

    • end_time_reasonstring

      Grund für das Ende.

    • confirmed_gtc_timestring (date-time)

      Zeitpunkt, zu dem die AGB bestätigt wurden.

    • chatbot_opt_inboolean

      Einwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das prüfbare Protokoll steht in ChatbotConsent.

    • chatbot_opt_in_atstring (date-time)

      Zeitpunkt, zu dem die Person dem Chatbot zugestimmt hat.

    • chatbot_opt_in_text_versionstring

      Version des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.

    • app_usage_statistics_opt_outboolean

      Widerspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezählten Aufrufe selbst haben keinen Bezug zur Person.

    • crm_person_contact_dataarray<CRMPersonContactData>

      Kontaktdaten der Person, zum Beispiel Telefon und E-Mail.

    • archivedboolean

      Ob die Person archiviert ist.

    • subscribed_newsletterboolean

      Ob die Person den Newsletter abonniert hat.

    • subscribed_magazineboolean

      Ob die Person das Magazin abonniert hat.

    • printed_member_cardboolean

      Ob für die Person ein Mitgliedsausweis gedruckt wurde.

    • has_login_userboolean

      Ob die Person einen Anmelde-Benutzer hat.

    • profile_picture_urlstring

      URL des Profilbilds der Person.

    • log_book_staffboolean

      Logbuch-Kennzeichen: Personal.

    • log_book_staff1boolean

      Logbuch-Kennzeichen: Personal, Stufe 1.

    • log_book_staff2boolean

      Logbuch-Kennzeichen: Personal, Stufe 2.

    • log_book_memberboolean

      Logbuch-Kennzeichen: Mitglied.

    • log_book_trainerboolean

      Logbuch-Kennzeichen: Trainer.

    • log_book_trainer1boolean

      Logbuch-Kennzeichen: Trainer, Stufe 1.

    • log_book_trainer2boolean

      Logbuch-Kennzeichen: Trainer, Stufe 2.

    • log_book_head_of_departmentboolean

      Logbuch-Kennzeichen: Abteilungsleitung.

    • log_book_supervisory_boardboolean

      Logbuch-Kennzeichen: Aufsichtsrat.

    • log_book_board_of_directorsboolean

      Logbuch-Kennzeichen: Vorstand.

    • log_book_honorary_memberboolean

      Logbuch-Kennzeichen: Ehrenmitglied.

    • log_book_club_card_oneboolean

      Logbuch-Kennzeichen: Vereinskarte.

    • log_book_health_recoveredboolean

      Logbuch-Kennzeichen: von Krankheit genesen.

    • log_book_health_vaccinatedboolean

      Logbuch-Kennzeichen: geimpft.

    • log_book_health_vaccinated_additionstring

      Details der Impfung.

    • log_book_good_conductboolean

      Logbuch-Kennzeichen: Führungszeugnis.

    • log_book_first_aidboolean

      Logbuch-Kennzeichen: Erste-Hilfe-Schulung.

    • log_book_measles_vaccinationboolean

      Logbuch-Kennzeichen: Masernimpfung.

    • sync_lanistaboolean

      Ob die Person mit Lanista synchronisiert ist.

    • categoryCRMPersonCategory

      Personenkategorie.

    • nicknamestring

      Spitzname der Person.

    • preferred_color_hexstring

      Bevorzugte Farbe der Person als Hexwert.

    • avatar_tokenstring

      Token des Avatarbildes.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

    • addressstring

      Adresse als Text.

    • address_streetstring

      Straße der Adresse.

    • address_house_numberstring

      Hausnummer der Adresse.

    • address_street_levelstring

      Straße und Hausnummer der Adresse.

    • address_costring

      Care-of-Zeile der Adresse.

    • address_citystring

      Ort der Adresse.

    • address_zipstring

      Postleitzahl der Adresse.

    • address_admin_level1string

      Erste Verwaltungsebene der Adresse, z. B. das Bundesland.

    • address_countrystring

      Ländercode der Adresse.

    • address_full_countrystring

      Vollständiger Name des Landes der Adresse.

    • address_geo_latstring

      Breitengrad der Adresse.

    • address_geo_lngstring

      Längengrad der Adresse.

    • address_external_provider_idstring

      Feld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • … 2 weitere Felder
  • userUser14

    Benutzer des Trainers.

    Felder anzeigen (10)
    • idinteger

      Primärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.

    • namestring

      Anzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.

    • usernamestring

      Anmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.

    • emailstring

      E-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.

    • positioningeneralstring

      Freitext zur Position oder Rolle des Benutzers.

    • crm_personCRMPerson10

      CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.

    • profile_picture_urlstring

      URL des Profilbilds des Benutzers.

    • archivedboolean

      Markiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.

    • require2faboolean

      Für diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

  • monthinteger

    Monat der Abrechnung.

  • yearinteger

    Jahr der Abrechnung.

  • generation_datestring (date-time)

    Zeitpunkt, zu dem die Abrechnung erstellt wurde.

  • total_durationinteger

    Gesamtdauer in Sekunden

  • total_netto_valuenumber (float)

    Gesamter Nettobetrag der Abrechnung.

  • positionsarray<TrainerTimeBillingPosition>

    Positionen der Abrechnung.

    Felder anzeigen (13)
    • idinteger

      Primärschlüssel der Trainerzeitabrechnungs-Position. Interne ID.

    • trainer_time_entryTrainerTimeEntry3

      Trainer-Zeiteintrag, auf dem die Position basiert.

    • datestring (date-time)

      Datum der Tätigkeit.

    • start_timestring (date-time)

      Beginn der Arbeit.

    • end_timestring (date-time)

      Ende der Arbeit.

    • durationinteger

      Dauer in Sekunden

    • descriptionstring

      Beschreibung der Arbeit.

    • netto_valuenumber (float)

      Nettowert der Position.

    • event_namestring

      Name der Veranstaltung.

    • booking_namestring

      Name der Buchung.

    • hourly_ratenumber (float)

      Für diese Position angewendeter Stundensatz

    • is_weekendboolean

      Ob diese Position auf ein Wochenende fällt

    • weekend_additionnumber (float)

      Angewendeter Wochenendzuschlag (je Stunde)

  • instructor_allowance_yearly_amountnumber (float)

    Jährliche Übungsleiterpauschale zum Zeitpunkt der Erstellung dieser Abrechnung. Eingefroren, weil der gesetzliche Betrag sich im Laufe der Zeit ändert und ein Neudruck mit den unten stehenden Werten übereinstimmen muss. null = Pauschalenbuchung nicht angewendet.

  • instructor_allowance_appliednumber (float)

    Betrag dieser Abrechnung, der durch die jährliche Übungsleiterpauschale gedeckt ist (§ 3 Nr. 26 EStG). null = Pauschale wird nicht angewendet.

  • instructor_allowance_used_beforenumber (float)

    Jährliche Übungsleiterpauschale, die bereits durch frühere Abrechnungen desselben Jahres verbraucht war, zum Zeitpunkt der Erstellung dieser Abrechnung.

  • instructor_allowance_remainingnumber (float)

    Verbleibende jährliche Übungsleiterpauschale nach dieser Abrechnung.

  • instructor_allowance_exceedingnumber (float)

    Teil dieser Abrechnung, der die jährliche Übungsleiterpauschale übersteigt und daher steuerpflichtig ist.

Anfrage
curl --request POST \
  --url 'https://eure-instanz.iw-erp.de/api/time/own_trainer_time_billings?month=1&year=1' \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "person": {
    "id": 42,
    "first_name": "Lena",
    "last_name": "Hartmann",
    "title": "Beispiel",
    "language": "de",
    "support_description": "Text",
    "profile_picture_url": "https://vynst.de",
    "address_street": "Jakobistr. 39",
    "address_city": "Hannover",
    "address_zip": "30163"
  },
  "user": {
    "id": 42,
    "name": "Beispiel",
    "username": "lena.hartmann@example.org",
    "email": "lena.hartmann@example.org",
    "profile_picture_url": "https://vynst.de",
    "positioningeneral": "string",
    "crm_person": {
      "id": 42,
      "first_name": "Lena",
      "last_name": "Hartmann",
      "title": "Beispiel",
      "language": "de",
      "support_description": "Text",
      "profile_picture_url": "https://vynst.de",
      "address_street": "Jakobistr. 39",
      "address_city": "Hannover",
      "address_zip": "30163"
    },
    "archived": true,
    "require2fa": true,
    "search_string": "string"
  },
  "month": 1,
  "year": 1,
  "generation_date": "2026-10-15T09:30:00+02:00",
  "total_duration": 1,
  "total_netto_value": 1.5,
  "positions": [
    {
      "id": 42,
      "description": "Text",
      "event_name": "Beispiel",
      "booking_name": "Beispiel",
      "date": "2026-10-15T09:30:00+02:00",
      "start_time": "2026-10-15T09:30:00+02:00",
      "end_time": "2026-10-15T09:30:00+02:00",
      "duration": 1,
      "netto_value": 1.5,
      "hourly_rate": 1.5
    }
  ],
  "instructor_allowance_yearly_amount": 49.9
}

Eigene TrainerTimeBilling abrufen

GET/api/time/own_trainer_time_billings/{id}

Pfad-Parameter

idPflichtstring

Antworten

default

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/own_trainer_time_billings/42 \
  --header 'x-iw-jwt-token: <TOKEN>'

PDF für die eigene TrainerTimeBilling erzeugen

GET/api/time/own_trainer_time_billings/{id}/pdf

Pfad-Parameter

idPflichtstring

Antworten

default

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/own_trainer_time_billings/42/pdf \
  --header 'x-iw-jwt-token: <TOKEN>'