払い戻し額を見積もる際には、常に cancelPolicyInfoList に設定されているデータと照らし合わせてチェックする必要があります。

ホテルのキャンセル ポリシー枠内でお客様がキャンセルする場合、まずキャンセル料を計算し、それを ChargeableRateInfo (現地通貨料金) の total 属性から減算する必要があります。

ポリシー枠外でお客様がキャンセルする場合は、払い戻し見積り額として、単に ChargeableRateInfo (現地通貨料金) の total 属性の値を戻します。

見積もり額をお客様に提示する際には、それが見積もり額であり、明示または黙示を問わず、何の保証も伴わないことをはっきりと述べるメッセージを使用してください。API において、最安値保証調整や初期予約後に適用された割引などを考慮に入れることはできません。

正確な払い戻し額がわかるのは、EAN カスタマー サポート エージェントだけです。正確な額については、地元のサポート受付に電話してください。

キャンセル料見積もりの計算と適用

この項では、cancelPolicyInfoList に含まれる情報を参照します。
あらかじめこの配列の構造によく習熟してから、
払戻見積機能の実装を行う必要があります

キャンセルに対してキャンセル料が適用されるかどうかを判別するには、まず、2 つ目の cancelPolicyInfo ノードの中の startWindowHours 要素の値を確認します。

キャンセル リクエストの時刻がポリシーの枠内なら、キャンセル料を計算して、見積もり額からそれを減算する必要があります。ポリシーの枠外でのキャンセルの場合は、単に元の料金の合計値を見積もりとして戻します。

キャンセル料金を計算するには、1 つ目の cancelPolicyInfo ノードで戻されるキャンセル料の詳細要素の値を参照してください。

###例 :

<CancelPolicyInfoList>
 <CancelPolicyInfo>
   <versionId>206071749</versionId>
   <cancelTime>19:00:00</cancelTime>
   <startWindowHours>0</startWindowHours>
   <amount>50</amount>
   <currencyCode>USD</currencyCode>

(GMT-06:00) Central Time (US & Canada)


208751445
19:00:00
48
0
USD

(GMT-06:00) Central Time (US & Canada)

2 つ目のノードの startWindowHours は、値 48 で返ります。お客様がキャンセルを行ったのは、滞在開始の 46 時間前です。見積もり額を正しく計算するには、予約時の料金合計から $50 USD を減算する必要があります。

各 cancelPolicyInfo ノードには、amount、percent、または nightCount が個別に含まれるか、amount と nightCount または amount と percent の組み合わせが含まれる可能性があります。

単一のノード内でのその他の組み合わせはどれも無効であり、エラーとして処理しなければなりません。空または 0 を返す要素は、ポリシーの計算に影響がないため、無視します。

ポリシーの枠内と枠外の両方でキャンセル料が適用される場合がある (1 つ目のノードでも 2 つ目のノードでも正の値) ことに注意してください。それは一般的ではありませんが、前述のようにキャンセル料の値の任意の組み合わせが有効である限り、ポリシー全体も有効です。

###キャンセル料の計算と例

これらのキャンセル料の例は、API で予期されるあらゆる有効な組み合わせを網羅しています。ほとんどの場合、キャンセル料を計算する必要があるのは、ポリシー枠内で行われるキャンセルについてのみです。ただし、場合によっては、枠外のキャンセルについてもキャンセル料金の計算が必要になることがあります。このページの 最後の例 をご覧ください。

個々の 1 泊料金について税金を計算する際には、total ではなく nightlyRateTotal (1 泊あたり料金合計) を使用して税率を計算します。これは見積もり額算出の場合のみです。EAN による払い戻しの税計算には適用されません。



宿泊キャンセル料を算出するために差し引かれる税額は、
1 泊あたり
であり、合計値ではないことに注意してください。

以下の例の率および合計値を参照してください。

<ChargeableRateInfo {truncated} total="983.34" nightlyRateTotal="816.05">
    <NightlyRatesPerRoom size="2">
        <NightlyRate baseRate="400.58" rate="400.58" promo="false"></NightlyRate>
        <NightlyRate baseRate="415.47" rate="415.47" promo="false"></NightlyRate>
    </NightlyRatesPerRoom>
<Surcharges size="1">
    <Surcharge type="TaxAndServiceFee" amount="167.29"></Surcharge>
</Surcharges>

キャンセル料の amount 値が 50 である払い戻しの計算

  • total - amount
  • 983.34 - 50= 933.34 払い戻し見積もり額

キャンセル料の percent 値が 25 である払い戻しの計算

  • total - (total の %)
  • 983.34 - (983.34 の 25%) = 737.50 払い戻し見積もり額

キャンセル料の nightCount 値が 1 である払い戻しの計算

  • total - (1 泊目の宿泊料金の値 + 1 泊目の税)
  • 983.34 - (400.58 + 82.12)= 500.64 払い戻し見積もり額

キャンセル料の nightCount 値が 2 である払い戻しの計算

  • total - ([1 泊目の宿泊料金の値 + 1 泊目の税] + [2 泊目の宿泊料金の値 + 2 泊目の税])
  • 983.34 - ([400.58 + 82.12] + [415.47 + 85.17]) = 0.00 (キャンセル料適用後の払い戻しなし)

キャンセル料の amount 値が 20、percent 値が 10 である払い戻しの計算

  • total - amount - (total の %)
  • 983.34 - 20 - (983.34 の 10%)= 865.01 払い戻し見積もり額

