{ "swagger": "2.0", "info": { "title": "Opera Cloud Inventory Asynchronous API", "description": "APIs to cater for Inventory related asynchronous functionality in OPERA Cloud. This includes viewing inventory data along with its revenue and updating inventory's sell limits for date ranges.

This API follows an async pattern where



Compatible with OPERA Cloud release 26.2.0.0.

This document and all content within is available under the Universal Permissive License v 1.0 (https://oss.oracle.com/licenses/upl). Copyright (c) 2020, 2026 Oracle and/or its affiliates.

", "version": "26.2.0.0", "termsOfService": "https://www.oracle.com/legal/terms.html", "contact": { "email": "hospitality_apis_ww_grp@oracle.com" }, "license": { "name": "UPL", "url": "https://opensource.org/licenses/upl" } }, "schemes": [ "https" ], "basePath": "/inv/async/v1", "produces": [ "application/json" ], "paths": { "/externalSystems/{extSystemCode}/hotels/{hotelId}/revenueInventoryStatistics": { "post": { "summary": "Start process to get hotel inventory revenue statistics", "description": "Use this API to start the process to get a hotel inventory's revenue statistics for a given date range. Maximum limit of the date range is 94 days with a single request, but the recommendation is to use a date range proportionate to the size of the hotel. Returns a header parameter Location that can be used in the getRevenueInventoryStatisticsProcessStatus operation. Use event driven APIs (see https://docs.oracle.com/cd/F29336_01/doc.201/f27480/c_business_events.htm#OHIPU-BusinessEvents-F0AC1F1C) to get real time inventory updates.

OperationId:startRevenueInventoryStatisticsProcess

", "operationId": "startRevenueInventoryStatisticsProcess", "x-interaction": [ "async-polling" ], "responses": { "202": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" }, "Location": { "type": "string", "description": "Location of process status resource" } }, "description": "Location of process status resource" }, "400": { "$ref": "#/responses/400" }, "401": { "$ref": "#/responses/401" }, "403": { "$ref": "#/responses/403" }, "404": { "$ref": "#/responses/404" }, "405": { "$ref": "#/responses/405" }, "406": { "$ref": "#/responses/406" }, "413": { "$ref": "#/responses/413" }, "414": { "$ref": "#/responses/414" }, "415": { "$ref": "#/responses/415" }, "500": { "$ref": "#/responses/500" }, "502": { "$ref": "#/responses/502" }, "503": { "$ref": "#/responses/503" } }, "parameters": [ { "name": "extSystemCode", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "hotelId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "criteria", "in": "body", "required": true, "description": "Request object for fetching revenue inventory statistics asynchronously.", "schema": { "$ref": "#/definitions/revenueInventoryStatisticsSearchType" } }, { "$ref": "#/parameters/authKey" }, { "$ref": "#/parameters/externalData" }, { "$ref": "#/parameters/x-app-key" }, { "$ref": "#/parameters/x-request-id" }, { "$ref": "#/parameters/x-originating-application" }, { "$ref": "#/parameters/x-hotelid" }, { "$ref": "#/parameters/Accept-Language" } ], "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "tags": [ "InventoryAsync" ] } }, "/externalSystems/{extSystemCode}/hotels/{hotelId}/revenueInventoryStatistics/{requestId}": { "head": { "summary": "Check status of Inventory Revenue Statistic process", "description": "Use this API to check whether the process to collate inventory revenue statistics is complete. You can get value of summaryId from the Location header returned by the startRevenueInventoryStatisticsProcess operation.

OperationId:getRevenueInventoryStatisticsProcessStatus

", "operationId": "getRevenueInventoryStatisticsProcessStatus", "responses": { "200": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" }, "Status": { "type": "string", "description": "Status of the requested process.", "enum": [ "Processing", "Invalid" ] }, "Cache-Control": { "type": "string", "description": "number of seconds to wait before polling again.", "x-example": "max-age=10" } }, "description": "Response for status of scheduled asynchronous process." }, "201": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" }, "Status": { "type": "string", "description": "Status of the requested process.", "enum": [ "Completed" ] }, "Location": { "type": "string", "description": "Location of newly created resource once the status of process run is Complete." } }, "description": "Response for status of scheduled asynchronous process." }, "400": { "$ref": "#/responses/400" }, "401": { "$ref": "#/responses/401" }, "403": { "$ref": "#/responses/403" }, "404": { "$ref": "#/responses/404" }, "405": { "$ref": "#/responses/405" }, "406": { "$ref": "#/responses/406" }, "413": { "$ref": "#/responses/413" }, "414": { "$ref": "#/responses/414" }, "415": { "$ref": "#/responses/415" }, "500": { "$ref": "#/responses/500" }, "502": { "$ref": "#/responses/502" }, "503": { "$ref": "#/responses/503" } }, "parameters": [ { "name": "requestId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "extSystemCode", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "hotelId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "$ref": "#/parameters/authKey" }, { "$ref": "#/parameters/externalData" }, { "$ref": "#/parameters/x-app-key" }, { "$ref": "#/parameters/x-request-id" }, { "$ref": "#/parameters/x-originating-application" }, { "$ref": "#/parameters/x-hotelid" }, { "$ref": "#/parameters/Accept-Language" } ], "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "tags": [ "InventoryAsync" ] }, "get": { "summary": "Get results of a revenue inventory statistics process", "description": "This API returns inventory revenue's statistics for a hotel within dates given in the startRevenueInventoryStatisticsProcess API request. You can get the value of the summaryId from the Location header returned by the getRevenueInventoryStatisticsProcessStatus operation after the process is completed.

