# Transaktionsdaten abfragen

Erstellen Sie nutzerdefinierte Berichte für Zahlungen, Rückerstattungen, Überweisungen und vieles mehr.

Verwenden Sie die Daten in den Tabellen des [Schemas](https://docs.stripe.com/data/write-queries.md), um Berichte zur Kontostand-Aktivität Ihres Kontos zu erstellen. Die Tabellen in den Abschnitten **Payment Tables** stellen Mittel dar, die zwischen Ihren Kundinnen und Kunden und Ihrem Stripe-Konto fließen, z. B. Belastungen oder Rückerstattungen. Der Abschnitt **Transfer Tables** enthält Informationen zu Transfers Ihres Stripe-Konto-Guthabens auf Ihr Bankkonto (‘*‘Auszahlungen’* (A payout is the transfer of funds to an external account, usually a bank account, in the form of a deposit)’).

Verwenden Sie für die Abrechnung die Tabelle `balance_transactions` als Ausgangspunkt. Im Gegensatz zu separaten Tabellen (z.&nbsp;B. `charges` oder `refunds`) bietet sie für jede [Art](https://docs.stripe.com/api.md#balance_transaction_object-type) von Transaktion im Guthaben Ihres Stripe-Kontos einen Geschäftsbuch-ähnlichen Bericht. Verwenden Sie die Saldo-Transaktionen, um die am häufigsten verwendeten Berichte zu generieren und die Berichterstellung zu finanziellen Aktivitäten zu vereinfachen. Zu den gängigen Arten von Saldo-Transaktion gehören:

- `Abbuchungen`
- `refunds`
- `transfers`
- `payouts`
- `adjustments`
- `application_fees`

Jede Zeile einer Saldo-Transaktion stellt ein einzelnes [balance_transaction](https://docs.stripe.com/api.md#balance_transaction_object)-Objekt dar, das sich nach der Erstellung nicht mehr ändert. Beispielsweise wird bei der Erstellung einer Zahlung auch eine entsprechende Saldo-Transaktion vom Typ `charge` erstellt. Wenn diese Zahlung zurückerstattet wird, wird außerdem eine separate Saldo-Transaktion vom Typ `refund` erstellt – wobei sich die ursprüngliche Saldo-Transaktion nicht ändert. Auf ähnliche Weise wird eine Saldo-Transaktion erstellt, wenn eine Auszahlung (Überweisung) auf Ihr Bankkonto erfolgt.

Die nachfolgende Beispielabfrage verwendet diese Tabelle, um bestimmte Informationen über die fünf letzten Saldo-Transaktionen abzurufen.

```sql
select
  date_format(created, '%m-%d-%Y') as day,
  id,
  amount,
  currency,
  source_id,
  type
from balance_transactions
order by day desc
limit 5
```

| Tag | id | Betrag | Währung | source_id | Typ |
| --- | --- | --- | --- | --- | --- |
| 16.10.2026 | txn_orWziM4j7CiRL8J | -1.000 | usd | re_orWziM4j7CiRL8J | Rückerstattung |
| 16.10.2026 | txn_orWziM4j7CiRL8J | 1.000 | usd | ch_orWziM4j7CiRL8J | Zahlung |
| 16.10.2026 | txn_orWziM4j7CiRL8J | 1.000 | usd | ch_orWziM4j7CiRL8J | Zahlung |
| 16.10.2026 | txn_orWziM4j7CiRL8J | 1.000 | eur | ch_orWziM4j7CiRL8J | Zahlung |
| 16.10.2026 | txn_orWziM4j7CiRL8J | -1.000 | usd | re_orWziM4j7CiRL8J | Rückerstattung |

Die gängigsten Finanzübersichten können durch Zusammenfügen der Tabelle `balance_transactions` mit anderen Tabellen, die die entsprechenden Informationen enthalten, berechnet werden. Einige unserer Abfragevorlagen (z. B. [Tagessaldo](https://dashboard.stripe.com/sigma/queries/templates/Daily%20balance) oder [Monatliche Zusammenfassung und Saldo](https://dashboard.stripe.com/sigma/queries/templates/Monthly%20summary%20and%20balance)) lassen sich durch Verbinden dieser Tabelle mit anderen Tabellen berechnen.
![](https://b.stripecdn.com/docs-statics-srv/assets/balance-transactions.f272cb17ff065ae1c02b320a235f0b3e.png)

## Details zu Saldo-Transaktionsgebühren

Informationen zu den Transaktionsgebühren für jede einzelne Saldo-Transaktion werden in der Tabelle `balance_transaction_fee_details` bereitgestellt. Durch das wie unten beschriebene Zusammenfügen dieser Tabelle mit `balance_transactions` können Sie die Informationen zu den Transaktionsgebühren für jede Saldo-Transaktion zurückgeben.
![](https://b.stripecdn.com/docs-statics-srv/assets/balance_transaction_fee_details.e8c6bba21d6e26ee77157a3fd6b797be.png)

Die nachfolgende Abfrage verbindet die Tabellen `balance_transactions` und `balance_transaction_fee_details` miteinander. Jeder zurückgegebene Saldo-Transaktionsposten umfasst den Betrag, die Transaktionsgebühr, die Art der erhobenen Transaktionsgebühr und eine Beschreibung der Transaktionsgebühr.

```sql
select
  date_format(date_trunc('day', balance_transactions.created), '%m-%d-%Y') as day,
  balance_transactions.id,
  balance_transactions.amount,
  balance_transactions.fee,
  balance_transaction_fee_details.type
from balance_transactions
inner join balance_transaction_fee_details
  on balance_transaction_fee_details.balance_transaction_id=balance_transactions.id
order by day desc
limit 5
```

| Tag | id | Betrag | Gebühr | Typ |
| --- | --- | --- | --- | --- |
| 16.10.2026 | txn_orWziM4j7CiRL8J | 1.000 | 59 | stripe_fee |
| 16.10.2026 | txn_orWziM4j7CiRL8J | 1.000 | 59 | stripe_fee |
| 16.10.2026 | txn_orWziM4j7CiRL8J | 1.000 | 59 | stripe_fee |
| 16.10.2026 | txn_orWziM4j7CiRL8J | 1.000 | 59 | stripe_fee |
| 16.10.2026 | txn_orWziM4j7CiRL8J | 1.000 | 59 | stripe_fee |

## Zahlungen

Die Tabelle `charges` enthält Daten über [Charge](https://docs.stripe.com/api.md#charge_object)-Objekte. Diese Tabelle eignet sich besonders für Abfragen, die sich auf Informationen zu Zahlungen konzentrieren und weniger für Abrechnungs- oder Abgleichungszwecke gedacht sind. Gleichzeitig ergänzt sie die Abrechnungsberichte mit weiteren Kundendaten. Die Vorlagenabfrage für die [Zahlungskartenaufschlüsselung](https://dashboard.stripe.com/sigma/queries/templates/Payment%20card%20breakdown) nutzt beispielsweise die Tabelle `charges`, um Berichte über die verschiedenen von Ihren Kundinnen/Kunden verwendeten Kartentypen zu erstellen.

Sie können die Tabelle `charges` mit mehreren anderen Tabellen zusammenfügen, um mehr Informationen mit Ihren Abfragen abrufen zu können.
![](https://b.stripecdn.com/docs-statics-srv/assets/charges.6bba866fbd70648f58b7af6bcf425c3e.png)

Das folgende Beispiel verwendet die Tabelle `charges`, um Berichte über fehlgeschlagene Zahlungen zu erstellen, und gibt dabei sowohl die Kartenmarke als auch den Fehlercode und die Fehlermeldung zurück.

```sql
select
  date_format(date_trunc('day', created), '%m-%d-%Y') as day,
  id,
  card_brand,
  failure_code,
  failure_message
from charges
  where status = 'failed'
order by day desc
limit 5
```

| Tag | id | card_brand | failure_code | failure_message |
| --- | --- | --- | --- | --- |
| 16.10.2026 | ch_orWziM4j7CiRL8J | Visa | card_declined | Ihre Karte wurde abgelehnt. |
| 16.10.2026 | ch_orWziM4j7CiRL8J | MasterCard | card_declined | Diese Art von Kauf wird von Ihrer Karte nicht unterstützt. |
| 16.10.2026 | ch_orWziM4j7CiRL8J | Visa | card_declined | Das Guthaben auf Ihrer Karte ist nicht ausreichend. |
| 16.10.2026 | ch_orWziM4j7CiRL8J | Visa | card_declined | Ihre Karte wurde abgelehnt. |
| 16.10.2026 | ch_orWziM4j7CiRL8J | MasterCard | card_declined | Ihre Karte wurde abgelehnt. |

## Kundinnen und Kunden

Die Tabelle `customers` enthält Daten zu [Customer](https://docs.stripe.com/api.md#customers)-Objekten (diese Tabelle ist nicht Teil der Gruppe **Payment Tables**). Verwenden Sie sie, wenn Sie Zahlungen über Kundinnen und Kunden erstellen (z. B. mit gespeicherten Zahlungsinformationen). Sie ist auch nützlich, wenn Sie [Abonnements](https://docs.stripe.com/data/query-billing-data.md) verwenden.
![](https://b.stripecdn.com/docs-statics-srv/assets/customers.44a1f795dc4ca7d4df666617f45855e9.png)

Das folgende Beispiel ruft eine Liste fehlgeschlagener Zahlungen mit Angabe der ID und E-Mail-Adresse für die jeweiligen Kund/innen ab.

```sql
select
  date_format(date_trunc('day', charges.created), '%m-%d-%Y') as day,
  customers.id,
  customers.email,
  charges.id
from charges
inner join customers
on customers.id=charges.customer_id
where charges.status = 'failed'
order by day desc
limit 5
```

## Rückerstattungen

Zahlungen und Rückerstattungen sind separate Objekte innerhalb der API. Bei der Rückerstattung einer Zahlung wird immer ein [Refund](https://docs.stripe.com/api.md#refund_object)-Objekt erstellt. Diese Daten sind in der Tabelle `refunds` verfügbar und liefern detaillierte Informationen über erfolgte Rückerstattungen. Wie auch bei der Erstellung von Berichten über Zahlungen sollten zunächst Informationen über Saldo-Transaktionen herangezogen werden. Bei Bedarf können Sie anschließend weitere Einzelheiten mithilfe der Tabelle `refunds` erfassen.

Sie können die Tabelle `refunds` mit den Tabellen `balance_transactions` und `charges` zusammenführen, um die Daten der Rückerstattung genauer zu untersuchen.
![](https://b.stripecdn.com/docs-statics-srv/assets/refunds.aebf78debf4de6e9ee96a477b23fc198.png)

Im nachfolgenden Beispiel werden die Tabellen `balance_transactions` und `refunds` mithilfe der Spalten `refunds.balance_transaction_id` und `balance_transactions.id` miteinander verbunden. Jeder zurückgegebene Saldo-Transaktionsposten ist eine Rückerstattung und zeigt die entsprechende ID und den Betrag der Zahlung. Es werden nur Saldo-Transaktionen zurückgegeben, die nach einem bestimmten Datum erstellt wurden.

```sql
select
  date_format(date_trunc('day', balance_transactions.created), '%m-%d-%Y') as day,
  balance_transactions.source_id,
  refunds.charge_id,
  balance_transactions.amount
from balance_transactions
inner join refunds
on refunds.balance_transaction_id=balance_transactions.id
  where balance_transactions.type = 'refund'
order by day desc
limit 5
```

| Tag | source_id | charge_id | Betrag |
| --- | --- | --- | --- |
| 16.10.2026 | re_orWziM4j7CiRL8J | ch_orWziM4j7CiRL8J | -1.000 |
| 16.10.2026 | re_orWziM4j7CiRL8J | ch_orWziM4j7CiRL8J | -1.000 |
| 16.10.2026 | re_orWziM4j7CiRL8J | ch_orWziM4j7CiRL8J | -1.000 |
| 16.10.2026 | re_orWziM4j7CiRL8J | ch_orWziM4j7CiRL8J | -1.000 |
| 16.10.2026 | re_orWziM4j7CiRL8J | ch_orWziM4j7CiRL8J | -1.000 |

## Anteilig erfasste Rückerstattungen

Wenn Sie die [separate Autorisierung und Erfassung](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md) nutzen und nur einen Teil des autorisierten Betrags erfassen, werden sowohl eine Zahlung als auch eine Rückerstattung erstellt. Eine autorisierte Zahlung erzeugt eine `charge` und eine zugehörige Saldo-Transaktion für den vollständigen Betrag. Sobald eine anteilige Erfassung abgeschlossen ist, wird der nicht erfasste Betrag freigegeben und ein `refund` mit dem Feld `reason` von `partial_capture` und einer entsprechenden Saldo-Transaktion wird erstellt.

Wenn Sie beispielsweise eine Zahlung in Höhe von 10 USD autorisieren, aber nur 7 USD erfassen, wird zunächst eine `charge` in Höhe von 10 USD erstellt. So wird für die verbliebenen 3 USD zudem ein `refund` mit dem Grund `partial_capture` erstellt.

Berücksichtigen Sie diesen Punkt, wenn Ihr Unternehmen Zahlungen mittels separater Autorisierung und Erfassung abwickelt und Sie Berichte zur Prüfung der Rückerstattungsquote von Kund/innen erstellen. Andernfalls kann die Anzahl der Rückerstattungen in Ihrem Konto falsch dargestellt werden. Verwenden Sie das Feld `reason` der Rückerstattung, um beim Abrufen von Zahlungsinformationen unvollständig erfasste Rückerstattungen herauszufiltern.

```sql
select
  balance_transactions.id,
  balance_transactions.amount
from balance_transactions
inner join refunds
on refunds.id=balance_transactions.source_id
where reason != 'partial_capture'
limit 5
```

## Überweisungen und Auszahlungen

Die Tabelle `transfers` enthält Daten über [Auszahlungen](https://docs.stripe.com/payouts.md), die von Ihrem Stripe-Guthaben auf Ihr Bankkonto getätigt wurden. Sie können diese Tabelle verwenden, um jede Auszahlung mit den entsprechenden Zahlungen, Rückerstattungen und Anpassungen abzustimmen, sofern Sie [automatische Auszahlungen](https://docs.stripe.com/payouts.md) verwenden.

Für *Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients)-Plattformen enthält diese Tabelle auch Daten zu Überweisungen auf verbundene Stripe-Konten.
![](https://b.stripecdn.com/docs-statics-srv/assets/transfers.f4311836b58c92e30de891a4d124d402.png)

Wenn Sie Auszahlungen manuell durchführen, ist der jeweilige Auszahlungsbetrag auf Ihr Bankkonto beliebig. Somit kann er nicht mit bestimmten Saldo-Transaktionen abgeglichen werden und gibt nur den von Ihnen zur Auszahlung auf Ihr Bankkonto angeforderten Betrag an.

Im folgenden Beispiel werden die Tabellen `balance_transactions` und `transfers` miteinander verbunden. Dabei werden eine Liste von Zahlungen und Rückerstattungen, die entsprechende Auszahlung und das Datum des planmäßigen Eintreffens der Auszahlung auf Ihrem Bankkonto übergeben.

```sql
select
  date_format(date_trunc('day', balance_transactions.created), '%m-%d-%Y') as bt_created,
  balance_transactions.source_id,
  balance_transactions.type,
  balance_transactions.net as net_amount,
  balance_transactions.automatic_transfer_id as transfer_id,
  date_format(date_trunc('day', transfers.date), '%m-%d-%Y') as transfer_date
from balance_transactions
inner join transfers
on balance_transactions.automatic_transfer_id=transfers.id
where balance_transactions.type = 'charge'
and balance_transactions.type != 'refund'
order by bt_created desc
limit 5
```

| Tag | source_id | Typ | net_amount | transfer_id | transfer_date |
| --- | --- | --- | --- | --- | --- |
| 22.05.2017 | ch_orWziM4j7CiRL8J | Zahlung | 941 | po_orWziM4j7CiRL8J | 24.05.2017 |
| 22.05.2017 | ch_orWziM4j7CiRL8J | Zahlung | 941 | po_orWziM4j7CiRL8J | 24.05.2017 |
| 21.05.2017 | ch_orWziM4j7CiRL8J | Zahlung | 941 | po_orWziM4j7CiRL8J | 23.05.2017 |
| 21.05.2017 | ch_orWziM4j7CiRL8J | Zahlung | 941 | po_orWziM4j7CiRL8J | 23.05.2017 |
| 21.05.2017 | ch_orWziM4j7CiRL8J | Zahlung | 941 | po_orWziM4j7CiRL8J | 23.05.2017 |

> Auszahlungen vor dem 06.04.2017 haben eine TRANSFER_ID mit Präfix `tr_`.

## Rückbuchungen von Überweisungen

Eine manuell erstellte Auszahlung (oder Überweisung auf ein verbundenes Stripe-Konto) kann rückgängig gemacht werden, wenn sie noch nicht ausgezahlt wurde. Dabei werden alle Gelder in das verfügbare Guthaben Ihres Kontos zurückgebucht. Sie werden als [Transfer_reversal](https://docs.stripe.com/api.md#transfer_reversal_object)-Objekte dargestellt und sind in der Tabelle `transfer_reversals` zu finden.

Rückbuchungen von Überweisungen gelten nur für manuell erstellte Auszahlungen und Überweisungen – automatische Auszahlungen können nicht zurückgebucht werden.
