직연동 레거시 채널 오픈
channel_type=cms 채널 중 레거시 직연동 채널(Booking.com, Agoda, Expedia, Trip.com 등)의 오픈 흐름입니다. 플러스 채널과 달리 채널 설정과 매핑 단계가 필요합니다.
매핑 사전 단계 분기
채널 메타의 requires_cms_authorization 값에 따라 매핑 사전 단계가 갈립니다.
requires_cms_authorization | 매핑 사전 단계 | 예시 채널 |
|---|---|---|
false | 채널 측 숙소 정보 조회 — GET /gds/vendor/channels/{channel_id}/properties/{channel_property_id} | 부킹닷컴, 아고다, 익스피디아, 트립닷컴 |
true | OAuth 인증 — GET /gds/vendor/channels/{channel_id}/authorization · 구현은 에어비앤비 인증 구현 참고 | 에어비앤비 |
단계별 흐름
- 채널 탐색 —
GET /gds/vendor/channels - 채널 ON 신청 —
POST .../channels/{channel_id}{ "request_type": "on" } - 매핑 사전 단계 — 위 분기 표에 따라 채널 측 숙소 정보 조회 또는 OAuth 인증
- 채널별 부가옵션 설정 —
PATCH .../channels/{channel_id}/settings(RFC 7396 Merge Patch) - 매핑 —
PATCH .../mappings(숙소 → 객실 → 요금제) - 요금·영업일 전송 —
POST .../ari(type: overnight) - 재고 전송 —
POST .../ari/avails
체크리스트
- 채널 메타에서
requires_cms_authorization값 확인 후 매핑 사전 단계 분기 - 채널 측 숙소 정보로
channel_roomtype_id/channel_rateplan_id후보 확보 - 숙소 → 객실 → 요금제 매핑 완료
- 에어비앤비: 요금제 개념이 없어 요금제 매핑 시
0으로 매핑 - ON 신청 후
processing_mode분기 처리 (auto_approve/external_review) -
POST .../ari요금·영업일 전송 완료 (type: overnight) -
POST .../ari/avails재고 전송 완료 (객실타입 단위 통합 재고 · 최대 730일) - 재고는 룸온리(객실타입) 기준 —
package재고를standalone에 맞추어 전송
에어비앤비 요금제 매핑
에어비앤비는 요금제 개념이 없으므로 요금제 매핑 시 channel_rateplan_id를 0으로 매핑합니다.
채널 오픈 신청 요청 바디
{
"request_type": "on",
"channel_property_id": "CP-001",
"note": "채널 담당자와 협의된 오픈 요청입니다."
}
| 필드 | 설명 |
|---|---|
request_type | on (오픈) / off (중지) |
channel_property_id | 채널 측 숙소 ID (선택). processing_mode=external_review 채널(예: 부킹닷컴) 신청 시 함께 전송 가능. request_type: "on" 에만 허용되며, off에 전송하면 400. 같은 채널에서 다른 숙소가 이미 사용 중인 ID면 409. 제출 시 신청 시점에 숙소 매핑에 반영됩니다. |
note | 신청자 비고 (선택, 최대 16,000자). on·off 모두 허용되며 운영자가 확인할 전달 사항을 기입합니다. |
채널별 인원추가비용 설정
채널별 부가옵션은 채널 설정 엔드포인트(RFC 7396 Merge Patch)로 설정합니다. 인원추가비용은 채널마다 지원 여부와 설정 방법이 다릅니다.
| 채널 | 인원추가비용 | 설정 방법 |
|---|---|---|
| 익스피디아 | 미지원 | — |
| 부킹닷컴 | 미지원 | — |
| 트립닷컴 | 지원 | 숙소 단위 설정의 pricing_model — OBP(Occupancy Based) / Standard(Per Room). OBP인 경우 숙소 settings.extra_adult_price가 요금에 포함됩니다. |
| 아고다 | 지원 | 인원수별 금액 전송(Occupancy Based). 기준 인원 초과분에 대해 인원수에 해당하는 금액을 채널로 전송하며, 숙소 settings.extra_adult_price가 포함됩니다. |
| 에어비앤비 | 지원 | 객실 단위 설정 시 숙소 settings.extra_adult_price가 자동 반영됩니다. |
경고
객실 단위 채널 설정(.../roomtypes/{vendor_roomtype_id}/channels/{channel_id}/settings)은 에어비앤비 전용입니다. 다른 채널에서 호출하면 에러가 발생합니다.
부모 요금제 (channel_parent_rateplan_id)
GET /gds/vendor/channels/{channel_id}/properties/{channel_property_id} 응답의 rateplans object에 부모 요금제 ID가 반환됩니다.
- 해당 요금제는 연결은 가능하나, 별도 요금을 전송해도 채널에 전송되지 않습니다
- 요금은
channel_parent_rateplan_id가 가리키는 부모 요금제 요금을 기준으로 자동 변동합니다 - 지원 채널: 부킹닷컴 · 아고다
채널 오픈 조건 검증
검증 항목 전체는 플러스 채널 오픈 가이드와 동일합니다.
레거시 채널 콘텐츠 검증 완화
레거시 채널(requires_cms_authorization=false)은 채널 오픈 시 숙소 대표 이미지 · 카테고리 · 객실 이미지 검증을 하지 않습니다.
엔드포인트
경로 prefix는 /gds/vendor 입니다.
채널 탐색 · 인증
| 메서드 | 경로 | 설명 |
|---|---|---|
GET | /channels | 전체 채널 메타 |
GET | /properties/{vendor_property_id}/channels | 숙소별 오픈 가능 채널·신청 상태 |
GET | /channels/{channel_id}/properties/{channel_property_id} | 채널 측 숙소 정보 · 응답에 channel_parent_rateplan_id 포함 |
GET | /channels/{channel_id}/authorization | OAuth 인증 URL — requires_cms_authorization=true 채널 전용 (구현 가이드) |
채널 매핑
| 범위 | 메서드 | 경로 |
|---|---|---|
| 숙소 | GET · PATCH | /properties/{vendor_property_id}/channels/{channel_id}/mappings |
| 객실 | GET · PATCH | .../roomtypes/{vendor_roomtype_id}/channels/{channel_id}/mappings |
| 요금제 | GET · PATCH | .../rateplans/{vendor_rateplan_id}/channels/{channel_id}/mappings |
채널 오픈 신청
| 메서드 | 경로 | 설명 |
|---|---|---|
POST | /properties/{vendor_property_id}/channels/{channel_id} | ON·OFF 신청 |
GET | /properties/{vendor_property_id}/channels/{channel_id} | 신청 상태·히스토리 조회 |