2 Prerequisites

The below prerequisites are required to successfully complete the steps in this guide.

Recommended Tools

The following software tools are recommended.

Table 2-1

Tool Description Links

Github

A Github repository containing both Oracle Hospitality REST API specifications and accompanying Postman Collections.

Documentation

Tool

Postman Collections

In the Postman collections folder in Github, you can download and use the Postman collections associated to the use cases explained in this guide.

Posting Charges Postman samples:

Postman - Get Reservation

Postman - Posting Charges

Postman - Post simple charges

Postman Documentation

Tool

GraphiQL

To better visualize the streaming API, a playground application is available that uses a tool called GraphiQL.

Documentation

Tool

Node Reference Implementation

A reference implementation for the Streaming API in Node JS.

Tool

Environment

The following environments and modules must be available to perform the above described Business cases with the OPERA Cloud APIs.

Table 2-2 Environments and Modules

OPERA Cloud Platform Module Description Minimum Version

OPERA Cloud Services

The customer must have a subscription to OPERA Cloud Foundation.

Oracle Hospitality Integration Platform (OHIP)

For customers, OHIP is included in the subscription to OPERA Cloud Foundation.

Partners need a subscription to Oracle Hospitality Integration Cloud Service.

The latest released version. OHIP is a single version product.

Configurations

Get the mandatory data to post charges.

To properly post charges to OPERA Cloud guest accounts, you must retrieve the following specific data:
  • Transaction Codes defined in OPERA Cloud: Required to post all different types of charges.
  • Minibar article Codes defined in OPERA Cloud: Required for posting charges for Minibar consumption.
  • Room numbers or Posting accounts defined in OPERA Cloud: Required to retrieve Reservation Information of an occupied room to post charge to.
  • Payment methods defined in OPERA Cloud: Required for posting auto-balance payments to posting accounts (for example, CASH, Credit Card, City Ledger, and so on).
  • Cashier Id defined in OPERA Cloud: Required for the specific Cashier Id for each integrated system performing charge postings to OPERA Cloud.

Table 2-3 Mandatory Data

Mandatory Data to Retrieve Description and Sample API Operation

Retrieve OPERA Cloud transaction codes

Sales charge transaction codes are required to post revenue, non-revenue, and tax charges to the guest accounts or to the non-guests accounts.

For more information about the Transaction Codes in OPERA Cloud, refer to the About Transaction Codes topic in the OPERA Cloud Services user guide.

The partner system must know the revenue transaction codes that are defined in OPERA Cloud PMS and link these to the revenue items to be charged by the system. Note that revenue transaction codes can vary from one customer to another.

Note:

The transaction code configuration may change sometimes, customer can add, rename, or remove transaction codes; therefore, it is recommended to rerun this operation at least once a day.

Use the cashiering operation fof/cfg/ getTransactionCodes to retrieve the configured transaction codes.

Get TransactionCodes

GET {{HostName}}/csh/v1/hotels/{{HotelId}}/transactionCodes?includeArticles=false 