キャンセル料の amount 値が 30、nightCount 値が 1 である払い戻しの計算

  • total - (amount + [1 泊目の宿泊料金の値 + 1 泊目の税])
  • 983.34 - (30 + [400.58 + 82.12]) = 470.64 払い戻し見積もり額


ポリシー枠内と枠外のキャンセル料

以下に示すキャンセル ポリシーの例は、ポリシー枠内と枠外の両方のキャンセルについて、キャンセル料を計算したものです。
これらの計算例では、前の例と同じ率および同じ合計値を使用しています。

<CancelPolicyInfoList> 
 <CancelPolicyInfo>
  <versionId>208198632</versionId>
<cancelTime>23:59:00</cancelTime>
<startWindowHours>0</startWindowHours>
<nightCount>0</nightCount>
<percent>100</percent>
<currencyCode>USD</currencyCode>
<timeZoneDescription>(GMT+08:00) Kuala Lumpur, Singapore </timeZoneDescription> </CancelPolicyInfo>

<CancelPolicyInfo>
<versionId>208198631</versionId>
<cancelTime>23:59:00</cancelTime>
<startWindowHours>168</startWindowHours>
<nightCount>1</nightCount>
<currencyCode>USD</currencyCode>
<timeZoneDescription>(GMT+08:00) Kuala Lumpur, Singapore</timeZoneDescription>
</CancelPolicyInfo>
</CancelPolicyInfoList>

ポリシー枠内の払い戻しの計算 (お客様がチェックインの 168 時間前以降にキャンセルする場合):


  • total - (% of total)

  • 983.34 - (100% of 983.34)= 0 見積り
    払い戻し額

ポリシー枠外の払い戻しの計算 (お客様が 168 時間のポリシー枠の開始前の任意の時点でキャンセルする場合):


  • total - (first nightly rate value + first night's tax)

  • 983.34 - (400.58 + 82.12) = 500.64

単一の部屋の予約をキャンセルします。

複数の部屋の予約をキャンセルするには、旅程上の各部屋をそれぞれキャンセルする必要があります。

施設のキャンセル ポリシーの解読またはメッセージ送付についてサポートが必要な場合は、cancelPolicyInfoList 配列のドキュメントを参照してください。
静的テストの予約をキャンセルする場合、常にエラーが発生します。これは正常なことです。予約のテストでは支払い、宿泊施設、または在庫のシステムを使用しないためです。
キャンセルのテストを確認するには、テストを実行した後に自動送信されるキャンセル後の電子メールを探すか、フォローアップの旅程リクエストを使用します。

実際の予約のキャンセル時にエラーが発生した場合は、キャンセル時のエラー ページを参照してください。


リクエストのフォーマット
XML / REST URL: GET http://api.ean.com/ean-services/rs/hotel/v3/cancel?
XML 親エレメント : <HotelRoomCancellationRequest>



リクエスト パラメータ

基本パラメータ
名前 必須 説明
itineraryId long はい 予約時に指定された旅程 ID。
email string はい 予約時に指定された電子メール アドレス。
confirmationNumber string はい キャンセル対象の部屋の確認番号。

複数の部屋を予約している場合は、1 回のリクエストで 1 度に 1 部屋のみキャンセルする必要があります。1 回のリクエストで複数の確認番号を送信しても正しく動作しません。
reason string いいえ キャンセルの理由コード (該当する場合)。これは必須項目ではありません。通常、キャンセル処理には影響しません。

値 :
HOC: 施設からキャンセルを依頼されたため
COP :プラン変更
: FBP: さらによい価格を見つけたため
FBH:さらによい施設を見つけたため
CNL :予定をキャンセルすることにしたため
NSY :ここでは言及しない
OTH :その他


レスポンス コンテンツ
親エレメント : HotelRoomCancellationResponse

名前 説明
cancellationNumber string キャンセルの参照番号 (正常にキャンセルされた場合)。今後問い合わせが必要になった場合にそなえて、お客様はこの番号に加えて旅程番号と確認番号を保管しておく必要があります。

XML リクエストの例 :

http://api.ean.com/ean-services/rs/hotel/v3/cancel?
minorRev=[current minorRev #]
&cid=55505
&apiKey=[xxx-yourOwnKey-xxx]
&customerUserAgent=[xxx]
&customerIpAddress=[xxx]
&customerSessionId=[xxx]
&locale=en_US
&currencyCode=USD
&xml=
<HotelRoomCancellationRequest>
	<itineraryId>xxxxxxx</itineraryId>
	<email>email@domain.com</email>
	<reason>COP</reason>
	<confirmationNumber>xxxxxxxx</confirmationNumber>
</HotelRoomCancellationRequest>

XML レスポンスの例 :

<ns2:HotelRoomCancellationResponse> 
   <customerSessionId>XXXX</customerSessionId>
   <cancellationNumber>XXXXXX</cancellationNumber>
</ns2:HotelRoomCancellationResponse>

REST リクエストの例 :

http://api.ean.com/ean-services/rs/hotel/v3/cancel?
minorRev=[current minorRev #]
&cid=55505
&apiKey=[xxx-yourOwnKey-xxx]
&customerUserAgent=[xxx]
&customerIpAddress=[xxx]
&customerSessionId=[xxx]
&locale=en_US
&currencyCode=USD
&itineraryId=xxxxxxx
&email=email@domain.com
&reason=COP
&confirmationNumber=xxxxxxxx 

JSON レスポンスの例 :

{"HotelRoomCancellationResponse":{"customerSessionId":"XXXX","cancellationNumber":"XXXXX"}}