Travel Partner Prices API
Travel Partner Prices API는 숙박 시설 가격을 Google에 전송하기 위한 RESTful 인터페이스를 제공합니다.
서비스: travelpartnerprices.googleapis.com
이 서비스를 호출하려면 Google에서 제공하는 클라이언트 라이브러리를 사용하는 것이 좋습니다. 애플리케이션에서 자체 라이브러리를 사용하여 이 서비스를 호출해야 한다면 테크니컬 어카운트 매니저 (TAM)에게 문의하여 이 서비스의 검색 문서를 받으세요.
서비스 엔드포인트
서비스 엔드포인트는 API 서비스의 네트워크 주소를 지정하는 기준 URL입니다. 하나의 서비스는 여러 서비스 엔드포인트를 포함할 수 있습니다. 이 서비스에는 다음 서비스 엔드포인트가 포함되고, 나열된 모든 URI가 이 서비스 엔드포인트와 관련됩니다.
https://travelpartnerprices.googleapis.com
| 메서드 | |
|---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
지정된 숙박 시설에 대해 제공된 숙박 기간별 가격을 업로드합니다. JSON으로 인코딩된 LoS 가격 메시지 (아래 참고)가 HTTP 메시지 본문으로 필요합니다.
|
API 인증
여행 파트너 가격 API는 OAuth 2.0을 사용하여 애플리케이션을 인증하므로 API에 액세스할 수 있습니다.
OAUTH 2.0 설정 안내에 따라 여행 파트너 가격 API에 대한 승인을 받으세요.
Travel Partners Prices API의 새 프로젝트를 만들 때는 Travel Partner API에 제공된 안내와 유사하게 새 Google Cloud 콘솔 프로젝트에 대한 액세스를 사용 설정해야 합니다.
Travel Partner API에 제공된 단계를 참고하고 'Travel Partner API'의 모든 인스턴스를 'Travel Partner Prices API'로 대체하여 프로젝트를 사용 설정합니다.
Travel Partner Prices 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 요청을 여러 번 (숙박 시설당 최소 1회) 해야 합니다. |
| arrivalDayPrices[] | 1..n | Object | 도착 날짜의 가격입니다. 이 arrivalDayPrices 내의 모든 가격은 특정 숙박 시설에 적용되지만 도착 날짜가 다릅니다. |
| startDate | 1 | Object | productPrices은 startDate과 endDate 사이의 모든 도착 날짜에 적용됩니다(포함).
범위가 아닌 도착 날짜 하나만 지정하려면 |
| startDate.year | 1 | integer | startDate의 연도입니다. 1~9999 사이의 값이어야 합니다. |
| 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~9999 사이의 값이어야 합니다. |
| endDate.month | 1 | integer | 연도의 월입니다. 1~12 사이의 값이어야 합니다. |
| endDate.day | 1 | integer | 월의 일입니다. 1~31 사이여야 하고 해당 연도 및 월에 유효해야 합니다. |
| productPrices[] | 1..n | Object | 제품의 가격입니다. 이 productPrices 내의 모든 가격은 특정 숙박 시설, 도착 날짜 조합에 적용되지만 제품은 다릅니다.
|
| roomTypeId | 0..1 | string | 이 가격이 참조하는 객실의 고유 ID입니다. 이 ID를 사용하여 Room 번들 데이터를 roomdata에서 전송한 데이터와 일치시킵니다. 자세한 내용은 Room Bundle 메타데이터를 참고하세요. |
| ratePlanId | 0..1 | string | 이 가격이 참조하는 패키지 데이터의 고유 ID입니다. 이 ID를 사용하여 Room 번들 데이터를 packagedata에서 전송한 데이터와 일치시킵니다. 자세한 내용은 Room Bundle 메타데이터를 참고하세요. |
| occupancyPrices[] | 1..n | Object | 숙박 요금입니다. 이 occupancyPrices 내의 모든 가격은 특정 숙박 시설, 도착 날짜, 제품 조합에 적용되지만 숙박 인원에는 적용되지 않습니다.
|
| adults | 1 | integer | 성인과 어린이를 포함하여 객실당 예약할 수 있는 최대 투숙객 수입니다. 이 값은 해당 occupancyPrices 필드 내의 모든 요금에 대해 설정되며 1~99 사이의 양의 정수여야 합니다.
참고: 성인 5명 이상의 숙박을 보내려면 지원팀에 문의하세요. |
| prices[] | 1..n | Object | 숙박 기간별 가격입니다. prices 내의 모든 가격은 특정 숙박 시설, 도착 날짜, 제품, 숙박 인원 조합에 적용됩니다.
|
| rateRuleId | 0..1 | string | 조건부 요금의 경우 이 ID는 요금 규칙 정의 파일의 정의와 요금을 일치시킵니다. 이 입력란의 글자 수 제한은 40자(영문 기준)입니다. |
| currencyCode | 1 | string | rates 및 taxes이 제공되는 3자리 통화 코드입니다. 예를 들어 미국 달러의 경우 "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달러의 청소 요금을 적용합니다.
체크인 날짜 전체(2023년 9월 3일)를 사용할 수 없는 경우 날짜를 명시적으로 전송하고 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} 형식을 사용합니다.
|