{
    "trxCodes": [
        {
            "description": "No Show Charge",
            "trxServiceType": "S",
            "transactionCode": "1001",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Cancellation Fee",
            "trxServiceType": "S",
            "transactionCode": "1002",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Extra Bed",
            "trxServiceType": "S",
            "transactionCode": "1003",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false,
            "price": {
                "amount": 1
            }
        },
        {
            "description": "Early Check-In",
            "trxServiceType": "S",
            "transactionCode": "1005",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Old Balance",
            "trxServiceType": "S",
            "transactionCode": "1009",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Rooms Tax Excluded",
            "trxServiceType": "S",
            "transactionCode": "1100",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "AR Account",
            "trxServiceType": "S",
            "transactionCode": "1111",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Room Upsell",
            "trxServiceType": "S",
            "transactionCode": "1500",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Tax 5%",
            "trxServiceType": "S",
            "transactionCode": "1997",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Breakfast",
            "trxServiceType": "S",
            "transactionCode": "2000",
            "hotelId": "SAND01CN",
            "printTrxReceipt": true
        },
        {
            "description": "Early Check In",
            "trxServiceType": "S",
            "transactionCode": "2006",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Chocolate and Strawberries",
            "trxServiceType": "S",
            "transactionCode": "2008",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Restaurant Food",
            "trxServiceType": "S",
            "transactionCode": "2010",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Restaurant Beverage",
            "trxServiceType": "S",
            "transactionCode": "2011",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Bar Food",
            "trxServiceType": "S",
            "transactionCode": "2110",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Bar Beverage",
            "trxServiceType": "S",
            "transactionCode": "2111",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Beverage Alcohol",
            "trxServiceType": "S",
            "transactionCode": "2115",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Restaurant Beverage Tax Excluded",
            "trxServiceType": "S",
            "transactionCode": "2200",
            "hotelId": "SAND01CN",
            "printTrxReceipt": true
        },
        {
            "description": "Phone Charge",
            "trxServiceType": "S",
            "transactionCode": "3000",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Misc charges IFC",
            "trxServiceType": "S",
            "transactionCode": "3010",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Minibar Food",
            "trxServiceType": "S",
            "transactionCode": "4510",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Minibar Beverage",
            "trxServiceType": "S",
            "transactionCode": "4511",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Bike Rental",
            "trxServiceType": "S",
            "transactionCode": "5000",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Tickets",
            "trxServiceType": "S",
            "transactionCode": "5010",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Daily Paper",
            "trxServiceType": "S",
            "transactionCode": "5011",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Post Card",
            "trxServiceType": "S",
            "transactionCode": "5012",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Transport",
            "trxServiceType": "S",
            "transactionCode": "5016",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Movies",
            "trxServiceType": "S",
            "transactionCode": "5601",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Games",
            "trxServiceType": "S",
            "transactionCode": "5602",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "HSIA In-Room-Internet",
            "trxServiceType": "S",
            "transactionCode": "5603",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "Paid Out",
            "trxServiceType": "S",
            "transactionCode": "6000",
            "hotelId": "SAND01CN",
            "printTrxReceipt": true
        },
        {
            "description": "OPT Test Food 123",
            "trxServiceType": "S",
            "transactionCode": "7995",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        },
        {
            "description": "To Test Revenue Mapping in ASYNC Api of Resv1 23",
            "trxServiceType": "S",
            "transactionCode": "7999",
            "hotelId": "SAND01CN",
            "printTrxReceipt": false
        }
    ],
    "links": []
}

For posting Charges by a Point-of-Sale system (Restaurant POS), retrieve the related Transaction Codes with the below query for F&B Transaction Codes:

Get fof/cfg/ TransactionCodes

GET {{HostName}}/fof/config/v1/transactionCodes?hotelId={{HotelId}}&transactionGroupCodes=FB


200 Response: 


{
    "transactionCodes": [
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "FoodAndBeverage"
                },
                "group": {
                    "code": "FB",
                    "description": "Food and Beverage Revenue"
                },
                "subgroup": {
                    "code": "FB_MISC",
                    "description": "Food and Beverage Miscellaneous"
                }
            },
            "description": {
                "defaultText": "Bar Food"
            },
            "trxSetup": {
                "generatesType": "INCLUSIVE",
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "2110",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "group": {
                    "code": "FB",
                    "description": "Food and Beverage Revenue"
                },
                "subgroup": {
                    "code": "FB_MISC",
                    "description": "Food and Beverage Miscellaneous"
                }
            },
            "description": {
                "defaultText": "Bar Beverage"
            },
            "trxSetup": {
                "generatesType": "INCLUSIVE",
                "taxInclusive": true,
                "revenue": false,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "2111",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "FoodAndBeverage"
                },
                "group": {
                    "code": "FB",
                    "description": "Food and Beverage Revenue"
                },
                "subgroup": {
                    "code": "FB_MISC",
                    "description": "Food and Beverage Miscellaneous"
                }
            },
            "description": {
                "defaultText": "Beverage Alcohol"
            },
            "trxSetup": {
                "generatesType": "EXCLUSIVE",
                "taxInclusive": false,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": true
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "2115",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "FoodAndBeverage"
                },
                "group": {
                    "code": "FB",
                    "description": "Food and Beverage Revenue"
                },
                "subgroup": {
                    "code": "CLUB",
                    "description": "Club Restaurant"
                }
            },
            "description": {
                "defaultText": "Restaurant Beverage Tax Excluded"
            },
            "trxSetup": {
                "generatesType": "EXCLUSIVE",
                "taxInclusive": false,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "2200",
            "compTransaction": false,
            "printTrxReceipt": true,
            "hotelId": "SAND01CN"
        }
    ],
    "links": []
}


