Skip to main content

Connect Your Restaurant POS to Your Hotel PMS

A restaurant or bar POS can post bills to a checked-in guest’s room folio in Frontdesko using a private access token. The POS picks the room from an in-house list, categories map to charge types, voids post matching credits, and a status check confirms each bill.

By the Frontdesko team • Last updated 9 November 2026

Try the Live Demo

What happens when a guest charges lunch to the room from a separate POS?

An illustrative scenario at an 18-room inn that already runs a restaurant POS. The property, the guest and the times are invented to show how the connection behaves; they are not a customer account.

TimeWhat happensWhere
12:05At an 18-room inn, a guest at table 4 asks to charge lunch to her room. The waiter taps Charge to room on the restaurant’s existing POS. The POS fetches the in-house list from Frontdesko: only rooms with a checked-in guest appear, each with room code, guest name, reservation code, stay dates and a stop-posting flag.POS room picker, fed by Frontdesko
12:06The waiter picks room 7. The POS can also ask Frontdesko for that room’s details for today, including the guest, the folio number and whether posting is stopped, before it sends anything.Room details lookup
12:08The POS posts the bill. Frontdesko adds one charge per line to room 7’s folio, titled with the POS name and item, for example “Restaurant POS: Grilled fish”. Tax lines from the POS arrive as separate tax charges, and service charge and tip as fee charges. The receptionist sees them on the open folio.Guest folio, charges list
12:09The inn’s network blips and the POS sends the same order again. Frontdesko replies “Order already posted” and adds nothing, so the guest is not charged twice.Automatic duplicate protection
14:30The bar POS tries to post a drink to room 12, whose guest checked out this morning. Frontdesko refuses: the room is not checked in. Other refusals the POS can receive: posting is stopped on that room, the folio is not open, or the reservation code the POS sent does not match.Refusal message back to the POS
19:40A waiter voids the lunch order because the wrong table was billed. The POS sends a void. Frontdesko posts a matching credit for every charge on that order, each titled “VOID: …”, so the folio balance returns to what it was and the history stays visible.Folio, VOID credit lines
19:42Someone taps void again. Frontdesko answers that the order is already voided and posts nothing.Refusal message back to the POS
23:30The night auditor’s POS report lists order numbers. For each, the POS asks Frontdesko for the posting status: posted or voided, room, amount, folio number and the times. Anything missing from Frontdesko is a bill to chase before the books close.Posting status check

The same lunch without a connection means a paper slip carried to reception, retyped by the night auditor, and a guest asking at checkout why a charge is missing. With the connection the POS posts the bill and the folio is current within seconds.

How does the POS connection work?

Your POS talks to Frontdesko with a private token. It can read the in-house list, read and update its own category mapping, post bills and voids, and check what happened to any order. Frontdesko checks each bill against the live stay before anything lands on a folio.

ItemHow it behaves
Who connectsA POS whose vendor supports posting bills to a PMS. Frontdesko provides the hotel side; the POS-side connection is built and supported by your POS vendor.
AccessOne private access token per connection, for example “Restaurant POS” and “Bar POS” as separate connections. The token is shown once when the connection is created and cannot be recovered later, so keep it safe. A connection can be switched off to stop all postings.
Room pickerA list of every room with a checked-in guest: room code, guest name, reservation code, check-in and check-out dates, and a stop-posting flag. It follows the room the guest is in now, including after a mid-stay room move.
What gets postedEach bill line becomes a folio charge titled with the POS name and item name, at quantity times unit price less any line discount. Tax lines post as tax charges, service and other charges and tips as fee charges.
Category to charge typeEach POS category code lands on a charge type. Defaults: FOOD, BDRK, BAR and FNB go to food and beverage; LDRY to laundry; SPA to spa; MISC to other; TELE to telephone; PARK to parking; MINI to minibar. Blank or unknown codes post as food and beverage. Codes are not case-sensitive.
Custom mappingEach connection can carry its own mapping that overrides the defaults. The POS can send its category list (add to the existing list, or replace it) with names and charge types; a category sent without a charge type keeps the one the hotel already chose.
Charge types a POS can postFood and beverage, minibar, spa, laundry, telephone, internet, parking, transport, recreation, fee, damage and other. Room nights, discounts, adjustments and write-offs are owned by the PMS and cannot be posted by a POS.
Limiting a connectionA connection can be restricted to certain charge types. A bill with a line outside the list is refused as a whole.
DuplicatesEach order number posts once. Sending it again returns “already posted” and creates nothing.
VoidsA void or reversal posts a negative “VOID:” charge for every charge from the original order and marks the order voided. A second void is refused.
ReconciliationThe POS can ask for the status of any order number: posted or voided, room, amount, folio number, reservation code and times.
Date formatRoom details are requested for a date written DD/MM/YYYY.

