# Import wiederholen (https://developer.bimetrics.de/reference/bank-statements/retry-statement-import)

`POST https://app.bimetrics.de/api/bankstatement/imports/{id}/retry`

operationId: `retryStatementImport` · Berechtigung (Scope): `statements:import` · Bereich: Kontoauszüge

Startet einen fehlgeschlagenen Import neu, mit derselben Datei, demselben Konto und derselben Zuordnung, wie „Erneut versuchen“ in der App. Geschriebene Zeilen entstehen nicht doppelt. Einen laufenden Import lässt die Route, wie er ist.

Benötigt einen Schlüssel mit der Berechtigung `statements:import`.

> **Achtung:** Ändert Daten der Firma; wird atomar mit Idempotenzbeleg und Herkunft protokolliert.
>
> KI-Agenten fragen vor diesem Aufruf beim Nutzer nach.

### Authentifizierung

`Authorization: Bearer bm_…` (alternativ `X-API-KEY: bm_…`, nie beide zugleich).

### Parameter

| Name | Ort | Pflicht | Typ | Beschreibung |
| --- | --- | --- | --- | --- |
| `id` | path | ja | string (uuid) | ID des Imports (UUID). |
| `Idempotency-Key` | header | ja | string | Stabiler Schlüssel für genau diese Änderung: 1–128 druckbare ASCII-Zeichen ohne Leerzeichen. Bei Wiederholungen denselben Schlüssel und unveränderten Inhalt senden; das Ergebnis wird nicht nochmals erzeugt. |

### Beispiel

```sh
curl --fail-with-body "https://app.bimetrics.de/api/bankstatement/imports/{id}/retry" -X POST \
  -H "Authorization: Bearer $BIMETRICS_API_KEY" \
  -H "Idempotency-Key: rechnung-2026-001"
```

### Antworten

| Status | Beschreibung | Inhalt |
| --- | --- | --- |
| 200 | Erfolg. | `application/json`: StatementImport |
| 400 | Ungültige Anfrage, z. B. ein Parameter mit ungültigem Wert wie eine ID, die keine UUID ist; korrigieren statt wiederholen. Mehr unter [Fehler](https://developer.bimetrics.de/errors). | `application/json`: Error |
| 401 | Kein gültiger Schlüssel: fehlt (`Unauthorized`), ist unbekannt, abgelaufen oder widerrufen oder wurde nicht in genau einem Header gesendet (`InvalidAPIKey`). Schlüssel prüfen, nicht wiederholen. Auch eine ID, die zu einer anderen Firma gehört, ergibt `401 Unauthorized`. | `application/json`: Error |
| 403 | Dem Schlüssel fehlt die Berechtigung für diese Route (`APIKeyPermissionDenied`), oder die Firma hat keinen API-Zugang (mehr), etwa nach Ende der Testphase oder des Abos (`APIUnavailable`). | `application/json`: Error |
| 404 | Nicht gefunden (`NotFound`). | `application/json`: Error |
| 409 | Versionskonflikt (`VersionConflict`), abweichender Inhalt für denselben Idempotency-Key (`IdempotencyConflict`), Dublette (`ContactDuplicate`) oder fachlich gesperrte Änderung. Aktuellen Zustand laden und prüfen; keinen anderen Schlüssel verwenden, um einen Konflikt zu umgehen. | `application/json`: Error |
| 413 | Die Anfrage ist zu groß (`APIRequestTooLarge`), siehe `x-bimetrics-limits`. | `application/json`: Error |
| 429 | Zu viele Anfragen; nach `Retry-After` Sekunden erneut senden. Mehr unter [Fehler](https://developer.bimetrics.de/errors). (Header: Retry-After) | `application/json`: Error |
| 500 | Serverfehler; die Anfrage später wiederholen. Mehr unter [Fehler](https://developer.bimetrics.de/errors). | `application/json`: Error |

#### Felder der Antwort 200 (`StatementImport`)

| Feld | Typ | Beschreibung |
| --- | --- | --- |
| `accountName` | string | Name des Kontos. |
| `bankAccountId` | string (uuid) | ID des Kontos. |
| `canRetry` | boolean | Der Import lässt sich wiederholen. |
| `createdAt` | string (date-time) | Zeitpunkt der Übernahme. |
| `createdBy` | string | Wer übernommen hat. |
| `errorCode` | string, kann null sein | Grund bei `failed`. |
| `fileName` | string | Name der Datei. |
| `finishedAt` | string (date-time), kann null sein | Ende des Imports. |
| `from` | string | Erster Buchungstag der Datei, leer vor dem Vergleich. |
| `id` | string (uuid) | ID des Imports. |
| `jobId` | string (uuid) | ID des Hintergrundauftrags. |
| `progress` | StatementImportProgress | Fortschritt. |
| `result` | StatementImportResult | Das Ergebnis, sobald der Import fertig ist. |
| `state` | string | `queued`, `running`, `waiting`, `done` oder `failed`. |
| `to` | string | Letzter Buchungstag der Datei. |
| `waitReason` | string, kann null sein | Worauf der Import wartet, etwa den Bankabruf. |

Verschachtelte Schemas stehen vollständig in der OpenAPI-Beschreibung: https://app.bimetrics.de/api/openapi.json