Suggested Query Parameter is by "transactionGroupCodes" and by "transactionSubgroupCodes" to fetch the related transaction code used for phone charges.

Get fof/cfg/ TransactionCodes

GET {{HostName}}/fof/config/v1/transactionCodes?hotelId={{HotelId}}&transactionGroupCodes=REV&transactionSubgroupsCodes=OTHR


200 Response: 


{
    "transactionCodes": [
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Old Balance"
            },
            "trxSetup": {
                "taxInclusive": false,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "1009",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Old Balance"
            },
            "trxSetup": {
                "taxInclusive": false,
                "revenue": true,
                "manualPosting": false,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "1011",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Telephone"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Phone Charge"
            },
            "trxSetup": {
                "generatesType": "INCLUSIVE",
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "3000",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "TEST_TRANSACTION_COD1"
            },
            "trxSetup": {
                "taxInclusive": false,
                "revenue": true,
                "manualPosting": false,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "50000",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Tickets"
            },
            "trxSetup": {
                "generatesType": "INCLUSIVE",
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": true,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "5010",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Daily Paper"
            },
            "trxSetup": {
                "generatesType": "INCLUSIVE",
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": true,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },            "amounts": {},
            "allowServiceRecovery": false,
            "code": "5011",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        }

     ]
 }

Retrieve Minibar Article Codes

For Minibar charges, it is mandatory to send the Minibar article number, the quantity of the minibar article, the Minibar article price, the Minibar transaction code, and the reservationId of the guest to which the minibar charge is posted.

Use the specific operation getArticles to retrieve all defined articles, which also includes articles sold in an in-room Minibar with the related transaction code.

Get Minibar Transaction Codes

GET {{HostName}}/lov/v1/listOfValues/hotels/{{HotelId}}/interfaceTrxCodesMinibar 


200 Response: 

{
    "listOfValues": {
        "items": [
            {
                "code": "4510",
                "name": "Minibar Food",
                "description": "Minibar Food",
                "active": true
            },
            {
                "code": "4511",
                "name": "Minibar Beverage",
                "description": "Minibar Beverage",
                "active": true
            }
        ],
        "lovName": "InterfaceTrxCodesMinibar",
        "itemCount": 2
    }
}

Alternatively, get the Minibar articles information including article name, article code, transaction code, and article price.

Use the specific operation getArticles:

Get Minibar Articles

GET {{HostName}}/fof/config/v1/articles?includeInactive=false


200 Response: 

{
    "articles": [
        {
            "description": "Minibar snacks",
            "transactionCode": "4510",
            "price": {
                "amount": 5
            },
            "postIt": {
                "availableForPostIt": true,
                "color": "Red"
            },
            "hotelId": "SAND01CN",
            "articleCode": "10",
            "inactive": false,
            "orderSequence": 1
        },
        {
            "description": "Minibar chips",
            "transactionCode": "4510",
            "price": {
                "amount": 4
            },
            "postIt": {
                "availableForPostIt": true,
                "color": "Blue"
            },
            "hotelId": "SAND01CN",
            "articleCode": "11",
            "inactive": false,
            "orderSequence": 2
        },
        {
            "description": "Minibar soda",
            "transactionCode": "4511",
            "price": {
                "amount": 3
            },
            "postIt": {
                "availableForPostIt": true,
                "color": "Green"
            },
            "hotelId": "SAND01CN",
            "articleCode": "12",
            "inactive": false
        }
    ],
    "links": []
}

Retrieve the configured guest rooms

Use the getRooms operation to retrieve all the active rooms set up in OPERA Cloud PMS and store them in your system. Use these rooms to link your internal devices (such as phone line numbers or TV devices) to the guest rooms.

Note:

The room configuration might change sometimes, customer might add, rename, or remove room numbers or its description; therefore, it is recommended to rerun this operation at least once a day and update your system configuration.

getRooms

GET {{HostName}}/lov/v1/listOfValues/hotels/{{HotelId}}/rooms?includeInactiveFlag=false


200 Response: 

{
    "listOfValues": {
        "items": [

            {
                "code": "101",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "102",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "103",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "104",
                "name": "ECO",
                "description": "Suite",
                "active": true
            },
            {
                "code": "105",
                "name": "ECO",
                "active": true
            },
            {
                "code": "106",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "107",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "108",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "109",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "110",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "121",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "130",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "131",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "132",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "201",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },
            {
                "code": "202",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },
            {
                "code": "203",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },
            {
                "code": "204",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },
            {
                "code": "205",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },
            {
                "code": "206",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },

          ]

        "lovName": "Rooms",
        "itemCount": 42
    }
}

Retrieve Posting Accounts (Pseudo Rooms)

OPERA Cloud distinguishes between physical room types (existing guest rooms that a guest stays in) and so called pseudo room types.

These non-room accounts (also called Posting Accounts) are used for non-room charges, such as Cash, credit card, and direct bill. Those accounts can be identified by "roomType" = PM or PI or PX. These room type codes are freely definable by the customer. Therefore, it is recommended to verify with the customer which Posting accounts are to be used for non-room (that is, cash, credit card) charges.

A cash payment POS charge is posted to this Pseudo Room with the revenue amount and against the revenue transaction code. Posting Accounts are handled in a similar way to a physical existing room (guest account). Posting charges must be done by sending its reservationId.

Use the getRooms operation with query parameters "physical=false&pseudo=true" to retrieve the information (including reservationId) about Posting accounts.

Alternatively, use the getReservations operation and include the query parameters roomType and reservationStatuses.

Usually these Posting Accounts are checked-in for a day, checked out before the night audit (end of day closure), and checked in again after the night audit.

Depending on customer usage, these Posting Accounts might generate a new reservationId.

Retrieve Payment Methods for Autobalance non-guest room functionality

The autobalance post is a payment post, which requires a payment method code of the PMS.

Typically, this is a specific payment method code defined for each posting system (POS, SPA etc) which sends charges and uses autobalancing.

The below API call requests all configured payment methods of the PMS. Note that only specific payment methods should be used by the vendor system posting the autobalance amount.

Therefore, be careful in choosing the correct payment method code.

Use the getHotelPaymentMethods operation to retrieve the Payment Methods configured in OPERA Cloud PMS.

Get Payment Methods for posting autobalance

GET {{HostName}}/fof/config/v1/hotelPaymentMethods?hoteld=
{{HotelId}}

