숙박 기간 (LoS) 가격 책정

여행 파트너 가격 API

Travel Partner Prices API는 숙박 시설 가격을 Google에 전송하기 위한 RESTful 인터페이스를 제공합니다.

서비스: travelpartnerprices.googleapis.com

이 서비스를 호출하려면 Google에서 제공하는 클라이언트 라이브러리를 사용하는 것이 좋습니다. 애플리케이션에서 자체 라이브러리를 사용하여 이 서비스를 호출해야 한다면 기술계정 관리자(TAM)에게 문의하여 이 서비스의 탐색 문서를 받으세요.

서비스 엔드포인트

서비스 엔드포인트는 기본 URL입니다. 하나의 서비스는 여러 서비스 엔드포인트를 포함할 수 있습니다. 이 서비스는 다음과 같은 서비스를 제공합니다. 엔드포인트와 나열된 모든 URI는 이 서비스 엔드포인트를 기준으로 합니다.

https://travelpartnerprices.googleapis.com
메서드
ingestLosPropertyPrices POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices

지정된 숙박 시설에 제공된 숙박 기간별 가격을 업로드합니다.

HTTP 메시지 본문으로 JSON으로 인코딩된 LoS 가격 메시지(아래 참고)가 필요합니다.

account_id: 이 문자열 값은 Hotel Center의 계정 설정 페이지에 표시된 '계정 ID' 값입니다.

property_id: 이 요소의 값은 호텔 목록 피드의 등록정보 ID와 일치하는 문자열입니다.

API 인증

Travel Partner Price API는 OAuth 2.0을 사용하여 다음을 수행합니다. 애플리케이션을 인증해야 API에 액세스할 수 있습니다.

OAUTH 2.0 설정 안내에 따라 Travel Partner Prices API 승인을 받습니다.

Travel Partners Prices API용 새 프로젝트를 만들 때는 Travel Partner API에 제공된 안내에 따라 새 Google Cloud 콘솔 프로젝트에 대한 액세스를 사용 설정해야 합니다.

Travel Partner API에 제공된 단계를 참조하세요. 'Travel Partner API'의 모든 인스턴스를 대체합니다. '여행 파트너 가격'이라는 API' 프로젝트를 사용 설정합니다

Travel Partner Price API의 범위는 다음과 같습니다. "https://travelpartnerprices.googleapis.com"

Travel Partner Prices API의 업로드 경로는 다음과 같습니다. "/travel/lodging/uploads/accounts/<account_id>/property_data"

요청

구문

LoS Prices 메시지는 다음 구문을 사용합니다.

{
  "requestTime": YYYY-MM-DDTHH:mm:ss.SSSZ,
  "propertyPrices": {
    "arrivalDatePrices": [{
      "startDate": {
        "year": int
        "month": int
        "day": int
      }
      "endDate": {
        "year": int
        "month": int
        "day": int
      }
      "productPrices": [{
        "roomTypeId": "string"
        "ratePlanId": "string"
        "occupancyPrices": [{
          "adults": int
          "prices": [{
            "rateRuleId": "string"
            "currencyCode": "string"
            "rates": [night_1,night_2,...]
            "taxes": [night_1,night_2,...]
            "fees": [night_1,night_2,...]
          }]
        }]
      }]
    }]
  }
}

요소 및 속성

숙박 기간 가격 메시지에는 다음 요소와 속성이 있습니다.

요소 발생 횟수 유형 설명
requestTime 1 string

LoS 가격 메시지가 전송된 시점으로 RFC 3339 형식의 문자열로 표현됩니다.

지난 24일 이내에 requestTime로 전송된 모든 메시지 처리되고 처리되지 않은 시간은 삭제됩니다.

메시지는 수신된 순서와 관계없이 requestTime 순으로 처리됩니다. 예를 들어 requestTime의 가격 업데이트 수신된 2019-05-03T14:09:00Z 동일한 여행 일정에 대한 requestTime 메시지 2019-05-03T14:10:00Z는 나중에 타임스탬프가 지정된 메시지를 반환합니다

RFC 3339에서는 완전히 지정된 날짜/시간을 YYYY-MM-DDThh:mm:ss.SSZ으로 요구합니다. 시간대는 필수 항목이며 UTC와의 양수 또는 음수 hh:mm 오프셋으로 지정되거나 UTC의 약어인 Z로 지정됩니다.

분수 초는 선택사항이며 나노초 단위까지 표현할 수 있습니다. 예를 들어 2017-01-15T01:30:15.01-08:00은 2017년 1월 15일 1시 30분(PST) 15.01초를 인코딩합니다.

propertyPrices 1 Object 숙박 시설의 가격입니다. 이 propertyPrices 내의 모든 가격 같은 속성에 적용됩니다.

이 요소는 반복되지 않습니다. 여러 숙박 시설의 가격을 전송하려면 여러 HTTP 요청(숙박 시설당 하나 이상)을 실행해야 합니다.

arrivalDayPrices[] 1..n Object 도착 날짜의 가격입니다. 이 arrivalDayPrices 내의 모든 가격은 특정 숙박 시설에 적용되지만 도착 날짜가 다릅니다.
startDate 1 Object productPricesstartDateendDate 사이의 모든 도착 날짜(양 끝값 포함)에 적용됩니다.

범위가 아닌 하나의 도착 날짜만 지정하려는 경우 startDateendDate에 모두 도착 날짜를 입력합니다.

startDate.year 1 integer startDate의 연도입니다. 1~9,999 사이의 값이어야 합니다.
startDate.month 1 integer 연도의 월입니다. 1~12 사이의 값이어야 합니다.
startDate.day 1 integer 월의 일입니다. 1~31 사이의 값이어야 하며 해당 연도와 월에 유효해야 합니다.
endDate 0..1 Object productPrices는 startDate~endDate 사이의 모든 도착 날짜에 적용됩니다(양 끝값 포함).

