Oracle Hospitality Front Office External API

The FrontOffice External module provides operations for OPERA Cloud to access FrontOffice operations from external interfaces.

Operations 2

POST /hotels/{hotelId}/externalRoomKeys Requests room key(s) #
POST /hotels/{hotelId}/roomKeysOutbound Requests room key(s) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/oracle-hospitality-frontofficeexternal-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

oracle-hospitality-frontofficeexternal-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OPERA Cloud Front Desk Operations Outbound Front Office External API
  description: APIs to cater for Front Desk related external (outbound) functionality with OPERA Cloud. These APIs facilitate various operations related to getting data from an external system, and inserting it into OPERA Cloud.<br /><br /> Compatible with OPERA Cloud release 26.2.0.0.<br /><br /><p> 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.</p>
  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
servers:
- url: /fof/v1
tags:
- name: FrontOfficeExternal
  description: The FrontOffice External module provides operations for OPERA Cloud to access FrontOffice operations from external interfaces.
paths:
  /hotels/{hotelId}/externalRoomKeys:
    post:
      summary: Requests room key(s)
      description: "API that manages requests for Door Lock Room Keys. This operation is used by OPERA Cloud connected to external Door Lock Systems systems via Outbound Systems configuration: \n\n<strong>OPERA Cloud utilizes this operation </strong>\n\n- to request new or additional room keys - e.g. when guest checks in, or additional keys post check in.\n\n- to request to activate new keys after check on e.g. when a room key has been lost for a room.\n\n- to request a room key which is not related to a guest reservation but valid for a defined time - (for show rooms, repair) - One Shot Key.\n\n- to request to re-encode a key whereby other keys for this room remain active.\n\n- to request to read a key data from a room key and display it to the user in the PMS.\n\n- to request to modify existing key data - upon room move or change of departure date. (online key systems only!!)\n\n- to request to remove / delete a room key from a room on. Usually sent with check out of a reservation.\n\nUse this API to post a room key action to the active Door Lock System.\n\n<strong>Notes on keyType values:</strong>\n\n<strong>keyType = New\n\nkeyType = Lost </strong>\n\nIt is expected that all previous active keys for the room will become invalid.\n\nIt is expected that partner system handles multiple keys being active in case numberOfKeys is >1.\n\n<strong>keyType = Duplicate\n\nkeyType = ReEncode</strong>\n\nIt is expected that existing active keys for this room remain active.\n\n<strong>keyType = OneShot</strong>\n\nIt is expected that the room key is only valid for a room for specific time (for maintenance or Show room).\n\nIt is never related to a reservation.\n\n<strong>keyType = Read</strong> A request to the Key Card system to read Key Card information from requested Key Encoder/reader.\n\nThe Key Read functionality is of pure informational purpose. None of the received information is stored or processed in the PMS, and it is only for display to the user.\n\n<strong>keyType = Remove</strong>\n\nIt is expected that with this request all active keys for a room or reservation will become inactive or invalid so they will not be able to open the room after defined validityEnd time.\n\n<strong>Additional KeyType actions used by Online Door Lock Systems:</strong>\n\n<strong>Online Key card Systems</strong> are systems which do not write guest data to the room key directly but do store guest data internally and send the information to the related door lock.\n\n<strong>keyType = ModifyStay</strong>\n\nFor Online Door Lock Systems - Request to adjust Room key data when guest changes length of stay (validityEnd)\n\n<strong>keyType = RoomMove</strong>\n\nFor Online Door Lock Systems - adjust Room key data when guest performs room move. \n\n<p><strong>OperationId:</strong> postExternalRoomKeys</p>"
      operationId: postExternalRoomKeys
      deprecated: true
      parameters:
      - name: hotelId
        in: path
        required: true
        description: Unique ID of the hotel
        schema:
          type: string
          maxLength: 2000
          minLength: 1
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      responses:
        '201':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'
          description: 'Response from the active Door Locking System Property Interface to the post request.<p><strong>Note on Response messages:</strong>


            It is necessary to specify both the PMS ''encoderTerminal'' and the Key Service system''s coder (encoderId) in cases where more than one PMS workstation may be addressing one key coder. ORACLE PMS will NOT send another Request command automatically should a negative response be received. The user sees the response and decides if another try should be made.<p>'
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/roomKeyExternalDetails'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '413':
          $ref: '#/components/responses/413'
        '414':
          $ref: '#/components/responses/414'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
      tags:
      - FrontOfficeExternal
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              allOf:
              - $ref: '#/components/schemas/roomKeyExternal'
        description: Request for generation of room key.
        required: true
  /hotels/{hotelId}/roomKeysOutbound:
    post:
      summary: Requests room key(s)
      description: "API that manages requests for Door Lock Room Keys. This operation is used by OPERA Cloud connected to external Door Lock Systems systems via Outbound Systems configuration: \n\n<strong>OPERA Cloud utilizes this operation </strong>\n\n- to request new or additional room keys - e.g. when guest checks in, or additional keys post check in.\n\n- to request to activate new keys after check on e.g. when a room key has been lost for a room.\n\n- to request a room key which is not related to a guest reservation but valid for a defined time - (for show rooms, repair) - One Shot Key.\n\n- to request to re-encode a key whereby other keys for this room remain active.\n\n- to request to read a key data from a room key and display it to the user in the PMS.\n\n- to request to modify existing key data - upon room move or change of departure date. (online key systems only!!)\n\n- to request to remove / delete a room key from a room on. Usually sent with check out of a reservation.\n\nUse this API to post a room key action to the active Door Lock System.\n\n<strong>Notes on keyType values:</strong>\n\n<strong>keyType = New\n\nkeyType = Lost </strong>\n\nIt is expected that all previous active keys for the room will become invalid.\n\nIt is expected that partner system handles multiple keys being active in case numberOfKeys is >1.\n\n<strong>keyType = Duplicate\n\nkeyType = ReEncode</strong>\n\nIt is expected that existing active keys for this room remain active.\n\n<strong>keyType = OneShot</strong>\n\nIt is expected that the room key is only valid for a room for specific time (for maintenance or Show room).\n\nIt is never related to a reservation.\n\n<strong>keyType = Read</strong> A request to the Key Card system to read Key Card information from requested Key Encoder/reader.\n\nThe Key Read functionality is of pure informational purpose. None of the received information is stored or processed in the PMS, and it is only for display to the user.\n\n<strong>keyType = Remove</strong>\n\nIt is expected that with this request all active keys for a room or reservation will become inactive or invalid so they will not be able to open the room after defined validityEnd time.\n\n<strong>Additional KeyType actions used by Online Door Lock Systems:</strong>\n\n<strong>Online Key card Systems</strong> are systems which do not write guest data to the room key directly but do store guest data internally and send the information to the related door lock.\n\n<strong>keyType = ModifyStay</strong>\n\nFor Online Door Lock Systems - Request to adjust Room key data when guest changes length of stay (validityEnd)\n\n<strong>keyType = RoomMove</strong>\n\nFor Online Door Lock Systems - adjust Room key data when guest performs room move. \n\n<p><strong>OperationId:</strong> postRoomKeysOutbound</p>"
      operationId: postRoomKeysOutbound
      parameters:
      - name: hotelId
        in: path
        required: true
        description: Unique ID of the hotel
        schema:
          type: string
          maxLength: 2000
          minLength: 1
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/externalData'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/x-request-id'
      - $ref: '#/components/parameters/x-originating-application'
      responses:
        '201':
          headers:
            Content-Language:
              description: Audience language
              x-example: en-GB
              schema:
                type: string
                pattern: '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'
          description: 'Response from the active Door Locking System Property Interface to the post request.<p><strong>Note on Response messages:</strong>


            It is necessary to specify both the PMS ''encoderTerminal'' and the Key Service system''s coder (encoderId) in cases where more than one PMS workstation may be addressing one key coder. ORACLE PMS will NOT send another Request command automatically should a negative response be received. The user sees the response and decides if another try should be made.<p>'
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/roomKeysOutboundDetails'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '413':
          $ref: '#/components/responses/413'
        '414':
          $ref: '#/components/responses/414'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
      tags:
      - FrontOfficeExternal
      requestBody:
        content:
          application/json;charset=UTF-8:
            schema:
              allOf:
              - $ref: '#/components/schemas/roomKeysOutbound'
        description: Request for generation of room key.
        required: true