/fof/config/v1/hotelPaymentMethods?hoteld=
GET {{HostName}}{{HotelId}}{{
    "paymentMethods": [
        {
            "description": "Check",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9001"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "CK",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 1
        },
        {
            "description": "Cash",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9000"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "CA",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 1
        },
        {
            "description": "Direct Bill",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9009"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "DB",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 2
        },
        {
            "description": "American Express",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "15",
                    "prefix": "34,37",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Ax"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9005"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "AX",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 3
        },
        {
            "description": "MasterCard",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "11,12,13,14,15,16",
                    "prefix": "51,52,53,54,55,22,23,24,25,26,27",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Mc"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9011"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "MC",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 3
        },
        {
            "description": "PROMMT",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9015"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "PROMMT",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 6
        },
        {
            "description": "JCB Card",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Jc"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9109"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "JCB",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 8
        },
        {
            "description": "Above Property Pay",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "13,16",
                    "prefix": "4",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Va"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9020"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "AVA",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 10
        },
        {
            "description": "American Express Offlline",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "15",
                    "prefix": "34,37",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Ax"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9032"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "AXOFF",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 20
        },
        {
            "description": "Visa Offline",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "13,16",
                    "prefix": "4",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Va"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9030"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "VAOFF",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 21
        },
        {
            "description": "Master Card Offline",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "11,12,13,14,15,16",
                    "prefix": "51,52,53,54,55,22,23,24,25,26,27",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Mc"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9031"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "MCOFF",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 22
        },
        {
            "description": "Autobalancing Cash POS",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9100"
            },
            "paymentMethodUsage": {
                "reservation": false,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "ABPOSCA",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 30
        },
        {
            "description": "Gift Card",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9039"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "GFT",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 98
        },
        {
            "description": "Test method 1",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9000"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "TMM",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 101
        },
        {
            "description": "Test method",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9000"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "TM",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 101
        },
        {
            "description": "At-visions",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9002"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "WEB1",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 101
        },
        {
            "description": "Web at-visions",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9001"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "WEB",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 101
        },
        {
            "description": "Paypal Test",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "1338"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "SM",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 110
        },
        {
            "description": "Paypal Test",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Va"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9000"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "PAYPAL",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 110
        },
        {
            "description": "Adyen cashh",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "13,16",
                    "prefix": "4",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Va"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "90002"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {
                "creditLimit": {
                    "amount": 0
                }
            },
            "hotelId": "SAND01CN",
            "paymentMethod": "CASHH",
            "calculatePoints": "Always",
            "inactive": false,
            "orderSequence": 110
        }
    ],
    "totalPages": 2,
    "offset": 20,
    "limit": 20,
    "hasMore": true,
    "totalResults": 23,
    "links": []
}    "paymentMethods": [
        {
            "description": "Check",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9001"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "CK",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 1
        },
        {
            "description": "Cash",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9000"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "CA",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 1
        },
        {
            "description": "Direct Bill",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9009"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "DB",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 2
        },
        {
            "description": "American Express",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "15",
                    "prefix": "34,37",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Ax"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9005"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "AX",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 3
        },
        {
            "description": "MasterCard",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "11,12,13,14,15,16",
                    "prefix": "51,52,53,54,55,22,23,24,25,26,27",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Mc"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9011"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "MC",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 3
        },
        {
            "description": "PROMMT",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9015"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "PROMMT",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 6
        },
        {
            "description": "JCB Card",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Jc"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9109"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "JCB",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 8
        },
        {
            "description": "Above Property Pay",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "13,16",
                    "prefix": "4",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Va"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9020"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "AVA",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 10
        },
        {
            "description": "American Express Offlline",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "15",
                    "prefix": "34,37",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Ax"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9032"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "AXOFF",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 20
        },
        {
            "description": "Visa Offline",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "13,16",
                    "prefix": "4",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Va"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9030"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "VAOFF",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 21
        },
        {
            "description": "Master Card Offline",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "11,12,13,14,15,16",
                    "prefix": "51,52,53,54,55,22,23,24,25,26,27",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Mc"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9031"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "MCOFF",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 22
        },
        {
            "description": "Autobalancing Cash POS",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9100"
            },
            "paymentMethodUsage": {
                "reservation": false,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "ABPOSCA",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 30
        },
        {
            "description": "Gift Card",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9039"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "GFT",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 98
        },
        {
            "description": "Test method 1",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9000"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "TMM",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 101
        },
        {
            "description": "Test method",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9000"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "TM",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 101
        },
        {
            "description": "At-visions",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9002"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "WEB1",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 101
        },
        {
            "description": "Web at-visions",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9001"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": false
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "WEB",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 101
        },
        {
            "description": "Paypal Test",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                }
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "1338"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "SM",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 110
        },
        {
            "description": "Paypal Test",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "rule": "Novalid"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Va"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "9000"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {},
            "hotelId": "SAND01CN",
            "paymentMethod": "PAYPAL",
            "calculatePoints": "Never",
            "inactive": false,
            "orderSequence": 110
        },
        {
            "description": "Adyen cashh",
            "paymentCard": {
                "cardUsageRules": {
                    "promptAtCheckin": false,
                    "chipAndPin": false
                },
                "validation": {
                    "length": "13,16",
                    "prefix": "4",
                    "rule": "Mod10"
                },
                "option": {
                    "requireIssueNumber": false,
                    "requireStartDate": false,
                    "either": false
                },
                "cardType": "Va"
            },
            "paymentMethodTransactionInfo": {
                "surcharge": {},
                "transactionCode": "90002"
            },
            "paymentMethodUsage": {
                "reservation": true,
                "posting": true
            },
            "creditLimit": {
                "creditLimit": {
                    "amount": 0
                }
            },
            "hotelId": "SAND01CN",
            "paymentMethod": "CASHH",
            "calculatePoints": "Always",
            "inactive": false,
            "orderSequence": 110
        }
    ],
    "totalPages": 2,
    "offset": 20,
    "limit": 20,
    "hasMore": true,
    "totalResults": 23,
    "links": []
}

