B2C 단독 출시 요구 사항
이 출시 요구 사항은 B2C(Business-to-consumer) 통합 모델을 사용하여 최종 고객과 직접 상호작용하는 모든 EPS 파트너에 적용됩니다.
개요
비즈니스의 통합 환경을 효과적으로 지원할 수 있도록 요구 사항은 다음 두 섹션으로 분류됩니다.
- B2C 단독 요구 사항: 이 예약 흐름에만 적용됩니다. 앞서 통합한 다른 요금 유형/예약 흐름과는 차이가 있을 수 있으므로, 이 요구 사항을 자세히 읽어보시기 바랍니다.
- 공통 요구 사항: 이 요구 사항은 모든 예약 흐름에 공통으로 적용됩니다. 모든 흐름에서 이 요구 사항을 충족하는지 확인해 주세요.
체크리스트
이 링크의 체크리스트를 참조하여 개발에 도움을 받거나 요구 사항에 대한 피드백을 제공할 수 있습니다. 사이트 이용 후기 스크린샷을 제공하려는 경우 체크리스트에 스크린샷과 해당 로그를 추가해 주세요. 그러면 심사를 완료하는 데 도움이 됩니다.
B2C 단독 출시 요구 사항
예약 페이지
BP5: 요금은 총 요금과 세금 및 수수료 내역을 포함하여 표시
A) 총 요금
총 예약 요금은 결제 페이지에서 여행객을 대상으로 표시되어야 합니다. 총 요금은 API 응답과 일치해야 하며 반올림하거나 통화를 전환해서는 안 됩니다. 최종 내역에는 1박 요금(총 요금 또는 1박당 요금), 추가 1박 요금, 모든 숙박 이용료 및 세금, 청구 가능한 총액이 포함되어야 하며, 지금 지불할 금액과 나중에 숙박 시설에서 지불할 금액을 명시해야 합니다.
B) 세금 내역
tax_and_service_fee
에 반환되는 값에는 더 이상 세무 관할권에서 규정하지 않은 요금이 포함되지 않으며, property_fee
에 반환되는 값에는 이제 정부에서 규정하지 않은 요금과 숙박 시설에서 규정하지 않은 요금이 포함됩니다. property_fee에 반환되는 값에는 숙박 시설이 부과하는 요금 이외의 요금이 포함되며, 이 값이 '숙박 시설 수수료'로 표시되어서는 안 됩니다. 결제 페이지 요금 표시에는 '세금 및 수수료'라는 제목의 한 줄에 tax_and_service_fee와 property_fee의 합계가 표시되어야 합니다. 다른 페이지의 모든 세금 참조에 대해 tax_and_service_fee line
을 별도로 표시해야 합니다. 요금 내역에 '세금 및 수수료' 총액을 나타낼 때 아래의 텍스트를 분명하게 표시해야 할 법적 의무가 있습니다.
'세금 및 수수료' 설명을 통해 아래의 정보를 전달해야 합니다. 팝업, 일반 텍스트, 모달 또는 다른 구현을 통해 다음과 같이 표시할 수 있습니다.
“이 요금에는 여행 서비스 제공자(예: 호텔, 렌터카 회사) 및/또는 서비스 공급업체에서 예약에 대해 세무 당국에 납부하는 세금에 대한 예상 금액이 포함됩니다(판매세, 사용세, 부가가치세 등 포함). 또한, 이 금액에는 서비스 공급업체에 부과되는 리조트 요금, 청소비 및 기타 수수료 및/또는 서비스 공급업체와 호텔 공급업체 및/또는 고객이 예약한 사이트에서 서비스에 대한 보상의 일부로 보유하는 수수료가 포함됩니다. 이 금액은 위치, 금액, 예약 방식 등의 요소에 따라 달라집니다. 자세한 정보는 이용약관을 참조해 주시기 바랍니다.” - 번역본은 여기에서 확인하실 수 있습니다.
C) 파트너 서비스 및 예약 요금
Expedia Group이 예약 요금을 허용하는 면제를 제공하는 경우 파트너 서비스 또는 예약 요금은 명확하게 구분되어야 합니다. 예약에 파트너 서비스 요금이 추가될 경우, 고객에게 EPS가 아니라 파트너가 (숙박 제공에 따른 추가적 요금이 아닌) 별도의 서비스에 대해 부과한 요금임을 고객에게 명확히 안내해야 합니다. 이 요금은 기존 '세금 및 수수료' 항목에 포함되지 않을 수 있습니다. 파트너는 자신이 부과하는 요금에 '수수료'라는 표현을 사용해서는 안 됩니다. 대신 '제휴사 예약 요금' 또는 '제휴사 서비스 요금'을 사용할 수 있습니다.
확인 페이지
CP1: 요금은 총 요금과 세금 및 수수료 내역을 포함하여 표시(내역이 제공될 경우)
A) 총 요금
총 예약 요금은 결제 페이지에서 여행객을 대상으로 표시되어야 합니다. 총 요금은 API 응답과 일치해야 하며 반올림하거나 통화를 전환해서는 안 됩니다. 최종 내역에는 1박 요금(총 요금 또는 1박당 요금), 추가 1박 요금, 모든 숙박 이용료 및 세금, 청구 가능한 총액이 포함되어야 하며, 지금 지불할 금액과 나중에 숙박 시설에서 지불할 금액을 명시해야 합니다.
B) 세금 내역
tax_and_service_fee
에 반환되는 값에는 더 이상 세무 관할권에서 규정하지 않은 요금이 포함되지 않으며, property_fee
에 반환되는 값에는 이제 정부에서 규정하지 않은 요금과 숙박 시설에서 규정하지 않은 요금이 포함됩니다. property_fee에 반환되는 값에는 숙박 시설이 부과하는 요금 이외의 요금이 포함되며, 이 값이 '숙박 시설 수수료'로 표시되어서는 안 됩니다. 결제 페이지 요금 표시에는 '세금 및 수수료'라는 제목의 한 줄에 tax_and_service_fee와 property_fee의 합계가 표시되어야 합니다. 다른 페이지의 모든 세금 참조에 대해 tax_and_service_fee line
을 별도로 표시해야 합니다. 요금 내역에 '세금 및 수수료' 총액을 나타낼 때 아래의 텍스트를 분명하게 표시해야 할 법적 의무가 있습니다.
'세금 및 수수료' 설명을 통해 아래의 정보를 전달해야 합니다. 팝업, 일반 텍스트, 모달 또는 다른 구현을 통해 다음과 같이 표시할 수 있습니다.
“이 요금에는 여행 서비스 제공자(예: 호텔, 렌터카 회사) 및/또는 서비스 공급업체에서 예약에 대해 세무 당국에 납부하는 세금에 대한 예상 금액이 포함됩니다(판매세, 사용세, 부가가치세 등 포함). 또한, 이 금액에는 서비스 공급업체에 부과되는 리조트 요금, 청소비 및 기타 수수료 및/또는 서비스 공급업체와 호텔 공급업체 및/또는 고객이 예약한 사이트에서 서비스에 대한 보상의 일부로 보유하는 수수료가 포함됩니다. 이 금액은 위치, 금액, 예약 방식 등의 요소에 따라 달라집니다. 자세한 정보는 이용약관을 참조해 주시기 바랍니다.” - 번역본은 여기에서 확인하실 수 있습니다.
C) 파트너 서비스 및 예약 요금
Expedia Group이 예약 요금을 허용하는 면제를 제공하는 경우 파트너 서비스 또는 예약 요금은 명확하게 구분되어야 합니다. 예약에 파트너 서비스 요금이 추가될 경우, 고객에게 EPS가 아니라 파트너가 (숙박 제공에 따른 추가적 요금이 아닌) 별도의 서비스에 대해 부과한 요금임을 고객에게 명확히 안내해야 합니다. 이 요금은 기존 '세금 및 수수료' 항목에 포함되지 않을 수 있습니다. 파트너는 자신이 부과하는 요금에 '수수료'라는 표현을 사용해서는 안 됩니다. 대신 '제휴사 예약 요금' 또는 '제휴사 서비스 요금'을 사용할 수 있습니다.
확인 이메일
ER6: 요금은 총 요금과 세금 및 수수료 내역을 포함하여 표시
A) 총 요금
총 예약 요금은 결제 페이지에서 여행객을 대상으로 표시되어야 합니다. 총 요금은 API 응답과 일치해야 하며 반올림하거나 통화를 전환해서는 안 됩니다. 최종 내역에는 1박 요금(총 요금 또는 1박당 요금), 추가 1박 요금, 모든 숙박 이용료 및 세금, 청구 가능한 총액이 포함되어야 하며, 지금 지불할 금액과 나중에 숙박 시설에서 지불할 금액을 명시해야 합니다.
B) 세금 내역
tax_and_service_fee
에 반환되는 값에는 더 이상 세무 관할권에서 규정하지 않은 요금이 포함되지 않으며, property_fee
에 반환되는 값에는 이제 정부에서 규정하지 않은 요금과 숙박 시설에서 규정하지 않은 요금이 포함됩니다. property_fee에 반환되는 값에는 숙박 시설이 부과하는 요금 이외의 요금이 포함되며, 이 값이 '숙박 시설 수수료'로 표시되어서는 안 됩니다. 결제 페이지 요금 표시에는 '세금 및 수수료'라는 제목의 한 줄에 tax_and_service_fee와 property_fee의 합계가 표시되어야 합니다. 다른 페이지의 모든 세금 참조에 대해 tax_and_service_fee line
을 별도로 표시해야 합니다. 요금 내역에 '세금 및 수수료' 총액을 나타낼 때 아래의 텍스트를 분명하게 표시해야 할 법적 의무가 있습니다.
'세금 및 수수료' 설명을 통해 아래의 정보를 전달해야 합니다. 팝업, 일반 텍스트, 모달 또는 다른 구현을 통해 다음과 같이 표시할 수 있습니다.
“이 요금에는 여행 서비스 제공자(예: 호텔, 렌터카 회사) 및/또는 서비스 공급업체에서 예약에 대해 세무 당국에 납부하는 세금에 대한 예상 금액이 포함됩니다(판매세, 사용세, 부가가치세 등 포함). 또한, 이 금액에는 서비스 공급업체에 부과되는 리조트 요금, 청소비 및 기타 수수료 및/또는 서비스 공급업체와 호텔 공급업체 및/또는 고객이 예약한 사이트에서 서비스에 대한 보상의 일부로 보유하는 수수료가 포함됩니다. 이 금액은 위치, 금액, 예약 방식 등의 요소에 따라 달라집니다. 자세한 정보는 이용약관을 참조해 주시기 바랍니다.” - 번역본은 여기에서 확인하실 수 있습니다.
C) 파트너 서비스 및 예약 요금
Expedia Group이 예약 요금을 허용하는 면제를 제공하는 경우 파트너 서비스 또는 예약 요금은 명확하게 구분되어야 합니다. 예약에 파트너 서비스 요금이 추가될 경우, 고객에게 EPS가 아니라 파트너가 (숙박 제공에 따른 추가적 요금이 아닌) 별도의 서비스에 대해 부과한 요금임을 고객에게 명확히 안내해야 합니다. 이 요금은 기존 '세금 및 수수료' 항목에 포함되지 않을 수 있습니다. 파트너는 자신이 부과하는 요금에 '수수료'라는 표현을 사용해서는 안 됩니다. 대신 '제휴사 예약 요금' 또는 '제휴사 서비스 요금'을 사용할 수 있습니다.
공통 요구 사항
아래의 출시 요구 사항은 모든 예약 프로세스에서 모든 EPS 파트너에게 적용됩니다. 요금 표시에 대한 자세한 설명을 포함하여 각 요금 유형과 관련된 추가 요구 사항은 각 요금 요구 사항 목록에 나와 있습니다.
일반 요구 사항
GR1: Expedia Group 또는 EPS 이름과 로고 사용 금지
어떠한 목적으로도 고객에게 공개하는 파트너 사이트에서 Expedia Group/EPS의 이름이나 로고를 사용해서는 안 됩니다. 예외(예: 이용 후기)는 사전에 EPS에 승인을 받아야 하고 서면으로 명시적 동의를 받아야 합니다.
예시:
GR2: EPS 이용약관 URL 링크 표시
사이트의 이용약관 본문에 EPS 이용약관 링크를 제공하거나 예약 페이지에서 바로 이용약관 링크를 제공합니다. 이 이용약관에서는 예약과 관련된 정책을 자세히 설명합니다. '공급업체 이용약관'이라는 링크를 사용하여 찾기 쉬운 위치에 다음의 링크를 배치합니다.
영어 버전은 여기에서 확인하실 수 있습니다.
다른 버전은 여기에 나와 있습니다.
예시:
GR4: EPS MOR - 신용카드 규정과 관련한 올바른 사용 및 표시
최종 고객의 카드 소유자 데이터를 획득, 사용, 전송, 저장하거나 처리할 경우 PCI 보안 표준 위원회에서 발행한 PCI DSS를 준수해야 합니다. 공식 PCI 보안 표준 사이트에서 규정 전문을 확인하실 수 있습니다.
GR5: EPS MOR 또는 Property Collect - 해당 파트너에 대한 PCI 준수 증거 제공
EPS 또는 숙박 시설이 MOR(Merchant of Record)인 경우, 규정 준수 증거(AOC)를 PCI를 준수한 증거로 제출해야 합니다. EPS 파트너는 PCI 보안 표준 기관의 자가 평가 질문지 파일 'SAQ D - Merchants'를 사용하여 올바른 AOC를 생성해야 합니다.
공식 PCI 보안 표준 문서 라이브러리에서 SAQ 지침 및 가이드를 검토하고 'SAQ D - Merchants' 파일을 확인할 수 있으며, SAQ D - Merchants 파일을 PDF 또는 Word 문서로 다운로드할 수도 있습니다.
검색 페이지
SP1: 제휴사가 어린이 동반 예약을 허용하는 경우 적절한 메시지와 어린이 나이 입력 기능 구현
통합에서 어린이 여행객을 허용하는 경우 각 어린이 여행객의 연령을 지정할 수 있는 기능을 지원해야 합니다. 이 정보는 투숙 인원 요소를 통해 제공됩니다(아래 코드 샘플 참조).
고객이 어린이 여행객을 명시하는 경우 API 응답에는 나이 제한 및/또는 추가 투숙 인원 또는 유아용 침대 요금이 포함될 수 있으며, 이는 예약 유효성 또는 예약 요금에 영향을 줄 수 있습니다.
모든 호텔은 어린이로 분류하는 연령 범주를 구성합니다. 일반적으로 만 17세 이하의 개인을 어린이로 간주합니다. 일부 숙박 시설은 만 18세 미만을 허용하지 않습니다.
API 요청 예:
https://api.ean.com/v3/properties/availability?checkin=2020-09-11
&checkout=2020-09-14
¤cy=USD&language=en-US& occupancy=2-9,4 &property_id=XXXX
&country_code=XX&sales_channel=XXXX
&sales_environment=XXXX&filter=XXXX&rate_plan_count=XXXX
&rate_option=XXXX&billing_terms=XXXX&payment_terms=XXXX
&partner_point_of_sale=XXXX&platform_name=XXXX
API 응답 예:
"occupancies": {
"2-9,4" : {
"nightly": [
[
예: 객실 1개, 성인 2명, 어린이 2명(9세 및 4세)
호텔/객실 예약 가능 여부
AP1: 각 객실에 대한 침대 유형 설명 제공
조회 응답에서 bed_groups
배열을 단일 값 또는 복수의 옵션으로 반환할 수 있습니다. 고객의 침대 선택 사항을 설명하기 위해 구성 배열에 포함된 값을 표시합니다.
bed_groups
배열이 복수의 옵션을 반환하는 경우 고객이 각 침대 유형을 선택할 수 있도록 조회 응답에서 제공된 price_check
링크를 표시합니다.
요청 시에만 동일한 객실의 여러 침대 유형 중 하나를 선택할 수 있으며, 예약 가능 객실이 없는 경우 호텔에서 요청을 접수하지 않을 수 있다는 메시지를 여행객에게 표시해야 합니다.
객실 이름은 조회 응답의 객실 배열에 room_name
으로 반환됩니다.
API 응답 예:
"property_id": "11775754",
"rooms": [
{
"id": "230434524",
"room_name": "Superior double room" ,
"rates": [
{
...
"bed_groups": {
"133243": {
"id": "133243",
"description": "Double bed" ,
"links": {...},
"configuration": [...]
},
"133242": {
"id": "133242",
"description": "2 single beds" ,
"links": {...},
"configuration": [...]
}
},
AP2: 환불 불가 플래그를 명확하게 표시
환불 불가 요금은 예약 가능 여부 페이지에 명확하게 표시되어야 합니다. refundable=false
및 취소 정책이 반환되지 않는 경우 객실은 환불 불가로 표시되어야 합니다.
API 응답 예:
"property_id": "XXXX",
"rooms":
"id": "XXXX",
"room_name": "Fairmont King",
"rates":
"id": "XXXX",
"status": "available",
"available_rooms": 4999,
"refundable": false ,
"deposit_required": false,
"merchant_of_record": "expedia",
환불 불가 플래그 UI 예:
AP3: 체크인 및 특별 체크인 지침 표시
checkin
, checkout
, fees
, policies
개체의 콘텐츠는 각 객실에 대해 숙박 시설 콘텐츠 정의에 반환된 대로 표시해야 합니다. 이러한 정보는 고객이 체크인 시 잠재적으로 발생 가능한 수수료 또는 특별 이용 방법에 대해 분명히 알 수 있도록 예약 가능 여부 페이지에 표시되어야 합니다.
special_instructions
필드에는 checkin
개체의 instructions
필드에 포함되지 않은 체크인 필수 정보(예: 숙박 시설에 예상 도착 시간 고지, 고객 건물과 다른 위치에서 체크인, 이메일을 통해 숙박 시설에서 고지하는 특별 체크인 지침 알림 요건)가 포함될 수 있습니다.
동일한 영역에서 instructions
및 special_instructions
를 여행객에게 표시해야 합니다.
API 응답 예:
"11775754": {
"property_id": "11775754",
"checkin": {
"begin_time": "16:00 PM",
"end_time": "4:00 AM",
"instructions": "Minimum age to check in is 18 years old.
Extra-person charges may apply and vary depending on property policy.
Government-issued photo identification and a credit card may be required at
check-in for incidental charges.
Special requests are subject to availability upon check-in and
may incur additional charges. Special requests cannot be guaranteed.",
"special_instructions": "Front desk staff will greet guests on arrival. For more details,
please contact the property using the information on the booking confirmation.",
"min_age": 18
"checkout": {
"time": "11:00 AM"
"fees": {
"mandatory": "You'll be asked to pay the following charges at the property:
Deposit: USD 50 per day
Resort fee: USD 28.25 per accommodation, per night The resort fee includes: Pool access, Fitness center access, Fitness/yoga classes, Airport shuttle, Phone calls, In-room safe, Self parking, Valet parking, Parking. We have included all charges provided to us by the property.
However, charges can vary, for example, based on length of stay or the room you book.",
"optional": "The following fees and deposits are charged by the property at time of service,
check-in, or check-out. Breakfast fee: between USD 6 and USD 25 per person
(approximately), Late check-out is available for a fee (subject to availability)Rollaway bed fee: USD 20.0 per night.
The above list may not be comprehensive. Fees and deposits may not include tax and are subject to change."
"policies": {
"know_before_you_go": "Up to 2 children 12 years old and younger stay free when
occupying the parent or guardian's room, using existing bedding.
The property has connecting/adjoining rooms, which are subject to availability
and can be requested by contacting the property using the number on the booking
confirmation."
추출된 숙박 시설 콘텐츠 예:
예약 페이지
BP1: 개인정보에 대한 SSL 암호화 지원
개인정보를 전송하거나 송신할 때 SSL 암호화를 사용하여 클라이언트 브라우저/앱과 사이트 간의 연결 및 종속 시스템과의 네트워크 통신을 보호해야 합니다. 개인정보에는 고객 이름, 전화번호 또는 이메일, 결제 카드 세부 정보, 예약/일정 영수증 및 확인 페이지가 포함됩니다. 보안 상태가 아닌 경우 연결을 중지하거나 리디렉션합니다.
BP2: 체크인 및 특별 체크인 지침 표시
checkin
, checkout
, fees
, policies
개체의 콘텐츠는 각 객실에 대해 숙박 시설 콘텐츠 정의에 반환된 대로 표시해야 합니다. 고객이 예약을 확정하기 전에 체크인 또는 특별 이용 방법에서 잠재적 수수료를 확인할 수 있도록 이 정보를 표시해야 합니다.
special_instructions
필드에는 checkin
개체의 instructions
필드에 포함되지 않은 체크인 필수 정보(예: 숙박 시설에 예상 도착 시간 고지, 고객 건물과 다른 위치에서 체크인, 이메일을 통해 숙박 시설에서 고지하는 특별 체크인 지침 알림 요건)가 포함될 수 있습니다.
동일한 영역에서 instructions
및 special_instructions
를 여행객에게 표시해야 합니다.
BP3: 취소 정책 및 환불 불가 태그를 명확히 표시
최종 예약 페이지에서 고객의 구매 확인을 허용하기 전에 선택한 객실에 대한 취소 정책/환불 불가 태그를 제공해야 합니다. 각 요금에 대한 취소 정책은 Rapid 예약 가능 여부 조회 API의 cancel_penalties
개체 내에서 제공됩니다.
환불 가능 요금의 경우 응답에 일련의 취소 정책 세부 정보가 포함됩니다. 세부 정보에는 지정된 위약금의 시작일과 종료일, 위약금 유형 및 금액, 적용되는 예외 예약 날짜가 포함됩니다. 위약금 유형에는 고정 금액, 숙박 일수 기준 금액, 총 비용에 대한 백분율이 있습니다.
상황:
refundable=true
:- 전액 환불 가능한 요금입니다.
refundable=true
+cancel_penalties
:- 취소 기간에 환불 가능한 요금입니다.
- 가장 빠른
cancel_penalties.[].start
는 무료 취소 기한이며, 미래의 일정인 경우 가장 늦은 날짜인cancel_penalties.[].end
후에는 요금이 100% 환불되지 않습니다.
refundable=false
:- 환불 불가 요금입니다.
- 취소 위약금 발생 기간이 반환되지 않습니다.
refundable=false
+cancel_penalties
:- 부분 환불이 가능한 요금입니다.
- 예약이 생성되면
cancel_penalties
는 환불이 불가한 숙박 날짜 범위를 보여주는nonrefundable_date_ranges
와 함께 표시되어야 합니다.
취소 정책 구성 방법에 대한 보다 자세한 정보는 여기에서 확인하실 수 있습니다.
참조:
refundable=false
: - 환불 불가 금액은 예약이 생성되는 즉시 발생하며,cancel_penalties
및nonrefundable_date_ranges
에서 추가 정보가 제공됩니다.nonrefundable_date_ranges
: - 이 범위에 해당하는 숙박 날짜의 경우 예약이 생성되면 환불이 불가합니다.cancel_penalties
: -nonrefundable_date_ranges
에 해당하지 않는 숙박 날짜에 적용됩니다.cancel_penalties
항목이 비어 있거나 반환되지 않은 경우 해당 요금은 전액 환불 불가 요금입니다.cancel_penalties
기간에 취소하는 경우 위약금이 발생합니다.- 가장 빠른
cancel_penalties.[].start
는 무료 취소 기한이며, 미래의 일정인 경우 가장 늦은 날짜인cancel_penalties.[].end
후에는 요금이 100% 환불되지 않습니다.
API 응답 예:
전액 환불 가능:
"property_id": "XXXX",
"rooms": [
{
"id": "XXXX",
"room_name": "Traditional Room",
"rates":
"id": "XXXX",
"status": "available",
"available_rooms": 4999,
"refundable": true,
"cancel_penalties": [
{
"start": "2021-05-27T18:00:00.000-07:00",
"end": "2021-05-28T18:00:00.000-07:00",
"amount": "76.00",
"currency": "USD"
환불 불가:
"property_id": "XXXX",
"rooms":
"id": "XXXX",
"room_name": "Traditional Room",
"rates":
"id": "XXXX",
"status": "available",
"available_rooms": 4999,
"refundable": false ,
"deposit_required": false,
"merchant_of_record": "expedia",
일부 환불 가능:
"property_id": "XXXX",
"rooms": [
{
"id": "XXXX",
"room_name": "Traditional Room",
"rates":
"id": "XXXXXXXX",
"status": "available",
"available_rooms": 4999,
"refundable": false,
"cancel_penalties": [
{
"start": "2023-09-03T13:59:00.000+02:00",
"end": "2023-09-04T13:59:00.000+02:00",
"nights": "1",
"currency": "USD"
}
],
"nonrefundable_date_ranges": [
{
"start": "2023-09-08",
"end": "2023-09-13"
}
],
예시:
BP4: 요금 내역에 숙박 시설에 지불해야 하는 요금 별도 표시
fees
배열에서 요금이 반환되면 숙박 시설에서 체크인 또는 체크아웃 시 지불해야 할 요금으로 각 값을 개별 표시해야 합니다. 이 요금은 (EPS 또는 지방 정부가 아닌) 숙박 시설에 직접 지불해야 하며, '세금 및 수수료'에 포함되는 세금 충당금, 세금 또는 수수료에 포함되지 않습니다.
API 응답 예:
"fees" : {
"resort_fee": {
"request_currency": {
"value": "74.97",
"currency": "USD"
},
"billable_currency": {
"value": "74.97",
"currency": "USD"
},
"scope": "per_accommodation",
"frequency": "per_night"
}
},
예시:
BP7: 해당하는 경우 어린이 연령 요소 반복 표시
통합에서 어린이 여행객을 허용하며 고객이 객실 선택 시 어린이 여행객을 지정한 경우, 예약 페이지에서 어린이 여행객의 인원 수와 각 연령을 명확히 확인해야 합니다. 이 정보는 occupancy
요소를 통해 제공됩니다.
BP8: EPS MOR 또는 Property Collect: 최종 여행객의 지불 시점 명시
EPS MOR일 경우 제공된 신용카드로 총 예약 금액이 즉시 청구된다고 명시해야 합니다.
Property Collect일 경우 숙박 시설에서 체크인 또는 체크아웃 시 신용카드로 요금이 청구된다고 명시해야 합니다. 숙박 시설에서 환불 불가 후불제 요금을 제공하는 경우 예약을 완료한 직후에 숙박 시설에서 고객에게 요금을 청구할 수도 있다는 점을 대신 명시해야 합니다.
BP9: 유럽 경제 지역 규정 준수: PSD2(결제 서비스 지침 2)
EEA(유럽 경제 지역)의 고객과 거래하고자 하는 모든 파트너는 PSD2를 준수해야 합니다. 자세한 내용은 여기에서 확인해 보세요.
EPS MOR 또는 Property Collect
EPS가 MOR(Merchant of Record)이거나 유럽 고객이 Property Collect를 사용할 경우 예약 경로에 Rapid의 2단계 인증 API를 적용해야 합니다.
제휴사 MOR - 일반
파트너는 규제 범위 내에 있는 고객과 거래할 때 PSD2 규정의 SCA(엄격한 고객 인증) 요구 사항을 준수해야 합니다. 지침 전문은 유럽 연합 위원회에서 확인하실 수 있습니다. 채택 가능한 준수 표준에 대한 추가 정보는 EMVCo의 “3D 보안 프로토콜 및 핵심 기능 사양”에 나와 있습니다.
제휴사 MOR - 법인카드 또는 가상 카드
EEA 내 국가에서 발급된 파트너 소유 카드로 EPS를 결제하는 파트너는 PSD2 규정의 요구 사항을 준수해야 합니다. 파트너는 B2B 결제를 준수하고 2FA(2단계 인증)의 적용을 받지 않는 카드를 사용하여 PSD2 2FA의 필요성을 경감할 수 있습니다.
규정 준수 옵션에는 다음이 포함됩니다.
- 일회용 가상 카드
- 회사에 등록된 다회용 법인카드(개인용 제외)
API 요청 예:
https://api.ean.com<Price Check link from previous availability request>
API 응답 예:
{
"status": "available",
"occupancy_pricing": {... },
"links": {
"payment_session": {
"method": "POST",
"href": "/v3/payment-sessions?token=XXXX"
}
}
}
BP10: EPS MOR 또는 Property Collect Premium - 결제 페이지에 결제 처리 위치 표시
EPS 또는 숙박 시설이 MOR(Merchant of Record)인 경우 결제가 처리될 국가가 결제 페이지의 눈에 띄는 위치에 표시되어야 합니다. 국가 이름 앞에는 '이 결제가 처리되는 국가'라는 문구를 삽입해야 합니다.
조회 API의 결제 옵션 기능을 사용하여 이 정보를 검색합니다.
API 요청 예:
https://api.ean.com<payment-options link from previous availability request>
API 응답 예:
"credit_card": {
"name": "Credit Card",
"card_options": [
{
"name": "MasterCard",
"processing_country": "US"
},
{
"name": "Visa",
"processing_country": "US"
}
]
}
예시:
확인 이메일/바우처
모바일 앱에서 호스팅 바우처를 제공할 경우 계속해서 아래의 요구 사항을 준수해 주세요.
ER1: 일정 ID의 적절한 표시
통합에서 EPS의 itinerary_id
를 고객에게 직접 제공하는 경우 확인 이메일에 해당 번호를 명시해야 합니다. 해당하는 경우, 파트너사의 담당자가 EPS 고객 지원의 도움을 필요로 하는 경우 기존 EPS 일정 ID에 액세스할 수 있다는 증거 자료를 제공해야 합니다.
ER2: 온라인 고객 서비스 도구 링크를 비롯한 고객 지원 요소를 명확하게 표시
예약 흐름 또는 확인 이메일에 고객 지원 채널을 명확하게 표시합니다(예: 전화번호 또는 실시간 채팅). EPS 담당자가 고객에게 직접 지원을 제공하는 경우 예약 흐름에 EPS 지원 번호를 표시합니다.
ER3: 각 객실에 대한 침대 유형 설명 제공
확인 이메일/바우처에 여행객이 요청한 침대 유형을 표시하고, 요청 시에만 동일한 객실의 여러 침대 유형 중 하나를 선택할 수 있으며, 예약 가능한 객실에서 제공되지 않을 경우 요청이 받아들여지지 않을 수 있다는 점을 여행객에게 메시지로 표시해야 합니다.
고객의 침대 선택 사항을 설명하기 위해 구성 배열에 포함된 값을 표시합니다.
ER4: 체크인 및 특별 체크인 지침 표시
checkin
, checkout
, fees
, policies
개체의 콘텐츠는 각 객실에 대해 숙박 시설 콘텐츠 정의에 반환된 대로 표시해야 합니다. 고객이 예약을 확정하기 전에 체크인 또는 특별 이용 방법에서 잠재적 수수료를 확인할 수 있도록 이 정보를 표시해야 합니다.
special_instructions
필드에는 checkin
개체의 instructions
필드에 포함되지 않은 체크인 필수 정보(예: 숙박 시설에 예상 도착 시간 고지, 고객 건물과 다른 위치에서 체크인, 이메일을 통해 숙박 시설에서 고지하는 특별 체크인 지침 알림 요건)가 포함될 수 있습니다.
동일한 영역에서 instructions
및 special_instructions
를 여행객에게 표시해야 합니다.
ER5: 요금 내역에서 숙박 시설에 지불해야 할 요금 별도 표시
fees
배열에서 요금이 반환되면 숙박 시설에서 체크인 또는 체크아웃 시 지불해야 할 요금으로 각 값을 개별 표시해야 합니다. 이 요금은 (EPS 또는 지방 정부가 아닌) 숙박 시설에 직접 지불해야 하며, '세금 및 수수료'에 포함되는 세금 충당금, 세금 또는 수수료에 포함되지 않습니다.
기술 및 제재 요구 사항
TR1: 각 예약 요청에 고유한 제휴사 참조 ID 제공
모든 예약 요청에 대해 affiliate_reference_id
요소를 사용해야 하는 목적은 복수의 양식 제출로 인한 중복 예약/중복 청구가 발생하는 것을 막기 위함입니다. 또한 예약 시간이 초과되었거나 업스트림 시간 초과로 인해 빈 결과가 반환된 경우 EPS 시스템에서 일정을 확인하기 위함입니다.
{
"affiliate_reference_id": "Launch_Requirement_TR1" ,
"hold": false,
"email": "TR4@Launch.Requirement",
"phone": {
"country_code": "Launch_Requirement_TR5b",
"number": "Launch_Requirement_TR5b",
"area_code": "Launch_Requirement_TR5b"
},
"rooms": [
{
"given_name": "John_Launch_Requirement_TR5a",
"family_name": "Doe_Launch_Requirement_TR5a",
"smoking": false,
},
{
"given_name": "David_Launch_Requirement_TR5a",
"family_name": "Smith_Launch_Requirement_TR5a",
"smoking": false,
}
],
TR2: 각 요청에 여행객 국가 코드 제공
여행객 country_code
가 조회 및 추천 API 요청에서 전달되어야 합니다. 국가 코드는 고객이 액세스하는 POS와 일치해야 합니다.
이렇게 하면 EPS 시스템에서 고객에게 관련 콘텐츠 및 판매 시장에 기반을 둔 적합한 요금을 제공할 수 있습니다.
API 요청 예:
https://api.ean.com/v3/properties/availability?checkin=2020-09-11
&checkout=2020-09-14
¤cy=USD&language=en-US&occupancy=2-3,4&property_id=XXXX
&country_code=XX&sales_channel=XXXX
&sales_environment=XXXX&filter=XXXX&rate_plan_count=XXXX
&rate_option=XXXX&billing_terms=XXXX&payment_terms=XXXX
&partner_point_of_sale=XXXX&platform_name=XXXX
TR3: 청구 정보
TR3a) 결제자 이름
- 고객, 법인 및 가상 카드:
- 파트너는 EPS에서 요금을 청구하는 카드의 소유주 이름을 보내야 합니다.
- Affiliate Collect/EAC 파트너:
- 가능할 경우, 파트너가 예약의 실제 최종 결제자 이름을 보내는 것이 좋습니다. 이 정보는 규제/제제 심사에 반드시 필요한 필수 정보입니다.
- 실제 최종 결제자의 이름을 제공할 수 없을 경우 파트너 회사/EPS에 비용을 지불하는 법인의 이름을 제공합니다.
- POS가 러시아, 우크라이나, 베네수엘라일 경우 항상 실제 결제자 정보가 있어야 합니다.
TR3b) 청구 국가
청구 담당자/결제자 이름 필드에 전달된 각 이름을 표시해야 합니다.
TR3c) 청구 우편번호
청구 담당자/결제자 이름 필드에 전달된 각 이름을 표시해야 합니다.
우편번호가 없는 국가라면 해당 정보를 제공할 필요가 없습니다.
"payments": [
{
"type": "customer_card",
"billing_contact": {
"given_name": "Launch_Requirement_TR3a",
"family_name": "Launch_Requirement_TR3a",
"address": {
"line_1": "555 1st St",
"line_2": "10th Floor",
"line_3": "Unit 12",
"city": "Seattle",
"state_province_code": "WA",
"postal_code": "Launch_Requirement_TR3c",
"country_code": "Launch_Requirement_TR3b"
}
},
TR4: 고객 이메일 주소 또는 모니터링되는 메일함 제공
각 일정의 이메일 요소에는 여행객의 이메일 주소 또는 통합에서 확인 이메일 처리를 위해 모니터링하는 메일함이 포함되어야 합니다. 이는 예약에 분쟁이나 문제가 발생할 경우 필요합니다.
TR5: 정확한 여행객 정보 제공
TR5a) 여행객 이름
EPS 예약은 항상 각 예약된 객실에 숙박하는 실제 여행객의 이름과 함께 제출해야 합니다. 즉, 예약 요청 본문 내에 rooms
개체의 given_name
및 family_name
값이 각 객실에 체크인하는 주 고객의 성/이름과 일치해야 합니다.
TR5b) 여행객 전화번호
예약에는 여행객의 유효한 연락처 번호가 포함되어야 합니다. 각 일정의 예약 요청 전화번호 필드에 해당 번호를 기입해 주세요. 파트너사의 담당자가 최종 고객에게 직접 지원을 제공할 경우 EPS는 여행객에게 연락하지 않습니다.
TR6: 여러 객실 예약
여러 객실 예약이 지원될 경우 예약 후 취소된 각 객실을 보여주는 테스트 예약에 대한 API 요청과 응답 로그를 제공합니다.
각 예약 객실에 별도의 확인 ID가 생성되므로, 객실을 따로 취소할 수 있습니다. 모든 객실을 취소하려면 일정의 모든 확인 ID에 대해 취소 요청을 완료해야 합니다.
EPS는 API 또는 템플릿을 통해 객실 9개 이상의 단체 예약을 직접 제공하지 않습니다. 객실을 9개 이상 예약해야 할 경우 EPS 담당자와 상의해 주세요.
TR7: Rapid 오류 처리 권장 사항
Rapid 오류 처리 권장 사항을 참조하여 오류를 처리할 로직을 구현했는지 확인해 주세요.