Skip to content
Developer

TrainerTimeBilling

Trainers11 EndpointsTimeTracking / TrainerTimeBilling

Get all TrainerTimeBilling

GET/api/time/trainer_time_billings

Query parameters

searchStringstringtext to search for in the list
orderFieldNamestringname of the order field
orderFieldSortstringsorting modeAllowed: DESCASC
pageintegerpage of the list
pageSizeintegernumber of entries for each page
withMaxPageNumberstringreturns the number of pages available as a header if this is set

Responses

default

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

Create a TrainerTimeBilling: collects confirmed entries for a person/month/year

POST/api/time/trainer_time_billings

Responses

200Create a TrainerTimeBillingTrainerTimeBilling

Show fields (14)
  • idinteger

    Primary key of the trainer time billing. Internal ID.

  • personCRMPerson10

    Trainer the billing is for.

    Show fields (81)
    • idinteger

      Primary key of the person. Internal ID.

    • first_namestring

      First name of the person.

    • last_namestring

      Last name of the person.

    • numberinteger

      Member or customer number of the person.

    • manual_numberinteger

      Number set manually instead of the automatic number.

    • number_stringstring

      Member or customer number as text, including prefix.

    • genderstring

      Gender of the person.

    • titlestring

      Academic or other title of the person.

    • positionstring

      Position or role of the person.

    • languagestring

      Preferred language of the person.

    • special_salutationstring

      Special salutation text for letters.

    • form_of_salutationstring

      Form of salutation, for example formal or informal.

    • birthdaystring (date-time)

      Birthday of the person.

    • known_allergiesstring

      Known allergies of the person.

    • confirmed_no_allergiesboolean

      Guardian confirmed that there are no known allergies.

    • allow_photosboolean

      Photos of the person may be taken and published.

    • allow_leaving_aloneboolean

      The person may leave the event alone.

    • authorized_pickupstring

      Persons who are allowed to pick up the person.

    • needs_supportboolean

      The person needs support, for example for inclusion.

    • support_descriptionstring

      Description of the support the person needs.

    • financial_supportboolean

      The person receives financial support.

    • financial_support_numberstring

      Number of the financial support.

    • municipal_supportboolean

      The person receives municipal support.

    • municipal_support_numberstring

      Number of the municipal support.

    • grade_levelinteger

      School grade level of the person.

    • school_classstring

      School class of the person.

    • start_timestring (date-time)

      Start of the membership or activity.

    • start_time_reasonstring

      Reason for the start.

    • end_timestring (date-time)

      End of the membership or activity.

    • end_time_reasonstring

      Reason for the end.

    • confirmed_gtc_timestring (date-time)

      Time the general terms and conditions were confirmed.

    • chatbot_opt_inboolean

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

    • chatbot_opt_in_atstring (date-time)

      Time the person opted in to the chatbot.

    • 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 gezaehlten Aufrufe selbst haben keinen Bezug zur Person.

    • crm_person_contact_dataarray<CRMPersonContactData>

      Contact data of the person, for example phone and e-mail.

    • archivedboolean

      Whether the person is archived.

    • subscribed_newsletterboolean

      Whether the person subscribed to the newsletter.

    • subscribed_magazineboolean

      Whether the person subscribed to the magazine.

    • printed_member_cardboolean

      Whether a member card has been printed for the person.

    • has_login_userboolean

      Whether the person has a login user.

    • profile_picture_urlstring

      URL of the profile picture of the person.

    • log_book_staffboolean

      Log book flag: staff.

    • log_book_staff1boolean

      Log book flag: staff, level 1.

    • log_book_staff2boolean

      Log book flag: staff, level 2.

    • log_book_memberboolean

      Log book flag: member.

    • log_book_trainerboolean

      Log book flag: trainer.

    • log_book_trainer1boolean

      Log book flag: trainer, level 1.

    • log_book_trainer2boolean

      Log book flag: trainer, level 2.

    • log_book_head_of_departmentboolean

      Log book flag: head of department.

    • log_book_supervisory_boardboolean

      Log book flag: supervisory board.

    • log_book_board_of_directorsboolean

      Log book flag: board of directors.

    • log_book_honorary_memberboolean

      Log book flag: honorary member.

    • log_book_club_card_oneboolean

      Log book flag: club card.

    • log_book_health_recoveredboolean

      Log book flag: recovered from illness.

    • log_book_health_vaccinatedboolean

      Log book flag: vaccinated.

    • log_book_health_vaccinated_additionstring

      Details of the vaccination.

    • log_book_good_conductboolean

      Log book flag: certificate of good conduct.

    • log_book_first_aidboolean

      Log book flag: first aid training.

    • log_book_measles_vaccinationboolean

      Log book flag: measles vaccination.

    • sync_lanistaboolean

      Whether the person is synchronized with Lanista.

    • categoryCRMPersonCategory

      Person category.

    • nicknamestring

      Nickname of the person.

    • preferred_color_hexstring

      Preferred color of the person as hex value.

    • avatar_tokenstring

      Token of the avatar image.

    • search_stringstring

      Text that the entity can be searched by.

    • addressstring

      Address as text.

    • address_streetstring

      Street of the address.

    • address_house_numberstring

      House number of the address.

    • address_street_levelstring

      Street and house number of the address.

    • address_costring

      Care-of line of the address.

    • address_citystring

      City of the address.

    • address_zipstring

      Postal code of the address.

    • address_admin_level1string

      First administrative level of the address, e.g. the federal state.

    • address_countrystring

      Country code of the address.

    • address_full_countrystring

      Full name of the country of the address.

    • address_geo_latstring

      Latitude of the address.

    • address_geo_lngstring

      Longitude of the address.

    • address_external_provider_idstring

      field to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE

    • createdstring (date-time)

      Point in time the entity was created.

    • … 2 more fields
  • userUser14

    Login user of the trainer.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • monthinteger

    Month of the billing.

  • yearinteger

    Year of the billing.

  • generation_datestring (date-time)

    Time the billing was generated.

  • total_durationinteger

    total duration in seconds

  • total_netto_valuenumber (float)

    Total net amount of the billing.

  • positionsarray<TrainerTimeBillingPosition>

    Positions of the billing.

    Show fields (13)
    • idinteger

      Primary key of the trainer time billing position. Internal ID.

    • trainer_time_entryTrainerTimeEntry3

      Trainer time entry the position is based on.

    • datestring (date-time)

      Date of the work.

    • start_timestring (date-time)

      Start of the work.

    • end_timestring (date-time)

      End of the work.

    • durationinteger

      duration in seconds

    • descriptionstring

      Description of the work.

    • netto_valuenumber (float)

      Net value of the position.

    • event_namestring

      Name of the event.

    • booking_namestring

      Name of the booking.

    • hourly_ratenumber (float)

      Hourly rate applied for this position

    • is_weekendboolean

      Whether this position falls on a weekend

    • weekend_additionnumber (float)

      Weekend addition rate applied (per hour)

  • instructor_allowance_yearly_amountnumber (float)

    Yearly instructor allowance in force when this billing was generated. Frozen, because the statutory amount changes over time and a reprint has to stay consistent with the figures below. null = allowance accounting not applied.

  • instructor_allowance_appliednumber (float)

    Amount of this billing that is covered by the yearly instructor allowance (Uebungsleiterpauschale, sec. 3 no. 26 EStG). null = allowance accounting not applied.

  • instructor_allowance_used_beforenumber (float)

    Yearly instructor allowance already used by previous billings of the same year at the time this billing was generated.

  • instructor_allowance_remainingnumber (float)

    Remaining yearly instructor allowance after this billing.

  • instructor_allowance_exceedingnumber (float)

    Part of this billing that exceeds the yearly instructor allowance and is therefore taxable.

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/time/trainer_time_billings \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 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
}

