Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

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. Para obter informações sobre como responder a cada um desses tipos de eventos, consulte "fluxos de cobrança".

Carga do webhook de compra no GitHub Marketplace

As solicitações de POST têm cabeçalhos especiais. Consulte "Cabeçalhos de entrega de Webhook" para obter mais informações. O GitHub não reenvia tentativas falhas de entrega. Certifique-se de que seu aplicativo possa receber todas as cargas do webhook enviadas 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 effective_date na carga do webhook para determinar quando uma alteração terá início.

Nota: Se você notar compras de spammy GitHub Marketplace ou outro comportamento malicioso, preencha o formulário relatar abuso com mais informações sobre o usuário.

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

TeclaTipoDescrição
AçãostringA ação realizada para gerar o webhook. Pode ser comprado, cancelado, pending_change, pending_change_cancelled, ou alterado. 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 na carga alterado da carga.
effective_datestringA data da ação entra em vigor.
remetenteobjetoA pessoa que realizou a ação que acionou o webhook.
marketplace_purchaseobjetoInformações de compra do GitHub Marketplace.

O objeto marketplace_purchase tem as seguintes chaves:

TeclaTipoDescrição
contaobjetoA conta da organização ou do usuário associada à assinatura. As contas da organização incluirão organization_billing_email, que é o endereço de e-mail administrativo da organização. Para encontrar endereços de e-mail para contas pessoais, você pode usar o ponto de extremidade Obter o usuário autenticado.
billing_cyclestringPode ser anual ou mensal. Quando a o proprietário da conta tem um plano grátis do GitHub e comprou um plano grátis do GitHub Marketplace, o billing_cycle será nulo.
unit_countinteiroNúmero de unidades compradas.
on_free_trialbooleanverdadeiro quando a conta está em um teste grátis.
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 conta tem um plano grátis do GitHub.com e comprou um plano grátis do GitHub Marketplace, o next_billing_date será nulo.
planoobjetoO plano comprado pelo usuário `ouorganização`.

O objeto plano tem as chaves a seguir:

TeclaTipoDescrição
idinteiroO identificador exclusivo para este plano.
namestringO nome do plano.
descriçãostringDescrição deste plano.
monthly_price_in_centsinteiroO 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_centsinteiroO preço anual deste plano em centavos (moeda americana). Por exemplo, uma listagem que custa 100 dólares por mês será 10000 centavos.
price_modelstringO modelo de preço para esta listagem. Pode ser uma das tarifas fixas, por unidade, ou grátis.
has_free_trialbooleanverdadeiro quando esta listagem oferece um teste grátis.
unit_namestringO nome da unidade. Se o modelo de preços não é por unidade, será nulo.
marcadorarray de strignsOs nomes dos marcadores estabelecidos no plano de preços.

Exemplo de carga de webhook para um evento comprado

Este exemplo fornece a carga do evento comprado.

{
  "action": "purchased",
  "effective_date": "2017-10-25T00:00:00+00:00",
  "sender": {
    "login": "username",
    "id": 3877742,
    "avatar_url": "https://avatars2.githubusercontent.com/u/3877742?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/username",
    "html_url": "https://github.com/username",
    "followers_url": "https://api.github.com/users/username/followers",
    "following_url": "https://api.github.com/users/username/following{/other_user}",
    "gists_url": "https://api.github.com/users/username/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/username/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/username/subscriptions",
    "organizations_url": "https://api.github.com/users/username/orgs",
    "repos_url": "https://api.github.com/users/username/repos",
    "events_url": "https://api.github.com/users/username/events{/privacy}",
    "received_events_url": "https://api.github.com/users/username/received_events",
    "type": "User",
    "site_admin": true,
    "email": "username@email.com"
  },
  "marketplace_purchase": {
    "account": {
      "type": "Organization",
      "id": 18404719,
      "login": "username",
      "organization_billing_email": "username@email.com"
    },
    "billing_cycle": "monthly",
    "unit_count": 1,
    "on_free_trial": false,
    "free_trial_ends_on": null,
    "next_billing_date": "2017-11-05T00:00:00+00:00",
    "plan": {
      "id": 435,
      "name": "Basic Plan",
      "description": "Basic Plan",
      "monthly_price_in_cents": 1000,
      "yearly_price_in_cents": 10000,
      "price_model": "per-unit",
      "has_free_trial": true,
      "unit_name": "seat",
      "bullets": [
        "Is Basic",
        "Because Basic "
      ]
    }
  }
}