OperationId:getRevenueInventoryStatistics

", "operationId": "getRevenueInventoryStatistics", "responses": { "200": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" } }, "description": "Response for fetched revenue inventory statistics.", "schema": { "$ref": "#/definitions/revenueInventoryStatisticsDetails" } }, "400": { "$ref": "#/responses/400" }, "401": { "$ref": "#/responses/401" }, "403": { "$ref": "#/responses/403" }, "404": { "$ref": "#/responses/404" }, "405": { "$ref": "#/responses/405" }, "406": { "$ref": "#/responses/406" }, "413": { "$ref": "#/responses/413" }, "414": { "$ref": "#/responses/414" }, "415": { "$ref": "#/responses/415" }, "500": { "$ref": "#/responses/500" }, "502": { "$ref": "#/responses/502" }, "503": { "$ref": "#/responses/503" } }, "parameters": [ { "name": "requestId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "extSystemCode", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "hotelId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "$ref": "#/parameters/authKey" }, { "$ref": "#/parameters/externalData" }, { "$ref": "#/parameters/x-app-key" }, { "$ref": "#/parameters/x-request-id" }, { "$ref": "#/parameters/x-originating-application" }, { "$ref": "#/parameters/x-hotelid" }, { "$ref": "#/parameters/Accept-Language" } ], "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "tags": [ "InventoryAsync" ] } }, "/externalSystems/{extSystemCode}/hotels/{hotelId}/inventoryStatistics": { "post": { "summary": "Start process to get hotel inventory statistics", "description": "Use this API to start the process to get a hotel's inventory statistics for a given date range. The maximum limit of the date range is 365 days with a single request, but the recommendation is to use a date range proportionate to the size of the hotel. Returns a header parameter Location that can be used in the getInventoryStatisticsProcessStatus operation.

OperationId:startInventoryStatisticsProcess

", "operationId": "startInventoryStatisticsProcess", "x-interaction": [ "async-polling" ], "responses": { "202": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" }, "Location": { "type": "string", "description": "Location of process status resource" } }, "description": "Location of process status resource" } }, "parameters": [ { "name": "hotelId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 40 }, { "name": "extSystemCode", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 80 }, { "name": "inventoryCriteria", "in": "body", "required": true, "description": "Request object for fetching inventory statistics asynchronously.", "schema": { "$ref": "#/definitions/inventoryCriteriaType" } }, { "$ref": "#/parameters/authKey" }, { "$ref": "#/parameters/externalData" }, { "$ref": "#/parameters/x-app-key" }, { "$ref": "#/parameters/x-request-id" }, { "$ref": "#/parameters/x-originating-application" }, { "$ref": "#/parameters/x-hotelid" }, { "$ref": "#/parameters/Accept-Language" } ], "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "tags": [ "InventoryAsync" ] } }, "/externalSystems/{extSystemCode}/hotels/{hotelId}/inventoryStatistics/{requestId}": { "head": { "summary": "Check status of hotel inventory statistics process", "description": "Use this API to check whether the statistics of the hotel's inventory statistics is ready yet. You can get value of summaryId with startInventoryStatisticsProcess API response (under header location).

OperationId:getInventoryStatisticsProcessStatus

", "operationId": "getInventoryStatisticsProcessStatus", "responses": { "200": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" }, "Status": { "type": "string", "description": "Status of the requested process.", "enum": [ "Processing", "Invalid" ] }, "Cache-Control": { "type": "string", "description": "number of seconds to wait before polling again.", "x-example": "max-age=10" } }, "description": "Response for status of scheduled asynchronous process." }, "201": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" }, "Status": { "type": "string", "description": "Status of the requested process.", "enum": [ "Completed" ] }, "Location": { "type": "string", "description": "Location of newly created resource once the status of process run is Complete." } }, "description": "Response for status of scheduled asynchronous process." } }, "parameters": [ { "name": "requestId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 80 }, { "name": "extSystemCode", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 80 }, { "name": "hotelId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 40 }, { "$ref": "#/parameters/authKey" }, { "$ref": "#/parameters/externalData" }, { "$ref": "#/parameters/x-app-key" }, { "$ref": "#/parameters/x-request-id" }, { "$ref": "#/parameters/x-originating-application" }, { "$ref": "#/parameters/x-hotelid" }, { "$ref": "#/parameters/Accept-Language" } ], "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "tags": [ "InventoryAsync" ] }, "get": { "summary": "Get results of a inventory statistics process", "description": "This API returns inventory statistics for a hotel by given dates in the startInventoryStatisticsProcess API request. You can get the value of the summaryId with the getInventoryStatisticsProcessStatus API response (under header location).

OperationId:getInventoryStatisticsAsync

", "operationId": "getInventoryStatisticsAsync", "responses": { "200": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" } }, "description": "Response for fetched inventory statistics.", "schema": { "$ref": "#/definitions/inventoryStatisticsDetails" } } }, "parameters": [ { "name": "requestId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "extSystemCode", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "hotelId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "$ref": "#/parameters/authKey" }, { "$ref": "#/parameters/externalData" }, { "$ref": "#/parameters/x-app-key" }, { "$ref": "#/parameters/x-request-id" }, { "$ref": "#/parameters/x-originating-application" }, { "$ref": "#/parameters/x-hotelid" }, { "$ref": "#/parameters/Accept-Language" } ], "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "tags": [ "InventoryAsync" ] } }, "/externalSystems/{extSystemCode}/hotels/{hotelId}/sellLimits": { "post": { "summary": "Create sell limit by date.", "description": "You can use this API to create sell limits in OPERA by date.