Which refusals can the POS receive?

SituationWhat Frontdesko does
Room does not existRefuses the bill: room not found.
Room has no checked-in guestRefuses the bill: room is not checked in.
Posting stopped on the stayRefuses the bill: posting is stopped for that room.
Folio is not openRefuses the bill: the folio is not open.
Reservation code does not matchRefuses the bill and names the expected reservation code.
Charge type not allowed for this connectionRefuses the whole bill.
Order already postedReturns success with “already posted”; nothing new is created.
Void of an unknown or already voided orderRefuses the void.

What does the connection not do?

  • It posts charges to the room folio. Payments taken at the POS are not recorded in Frontdesko by this connection, and the guest settles the charges at checkout like any other folio charge.
  • It does not add Frontdesko tax on top. The POS’s own tax lines arrive as separate tax charges, so check that the POS sends the taxes you expect.
  • Order-level discounts and round-off are not posted as separate entries. Line discounts reduce their line.
  • It does not post to rooms without a checked-in guest, and there is no way to post to a future arrival.
  • There is no self-service screen yet for creating the connection or editing its mapping. See the next section.
  • It does not replace a POS. Menus, tables, kitchen tickets and the POS-side “charge to room” button stay in the POS.

If you do not yet have a POS, Frontdesko includes its own, free with the PMS: see hotel POS system and restaurant QR table ordering. Charges from the built-in POS and from a connected one both land on the same guest folio.

How does a hotel get a POS token and switch the connection on?

  1. Ask your POS vendor whether their system can post bills to a PMS, and which details they need from the hotel.
  2. Email [email protected] with the name of each outlet (for example Restaurant POS and Bar POS), the vendor, and which charge types the POS should be allowed to post. There is no self-service screen for this yet.
  3. Frontdesko creates one connection per outlet and gives you its private token. It is shown once, so store it in your password manager and pass it to your POS vendor through a secure channel.
  4. Your vendor enters the token in the POS and loads the room list and the category mapping. Agree the mapping with your accountant: which POS categories land on which charge types.
  5. Test with a checked-in test reservation: post a small bill, look at the folio, void it, then check the status of the order.
  6. Go live. If the token ever leaks, ask support to switch the connection off and issue a new one.

If you are weighing a connected POS against the built-in one, integrations lists what else connects to Frontdesko, and direct billing for corporate accounts covers charges that are billed to a company instead of the guest.

Frequently Asked Questions

Can I connect my existing restaurant POS to my hotel PMS?

Yes, if your POS vendor supports posting bills to a PMS. Frontdesko provides the hotel side: a private token, an in-house room list, category mapping, bill and void posting and a status check. The POS-side connection is built by your POS vendor.

Which guests can a POS charge to the room?

Only guests who are checked in. The POS gets a list of in-house rooms for its room picker, and Frontdesko refuses a bill for a room that is not checked in, has posting stopped, has a closed folio or has a mismatched reservation code.

What stops a bill from being charged twice?

Each order number posts once. If the POS sends the same order again, for example after a network failure, Frontdesko replies that the order is already posted and creates no new charge.

What happens when the POS voids an order?

Frontdesko posts a matching negative charge, titled VOID, for every charge from the original order and marks the order voided. The original charges stay in the history, and a second void of the same order is refused.

How do POS categories map to charge types?

Each POS category code lands on a charge type, with defaults such as FOOD and BAR to food and beverage, LDRY to laundry and SPA to spa. A connection can carry its own mapping, and unknown or blank codes post as food and beverage.

How does a hotel get the POS token?

Today Frontdesko creates the connection for you: email support with each outlet name and your POS vendor. The token is shown once when the connection is created, so store it safely. There is no self-service screen for this yet.

Does the connection record payments or tax?

It posts charges only. Payments taken at the POS are not recorded in Frontdesko by this connection. Tax lines the POS sends are posted as separate tax charges, and Frontdesko does not add tax on top of them.

Do I need a third-party POS, or can I use Frontdesko’s own?

You can use either. Frontdesko includes its own POS free with the PMS, and its charges land on the same folio as a connected POS. A connected POS suits hotels that already run one they want to keep.

Keep Your POS, Fix Your Folios

Try Frontdesko’s free PMS with a demo property, or see how its built-in POS posts to the same folio.

Start Live Demo Hotel POS System

Related Guides

Keep reading