Notification API

Notification API 概要 (Notification API Overview)

eBay Notification APIは、ユーザーが以下を行えるようにすることで、エンドツーエンドのeBay通知エクスペリエンス全体の管理を可能にします:

  • サポートされている通知トピックの閲覧とトピック詳細の取得
  • 通知宛先エンドポイントの作成、構成、および管理
  • 通知購読(サブスクリプション)の構成、管理、およびテスト
  • eBay通知の処理とメッセージペイロードの整合性の検証
ヒント: RESTful APIの使用方法の詳細については、Using eBay Restful APIs を参照してください。

技術概要 (Technical overview)

eBay Notification APIを使用すると、以下のセクションにリストされている主要なメソッドとフィールドを使用して通知を管理できます。

主要なメソッド

Notification APIには、以下のリソースとメソッドが含まれています:

  • topic - このリソースを使用すると、ユーザーはサポートされている通知トピックを閲覧し、それらのトピックの詳細を取得できます。以下のメソッドが含まれています:
    • getTopic
    • getTopics
  • config - このリソースを使用すると、ユーザーはアラート構成の詳細を作成、更新、および取得できます。以下のメソッドが含まれています:
    • updateConfig
    • getConfig
  • destination - このリソースを使用すると、ユーザーは通知を受信する宛先エンドポイントを作成および管理できます。以下のメソッドが含まれています:
    • createDestination
    • updateDestination
    • getDestination
    • getDestinations
    • deleteDestination
  • subscription - このリソースを使用すると、ユーザーは通知購読を作成、管理、フィルタリング、およびテストできます。以下のメソッドが含まれています:
    • createSubscription
    • updateSubscription
    • enableSubscription
    • disableSubscription
    • getSubscription
    • getSubscriptions
    • deleteSubscription
    • testSubscription
    • createSubscriptionFilter
    • getSubscriptionFilter
    • deleteSubscriptionFilter
  • public_key - このリソースを使用すると、ユーザーは公開鍵IDを指定して公開鍵を取得でき、これを使用してeBayから送信された通知の検証を実行できます。以下のメソッドが含まれています:
    • getPublicKey
ヒント: 上記のリソースとメソッドの詳細については、Notification API reference を参照してください。

主要なフィールド

Notification APIで使用される主要なフィールドは以下の通りです:

  • Alert email - アプリケーション用に設定されたアラートメールアドレス。
  • Delivery configuration - 宛先用に設定されたエンドポイントとその関連する検証トークンを含む、配信構成に関する詳細。
  • Topic ID - 購読を作成および管理できる、サポートされているeBay通知トピックのID。
  • Destination ID - eBay通知を受信する構成済み宛先のID。
  • Subscription ID - eBay通知トピックへの購読のID。購読により、ユーザーアプリケーションはビジネスに関連する通知と情報を受信できます。
  • Filter ID - 購読に関連付けられたフィルタのID。フィルタを使用すると、ユーザーアプリケーションは提供された基準に一致する場合にのみ通知を受信できます。
  • Public Key IDgetPublicKey メソッドから公開鍵を取得するために使用される一意の鍵ID。これは、eBayプッシュ通知と一緒に送信される X-EBAY-SIGNATURE ヘッダーから取得されます。
ヒント: Notification APIメソッドで使用されるフィールドとタイプの完全なリストについては、Notification API field index を参照してください。

ビジネスユースケース (Business use cases)

以下のセクションでは、初期通知購読フローについて説明するビジネスユースケースの概要を示します:

  • 通知トピックの選択
  • アラート構成の作成
  • エンドポイント宛先の作成
  • 通知トピックへの購読
  • トピックの購読フィルタの作成
  • eBayプッシュ通知の検証

通知トピックの選択

ユーザーは、getTopic または getTopics メソッドを使用して、サポートされているeBay通知トピックを検索し、メタデータ詳細を取得できます。これらのメソッドによって返される情報には、サポートされているスキーマバージョン、フォーマット、およびトピックIDが含まれます。

注: これらのプッシュ通知のいずれかを受信するには、その Topic を購読する必要があります。

