Skip to main content

Eventos do Webhook para a API do GitHub Marketplace

Um aplicativo do GitHub Marketplace recebe informações sobre mudanças no plano de um usuário no webhook do evento de compra no Marketplace. Um evento de compra no Marketplace é acionado quando um usuário compra, cancela ou muda seu plano de pagamento.

Observação: este artigo se aplica à publicação de GitHub Apps apenas no GitHub Marketplace. Para obter mais informações mais sobre como publicar o GitHub Actions no GitHub Marketplace, confira "Publicar ações no GitHub Marketplace".

Sobre os webhooks e o GitHub Marketplace

As solicitações POST de webhooks têm cabeçalhos especiais. Confira "Eventos e cargas de webhook" para obter mais detalhes. O GitHub não reenvia tentativas de entrega com falha. Certifique-se de que seu aplicativo possa receber todas as cargas de webhook enviados pelo GitHub. Para obter informações sobre como criar e desabilitar webhooks do GitHub Marketplace, consulte "Criar webhooks" e "Desabilitar webhooks".

Os cancelamentos e downgrades entram em vigor no primeiro dia do próximo ciclo de cobrança. Os eventos para downgrades e cancelamentos são enviados quando o novo plano entra em vigor no início do próximo ciclo de cobrança. Os eventos referentes às novas compras e atualizações entram em vigor imediatamente. Use a effective_date na carga de webhook para determinar quando uma alteração será iniciada.

Observação: se você observar compras do GitHub Marketplace com spam ou outro comportamento mal-intencionado, preencha o formulário de denúncias de abuso com mais informações sobre o usuário.

Sobre o conteúdo do webhook de compra do GitHub Marketplace

Cada carga de webhook marketplace_purchase terá as seguintes informações:

ChaveTypeDescrição
actionstringA ação realizada para gerar o webhook. Pode ser purchased, cancelled, pending_change, pending_change_cancelled ou changed. Para obter mais informações, consulte o exemplo de cargas de webhook abaixo. Observação: as cargas pending_change e pending_change_cancelled contêm as mesmas chaves mostradas no exemplo de conteúdo changed.
effective_datestringA data em que a action se torna efetiva.
senderobjectA pessoa que executou a action que disparou o webhook.
marketplace_purchaseobjectInformações de compra do GitHub Marketplace.

O objeto marketplace_purchase tem as seguintes chaves:

ChaveTypeDescrição
accountobjectA conta organization ou user associada à assinatura. As contas da organização incluirão organization_billing_email, que é o endereço de email administrativo da organização. Para encontrar endereços de email para contas pessoais, use o ponto de extremidade Obter o usuário autenticado.
billing_cyclestringPode ser yearly ou monthly. Quando o proprietário da account tiver um plano gratuito do GitHub e tiver comprado um plano gratuito do GitHub Marketplace, o billing_cycle será nil.
unit_countintegerNúmero de unidades compradas.
on_free_trialbooleantrue quando a account estiver em uma avaliação gratuita.
free_trial_ends_onstringA data em que o teste grátis expirará.
next_billing_datestringA data em que começará o próximo ciclo de faturamento. Quando o proprietário da account tiver um plano gratuito do GitHub.com e tiver comprado um plano gratuito do GitHub Marketplace, a next_billing_date será nil.
planobjectO plano comprado pelo user ou pela organization.

O objeto plan tem as seguintes chaves:

ChaveTypeDescrição
idintegerO identificador exclusivo para este plano.
namestringO nome do plano.
descriptionstringDescrição deste plano.
monthly_price_in_centsintegerO preço mensal deste plano em centavos (moeda americana). Por exemplo, uma listagem que custa 10 dólares por mês será 1000 centavos.
yearly_price_in_centsintegerO preço anual deste plano em centavos (moeda americana). Por exemplo, uma listagem que custa 100 dólares por mês será 120 mil centavos.
price_modelstringO modelo de preço para esta listagem. Pode ser FLAT_RATE, PER_UNIT ou FREE.
has_free_trialbooleantrue quando essa listagem oferecer uma avaliação gratuita.
unit_namestringO nome da unidade. Se o modelo de preços não for per-unit, isso será nil.
bulletarray of stringsOs nomes dos marcadores estabelecidos no plano de preços.