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.

Carga do webhook de compra no GitHub Marketplace

As solicitações POST de webhooks têm cabeçalhos especiais. Confira "Cabeçalhos de entrega 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.

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.

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

ChaveTipoDescriçã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:

ChaveTipoDescriçã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:

ChaveTipoDescriçã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.

Exemplo de carga de webhook para um evento purchased

Este exemplo fornece a carga do evento purchased.

Exemplo de carga de webhook para um evento changed

As alterações em um plano incluem atualizações e downgrades. Este exemplo representa as cargas dos eventos changed, pending_change e pending_change_cancelled. A ação identifica qual destes três acontecimentos ocorreu.

Exemplo de carga de webhook para um evento cancelled