# Configure Webhooks and Triggers

The best way to check if your users are having an active subscription and activate the premium features accordingly is to **keep a copy of their current subscription state on your database**.

To do that you will need to configure webhooks that will be called when a subscription is created or updated on Stripe.

{% hint style="warning" %}
Those are **required** to support **shared subscriptions** and **subscription transfers**
{% endhint %}

### The subscription webhook

To store the updated state of your customer's subscriptions

{% content-ref url="configure-webhooks-and-triggers/subscription-webhook" %}
[subscription-webhook](https://docs.billingjs.com/getting-started/configure-webhooks-and-triggers/subscription-webhook)
{% endcontent-ref %}

### The customer webhook

To store the updated state of your customer's shared subscriptions and to support transferring subscription from one user to another

{% content-ref url="configure-webhooks-and-triggers/customer-webhook" %}
[customer-webhook](https://docs.billingjs.com/getting-started/configure-webhooks-and-triggers/customer-webhook)
{% endcontent-ref %}

### The new user trigger

To handle new user already having a subscription, either because they were added to a shared subscription or because you added their subscription manually from the Stripe Dashboard

{% content-ref url="configure-webhooks-and-triggers/new-user-trigger" %}
[new-user-trigger](https://docs.billingjs.com/getting-started/configure-webhooks-and-triggers/new-user-trigger)
{% endcontent-ref %}
