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

# Abbonamento

> Il payload inviato al tuo endpoint webhook quando un abbonamento viene creato, aggiornato o cambia stato.

## Eventi Webhook di Abbonamento

I seguenti eventi webhook sono disponibili per il monitoraggio delle modifiche al ciclo di vita dell'abbonamento:

| Event                       | Description                                                                                   |
| --------------------------- | --------------------------------------------------------------------------------------------- |
| `subscription.active`       | L'abbonamento è attivato con successo                                                         |
| `subscription.updated`      | L'oggetto abbonamento è stato aggiornato (qualsiasi modifica a un campo genera questo evento) |
| `subscription.on_hold`      | L'abbonamento viene sospeso a causa di un rinnovo fallito                                     |
| `subscription.renewed`      | L'abbonamento viene rinnovato per il prossimo periodo di fatturazione                         |
| `subscription.plan_changed` | Il piano di abbonamento è stato aggiornato, declassato o modificato                           |
| `subscription.cancelled`    | L'abbonamento è annullato                                                                     |
| `subscription.failed`       | La creazione dell'abbonamento è fallita durante la creazione del mandato                      |
| `subscription.expired`      | L'abbonamento ha raggiunto la fine del suo periodo                                            |

### Utilizzo di `subscription.updated` per la sincronizzazione in tempo reale

Il webhook `subscription.updated` viene attivato ogni volta che cambia un campo dell'abbonamento, consentendoti di mantenere lo stato dell'applicazione sincronizzato senza effettuare polling:

```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>
  Iscriviti a `subscription.updated` per ricevere notifiche in tempo reale su qualsiasi modifica dell'abbonamento, eliminando la necessità di interrogare periodicamente l'API per gli aggiornamenti.
</Tip>

## Schema del Payload Webhook
