> ## 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.

# Abonnement

> Die Nutzlast, die an Ihren Webhook-Endpunkt gesendet wird, wenn ein Abonnement erstellt, aktualisiert oder der Status geändert wird.

## Abonnement Webhook-Ereignisse

Die folgenden Webhook-Ereignisse stehen zur Verfügung, um Änderungen im Lebenszyklus von Abonnements zu verfolgen:

| Event                       | Description                                                                      |
| --------------------------- | -------------------------------------------------------------------------------- |
| `subscription.active`       | Abonnement wird erfolgreich aktiviert                                            |
| `subscription.updated`      | Abonnementobjekt wurde aktualisiert (jede Feldänderung löst dieses Ereignis aus) |
| `subscription.on_hold`      | Abonnement wird aufgrund gescheiterter Verlängerung pausiert                     |
| `subscription.renewed`      | Abonnement wird für den nächsten Abrechnungszeitraum verlängert                  |
| `subscription.plan_changed` | Abonnementplan wurde hochgestuft, herabgestuft oder geändert                     |
| `subscription.cancelled`    | Abonnement wird gekündigt                                                        |
| `subscription.failed`       | Abonnementerstellung ist während der Mandaterstellung fehlgeschlagen             |
| `subscription.expired`      | Abonnement hat das Ende seiner Laufzeit erreicht                                 |

### Verwendung von `subscription.updated` zur Echtzeit-Synchronisation

Der Webhook `subscription.updated` wird immer dann ausgelöst, wenn sich ein Abonnementfeld ändert, sodass Sie den Zustand Ihrer Anwendung ohne Polling synchron halten können:

```javascript theme={null}
app.post('/webhooks/dodo', async (req, res) => {
  const event = req.body;
  
  if (event.type === 'subscription.updated') {
    const subscription = event.data;
    
    // Sync subscription changes to your database
    await syncSubscription(subscription.subscription_id, {
      status: subscription.status,
      next_billing_date: subscription.next_billing_date,
      metadata: subscription.metadata,
      // ... other fields you want to track
    });
    
    console.log(`Subscription ${subscription.subscription_id} updated`);
  }
  
  res.json({ received: true });
});
```

<Tip>
  Abonnieren Sie `subscription.updated`, um Echtzeitbenachrichtigungen über sämtliche Abonnementänderungen zu erhalten und das Abfragen der API zu Updates zu vermeiden.
</Tip>

## Webhook-Nutzlastschema