Exemplo de carga de webhook para um evento alterado

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

{
  "action": "changed",
  "effective_date": "2017-10-25T00:00:00+00:00",
  "sender": {
    "login": "username",
    "id": 3877742,
    "avatar_url": "https://avatars2.githubusercontent.com/u/3877742?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/username",
    "html_url": "https://github.com/username",
    "followers_url": "https://api.github.com/users/username/followers",
    "following_url": "https://api.github.com/users/username/following{/other_user}",
    "gists_url": "https://api.github.com/users/username/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/username/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/username/subscriptions",
    "organizations_url": "https://api.github.com/users/username/orgs",
    "repos_url": "https://api.github.com/users/username/repos",
    "events_url": "https://api.github.com/users/username/events{/privacy}",
    "received_events_url": "https://api.github.com/users/username/received_events",
    "type": "User",
    "site_admin": true,
    "email": "username@email.com"
  },
  "marketplace_purchase": {
    "account": {
      "type": "Organization",
      "id": 18404719,
      "login": "username",
      "organization_billing_email": "username@email.com"
    },
    "billing_cycle": "monthly",
    "unit_count": 10,
    "on_free_trial": false,
    "free_trial_ends_on": null,
    "next_billing_date": "2017-11-05T00:00:00+00:00",
    "plan": {
      "id": 435,
      "name": "Basic Plan",
      "description": "Basic Plan",
      "monthly_price_in_cents": 1000,
      "yearly_price_in_cents": 10000,
      "price_model": "per-unit",
      "has_free_trial": true,
      "unit_name": "seat",
      "bullets": [
        "Is Basic",
        "Because Basic "
      ]
    }
  },
  "previous_marketplace_purchase": {
    "account": {
      "type": "Organization",
      "id": 18404719,
      "login": "username",
      "organization_billing_email": "username@email.com"
    },
    "billing_cycle": "monthly",
    "on_free_trial": false,
    "free_trial_ends_on": null,
    "unit_count": 1,
    "plan": {
      "id": 435,
      "name": "Basic Plan",
      "description": "Basic Plan",
      "monthly_price_in_cents": 1000,
      "yearly_price_in_cents": 10000,
      "price_model": "per-unit",
      "has_free_trial": true,
      "unit_name": "seat",
      "bullets": [
        "Is Basic",
        "Because Basic "
      ]
    }
  }
}

Exemplo de carga de webhook para um evento cancelado

{
  "action": "cancelled",
  "effective_date": "2017-10-25T00:00:00+00:00",
  "sender": {
    "login": "username",
    "id": 3877742,
    "avatar_url": "https://avatars2.githubusercontent.com/u/3877742?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/username",
    "html_url": "https://github.com/username",
    "followers_url": "https://api.github.com/users/username/followers",
    "following_url": "https://api.github.com/users/username/following{/other_user}",
    "gists_url": "https://api.github.com/users/username/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/username/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/username/subscriptions",
    "organizations_url": "https://api.github.com/users/username/orgs",
    "repos_url": "https://api.github.com/users/username/repos",
    "events_url": "https://api.github.com/users/username/events{/privacy}",
    "received_events_url": "https://api.github.com/users/username/received_events",
    "type": "User",
    "site_admin": true,
    "email": "username@email.com"
  },
  "marketplace_purchase": {
    "account": {
      "type": "Organization",
      "id": 28536653,
      "login": "organizationUsername",
      "organization_billing_email": "organizationusername@gmail.com"
    },
    "billing_cycle": "monthly",
    "unit_count": 0,
    "on_free_trial": false,
    "free_trial_ends_on": null,
    "next_billing_date": "2017-11-08T00:00:00+00:00",
    "plan": {
      "id": 686,
      "name": "Premium Plan",
      "description": "Premium Plan",
      "monthly_price_in_cents": 10000,
      "yearly_price_in_cents": 100000,
      "price_model": "flat-rate",
      "has_free_trial": true,
      "unit_name": null,
      "bullets": [
        "Is Expensive",
        "And Flat Rate"
      ]
    }
  }
}

Esse documento ajudou você?

Privacy policy

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.