La charge utile envoyée à votre point de terminaison webhook lorsqu’un octroi de droits est créé, livré, échoue, ou est révoqué.
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.
| Événement | Description |
|---|---|
entitlement_grant.created | Une nouvelle ligne d’octroi a été créée. Le statut est delivered immédiatement pour les clés de licence, et pending pour toute autre intégration. |
entitlement_grant.delivered | L’octroi passe à l’état livré. Le client a désormais accès à la plateforme, au fichier ou à la clé de licence octroyé(e). |
entitlement_grant.failed | La livraison a échoué et n’est pas réessayée. Inspectez error_code et error_message. |
entitlement_grant.revoked | L’accès a été retiré. Inspectez revocation_reason pour comprendre pourquoi. |
EntitlementGrantResponse documentée dans le schéma ci-dessous.
id stable à partir de ce moment, même si son statut change. Utilisez cet événement pour enregistrer que l’exécution est en cours.
Pour les clés de licence, la ligne est insérée directement avec status: "delivered" et delivered_at remplis, donc un seul événement created est suivi de pas de changement d’état supplémentaire, sauf si l’octroi est révoqué ultérieurement.
Pour toute autre intégration, la ligne arrive avec status: "pending". Un événement delivered ou failed suit une fois la livraison terminée :
oauth_url que le client doit visiter pour compléter le consentement. L’octroi reste pending jusqu’à ce que le client autorise.pending brièvement pendant que l’appel de la plateforme s’exécute, puis passent à delivered.pending à delivered. Le client a maintenant l’accès décrit par l’octroi. Utilisez cet événement pour débloquer des fonctionnalités dépendantes dans vos propres systèmes, par exemple pour provisionner un espace de travail, envoyer un email de bienvenue personnalisé, ou marquer un indicateur “accompli”.
Le champ delivered_at de la charge utile capture quand la livraison a été complétée. Pour les octrois arrivés delivered à la création, vous recevrez des événements created et delivered consécutivement.
error_code et error_message expliquent l’échec. Les causes courantes incluent un jeton OAuth révoqué, une permission de plateforme refusée, ou une cible manquante (par exemple, une guilde Discord supprimée).
revocation_reason enregistre le déclencheur.
revocation_reason | Déclencheur |
|---|---|
subscription_cancelled | L’abonnement du client a été annulé (événement subscription.cancelled). |
subscription_on_hold | L’abonnement est en pause en raison d’un échec de renouvellement (subscription.on_hold). Récupérable : un nouvel essai réussi produit une nouvelle tentative d’octroi. |
subscription_expired | L’abonnement a atteint la fin de sa durée (subscription.expired). |
plan_changed | Le plan a changé; les anciens octrois sont révoqués avant que les nouveaux ne soient émis (subscription.plan_changed). |
refund | Un remboursement a été traité pour le paiement original unique (refund.succeeded). |
manual | Un marchand a révoqué l’octroi via l’API ou le tableau de bord. Les révocations manuelles ne sont pas automatiquement octroyées sur renouvellement d’abonnement. |
license_key_disabled | La clé de licence derrière un octroi de clé de licence a été désactivée. L’octroi est réactivé automatiquement si la clé est réactivée. |
platform_external | Le côté plateforme d’une intégration a dérivé hors de synchronisation (par exemple, un rôle Discord a été supprimé manuellement, l’App GitHub a perdu l’accès au dépôt, ou un passage de réconciliation a détecté une cible manquante). L’octroi n’est pas automatiquement ré-octroyé au renouvellement de l’abonnement jusqu’à ce que le problème sous-jacent de la plateforme soit résolu. |
data est toujours un objet EntitlementGrantResponse. Deux types d’intégration ajoutent des objets imbriqués supplémentaires :
license_key est inclus lorsque le type d’intégration d’octroi est license_key. Il contient la clé générée, l’expiration et l’utilisation d’activation.digital_product_delivery est inclus lorsque le type d’intégration est digital_files. Il contient des URLs de téléchargement présignées, l’optionnel instructions, et l’optionnel external_url.null; la configuration pertinente est capturée dans l’octroi lui-même, pas dans l’octroi spécifique.
entitlement_grant.delivered)entitlement_grant.delivered)entitlement_grant.created)entitlement_grant.revoked)entitlement_grant.failed)entitlement_grant.delivered avant de débloquer des fonctionnalités dépendantes. Un événement payment.succeeded vous indique que l’argent a été encaissé ; il ne vous dit pas que le client dispose du dépôt GitHub ou du rôle Discord. L’événement delivered est la source de vérité pour l’exécution.revocation_reason vers des flux de rétention. Une révocation subscription_on_hold signifie généralement que la carte du client a échoué et que le prochain renouvellement ré-octroiera l’accès. Une révocation manual ou subscription_cancelled est intentionnelle. Traitez-les différemment dans la communication client.id d’octroi comme votre clé d’idempotence. Un seul octroi émet au plus un événement created et au plus un événement terminal (delivered ou failed), et au plus un événement revoked. Les nouvelles livraisons du système webhook peuvent répéter les événements ; dédupliquez sur l’id d’octroi plus type.license_key et digital_product_delivery pour reconnaître le type d’intégration. La charge utile d’octroi elle-même ne transporte pas le type d’intégration, mais exactement un de ces objets imbriqués est rempli pour les octrois de type clé de licence et fichiers numériques.oauth_url au client. L’événement entitlement_grant.created pour les flux d’abonnés Discord, GitHub, ou Notion inclut un oauth_url et oauth_expires_at. Envoyez-le par email au client ou affichez-le dans votre application pour débloquer la livraison.Detailed view of a single entitlement grant: who it's for, its lifecycle state, and any integration-specific delivery payload.
Identifier of the business that owns the grant.
Timestamp when the grant was created.
Identifier of the customer the grant was issued to.
Identifier of the entitlement this grant was issued from.
Unique identifier of the grant.
Arbitrary key-value metadata recorded on the grant.
Lifecycle status of the grant.
Pending, Delivered, Failed, Revoked Timestamp when the grant was last modified.
Timestamp when the grant transitioned to delivered, when applicable.
Digital-product-delivery payload, present when the entitlement
integration is digital_files.
Machine-readable code reported when delivery failed, when applicable.
Human-readable message reported when delivery failed, when applicable.
License-key delivery payload, present when the entitlement integration
is license_key.
Timestamp when oauth_url stops being valid, when applicable.
Customer-facing OAuth URL for OAuth-style integrations. Populated
during the customer-portal accept flow; null until the customer
completes that step, and on grants for non-OAuth integrations.
Identifier of the payment that triggered this grant, when applicable.
Reason recorded when the grant was revoked, when applicable.
Timestamp when the grant transitioned to revoked, when applicable.
Identifier of the subscription that triggered this grant, when applicable.