> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kreditbasierte Abrechnung

> Die Nutzlast, die an Ihren Webhook-Endpunkt gesendet wird, wenn ereignisbasierte Änderungen der kreditbasierten Abrechnung eintreten – virtuelle Credits (API-Aufrufe, Tokens, Compute-Stunden) werden gewährt, verbraucht, verfallen, übertragen oder es gibt Guthabenwarnungen. Diese Webhooks beziehen sich nicht auf [Customer Wallets](/features/customer-wallet) (monetäre Guthaben).

## Kreditbasierte Abrechnung Webhook-Ereignisse

Die folgenden Webhook-Ereignisse stehen zur Verfügung, um Änderungen im Lebenszyklus der kreditbasierten Abrechnung nachzuverfolgen. Diese Ereignisse gelten für virtuelle Credit-Berechtigungen (API-Aufrufe, Tokens, Compute-Stunden), nicht für [Customer Wallets](/features/customer-wallet) (monetäre Guthaben).

| Ereignis                    | Beschreibung                                                                                              |
| --------------------------- | --------------------------------------------------------------------------------------------------------- |
| `credit.added`              | Gutschriften werden einem Kunden gewährt (über Abonnement, Einmalkauf, Add-on oder API)                   |
| `credit.deducted`           | Gutschriften werden durch Nutzung oder manuelle Belastung verbraucht                                      |
| `credit.expired`            | Unbenutzte Gutschriften sind nach der konfigurierten Verfallsfrist verfallen                              |
| `credit.rolled_over`        | Unbenutzte Gutschriften werden am Zyklusende in eine neue Gewährung übertragen                            |
| `credit.rollover_forfeited` | Gutschriften verfallen, weil die maximale Übertragsanzahl erreicht wurde                                  |
| `credit.overage_charged`    | Überlastungsgebühren werden erhoben, wenn die Nutzung über den Nullsaldo hinaus fortgesetzt wird          |
| `credit.overage_reset`      | Aufgelaufene Überlastungsgebühren werden zurückgesetzt (z. B. zu Beginn eines neuen Abrechnungszeitraums) |
| `credit.manual_adjustment`  | Manuelle Gutschrift oder Belastungsanpassung über Dashboard oder API vorgenommen                          |
| `credit.balance_low`        | Guthaben fällt unter die konfigurierte Schwelle für niedrigen Saldo                                       |

### Ledger-Ereignisse

Alle Ledger-Ereignisse (`credit.added` bis `credit.manual_adjustment`) verwenden dieselbe `CreditLedgerEntryResponse`-Nutzlast, die im untenstehenden Schema dokumentiert ist.

Die Nutzlast enthält ein `metadata` Feld, das aus der **Quelle** des Kreditgewährung aufgelöst wurde — dem bei der Kasse erstellten Abonnement oder der Zahlung. Dies ermöglicht es Ihnen, Wallet-Guthaben von Ihrem eigenen Checkout `metadata` (zum Beispiel ein `orgId`) zu verknüpfen, anstatt dem von Dodo ausgegebenen `customer_id`: Kredite aus Abonnements zeigen das Abonnement's `metadata` und Kredite aus Zahlungen zeigen das Zahlung's `metadata`. Das Feld ist leer, wenn die Kredite keine auflösbare Quelle haben (zum Beispiel, Kredite, die direkt über die API gewährt wurden).

### Niedriges Guthaben Ereignis (credit.balance\_low)

Das `credit.balance_low` Ereignis verwendet eine andere Nutzlast (`CreditBalanceLowPayload`), die sich auf Schwellenwert-Warnungen konzentriert:

```json theme={null}
{
  "business_id": "bus_H4ekzPSlcg",
  "type": "credit.balance_low",
  "timestamp": "2025-08-04T06:15:00.000000Z",
  "data": {
    "payload_type": "CreditBalanceLow",
    "customer_id": "cus_8VbC6JDZzPEqfBPUdpj0K",
    "subscription_id": "sub_7EeHq2ewQuadropD2ra",
    "credit_entitlement_id": "cent_9xY2bKwQn5MjRpL8d",
    "credit_entitlement_name": "API Credits",
    "available_balance": "15",
    "subscription_credits_amount": "100",
    "threshold_percent": 20,
    "threshold_amount": "20"
  }
}
```

<ParamField body="customer_id" type="string">
  Der Kunde, dessen Guthaben die Warnung ausgelöst hat.
</ParamField>

<ParamField body="subscription_id" type="string">
  Das Abonnement, das mit diesem Kreditanspruch verbunden ist.
</ParamField>

<ParamField body="credit_entitlement_id" type="string">
  Der Kreditanspruch, der ein niedriges Guthaben hat.
</ParamField>

<ParamField body="credit_entitlement_name" type="string">
  Anzeigename des Kreditanspruchs.
</ParamField>

<ParamField body="available_balance" type="string">
  Aktuelles Guthaben zum Zeitpunkt der Warnung.
</ParamField>

<ParamField body="subscription_credits_amount" type="string">
  Gesamtausgabe von Guthaben pro Abrechnungszyklus für dieses Abonnement.
</ParamField>

<ParamField body="threshold_percent" type="integer">
  Der konfigurierte Prozentsatz für den niedrigen Guthabensschwellenwert.
</ParamField>

<ParamField body="threshold_amount" type="string">
  Der absolute Kreditbetrag, dem der Schwellenwert entspricht.
</ParamField>

### Verwenden von `credit.balance_low` für proaktive Warnungen

Verwenden Sie das `credit.balance_low` Webhook, um Kunden zu benachrichtigen, bevor sie ihr Guthaben aufbrauchen:

```javascript theme={null}
app.post('/webhooks/dodo', async (req, res) => {
  const event = req.body;
  
  if (event.type === 'credit.balance_low') {
    const data = event.data;
    
    // Notify the customer their credits are running low
    await sendEmail(data.customer_id, {
      subject: `Your ${data.credit_entitlement_name} balance is running low`,
      body: `You have ${data.available_balance} credits remaining ` +
            `(${data.threshold_percent}% threshold reached). ` +
            `Consider upgrading your plan or purchasing additional credits.`
    });
    
    console.log(`Low balance alert for customer ${data.customer_id}`);
  }
  
  res.json({ received: true });
});
```

<Tip>
  Abonnieren Sie `credit.balance_low`, um Kunden proaktiv zu warnen, bevor sie ihr Guthaben erschöpfen. Kombinieren Sie es mit `credit.deducted`, um Echtzeit-Verbrauchsmuster zu verfolgen.
</Tip>

<CardGroup cols={2}>
  <Card title="Get Customer Balance" icon="wallet" href="/api-reference/credit-entitlements/get-customer-balance">
    Überprüfen Sie den aktuellen Kontostand eines Kunden über die API.
  </Card>

  <Card title="Create Ledger Entry" icon="plus" href="/api-reference/credit-entitlements/create-ledger-entry">
    Manuell den Kontostand eines Kunden gutschreiben oder belasten.
  </Card>
</CardGroup>

## Webhook-Payload-Schema
