> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abrahospitality.com/llms.txt
> Use this file to discover all available pages before exploring further.

# HMS

> Connect ABRA to Infor HMS (Hotel Management Solutions)

# HMS Integration

ABRA integrates with Infor HMS (Hotel Management Solutions) to provide real-time synchronization of guest and reservation data.

## What Data Syncs

The following data is automatically synchronized from HMS to ABRA:

* **Reservations** - Booking details including confirmation number, dates, status, room type, and rate plan
* **Guest Profiles** - Name, contact information, address, and personal details
* **Room Assignments** - Current room types and rate plans
* **VIP Status** - Guest VIP indicator and code, mapped to ABRA tiers (Diamond, Platinum, Gold, Silver)
* **Notes** - Reservation notes and special requests

## How Sync Works

ABRA uses two methods to keep your data synchronized with HMS:

### Real-Time SOAP Push

<Info>
  Real-time SOAP push is the primary method for keeping ABRA in sync with HMS. All reservation and guest data flows through these webhook endpoints.
</Info>

HMS pushes SOAP/XML messages to ABRA using the OpenTravel Alliance (OTA) standard based on the HTNG 2016b specification. Messages are sent via SOAP 1.1 or 1.2 with WS-Addressing 1.0. When changes occur in HMS, ABRA automatically reflects those changes within moments.

**Reservation Events:**

| Event                                                                 | Description                                             |
| --------------------------------------------------------------------- | ------------------------------------------------------- |
| [New Reservation](/integrations/pms/hms/events/new-reservation)       | A new booking is created (`@ResStatus="Commit"`)        |
| [Update Reservation](/integrations/pms/hms/events/update-reservation) | An existing booking is modified (`@ResStatus="Modify"`) |
| [Cancel Reservation](/integrations/pms/hms/events/cancel-reservation) | A reservation is cancelled (`@ResStatus="Cancel"`)      |

All three reservation events use the same OTA message type (`OTA_HotelResNotifRQ`) and are distinguished by the `@ResStatus` attribute.

**Guest Profile Events:**

| Event                                                         | Description                    |
| ------------------------------------------------------------- | ------------------------------ |
| [New Profile](/integrations/pms/hms/events/new-profile)       | A new guest profile is created |
| [Update Profile](/integrations/pms/hms/events/update-profile) | Guest information is modified  |
| [Delete Profile](/integrations/pms/hms/events/delete-profile) | A guest profile is removed     |

All three profile events use the same `OTA_ProfileCreateRQ` message type. ABRA determines the action based on whether the profile already exists and the `@StatusCode` attribute (e.g., `@StatusCode='1'` signals deletion).

### REST API (On-Demand Pull)

ABRA can also query HMS via its REST API for on-demand data retrieval:

| Capability               | Description                                                          |
| ------------------------ | -------------------------------------------------------------------- |
| Fetch Reservation Detail | Look up a specific reservation by confirmation number or room number |
| Bulk Reservation Inquiry | Query reservations by date range                                     |
| Fetch Guest Profile      | Look up a guest profile by ID                                        |

The REST API serves as a fallback for data that may have been missed by the SOAP push, and powers features like the PMS reservation lookup tool.

## Reservation Status Mapping

For a full explanation of ABRA reservation statuses (including display-only "Arrivals" and "Departures"), see [Reservation Statuses](/concepts/reservation-statuses).

HMS sends reservation status via the `@ResStatus` attribute on the `OTA_HotelResNotifRQ` message. ABRA maps these values as follows:

### HMS @ResStatus → ABRA status

| HMS `@ResStatus` | OTA Meaning               | ABRA Status          |
| ---------------- | ------------------------- | -------------------- |
| `Commit`         | New reservation confirmed | **Upcoming**         |
| `Modify`         | Reservation updated       | *(no status change)* |
| `Cancel`         | Reservation cancelled     | **Cancelled**        |

Any other `@ResStatus` value (e.g. `Tentative`, `WaitList`) is mapped to **Upcoming** by default.

<Note>
  HMS does not push check-in or check-out events via SOAP. Unlike Oracle Opera or Maestro, there is no `InHouse` or `CheckOut` value sent in `@ResStatus`. ABRA determines **Checked In** and **Checked Out** status for HMS reservations via the [REST API](#rest-api-on-demand-pull), which reflects the current reservation state including in-house status.
</Note>

## Initial Setup

To connect ABRA to HMS, you'll need to exchange the following configuration:

**From ABRA** (provided to your HMS administrator):

* **ABRA SOAP Webhook URL** - The ABRA endpoint URL where HMS will send push events (HTTPS required). Found in your ABRA dashboard.

**From your Infor HMS administrator:**

* **REST API URL** - The HMS REST API base URL for on-demand queries
* **Username** - Credentials for both SOAP (WS-Security) and REST authentication
* **Password** - Credentials for both SOAP (WS-Security) and REST authentication
* **Property ID** - Your hotel/property identifier in HMS

<Info>
  The SOAP webhook URL is required for real-time push events. The REST API URL is recommended for full integration capabilities including on-demand reservation lookups.
</Info>

Your ABRA implementation team will work with your HMS administrator to obtain these credentials and configure the connection.

## Sync Status

Once connected, you can verify data is syncing correctly by checking that recent reservations and guest updates from HMS appear in ABRA. Contact ABRA support if you notice any discrepancies.