現在サポートされている通知トピックは以下の通りです:

注: 2025年9月26日より、一部の開発者は、通知ペイロードを通じて米国のユーザーのユーザー名データを受信しなくなります。代わりに、不変のユーザーIDが返されます。詳細については、Data Handling Compliance を参照してください。
トピック トピックID トピックの説明
Authorization Revocation AUTHORIZATION_REVOCATION eBayユーザーがeBay Developers Programアプリケーションの権限を取り消したときに、開発者に通知が送信されます。
Buyer Question BUYER_QUESTION バイヤーがアクティブな出品について質問したときに、セラーに通知が送信されます。
Buyer Requested Purchase Quote BUYER_REQUESTED_PURCHASE_QUOTE バイヤーが支払いの前に注文の合計金額をリクエストしたときに、セラーまたはセラーによって承認されたサードパーティアプリケーションに通知が送信されます。
Feedback Left FEEDBACK_LEFT ユーザーが他のユーザーにフィードバックを残したときに、そのユーザーに通知が送信されます。
Feedback Received FEEDBACK_RECEIVED ユーザーが他のユーザーからフィードバックを受け取ったときに、そのユーザーに通知が送信されます。
Feedback Star Rating FEEDBACK_STAR_RATING ユーザーのフィードバックの星評価が変更されたときに、そのユーザーに通知が送信されます。
Item Availability ITEM_AVAILABILITY 固定価格商品の在庫状況タイプが変更されたときに、開発者に通知が送信されます。サポートされている在庫状況タイプは AVAILABLE、UNAVAILABLE、TEMPORARILY_UNAVAILABLE です。
注: 現在、このトピックはCA、AU、HK、SG、MY、PHを除くすべてのマーケットプレイスのeBay Partner Network(ePN)パートナーが利用できます。
Item Marked Shipped ITEM_MARKED_SHIPPED セラーが商品を発送済みとしてマークしたときに、ユーザーに通知が送信されます。
Item Price Revision ITEM_PRICE_REVISION 固定価格商品の価格が変更されたときに、開発者に通知が送信されます。
注: 現在、このトピックはCA、AU、HK、SG、MY、PHを除くすべてのマーケットプレイスのeBay Partner Network(ePN)パートナーが利用できます。
Listing Preview Creation Task Status LISTING_PREVIEW_CREATION_TASK_STATUS 出品プレビュー作成タスクが完了したときに、セラーに通知が送信されます。
注: この通知トピックは、制限付きのInventory Mapping APIにアクセスできる開発者のみが使用できます。
Marketplace Account Deletion MARKETPLACE_ACCOUNT_DELETION eBayユーザーが個人データの削除とアカウントの閉鎖をリクエストしたときに、開発者に通知が送信されます。詳細については、eBay Marketplace Account Deletion ページを参照してください。
New Message NEW_MESSAGE eBayまたは他のeBayユーザーから新しいメッセージを受信したときに、ユーザーに通知が送信されます。
Order Confirmation ORDER_CONFIRMATION バイヤーがオークションまたは固定価格商品のチェックアウトプロセスを完了したときに、セラーに通知が送信されます。
Priority Campaign Strategy Budget Status PLA_CAMPAIGN_BUDGET_STATUS Promoted Listingsプライオリティストラテジー広告キャンペーン(旧Promoted Listings Advanced (PLA))の日次予算が完全に使い果たされたときに、セラーに通知が送信されます。
Priority Listing Revision PRIORITY_LISTING_REVISION 優先出品(Priority Listing)が改定されたときに、セラーバイヤーに通知が送信されます。
注: 現在、このトピックはCA、AU、HK、SG、MY、PHを除くすべてのマーケットプレイスのeBay Partner Network(ePN)パートナーが利用できます。
Seller Customer Service Metric Rating SELLER_CUSTOMER_SERVICE_METRIC_RATING カスタマーサービス指標のパフォーマンスに重大な変更があったときに、セラーに通知が送信されます(「非常に高い(very high)」に向かっている場合の事前警告を含む)。
Seller Standards Profile Metrics SELLER_STANDARDS_PROFILE_METRICS セラーパフォーマンス指標セラーレベルに重大な変更があったときに、セラーに通知が送信されます(セラーの標準レベルを変更する可能性のあるしきい値に近い場合の事前警告を含む)。
ヒント: AsyncAPI Studio を使用して、上記の表にリストされているAsyncAPI契約を視覚化できます。

