ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

GitHub Marketplace APIのためのwebhookイベント

GitHub Marketplaceアプリケーションは、ユーザのプランに対する変更に関する情報を、Marketplaceの購入イベントwebhookから受け取ります。 Marketplaceの購入イベントは、ユーザが支払いプランの購入、キャンセル、変更をした場合にトリガーされます。 それぞれの種類のイベントへの対応方法の詳細については「支払いフロー」を参照してください。

GitHub Marketplace購入webhookのペイロード

webhookのPOSTリクエストには、特別なヘッダがあります。 詳細については「webhookの配信ヘッダ」を参照してください。 GitHubは、失敗した配信の試行を再送信しません。 GitHubが送信したすべてのwebhookのペイロードを、アプリケーションが確実に受信できるようにしてください。

キャンセル及びダウングレードは、次の支払いサイクルの初日に有効になります。 ダウングレードとキャンセルのイベントは、次の支払いサイクルの開始時に新しいプランが有効になったときに送信されます。 新規の購入とアップグレードのイベントは、すぐに開始されます。 変更がいつ始まるかを判断するには、webhookのペイロード中のeffective_dateを使ってください。

Note: If you notice any spammy GitHub Marketplace purchases or other malicious behavior, please complete the report abuse form with more information on the user.

それぞれのmarketplace_purchase webhookのペイロードは、以下の情報を持ちます。

キー種類説明
actionstringwebhookを生成するために行われたアクション。 purchasedcancelledpending_changepending_change_cancelledchangedのいずれかになります。 詳しい情報については、以下のwebhookペイロードの例を参照してください。 ノート: pending_change及びpending_change_cancelledペイロードには、changedペイロードの例に示されているものと同じキーが含まれます。
effective_datestringactionが有効になる日付。
senderobjectwebhookをトリガーしたactionを行った人。
marketplace_purchaseobjectGitHub Marketplaceの購入情報。

marketplace_purchaseオブジェクトは、以下のキーを持ちます。

キー種類説明
accountobjectサブスクリプションに関連づけられたorganizationもしくあはuserアカウント。 Organizationアカウントは、そのOrganizationの管理者のメールアドレスであるorganization_billing_emailを含みます。 個人アカウントのメールアドレスを知るには、認証されたユーザの取得エンドポイントが利用できます。
billing_cyclestringyearlyもしくはmonthlyのいずれかになります。 accountの所有者が無料のGitHubのプランを使っており、無料のGitHub Marketplaceプランを購入した場合、billing_cyclenilになります。
unit_countinteger購入したユーザ数。
on_free_trialbooleanaccountが無料トライアル中の場合trueになります。
free_trial_ends_onstring無料トライアルが期限切れになる日付。
next_billing_datestring次の支払いサイクルが始まる日付。 accountの所有者が無料のGitHub.comのプランを使っており、無料のGitHub Marketplaceプランを購入した場合、next_billing_datenilになります。
planオブジェクトuserまたはorganizationが購入したプラン。

planオブジェクトには以下のキーがあります。

キー種類説明
idintegerこのプランの一意の識別子。
namestringプラン名。
説明stringプランの説明。
monthly_price_in_centsintegerこのプランのセント (米国の通貨) 単位の月額。 たとえば、月額10米ドルのリストは1000セントです。
yearly_price_in_centsintegerこのプランのセント (米国の通貨) 単位の年額。 たとえば、月額100米ドルのリストは10000セントです。
price_modelstringこのリストの価格モデル。 flat-rateper-unitfreeのいずれかです。
has_free_trialbooleanこのリストが無料トライアルを提供する場合はtrueになります。
unit_namestringユニットの名前。 価格モデルがper-unitでない場合、これはnilになります。
bulletarray of strings価格プランに設定されている箇条書きの名前。

purchasedイベントのサンプルwebhookペイロード

次の例は、purchasedイベントのペイロードを示しています。

{
  "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 "
      ]
    }
  }
}

changedイベントのサンプルwebhookペイロード

プランの変更には、アップグレードとダウンロードがあります。 この例は、changedpending_change、およびpending_change_cancelledイベントのペイロードを表しています。 このアクションは、これら3つのイベントのうちどれが発生したかを示します。

{
  "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 "
      ]
    }
  }
}

cancelledイベントのサンプルwebhookペイロード

{
  "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"
      ]
    }
  }
}

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.