OperationId:postSellLimitsProcess

", "operationId": "postSellLimitsProcess", "x-interaction": [ "async-polling" ], "responses": { "202": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" }, "Location": { "type": "string", "description": "Location of process status resource" } }, "description": "Location of process status resource" }, "400": { "$ref": "#/responses/400" }, "401": { "$ref": "#/responses/401" }, "403": { "$ref": "#/responses/403" }, "404": { "$ref": "#/responses/404" }, "405": { "$ref": "#/responses/405" }, "406": { "$ref": "#/responses/406" }, "413": { "$ref": "#/responses/413" }, "414": { "$ref": "#/responses/414" }, "415": { "$ref": "#/responses/415" }, "500": { "$ref": "#/responses/500" }, "502": { "$ref": "#/responses/502" }, "503": { "$ref": "#/responses/503" } }, "parameters": [ { "name": "hotelId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "extSystemCode", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "sellLimitsByDate", "in": "body", "required": true, "description": "Request for setting sell limits for house, room type, room class.", "schema": { "$ref": "#/definitions/sellLimitsByDate" } }, { "$ref": "#/parameters/authKey" }, { "$ref": "#/parameters/externalData" }, { "$ref": "#/parameters/x-app-key" }, { "$ref": "#/parameters/x-request-id" }, { "$ref": "#/parameters/x-originating-application" }, { "$ref": "#/parameters/x-hotelid" }, { "$ref": "#/parameters/Accept-Language" } ], "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "tags": [ "InventoryAsync" ] } }, "/externalSystems/{extSystemCode}/hotels/{hotelId}/sellLimits/{requestId}": { "head": { "summary": "Get the status for sell limits asynchronous process", "description": "Use this API to check whether the sell limit data creation is completed yet. You can get the value of the summaryId with the postSellLimitsProcess API response (under header location).

OperationId:getSellLimitsProcessStatus

", "operationId": "getSellLimitsProcessStatus", "responses": { "200": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" }, "Status": { "type": "string", "description": "Status of the requested process.", "enum": [ "Processing", "Invalid" ] }, "Cache-Control": { "type": "string", "description": "number of seconds to wait before polling again.", "x-example": "max-age=10" } }, "description": "Response for status of scheduled asynchronous process." }, "201": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" }, "Status": { "type": "string", "description": "Status of the requested process.", "enum": [ "Completed" ] }, "Location": { "type": "string", "description": "Location of newly created resource once the status of process run is Complete." } }, "description": "Response for status of scheduled asynchronous process." }, "400": { "$ref": "#/responses/400" }, "401": { "$ref": "#/responses/401" }, "403": { "$ref": "#/responses/403" }, "404": { "$ref": "#/responses/404" }, "405": { "$ref": "#/responses/405" }, "406": { "$ref": "#/responses/406" }, "413": { "$ref": "#/responses/413" }, "414": { "$ref": "#/responses/414" }, "415": { "$ref": "#/responses/415" }, "500": { "$ref": "#/responses/500" }, "502": { "$ref": "#/responses/502" }, "503": { "$ref": "#/responses/503" } }, "parameters": [ { "name": "requestId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "extSystemCode", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "hotelId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "$ref": "#/parameters/authKey" }, { "$ref": "#/parameters/externalData" }, { "$ref": "#/parameters/x-app-key" }, { "$ref": "#/parameters/x-request-id" }, { "$ref": "#/parameters/x-originating-application" }, { "$ref": "#/parameters/x-hotelid" }, { "$ref": "#/parameters/Accept-Language" } ], "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "tags": [ "InventoryAsync" ] }, "get": { "summary": "Get status for sell limits for a property.", "description": "This API returns the status log if any of sell limit data creation is failed. You can get the value of summaryId with the getSellLimitsProcessStatus API response (under header location).

