// Adds dimensions UUID, Author and Topic into GA4
Monday, August 3, 2026
28.9 C
Singapore

Diner says restaurants now imposing 10% service charge for ordering via QR codes

SINGAPORE: After discovering that restaurants use QR codes to impose a 10% service charge, a Reddit user took to social media to vent his frustration at this system.

QR codes have become increasingly popular in recent years because of their many advantages to customers and restaurants. For example, QR codes allow customers to browse menus, make orders, and settle their bills without interacting with a waitperson or cashier. However, according to some, restaurants have taken advantage of this technology to add a service charge.

A Reddit user u/haikallp on r/singapore stated that this practice in restaurants had “rubbed him the wrong way.”

“More and more restaurants are moving towards diners having to scan a QR code that brings you to the restaurant’s page, order from there and some even force you to pay on there,” he wrote.

“They have the cheek to charge a 10% service charge when all they do is serve the food. IDK, it just seems sh**ty. What are your thoughts?” he added.

Diners vs QR code

Numerous Reddit users have also aired their frustrations and shared their experiences in the comments sections, criticizing the establishments that employ QR codes to tack on a charge.

“I dont mind the QR code ordering / Paying / DIY payment. No difference to a book of Menu vs online payment. What pisses me off – Remove all the manpower, no one to ask questions or suggestions or waiting for ages to get the food. Then slapping with a 10% service charge. Refuse to go to the kind of places,” one wrote.

“Actually, is it just me who feels the 10% svc charge should go to the wait team only, not through the management? I always felt like it is akin to tipping in the US but of course more transparent upfront to paying customers,” another one commented.

One Reddit user also offered a plausible explanation for why restaurants might charge an extra 10% for the service fee, even though they’re just technically serving the food.

“I saw someone suggesting perhaps service charge for the chef/cooks. I think the service charge is still valid if you include the staff who make the drinks, runs the food & drinks, busses the tables, and washes the dishes,” the user wrote.

10% Service Charge

The 10% service charge is a common practice among restaurants in Singapore, and there appears to be no law that requires it, according to Singapore Legal Advice.

If, however, the court is informed of instances where a customer refuses to pay the service charge due to inadequate service at a certain establishment, there is an extremely high likelihood that the customer will still be liable for the service charge. 

The 10% service charge is usually stated on the menus and signs of the establishment, which means the customer is aware of the charge before placing their order and paying for their food. Therefore, it would not be right for the customer to refuse payment after dining at the establishment.

In addition, it is also stated that the 10% fee does not depend on the level of service provided.

- Advertisement -

Hot this week

Johor positions itself as Malaysia’s AI data centre hub as Invest Johor CEO outlines infrastructure vision at Huawei summit

Invest Johor's CEO has outlined the state's strategic position as Malaysia's leading data centre destination at Huawei's Next-Gen Data Center Infrastructure Summit. In the same event, they highligh...

More than 12,800 cartons of duty-unpaid cigarettes found hidden in wooden crates at Tuas Checkpoint

This may be one of the largest single-vehicle cigarette seizures at Singapore's land checkpoints in recent memory.

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks