旅程に関するAPIの提供
「旅程」機能を使えば、お客様の予約情報を表示したり、booking-relatedのツアーや体験などの商品・サービスをお客様が探しやすくしたりすることができます。また、このデータを活用して予約の傾向を分析したり、関係者の皆様向けのレポートを作成したりすることも可能です。
配送方法
旅程データのAPI配信には、プッシ ュ方式またはプル方式のいずれかをご利用いただけます。
プッシュ方式
プッシュサービスは、旅程の変更が発生するたびに、その最新情報を送信します。取引完了後、数分以内に主要な予約フィールドが利用可能となり、付随フィールドおよび詳細フィールドは2~4時間以内に利用可能になります。このオプションを使用すると、以下のことができます:
- ウェブサイトやアプリに、お客様の予約情報を表示する
- 旅行者に、旅行中に購入できる追加の商品やサービスを提供します
プッシュイベントは、Webhookを介して、ご指定いただいたURL宛てに、HTTP POST メッセージの形式で配信されます。これらのメッセージは順不同で届く場合がありますので、順序を特定するには、creation_date およびupdate_date_time 要素をご参照ください。
プッシュイベントの扱い
旅程データは入手可能になり次第配信されるため、同じ旅程に対して複数のイベントが届く場合があります。具体的には、主要なフィールドを含む最初のイベントに続き、付随データが充実したり旅程が更新されたりした際に、追加のイベントが届くことがあります。
>> フィールドのタイミングに関する詳細な内訳については、「利用可能なフィールド」のセクションをご覧ください
すべきこと:
- 旅程ごとに複数のイベントが発生することが予想されます:
itinerary_idを使用してイベントを関連付け、常に最新のupdate_date_timeにあるイベントを基準として扱ってください - 更新の処理方法を選択してください:既存の旅程に対して新しいイベントを受信した際、以前のレコードを最新のデータで上書きするか、各イベントを追加して変更履歴を維持するかを選択できます
- 欠落しているフィールドに適切に対処する: 初期のイベントでは補助フィールドが存在しない場合があります。処理を行う前に、フィールドが存在するかどうかを確認してください
してはいけないこと
- 最初のイベントに完全なペイロードが含まれているものと仮定します: 補助フィールドは、その後のイベントで続きます
- 同じ旅程に対する複数のイベントをエラーとして扱うようにしてください: これは想定された動作です
- real-timeの財務数値は確定値として扱ってください:。24時間以内に修正される可能性があります。
プル方式
プルサービスは、以下の機能をサポートするための詳細な旅程データを提供します:
- データ分析
- 予約記録とExpedia Groupのデータを照合する
- プッシュ配信に失敗した時間枠のデータ取得
- ヘルプデスクの調査
プッシュ配信と同様に、プル配信においても旅程データは2段階に分けて提供されます。コアフィールド(itinerary_ID、status、gross_booking_value、checkin_date、checkout_date)は、予約または更新から数分以内に利用可能となり、付加情報および拡張フィールドはその後2~4時間以内に利用可能となります。
>> フィールドごとの詳細な内訳については、「利用可能なフィールド」をご覧ください
このサービスは、2つのHTTP GET エンドポイントで構成されており、これらを利用することで以下のことが可能になります:
creation_date_start、creation_date_end、update_date_time_start、およびupdate_date_time_endの各変数を使用して、指定された期間内に作成または更新された旅程のリストを作成します。- 特定の旅程を、その
itinerary_id
>> 認証プロセスの詳細については、APIの設定をご覧ください
時間枠ごとの旅程データの取得
指定された時間枠の旅程データを取得するには、GET /itineraries およびupdate_date_time_start をクエリの時間枠として指定し、update_date_time_end エンドポイントに対してポーリングを行ってください。
推奨されるアプローチ:
- クエリウィンドウには、update_date_timeのフィールドをご利用ください: 指定した期間内に作成または更新された旅程を取得するには、
update_date_time_startおよびupdate_date_time_endをクエリウィンドウとしてご利用ください。creation_dateのみを使用すると、旅程の更新情報を見逃してしまいます。 - 最後に正常に実行されたポーリングのタイムスタンプを保存してください: これを次の
update_date_time_startとして使用し、ウィンドウを段階的に進めてください。 - 重複排除: クエリでは、
itinerary_idおよびupdate_date_timeを使用してください。補助フィールドの情報が充実するにつれて、同じ旅程が複数の投票期間にまたがって表示される場合があります。常に、最新のupdate_date_timeの記録を正式なものとして扱ってください。
ご利用の用途において、最も網羅的で最新の旅程データが必要な場合は、プッシュ配信をお勧めします。
利用可能なフィールド
以下の表に、プッシュとプルの配信方法を通じて利用可能なフィールド (ネストされたオブジェクトを含む) の一覧を示します。「利用可能時期」の列は、予約の発生または更新後、各フィール ドが通常いつから利用可能になるかを示しています:
- リアルタイムの:予約や更新から数分以内に利用可能
- Near-real-time: ご予約または情報の更新から2~4時間以内に利用可能となります
名前の後にピリオドが続くフィールド名 (例 : <変数>.<ネストされた変数>) はネスト関係を示しています。