Webhookイベント一覧

POSTメソッド、application/json 形式で通知します。
各リクエスト先のURLはアプリ開発申請、アプリ公開申請の際にご申請ください。

機能 イベント名 説明
アプリ インストール アプリのインストール完了時に送信されます。
アプリ アンインストール アプリのインストール完了時に送信されます。
決済 トライアル終了後の自動更新処理 成功/失敗 トライアル有りのサブスクリプションプランの場合、トライアル終了後に自動更新処理が行われます。
その際の成功/失敗時に送信されます。
決済 月額自動更新処理 成功/失敗 サブスクリプションプランの場合、毎月1日に自動更新が行われます。
その際の成功/失敗時に送信されます。
決済 プラン変更 アプリのプラン変更時に送信されます。
決済 サブスクリプションプランキャンセル サブスクリプションキャンセル時に送信されます。
決済 再決済期限超過
(2024.06.04追加)
再決済の期限(14日)が超過した際に送信されます。
決済 自由決済 成功/失敗
(2024.06.28追加)
自由決済APIを用いた決済予約の成功/失敗時に送信されます。
更新通知 注文更新通知
(2024.06.27追加)
ショップ側での受注時及び注文情報更新の際に2分周期で送信されます。
更新通知 ショップ利用情報への再同意通知
(2024.11.20追加)
アプリ公開後に利用APIを追加する場合に、ショップ様が利用に同意したタイミングで送信されます。

シーケンス図

インストール

インストール

レスポンスが200以外の場合はアプリのインストールを失敗とします

リクエストボディ (JSON)
app_id アプリID(数値型)
plan_id プランID(数値型)
app_name アプリ名(文字列型)
shop_id ショップID(文字列型)
token 永続トークン(文字列型)
client_id クライアントID(文字列型)
※会員SSO使用時のみfieldと値が通知されます
client_secret クライアントシークレット(文字列型)
※会員SSO使用時のみfieldと値が通知されます
アプリ側へのメール通知内容
送信タイミング 無料プランまたはトライアルありのサブスクリプションプランのインストール時
差出人 noreply@makeshop.jp
宛先 apps developer登録(パートナー登録)時のメールアドレス
件名 【makeshop】アプリインストールが完了しました。
本文 [アプリ名]のインストールが完了しました。

対象ショップID:[ショップID]
対象ショップ名:[ショップ名]
対象ショップURL:[ショップURL]

無料トライアル期間は本日を含む◯◯日間です。
期間終了日の翌日、選択中プランにて有料化されます。

※本メールはシステムから自動送信されております。

※トライアルがない場合、以下テキストは表示されません
「無料トライアル期間は本日を含む◯◯日間です。
期間終了日の翌日、選択中プランにて有料化されます。」
アプリ側へのメール通知内容
送信タイミング サブスクリプションプランのインストール時
差出人 noreply@makeshop.jp
宛先 apps developer登録(パートナー登録)時のメールアドレス
件名 【makeshop】アプリサブスクリプション決済が完了しました。
本文 [ショップ名] ([ショップID])様

[アプリ名]のサブスクリプション決済が完了しました。
決済内容は以下の通りです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・契約情報
アプリ名 : XXXX
内訳
◯◯プラン(サブスクリプション) X,XXX円(日割り)
初期費用 X,XXX円
税込合計金額 X,XXX円
・ご注意
このアプリは月額◯◯円(税込)のサブスクリプションでのご提供です。
次回YYYY-MM-DDに決済されます。
・決済方法
・決済時期
・提供開始日
・利用可能期間
・申し込みの撤回/解除方法/条件
makeshop apps利用規約をご参照ください
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
引き続き、makeshopをどうぞよろしくお願いいたします。
※本メールはシステムから自動送信されております。

アンインストール

アンインストール

レスポンスが200以外の場合はアプリのアンインストールを失敗とします

リクエストボディ (JSON)
app_id アプリID(数値型)
app_name アプリ名(文字列型)
shop_id ショップID(文字列型)
アプリ側へのメール通知内容
送信タイミング アプリのアンインストール時
差出人 noreply@makeshop.jp
宛先 apps developer登録(パートナー登録)時のメールアドレス
件名 【makeshop】アプリアンインストールが完了しました。
本文 [アプリ名]のアンインストールが完了しました。