アプリケーションは、トピックの購読に必要な認可スコープによって制限される、サポートされているスキーマバージョンおよび形式の任意のトピックを購読できます。トピックは、受信する情報のタイプとイベントに関連付けられたデータタイプを指定します。

注: これらのメソッドによって返される topic ID は、通知トピックを購読する際に入力する必要があるため、これらのメソッドによって返されるデータを保持しておく必要があります。

アラート構成の作成

通知を受信するためのエンドポイント宛先を設定する前に、まずアラート構成を作成する必要があります。updateConfig メソッドを使用すると、ユーザーは新しいアラート構成を作成(または既存の構成を更新)し、アプリケーションのアラートメールを指定できます。

アラート構成がすでに作成されている場合は、getConfig メソッドを使用して既存の構成データを取得および確認できます。

注: このアラート構成はトピックベースではなく、複数の購読に使用できます。そのため、アプリケーションごとに必要なアラート構成は1つだけです。

エンドポイント宛先の作成

eBay通知を購読して受信する前に、ユーザーはエンドポイント宛先を準備してeBayからのチャレンジコードを受信し、このチャレンジコードを使用してエンドポイントURLの正当性を検証する必要があります。eBayは、ユーザーが提供されたエンドポイントURLを所有/アクセスできることを確認する必要があります。

createDestination メソッドを使用してプロセスを開始し、その時点でユーザーは宛先エンドポイントと検証トークンを指定する必要があります。開発者がエンドポイントURLと検証トークンを提供して保存した直後に、eBayはGET呼び出しの形式でそのURLにチャレンジコードを送信します。このGET呼び出しは次の形式を使用します:

GET https://?challenge_code=123
注: challenge_code クエリパラメータの値はリクエストごとに一意です。提供されるエンドポイントURLはHTTPSプロトコルを使用する必要があり、パスに内部IPアドレスや localhost を含めることはできません。

この一意のチャレンジコードを受信すると、エンドポイントはチャレンジコード、検証トークン、およびエンドポイントURLをハッシュ化し、JSON形式の challengeResponse フィールドを通じて 200 OK とハッシュ値でeBayに応答するように設定する必要があります:

{
"challengeResponse":"52161ff4651cb71888801b47bae62f44d7f6d0aab17e70d00f64fc84368ca38f"
}

このレスポンスの content-type ヘッダーは application/json に設定する必要があり、3つのパラメータは次の順序でハッシュ化する必要があります。そうしないと検証に失敗します:

challengeCode + verificationToken + endpoint

eBayは、エンドポイントが正式に通知を購読できるようになる前に、16進文字列を検証します。エンドポイントと検証トークンは宛先に固有の値ですが、チャレンジコード変数は challenge_code クエリパラメータの形式でeBayから提供され、ランダムに生成されリクエストに固有です。

注: 検証トークンは32〜80文字である必要があります。使用できる文字は英数字、アンダースコア (_)、ハイフン (-) のみです。

通知トピックへの購読

ユーザーがコードと宛先エンドポイントをテストし、エンドポイントがeBayのチャレンジコードを処理して応答する準備ができていると確信したら、eBay通知トピックへの購読を確立できます。

createSubscription メソッドを使用して購読を作成します。購読により、アプリケーションとユーザーはビジネスに関連する情報を受信できます。

各アプリケーション/ユーザーとトピックのペアリングは、購読に対して1対1のカーディナリティを持つ必要があります。新しいバージョンの通知に対して新しい購読を作成し、新しいバージョンへの移行が完了したら、古い購読を削除できます。ユーザーは 無効 (disabled) モードで購読を作成してテストし(test メソッドを参照)、準備ができたら購読を 有効 (enable) にすることができます(enableSubscription メソッドを参照)。

