エラーコード
エラーは3つの形で返ります。認証エラーは HTTP 401、ビジネスルールのエラーは HTTP 200 内の success: false、予約送信のエラーは BookingPushRS.Error です。このページではすべてのコードを一覧で示します。
認証エラー#
| HTTP | レスポンス | 原因 |
|---|---|---|
| 401 | {"success": false, "error": "Authentication required"} | トークンがない、不明、または Bearer の形式が不正。 |
| 200 | message: partner_is_not_found | ログイン:キーペアが一致しない。 |
| 200 | message: hotel_is_not_found | ログイン:hotelSeoUrl に該当するホテルがない。 |
| 200 | message: hotel_permission_is_not_found | ログイン:パートナーにこのホテルへのアクセス権がない。 |
message コード#
snake_case のテキストコードで、success: false とともに返ります。
| message | エンドポイント | 説明 |
|---|---|---|
hotel_id_is_not_found | ほとんどのエンドポイント | hotelID が送信されていません。 |
start_date_is_not_found / end_date_is_not_found | 空室状況 | 日付パラメーターがありません。 |
online_cupon_is_not_found | クーポン | コードが存在しない、無効、期限切れ、または利用できません。 |
mail_host_is_not_found | メール設定 | オンラインチャネルに SMTP が設定されていません。 |
hotel_company_info_could_not_found | バーチャル POS 情報 | ホテルに決済プロバイダーが設定されていません。 |
bank_info_is_not_found | 決済(タイプ 3) | オンライン販売用に有効化された銀行口座がありません。 |
required_input_info_not_submitted | 決済(タイプ 10) | 必須フィールドが不足しています。errors[] に不足しているフィールドが示されます。 |
country_info_sent_incorrectly | 決済(タイプ 10) | countryID が国一覧にありません。 |
there_is_missing_info_in_the_shopping_cart | 決済(タイプ 10) | カート項目に id、name、piece、price のいずれかがありません。errors[] で該当項目が示されます。 |
客室一覧のエラーコード#
客室一覧(POST /external/online/roomType)は、数値の errorCode と人が読める errorMessage を返します。メッセージは language パラメーターに応じて翻訳されるため、プログラムでは errorCode で判定してください。
| errorCode | 意味 | 対処 |
|---|---|---|
10001 | ホテルが見つからない | hotelID を確認してください。 |
10002 | パラメーター不足(hotelID、startDate、endDate、adultCount) | 必須フィールドを送信してください。 |
10003 | ホテルのオンライン販売が停止中 | ホテル側で管理パネルからオンラインチャネルを有効にする必要があります。 |
10004 | チャネルに公開された客室タイプがない | ホテル側で客室タイプをオンライン販売に公開する必要があります。 |
10022 | パラメーターが不正 | チェックインは本日以降、チェックアウトはチェックインより後、最大30泊、大人1–40名、子ども0–10名。 |
20001 | 大人の空室が不足 | 別の日程や人数を提案してください。 |
20002 | 子どもの空室が不足 | 子どもを受け入れられる客室が残っていません。 |
20003 / 20004 | 大人と子どもの空室が不足 | 全体の定員がリクエストを満たせません。 |
空室はあるものの特定の客室タイプを販売できない場合、その roomCount は 0 になり、理由は roomRestrictionMessage に入ります:closed_to_checkin、closed_to_checkout、passive_sales、minimum_stay、maximum_stay、closed_to_arrival、price_not_found。
予約送信のエラー#
エラー時の BookingPushRS には、Success: true の代わりに Error フィールドが入ります。
{
"BookingPushRS": {
"Error": "Could not register.",
"BookingConfirmNumbers": [
{
"confirmTime": 1755500000,
"bookingID": 0,
"bookingType": "Book",
"HMS_ID": null
}
]
}
}| Error | コード | 原因 |
|---|---|---|
| No available data could be found. | 01 | ボディが空、または JSON を解析できない。Bookings[0].hotelID がない。 |
| Hotel registration not found on HMS. | 02 | ホテルがオンラインチャネルに接続されていない、またはチャネルが無効。 |
| Could not register. | — | 保存中のエラー(客室タイプ/食事条件の ID が不正、日付に矛盾がある)。 |
| Failed to parse information. | — | 構造に必要なフィールドが欠けている。 |
リトライの指針#
- 401:一度だけ再ログインしてリクエストをリトライします。
- 500 とネットワークエラー:1秒、2秒、4秒の間隔で最大3回まで試行します。予約送信をリトライするときは同じ
IDを使ってください。既存のコードでBookを送信すると、重複予約は作成されずにレコードが更新されます。 - success: false:リトライしないでください。パラメーターを修正するか、ゲストに代替案を提示してください。
- サポートへのお問い合わせには、リクエストの全文(シークレットとカード情報はマスク)、レスポンス、発生日時を含めてください。