Retrieve the configured cashierId linked to the integration user

In OPERA Cloud PMS each charge must be linked to a Cashier. Therefore, the postBillingCharges operation requires sending a CashierId.

Cashier IDs are configured in OPERA Cloud PMS and are linked to an application user or an integration user.

To retrieve the CashierId for your integration user, use the getCashierDetails operation with query parameter "appUser."

The cashierId value must be sent in all the postBillingCharges operations.

getCashierDetails

GET {{HostName}}/fof/config/v1/cashierDetails/cashiers?appUser={{AppUser}}


200 Response: 

{
    "cashiers": [
        {
            "cashierId": 188,
            "currencyCode": "USD",
            "name": "CashierName",
            "attachedUser": "{{AppUser}}",
            "cashierType": "InterfaceCashier",
            "startingAmount": 0,
            "floatOverShort": false,
            "usageInfo": {
                "maximumDailyUses": 999,
                "history": {
                    "lastOpened": "2024-02-06",
                    "timesOpened": 0
                }
            },
            "kiosk": false,
            "inactive": false,
            "appUsers": [
                {
                    "appUser": "{{AppUser}}
                    "appUserId": {
                        "id": "123456",
                        "type": "AppUserId"
                    }
                }
            ]
        }
    ],
    "totalPages": 1,
    "offset": 20,
    "limit": 20,
    "hasMore": false,
    "totalResults": 1,
    "links": []
}



Figure 2-1 Diagram of Workflow to Get Configuration Data for Post Charges


This image shows a diagram of the workflow needed to get the configuration data for Post Charges.

Table 2-4 Workflow to Get Configuration Data for Post Charges

Description of Steps Operation

1

Retrieve the configured transaction codes for Phone charges.

The transaction code is mandatory to send with posting charges.

With the OHIP REST API posting operations, it is only possible to post a charge sending the final amount linked with the revenue transaction code.

This can be a single charge amount or multiple charge amounts to post in a postBillingCharges operation. However, the operation does not contain a total amount (as you might know from legacy integrations, such as FIAS or XML_POS API).

Use the FrontDesk Configuration operation getTransactionCodes to retrieve the configured transaction codes.

getTransactionCodes

Get fof/cfg/ TransactionCodes

GET {{HostName}}/fof/config/v1/transactionCodes?hotelId={{HotelId}}&transactionGroupCodes=REV&transactionSubgroupsCodes=OTHR


200 Response: 


