Integrate Oracle Hospitality Integration Platform (OHIP)
Basic architecture
The NETx Server provides an interface which can be used to integrate information from the Oracle Hospitality Integration Platform (OHIP). Using this interface, information about the check-in/check-out procedure and the hotel room states can be retrieved.
The communication is based on a REST full HTTP web service protocol that is using JSON objects as data payload and a websocket to retrieve events like check-in / check-out or changing room status. The OHIP cloud service is the web API server and the NETx server is the client.
Here you can find our marketplace entry at Oracle:
On-boarding process at Oracle Cloud
To start the integration, an on-boarding process is required in the Opera cloud.
The required steps for this on-boarding process depend on the type of Identity Manager in Opera Cloud. Currently, two types of Identity Managers are available:
SSD: Shared Security Domain (legacy)
OCIM: OPERA Cloud Identity Manager (current and strategic direction)
Please note that it is not possible to select the Identity Manager – it is predefined by Oracle. Newer installation will use the OCIM. Older ones may use SSD but these will soon be migrated to OCIM. If they are unsure which type of Identity Manager you have, contact the Oracle representative for clarification.
How to determine if your are using SSD or OCIM?
You can identify the Identity Manager type by checking the OPERA Cloud PMS URL (not the OHIP URL).
If the URL includes “OPERA9”, you are using SSD.
If the OPERA Cloud URL includes an code (e.g., OCR4ENT) but does not contain “OPERA9", the customer is on OCIM.
Examples:
On-boarding for SSD
NETx needs for following information:
Identity Manager URL
Chain Code
Hotel id
Region
Confirmation that the hotel has an OPERA Cloud Foundation license
After having received this information, the on-boarding process works as follows:
NETx initiates an integration user request at the chain level via the Identity Manager URL.
Upon submission, your Chain Admin receives an email notification.
You must approve the request and ensures that the Chain-level WSACCESS role is assigned — only this role should be attached at this stage.
Once approved, NETx will receive an email confirming that the integration user has been created.
NETx can then onboard the environment using the approved integration user.
Important: Currently, only chain-level users can be onboarded in the Partner Developer Portal. Therefore, it is crucial that you approve the chain-level user request with the appropriate WSACCESS role.
After onboarding, if preferred, you may log into the Identity Manager and remove the chain-level WSACCESS role, then assign hotel-level WSACCESS roles instead. This is typically required when we need access to multiple hotels.
On-boarding for OCIM
NETx needs for following information:
Enterprise id
Chain Code
Hotel id
Region
Confirmation that the hotel has an OPERA Cloud Foundations license
After having received this information, the on-boarding process works as follows:
NETx starts the on-boarding using the Enterprise ID, Chain Code, and Region.
You will receive an email notification indicating a pending request.
You must login to the Customer Developer Portal to review and approve the request.
During approval, you can select specific hotels for which NETx is allowed to access.
Once approved, NETx is notified and can view the approval status within the Partner Developer Portal.
Integration steps within the NETx Server
After having finished the on-boarding process, you will get all the required information NETx. Start the Core Studio and open the menu Modules > OHIP > Configuration. With the dialog, enter all information that you got from NETx:
Afterwards, start the Core server. The OHIP driver will connect to the Oracle OHIP cloud service. When the connection to the cloud service is established successfully, the GATEWAY item will change to true. In addition, you will see the application name and the timestamp of the last successful pong request / response:
If the GATEWAY item is false, the connection is not working. Please check the server logs for possible reasons (e.g. wrong authentication keys, …).
After having established the connection to the Oracle OHIP cloud, the NETx server fetches all available rooms. These rooms will be shown immediately in the item tree:
The rooms are also stored in the Room Definitions:
If you do not want to use some of the fetched rooms, open the room definitions and convert them to comment. Do not delete them since they will be added again during the next server restart.
For room, the following items are available:
Item Name | Data type | Access rights | Notes |
|---|---|---|---|
FloorId | String | Read-only | Floor identifier the room is located on, taken from the OHIP room configuration. |
RoomId | String | Read-only | Room identifier as defined in the OHIP property management system. |
RoomChecked | Boolean | Read-only | True if a hotel guest has checked-in to the room. This means that the reservation status is InHouse – false otherwise. |
RoomCheckedForecast | Boolean | Read-only | True if a guest is expected (reservation status DueIn or Reserved) – false otherwise. |
ReservationState | String | Read-only | Current reservation status as reported by OHIP (e.g. Reserved, DueIn, InHouse, CheckedOut, Cancelled, NoShow). |
RoomStatus | Integer | Read/Write | Numeric encoding of the housekeeping room status (Clean, Dirty, Inspected, Pickup, OutOfOrder, OutOfService …). Writing this item sends a status update to OHIP. |
RoomStatusText | String | Read/Write | Textual representation of the housekeeping room status. Writing this item sends a status update to OHIP. |
FrontOfficeStatus | Integer | Read-only | Numeric encoding of the front-office occupancy status. |
FrontOfficeStatusText | String | Read-only | Textual representation of the front-office occupancy status (e.g. Vacant, Occupied). |
HousekeepingStatus | Integer | Read-only | Numeric encoding of the housekeeping cleanliness status. |
HousekeepingStatusText | String | Read-only | Textual representation of the housekeeping cleanliness status. |
GuestServiceRequest | Integer | Read/Write | Numeric encoding of the active guest service request. Writing this item sends the corresponding service request to OHIP. |
GuestServiceRequestText | String | Read/Write | Textual representation of the guest service request (e.g. DoNotDisturb, MakeUpRoom, GreenChoice). Writing this item sends the request to OHIP. |
GuestArrivalDate | DateTime | Read-only | Start date of the current reservation (check-in date). |
GuestDepartureDate | DateTime | Read-only | End date of the current reservation (check-out date). |
GuestEmail | String | Read-only | Email address of the primary guest, when provided by OHIP. |
GuestFirstName | String | Read-only | Given name of the primary guest. |
GuestId | String | Read-only | Unique guest identifier as provided by OHIP. |
GuestLanguage | String | Read-only | Language code of the primary guest as provided by OHIP. |
GuestLastName | String | Read-only | Surname of the primary guest. |
GuestName | String | Read-only | Concatenation of the primary guest's given name and surname ( |
GuestNationalityCode | String | Read-only | Nationality code of the primary guest (ISO country code). |
GuestPreferredLanguage | String | Read-only | Preferred language of the primary guest. Currently mirrors GuestLanguage (same OHIP source field). |
GuestSecondLastName | String | Read-only | Middle-name / second-surname component of the primary guest (mapped from OHIP's MiddleName field). |
GuestTitle | String | Read-only | Salutation / title of the primary guest (e.g. Mr., Mrs., Dr.) as provided by OHIP. |
GuestType | String | Read-only | Classification of the primary guest record as provided by OHIP. |
Here are the possible values for the different state objects:
ReservationState
Text value | Numeric value | Notes |
|---|---|---|
Reserved | 0 | Reservation has been created but the guest has not yet arrived. |
Requested | 1 | Reservation has been requested but is not yet confirmed. |
NoShow | 2 | Guest did not arrive on the scheduled check-in date. |
Cancelled | 3 | Reservation has been cancelled. |
InHouse | 4 | Guest is checked in and currently staying in the room. |
CheckedOut | 5 | Guest has checked out and the stay is complete. |
Waitlisted | 6 | Reservation is on the waiting list — no room currently allocated. |
DueIn | 7 | Guest is due to arrive today. |
DueOut | 8 | Guest is due to depart today. |
Walkin | 9 | Walk-in guest checked in without a prior reservation. |
PendingCheckout | 10 | Departure process initiated; final folio settlement pending. |
RoomStatus
Text value | Numeric value | Notes |
|---|---|---|
Clean | 0 | Room has been cleaned but not yet inspected. Ready for guest assignment in hotels that do not require an inspection step. |
Dirty | 1 | Room requires full cleaning (typical state after a guest has checked out or after an occupied night). |
Pickup | 2 | Room only needs light tidying / a quick "pickup" service rather than a full clean. |
Inspected | 3 | Room has been cleaned and verified by a supervisor — ready for the next arrival. |
OutOfOrder | 4 | Room is unavailable for an extended period (e.g. maintenance, renovation) and is excluded from sellable inventory. |
OutOfService | 5 | Room is temporarily unavailable for a short period and remains in sellable inventory (Oracle distinguishes OOS from OOO precisely on this inventory impact). |
FrontOfficeStatus
Text value | Numeric value | Notes |
|---|---|---|
Vacant | 0 | The room is unoccupied from the front-office perspective. |
Occupied | 1 | A guest is checked in and the room is currently occupied. |
HousekeepingStatus
Text value | Numeric value | Notes |
|---|---|---|
Vacant | 0 | Housekeeping considers the room as not occupied. |
Occupied | 1 | Housekeeping considers the room as currently occupied by a guest. |
GuestServiceRequest
Text value | Numeric value | Notes |
|---|---|---|
DoNotDisturb | 0 | Guest does not want to be disturbed; housekeeping should skip the room. |
MakeUpRoom | 1 | Guest has requested the room to be cleaned / serviced. |
NoStatusSelected | 2 | No active service request — neutral / cleared state. |
Article applies to the following products:
NETx BMS Platform R3
NETx Multi Protocol Server R3