新しい購読を作成する際は、購読のタイプに適したスコープを含めることが重要です:

  • アプリケーションベースの購読の場合、以下のスコープを含め、クライアントクレデンシャル付与フローを使用してOAuthトークンを作成する必要があります:
    https://api.ebay.com/oauth/api_scope
  • ユーザーベースの購読の場合、以下のスコープを含め、認可コード付与フローを使用してOAuthトークンを作成する必要があります:
    https://api.ebay.com/oauth/api_scope/commerce.notification.subscription
注: アプリケーションまたはユーザーがトピックを購読する権限がない場合(例:トピックに必要なスコープのリストが認可に含まれていない場合)、エラーコード 195011 が返されます。

トピックの購読フィルタの作成

ユーザーがエンドポイント宛先を作成し、通知トピックを購読したら、購読に購読フィルタを追加できます。これにより、アプリケーションは提供された基準に一致する通知のみを受信し、一致しない通知は宛先に送信されません。

注: すべてのトピックにフィルタを適用できるわけではありません。getTopic および getTopics リクエストを使用して、選択したトピックがフィルタ可能かどうかを判断してください。フィルタ可能なトピックは、レスポンスでブール値 filterabletrue に設定されています。

createSubscriptionFilter メソッドを使用して購読フィルタを作成します。購読フィルタが以下に準拠していることを確認してください:

  • フィルタ要求は、ユーザーが所有する有効な購読に対するものである必要があります
  • 購読はフィルタ可能なトピックに対するものである必要があります。トピックがフィルタ可能でない場合、フィルタは拒否され、DISABLED になり、195032 エラーコードが返されます
  • 提供される filterSchema 値は有効な JSON Core document (バージョン 2020-12 以降) であり、購読の通知をフィルタリングするための有効な基準を提供するように購読の通知ペイロードを記述する必要があります。提供されたJSONがトピックの通知に存在しないフィールドを指定している場合、フィルタは拒否され、DISABLED になり、195033 エラーコードが返されます

eBayプッシュ通知の検証

eBay通知プラットフォームからHTTPプッシュ通知を受信するようにサインアップしたユーザーは、通知ペイロードとともに X-EBAY-SIGNATURE ヘッダーを含むプッシュ通知を受信します。このヘッダーは、以下の構造を使用するBase64エンコードされたパックヘッダーです:

{
"alg":"{_ECDSA_}",
"kid":"{_public key ID_}",
"signature":"{_signature_}",
"digest":"{_SHA1_}"
}

通知ペイロードとヘッダーを受信した後、ユーザーは通知が実際にeBayから来たものであることを確認する必要があります。通知は、Event Notification SDKを使用するか、以下に概説する手動検証手順を完了することで検証できます。

Event Notification SDKs

eBayは、各通知の有効性を検証するためのSDKを作成しました。

手動検証

以下の手順を使用して、通知を手動で処理し、メッセージペイロードの整合性を検証できます:

  1. Base64関数を使用して X-EBAY-SIGNATURE ヘッダーをデコードし、公開鍵IDと署名を取得します。
  2. デコードされた署名ヘッダーから取得した公開鍵ID ("kid") を渡して、getPublicKey Notification APIメソッドを呼び出します。
  3. getPublicKey メソッドから返された公開鍵を使用して検証を実行するために、暗号化ライブラリを初期化します。
注: 検証は、署名、ペイロード、および公開鍵の関数です。
重要! getPublicKey メソッドから取得した公開鍵の値は、一時的ですが妥当な時間(例:1時間を推奨)キャッシュする必要があります。大量の通知リクエストを受信した場合に API呼び出し制限 を超える可能性があるため、通知ごとにこの鍵をリクエストしないでください。

API制限 (API restrictions)

以下のCommerce Notification APIイベントにはスコープ https://api.ebay.com/oauth/api_scope/buy.item.stream が必要であり、承認されたePNパートナーのみが利用できます。

  • ITEM_AVAILABILITY
  • ITEM_PRICE_REVISION
トップに戻る