> ## 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.

# Bestellungen

> Abruf von Bestellungen, HR-Entscheidungen, Vertragsdaten, Produkten und herunterladbaren Bestelldokumenten.

Bestellungen sind schreibgeschützt, mit Ausnahme der dedizierten HR-Decision-Operation.

## Statuswerte

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
under_review  rejected  approved  active  archived  withdrawn
```

Nur `under_review` kann durch die öffentliche Decision-Operation in `approved` oder `rejected` geändert werden.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
stateDiagram-v2
    [*] --> under_review
    under_review --> approved: öffentliche Entscheidung
    under_review --> rejected: öffentliche Entscheidung
    approved --> active: außerhalb des Decision-Endpoints
    active --> archived: außerhalb des Decision-Endpoints
    under_review --> withdrawn: außerhalb des Decision-Endpoints
```

## Endpoints

<CardGroup cols={2}>
  <Card title="Bestellungen auflisten" icon="list" href="/de/api-reference/orders/list-orders">
    Bestellungen nach Status, Mitarbeiter, Datumswerten und dokumentierten skalaren Feldern abrufen. Verwenden Sie `X-Tenant-ID`, wenn der Tenant-Kontext eingeschränkt werden soll.
  </Card>

  <Card title="Bestellung abrufen" icon="shopping-bag" href="/de/api-reference/orders/get-order">
    Produkte, Vertragsfelder, Mitarbeiter, Status und Attachment-Referenzen lesen.
  </Card>

  <Card title="Freigeben oder ablehnen" icon="badge-check" href="/de/api-reference/orders/decide-order">
    Eine HR-Entscheidung aus dem Status `under_review` validieren und anwenden.
  </Card>

  <Card title="Anhang herunterladen" icon="download" href="/de/api-reference/orders/download-attachment">
    Ein Vertragsdokument über die Attachment-ID herunterladen.
  </Card>
</CardGroup>

## Order-Response-Modell

Das aktualisierte Anbieter-Schema gibt `tenant` und `divisionId` nicht mehr innerhalb einer Bestellung zurück. Die Einschränkung auf einen Tenant erfolgt weiterhin über `X-Tenant-ID`, sofern der jeweilige Endpoint diesen Header dokumentiert.

Die Informationen zur HR-Prüfung werden in `hrHistory` zurückgegeben:

| Feld          | Typ                      | Bedeutung                                                                                                   |
| ------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------- |
| `approvedBy`  | Zeichenfolge oder `null` | Benutzer-ID zur Freigabe, sofern verfügbar                                                                  |
| `approvedAt`  | Datum/Zeit oder `null`   | Zeitpunkt der Freigabe                                                                                      |
| `rejectedBy`  | Zeichenfolge oder `null` | Benutzer-ID zur Ablehnung oder `null` bei automatisierten Entscheidungen und nicht abgelehnten Bestellungen |
| `rejectedAt`  | Datum/Zeit oder `null`   | Zeitpunkt der Ablehnung                                                                                     |
| `requestedAt` | Datum/Zeit oder `null`   | Zeitpunkt der angeforderten HR-Prüfung                                                                      |
| `decisionBy`  | Zeichenfolge oder `null` | Benutzer-ID der entscheidenden Person oder `null` bei automatisierten und API-Key-Entscheidungen            |

`hrHistory` ersetzt das bisherige Objekt `hrReviewDecision`. Das frühere Actor-Category-Enum in `decisionBy` ist nicht mehr Bestandteil des Anbieter-Schemas.

## Produktmodell der Response

Jeder Eintrag in `products[]` enthält Produktidentität, Klassifizierung, Umsatzsteuer, Brutto- und Nettowerte, optionale Servicebeträge sowie das Kennzeichen für Zubehör.

| Feld               | Typ                             | Bedeutung                                                                  |
| ------------------ | ------------------------------- | -------------------------------------------------------------------------- |
| `id`               | Zeichenfolge                    | Produktidentifikator                                                       |
| `label`            | Zeichenfolge                    | Vollständige Produktbezeichnung einschließlich der gewählten Konfiguration |
| `model`            | Zeichenfolge oder `null`        | Produktmodell, sofern verfügbar                                            |
| `vatRate`          | Dezimalzeichenfolge             | Umsatzsteuersatz mit zwei Nachkommastellen                                 |
| `manufacturerName` | Zeichenfolge oder `null`        | Anzeigename des Herstellers, sofern verfügbar                              |
| `articleGroupName` | Zeichenfolge oder `null`        | Zugeordnete Artikelgruppe, sofern verfügbar                                |
| `grossAmount`      | Dezimalzeichenfolge             | Monatlicher Bruttobetrag mit zwei Nachkommastellen                         |
| `netAmount`        | Dezimalzeichenfolge             | Monatlicher Nettobetrag mit vier Nachkommastellen                          |
| `service`          | Boolean oder `null`             | Gibt an, ob eine Serviceleistung ausgewählt ist; bei Zubehör `null`        |
| `grossService`     | Dezimalzeichenfolge oder `null` | Bruttobetrag der Serviceleistung, sofern vorhanden                         |
| `netService`       | Dezimalzeichenfolge oder `null` | Nettobetrag der Serviceleistung, sofern vorhanden                          |
| `isAccessory`      | Boolean                         | Gibt an, ob der Eintrag Zubehör ist                                        |

<Warning>
  Die aktuelle API-Version bleibt `1.0.0`, die Struktur der Order-Response hat sich jedoch geändert. Aktualisieren Sie generierte Clients, DTOs, Deserialisierung, Mappings, Berechnungen, Mocks und Contract Tests vor der Übernahme des aktualisierten Schemas. Interpretieren Sie die neuen Dezimalzeichenfolgen nicht als ganzzahlige Cent-Werte.
</Warning>

## Entscheidungsregeln

* Lesen Sie die Bestellung unmittelbar vor der Entscheidung erneut.
* Verwenden Sie vor der realen Entscheidung einen Dry Run.
* Eine finale Entscheidung kann über den Endpoint nicht überschrieben werden.
* Eine Freigabe wendet dokumentierte Standardwerte für Vertragsdaten an und löst entsprechende Benachrichtigungen aus.
* Der Vertrag nennt keine konkreten Benachrichtigungsempfänger; verlassen Sie sich nicht auf eine undokumentierte Liste.
* Lesen Sie die Bestellung nach einem Timeout erneut, bevor Sie einen Replay erwägen.

<Card title="Leitfaden zur Bestellverarbeitung" icon="workflow" horizontal href="/de/guides/process-orders">
  Folgen Sie Swimlane, Statusprüfungen, Konfliktbehandlung und Reconciliation nach Timeouts.
</Card>
