The Wage Types Master is the payroll's chart of salary components - salary, bonuses, allowances, deductions, employer contributions.
- Wage type vs. collector: a wage type is a single salary component; a collector groups several for cleaner bookings
Real examples - see WageTypes for the full catalog.
- Origin: delivered by the payroll's assigned regulation(s), or duplicated from an existing copyable one via the API (see "Copying a wage type" below) - there's no from-scratch creation
- Collectors: wage types can be grouped (e.g. "all social insurance deductions") for cleaner bookings - each wage type record lists its collectors (with whether membership is changeable), and membership can be turned on/off via the same batch update, where the collector allows it
- Accounting: each wage type maps to a general ledger account via WageType-Accounting-Allocation
- Activation: β one-way a wage type can be activated via the API - there's no deactivate operation
- Properties: returned on the wage type record itself - description plus read-only attributes like sign and Lohnausweis mapping
- Which wage types were used in a period: see the accounting posting document under Outputs
Updating wage types
Account mapping, controlling triggers, collector membership and localized display names are all updated through the same batch endpoint - there's no need to call it once per field or per wage type:
- What can be adjusted: an existing wage type's account mapping (debit/credit, via WageType-Accounting-Allocation), its controlling triggers, its collector membership, and its localized display names - not its underlying calculation logic (effective-date = open period)
- Batching: any number of wage type updates can be submitted together in a single PATCH request
- Ason's own frontend builds an editable table on top of this - inline edits accumulate locally and are sent as one batch on save, with search, filtering and category grouping layered on top - but that's one possible UI, not part of the API contract itself
WageType-Accounting-Allocation
WageType-Accounting-Allocation is the mapping of each wage type to a general ledger account.
- Configured: once per payroll, changeable any time without affecting historical postings
- Mechanism: part of the wage type record itself (
accountAssignment- debit/credit account numbers) - set via the same PATCH/v2/tenants/{orgId}/payrolls/{payrollId}/wagetypesbatch endpoint as everything else on the Wage Types Master, not through Client Lookups - Before closing a period: every wage type used in that period needs an account assigned, or accounting document generation fails and the Payrun Period can't close - resolve the mapping via the Wage Types Master; a platform should surface this and point the user back to the missing mapping
- Changing an account: no need to remap everything - only the wage types you actually change are affected, and historical postings stay untouched
Controlling triggers
Instead of a single flat "controlling category", each wage type has a controlling trigger selection mode:
- Automatic - Ason decides when a controlling case should be raised for this wage type
- Single - pick exactly one trigger from the ones available for that wage type
- Multiple - pick any combination of the available triggers
See Payroll Control for what a controlling case actually does.
Copying a wage type
Some wage types are marked copyable. For those, a new wage type can be created via the API by supplying the new wage type's display name in all four languages (German, English, French, Italian) - all four are required. Ason enforces a maximum number of copies per source wage type.
- Additional logic: available on request - get in touch
API Endpoints
| What | Call |
|---|---|
| Get the wage type master | GET /v2/tenants/{orgId}/payrolls/{payrollId}/wagetypes |
| Update wage types (batch) | PATCH /v2/tenants/{orgId}/payrolls/{payrollId}/wagetypes |
| Copy a wage type | POST /v2/tenants/{orgId}/payrolls/{payrollId}/wagetypes |
| Activate a wage type | POST /v2/tenants/{orgId}/payrolls/{payrollId}/wagetypes/{wageTypeNumber}:activate |
