# Status und Gründe

Jede Datei hat einen `status`, der sagt, wie weit Ocost mit ihr ist. Eine nicht gelesene Datei hat außerdem einen `reason`. Verzweigen Sie nach beiden.

## Status

| Status | Bedeutung | Was tun |
| --- | --- | --- |
| `received` | Gespeichert, noch nicht gelesen. | Warten. |
| `reading` | Wird gelesen. | Warten. |
| `read` | Gelesen. `documents` listet, was sie enthält. | Ihre Belege lesen. |
| `not_read` | Gespeichert, aber nicht gelesen. | `reason` ansehen. |
| `failed` | Ocost konnte sie nicht lesen. | `reason` ansehen. |

Solange kein Lesedienst antwortet, bleibt eine Datei bei `reading`. Ocost versucht es bis zu einen Tag lang erneut.

## Gründe

| Grund | Bei | Bedeutung |
| --- | --- | --- |
| `limit` | `not_read` | Die Belege des Monats sind aufgebraucht. Ocost liest die Datei am `renews_on` von selbst. |
| `model_off` | `not_read` | Für dieses Unternehmen werden PDFs und Bilder nicht gelesen. E-Rechnungen werden weiter gelesen. |
| `nothing_found` | `not_read` | Die Datei enthält keinen Beleg. |
| `too_large` | `not_read` | Zu viele Seiten oder ein zu großes Bild. |
| `damaged` | `failed` | Keine Datei, die Ocost öffnen kann. |
| `unavailable` | `failed` | Einen Tag lang antwortete kein Lesedienst. Schicken Sie dieselben Bytes erneut, um es nochmals zu versuchen. |
| `failed` | `failed` | Alles andere. |
| `other` | beide | Ein Grund, den diese Version der API noch nicht benennt. |

## Ein Beispiel

Eine Datei, geschickt, nachdem die Belege des Monats aufgebraucht waren:

```json
{
  "id": "01a1b08c-6e3a-7562-8f4a-7924722667b1",
  "name": "invoice.pdf",
  "status": "not_read",
  "reason": "limit",
  "renews_on": "2026-12-01",
  "documents": []
}
```

Ocost liest sie am 1. Dezember, oder früher, sobald der Tarif wächst. Fragen Sie weiter ab oder [bleiben Sie synchron](https://docs.ocost.io/de/sync.md), dann taucht sie als `read` auf.

## Lange Dateien

Ocost liest nur die ersten Seiten eines langen PDFs. `pages` zählt die Seiten der Datei, und `pages_read` sagt, wie viele gelesen wurden. `pages_read` ist `null`, wenn Ocost alle gelesen hat.