{
    "transactionCodes": [
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Old Balance"
            },
            "trxSetup": {
                "taxInclusive": false,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "1009",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Old Balance"
            },
            "trxSetup": {
                "taxInclusive": false,
                "revenue": true,
                "manualPosting": false,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "1011",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Telephone"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Phone Charge"
            },
            "trxSetup": {
                "generatesType": "INCLUSIVE",
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "3000",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "TEST_TRANSACTION_COD1"
            },
            "trxSetup": {
                "taxInclusive": false,
                "revenue": true,
                "manualPosting": false,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "50000",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Tickets"
            },
            "trxSetup": {
                "generatesType": "INCLUSIVE",
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": true,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "5010",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Daily Paper"
            },
            "trxSetup": {
                "generatesType": "INCLUSIVE",
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": true,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "5011",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Post Card"
            },
            "trxSetup": {
                "generatesType": "INCLUSIVE",
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": true,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "5012",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Transport"
            },
            "trxSetup": {
                "generatesType": "INCLUSIVE",
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "5016",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Movies"
            },
            "trxSetup": {
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "5601",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "Games"
            },
            "trxSetup": {
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "5602",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "HSIA In-Room-Internet"
            },
            "trxSetup": {
                "taxInclusive": true,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "5603",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        },
        {
            "classification": {
                "type": "Revenue",
                "transactionType": {
                    "code": "Others"
                },
                "group": {
                    "code": "REV",
                    "description": "Revenue"
                },
                "subgroup": {
                    "code": "OTHR",
                    "description": "Other Revenue"
                }
            },
            "description": {
                "defaultText": "To Test Revenue Mapping in ASYNC Api of Resv1 23"
            },
            "trxSetup": {
                "taxInclusive": false,
                "revenue": true,
                "manualPosting": true,
                "useForPaidout": false,
                "redeemMembershipPoints": false,
                "includeInDepositRule": false,
                "depositPostingOnly": false,
                "postingRule": false,
                "checkNoRequired": false,
                "interHotelSales": false,
                "postCovers": false,
                "nonTaxable": false,
                "inactive": false,
                "earnMembershipPoints": false
            },
            "amounts": {},
            "allowServiceRecovery": false,
            "code": "7999",
            "compTransaction": false,
            "printTrxReceipt": false,
            "hotelId": "SAND01CN"
        }
    ],
    "links": []
}


2

Retrieves the configured guest rooms to assign the internal phone lines or TV devices to.

Use the getRooms operation to retrieve all the active rooms set up in OPERA Cloud PMS and store them in your system. Use these rooms to link your internal devices (for example, phone line numbers or TV devices) to the guest rooms.

Note:

The room configuration might change sometimes, customer can add, rename or remove room numbers or its description; therefore, it is recommended to re-run this operation at least once a day and update your system configuration.

getRooms

GET {{HostName}}/lov/v1/listOfValues/hotels/{{HotelId}}/rooms?includeInactiveFlag=false


200 Response: 

{
    "listOfValues": {
        "items": [

            {
                "code": "101",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "102",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "103",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "104",
                "name": "ECO",
                "description": "Suite",
                "active": true
            },
            {
                "code": "105",
                "name": "ECO",
                "active": true
            },
            {
                "code": "106",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "107",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "108",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "109",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "110",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "121",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "130",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "131",
                "name": "SGL",
                "description": "Standard Single Room",
                "active": true
            },
            {
                "code": "132",
                "name": "ECO",
                "description": "Economy Room",
                "active": true
            },
            {
                "code": "201",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },
            {
                "code": "202",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },
            {
                "code": "203",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },
            {
                "code": "204",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },
            {
                "code": "205",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },
            {
                "code": "206",
                "name": "DBL",
                "description": "Standard Double Room",
                "active": true
            },

          ]

        "lovName": "Rooms",
        "itemCount": 42
    }
}

3

Retrieve the configured cashierId linked to the integration user.

In OPERA Cloud PMS, each charge must be linked to a Cashier. Therefore, the postBillingCharges operation requires sending a CashierId. Cashier IDs are configured in OPERA Cloud PMS and are linked to an application user or an integration user.

To retrieve the CashierId for your integration user, use the getCashierDetails operation with query parameter "appUser."

The cashierId value must be sent in all the postBillingCharges operations.

getCashier

getCashierDetails

GET {{HostName}}/fof/config/v1/cashierDetails/cashiers?appUser={{AppUser}}


200 Response: 

