Webhookイベント一覧
POSTメソッド、application/json 形式で通知します。
各リクエスト先のURLはアプリ開発申請、アプリ公開申請の際にご申請ください。
機能 | イベント名 | 説明 |
---|---|---|
アプリ | インストール | アプリのインストール完了時に送信されます。 |
アプリ | アンインストール | アプリのインストール完了時に送信されます。 |
決済 |
再決済期限超過 (2024.06.04追加) |
再決済の期限(14日)が超過した際に送信されます。 |
決済 |
自由決済 成功/失敗 (2024.06.28追加) |
自由決済APIを用いた決済予約の成功/失敗時に送信されます。 |
更新通知 |
注文更新通知 (2024.06.27追加) |
ショップ側での受注時及び注文情報更新の際に2分周期で送信されます。 |
更新通知 |
会員更新通知 (2025.02.10追加) |
ショップ側での会員登録や会員情報更新等の際に送信されます。 |
更新通知 |
商品更新通知 (2025.02.10追加) |
ショップ側での商品登録や商品情報更新等の際に送信されます。 |
更新通知 |
ショップ利用情報への再同意通知 (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] ※本メールはシステムから自動送信されております。 |
アンインストール

レスポンスが200以外の場合はアプリのアンインストールを失敗とします
リクエストボディ (JSON) | |
---|---|
app_id | アプリID(数値型) |
app_name | アプリ名(文字列型) |
shop_id | ショップID(文字列型) |
アプリ側へのメール通知内容 | |
---|---|
送信タイミング | アプリのアンインストール時 |
差出人 | noreply@makeshop.jp |
宛先 | apps developer登録(パートナー登録)時のメールアドレス |
件名 | 【makeshop】アプリアンインストールが完了しました。 |
本文 |
[アプリ名]のアンインストールが完了しました。 対象ショップID:[ショップID] 対象ショップ名:[ショップ名] 対象ショップURL:[ショップURL] ※本メールはシステムから自動送信されております。 |
再決済期限超過(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追加) |
status |
処理種別(文字列型) CAPTURED:成功時 ERRORED:失敗時 |
アプリ側へのメール通知内容 | |
---|---|
送信タイミング | 決済予約の成功時に送信されます。 |
差出人 | 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】更新通知(注文)の送信に失敗しました。 |
内容 |
[アプリ名]の更新通知(注文)の送信に失敗しました。 対象ショップ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:[処理種別] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ※本メールはシステムから自動送信されております。 |
会員更新通知(2025.02.10追加)

・ショップ側での会員登録や会員情報更新等の際に送信されます。
・レスポンスが200以外の場合はエラー扱いとなります。
・エラーや何かしらの要因で処理が失敗した際は再通知処理を実行します。
・再通知処理含め通知処理が複数回失敗した場合、通知失敗とみなしてエラーメール(下記参照)を送信します。
リクエストボディ (JSON) | |
---|---|
shop_id | ショップID(文字列型) |
app_id | アプリID(数値型) |
app_name | アプリ名(文字列型) |
member_id | 会員ID配列(文字列型) |
cmd |
処理種別(文字列型) create:会員作成時 update:会員更新時 delete:会員削除時 update_unsubscribe :メルマガオプトアウト時 update_point :会員ポイント更新時 update_point_expire_date :会員ポイント期限更新時 update_password :会員パスワード更新時 update_user_group :会員グループ更新時 |
アプリ側へのメール通知内容 | |
---|---|
送信タイミング | 再通知含め通知に複数回失敗時に送信されます。 |
差出人 | noreply@makeshop.jp |
宛先 | apps developer登録(パートナー登録)時のメールアドレス |
件名 | 【makeshop】更新通知(会員)の送信に失敗しました。 |
内容 |
[アプリ名]の更新通知(会員)の送信に失敗しました。 対象ショップ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:[処理種別] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ※本メールはシステムから自動送信されております。 |
商品更新通知(2025.02.10追加)

・ショップ側での商品登録や商品情報更新等の際に送信されます。
・レスポンスが200以外の場合はエラー扱いとなります。
・エラーや何かしらの要因で処理が失敗した際は再通知処理を実行します。
・再通知処理含め通知処理が複数回失敗した場合、通知失敗とみなしてエラーメール(下記参照)を送信します。
リクエストボディ (JSON) | |
---|---|
shop_id | ショップID(文字列型) |
app_id | アプリID(数値型) |
app_name | アプリ名(文字列型) |
products |
商品コード配列(文字列型) system_code:システム商品コード custom_code:独自商品コード |
cmd |
処理種別(文字列型) create:商品登録時 update:商品更新時 update_quantity:商品在庫更新時 delete :商品の削除時 |
アプリ側へのメール通知内容 | |
---|---|
送信タイミング | 再通知含め通知に複数回失敗時に送信されます。 |
差出人 | noreply@makeshop.jp |
宛先 | apps developer登録(パートナー登録)時のメールアドレス |
件名 | 【makeshop】更新通知(商品)の送信に失敗しました。 |
内容 |
[アプリ名]の更新通知(商品)の送信に失敗しました。 対象ショップ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からのリクエストとして受け付ける。