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からのリクエストとして受け付ける。