{
    "cashiers": [
        {
            "cashierId": 188,
            "currencyCode": "USD",
            "name": "CashierName",
            "attachedUser": "{{AppUser}}",
            "cashierType": "InterfaceCashier",
            "startingAmount": 0,
            "floatOverShort": false,
            "usageInfo": {
                "maximumDailyUses": 999,
                "history": {
                    "lastOpened": "2024-02-06",
                    "timesOpened": 0
                }
            },
            "kiosk": false,
            "inactive": false,
            "appUsers": [
                {
                    "appUser": "{{AppUser}}
                    "appUserId": {
                        "id": "123456",
                        "type": "AppUserId"
                    }
                }
            ]
        }
    ],
    "totalPages": 1,
    "offset": 20,
    "limit": 20,
    "hasMore": false,
    "totalResults": 1,
    "links": []
}

4

Retrieve the configured Minibar article information.

Receive the Minibar article Name, article code, article price, and assigned revenue transaction code per article.

The configuration of minibar articles can vary. Some customers only configure article groups (for example, Minibar Food, Minibar Beverage, Minibar Non-Food, and so on) and assign related transaction codes.

Note:

The article configuration might change sometimes, customers can add, rename, or remove articles, change its description, or link an article to a different transaction code. Therefore, it is recommended to rerun this operation at least once a day and update your system configuration.

getArticles

Get Minibar Articles

GET {{HostName}}/fof/config/v1/articles?includeInactive=false


200 Response: 

{
    "articles": [
        {
            "description": "Minibar snacks",
            "transactionCode": "4510",
            "price": {
                "amount": 5
            },
            "postIt": {
                "availableForPostIt": true,
                "color": "Red"
            },
            "hotelId": "SAND01CN",
            "articleCode": "10",
            "inactive": false,
            "orderSequence": 1
        },
        {
            "description": "Minibar chips",
            "transactionCode": "4510",
            "price": {
                "amount": 4
            },
            "postIt": {
                "availableForPostIt": true,
                "color": "Blue"
            },
            "hotelId": "SAND01CN",
            "articleCode": "11",
            "inactive": false,
            "orderSequence": 2
        },
        {
            "description": "Minibar soda",
            "transactionCode": "4511",
            "price": {
                "amount": 3
            },
            "postIt": {
                "availableForPostIt": true,
                "color": "Green"
            },
            "hotelId": "SAND01CN",
            "articleCode": "12",
            "inactive": false
        }
    ],
    "links": []
}


What data is necessary to perform Post charges via OHIP APIs?

Posting to room numbers:

The postBillingCharges operation does not support the room number, it is only possible to post a charge against the reservationId of a checked in guest. Therefore, the partner must retrieve the reservationId that is currently checked in to a specifc room.

A revenue transaction code is also required to post a charge. Transaction codes are defined by the customer and can vary from one customer to another.

Use the getReservations operations.
  • For phone systems, the typical query parameter is the "roomId" = "XYZ" as posting to line numbers is not available. In OPERA Cloud, guest room line numbers are not specifically set up.

  • The additional query parameter is searchType = "InHouse" so as to only retrieve the currently checked in reservations.

    This operation must be called each time prior to sending a postBillingCharge operation to ensure you receive the correct reservationId.

    GET {{HostName}}/rsv/v1/hotels/{{HotelId}}/reservations?searchType=InHouse&roomId=203

Final charge amount to post against a transaction code

With the OHIP REST API posting operations, it is only possible to post a charge that sends the final amount linked with the revenue transaction code.

This can be a single charge amount or multiple charge amounts to post in a postBillingCharges operation. However, the operation does not contain a total amount (as you might know from legacy integrations, such as FIAS or XML_POS API).

The partner system must know the revenue transaction codes that are defined in OPERA Cloud PMS and link these to the revenue items to be charged by the system.

For phone charges, this means it is not possible to send phone call details such as meter pulses, call duration, and dialled phone numbers to let OPERA calculate the final charge. Also, the OPERA PMS Call Accounting functionality is not supported by OPERA Cloud. Therefore, the partner system that sends a phone charge must calculate the final amount to charge to the reservation.

For minibar charges, it is mandatory to send the minibar article number, the quantity of the minibar article, the minibar article price, the minibar transaction code, and the reservationId of the guest to whom the minibar charge is posted.