OperationId:getSellLimits

", "operationId": "getSellLimits", "responses": { "200": { "headers": { "Content-Language": { "type": "string", "description": "Audience language", "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", "x-example": "en-GB" } }, "description": "This asynchronous callback base type is used as a base for an extension for Opera Web Services Callback Requests to provide uniform implementation.", "schema": { "$ref": "#/definitions/sellLimitByDateStatus" } }, "204": { "description": "SetSellLimitByDate not found." }, "400": { "$ref": "#/responses/400" }, "401": { "$ref": "#/responses/401" }, "403": { "$ref": "#/responses/403" }, "404": { "$ref": "#/responses/404" }, "405": { "$ref": "#/responses/405" }, "406": { "$ref": "#/responses/406" }, "413": { "$ref": "#/responses/413" }, "414": { "$ref": "#/responses/414" }, "415": { "$ref": "#/responses/415" }, "500": { "$ref": "#/responses/500" }, "502": { "$ref": "#/responses/502" }, "503": { "$ref": "#/responses/503" } }, "parameters": [ { "name": "requestId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "hotelId", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "name": "extSystemCode", "in": "path", "required": true, "type": "string", "minLength": 1, "maxLength": 2000 }, { "$ref": "#/parameters/authKey" }, { "$ref": "#/parameters/externalData" }, { "$ref": "#/parameters/x-app-key" }, { "$ref": "#/parameters/x-request-id" }, { "$ref": "#/parameters/x-originating-application" }, { "$ref": "#/parameters/x-hotelid" }, { "$ref": "#/parameters/Accept-Language" } ], "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "tags": [ "InventoryAsync" ] } } }, "parameters": { "externalData": { "name": "externalData", "type": "string", "description": "Pass this header as true, if payload needs DVM", "in": "header" }, "authKey": { "name": "authorization", "description": "Bearer token that needs to be passed which is generated post user authentication", "type": "string", "in": "header", "required": true }, "x-app-key": { "name": "x-app-key", "description": "Client or Partner's Application Key", "type": "string", "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$", "in": "header", "required": true }, "x-request-id" : { "name" : "x-request-id", "type" : "string", "pattern": "~*[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}", "description" : "Request Id of an incoming request", "in" : "header" }, "x-originating-application" : { "name" : "x-originating-application", "type" : "string", "description" : "Customer's Integration Application Id", "in" : "header" }, "x-hotelid": { "name": "x-hotelid", "type": "string", "description": "Mandatory parameter to identify the hotel code where the end user is logged in", "in": "header", "required": true }, "Accept-Language": { "name": "Accept-Language", "type": "string", "description": "Language code", "in": "header" } }, "responses": { "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/exceptionDetailType" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Resource not found", "schema": { "$ref": "#/definitions/exceptionDetailType" } }, "405": { "description": "Method not allowed" }, "406": { "description": "Not acceptable." }, "413": { "description": "Request Entity Too Large" }, "414": { "description": "Request URI Too Large" }, "415": { "description": "Unsupported Media Type" }, "500": { "description": "System Error", "schema": { "$ref": "#/definitions/exceptionDetailType" } }, "502": { "description": "Bad Gateway" }, "503": { "description": "Service Unavailable" } }, "definitions": { "exceptionDetailType": { "title": "Error Detail", "description": "Complex type that contains error details for a REST call.", "type": "object", "properties": { "type": { "type": "string", "description": "Absolute URI [RFC3986] that identifies the problem type. When dereferenced, it SHOULD provide a human-readable summary of the problem (for example, using HTML)." }, "title": { "type": "string", "description": "Short, human-readable summary of the problem. The summary SHOULD NOT change for subsequent occurrences of the problem, except for purposes of localization." }, "status": { "type": "integer", "description": "HTTP status code for this occurrence of the problem, set by the origin server." }, "detail": { "type": "string", "description": "Human-readable description specific to this occurrence of the problem." }, "instance": { "type": "string", "description": "Absolute URI that identifies the specific occurrence of the problem. It may or may not provide additional information if dereferenced." }, "o:errorCode": { "type": "string", "description": "Application error code, which is different from HTTP error code." }, "o:errorPath": { "type": "string", "description": "Path to the problem at the resource or property level." }, "o:errorDetails": { "description": "Details of the error message, consisting of a hierarchical tree structure.", "type": "array", "items": { "$ref": "#/definitions/errorInstance" } }, "links": { "$ref": "#/definitions/links" } } }, "errorInstance": { "title": "Error Instance Details", "description": "Complex type that contains error instance details for a REST call.", "type": "object", "properties": { "type": { "type": "string", "description": "Absolute URI [RFC3986] that identifies the problem type. When dereferenced, it SHOULD provide a human-readable summary of the problem (for example, using HTML)." }, "title": { "type": "string", "description": "Short, human-readable summary of the problem. The summary SHOULD NOT change for subsequent occurrences of the problem, except for purposes of localization." }, "status": { "type": "integer", "description": "HTTP status code for this occurrence of the problem, set by the origin server." }, "detail": { "type": "string", "description": "Human-readable description specific to this occurrence of the problem." }, "instance": { "type": "string", "description": "Absolute URI that identifies the specific occurrence of the problem. It may or may not provide additional information if dereferenced." }, "o:errorCode": { "type": "string", "description": "Application error code, which is different from HTTP error code." }, "o:errorPath": { "type": "string", "description": "Path to the problem at the resource or property level." } } }, "instanceLink": { "type": "object", "description": "Metadata describing link description objects that MAY appear in the JSON instance representation.", "properties": { "href": { "description": "URI [RFC3986] or URI Template [RFC6570]. If the value is set to URI Template, then the \"templated\" property must be set to true.", "type": "string" }, "rel": { "description": "Name of the link relation that, in addition to the type property, can be used to retrieve link details. For example, href or profile.", "type": "string" }, "templated": { "description": "Boolean flag that specifies that \"href\" property is a URI or URI Template. If the property is a URI template, set this value to true. By default, this value is false.", "type": "boolean", "default": false }, "method": { "description": "HTTP method for requesting the target of the link.", "type": "string", "enum": [ "GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS", "HEAD" ] }, "targetSchema": { "description": "Link to the metadata of the resource, such as JSON-schema, that describes the resource expected when dereferencing the target resource..", "type": "string" }, "operationId": { "description": "The operationId of the path you can call to follow this link. This allows you to look up not only the path and method, but the description of that path and any parameters you need to supply.", "type": "string" }, "title": { "description": "Exact copy of the \"summary\" field on the linked operation.", "type": "string" } } }, "links": { "type": "array", "items": { "$ref": "#/definitions/instanceLink" } }, "revenueInventoryStatisticsSearchType": { "type": "object", "description": "Fetch criteria type for fetching revenue inventory statistics.", "properties": { "dateRangeStart": { "description": "The starting value of the date range.", "type": "string", "format": "date" }, "dateRangeEnd": { "description": "The ending value of the date range.", "type": "string", "format": "date" }, "roomTypes": { "description": "The optional room types by which revenue and inventory statistics will be grouped.", "type": "array", "maxItems": 4000, "items": { "type": "string", "minLength": 0, "maxLength": 20 } }, "marketCodes": { "description": "The market codes for which revenue and inventory statistics will be gathered.", "type": "array", "maxItems": 4000, "items": { "type": "string", "minLength": 0, "maxLength": 20 } }, "guaranteeCodes": { "description": "The reservation guarantee codes for which revenue and inventory statistics will be gathered.", "type": "array", "maxItems": 4000, "items": { "type": "string", "minLength": 0, "maxLength": 20 } }, "groupBy": { "description": "Group by instructions for revenue inventory statistics that can be used in request operation. Response data will be grouped according to the values provided in this array. MarketCode and RoomType grouping is used for past and future revenue and inventory statistics while GuaranteeType is used only for future revenue and inventory statistics.", "type": "array", "uniqueItems": true, "items": { "type": "string", "enum": [ "MarketCode", "RoomType", "GuaranteeType" ] } } } }, "revenueInventoryStatisticsDetails": { "type": "object", "description": "Revenue Inventory Statistics for the current occupancy date which might include data grouped by room type, market and reservation guarantee code.", "properties": { "revInvStats": { "type": "array", "maxItems": 4000, "items": { "$ref": "#/definitions/revenueInventoryStatisticsType" } } } }, "revenueInventoryStatisticsType": { "type": "object", "description": "Revenue and statistics for an occupancy date and hotel code.", "properties": { "property": { "description": "The property for which revenue inventory statistics are fetched", "type": "string", "minLength": 0, "maxLength": 20 }, "occupancyDate": { "description": "The occupancy date for which the revenue inventory statistics are fetched.", "type": "string", "format": "date" }, "resType": { "type": "string", "minLength": 0, "maxLength": 20 }, "marketCode": { "description": "The market code for which the revenue inventory statistics are fetched.", "type": "string", "minLength": 0, "maxLength": 20 }, "roomType": { "description": "The room type for which the revenue inventory statistics are fetched.", "type": "string", "minLength": 0, "maxLength": 20 }, "physicalRooms": { "description": "The statistical figure for physical rooms.", "type": "string" }, "ooRooms": { "description": "The statistical figure for out of order rooms.", "type": "string" }, "osRooms": { "description": "The statistical figure for out of service rooms.", "type": "string" }, "roomsSold": { "description": "The statistical figure for rooms sold.", "type": "string" }, "roomRevenue": { "description": "The statistical figure for room revenue.", "type": "string" }, "roomArrivals": { "description": "The statistical figure for arrival rooms.", "type": "string" }, "roomDepartures": { "description": "The statistical figure of departure rooms.", "type": "string" }, "foodRevenue": { "description": "The statistical figure for food revenue.", "type": "string" }, "totalRevenue": { "description": "The statistical figure for total revenue.", "type": "string" }, "cancelledRooms": { "description": "The statistical figure for canceled rooms.", "type": "string" }, "noShowRooms": { "description": "The statistical figure of no show rooms.", "type": "string" } } }, "warningsType": { "type": "array", "description": "Used in conjunction with the Success element to define a business error.", "maxItems": 4000, "items": { "$ref": "#/definitions/warningType" } }, "warningType": { "type": "object", "description": "Used when a message has been successfully processed to report any warnings or business errors that occurred.", "properties": { "value": { "type": "string", "description": "Property Value" }, "shortText": { "description": "An abbreviated version of the error in textual format.", "type": "string", "maxLength": 2000 }, "code": { "description": "If present, this refers to a table of coded values exchanged between applications to identify errors or warnings.", "type": "string", "minLength": 0, "maxLength": 20 }, "docURL": { "description": "If present, this URL refers to an online description of the error that occurred.", "type": "string", "maxLength": 2000 }, "status": { "description": "If present, recommended values are those enumerated in the ErrorRS, (NotProcessed Incomplete Complete Unknown) however, the data type is designated as string data, recognizing that trading partners may identify additional status conditions not included in the enumeration.", "type": "string", "maxLength": 2000 }, "tag": { "description": "If present, this attribute may identify an unknown or misspelled tag that caused an error in processing. It is recommended that the Tag attribute use XPath notation to identify the location of a tag in the event that more than one tag of the same name is present in the document. Alternatively, the tag name alone can be used to identify missing data [Type=ReqFieldMissing].", "type": "string", "maxLength": 2000 }, "recordId": { "description": "If present, this attribute allows for batch processing and the identification of the record that failed amongst a group of records. This value may contain a concatenation of a unique failed transaction ID with specific record(s) associated with that transaction.", "type": "string", "maxLength": 2000 }, "type": { "description": "The Warning element MUST contain the Type attribute that uses a recommended set of values to indicate the warning type. The validating XSD can expect to accept values that it has NOT been explicitly coded for and process them by using Type =\"Unknown\".", "type": "string", "minLength": 0, "maxLength": 20 }, "language": { "description": "Language identification.", "type": "string" }, "rph": { "description": "Reference Place Holder used as an index for this warning.", "type": "string", "minLength": 1, "maxLength": 8 } } }, "inventoryCriteriaType": { "type": "object", "description": "Fetch criteria type for fetching revenue inventory statistics.", "properties": { "dateRangeStart": { "description": "The starting value of the date range.", "type": "string", "format": "date" }, "dateRangeEnd": { "description": "The ending value of the date range.", "type": "string", "format": "date" }, "reportCode": { "enum": [ "RoomsAvailabilitySummary" ], "description": "Identifies the type of statistics collected. Each ReportCode corresponds to a set of category summaries based upon a predetermined agreement.", "type": "string" }, "paramList": { "description": "List of supported parameter names and its parameter values.", "type": "array", "maxItems": 100, "items": { "$ref": "#/definitions/paramListType" } }, "filterList": { "description": "List of supported filter names and its filter values.", "type": "array", "maxItems": 2, "items": { "$ref": "#/definitions/filterListType" } }, "groupBy": { "description": "Group by instructions for inventory statistics that can be used in request operation.", "type": "string", "enum": [ "RoomType", "RoomClass" ] }, "channel": { "description": "Channel Code.", "type": "string", "minLength": 1, "maxLength": 20 } }, "required": [ "dateRangeStart", "dateRangeEnd", "reportCode" ] }, "paramListType": { "type": "object", "description": "Parameter name and its Parameter value as a pair.", "properties": { "paramName": { "description": "Property Name.", "type": "string", "enum": [ "CancelledYN", "DeductRoomsYN", "HouseArrPersonsYN", "HouseArrRoomsYN", "HouseAvailPercYN", "HouseAvailRoomsExcludingOverbookingYN", "HouseAvailRoomsYN", "HouseAvailTenPercYN", "HouseBlkDeductNpuYN", "HouseBlkDeductPuYN", "HouseBlkTentNpuYN", "HouseBlkTentPuYN", "HouseDayUsePersonYN", "HouseDayUseRoomYN", "HouseDepPersonsYN", "HouseDepRoomsYN", "HouseInventoryRoomsYN", "HouseMaxAvailabilityExcludingOverbookingYN", "HouseMaxAvailabilityYN", "HouseMaxOccupancyYN", "HouseMinAvailabilityExcludingOverbookingYN", "HouseMinAvailabilityYN", "HouseOccPercYN", "HouseOccTenPercYN", "HouseOccupancyYN", "HouseOOOYN", "HouseOOSRoomsYN", "HouseOverBookingYN", "HousePeopleInHouseYN", "HousePhysicalRoomsYN", "HouseRoomsSoldYN", "HouseSellLimitYN", "HouseTentRoomsExcludingOverbookingYN", "HouseTentRoomsSoldYN", "HouseTentRoomsYN", "NonOwnerExclusiveYN", "OutOfOrderRoomsYN", "OwnerExclusiveYN", "RestrictionsYN", "RoomArrPersonsYN", "RoomArrRoomsYN", "RoomAvailRoomsExcludingOverbookingYN", "RoomAvailRoomsYN", "RoomBlkDeductNpuYN", "RoomBlkDeductPuYN", "RoomBlkTentNpuYN", "RoomBlkTentPuYN", "RoomCancelledYN", "RoomDayUsePersonYN", "RoomDayUseRoomYN", "RoomDepPersonsYN", "RoomDepRoomsYN", "RoomInventoryRoomsYN", "RoomMaxAvailabilityExcludingOverbookingYN", "RoomMaxAvailabilityYN", "RoomMaxOccupancyYN", "RoomMinAvailabilityExcludingOverbookingYN", "RoomMinAvailabilityYN", "RoomOccupancyYN", "RoomOOOYN", "RoomOOSRoomsYN", "RoomOverBookingYN", "RoomPeopleInHouseYN", "RoomPhysicalRoomsYN", "RoomRestrictionsYN", "RoomRoomsSoldYN", "RoomSellLimitYN", "RoomTentRoomsExcludingOverbookingYN", "RoomTentRoomsYN", "RoomTentYN" ] }, "paramValue": { "description": "Property Value.", "type": "string", "enum": [ "Y", "N" ] } }, "required": [ "paramName", "paramValue" ] }, "filterListType": { "type": "object", "description": "Filter name with its value.", "properties": { "filterName": { "description": "Filter Name.", "type": "string", "enum": [ "RoomClassList", "RoomTypeWildCardList" ] }, "filterValue": { "description": "Filter Value. Mulitple values can be passed as comma separated values. example : if filterName is say 'RoomClassList' then its corresponding filterValue would mean room class which can be comma separated like 'DAILY,RACK'", "type": "string", "minLength": 0, "maxLength": 4000 } }, "required": [ "filterName", "filterValue" ] }, "inventoryStatisticsDetails": { "type": "array", "description": "List of inventory statistics that is grouped by statistic date.", "maxItems": 4000, "items": { "$ref": "#/definitions/statisticType" } }, "statisticType": { "type": "object", "description": "Defines all details needed to create a statistical report.", "properties": { "statistics": { "description": "Statistic Codes.", "type": "array", "maxItems": 4000, "items": { "$ref": "#/definitions/statisticCodeType" } }, "hotelName": { "description": "A text field used to communicate the proper name of the hotel.", "type": "string", "minLength": 0, "maxLength": 80 }, "reportCode": { "description": "Identifies the type of statistics collected. Each ReportCode corresponds to a set of category summaries based upon a predetermined agreement.", "type": "string", "minLength": 0, "maxLength": 100 }, "description": { "description": "This element has revenue amount data for its revenue category such as Room Revenue, Food and Beverage Revenue.", "type": "string", "minLength": 0, "maxLength": 2000 } } }, "statisticCodeType": { "type": "object", "description": "Defines the codes and corresponding categories for which the data in the other elements has been gathered.", "properties": { "statisticDate": { "description": "Collection of statistic summary data.", "type": "array", "maxItems": 4000, "items": { "$ref": "#/definitions/statisticSetType" } }, "statCode": { "description": "Actual code used by the system to collect the statistics (e.g. CORP, RACK if category is Market Segment).", "type": "string", "minLength": 0, "maxLength": 20 }, "statCategoryCode": { "description": "Category Code category of StatCode attribute (e.g. Market Segment).", "type": "string", "minLength": 0, "maxLength": 40 }, "statCodeClass": { "description": "Class grouping of StatCode attribute.", "type": "string", "minLength": 0, "maxLength": 40 }, "description": { "description": "Statistic code description.", "type": "string", "minLength": 0, "maxLength": 2000 } } }, "statisticSetType": { "type": "object", "description": "An instance of a statistic, which is a set containing revenue category and number category summaries.", "properties": { "revenue": { "description": "Collection of RevenueCategorySummary elements. Used if revenue values reported.", "type": "array", "maxItems": 4000, "items": { "$ref": "#/definitions/revenueCategorySummaryType" } }, "inventory": { "description": "Collection of CountCategorySummary elements. Used if count values reported.", "type": "array", "maxItems": 4000, "items": { "$ref": "#/definitions/numericCategorySummaryType" } }, "statisticDate": { "description": "Date of the statistic.", "type": "string", "format": "date", "maxLength": 8 }, "weekendDate": { "description": "Determines whether statistic date is a weekend date.", "type": "boolean" } } }, "numericCategorySummaryType": { "type": "object", "description": "This element has count data for each count category such as number of guests, rooms occupied, etc.", "properties": { "value": { "description": "The total count for the category in NumericCategoryCode.", "type": "number" }, "code": { "description": "The representation of a numeric category such as Guests : Number of guests, RoomsOcc : Rooms occupied.", "type": "string", "minLength": 0, "maxLength": 40 } } }, "revenueCategorySummaryType": { "type": "object", "description": "This element has revenue amount data for its revenue category such as Room Revenue, Food and Beverage Revenue.", "properties": { "code": { "description": "The representation of a revenue category.", "type": "string", "minLength": 0, "maxLength": 40 }, "amount": { "description": "A monetary amount.", "type": "number" }, "currencyCode": { "description": "Provides a currency code to reflect the currency in which an amount may be expressed.", "type": "string", "minLength": 3, "maxLength": 3 } } }, "sellLimitByDateStatus": { "type": "object", "description": "Response for sell limits status ", "properties": { "warnings": { "description": "List of warnings that occurred.", "$ref": "#/definitions/warningsType" }, "links": { "$ref": "#/definitions/links" } } }, "sellLimitsByDate": { "type": "array", "description": "Request for setting sell limits for house, room type, room class.", "maxItems": 4000, "items": { "$ref": "#/definitions/sellLimitByDateType" } }, "sellLimitByDateType": { "type": "object", "description": "This type is used by sell limit request.", "properties": { "houseSellLimits": { "description": "Collection of House level sell limit by the date.", "type": "array", "maxItems": 4000, "items": { "$ref": "#/definitions/houseSellLimitType" } }, "roomTypeSellLimits": { "description": "Collection of Room type level sell limit by the date.", "type": "array", "maxItems": 4000, "items": { "$ref": "#/definitions/roomTypeSellLimitType" } }, "roomClassSellLimits": { "description": "Collection of Room Class level sell limit by the date.", "type": "array", "maxItems": 4000, "items": { "$ref": "#/definitions/roomClassSellLimitType" } } } }, "houseSellLimitType": { "type": "object", "properties": { "date": { "type": "string", "format": "date" }, "amount": { "type": "number" }, "flatOrPercentage": { "type": "string", "description": "Indicates if sell limit is flat or percentage.", "enum": [ "Flat", "Percentage" ] } } }, "roomClassSellLimitType": { "type": "object", "properties": { "date": { "type": "string", "format": "date" }, "amount": { "type": "number" }, "flatOrPercentage": { "type": "string", "description": "Indicates if sell limit is flat or percentage.", "enum": [ "Flat", "Percentage" ] }, "roomClass": { "type": "string", "minLength": 0, "maxLength": 20 } } }, "roomTypeSellLimitType": { "type": "object", "properties": { "date": { "type": "string", "format": "date" }, "amount": { "type": "number" }, "flatOrPercentage": { "type": "string", "description": "Indicates if sell limit is flat or percentage.", "enum": [ "Flat", "Percentage" ] }, "roomType": { "type": "string", "minLength": 0, "maxLength": 20 } } } }, "tags": [ { "name": "InventoryAsync", "description": "The Inventory Asynchronous module provides capability for an external system to retrieve inventory related data using an asynchronous approach." } ], "externalDocs": { "description": "Find out more about Oracle Hospitality", "url": "https://docs.oracle.com/en/industries/hospitality/integration_platforms.html" } }