Employee-level Case Changes - entry, salary, personal details - reported the same way as any other case change (see New CaseChanges). Some employee case fields don't hold a text or number value - they hold a file. A signed contract, a scanned ID, a salary certificate: these are reported the same way as any other case change, just with a documents array attached to the value instead of (or alongside) a value.
This is different from Outputs: outputs are files Ason generates (payslips, declarations). Documents are files you upload as evidence for a case value.
Employee Case Fields
Reference list of all case fields used to report an Employee Case Change - the same fields used in the "Enter salary & employee data" step of the Quickstart. See New CaseChanges for how to report them.
Employee Master Data - Period fields, valid from a start date onward until changed again (e.g. address, bank details).
| Name | ValueType | Lookup | Display DE | Display EN | Display FR | Display IT |
|---|---|---|---|---|---|---|
| CH.Swissdec.EmployeeAhvInsuranceWaivesTheAllowance | Boolean | Wird auf den AHV Freibetrag verzichtet? | Is the OASI exemption amount being waived? | Renonce-t-on à la franchise AVS? | Si rinuncia alla franchigia AVS? | |
| CH.Swissdec.EmployeeActivityRatePercent | Decimal | Beschäftigungsgrad | Activity rate | Degré d'occupation | Grado di occupazione | |
| CH.Swissdec.EmployeeAddressCanton | String | AG, AR, AI, BL, BS, BE, FR, GE, GL, GR, JU, LU, NE, NW, OW, SH, SZ, SO, SG, TG, TI, UR, VD, VS, ZG, ZH, EX | Kanton | Canton | Canton | Cantone |
| CH.Swissdec.EmployeeAddressCity | String | Ort | City | Ville | Luogo | |
| CH.Swissdec.EmployeeAddressCommunityId | Integer | Gemeindenummer | Community id | Numéro de la commune | Numero di comune | |
| CH.Swissdec.EmployeeAddressCountry | String | ISO 3166-1 alpha-2 country codes | Land | Country | Pays | Nazione |
| CH.Swissdec.EmployeeAddressStreet | String | Strasse und Hausnummer | Street and house number | Rue et n° maison | Via e numero | |
| CH.Swissdec.EmployeeAddressZipCode | String | Postleitzahl | ZIP Code | Code postal | Numero postale d'avviamento (NPA) | |
| CH.Swissdec.EmployeeAhvInsuranceInstitutionId | String | Name der Ausgleichskasse | Name of the compensation fund | Nom de la caisse de compensation | Nome della cassa di compensazione | |
| CH.Swissdec.EmployeeAhvInsuranceSpecialCase | Boolean | Handelt es sich um ein AHV Sonderfall? | Is this an OASI special case? | S'agit-il d'un cas particulier AVS? | Si tratta di un caso speciale AVS? | |
| CH.Swissdec.EmployeeAhvNumber | String | Sozialversicherungsnummer | Social insurance number | Numéro d'assurance sociale | Numero di previdenza nazionale | |
| CH.Swissdec.EmployeeBirthDate | Date | Geburtsdatum | Date of birth | Date de naissance | Data di nascita | |
| CH.Swissdec.EmployeeNationality | String | ISO 3166-1 alpha-2 country codes | Nationalität | Nationality | Nationalité | Nazionalità |
| CH.Swissdec.EmployeeSex | String | M, F | Geschlecht | Sex | Sexe | Sesso |
| CH.Swissdec.EmployeeWithdrawalDate | Date | Austrittsdatum | Leaving date | Date de sortie | Data di uscita | |
| CH.Swissdec.EmployeeSalaryType | String | Lohntyp | Wage type | Type de salaire | Tipo di salario |
Full reference (100+ fields) available via the API Reference - the table above shows the most commonly used fields.
Variable data for employees - Moment fields, tied to a single point in time, e.g. hours worked or a one-off bonus.
| Name | ValueType | Lookup | Display DE | Display EN | Display FR | Display IT |
|---|---|---|---|---|---|---|
| CH.Swissdec.EmployeeActivityWorkedDays | Decimal | Geleistete Tage | Days worked | Jours travaillés | Giorni di lavoro | |
| CH.Swissdec.EmployeeActivityWorkedHours | Decimal | Geleistete Stunden | Worked Hours | Heures travaillées | Ore lavorate | |
| CH.Swissdec.EmployeeOneTimeWageBonusPayment | Money | Bonuszahlung in CHF | Bonus payment in CHF | Paiement de bonus en CHF | Pagamento del bonus in CHF | |
| CH.Swissdec.EmployeeActivitySundayBonus | Money | Sonntagszulage in CHF | Sunday allowance in CHF | Indemnité du dimanche en CHF | Indennità per domenica in CHF | |
| CH.Swissdec.EmployeeSundaySurcharge50 | Decimal | Sonntagszuschlag 50% erfassen | Enter Sunday surcharge at 50% | Enregistrer le supplément de dimanche à 50% | Registrare il sovrapprezzo domenicale al 50% | |
| CH.Swissdec.EmployeeExpenseCarExpenses | Money | Autospesen in CHF | Car expenses in CHF | Frais de voiture en CHF | Spese auto in CHF | |
| CH.Swissdec.EmployeeExpenseMealsExpenses | Money | Verpflegungsspesen in CHF | Meal expenses in CHF | Frais de repas en CHF | Spese per vitto in CHF |
Full reference (100+ fields) available via the API Reference - the table above shows the most commonly used fields.
Attaching a document
Add a documents array to any CaseValueSetup in a case change, and include employeeId (instead of relying on divisionId alone) so the value is scoped to the right employee. Each document entry needs a name, a contentType (MIME type), and base64-encoded content.
The response echoes back each value with its own id - that id is the case value id, and it's what you need to retrieve or delete the document later. It is not the same as the case change id.
Retrieving documents
_
Supports the usual OData query parameters (filter, select, top, skip, ...). Each item in the list is a reference (id, name, contentType) - append /{documentId} to fetch the actual content.
Deleting a document
DELETE the same single-document URL (.../documents/{documentId}) to remove it. This is permanent - there's no separate archive step.
FAQ
How does this differ from what Quickstart step 6 does?
It's the same mechanism - Quickstart step 6 is a live example of exactly this.
Can I attach more than one document to a case value?
Yes - the documents array accepts multiple entries.
How do I find the caseValueId for a document I attached earlier?
It's returned in the response when you report the case change - see "Attaching a document" above.
Can employees see their own documents?
Yes, via ESS.
Is this only the data of the individual employee?
Yes - everything here is scoped to employeeId.
Does everything else work the same as on the company side?
Yes - same mechanism as Company Data incl. Documents: today's values by default, full history per field, documents attached to case values, deletable only via the API.
Employee events (Ereignisse)
The employee's own case-change history - same idea as company events, just scoped to that employee: event/field/value with Start/End/Created and reason, no "changed by" attribution.
API Endpoints
| What | Call |
|---|---|
| Report an employee case change | POST /tenants/{orgId}/payrolls/{payrollId}/cases/sets |
| List case fields that hold documents | GET /tenants/{orgId}/payrolls/{payrollId}/casefields |
| Get an employee document | GET /tenants/{orgId}/employees/{employeeId}/cases/{caseValueId}/documents/{documentId} |
| Delete a document | DELETE (same URL as above) |
