여행 파트너 가격 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 가격 메시지(아래 참고)가 필요합니다.
|
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일 이내에 메시지는 수신된 순서와 관계없이 RFC 3339에서는 완전히 지정된 날짜/시간을 분수 초는 선택사항이며 나노초 단위까지 표현할 수 있습니다. 예를 들어 |
propertyPrices | 1 | Object | 숙박 시설의 가격입니다. 이 propertyPrices 내의 모든 가격
같은 속성에 적용됩니다.
이 요소는 반복되지 않습니다. 여러 숙박 시설의 가격을 전송하려면 여러 HTTP 요청(숙박 시설당 하나 이상)을 실행해야 합니다. |
arrivalDayPrices[] | 1..n | Object | 도착 날짜의 가격입니다. 이 arrivalDayPrices 내의 모든 가격은 특정 숙박 시설에 적용되지만 도착 날짜가 다릅니다. |
startDate | 1 | Object | productPrices 는 startDate 과 endDate 사이의 모든 도착 날짜(양 끝값 포함)에 적용됩니다.
범위가 아닌 하나의 도착 날짜만 지정하려는 경우
|
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.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 | rates 및 taxes 인 세 글자로 된 통화 코드
제공됩니다 예를 들어 미국 달러의 경우 "USD" 입니다.
|
rates[] | 30 | float | 숙박 기간 가격의 기본 요금 구성요소입니다.
해당하는 색인 한 번에 30개 가격의 전체 LoS 세트를 전송해야 합니다. 보내는 경우 30 미만인 경우 제공된 모든 LoS 가격은 나머지 요율은 LoS 30까지 사용할 수 없습니다. 30개를 초과하여 전송하는 경우 30번째 요금 이후에 전송된 가격은 삭제됩니다. 이용할 수 없는 숙박 기간은
|
taxes[] | 30 | float | 숙박 기간 가격의 세금 구성요소입니다.
색인 |
fees[] | 30 | float | 숙박 기간 가격의 수수료 구성요소입니다.
색인 |
예
LOS에 따른 요금 및 세금
다음 예시는 최소 숙박 기간을 2로 설정하는 방법을 보여줍니다.
다른 체크인 날짜에는 예약 가능 여부를 설정할 수 없습니다.
endDate
없이 2023년 9월 1일부터 startDate
를 설정하면 한 날짜의 요금만 지정한다는 의미이므로 endDate
을 생략할 수 있습니다.
2
로 설정된 occupancyPrices
배열을 사용하면 숙박 인원에 따라 다른 요금을 설정할 수 있습니다. 따라서 2023년 9월 4일에 공석이 없어 사용 가능한 rates
가 제한됩니다.
표시된 taxes
배열은 비율의 10% 로 계산됩니다.
표시된 fees
배열에는 숙박당 청소 요금 50달러가 적용됩니다.
전체 체크인 날짜를 확인할 수 없는 경우 ‐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} 입니다.
|