범위가 아닌 하나의 도착 날짜만 지정하려는 경우 endDate는 생략할 수 있습니다.

endDate.year 1 integer endDate의 연도입니다. 1~9,999 사이의 값이어야 합니다.
endDate.month 1 integer 연도의 월입니다. 1~12 사이의 값이어야 합니다.
endDate.day 1 integer 월의 일입니다. 1~31 사이의 값이어야 하며 해당 연도와 월에 유효해야 합니다.
productPrices[] 1..n Object 제품 가격입니다. 이 productPrices 내의 모든 가격은 특정 숙박 시설, 도착일 조합에 적용되지만 제품은 다릅니다.
roomTypeId 0..1 string 이 가격이 참조하는 객실의 고유 ID입니다. 사용 이 ID를 사용하여 Room Bundle 데이터와 Roomdata에 보낸 데이터를 일치시킵니다. 자세한 내용은 Room Bundle 메타데이터를 참고하세요.
ratePlanId 0..1 string 이 가격이 참조하는 패키지 데이터의 고유 ID입니다. 사용 이 ID를 사용하여 객실 번들 데이터와 packagedata에 보낸 데이터를 일치시킵니다. 자세한 내용은 Room Bundle 메타데이터를 참고하세요.
occupancyPrices[] 1..n Object 숙박 인원에 따른 가격입니다. 이 occupancyPrices 내의 모든 가격은 특정 숙박 시설, 도착일, 제품 조합에 적용되지만 숙박 인원에 따라 다릅니다.
adults 1 integer 다음을 포함하여 객실당 예약할 수 있는 최대 참석자 수 있습니다. 이 값은 해당하는 occupancyPrices 필드이며 양수여야 합니다. 1과 99 사이의 정수입니다.

참고: 성인 4명을 초과하는 숙박 인원을 전송하려면 지원팀에 문의하세요.

prices[] 1..n Object 숙박 기간별 가격 prices 내의 모든 가격은 특정 숙박 시설, 도착일, 제품, 숙박 인원 조합에 적용됩니다.
rateRuleId 0..1 string 조건부 요금의 경우 이 ID는 요금을 요금 규칙 정의 파일의 정의와 일치시킵니다. 이 입력란의 글자 수 제한은 40자(영문 기준)입니다.
currencyCode 1 string ratestaxes인 세 글자로 된 통화 코드 제공됩니다 예를 들어 미국 달러의 경우 "USD"입니다.
rates[] 30 float 숙박 기간 가격의 기본 요금 구성요소입니다.

해당하는 taxes 값이 제공된 경우 이 요율에는 세금이 포함되지 않습니다. 총 가격은 관련 요율과 세금의 합계입니다.

색인 n의 값이 n+1에 해당합니다. 숙박 기간

한 번에 30개 가격의 전체 LoS 세트를 전송해야 합니다. 보내는 경우 30 미만인 경우 제공된 모든 LoS 가격은 나머지 요율은 LoS 30까지 사용할 수 없습니다. 30개를 초과하여 전송하는 경우 30번째 요금 이후에 전송된 가격은 삭제됩니다.

이용할 수 없는 숙박 기간은 0

taxes[] 30 float 숙박 기간 가격의 세금 구성요소입니다.

색인 n의 값은 n+1 숙박 기간에 해당합니다.

fees[] 30 float 숙박 기간 가격의 수수료 구성요소입니다.

색인 n의 값이 n+1에 해당합니다. 숙박 기간

LOS에 따른 요금 및 세금

다음 예시는 최소 숙박 기간을 2로 설정하는 방법을 보여줍니다. 다른 체크인 날짜에는 예약 가능 여부를 설정할 수 없습니다. endDate 없이 2023년 9월 1일부터 startDate를 설정하면 한 날짜의 요금만 지정한다는 의미이므로 endDate을 생략할 수 있습니다.

2로 설정된 occupancyPrices 배열을 사용하면 숙박 인원에 따라 다른 요금을 설정할 수 있습니다. 따라서 2023년 9월 4일에 공석이 없어 사용 가능한 rates가 제한됩니다.

표시된 taxes 배열은 비율의 10% 로 계산됩니다.

표시된 fees 배열에는 숙박당 청소 요금 50달러가 적용됩니다.

전체 체크인 날짜를 확인할 수 없는 경우 &dash;9/3/2023 명시적으로 날짜를 보내고 rates, taxes, productPrices를 생략하여 요청된 날짜에 예약할 수 없음을 나타냅니다.

{
  "requestTime": "2023-08-10T12:15:222",
  "propertyPrices": {
    "arrivalDatePrices": [
      {
        "startDate": {
          "year": 2023,
          "month": 9,
          "day": 1
        },
        "productPrices": [
          {
            "occupancyPrices": [
              {
                "adults": 2,
                "prices": [
                  {
                    "currencyCode": "USD",
                    "rates": [
                      0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "taxes": [
                      0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "fees": [
                      0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "startDate": {
          "year": 2023,
          "month": 9,
          "day": 3
        },
        "productPrices": [
          {
            "occupancyPrices": [
              {
                "adults": 2,
                "prices": [
                  {
                    "currencyCode": "USD",
                    "rates": [
                      0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "taxes": [
                      0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ],
                    "fees": [
                      0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}

응답 본문

성공할 경우 응답 본문에 다음 구조의 데이터가 포함됩니다.

JSON 표현
        {
          "name": "string"
        }
        
필드
name 수정된 PropertyPrices의 리소스 이름입니다. 형식은
accounts/{account}/properties/{property}입니다.