The ability to post a restaurant charge directly to a guest's room folio is so fundamental to hotel operations that most guests take it for granted. Behind the scenes, it's a surprisingly complex integration that many properties still get wrong.
Common systems I've worked with include Opera (PMS), Silverware, and MICROS (POS). Each has its own API quirks, and the middleware that connects them — whether vendor-supplied or custom-built — is often the source of problems.
Key things to get right from the start:
Map your data before you touch a config
Before any technical work, sit down with F&B and Front Office and agree on: which revenue centres map to which PMS posting codes, how voids and refunds flow back, and what happens when a guest checks out mid-meal.
Test with real scenarios, not just happy paths
Every integration test I've seen focuses on a clean charge to a checked-in guest. Test the edge cases: shared folios, rate-inclusive packages that shouldn't be charged, rooms with credit limits, and walk-in guests paying cash.
Build an alert for failed postings
Failed room charges are revenue leakage. Set up a daily report or alert that flags any transaction that didn't make it from POS to PMS. Manual reconciliation catches these, but automation catches them faster.
Plan for the outage
What happens when the PMS is down for a maintenance window at 2am? Your POS should have an offline mode with a clear procedure for posting charges manually when the systems come back up.
Done well, a clean PMS-POS integration saves staff hours every shift and eliminates a whole category of guest disputes at checkout.