From 98236961f6dca431602eca876799a2a0d8f91623 Mon Sep 17 00:00:00 2001 From: Gabriel Schiferdecke Date: Mon, 14 Apr 2025 16:24:39 -0300 Subject: [PATCH 01/10] docs: add reshopping information to rate details criteria --- .../v4-0/HotelService.swagger2.json | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/api-explorer/v4-0/HotelService.swagger2.json b/src/api-explorer/v4-0/HotelService.swagger2.json index c1a1b8cc25..cbc9c07778 100644 --- a/src/api-explorer/v4-0/HotelService.swagger2.json +++ b/src/api-explorer/v4-0/HotelService.swagger2.json @@ -1835,6 +1835,40 @@ }, "searchSessionToken": { "$ref": "#/definitions/SearchSessionToken" + }, + "reshopInfo": { + "description": "Contains information required for reshopping a hotel booking.", + "recordLocator": { + "description": "Details about the record locator used to identify the booking.", + "value": { + "description": "The unique identifier for the record locator.", + "type": "string" + }, + "type": { + "description": "The type of record locator, e.g., UNIVERSAL, PROVIDER and HOTELSERVICE.", + "type": "string" + }, + "PCC": { + "description": "Pseudo City Code (PCC) associated with the booking.", + "type": "string" + }, + "GDSName": { + "description": "The name of the Global Distribution System (GDS) used, e.g., SABRE, AMADEUS and GALILEO.", + "type": "string" + } + }, + "confirmationNumber": { + "description": "The confirmation number for the hotel booking.", + "type": "string" + }, + "pin": { + "description": "The PIN associated with the booking for additional security.", + "type": "string" + }, + "posId": { + "description": "The Point of Sale (POS) identifier for the transaction.", + "type": "string" + } } }, "required": [ @@ -2170,7 +2204,7 @@ "SABRE", "AMADEUS", "TRAVELPORT" - ], + ] }, "pcc": { "description": "Pseudo City Code or Office ID (OID) for the GDS account to be used for this booking (active or passive segment).", From 6079328bf054b23348d5c4bd478f81e2c3edfac8 Mon Sep 17 00:00:00 2001 From: Gabriel Schiferdecke Date: Tue, 15 Apr 2025 10:11:10 -0300 Subject: [PATCH 02/10] feat: add review suggestions --- .../v4-0/HotelService.swagger2.json | 34 +++++-------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/src/api-explorer/v4-0/HotelService.swagger2.json b/src/api-explorer/v4-0/HotelService.swagger2.json index cbc9c07778..809cbdeef2 100644 --- a/src/api-explorer/v4-0/HotelService.swagger2.json +++ b/src/api-explorer/v4-0/HotelService.swagger2.json @@ -1838,37 +1838,19 @@ }, "reshopInfo": { "description": "Contains information required for reshopping a hotel booking.", - "recordLocator": { - "description": "Details about the record locator used to identify the booking.", - "value": { - "description": "The unique identifier for the record locator.", - "type": "string" - }, - "type": { - "description": "The type of record locator, e.g., UNIVERSAL, PROVIDER and HOTELSERVICE.", - "type": "string" - }, - "PCC": { - "description": "Pseudo City Code (PCC) associated with the booking.", - "type": "string" + "gdsRecordLocator": { + "$ref": "#/definitions/GDSRecordLocator" + }, + "confirmationCodes": { + "items": { + "$ref": "#/definitions/ConfirmationCode" }, - "GDSName": { - "description": "The name of the Global Distribution System (GDS) used, e.g., SABRE, AMADEUS and GALILEO.", - "type": "string" - } - }, - "confirmationNumber": { - "description": "The confirmation number for the hotel booking.", - "type": "string" + "type": "array" }, "pin": { "description": "The PIN associated with the booking for additional security.", "type": "string" - }, - "posId": { - "description": "The Point of Sale (POS) identifier for the transaction.", - "type": "string" - } + } } }, "required": [ From f5aaa38127852db2e98d1c48f5dd74ad16017e5c Mon Sep 17 00:00:00 2001 From: Gabriel Schiferdecke Date: Wed, 16 Apr 2025 10:31:18 -0300 Subject: [PATCH 03/10] feat: add reshopping information to hotel service endpoints and schemas --- .../direct-connects/hotel-service-4/v4.endpoints.md | 13 ++++++++++++- .../hotel-service-4/v4.schemas.markdown | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md b/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md index 4044b888a7..4efe20248e 100644 --- a/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md +++ b/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md @@ -407,7 +407,18 @@ POST /hotels/ratedetails ], "numGuests": 1, "guestCountryCode": "CA", - "searchSessionToken": "b41168ba-7ee1-4b68-9934-47f5c55337d6" + "searchSessionToken": "b41168ba-7ee1-4b68-9934-47f5c55337d6", + "reshopInfo": { + "recordLocator": { + "value": "ABC123", + "type": "PNR", + "pcc": "XYZ456", + "gds": "SABRE" + }, + "confirmationNumber": "3704188022P5683", + "pin": "1234", + "posId": "POS789" + } } ``` diff --git a/src/api-reference/direct-connects/hotel-service-4/v4.schemas.markdown b/src/api-reference/direct-connects/hotel-service-4/v4.schemas.markdown index 7a7c453050..9709afe786 100644 --- a/src/api-reference/direct-connects/hotel-service-4/v4.schemas.markdown +++ b/src/api-reference/direct-connects/hotel-service-4/v4.schemas.markdown @@ -61,6 +61,7 @@ Reference to location details for search. `numGuests`|`integer`|`int32`|Number of guests for accommodation.| `guestCountryCode`|`string`|`ISO ALPHA-2`|Two-character ISO code for country.| `searchSessionToken`|[`SearchSessionToken`](#schemasearchsessiontoken)|-|Session token to be generated and provided by server on initial search call that can be referenced back for future calls on the same session.| +`reshopInfo`|[`ReshopInfo`](#schemareshopinfo)|-|Information related to reshopping, if applicable.| ## HotelDetailsCriteria From 05b2f48a625ea486e9e2db05a326e3dea16713cf Mon Sep 17 00:00:00 2001 From: gabrielschiferdecke Date: Wed, 4 Jun 2025 15:36:35 -0300 Subject: [PATCH 04/10] fix: update reshopping information description in schemas and remove unused pin field --- src/api-explorer/v4-0/HotelService.swagger2.json | 4 ---- .../direct-connects/hotel-service-4/v4.schemas.markdown | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/api-explorer/v4-0/HotelService.swagger2.json b/src/api-explorer/v4-0/HotelService.swagger2.json index 809cbdeef2..fe8267fccf 100644 --- a/src/api-explorer/v4-0/HotelService.swagger2.json +++ b/src/api-explorer/v4-0/HotelService.swagger2.json @@ -1846,10 +1846,6 @@ "$ref": "#/definitions/ConfirmationCode" }, "type": "array" - }, - "pin": { - "description": "The PIN associated with the booking for additional security.", - "type": "string" } } }, diff --git a/src/api-reference/direct-connects/hotel-service-4/v4.schemas.markdown b/src/api-reference/direct-connects/hotel-service-4/v4.schemas.markdown index 9709afe786..7fe47f522a 100644 --- a/src/api-reference/direct-connects/hotel-service-4/v4.schemas.markdown +++ b/src/api-reference/direct-connects/hotel-service-4/v4.schemas.markdown @@ -61,7 +61,7 @@ Reference to location details for search. `numGuests`|`integer`|`int32`|Number of guests for accommodation.| `guestCountryCode`|`string`|`ISO ALPHA-2`|Two-character ISO code for country.| `searchSessionToken`|[`SearchSessionToken`](#schemasearchsessiontoken)|-|Session token to be generated and provided by server on initial search call that can be referenced back for future calls on the same session.| -`reshopInfo`|[`ReshopInfo`](#schemareshopinfo)|-|Information related to reshopping, if applicable.| +`reshopInfo`|[`ReshopInfo`](#schemareshopinfo)|-|Information related to reshopping, only available during modify (and not shopping) flow| ## HotelDetailsCriteria From 950f53f3c8a0364da2c4be981e37c1c7f0a4513d Mon Sep 17 00:00:00 2001 From: gabrielschiferdecke Date: Wed, 4 Jun 2025 16:23:45 -0300 Subject: [PATCH 05/10] refactor: update reshopping information structure in hotel service endpoints --- src/api-explorer/v4-0/HotelService.swagger2.json | 12 ++++++------ .../hotel-service-4/v4.endpoints.md | 14 +++++--------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/api-explorer/v4-0/HotelService.swagger2.json b/src/api-explorer/v4-0/HotelService.swagger2.json index fe8267fccf..8c1c8ae0ec 100644 --- a/src/api-explorer/v4-0/HotelService.swagger2.json +++ b/src/api-explorer/v4-0/HotelService.swagger2.json @@ -1841,12 +1841,12 @@ "gdsRecordLocator": { "$ref": "#/definitions/GDSRecordLocator" }, - "confirmationCodes": { - "items": { - "$ref": "#/definitions/ConfirmationCode" - }, - "type": "array" - } + "confirmationCodes": { + "items": { + "$ref": "#/definitions/ConfirmationCode" + }, + "type": "array" + } } }, "required": [ diff --git a/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md b/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md index 4efe20248e..d079f37501 100644 --- a/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md +++ b/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md @@ -409,15 +409,11 @@ POST /hotels/ratedetails "guestCountryCode": "CA", "searchSessionToken": "b41168ba-7ee1-4b68-9934-47f5c55337d6", "reshopInfo": { - "recordLocator": { - "value": "ABC123", - "type": "PNR", - "pcc": "XYZ456", - "gds": "SABRE" - }, - "confirmationNumber": "3704188022P5683", - "pin": "1234", - "posId": "POS789" + "gdsRecordLocator": { + "gdsName": "SABRE", + "pcc": "ABC123", + "recordLocator": "ABC123" + } } } ``` From c37730e39267425ac01ab6cabe3732e656567104 Mon Sep 17 00:00:00 2001 From: gabrielschiferdecke Date: Fri, 6 Jun 2025 14:12:34 -0300 Subject: [PATCH 06/10] fix: remove reshopping information from hotel rate details response --- .../direct-connects/hotel-service-4/v4.endpoints.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md b/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md index d079f37501..4044b888a7 100644 --- a/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md +++ b/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md @@ -407,14 +407,7 @@ POST /hotels/ratedetails ], "numGuests": 1, "guestCountryCode": "CA", - "searchSessionToken": "b41168ba-7ee1-4b68-9934-47f5c55337d6", - "reshopInfo": { - "gdsRecordLocator": { - "gdsName": "SABRE", - "pcc": "ABC123", - "recordLocator": "ABC123" - } - } + "searchSessionToken": "b41168ba-7ee1-4b68-9934-47f5c55337d6" } ``` From 6d80fcf3d5354b6bab3a13270272d58c6706db82 Mon Sep 17 00:00:00 2001 From: gabrielschiferdecke Date: Fri, 6 Jun 2025 14:13:33 -0300 Subject: [PATCH 07/10] feat: add rate details endpoint for modify/reshop flow with request and response examples --- .../hotel-service-4/v4.endpoints.md | 195 ++++++++++++++++++ 1 file changed, 195 insertions(+) diff --git a/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md b/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md index 4044b888a7..e2cf5fa263 100644 --- a/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md +++ b/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md @@ -538,6 +538,201 @@ POST /hotels/ratedetails } ``` +## Rate Details during modify/reshop flow + +Retrieve hotel rate details for rates of a property. This endpoint is used and required when details including `guarantee`, `cancePenalties` and `nightlyRates` breakdown are missing from `/hotels/rates` call or `rateDetailsCallRequired` flag is set to true for a given rate. + +### URI + +```shell +POST /hotels/ratedetails +``` + +### Parameters + +|Name|Type|Format|Description| +|---|---|---|---| +`Accept-Language`|`string`|-|-| +`concur-correlationid`|`string`|-|**Required** This unique code can be used during troubleshooting as it identifies the API call in the log files.| +`body`|[`RateDetailsCriteria`](./v4.schemas.html#schemaratedetailscriteria)|-|**Required** Hotel rates criteria.| + +### Examples + +#### Request + +```json +{ + "requestorInfo": { + "posRequestorId": "abc1234", + "travelerUuid": "123e4567-e89b-12d3-a456-426614174000", + "loginId": "abc@concur.com", + "bookingForSelf": true + }, + "hotelPropertyRef": { + "chainCode": "HH", + "propertyCode": "HH498949" + }, + "ratePlanIds": [ + "44SM3FAsfvgcZs9ehGlNOQ" + ], + "checkin": "2021-10-20", + "checkout": "2021-10-23", + "rateCategories": [ + { + "otaCode": 1, + "value": "AAA" + } + ], + "numGuests": 1, + "guestCountryCode": "CA", + "searchSessionToken": "b41168ba-7ee1-4b68-9934-47f5c55337d6", + "reshopInfo": { + "gdsRecordLocator": { + "gdsName": "SABRE", + "pcc": "ABC123", + "recordLocator": "ABC123" + }, + "confirmationCodes": [ + { + "codeType": "SUPPLIER_CONFIRMATION", + "code": "3704188022P5683" + }, + { + "codeType": "PIN", + "code": "3704188022P5683" + } + ] + } +} +``` + +### Response + +```json +{ + "checkin": "2021-10-20", + "checkout": "2021-10-23", + "roomRates": [ + { + "rateDescription": [ + "Promotional Rate" + ], + "rateCategory": { + "otaCode": 1, + "value": "AAA" + }, + "rateChangesOverStay": true, + "roomId": "kVNU66KLxuggtu2H", + "ratePlanId": "44SM3FAsfvgcZs9ehGlNOQ", + "guarantee": { + "guaranteeType": "DEPOSIT_REQUIRED", + "acceptedPayments": [ + "VISA" + ], + "cvvRequired": true, + "amountPercent": { + "taxInclusive": true, + "feesInclusive": true, + "numberOfNights": 5, + "basisType": "FULL_STAY", + "applyAs": "FIRST_NIGHT_DEPOSIT", + "percent": 10.05, + "amount": { + "amount": 190.95, + "currencyCode": "USD" + } + } + }, + "prepayRequired": true, + "refundable": true, + "totalPrice": { + "totalBeforeTax": 170.95, + "taxes": 10, + "fees": 10, + "taxesBreakdown": [ + { + "amount": 5, + "fttCode": 1, + "inclusive": true + }, + { + "amount": 5, + "fttCode": 2, + "inclusive": true + } + ], + "feesBreakdown": [ + { + "amount": 5, + "fttCode": 5, + "inclusive": true + }, + { + "amount": 5, + "fttCode": 6, + "inclusive": true + } + ], + "totalAfterTax": 190.95, + "currencyCode": "USD", + "isTotalBeforeTaxDisplayEligible": true + }, + "nightlyPrices": [ + { + "basePrice": 89.95, + "taxes": { + "amount": 5.55, + "taxBreakdown": [ + { + "amount": 8.05, + "fttCode": 15, + "inclusive": true + } + ] + }, + "fees": { + "amount": 10.95, + "feeBreakdown": [ + { + "amount": 8.05, + "fttCode": 15, + "inclusive": true + } + ] + }, + "totalPrice": 100.05, + "startDate": "2021-12-01", + "endDate": "2021-12-31", + "currencyCode": "USD" + } + ], + "cancelPenalties": { + "description": "Some fees are not refundable", + "penalties": [ + { + "cancelDeadline": "2017-07-21T17:32:28", + "description": "Free cancellation up to 1 week before checkin", + "refundableStatus": "FULLY_REFUNDABLE", + "amountPercent": { + "taxInclusive": true, + "feesInclusive": true, + "numberOfNights": 5, + "basisType": "FULL_STAY", + "applyAs": "FIRST_NIGHT_DEPOSIT", + "percent": 10.05, + "amount": { + "amount": 190.95, + "currencyCode": "USD" + } + } + } + ] + } + } + ] +} +``` + ## Hotel Details Retrieve descriptive details about specified hotels. From b91c02b18930457a19c4be2a7dac1f601d31d3c6 Mon Sep 17 00:00:00 2001 From: gabrielschiferdecke Date: Thu, 12 Jun 2025 13:34:04 -0300 Subject: [PATCH 08/10] feat: refactor reshop info structure to use ReshopInfo definition --- .../v4-0/HotelService.swagger2.json | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/api-explorer/v4-0/HotelService.swagger2.json b/src/api-explorer/v4-0/HotelService.swagger2.json index 8c1c8ae0ec..c6bd988e33 100644 --- a/src/api-explorer/v4-0/HotelService.swagger2.json +++ b/src/api-explorer/v4-0/HotelService.swagger2.json @@ -1837,16 +1837,7 @@ "$ref": "#/definitions/SearchSessionToken" }, "reshopInfo": { - "description": "Contains information required for reshopping a hotel booking.", - "gdsRecordLocator": { - "$ref": "#/definitions/GDSRecordLocator" - }, - "confirmationCodes": { - "items": { - "$ref": "#/definitions/ConfirmationCode" - }, - "type": "array" - } + "$ref": "#/definitions/ReshopInfo" } }, "required": [ @@ -2716,6 +2707,20 @@ "score" ], "type": "object" + }, + "ReshopInfo": { + "description": "Contains information required for reshopping a hotel booking.", + "properties": { + "gdsRecordLocator": { + "$ref": "#/definitions/GDSRecordLocator" + }, + "confirmationCodes": { + "items": { + "$ref": "#/definitions/ConfirmationCode" + }, + "type": "array" + } + } } }, "x-components": { From e0dd1dfc700e56bc923528a07a4b4cb78b03d6b4 Mon Sep 17 00:00:00 2001 From: gabrielschiferdecke Date: Thu, 12 Jun 2025 15:02:24 -0300 Subject: [PATCH 09/10] feat: add -new sufix to test changes --- ...{HotelService.swagger2.json => HotelService.swagger2-new.json} | 0 .../hotel-service-4/{v4.endpoints.md => v4.endpoints-new.md} | 0 .../{v4.schemas.markdown => v4.schemas-new.markdown} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename src/api-explorer/v4-0/{HotelService.swagger2.json => HotelService.swagger2-new.json} (100%) rename src/api-reference/direct-connects/hotel-service-4/{v4.endpoints.md => v4.endpoints-new.md} (100%) rename src/api-reference/direct-connects/hotel-service-4/{v4.schemas.markdown => v4.schemas-new.markdown} (100%) diff --git a/src/api-explorer/v4-0/HotelService.swagger2.json b/src/api-explorer/v4-0/HotelService.swagger2-new.json similarity index 100% rename from src/api-explorer/v4-0/HotelService.swagger2.json rename to src/api-explorer/v4-0/HotelService.swagger2-new.json diff --git a/src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md b/src/api-reference/direct-connects/hotel-service-4/v4.endpoints-new.md similarity index 100% rename from src/api-reference/direct-connects/hotel-service-4/v4.endpoints.md rename to src/api-reference/direct-connects/hotel-service-4/v4.endpoints-new.md diff --git a/src/api-reference/direct-connects/hotel-service-4/v4.schemas.markdown b/src/api-reference/direct-connects/hotel-service-4/v4.schemas-new.markdown similarity index 100% rename from src/api-reference/direct-connects/hotel-service-4/v4.schemas.markdown rename to src/api-reference/direct-connects/hotel-service-4/v4.schemas-new.markdown From e8a592abdb61b239de5fe9af39959b7017cafe2b Mon Sep 17 00:00:00 2001 From: gabrielschiferdecke Date: Thu, 12 Jun 2025 15:31:48 -0300 Subject: [PATCH 10/10] feat: add prerelease to hotel service schemas --- .../direct-connects/hotel-service-4/v4.schemas-new.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/api-reference/direct-connects/hotel-service-4/v4.schemas-new.markdown b/src/api-reference/direct-connects/hotel-service-4/v4.schemas-new.markdown index 7fe47f522a..8efdfbe663 100644 --- a/src/api-reference/direct-connects/hotel-service-4/v4.schemas-new.markdown +++ b/src/api-reference/direct-connects/hotel-service-4/v4.schemas-new.markdown @@ -3,6 +3,8 @@ title: Direct Connect - Hotel Service v4 - Schemas layout: reference --- +{% include prerelease.html %} + # Direct Connect - Hotel Service v4 - Schemas ## SearchCriteria