components:
  responses:
    '406':
      description: Not acceptable.
    '414':
      description: Request URI Too Large
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/exceptionDetailType'
    '403':
      description: Forbidden
    '413':
      description: Request Entity Too Large
    '415':
      description: Unsupported Media Type
    '404':
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/exceptionDetailType'
    '502':
      description: Bad Gateway
    '500':
      description: System Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/exceptionDetailType'
    '503':
      description: Service Unavailable
    '401':
      description: Unauthorized
    '405':
      description: Method not allowed
  schemas:
    printDataType:
      type: object
      description: Lists the text, file or picture to print onto a Guest room key (only for roomKeyType is HardKey).
      properties:
        printText:
          description: key options code.
          type: string
          minLength: 0
          maxLength: 200
        printFile:
          description: Base64 format of file representing data to print.
          type: string
          format: byte
        printPicture:
          description: Base64 format of picture representing data to print.
          type: string
          format: byte
    keyOptionsResponseType:
      type: object
      description: This contains code and description information for key options.
      properties:
        keyOptionsCode:
          description: key options code.
          type: string
          minLength: 0
          maxLength: 40
        keyOptionDescription:
          description: key options description.
          type: string
          minLength: 0
          maxLength: 40
        isEnabled:
          description: Indicates that the keyOption is enabled for this key.
          type: boolean
        default:
          description: Indicates that this keyOption is a default access.
          type: boolean
    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
    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.
    roomKeysOutboundDetails:
      type: object
      description: Response for the key request made to DLS from OPERA Cloud.
      properties:
        encoderId:
          type: string
          description: Unique Id as defined by Door Lock System.
          maxLength: 2000
        encoderTerminal:
          type: string
          description: The Unique PMS encoder name linked with the encoderId
          minLength: 1
          maxLength: 2000
        reservationIdList:
          description: Collection of unique reservation identifiers for the reservation we are trying to make a room key for.
          $ref: '#/components/schemas/uniqueIDListType'
        roomId:
          description: The PMS room number to generate a key for.
          type: string
          maxLength: 2000
        keyTrack:
          description: KeyTrack Data.
          type: array
          items:
            $ref: '#/components/schemas/keyTrackType'
        keyValidityStart:
          type: string
          description: 'Date/Time Key is valid from - only send in response for keyType: ''Read'' request. Uses the hotel''s time zone.'
          format: date-time
        keyValidityEnd:
          type: string
          description: 'Date/Time Key is valid to - only send in response for keyType: ''Read'' request. Uses the hotel''s time zone.'
          format: date-time
        noOfKeys:
          type: integer
          description: Number of keys to be created.The value is always 1
        responseText:
          type: string
          description: A user-friendly text with information on why a request is not successful
          maxLength: 2000
        responseCode:
          $ref: '#/components/schemas/roomKeyResponseCodeType'
        additionalRooms:
          description: Collection of additional rooms to be included in key creation of reservation room.
          type: array
          maxItems: 999
          items:
            type: string
            minLength: 0
            maxLength: 20
        keyOptions:
          description: Lists all PMS access areas.
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/keyOptionsResponseType'
        userId:
          type: string
          description: Unique identifier for the PMS user.
          maxLength: 2000
        digitalKeyData:
          description: 'Base64 format of Mobile Key data provided by DLS System which the external system requested - only send in response for roomKeyType: ''MobileKey'''
          type: string
          format: byte
        keyImage:
          description: 'Image of the created key - only send in response for roomKeyType: ''KeyPayload'''
          type: string
          format: byte
        cardSerialNumber:
          description: 'Unique identifier of RFID card used for KeyPayload generation - only send in response for roomKeyType: ''KeyPayload''.'
          type: string
          maxLength: 80
        keyCreationTime:
          type: string
          description: Date/Time the key has been generated by Door Locking system. Uses the hotel's time zone.
          format: date-time
        roomKeyType:
          $ref: '#/components/schemas/externalRoomKeyType'
        keyUserType:
          $ref: '#/components/schemas/keyUserType'
      required:
      - roomId
      - responseCode
      - encoderTerminal
      - roomKeyType
      - keyUserType
      - keyValidityStart
      - keyValidityEnd
      - keyCreationTime
    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: '#/components/schemas/errorInstance'
        links:
          $ref: '#/components/schemas/links'
    keyOptionsType:
      type: object
      description: This contains code and description information for key options.
      properties:
        keyOptionsCode:
          description: key options code.
          type: string
          minLength: 0
          maxLength: 40
        keyOptionDescription:
          description: key options description.
          type: string
          minLength: 0
          maxLength: 40
    roomKeyExternal:
      type: object
      description: Request for generation of room key used for OutBound.
      properties:
        encoderId:
          type: string
          description: Unique Id as defined by Door Lock System.
          minLength: 1
          maxLength: 2000
        encoderTerminal:
          type: string
          description: The Unique PMS encoder name linked with the encoderId
          minLength: 1
          maxLength: 2000
        roomId:
          description: The PMS room number to generate a key for.
          type: string
          maxLength: 2000
        oldRoomId:
          description: Old Room Number is used when a room move (keyType RoomMove) is performed.
          type: string
          maxLength: 2000
        noOfKeys:
          type: integer
          description: Number of keys to be created.The value is always 1
          minimum: 1
          maximum: 1
          default: 1
        reservationIdList:
          description: Collection of unique reservation identifiers for the reservation we are trying to make a room key for.
          $ref: '#/components/schemas/uniqueIDListType'
        guestShareFlag:
          type: boolean
          description: Indicates if Guest is a sharer or not
        OldGuestShareFlag:
          type: boolean
          description: Indicates if old Guest room is a sharer or not when a room move (keyType RoomMove) is performed.
        keyOptions:
          type: string
          maxLength: 2000
          description: Lists the access areas defined in PMS valid for the room key.
        keyValidityStart:
          type: string
          description: The date/time the room key is valid from.
          format: date-time
        keyValidityEnd:
          type: string
          description: The date/time the room key is valid to.
          format: date-time
        keyType:
          $ref: '#/components/schemas/roomKeyOutBoundType'
        keyTrack:
          description: KeyTrack Data.
          $ref: '#/components/schemas/keyTrackType'
        additionalRooms:
          description: Collection of additional rooms to be included in key creation of reservation room.
          type: array
          maxItems: 999
          items:
            type: string
            minLength: 0
            maxLength: 20
        oldAdditionalRooms:
          description: Collection of old additional rooms in key creation of reservation room when a room move (keyType RoomMove) is performed.
          type: array
          maxItems: 999
          items:
            type: string
            minLength: 0
            maxLength: 20
        userId:
          type: string
          description: Unique identifier for the PMS user.
          maxLength: 2000
        requestType:
          $ref: '#/components/schemas/requestType'
      required:
      - keyType
      - encoderTerminal
      - encoderId
    keyUserType:
      type: string
      description: Simple type for representing key user type. 'Guest' = request Opera Guest room key
      enum:
      - Guest
    roomKeyExternalDetails:
      type: object
      description: Response for the key request made to DLS from OPERA Cloud.
      properties:
        encoderId:
          type: string
          description: Unique Id as defined by Door Lock System.
          maxLength: 2000
        encoderTerminal:
          type: string
          description: The Unique PMS encoder name linked with the encoderId
          minLength: 1
          maxLength: 2000
        reservationIdList:
          description: Collection of unique reservation identifiers for the reservation we are trying to make a room key for.
          $ref: '#/components/schemas/uniqueIDListType'
        roomId:
          description: The PMS room number to generate a key for.
          type: string
          maxLength: 2000
        keyTrack:
          description: KeyTrack Data.
          type: array
          items:
            $ref: '#/components/schemas/keyTrackType'
        keyOptions:
          type: string
          maxLength: 200
          description: 'Lists all PMS access areas - only send in response for keyType: ''Read'' request'
        keyValidityStart:
          type: string
          description: 'Date/Time Key is valid from - only send in response for keyType: ''Read'' request'
          format: date-time
        keyValidityEnd:
          type: string
          description: 'Date/Time Key is valid to - only send in response for keyType: ''Read'' request'
          format: date-time
        responseText:
          type: string
          description: A user-friendly text with information on why a request is not successful
          maxLength: 2000
        responseCode:
          $ref: '#/components/schemas/roomKeyResponseCodeType'
        additionalRooms:
          description: Collection of additional rooms to be included in key creation of reservation room.
          type: array
          maxItems: 999
          items:
            type: string
            minLength: 0
            maxLength: 20
      required:
      - roomId
      - responseCode
      - encoderTerminal
    keyTrackType:
      type: object
      properties:
        keyTrack1:
          type: string
          minLength: 0
          maxLength: 80
          description: specific data if configured
        keyTrack2:
          type: string
          minLength: 0
          maxLength: 2000
          description: Track2 data string sent by PMS if defined or string (e.g. RFID ID) sent by DLS system in response
        keyTrack3:
          type: string
          minLength: 0
          maxLength: 2000
          description: Includes the Key Pincode or a digital key string for use (in 201 response only)
    uniqueIDListType:
      type: array
      description: Unique Id that references an object uniquely in the system.
      maxItems: 4000
      items:
        $ref: '#/components/schemas/uniqueID_Type'
    roomKeyResponseCodeType:
      type: string
      description: 'Response Codes supported: OK - Successful; BY - Encoder Busy; UR - Unprocessable Request; RY - Retry'
      enum:
      - OK
      - BY
      - UR
      - RY
    externalRoomKeyType:
      type: string
      description: Simple type for representing room key request type. 'HardKey' = request for physical key card with RFID; 'MobileKey' = request for mobile key (no physical key); 'PinCode' = request for PinCode; 'KeyPayload' = request Key image from DLS System
      enum:
      - HardKey
      - MobileKey
      - PinCode
      - KeyPayload
    links:
      type: array
      items:
        $ref: '#/components/schemas/instanceLink'
    uniqueID_Type:
      type: object
      description: An identifier used to uniquely reference an object in a system (e.g. an airline reservation reference, customer profile reference, booking confirmation number, or a reference to a previous availability quote).
      properties:
        id:
          description: A unique identifying value assigned by the creating system. The ID attribute may be used to reference a primary-key value within a database or in a particular implementation.
          type: string
          minLength: 0
          maxLength: 80
        type:
          description: A reference to the type of object defined by the UniqueID element.
          type: string
          minLength: 0
          maxLength: 40
    roomKeyOutBoundType:
      type: string
      description: Simple type for representing room key type.
      enum:
      - New
      - Duplicate
      - Lost
      - OneShot
      - RoomMove
      - ReEncode
      - Remove
      - ModifyStay
      - Read
    requestType:
      type: string
      description: Simple type for representing request type.  Request specific data in response message. 'R1' = request for regular room Key; 'R2' = request for UDID or Track2 of room key; 'R3' = request for PinCode; 'R4' = request for mobile key (no physical key)
      enum:
      - R1
      - R2
      - R3
      - R4
    roomKeysOutbound:
      type: object
      description: Request for generation of room key used for OutBound.
      properties:
        encoderId:
          type: string
          description: Unique Id as defined by Door Lock System.
          minLength: 1
          maxLength: 2000
        encoderTerminal:
          type: string
          description: The Unique PMS encoder name linked with the encoderId
          minLength: 1
          maxLength: 2000
        roomId:
          description: The PMS room number to generate a key for.
          type: string
          maxLength: 2000
        oldRoomId:
          description: Old Room Number is used when a room move (keyType RoomMove) is performed.
          type: string
          maxLength: 2000
        noOfKeys:
          type: integer
          description: Number of keys to be created.
          minimum: 1
          maximum: 1
        reservationIdList:
          description: Collection of unique reservation identifiers for the reservation we are trying to make a room key for.
          $ref: '#/components/schemas/uniqueIDListType'
        guestShareFlag:
          type: boolean
          description: Indicates if Guest is a sharer or not
        OldGuestShareFlag:
          type: boolean
          description: Indicates if old Guest room is a sharer or not when a room move (keyType RoomMove) is performed.
        keyValidityStart:
          type: string
          description: The date/time the room key is valid from.
          format: date-time
        keyValidityEnd:
          type: string
          description: The date/time the room key is valid to.
          format: date-time
        keyType:
          $ref: '#/components/schemas/roomKeyOutBoundType'
        keyTrack:
          description: KeyTrack Data.
          $ref: '#/components/schemas/keyTrackType'
        additionalRooms:
          description: Collection of additional rooms to be included in key creation of reservation room.
          type: array
          maxItems: 999
          items:
            type: string
            minLength: 0
            maxLength: 20
        oldAdditionalRooms:
          description: Collection of old additiona

# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oracle-hospitality/refs/heads/main/openapi/oracle-hospitality-frontofficeexternal-api-openapi.yml