対象ショップID:[ショップID]
対象ショップ名:[ショップ名]
対象ショップURL:[ショップURL]

※本メールはシステムから自動送信されております。

トライアル終了後の自動更新処理 成功/失敗

トライアル終了後の自動更新処理 成功/失敗
リクエストボディ (JSON)
app_id アプリID(数値型)
plan_id プランID(数値型)
app_name アプリ名(文字列型)
shop_id ショップID(文字列型)
payment_info_id 決済ID(数値型) (2024.08.14追加)
failed_payment_info_id 決済失敗ID(数値型) (2024.08.14追加)
アプリ側へのメール通知内容
送信タイミング トライアル終了後の自動更新処理 成功時
差出人 noreply@makeshop.jp
宛先 apps developer登録(パートナー登録)時のメールアドレス
件名 【makeshop】アプリサブスクリプション継続決済が完了しました。
本文 [アプリ名]のサブスクリプション継続決済が完了しました。

対象ショップID:[ショップID]
対象ショップ名:[ショップ名]
対象ショップURL:[ショップURL]

決済内容は以下の通りです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・契約情報
アプリ名 : XXXX
内訳
◯◯プラン(サブスクリプション) X,XXX円
税込合計金額 X,XXX円
・決済方法
・決済時期
・提供開始日
・利用可能期間
・申し込みの撤回/解除方法/条件
makeshop apps利用規約をご参照ください
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※本メールはシステムから自動送信されております。
アプリ側へのメール通知内容
送信タイミング トライアル終了後の自動更新処理 失敗時
差出人 noreply@makeshop.jp
宛先 apps developer登録(パートナー登録)時のメールアドレス
件名 【makeshop】アプリサブスクリプション決済に失敗しました。
本文 [ショップ名] ([ショップID])様

[アプリ名]のサブスクリプション決済に失敗しました。

該当のサブスクリプション契約は自動解約となります。
アプリ利用の再開をご希望の際は下記から再度該当アプリの決済にお進みください。
[ここにURLが入る]

引き続き、makeshopをどうぞよろしくお願いいたします。
※本メールはシステムから自動送信されております。

月額自動更新処理 成功/失敗

月額自動更新処理 成功/失敗
リクエストボディ (JSON)
app_id アプリID(数値型)
plan_id プランID(数値型)
app_name アプリ名(文字列型)
shop_id ショップID(文字列型)
payment_info_id 決済ID(数値型)(2024.08.14追加)
failed_payment_info_id 決済失敗ID(数値型)(2024.08.14追加)
アプリ側へのメール通知内容
送信タイミング 月額自動更新処理 成功時
内容 トライアル終了後の自動更新処理 成功 と同様
アプリ側へのメール通知内容
送信タイミング 月額自動更新処理 失敗時
内容 トライアル終了後の自動更新処理 失敗 と同様

プラン変更

プラン変更
リクエストボディ (JSON)
app_id アプリID(数値型)
plan_id 変更後のプランID(数値型)
app_name アプリ名(文字列型)
shop_id ショップID(文字列型)
アプリ側へのメール通知内容
送信タイミング サブスクリプションプランの変更(プランアップ)時
差出人 noreply@makeshop.jp
宛先 apps developer登録(パートナー登録)時のメールアドレス
件名 【makeshop】アプリの契約プランを変更しました。
本文 [アプリ名]の契約プランを変更しました。

対象ショップID:[ショップID]
対象ショップ名:[ショップ名]
対象ショップURL:[ショップURL]

変更内容は以下の通りです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・契約情報
アプリ名 : XXXX
内訳
◯◯プラン(サブスクリプション) X,XXX円(差額)
税込合計金額 X,XXX円
・決済方法
・決済時期
・提供開始日
・利用可能期間
・申し込みの撤回/解除方法/条件
makeshop apps利用規約をご参照ください
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※本メールはシステムから自動送信されております。

サブスクリプション キャンセル

サブスクプラン解約
リクエストボディ (JSON)
app_id アプリID(数値型)
plan_id プランID(数値型)
app_name アプリ名(文字列型)
shop_id ショップID(文字列型)
アプリ側へのメール通知内容
送信タイミング トライアル中のサブスクリプションのキャンセル時
差出人 noreply@makeshop.jp
宛先 apps developer登録(パートナー登録)時のメールアドレス
件名 【makeshop】トライアル中のアプリ有料化解約が完了しました。
本文 [アプリ名]トライアル中の有料化解約が完了しました。

