Expedia Rapid API連携
Expedia API連携:Rapid API、予約フロー、本番稼働
OTA、旅行会社、旅行スタートアップがExpedia Groupに接続するために必要なすべて。どのExpedia APIが自社のビジネスに合うか、Rapidの予約フローと署名の仕組み、ローンチ審査で確認される項目、費用、そしてホテルフローを標準搭載したPHPTRAVELSで本番稼働までどう進めるかを解説します。
- Rapid Lodging API
- API keyとSHA-512署名
- サンドボックスとテスト予約
- ローンチ審査と本番稼働
Expedia GroupのAPI
自社のビジネスに合うExpedia APIは
Expedia Groupは、販売事業者、アフィリエイト、ホテル、旅行代理店向けにそれぞれ別のAPIプログラムを運営しています。まず一つの問いで選びましょう。旅行者はどこで支払うのか?
- 販売側
Rapid API
当社の注力分野- 対象
- 自社ブランドで旅行商品を販売するOTA、旅行会社、旅行アプリ、ロイヤルティプログラム。
- 提供内容
- Expediaのリアルタイム在庫と、検索、料金確認、予約、変更、キャンセルまでの完全な予約フロー。
- 旅行者の予約場所
- 自社のウェブサイトやアプリ内の、自社の決済画面で。
- PHPTRAVELSでの対応
- ホテルフローは宿泊モジュールに組み込み済みで、設定、マッピング、認定を行うだけです。
- アフィリエイト側
Travel Redirect API
- 対象
- 送客で手数料を得るコンテンツサイト、旅行ブログ、メタサーチ型のページ。
- 提供内容
- 自社ページに表示する宿泊と航空券のリストと、選択したExpediaブランドへのリンク。
- 旅行者の予約場所
- リダイレクト後、Expedia、Hotels.com、Vrbo上で。
- PHPTRAVELSでの対応
- PHPTRAVELSサイト上でリストとリンクとして利用可能。自社サイトでは予約は発生しません。
- 供給側
供給・接続API
- 対象
- ホテル、宿泊施設管理システム(PMS)、チャネルマネージャー。
- 提供内容
- 料金、空室、販売制限をExpediaに送信し、Expediaが受けた予約を取得します。
- 旅行者の予約場所
- Expedia上で。予約は施設側が受け取ります。
- PHPTRAVELSでの対応
- エクストラネットやチャネルマネージャー経由でExpediaに出品するホテル向け。
- 旅行代理店
Expedia TAAP
- 対象
- 顧客のために予約し、手数料を得る旅行代理店。
- 提供内容
- 代理店料金と手数料管理を備えたExpediaの代理店ポータル。
- 旅行者の予約場所
- TAAPポータルで、代理店が予約。
- PHPTRAVELSでの対応
- 代理店はTAAPの予約をバックオフィスに記録できます。API経由ならRapidです。
申請が多いため、ExpediaはTravel Redirect APIの新規申請受付を一時停止しています。
Rapid API製品
- Rapid Lodging APIPHPTRAVELSに標準搭載
- Rapid Car APIカスタム連携
- Rapid Flight APIカスタム連携
- Rapid Activities APIカスタム連携
ホテル旅行アフィリエイトプログラムExpedia ExtranetExpedia TAAP API連携カスタムAPI連携
Rapidの予約フロー
Expediaのホテル予約がAPIコールごとに進む流れ
Rapid Lodgingの予約は決まった順序で進みます。ステップを選ぶと、そのAPIコール、PHPTRAVELSでの処理、認定で注意すべき点を確認できます。
Rapidのコール
GET /v3/properties/content- PHPTRAVELSの処理
- 施設名、住所、画像、設備、客室タイプ、ポリシーをホテルページに取り込み、定期的に更新します。
- 注意点
- 全カタログには施設コンテンツファイルを、更新にはコンテンツAPIを使用し、検索レスポンスからコンテンツを取得しないでください。
Rapidのコール
GET /v3/properties/availability- PHPTRAVELSの処理
- 日程、人数、施設IDで検索し、各客室の料金、税金・手数料、キャンセルポリシーを表示します。
- 注意点
- 決済前に税金・手数料込みの総額を表示し、すべてのリクエストで旅行者のIPとセッションヘッダーを送信してください。
Rapidのコール
GET {price_check link}- PHPTRAVELSの処理
- 支払いの直前に選択した料金の料金確認リンクを呼び出し、料金が一致した場合のみ先に進みます。
- 注意点
- 料金が変わった場合や売り切れの場合は決済を止めて別の選択肢を提示し、旧料金で決済してはいけません。
Rapidのコール
POST /v3/itineraries- PHPTRAVELSの処理
- 宿泊者情報と支払い情報で旅程を作成し、ExpediaのItinerary IDを保存してバウチャーを送信します。
- 注意点
- 仮押さえ可能な料金は2段階方式に対応:課金なしで客室を確保し、その後再開して予約を完了します。
Rapidのコール
GET /v3/itineraries/{itinerary_id}- PHPTRAVELSの処理
- 旅程を読み戻し、管理画面で日程、客室、料金、確認番号、ステータスを確認します。
- 注意点
- タイムアウト後はまず照会し、旅程が存在しない場合のみ再試行して、二重予約を防ぎます。
Rapidのコール
DELETE /v3/itineraries/{id}/rooms/{room_id}- PHPTRAVELSの処理
- 料金のポリシーに従い、管理画面と顧客アカウントから変更とキャンセルを実行します。
- 注意点
- 違約金は料金のキャンセルポリシーに基づきます。確定前に旅行者に提示してください。
Rapidのコール
POST https://your-site/webhooks/expedia- PHPTRAVELSの処理
- 旅程変更のWebhookイベントを自社環境のURLで受信し、予約を更新します。
- 注意点
- Webhookには素早く応答し、ステータスはExpediaの記録を正としてください。
コールのパスはRapid v3のドキュメントに基づきます。必ず最新のExpedia Group Developer Hubをご確認ください。
API keyと署名
Expedia Rapid APIの認証の仕組み
各Rapidリクエストには、API keyと署名を含む認証ヘッダーが付きます。署名は、API key、共有シークレット、現在のUNIXタイムスタンプ(秒)のSHA-512ハッシュです。
- 5分間の許容範囲
- タイムスタンプはExpediaのサーバー時刻から5分以内である必要があり、ハッシュに使う値とヘッダーの値は一致していなければなりません。
- シークレットはサーバー側に
- 共有シークレットはパスワードです。PHPTRAVELSはサーバー設定に保存し、ブラウザやアプリには置きません。
- テスト用エンドポイント
- サンドボックスのコールはtest.ean.comに送られ、実際の予約やカード決済は発生しません。テストヘッダーで売り切れや料金変更などの結果を再現できます。
- EANと表記される理由
- EANはExpedia Affiliate Networkの略で、このプログラムの旧称です。ヘッダーの方式やエンドポイントにその名前が残っています。
1// keys come from the server config, never from the browser 2$key = getenv('EXPEDIA_API_KEY'); 3$secret = getenv('EXPEDIA_SHARED_SECRET'); 4$ts = time(); // UNIX seconds, within 5 minutes of Expedia 5 6$signature = hash('sha512', $key . $secret . $ts); 7 8$headers = [ 9 "Authorization: EAN APIKey=$key,Signature=$signature,timestamp=$ts",10 'Accept: application/json',11 'Accept-Encoding: gzip',12 'Customer-Ip: ' . $travellerIp,13];1415// sandbox: https://test.ean.com · live: https://api.ean.com
導入ガイド
Expedia API連携の手順
パートナー申請から最初の本番予約まで。各ステップに担当者を示しています。
- 01
Expedia Groupのパートナーに申請
Expedia Groupのパートナーソリューションから、会社情報、ドメイン、ビジネスモデルを添えて申請します。取引条件は地域と取扱量に応じてExpediaと合意します。
お客様Expedia - 02
API keyと共有シークレットを受け取る
承認されると、Rapidの認証情報とDeveloper Hubのドキュメントへのアクセス権が付与されます。
Expedia - 03
Expediaコネクターを設定
PHPTRAVELSの管理画面で認証情報を入力し、コンテンツを取り込み、マークアップと通貨を設定し、客室とポリシーをホテルページにマッピングします。
PHPTRAVELSお客様 - 04
テスト予約を実施
テスト用エンドポイントで予約し、売り切れ、料金変更、タイムアウト、エラーコードを再現して、すべてのケースに対応できるまで確認します。
PHPTRAVELSお客様 - 05
ローンチ審査に合格
Expediaはローンチ要件に照らしてサイトを審査し、本番前にPCI準拠証明書(AOC)の提出を求めます。
Expediaお客様 - 06
本番環境に切り替えて販売開始
本番用の認証情報を管理画面に入力すると本番予約が始まり、サポート対応のためにサプライヤーログは有効のまま残ります。
お客様PHPTRAVELS
期間と選択肢
Expediaの在庫を販売する4つの方法
Rapidでゼロから構築すれば完全に制御できますが、数か月の開発が必要です。既製の予約エンジン、アフィリエイトのリダイレクト、代理店ポータルには、それぞれ異なるトレードオフがあります。
| 方法 | 立ち上げまでの期間 | 自社サイトで決済 | 保守の担当 | 最適な対象 |
|---|---|---|---|---|
| Rapidで自社開発 | 立ち上げまでの期間数か月:検索、決済、管理画面、認定対応をゼロから構築 | 自社サイトで決済はい | 保守の担当自社の開発者。Expedia APIの変更のたびに対応 | 最適な対象自社の開発チームを持つ大手OTA |
| 既製の予約エンジン(PHPTRAVELS)PHPTRAVELS | 立ち上げまでの期間数週間:ホテルフローは完成済みで、時間は設定とExpediaの審査に充てられます | 自社サイトで決済はい | 保守の担当エンジンのアップデートで対応。完全なソースコードはお客様の手元に | 最適な対象自社ブランドと決済をすばやく持ちたい旅行会社やスタートアップ |
| アフィリエイトのリダイレクト | 立ち上げまでの期間数日(Expediaが申請を承認した場合) | 自社サイトで決済いいえ | 保守の担当予約フローはExpediaが運営 | 最適な対象送客手数料を得るコンテンツサイトやブログ |
| 代理店ポータル(TAAP) | 立ち上げまでの期間開発不要:代理店がExpediaのポータルで予約 | 自社サイトで決済いいえ | 保守の担当Expedia | 最適な対象顧客の旅行を1件ずつ予約する代理店 |
ローンチ要件
本番稼働前にExpediaが確認すること
審査では、APIコールが成功するかだけでなく、サイトの挙動も確認されます。自社の構築で対応済みの項目にチェックを入れてください。PHPTRAVELSの標準ホテルフローはすべての項目に対応しています。
費用
Expedia API連携の費用はいくら?
ExpediaはAPIアクセスの価格表を公開していません。Expediaと合意した条件のもと、予約から収益を得ます。自社で負担するのは、ソフトウェア、ホスティング、コンプライアンスの費用です。
Expediaへのアクセス
Expediaとの合意による:契約、地域、取扱量に応じて、予約ごとの手数料またはマージン。
予約エンジン
PHPTRAVELSはから買い切りライセンスで、完全なソースコード付き。予約ごとの月額料金はありません。
ホスティング
自社サーバーまたは当社のマネージドホスティング。Expediaコネクターはお客様の環境内で動作します。
決済とPCI
決済ゲートウェイと、カード情報に関するPCI準拠。ローンチ時にExpediaから証明を求められます。
ExpediaはRapid APIへのアクセスに公開料金を設けていません。承認されたパートナー契約が必要で、Expediaと合意した条件のもと、手数料またはマージンで収益を得ます。費用は予約ソフトウェア、ホスティング、PCI準拠です。
Expedia Groupのパートナーソリューションからパートナーとして申請します。承認後、RapidのAPI keyと共有シークレットが発行され、ローンチ審査の前にサンドボックスで構築とテストができます。
Rapidは、自社ブランドで旅行商品を販売するためのExpedia GroupのREST/JSON APIです。宿泊、レンタカー、航空券、アクティビティを対象に、検索、料金確認、予約、管理のコールを提供します。
EAN(Expedia Affiliate Network)は、Expediaのパートナープログラムの旧称です。Rapidは現行のAPIで、EANの名称は認証ヘッダーとエンドポイントのアドレスに残っています。
旅行者に自社のウェブサイトやアプリで予約してもらうならRapidを。代理店がExpediaのポータルで顧客の旅行を予約し、手数料を得るならTAAPを使います。
はい。テスト用エンドポイントへのリクエストでは実際の予約やカード決済は発生せず、テストヘッダーで売り切れや料金変更などの結果を再現できます。
ゼロから構築すると数か月かかります。PHPTRAVELSならホテルフローがすでにあるため、時間は設定、コンテンツのマッピング、そしてExpediaが日程を決めるローンチ審査に充てられます。
Expediaのホテルフローは宿泊モジュールに組み込まれています。Rapidのレンタカー、航空券、アクティビティは、レンタカー、航空券、ツアーの各モジュールの上にカスタム連携として追加できます。
