> ## Documentation Index
> Fetch the complete documentation index at: https://developers.jobhandy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Datentypen und Formate

> Verwenden Sie exakt die dokumentierten Konventionen für Identifikatoren, Zeitstempel, Daten, Monate, Länder, Enums, Geldwerte, Nullability und Dateien.

## Identifikatoren

Die meisten Ressourcen- und Referenz-IDs bestehen aus einer 24-stelligen hexadezimalen Zeichenfolge. Behandeln Sie jede ID als undurchsichtig und speichern Sie sie exakt so, wie sie zurückgegeben wird.

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
68a000000000000000000001
```

Leiten Sie aus einer ID weder Erstellungszeit, Tenant-Zugehörigkeit, Reihenfolge noch Ressourcentyp ab.

## Zeitstempel

Öffentliche Zeitstempel verwenden ISO-8601-UTC-Werte mit abschließendem `Z`:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
2026-07-15T11:30:00.000Z
```

* Bewahren Sie den Zeitpunkt in Logs und Checkpoints in UTC auf.
* Entfernen Sie das abschließende `Z` nicht.
* `createdAtFrom` und `createdAtTo` sind inklusive Grenzen.

## Payroll-Monate

Zeiträume von Payroll-Dokumenten verwenden `YYYY-MM`:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
2026-01
```

`startMonth` ist der erste abgedeckte Monat und `endMonth` der letzte abgedeckte Monat gemäß den Dokumentmetadaten.

## Ländercodes

`countryCode` verwendet einen zweistelligen Länder- oder Gebietscode in Großbuchstaben, beispielsweise:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
DE
```

## Geldwerte in Bestellprodukten

Umsatzsteuer- und Preiswerte eines Bestellprodukts werden als Dezimalzeichenfolgen und nicht als ganzzahlige Cent-Werte zurückgegeben:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "vatRate": "19.00",
  "grossAmount": "43.90",
  "netAmount": "36.8908",
  "service": false,
  "grossService": null,
  "netService": null
}
```

Beachten Sie dabei folgende Regeln:

* Bewahren Sie die zurückgegebene Genauigkeit unverändert auf.
* Verwenden Sie für Berechnungen einen exakten Dezimaldatentyp und keine binäre Gleitkommaarithmetik.
* `vatRate` ist ein als Zeichenfolge dargestellter Dezimalprozentsatz.
* `vatRate` und `grossAmount` verwenden zwei Nachkommastellen; `netAmount` verwendet vier Nachkommastellen.
* `grossService` und `netService` sind nullable Dezimalzeichenfolgen mit zwei Nachkommastellen.
* `service` ist nullable; das Anbieter-Schema verwendet bei Zubehör `null`, wenn das Servicekennzeichen nicht anwendbar ist.
* `model`, `manufacturerName` und `articleGroupName` sind nullable Zeichenfolgen.
* Die bisherigen Felder `description`, `rateInCents` und `serviceRateInCents` sind nicht mehr Bestandteil von `OrderProduct`.

## Enums

Enum-Werte sind case-sensitive. Beispiele:

| Bereich        | Werte                                                                                                                                |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| Bestellstatus  | `under_review`, `rejected`, `approved`, `active`, `archived`, `withdrawn`                                                            |
| Vorfallstyp    | `temporary`, `permanent`                                                                                                             |
| Vorfallsstatus | `reported`, `in_progress`, `completed`, `archived`                                                                                   |
| Meldertyp      | `user`, `api_key`                                                                                                                    |
| Payroll-Format | `sap_hcm`, `personio_csv`, `hrworks_csv`, `diamant_software_diamant_4`, `universal_csv`, `universal_txt`, `datev_lodas`, `datev_lug` |

Ein Client darf nicht allein deshalb fehlschlagen, weil eine Response einen zusätzlichen Enum-Wert enthält, der durch ein kompatibles Vertragsupdate eingeführt wurde. Protokollieren Sie unbekannte Werte und stellen Sie sie zur Mapping-Prüfung bereit.

## Null, ausgelassene Eigenschaft und leerer String

| Darstellung                    | Bedeutung in einem Patch                                |
| ------------------------------ | ------------------------------------------------------- |
| Eigenschaft ausgelassen        | Aktuellen Wert unverändert lassen                       |
| Eigenschaft auf `null` gesetzt | Feld nur löschen, wenn das Schema nullable ist          |
| Eigenschaft auf `""` gesetzt   | Leeren String senden; die Validierung kann ihn ablehnen |

## Dateien

Incident-Uploads akzeptieren `image/*` oder `application/pdf` im Multipart-Feld `uploads`, vorbehaltlich der dokumentierten Grenzwerte für Dateianzahl und vollständige Body-Größe. Download-Endpoints geben den in der Response dokumentierten Medientyp zurück.
