Skip to content

How to Print Receipts from a Web-Based Sales System to a Bluetooth Thermal Printer

A browser cannot send a receipt straight to a Bluetooth thermal printer. A small connector app bridges that gap, so your web-based sales system prints clean receipts without RawBT, watermarks or workarounds.

By Karani Geoffrey, Founder & CEO, Upeosoft
In short

You run your web-based sales system inside a lightweight Android app that wraps it in a WebView and adds a bridge to the Bluetooth printer. Your web page sends the receipt data to the app, and the app formats it as ESC/POS commands and prints on a paired 58mm or 80mm thermal printer. The website stays exactly as it is; the app handles the printing the browser cannot.

Key takeaways
  • Web browsers cannot communicate with Bluetooth Classic thermal printers - the printers most Kenyan shops use.
  • The usual workarounds (RawBT, print apps) add watermarks, extra taps and a clumsy experience.
  • A connector app wraps your existing web system in a WebView and prints directly to a paired printer.
  • It handles standard 58mm and 80mm paper, business headers, itemised lines, QR codes and paper cuts.
  • Printing is local over Bluetooth, so it works even when the internet is down.
  • Your website does not change - it just calls the connector when it needs to print.

The wall between the browser and the printer

If you run your shop on a web-based sales system, you have probably hit this wall: everything works beautifully until you try to print a receipt on the little Bluetooth thermal printer on the counter, and nothing happens. It is not your system's fault and it is not the printer's fault. Browsers simply cannot talk to Bluetooth Classic printers.

The printers almost every Kenyan shop uses speak an old, reliable Bluetooth profile called SPP. Browsers have no access to it. The newer Web Bluetooth standard targets a different profile that receipt printers do not use. So the gap is structural - a web page, on its own, can never open a connection to the printer. Bridging that gap is the entire job.

Why the common workarounds disappoint

Faced with this, most people reach for a third-party print app like RawBT. It works, in the sense that paper comes out, but the experience is poor.

  • Watermarks: many free print apps stamp the receipt, which looks unprofessional to your customer.
  • Extra taps: every print bounces to another app or asks for confirmation, slowing down a busy counter.
  • Little layout control: you take whatever formatting the print app gives you.
  • Fragile setup: the chain of apps breaks in confusing ways, and staff cannot fix it.

How a connector app bridges the gap cleanly

The clean solution is a small, purpose-built Android app that does two things at once. It hosts your existing web system in a full-screen WebView, so to the cashier it looks and behaves like your normal system. And it holds a direct connection to the Bluetooth printer, ready to print on demand.

When your web page needs to print, it sends the receipt data to the app through a bridge. The app takes that data, formats it as ESC/POS commands - the language thermal printers understand - and prints it on the paired printer. Upeosoft's open-source UpeoRetail Print connector (github.com/Upeosoft-Limited/upeoretail-bluetooth-printer-connector) does exactly this, and because it is open source you can see precisely how it handles the receipt data and the connection.

What a good receipt actually needs

A receipt is small but it carries a lot: it is your brand, your record, and increasingly your compliance document. A capable connector produces a proper layout rather than a raw dump of text.

  • A business header with your name and details at the top.
  • Clean itemised lines with quantities and prices that line up.
  • Totals that stand out clearly.
  • An optional QR code - useful for compliance references, payment links or verification.
  • A proper paper cut at the end so receipts tear off neatly.
  • A choice of 58mm or 80mm width to match your printer.

Local, offline and reliable at the counter

One quiet advantage of this approach is that the printing itself does not depend on the internet. The link between the app and the printer is local Bluetooth. Once the receipt data reaches the app, it prints whether or not your data connection is up.

That matters in a real shop, where the WiFi drops and the mobile data is patchy. A connector that reconnects to the printer before each print job, and works entirely locally for the printing step, means a dropped connection does not leave a customer standing at the counter without a receipt. It is the kind of small reliability detail that decides whether a system survives a busy Saturday.

Getting it working in your shop

The setup is deliberately simple: pair the thermal printer in Android's Bluetooth settings, open the connector app, select the printer, choose your paper width and run a test print. From then on your web-based sales system prints receipts as if the browser could do it itself.

UpeoRetail Print works with any web system, not only ours, so it fits whatever you already run. If you are fighting with receipt printing on a browser-based system, or stuck with a watermarked workaround, talk to us. We can set up the connector, wire your system's print button to it, and get clean, professional receipts coming off your counter printer.

Frequently asked questions

Why can't my web system print to the Bluetooth printer directly?

Because browsers have no access to Bluetooth Classic (the SPP profile that thermal printers use). Web Bluetooth exists but targets a different, low-energy profile that receipt printers do not speak. So no matter how good your web system is, the browser simply cannot open a connection to the printer. Something native has to sit between them, which is exactly what a connector app does.

Do I have to rebuild my sales system to use this?

No. That is the main advantage. Your existing web system runs unchanged inside the connector app's WebView. The only addition is a small call from your page that hands the receipt data to the app when the cashier hits print. Everything else - your login, your catalogue, your sales flow - stays exactly as it was.

What about RawBT or other print apps - why not just use those?

They work, but they get in the way. Many add a watermark to the receipt, require an extra app switch or confirmation on every print, and give you little control over layout. A dedicated connector prints straight from your system with no watermark and no detour, and it formats the receipt the way you want - header, items, totals, QR code and a clean cut.

Will printing still work when the internet is down?

Yes, for the printing itself. The connection between the app and the printer is local Bluetooth, so once the receipt data is in the app it prints without any internet. Whether your sales system can still record the sale offline depends on how that system is built, but the printing step does not need the network.

What printers and paper sizes are supported?

Standard Bluetooth Classic thermal printers - the common 58mm and 80mm receipt printers used across Kenyan retail. The connector generates standard ESC/POS commands, which those printers understand, and lets you choose the paper width so the layout fits your machine. You pair the printer in Android settings once, then select it in the app.

Karani Geoffrey
Karani Geoffrey
Founder & CEO, Upeosoft

Karani Geoffrey is the Founder & CEO of Upeosoft, a software and automation company rooted in Kenya. He builds custom software, AI systems, and production-grade ERPNext for businesses across East Africa, and writes about the Kenyan realities - eTIMS, M-Pesa, SHIF, unreliable internet and power - that make or break real systems.

Next step

Want this working in your business?

Upeosoft builds and hardens the systems behind this article - for real Kenyan operations, with eTIMS, M-Pesa and offline realities handled.

Keep reading

For Builders

Bridging a Web App to a Bluetooth Thermal Printer with a WebView Bridge

Browsers cannot reach a Bluetooth Classic thermal printer, but a native WebView host can. This is how to build a safe JavaScript bridge, generate ESC/POS, and keep the printer connection alive.

7 min readRead article →
Retail and TradeBuyer's guide

The Best Retail Management Software for Kenyan Shops in 2026

A practical, Kenya-first guide to choosing retail management software in 2026 - what actually matters, what to ignore, and the mistakes that cost shopkeepers money.

6 min readRead article →
Retail and TradeBuyer's guide

Retail Software with M-Pesa and eTIMS Built In: What to Look For

M-Pesa and eTIMS are now core to Kenyan retail, but plenty of software only pretends to support them. Here is how to tell real, built-in integration from a manual workaround.

6 min readRead article →