対象ショップID:[ショップID]
対象ショップ名:[ショップ名]
対象ショップURL:[ショップURL]

トライアル期間終了日までは、該当アプリを継続利用できます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・契約情報
アプリ名 : XXXX
プラン名:◯◯プラン(サブスクリプション)
・利用可能期間(終了日)
・申し込みの撤回/解除方法/条件
makeshop apps利用規約をご参照ください
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※本メールはシステムから自動送信されております。
アプリ側へのメール通知内容
送信タイミング サブスクリプションの自動更新キャンセル時
差出人 noreply@makeshop.jp
宛先 apps developer登録(パートナー登録)時のメールアドレス
件名 【makeshop】アプリ解約が完了しました。
本文 [アプリ名]の解約が完了しました。

対象ショップID:[ショップID]
対象ショップ名:[ショップ名]
対象ショップURL:[ショップURL]

利用可能期間終了日までは、該当アプリを継続利用できます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・契約情報
アプリ名 : XXXX
プラン名:◯◯プラン(サブスクリプション)
・利用可能期間(終了日)
・申し込みの撤回/解除方法/条件
makeshop apps利用規約をご参照ください
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※本メールはシステムから自動送信されております。

再決済期限超過(2024.06.04追加)

再決済期限超過
リクエストボディ (JSON)
app_id アプリID(数値型)
failed_payment_info_id 決済失敗ID(数値型)
plan_id プランID(数値型)
app_name アプリ名(文字列型)
shop_id ショップID(文字列型)
アプリ側へのメール通知内容
送信タイミング なし
内容 なし

自由決済 成功/失敗(2024.06.28追加)

自由決済 成功/失敗
リクエストボディ (JSON)
app_charge_reservation_id 自由決済予約ID(数値型)
app_charge_reservation_name 自由決済予約名(文字列型)
app_id アプリID(数値型)
plan_id プランID(数値型)
shop_id ショップID(文字列型)
failed_payment_info_id 決済失敗ID(数値型)(2024.08.14追加)
アプリ側へのメール通知内容
送信タイミング 決済予約の成功時に送信されます。
差出人 noreply@makeshop.jp
宛先 apps developer登録(パートナー登録)時のメールアドレス
件名 【makeshop】アプリ内課金が完了しました。
本文 [アプリ名]の[決済予約名]の決済処理が完了しました。

対象ショップID:[ショップID]
対象ショップ名:[ショップ名]
対象ショップURL:[ショップURL]

決済内容は以下の通りです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・契約情報
 アプリ名 : [アプリ名]
 プラン名 : [プラン名]
 決済名 : [決済予約名]
  内訳
   [決済名目] X,XXX円
   [決済名目] X,XXX円
   [決済名目] X,XXX円
   小計:X,XXX円
   消費税 10%対象:X,XXX円
   税込合計金額:X,XXX円
・決済方法:カード決済
・決済日時:YYYY-MM-DD HH:mm:ss
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※本メールはシステムから自動送信されております。
アプリ側へのメール通知内容
送信タイミング 決済予約の失敗時に送信されます。
差出人 noreply@makeshop.jp
宛先 apps developer登録(パートナー登録)時のメールアドレス
件名 【makeshop】アプリ内課金に失敗しました。
本文 [アプリ名]の[決済予約名]の決済処理に失敗しました。

ショップオーナー宛へ再決済をご案内済みです。
https://console.makeshop.jp/apps/app-list

対象ショップID:[ショップID]
対象ショップ名:[ショップ名]
対象ショップURL:[ショップURL]

決済内容は以下の通りです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・契約情報
 アプリ名 : [アプリ名]
 プラン名 : [プラン名]
 決済名 : [決済予約名]
  内訳
   [決済名目] X,XXX円
   [決済名目] X,XXX円
   [決済名目] X,XXX円
   小計:X,XXX円
   消費税 10%対象:X,XXX円
   税込合計金額:X,XXX円
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

※本メールはシステムから自動送信されております。

注文更新通知(2024.06.27追加)

注文更新通知

