# Droits d'accès Déterminez quand vous pouvez accorder à vos clients l'accès aux fonctionnalités de vos produits et quand vous pouvez le révoquer. Les droits d’accès vous permettent de mapper les fonctionnalités de votre service interne aux produits Stripe. Une fois que vous avez mappé vos fonctionnalités, Stripe vous indique quand fournir ou retirer l’accès des clients (en fonction de leur état d’abonnement), ainsi que les fonctionnalités concernées en fonction de vos choix de mappage. Utilisez les droits d’accès pour : - Lancer, modifier et faire des essais avec vos tarifs sans avoir à modifier votre code base - Accorder, révoquer et gérer l’accès de vos clients aux fonctionnalités - Simplifier votre intégration de facturation ![](https://d37ugbyn3rpeym.cloudfront.net/videos/entitlements-demo.mp4) ## Before you begin Dans ce guide, nous partons du principe que vous savez déjà créer des [abonnements](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md) et des [clients](https://docs.stripe.com/invoicing/customer.md) dans Stripe. # Dashboard > This is a Dashboard for when dashboard-or-api is dashboard. View the full page at https://docs.stripe.com/billing/entitlements?dashboard-or-api=dashboard. ## Démarrer Pour démarrer avec les droits d’accès : - **Configurez vos fonctionnalités** : créez chaque fonctionnalité dans Stripe Billing à partir du Dashboard. Voici quelques exemples de fonctionnalités que vous pouvez inclure : - Accès à l’API - Assistant IA - Assistance Premium - Reporting avancé - Conservation prolongée des données - **Ajoutez vos fonctionnalités à des produits** : associez les fonctionnalités aux produits Stripe concernés. Vous pouvez ajouter une même fonctionnalité à plusieurs produits. - **Gérez vos fonctionnalités** : modifiez ou archivez chaque fonctionnalité à partir du Dashboard. ## Configurer vos fonctionnalités Pour créer une fonctionnalité dans le Dashboard, procédez comme suit : 1. Dans le Dashboard, accédez au [Catalogue de produits](https://dashboard.stripe.com/products) et cliquez sur **Fonctionnalités.** 1. Cliquez sur **+ Créer une fonctionnalité** et saisissez un nom et une clé de recherche pour la fonctionnalité. Vous pouvez également ajouter des métadonnées. 1. La clé de recherche étant propre à chaque fonctionnalité, vous ne pouvez pas la réutiliser pour d’autres fonctionnalités, à moins d’archiver la fonctionnalité associée à la clé de recherche. 1. Cliquez sur **Créer une fonctionnalité**. ## Ajouter vos fonctionnalités à des produits Pour ajouter une fonctionnalité à un produit dans le Dashboard, procédez comme suit : 1. Dans le Dashboard, sous l’onglet [Fonctionnalités](https://dashboard.stripe.com/features), cliquez sur la fonctionnalité que vous souhaitez ajouter. 1. Cliquez sur **Attacher à un produit** et sélectionnez un produit dans le menu. 1. Cliquez sur **Confirmer**. Lorsqu’un client s’abonne au produit, vous pouvez savoir à quelles fonctionnalités il a droit. Pour ce faire, accédez à la page [Clients](https://dashboard.stripe.com/customers), sélectionnez le client concerné et consultez la section Droits d’accès. > Les abonnements existants créeront des droits actifs pour toute modification de fonctionnalité produit au début de la prochaine période de facturation. ## Gérer les fonctionnalités Vous pouvez gérer les fonctionnalités à partir du Dashboard. ### Modifier une fonctionnalité Pour modifier le nom d’une fonctionnalité ou ajouter des métadonnées, accédez à l’onglet [Fonctionnalités](https://dashboard.stripe.com/features), cliquez sur le menu de débordement (⋯) et cliquez sur **Modifier la fonctionnalité**. Vous ne pouvez pas modifier la clé de recherche d’une fonctionnalité après sa création. ### Supprimer une fonctionnalité d’un produit Pour supprimer une fonctionnalité d’un produit, accédez à l’onglet [Fonctionnalités](https://dashboard.stripe.com/features) et sélectionnez la fonctionnalité. Cliquez ensuite sur le menu de débordement (⋯) à côté du nom du produit et cliquez sur **Supprimer le produit**. ### Archiver une fonctionnalité Pour archiver une fonctionnalité, accédez à l’onglet [Fonctionnalités](https://dashboard.stripe.com/features), cliquez sur le menu de débordement (⋯), et cliquez sur **Archiver la fonctionnalité**. Avant d’archiver une fonctionnalité, gardez à l’esprit les points suivants : - Les fonctionnalités archivées ne peuvent pas être modifiées ou ajoutées à de nouveaux produits. - Les fonctionnalités archivées créent toujours des droits si elles sont attachées à des produits existants. - La clé de recherche d’une fonctionnalité archivée peut être réutilisée. - Il n’est pas possible de désarchiver une fonctionnalité. # API > This is a API for when dashboard-or-api is api. View the full page at https://docs.stripe.com/billing/entitlements?dashboard-or-api=api. ## Démarrer Pour démarrer avec les droits d’accès : - **Configurez vos fonctionnalités** : créez chaque fonctionnalité dans Stripe Billing à l’aide de l’[API Feature](https://docs.stripe.com/api/entitlements/feature/object.md). Voici quelques exemples de fonctionnalités que vous pouvez inclure : - Accès à l’API - Assistant IA - Assistance Premium - Reporting avancé - Conservation prolongée des données - **Ajoutez vos fonctionnalités à des produits** : associez les fonctionnalités aux produits Stripe concernés. Vous pouvez ajouter une même fonctionnalité à plusieurs produits. - **Obtenez les droits d’accès actifs des clients** : lorsque les clients s’abonnent à vos produits, Stripe Billing leur donne le droit d’accéder aux fonctionnalités de ces produits. Écoutez le [webhook Active Entitlement Summary](https://docs.stripe.com/billing/entitlements.md#webhooks) et utilisez l’[API List Active Entitlements](https://docs.stripe.com/api/entitlements/active-entitlement/list.md) pour un client donné afin d’exécuter votre processus de mise en service des fonctionnalités. ![Diagramme illustrant les droits d'accès et leur lien avec un client, et les fonctionnalités du produit](https://b.stripecdn.com/docs-statics-srv/assets/entitlements-diagram.240f8f8017776fc513dd69f291daed0d.png) ## Configurer vos fonctionnalités Fournissez un nom et une `lookup_key` unique pour chaque caractéristique que vous créez. La `lookup_key` étant propre à chaque fonctionnalité, vous ne pouvez pas la réutiliser pour d’autres fonctionnalités. ```curl curl https://api.stripe.com/v1/entitlements/features \ -u "<>:" \ -d "name=My feature" \ -d lookup_key=myinternalfeaturecode ``` ## Ajouter vos fonctionnalités à des produits Affectez votre fonctionnalité à un ou plusieurs produits. > Les abonnements existants créeront des droits actifs pour toute modification de fonctionnalité produit au début de la prochaine période de facturation. ```curl curl https://api.stripe.com/v1/products/{{PRODUCT_ID}}/features \ -u "<>:" \ -d "entitlement_feature={{ENTITLEMENTSFEATURE_ID}}" ``` Lorsque vous envoyez une requête pour rattacher votre fonctionnalité à votre produit, vous recevez une réponse de ce type : ```json { "id": "{{PRODUCT_FEATURE_ID}}", "object": "product_feature", "entitlement_feature": { "id": "{{ENTITLEMENTS_FEATURE_ID}}", "object": "entitlements.feature", "name": "My feature", "lookup_key": "myinternalfeaturecode" } } ``` Répertoriez les fonctionnalités rattachées à un produit en parcourant la liste des fonctionnalités : ```curl curl https://api.stripe.com/v1/products/{{PRODUCT_ID}}/features \ -u "<>:" ``` Vous pouvez également supprimer une fonctionnalité d’un produit spécifique en supprimant la partie de code correspondant à cette fonctionnalité : ```curl curl -X DELETE https://api.stripe.com/v1/products/{{PRODUCT_ID}}/features/{{PRODUCTFEATURE_ID}} \ -u "<>:" ``` ## Obtenir les droits d'accès actifs des clients Au cours du cycle de vie de l’abonnement d’un client, de son activation aux passages à une offre supérieure ou inférieure, Stripe modifie les droits du client en fonction des fonctionnalités que vous avez mappées. Lorsque l’abonnement d’un client est activé pour la première fois, Stripe lui accorde des droits d’accès pour les fonctionnalités auxquelles il est abonné. Tant qu’un client dispose d’un abonnement actif pour une fonctionnalité, il conserve un droit actif. Assurez-vous de fournir un accès à votre système à tous les utilisateurs ayant droit à cette fonctionnalité. ### Écoutez les webhooks pour accorder ou révoquer l’accès Lorsque les droits d’un client évoluent - qu’il s’abonne à un produit, change d’offre (montée ou descente en gamme) ou résilie - Stripe déclenche le webhook `entitlements.active_entitlement_summary.updated`. Utilisez cet événement pour piloter l’attribution des accès dans votre propre système. **Accorder l’accès** : lorsqu’un client souscrit un abonnement incluant un produit avec des fonctionnalités associées, Stripe déclenche `entitlements.active_entitlement_summary.updated`. La charge utile de l’événement contient un récapitulatif complet et à jour des droits du client. Votre application doit alors activer les fonctionnalités ou services correspondant aux éléments listés dans `entitlements.data`. **Révoquer l’accès** : lorsqu’un client résilie son abonnement ou que celui-ci est automatiquement annulé en raison d’échecs de paiement, Stripe déclenche à nouveau `entitlements.active_entitlement_summary.updated`. Les fonctionnalités révoquées n’apparaissent alors plus dans `entitlements.data`. Votre application doit désactiver en conséquence les fonctionnalités ou services associés. > #### Limite des droits d'accès disponibles dans le webhook récapitulatif > > Le tableau `entitlements.data` du récapitulatif des droits contient au maximum 10 éléments. Si un client dispose de plus de 10 droits actifs, utilisez le champ `entitlements.url` présent dans la charge utile pour récupérer la liste complète, paginée. | Événement | Description | | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | `entitlements.active_entitlement_summary.updated` | Se déclenche à chaque modification des droits actifs d’un client, par exemple lors de la création, de la mise à jour ou de la résiliation d’un abonnement. | Le champ `data.object` dans la charge utile du webhook est un objet `entitlements.active_entitlement_summary`. Voici un exemple de payload pour un client venant de s’abonner à un produit incluant deux fonctionnalités : ```json { "id": "evt_1OcCWTLkdIwHu7ixbUwdUFui", "object": "event", "created": 1706111369, "data": { "object": { "object": "entitlements.active_entitlement_summary", "customer": "cus_ABC123customer", "entitlements": { "object": "list", "data": [ { "id": "ent_test_61QG5x2cU1GluFTYs41JqiESbLiX8C8O", "object": "entitlements.active_entitlement", "feature": "feat_test_61QGU1MWyFMSP9YBZ41ClCIKljWvsTgu", "livemode": false, "lookup_key": "premium-support" }, { "id": "ent_test_72RH6y3dV2HmvGUZt52KrjFTcMjY9D9P", "object": "entitlements.active_entitlement", "feature": "feat_test_72RHV2NXzGNTP0ZCA52DmDJLkmXwtUhv", "livemode": false, "lookup_key": "advanced-reporting" } ], "has_more": false, "url": "/v1/customer/cus_ABC123customer/entitlements" }, "livemode": false }, "previous_attributes": { "entitlements": { "data": [] } } }, "livemode": false, "pending_webhooks": 0, "request": { "id": null, "idempotency_key": null }, "type": "entitlements.active_entitlement_summary.updated" } ``` Lorsqu’un abonnement est résilié et qu’une fonctionnalité est révoquée, Stripe déclenche le même événement, mais `entitlements.data` ne contient plus la fonctionnalité concernée : ```json { "id": "evt_1OcDYTLkdIwHu7ixcVxeVGvj", "object": "event", "created": 1706115012, "data": { "object": { "object": "entitlements.active_entitlement_summary", "customer": "cus_ABC123customer", "entitlements": { "object": "list", "data": [], "has_more": false, "url": "/v1/customer/cus_ABC123customer/entitlements" }, "livemode": false }, "previous_attributes": { "entitlements": { "data": [ { "id": "ent_test_61QG5x2cU1GluFTYs41JqiESbLiX8C8O", "object": "entitlements.active_entitlement", "feature": "feat_test_61QGU1MWyFMSP9YBZ41ClCIKljWvsTgu", "livemode": false, "lookup_key": "premium-support" }, { "id": "ent_test_72RH6y3dV2HmvGUZt52KrjFTcMjY9D9P", "object": "entitlements.active_entitlement", "feature": "feat_test_72RHV2NXzGNTP0ZCA52DmDJLkmXwtUhv", "livemode": false, "lookup_key": "advanced-reporting" } ] } } }, "livemode": false, "pending_webhooks": 0, "request": { "id": null, "idempotency_key": null }, "type": "entitlements.active_entitlement_summary.updated" } ``` ### Récupérer la liste de tous les droits d’accès actifs pour un client Si votre application doit vérifier à tout moment les droits actuels d’un client sans attendre un webhook, vous pouvez les récupérer directement via [List Active Entitlements](https://docs.stripe.com/api/entitlements/active-entitlement/list.md). Cette approche est particulièrement utile au démarrage de l’application, pour effectuer des contrôles d’autorisation ou pour resynchroniser l’état après un échec de livraison d’un webhook. ```curl curl -G https://api.stripe.com/v1/entitlements/active_entitlements \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" ``` La réponse renvoie une liste paginée d’objets `entitlements.active_entitlement` pour le client spécifié. Chaque objet inclut la valeur `lookup_key` définie lors de la création de la fonctionnalité, que vous pouvez utiliser pour contrôler l’accès dans votre application. Par exemple, si un client dispose d’un abonnement actif à un produit incluant les fonctionnalités `premium-support` et `advanced-reporting`, la réponse se présente comme suit : ```json { "object": "list", "url": "/v1/entitlements/active_entitlements", "has_more": false, "data": [ { "id": "ent_test_61QG5x2cU1GluFTYs41JqiESbLiX8C8O", "object": "entitlements.active_entitlement", "feature": "feat_test_61QGU1MWyFMSP9YBZ41ClCIKljWvsTgu", "lookup_key": "premium-support", "livemode": false }, { "id": "ent_test_72RH6y3dV2HmvGUZt52KrjFTcMjY9D9P", "object": "entitlements.active_entitlement", "feature": "feat_test_72RHV2NXzGNTP0ZCA52DmDJLkmXwtUhv", "lookup_key": "advanced-reporting", "livemode": false } ] } ``` Si le client ne dispose d’aucun droit actif (par exemple, si son abonnement a été résilié), le tableau `data` est vide. > #### Recommandation > > Nous vous recommandons de conserver ces droits d’accès en interne pour une résolution plus rapide. > Les modifications des tarifs, offres et droits des abonnements peuvent être soumises à certaines obligations légales. Consultez votre conseiller juridique pour obtenir des conseils spécifiques à votre entreprise.