Skip to main content

Événements de webhook pour l’API GitHub Marketplace

Une application GitHub Marketplace reçoit des informations sur les modifications apportées au plan de l’utilisateur du webhook d’événement d’achat de la Place de marché. Un événement d’achat de la Place de marché est déclenché lorsqu’un utilisateur achète, annule ou change son plan de paiement.

Remarque : cet article s’applique à la publication de GitHub Apps dans GitHub Marketplace uniquement. Pour plus d’informations sur la publication de GitHub Actions dans GitHub Marketplace, consultez « Publication d’actions dans GitHub Marketplace ».

À propos des webhooks et de GitHub Marketplace

Les demandes de webhooks POST ont des en-têtes spéciaux. Pour plus d’informations, consultez « Événements et charges utiles du webhook ». GitHub ne renvoie pas les tentatives de remise ayant échoué. Vérifiez que votre application peut recevoir toutes les charges utiles de webhook envoyées par GitHub. Pour savoir comment créer et désactiver des webhooks GitHub Marketplace, consultez « Création de webhooks » et « Désactivation des webhooks ».

Les annulations et les passages à un plan inférieur sont effectifs le premier jour du cycle de facturation suivant. Les événements pour les passages à un plan inférieur et les annulations sont envoyés quand le nouveau plan prend effet au début du cycle de facturation suivant. Les événements pour les nouveaux achats et les passage à un plan supérieur commencent immédiatement. Utilisez l’objet effective_date de la charge utile du webhook pour savoir quand commence un changement.

Remarque : Si vous remarquez des achats GitHub Marketplace indésirables ou d’autres comportements malveillants, remplissez le formulaire Signaler un abus avec plus d’informations sur l’utilisateur.

À propos de la charge utile des webhooks d’achat pour GitHub Marketplace

Chaque charge utile de webhook marketplace_purchase a les informations suivantes :

CléTypeDescription
actionstringAction effectuée pour générer le webhook. Peut être purchased, cancelled, pending_change, pending_change_cancelled ou changed. Pour plus d’informations, consultez les exemples de charge utile de webhook ci-dessous. Remarque : Les charges utiles pending_change et pending_change_cancelled ont les mêmes clés que celles indiquées dans l’exemple de charge utile changed.
effective_datestringDate à laquelle l’action prend effet.
senderobjectPersonne responsable de l’action qui a déclenché le webhook.
marketplace_purchaseobjectInformations de l’achat GitHub Marketplace.

L’objet marketplace_purchase a les clés suivantes :

CléTypeDescription
accountobjectCompte organization ou user associé à l’abonnement. Les comptes professionnels comprennent organization_billing_email, qui est l’adresse e-mail administrative de l’organisation. Pour rechercher les adresses e-mail des comptes personnels, vous pouvez utiliser le point de terminaison Obtenir l’utilisateur authentifié.
billing_cyclestringPeut être yearly ou monthly. Quand le propriétaire de account a un plan GitHub gratuit et a acheté un plan GitHub Marketplace gratuit, billing_cycle est nil.
unit_countintegerNombre d’unités achetées.
on_free_trialbooleantrue quand account utilise un essai gratuit.
free_trial_ends_onstringDate d’expiration de l’essai gratuit.
next_billing_datestringDate de début du cycle de facturation suivant. Quand le propriétaire de account a un plan GitHub.com gratuit et a acheté un plan GitHub Marketplace gratuit, next_billing_date est nil.
planobjectPlan acheté par user ou organization.

L’objet plan a les clés suivantes :

CléTypeDescription
idintegerIdentificateur unique de ce plan.
namestringNom du plan.
descriptionstringDescription de ce plan.
monthly_price_in_centsintegerPrix mensuel de ce plan en cents (devise américaine). Par exemple, un listing qui coûte 10 dollars USD par mois correspond à 1 000 cents.
yearly_price_in_centsintegerPrix annuel de ce plan en cents (devise américaine). Par exemple, un listing qui coûte 100 dollars USD par mois correspond à 120 000 cents.
price_modelstringModèle tarifaire de ce listing. Peut être FLAT_RATE, PER_UNIT ou FREE.
has_free_trialbooleantrue quand ce listing propose un essai gratuit.
unit_namestringNom de l’unité. Si le modèle tarifaire n’est pas per-unit, est égal à nil.
bulletarray of stringsNoms des puces définies dans le plan tarifaire.