・ショップ側での受注時及び注文情報更新の際に即時送信します。
・レスポンスが200以外の場合はエラー扱いとなります。
・エラーや何かしらの要因で処理が失敗した際は再通知処理を実行します。
・再通知処理含め通知処理が複数回失敗した場合、通知失敗とみなしてエラーメール(下記参照)を送信します。

リクエストボディ (JSON)
shop_id ショップID(文字列型)
app_id アプリID(数値型)
app_name アプリ名(文字列型)
order_num 注文番号(文字列型)
cmd 処理種別(数値型)
0:受注時
1:注文内容修正時
2:注文キャンセル時
3:入金完了時
4:配送完了時
アプリ側へのメール通知内容
送信タイミング 再通知含め通知に複数回失敗時に送信されます。
差出人 noreply@makeshop.jp
宛先 apps developer登録(パートナー登録)時のメールアドレス
件名 【makeshop】更新通知(注文)の送信に失敗しました。
内容 [アプリ名]の更新通知(注文)の送信に失敗しました。

ショップオーナー宛へ再決済をご案内済みです。
https://console.makeshop.jp/apps/app-list

対象ショップID:[ショップID]
対象ショップ名:[ショップ名]
対象ショップURL:[ショップURL]

操作受付時間:yyyy-mm-dd hh:mm:ss
通知失敗時間:yyyy-mm-dd hh:mm:ss

送信内容
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
shop_id:[ショップID]
app_id:[アプリID]
app_name:[アプリ名]
order_num:[注文番号]
cmd:[処理種別]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※本メールはシステムから自動送信されております。

ショップ利用情報への再同意通知(2024.11.20追加)

ショップ利用情報への再同意通知

・アプリ公開後に利用APIを追加した場合、ショップ様が追加APIの利用同意された際に送信されます。
・レスポンスが200以外の場合はエラー扱いとなり、利用同意が失敗となります。

リクエストボディ (JSON)
app_id アプリID(数値型)
app_name アプリ名(文字列型)
shop_id ショップID(文字列型)
scopes 更新後スコープ(文字列型)
※カンマ区切り文字列
client_id クライアントID(文字列型)
※会員SSO追加時のみfieldと値が通知されます
client_secret クライアントシークレット(文字列型)
※会員SSO追加時のみfieldと値が通知されます
アプリ側へのメール通知内容
送信タイミング なし
内容 なし

署名検証(HMAC-SHA256 準拠)

Header

x-makeshop-request-timestamp : Webhookリクエスト送信時のタイムスタンプ(Unixtime)
x-makeshop-signature: HMAC-SHA256 キー付きのハッシュ(base64でエンコード)

検証方法

  • 1. アプリ登録時に通知したシークレットキーを用意。
    例: secretkey1234567890
  • 2. Webhookで受信したリクエストのHTTPヘッダーからタイムスタンプ(x-makeshop-request-timestamp)の値を取得。
    例: x-makeshop-request-timestamp: 1693463796
  • 3. タイムスタンプが一定時間以上経過していないことを確認。
    例えば有効期限を5分とした場合、現在時刻のUnixtimeに300を足した数を超えていないかのチェックを行う。超えていた場合はリクエストを破棄する。
  • 4. タイムスタンプとリクエストボディをコロン(:)で連結し署名対象文字列を作成。
    例: 1693463796:{\"app_id\": 1,\"app_name\": \"sample app\",\"shop_id\": \"test_shop1\",\"token\": \"PAT.77cbf501913f7fcc8b72d6818c63954ab9472245f2019e99cb2aa3fa58c94131\",\"plan_id\": 2}
  • 5. 署名対象文字列に対してシークレットキーを使用してSHA256 ハッシュを計算
    echo -n "1693463796:{\"app_id\": 1,\"app_name\": \"sample app\",\"shop_id\": \"test_shop1\",\"token\": \"PAT.77cbf501913f7fcc8b72d6818c63954ab9472245f2019e99cb2aa3fa58c94131\",\"plan_id\": 2}" | openssl dgst -binary -sha256 -hmac "secretkey1234567890" | base64

    例:/49Q36xkVAoOZZeAbVcYEKpFcApJ0rHPEtCGzZKFMqc=
  • 6. 生成したハッシュとHTTPヘッダーの署名(x-makeshop-signature)をBase64デコードした値が一致することを確認し、一致している場合はmakeshopからのリクエストとして受け付ける。