
The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.
Qu’est-ce que les Droits ?
Un droit est une définition réutilisable de quelque chose que vous livrez à un client : une clé de licence Pro, un rôle Discord “Patrons”, l’accès à votre dépôt GitHub privé, un lot d’e-books téléchargeables. Vous attachez des droits à des produits, et Dodo Payments s’occupe du reste. Lorsqu’un client achète le produit, Dodo Payments crée un grant, c’est-à-dire l’attribution de ce droit à un client donné. Les grants passent par un nombre limité de statuts :Pending pendant la livraison, Delivered une fois que le client y a accès, Failed si la livraison n’a pas pu être effectuée, et Revoked lorsque l’accès est révoqué.
Intégrations Disponibles
Dodo Payments livre chaque droit via une intégration dédiée. Choisissez l’intégration qui correspond à ce que vous vendez.License Keys
Digital Files
Feature Flags
Discord
GitHub
Telegram
Framer
Notion
Comment fonctionnent les Grants
Les grants sont pilotés par les mêmes événements de paiement et d’abonnement que vous recevez déjà en tant que webhooks. Vous n’avez pas besoin d’appeler l’API de grant vous-même pour les achats. Dodo Payments crée et révoque les grants automatiquement en fonction du cycle de vie des paiements sous-jacent.Cycle de vie des Grants
Created
Delivered. Les clés de licence passent également directement à Delivered lorsque l’entitlement utilise fulfillment_mode: auto (la valeur par défaut) ; avec fulfillment_mode: manual, le grant est créé dans Pending sans clé, jusqu’à ce que vous en fournissiez une via Fulfill License Key Grant. Toutes les autres intégrations commencent dans Pending. Les intégrations basées sur OAuth (Discord, GitHub, Notion) exposent un oauth_url que le client doit consulter pour terminer son consentement ; le champ est null sur un grant nouvellement créé et est renseigné lorsque le client commence le processus d’acceptation depuis son e-mail de livraison ou le customer portal. Les intégrations directement connectées à la plateforme (Telegram, Framer, Digital Files) restent brièvement dans Pending pendant la configuration de la livraison, puis passent à Delivered.Delivered
Delivered et delivered_at est défini.Failed
Failed. Les champs error_code et error_message indiquent la raison.Revoked
Revoked. Le champ revocation_reason enregistre le déclencheur.Comportement des Grants par Événement
(entitlement, customer, subscription); les renouvellements et réactivations ne créent pas de grants en double. Les grants ponctuels sont idempotents par (entitlement, customer, payment).Créez votre premier droit
Open Entitlements
Pick an integration
Configure delivery

Creating a GitHub entitlement. Each integration shows the fields it needs.
Save
Attacher des Droits aux Produits
Ouvrez un produit, développez Paramètres avancés → Droits & Crédits, et sélectionnez les droits qui doivent être délivrés lorsque le produit est acheté. Un seul produit peut délivrer plusieurs droits à la fois. Par exemple, un plan Pro peut inclure une clé de licence, un accès GitHub et un rôle Discord.
Attaching entitlements to a product. Selected entitlements are delivered on every successful purchase or active subscription.
Expérience Client
Email et portail client
Les clients reçoivent un email de livraison après l’achat contenant la clé de licence, les liens de téléchargement, les liens d’invitation OAuth ou l’invitation à la plateforme, selon ce qui s’applique aux droits du produit. Les mêmes détails restent disponibles indéfiniment depuis le Portail Client dans leur historique de commandes.Livraison basée sur OAuth
L’accès des abonnés à Discord, GitHub et Notion nécessite que le client autorise Dodo Payments à leur accorder l’accès. Ces grants restent dans le statutPending jusqu’à ce que le client termine le processus OAuth en utilisant le lien figurant dans son e-mail ou son Customer Portal. Une fois l’autorisation accordée, le grant passe à Delivered et l’accès à la plateforme est provisionné immédiatement.
Révocation
Les grants révoqués sont supprimés au niveau de la plateforme : le rôle Discord est retiré, le collaborateur GitHub est retiré, la clé de licence est désactivée. Les clients voient le changement reflété dans le portail client.Gérer les Grants
Ouvrez n’importe quel droit à partir du tableau de bord pour voir ses grants. Le panneau de détails du grant montre les grants totaux, les filtres de statut, les informations client, les dates de livraison et une action de révocation. Vous pouvez également gérer les grants de manière programmatique :Gestion par API
Create Entitlement
List Entitlements
Get Entitlement
Update Entitlement
Delete Entitlement
Upload File
List Grants
Revoke Grant
Webhooks
Dodo Payments déclenche quatre événements webhook pour le cycle de vie des grants. Abonnez-vous à ces événements pour garder votre application en synchronisation avec ce que chaque client peut accéder.Entitlement Grant Webhook Payloads
revocation_reason référence.Bonnes pratiques
- Utilisez un entitlement par canal de livraison. Ne partagez pas un entitlement Discord unique entre des produits ayant des objectifs de rôles différents ; créez-en un par rôle pour permettre une révocation claire.
- Commencez par tester en mode test. Créez l’entitlement, associez-le à un produit de test, effectuez un checkout et observez la transition du grant via
Pending → Delivered. Vérifiez que l’annulation de l’abonnement de test révoque le grant. - Écoutez
entitlement_grant.delivered, paspayment.succeeded. Un paiement peut réussir avant la fin du fulfillment (en particulier pour les flux OAuth). Attendez l’événement de livraison avant de déverrouiller les fonctionnalités dépendantes dans vos propres systèmes. - Considérez
entitlement_grant.failedcomme une action à traiter. Un grant échoué signifie qu’un client a payé sans obtenir l’accès. Signalez ces cas à votre équipe de support ou déclenchez une nouvelle attribution. - Associez
revocation_reasonà vos flux de rétention. Une révocationsubscription_on_holdpeut être résolue (le client peut mettre à jour sa carte). Une révocationmanualest intentionnelle. Traitez-les différemment dans vos communications avec les clients.