Preview what a TrainerTimeBilling for a person and month would contain

GET/api/time/trainer_time_billings/preview

Dry run of the settlement: reports the billable entries with the contract pricing, the resulting totals, the effective billing mode and the instructor allowance accounting without writing anything. Used by the administration before the settlement is actually created.

Query parameters

personrequiredintegerId of the trainer person
monthrequiredintegerMonth of the settlement
yearrequiredintegerYear of the settlement

Responses

default

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

Get a single TrainerTimeBilling

GET/api/time/trainer_time_billings/{id}

Path parameters

idrequiredstring

Responses

default

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

Delete a TrainerTimeBilling

DELETE/api/time/trainer_time_billings/{id}

Path parameters

idrequiredstring

Responses

default

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

Generate an Eingangsrechnung (incoming invoice) in the name of the trainer for a billing

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

Path parameters

idrequiredstring

Responses

200Generate the Eingangsrechnung for a TrainerTimeBillingTrainerTimeBilling

Show fields (14)
  • idinteger

    Primary key of the trainer time billing. Internal ID.

  • personCRMPerson10

    Trainer the billing is for.

    Show fields (81)
    • idinteger

      Primary key of the person. Internal ID.

    • first_namestring

      First name of the person.

    • last_namestring

      Last name of the person.

    • numberinteger

      Member or customer number of the person.

    • manual_numberinteger

      Number set manually instead of the automatic number.

    • number_stringstring

      Member or customer number as text, including prefix.

    • genderstring

      Gender of the person.

    • titlestring

      Academic or other title of the person.

    • positionstring

      Position or role of the person.

    • languagestring

      Preferred language of the person.

    • special_salutationstring

      Special salutation text for letters.

    • form_of_salutationstring

      Form of salutation, for example formal or informal.

    • birthdaystring (date-time)

      Birthday of the person.

    • known_allergiesstring

      Known allergies of the person.

    • confirmed_no_allergiesboolean

      Guardian confirmed that there are no known allergies.

    • allow_photosboolean

      Photos of the person may be taken and published.

    • allow_leaving_aloneboolean

      The person may leave the event alone.

    • authorized_pickupstring

      Persons who are allowed to pick up the person.

    • needs_supportboolean

      The person needs support, for example for inclusion.

    • support_descriptionstring

      Description of the support the person needs.

    • financial_supportboolean

      The person receives financial support.

    • financial_support_numberstring

      Number of the financial support.

    • municipal_supportboolean

      The person receives municipal support.

    • municipal_support_numberstring

      Number of the municipal support.

    • grade_levelinteger

      School grade level of the person.

    • school_classstring

      School class of the person.

    • start_timestring (date-time)

      Start of the membership or activity.

    • start_time_reasonstring

      Reason for the start.

    • end_timestring (date-time)

      End of the membership or activity.

    • end_time_reasonstring

      Reason for the end.

    • confirmed_gtc_timestring (date-time)

      Time the general terms and conditions were confirmed.

    • chatbot_opt_inboolean

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

    • chatbot_opt_in_atstring (date-time)

      Time the person opted in to the chatbot.

    • 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 gezaehlten Aufrufe selbst haben keinen Bezug zur Person.

    • crm_person_contact_dataarray<CRMPersonContactData>

      Contact data of the person, for example phone and e-mail.

    • archivedboolean

      Whether the person is archived.

    • subscribed_newsletterboolean

      Whether the person subscribed to the newsletter.

    • subscribed_magazineboolean

      Whether the person subscribed to the magazine.

    • printed_member_cardboolean

      Whether a member card has been printed for the person.

    • has_login_userboolean

      Whether the person has a login user.

    • profile_picture_urlstring

      URL of the profile picture of the person.

    • log_book_staffboolean

      Log book flag: staff.

    • log_book_staff1boolean

      Log book flag: staff, level 1.

    • log_book_staff2boolean

      Log book flag: staff, level 2.

    • log_book_memberboolean

      Log book flag: member.

    • log_book_trainerboolean

      Log book flag: trainer.

    • log_book_trainer1boolean

      Log book flag: trainer, level 1.

    • log_book_trainer2boolean

      Log book flag: trainer, level 2.

    • log_book_head_of_departmentboolean

      Log book flag: head of department.

    • log_book_supervisory_boardboolean

      Log book flag: supervisory board.

    • log_book_board_of_directorsboolean

      Log book flag: board of directors.

    • log_book_honorary_memberboolean

      Log book flag: honorary member.

    • log_book_club_card_oneboolean

      Log book flag: club card.

    • log_book_health_recoveredboolean

      Log book flag: recovered from illness.

    • log_book_health_vaccinatedboolean

      Log book flag: vaccinated.

    • log_book_health_vaccinated_additionstring

      Details of the vaccination.

    • log_book_good_conductboolean

      Log book flag: certificate of good conduct.

    • log_book_first_aidboolean

      Log book flag: first aid training.

    • log_book_measles_vaccinationboolean

      Log book flag: measles vaccination.

    • sync_lanistaboolean

      Whether the person is synchronized with Lanista.

    • categoryCRMPersonCategory

      Person category.

    • nicknamestring

      Nickname of the person.

    • preferred_color_hexstring

      Preferred color of the person as hex value.

    • avatar_tokenstring

      Token of the avatar image.

    • search_stringstring

      Text that the entity can be searched by.

    • addressstring

      Address as text.

    • address_streetstring

      Street of the address.

    • address_house_numberstring

      House number of the address.

    • address_street_levelstring

      Street and house number of the address.

    • address_costring

      Care-of line of the address.

    • address_citystring

      City of the address.

    • address_zipstring

      Postal code of the address.

    • address_admin_level1string

      First administrative level of the address, e.g. the federal state.

    • address_countrystring

      Country code of the address.

    • address_full_countrystring

      Full name of the country of the address.

    • address_geo_latstring

      Latitude of the address.

    • address_geo_lngstring

      Longitude of the address.

    • address_external_provider_idstring

      field to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE

    • createdstring (date-time)

      Point in time the entity was created.

    • … 2 more fields
  • userUser14

    Login user of the trainer.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • monthinteger

    Month of the billing.

  • yearinteger

    Year of the billing.

  • generation_datestring (date-time)

    Time the billing was generated.

  • total_durationinteger

    total duration in seconds

  • total_netto_valuenumber (float)

    Total net amount of the billing.

  • positionsarray<TrainerTimeBillingPosition>

    Positions of the billing.

    Show fields (13)
    • idinteger

      Primary key of the trainer time billing position. Internal ID.

    • trainer_time_entryTrainerTimeEntry3

      Trainer time entry the position is based on.

    • datestring (date-time)

      Date of the work.

    • start_timestring (date-time)

      Start of the work.

    • end_timestring (date-time)

      End of the work.

    • durationinteger

      duration in seconds

    • descriptionstring

      Description of the work.

    • netto_valuenumber (float)

      Net value of the position.

    • event_namestring

      Name of the event.

    • booking_namestring

      Name of the booking.

    • hourly_ratenumber (float)

      Hourly rate applied for this position

    • is_weekendboolean

      Whether this position falls on a weekend

    • weekend_additionnumber (float)

      Weekend addition rate applied (per hour)

  • instructor_allowance_yearly_amountnumber (float)

    Yearly instructor allowance in force when this billing was generated. Frozen, because the statutory amount changes over time and a reprint has to stay consistent with the figures below. null = allowance accounting not applied.

  • instructor_allowance_appliednumber (float)

    Amount of this billing that is covered by the yearly instructor allowance (Uebungsleiterpauschale, sec. 3 no. 26 EStG). null = allowance accounting not applied.

  • instructor_allowance_used_beforenumber (float)

    Yearly instructor allowance already used by previous billings of the same year at the time this billing was generated.

  • instructor_allowance_remainingnumber (float)

    Remaining yearly instructor allowance after this billing.

  • instructor_allowance_exceedingnumber (float)

    Part of this billing that exceeds the yearly instructor allowance and is therefore taxable.

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/time/trainer_time_billings/42/incoming_invoice \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 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
}

