Service Type Schema
Felder
Service Type Schema
Schema for validating service type / Leistungstyp entities
name
Service type name (e.g. Standard Support, Consulting)
description
Service type description
code
Short code (e.g. STD, ADM, CON)
color
Display color as hex (e.g. #18cc63)
icon
MUI icon name
isActive
Whether this service type is available for selection
isDefault
Whether this is the tenant-level default service type. Only one service type per tenant can be the default. User-level preferences override this.
sortOrder
Display sort order
category
Category for backward compatibility with entryType
WORKTRAVELREMOTEON_SITEPHONEADMINCONSULTINGMAINTENANCESUPPORTCUSTOMserviceNature
Klassifizierung für die Full-Service-Auswertung: SUPPORT = im Full-Service-Pauschalpreis enthalten, ORDER_BASED = auftragsbezogene Dienstleistung (separat berechenbar). Wird beim Buchen als Snapshot auf den time_record kopiert.
SUPPORTORDER_BASEDnulldefaultLocation
Default location when this service type is selected
OFFICECUSTOMER_SITEREMOTETRAVELarticleId
Linked article UUID for invoice line items (maps to weclapp articleNumber via article SKU)
priceSource
Where the hourly rate is sourced from when creating time records: MASK = use billing.pricing[] on this service type, ARTICLE = resolve from articlePrices[] on the linked article (requires articleId).
MASKARTICLEbilling
Billing parameters for this service type
roundingMinutes
Round billable minutes to this increment
roundingMode
Rounding direction
UPDOWNNEARESTminimumMinutes
Minimum billable minutes. If tracked time > 0 but < minimum, it is raised to this value (applied after rounding).
billingUnitMinutes
Size of one billing unit (Arbeitseinheit) in minutes, used for invoicing. Does not affect rounding — only determines how billable minutes are expressed as units on invoices.
inclusiveMinutes
Free minutes included before billing starts
defaultBillable
SOFT default: preselects billableType=NONE in the booking dialog when false. The user may still switch the booking back to billable — use `neverBillable` for a hard rule.
neverBillable
HARD flag (ADR 0463): bookings on this service type are never billable ("n.b."). The server forces billableType=NONE / billable=false / billableMinutes=0 and freezes a 0,00 € rate snapshot on every write path (CRUD, timer-stop, import), so the position always invoices at 0 €. Absent/false = todays behaviour; no backfill needed.
defaultBudgetCapMinutes
Default budget cap in minutes for tickets using this service type. Applied when a ticket is created with this service type.
allowFlatRate
Whether flat-rate billing is allowed for this type
pricingDateBasis
ADR 0415 — which date resolves the price schedules at Leistungsnachweis generation: SERVICE_DATE (default, the day the work was performed — time_record.date) or BILLING_DATE (the day of the billing run — performanceRecordDate; a price change between service and billing then applies). Tenant-wide default for this service type; party.serviceTypeOverrides[].pricingDateBasis overrides per customer. Only the base rate follows this date — contract rates/surcharges, rounding, inclusive minutes and contingents always stay on the service date.
SERVICE_DATEBILLING_DATEnullpricing
Price schedule sorted by validFrom. System picks the entry valid for the booking date.
validFrom
Price effective from this date (ISO date)
ratePerHour
Hourly rate in EUR as decimal string
flatRateAmount
Flat rate amount in EUR as decimal string
surchargeStackingMode
Tenant default for how surcharges combine when several apply to the same minute (ADR 0431). ADDITIVE (default) sums them; MAX lets the single highest win. A contract can override this via conditions.surchargeStackingMode.
ADDITIVEMAXsurcharges
Surcharges/discounts applied to the hourly rate
_id
UUIDv7 surcharge ID
name
Surcharge name (e.g. Abendzuschlag, Wochenendzuschlag)
percentChange
Percentage change: +25 for surcharge, -10 for discount
applyMode
AUTO (default, also when absent) = time-window driven: auto-detected in the booking dialog and billed for the minutes inside timeRanges (ADR 0431). MANUAL = no time ranges; never auto-preselected, always offered as a pickable chip, and — when picked — applies to the FULL booking duration (mapped to an all-day window in the segmentation). ADR 0442.
AUTOMANUALalsoOnHolidays
The time ranges additionally apply on every public holiday regardless of the weekday — same semantics as includeHolidays of the overtime weekend rule (ADR 0441). false/absent = holidays have NO influence (day match only; deliberately NOT the contract-surcharge IGNORE suppression from ADR 0163). ADR 0442.
timeRanges
fromTime
Start time (HH:MM)
toTime
End time (HH:MM)
daysOfWeek
Days of week (0=Sunday). Empty means all days.
validFrom
Effective from date (ISO date)
validUntil
Effective until date (ISO date)
isActive
Whether this surcharge is active
access
ADR 0463 — who may book on this service type. BOTH lists empty/absent = available to everyone (the default, and what every pre-existing service type resolves to — no backfill). As soon as either list has an entry the type is restricted, and a user needs a match in EITHER list (union, not intersection). `admin_bypass` and holders of `service_type_edit` always see every type.
roleIds
role_definitions._id values whose members may book on this service type
orgUnitIds
org_units._id values (Teams) whose members may book on this service type
tags
Tags for categorization
Keine Felder passen zum Filter.
Standard-Endpoints
Diese Resource folgt dem generischen CRUD-Vertrag der Plattform. Lesen Sie die Konventionen für Pagination, Idempotenz, Optimistic Locking und Audit. Die wichtigsten Endpoints:
GET /api/v1/service_types— Liste, paginiert + filterbarGET /api/v1/service_types/<id>— Einzelne EntityPOST /api/v1/service_types— AnlegenPATCH /api/v1/service_types/<id>— Teil-UpdateDELETE /api/v1/service_types/<id>— Soft-DeleteGET /api/v1/service_types/<id>/timeline— Audit + Aktivitäten