# Umsatz lesen (https://developer.bimetrics.de/referenz/umsaetze/get-bank-transaction)

`GET https://app.bimetrics.de/api/banktransaction/{id}`

operationId: `getBankTransaction` · Berechtigung (Scope): `read` · Bereich: Umsätze

Liefert einen Bankumsatz mit Zuordnung (`match`) und Buchungen.

Benötigt einen Schlüssel mit der Berechtigung `read`.

### 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 Umsatzes (UUID). |

### Beispiel

```sh
curl --fail-with-body "https://app.bimetrics.de/api/banktransaction/{id}" \
  -H "Authorization: Bearer $BIMETRICS_API_KEY"
```

### Antworten

| Status | Beschreibung | Inhalt |
| --- | --- | --- |
| 200 | Erfolg. | `application/json`: BankTransaction |
| 400 | Ungültige Anfrage, z. B. ein ungültiger Filter (unbekannte Art `kind`, unbekanntes Attribut, `sort` nach einem Attribut mit `sortable: false`, `limit` < 0, `offset` > 1.000.000), eine ID, die keine UUID ist, oder ein Upload ohne gültige `X-Upload-Request-Id`, mit mehr als einer Datei oder einer Datei über 30 MiB. Code meist `BadRequest`. Anfrage korrigieren, nicht wiederholen. | `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 |
| 402 | Das Abo der Firma erlaubt die Anfrage nicht (`SubscriptionRequired`, `PlanRequired`, `LimitReached`); `context` nennt Einzelheiten. | `application/json`: Error |
| 403 | Dem Schlüssel fehlt die Berechtigung für diese Route (`APIKeyPermissionDenied`), oder der Tarif der Firma enthält die API nicht (`APIUnavailable`). | `application/json`: Error |
| 404 | Nicht gefunden (`NotFound`). | `application/json`: Error |
| 413 | Die Anfrage ist zu groß (`APIRequestTooLarge`), siehe `x-bimetrics-limits`. | `application/json`: Error |
| 429 | Zu viele Anfragen (`APIRateLimit`). Nach `Retry-After` Sekunden wiederholen; einen Upload mit derselben `X-Upload-Request-Id`. (Header: Retry-After) | `application/json`: Error |
| 500 | Serverfehler (`Internal`; `APIUnavailable`, wenn der Schlüssel gerade nicht geprüft werden kann). Später wiederholen, einen Upload mit derselben `X-Upload-Request-Id`. | `application/json`: Error |

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

| Feld | Typ | Beschreibung |
| --- | --- | --- |
| `accountIBAN` | string | IBAN des eigenen Kontos beim Abruf des Umsatzes. |
| `bankAccount` | BankAccount | Das Bankkonto. |
| `bankAccountId` | string (uuid) | ID des Bankkontos. |
| `bookingDate` | NaiveDate | Buchungstag. |
| `bookingDateTime` | string (date-time), kann null sein | Buchungszeitpunkt, falls die Bank ihn liefert. |
| `bookings` | Array<AccountBooking>, kann null sein | Buchungen des Umsatzes. |
| `checkId` | string, kann null sein | Schecknummer, falls die Bank sie liefert. |
| `companyId` | string (uuid) |  |
| `createdAt` | string (date-time) |  |
| `id` | string (uuid) | ID des Umsatzes. |
| `mandateId` | string, kann null sein | Mandatsreferenz einer SEPA-Lastschrift, falls die Bank sie liefert. |
| `match` | Match | Zuordnung zu Belegen; `null` ohne Zuordnung. |
| `otherPartyIBAN` | string, kann null sein | IBAN der Gegenseite. |
| `otherPartyName` | string, kann null sein | Name der Gegenseite. |
| `otherPartyUltimate` | string, kann null sein | Abweichender Zahlungsempfänger (bei Ausgängen) bzw. abweichender Zahler (bei Eingängen), falls die Bank ihn liefert. |
| `remittanceInformation` | string | Verwendungszweck. |
| `status` | string: `booked`, `pending` | `booked` gebucht, `pending` vorgemerkt. |
| `transactionAmount` | integer | Betrag in Cent, negativ bei Ausgängen. |
| `transactionCurrency` | string | Währung (ISO 4217). |
| `updatedAt` | string (date-time) | Letzte Änderung. |
| `valueDate` | NaiveDate | Wertstellung. |
| `valueDateTime` | string (date-time), kann null sein | Zeitpunkt der Wertstellung, falls die Bank ihn liefert. |

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