Generate PDF for a TrainerTimeBilling

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

Path parameters

idrequiredstring

Responses

default

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

Get all own TrainerTimeBilling

GET/api/time/own_trainer_time_billings

Query parameters

searchStringstringtext to search for in the list
orderFieldNamestringname of the order field
orderFieldSortstringsorting modeAllowed: DESCASC
pageintegerpage of the list
pageSizeintegernumber of entries for each page
withMaxPageNumberstringreturns the number of pages available as a header if this is set

Responses

default

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

Create an own TrainerTimeBilling (Uebungsleiterabrechnung) for a month

POST/api/time/own_trainer_time_billings

Only available in the billing mode "export" and only when the setting trainer_time_allow_own_billing_document is enabled. All confirmed and not yet billed entries of the logged in trainer within the given month are collected.

Query parameters

monthrequiredintegerMonth of the settlement
yearrequiredintegerYear of the settlement

Responses

200Create the own trainer settlement for a monthTrainerTimeBilling

Show fields (14)
  • idinteger

    Primary key of the trainer time billing. Internal ID.

  • personCRMPerson10

    Trainer the billing is for.

    Show fields (81)
    • idinteger

      Primary key of the person. Internal ID.

    • first_namestring

      First name of the person.

    • last_namestring

      Last name of the person.

    • numberinteger

      Member or customer number of the person.

    • manual_numberinteger

      Number set manually instead of the automatic number.

    • number_stringstring

      Member or customer number as text, including prefix.

    • genderstring

      Gender of the person.

    • titlestring

      Academic or other title of the person.

    • positionstring

      Position or role of the person.

    • languagestring

      Preferred language of the person.

    • special_salutationstring

      Special salutation text for letters.

    • form_of_salutationstring

      Form of salutation, for example formal or informal.

    • birthdaystring (date-time)

      Birthday of the person.

    • known_allergiesstring

      Known allergies of the person.

    • confirmed_no_allergiesboolean

      Guardian confirmed that there are no known allergies.

    • allow_photosboolean

      Photos of the person may be taken and published.

    • allow_leaving_aloneboolean

      The person may leave the event alone.

    • authorized_pickupstring

      Persons who are allowed to pick up the person.

    • needs_supportboolean

      The person needs support, for example for inclusion.

    • support_descriptionstring

      Description of the support the person needs.

    • financial_supportboolean

      The person receives financial support.

    • financial_support_numberstring

      Number of the financial support.

    • municipal_supportboolean

      The person receives municipal support.

    • municipal_support_numberstring

      Number of the municipal support.

    • grade_levelinteger

      School grade level of the person.

    • school_classstring

      School class of the person.

    • start_timestring (date-time)

      Start of the membership or activity.

    • start_time_reasonstring

      Reason for the start.

    • end_timestring (date-time)

      End of the membership or activity.

    • end_time_reasonstring

      Reason for the end.

    • confirmed_gtc_timestring (date-time)

      Time the general terms and conditions were confirmed.

    • chatbot_opt_inboolean

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

    • chatbot_opt_in_atstring (date-time)

      Time the person opted in to the chatbot.

    • 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 gezaehlten Aufrufe selbst haben keinen Bezug zur Person.

    • crm_person_contact_dataarray<CRMPersonContactData>

      Contact data of the person, for example phone and e-mail.

    • archivedboolean

      Whether the person is archived.

    • subscribed_newsletterboolean

      Whether the person subscribed to the newsletter.

    • subscribed_magazineboolean

      Whether the person subscribed to the magazine.

    • printed_member_cardboolean

      Whether a member card has been printed for the person.

    • has_login_userboolean

      Whether the person has a login user.

    • profile_picture_urlstring

      URL of the profile picture of the person.

    • log_book_staffboolean

      Log book flag: staff.

    • log_book_staff1boolean

      Log book flag: staff, level 1.

    • log_book_staff2boolean

      Log book flag: staff, level 2.

    • log_book_memberboolean

      Log book flag: member.

    • log_book_trainerboolean

      Log book flag: trainer.

    • log_book_trainer1boolean

      Log book flag: trainer, level 1.

    • log_book_trainer2boolean

      Log book flag: trainer, level 2.

    • log_book_head_of_departmentboolean

      Log book flag: head of department.

    • log_book_supervisory_boardboolean

      Log book flag: supervisory board.

    • log_book_board_of_directorsboolean

      Log book flag: board of directors.

    • log_book_honorary_memberboolean

      Log book flag: honorary member.

    • log_book_club_card_oneboolean

      Log book flag: club card.

    • log_book_health_recoveredboolean

      Log book flag: recovered from illness.

    • log_book_health_vaccinatedboolean

      Log book flag: vaccinated.

    • log_book_health_vaccinated_additionstring

      Details of the vaccination.

    • log_book_good_conductboolean

      Log book flag: certificate of good conduct.

    • log_book_first_aidboolean

      Log book flag: first aid training.

    • log_book_measles_vaccinationboolean

      Log book flag: measles vaccination.

    • sync_lanistaboolean

      Whether the person is synchronized with Lanista.

    • categoryCRMPersonCategory

      Person category.

    • nicknamestring

      Nickname of the person.

    • preferred_color_hexstring

      Preferred color of the person as hex value.

    • avatar_tokenstring

      Token of the avatar image.

    • search_stringstring

      Text that the entity can be searched by.

    • addressstring

      Address as text.

    • address_streetstring

      Street of the address.

    • address_house_numberstring

      House number of the address.

    • address_street_levelstring

      Street and house number of the address.

    • address_costring

      Care-of line of the address.

    • address_citystring

      City of the address.

    • address_zipstring

      Postal code of the address.

    • address_admin_level1string

      First administrative level of the address, e.g. the federal state.

    • address_countrystring

      Country code of the address.

    • address_full_countrystring

      Full name of the country of the address.

    • address_geo_latstring

      Latitude of the address.

    • address_geo_lngstring

      Longitude of the address.

    • address_external_provider_idstring

      field to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE

    • createdstring (date-time)

      Point in time the entity was created.

    • … 2 more fields
  • userUser14

    Login user of the trainer.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • monthinteger

    Month of the billing.

  • yearinteger

    Year of the billing.

  • generation_datestring (date-time)

    Time the billing was generated.

  • total_durationinteger

    total duration in seconds

  • total_netto_valuenumber (float)

    Total net amount of the billing.

  • positionsarray<TrainerTimeBillingPosition>

    Positions of the billing.

    Show fields (13)
    • idinteger

      Primary key of the trainer time billing position. Internal ID.

    • trainer_time_entryTrainerTimeEntry3

      Trainer time entry the position is based on.

    • datestring (date-time)

      Date of the work.

    • start_timestring (date-time)

      Start of the work.

    • end_timestring (date-time)

      End of the work.

    • durationinteger

      duration in seconds

    • descriptionstring

      Description of the work.

    • netto_valuenumber (float)

      Net value of the position.

    • event_namestring

      Name of the event.

    • booking_namestring

      Name of the booking.

    • hourly_ratenumber (float)

      Hourly rate applied for this position

    • is_weekendboolean

      Whether this position falls on a weekend

    • weekend_additionnumber (float)

      Weekend addition rate applied (per hour)

  • instructor_allowance_yearly_amountnumber (float)

    Yearly instructor allowance in force when this billing was generated. Frozen, because the statutory amount changes over time and a reprint has to stay consistent with the figures below. null = allowance accounting not applied.

  • instructor_allowance_appliednumber (float)

    Amount of this billing that is covered by the yearly instructor allowance (Uebungsleiterpauschale, sec. 3 no. 26 EStG). null = allowance accounting not applied.

  • instructor_allowance_used_beforenumber (float)

    Yearly instructor allowance already used by previous billings of the same year at the time this billing was generated.

  • instructor_allowance_remainingnumber (float)

    Remaining yearly instructor allowance after this billing.

  • instructor_allowance_exceedingnumber (float)

    Part of this billing that exceeds the yearly instructor allowance and is therefore taxable.

Request
curl --request POST \
  --url 'https://your-instance.iw-erp.de/api/time/own_trainer_time_billings?month=1&year=1' \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 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
}

Get own TrainerTimeBilling

GET/api/time/own_trainer_time_billings/{id}

Path parameters

idrequiredstring

Responses

default

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

Generate PDF for own TrainerTimeBilling

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

Path parameters

idrequiredstring

Responses

default

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