Printing
Set up billing, quotation, kitchen and barcode printers, choose paper sizes and receipt templates, share PDFs, and control what prints through document configurations.
CloudPOS prints bills, return bills, quotations, kitchen order tickets (KOT), day-close reports and barcode stickers. It prints to thermal receipt printers (112 mm, 80 mm, 58 mm) and to normal page printers or PDF files (A4, A5).
You set printers once per device in Printer Settings. What appears on each printout (logo, title, columns, totals, QR code) is set by the admin in Document Configuration on the Admin Panel.
Open Printer Settings
- Open the side menu.
- Under Other, tap Printer. You need the permission
menu.settings.printer.access. - The Printer Settings screen opens with the subtitle "Configure printers, paper sizes and receipt themes".

*Printer Settings: tabs Billing / Quotation / Kitchen / Barcode printer and PDF Sharing; B2C and B2B billing profiles; paper size and theme (e.g. Bilingual Centered Tax Invoice); Open PDF or a physical printer; Scan for Printers; Resync Doc and Clear Default Printer*
The tabs
Tab | Used for | Saved printer | Saved paper size |
|---|---|---|---|
Billing Printer | bills, return bills, order prints from Sales |
|
|
Quotation Printer | quotations |
| quotation paper size |
Kitchen Printer | kitchen order tickets (KOT) |
|
|
Barcode Printer | barcode stickers |
| sticker layout |
PDF Sharing | PDFs sent by Share or WhatsApp | none (no physical printer) |
|
Each tab is saved on this device only. Two counters in the same store can use different printers.
Set up the billing printer
- Open the Billing Printer tab.
- Choose the segment: B2C (Retail) or B2B (Business). B2B uses the B2C settings when you leave it unconfigured.
- Under Paper Size Settings, pick a Paper Size: 112mm, 80mm, 58mm, A5 or A4. The app shows "Default paper size saved".
- Under Receipt Theme, pick a Theme. Thermal sizes list thermal themes. A4 and A5 list PDF templates. The app shows "Receipt theme saved".
- Pick the font style: Font A (Small & Sharp) (default) or Font B (Default).
- Under Available Printers, tap Scan for Printers. The app shows "Scanning for printers..." and then "@count devices found".
- Tap Select next to your printer. The app shows "@device Printer Selected".
- Tap Test Print to print a sample. The app shows "Sample receipt sent to printer".
Where printers come from:
- Windows: printers installed in Windows (the print spooler), including USB and network printers.
- Android and iOS: Bluetooth printers found nearby. The app asks for Bluetooth and Location permission first ("Permissions Required").
Open PDF instead of a printer
When the paper size is A4 or A5, the list also offers Open PDF: "Generate and open the @paperSize PDF in your default viewer". Choose it if you do not have a page printer. The app shows "Open PDF selected. A4/A5 documents will open in your PDF viewer." You can print from the PDF viewer.
Development Printer
When Developer Mode is on in Settings, the list also shows Development Printer. It saves each printout as an image in a folder instead of printing ("Development Printer selected. Prints will be saved to a folder."). The output folder is shown on screen. Use it for testing layouts without paper.
Clear Default Printer
Clear Default Printer (shown as Clear on the PDF Sharing tab) resets this tab's printer, paper size, font and theme to the defaults. The app shows "@type printer settings reset to default".
Resync Doc
Resync Doc downloads the latest document configurations from the server. Use it after the admin changes a template, logo or label in the Admin Panel. The app shows "Document configuration resynced successfully".
Thermal receipt templates (112 mm, 80 mm, 58 mm)
Code | Name in app | What it looks like |
|---|---|---|
| Classic | Traditional receipt layout with standard formatting |
| Premium | Premium design with enhanced visual styling and layout |
| Premium 1 | Premium design with enhanced visual styling |
| Premium 2 | Premium design with the invoice number in a box |
| Premium 2 Bilingual | Premium 2 with language-driven bilingual text and direction |
| Supermarket En | Supermarket layout in English |
| Standard | Clean and minimal receipt layout |
| Arabic & English | Bilingual layout for Arabic and English |
| Arabic & English 2 | Arabic and English with bilingual table headers only |
| Arabic & English 3 | Bilingual layout with the English item name only |
| Supermarket | Modern and clean design with enhanced spacing |
| Supermarket 2 | Modern, with a delivery icon |
| Supermarket 2 Bilingual | Supermarket 2 in two languages |
| Supermarket Receipt 3 | Supermarket-style receipt, version 3 |
| Bilingual | English and Arabic |
| Multi Store | Layout for companies with several stores |
| Mobile Shop Tax Invoice | Bilingual ZATCA tax invoice for mobile shops with SN, VAT, QTY, PRICE and AMOUNT columns |
An unknown theme falls back to Classic.
A4 and A5 templates
Code | Name in app | What it looks like |
|---|---|---|
| Classic | Traditional A4/A5 layout |
| Simplified Tax Invoice | ZATCA simplified tax invoice with teal header and footer, bilingual columns and totals |
| Centered Simplified Tax Invoice | Arabic details left, centered logo, English details right |
| Bilingual Centered Tax Invoice | Bilingual centered tax invoice, Arabic left, logo centre, English right |
| Boxed Bilingual Tax Invoice | Boxed sections: seller, buyer, invoice, items, bank and totals |
| Boxed Header Tax Invoice | Boxed header tax invoice with seller, buyer, invoice, items, bank and totals |
On the Quotation Printer tab the same A4/A5 templates are named as quotations, for example Simplified Quotation, Bilingual Centered Quotation, Boxed Header Quotation and Mobile Shop Quotation.
In the demo the server defaults are B2C on A4 with Bilingual Centered Tax Invoice, and B2B on A5 with Boxed Header Tax Invoice.
Kitchen printer (KOT)

*Printer Settings > Kitchen Printer: KOT paper size (80 mm) and printer, plus Advanced print options (PDF margins, driver behaviour) that apply to all tabs*
- Open Kitchen Printer.
- Pick the KOT paper size (80 mm in the demo).
- Scan and Select the kitchen printer.
When a restaurant order is sent to the kitchen (Send Kitchen or KOT + BILL) and no kitchen printer is saved, the app asks you to pick one in a Print KOT printer picker. KOT printing must be on (ENABLE_KOT_PRINT). The KOT layout uses the Kitchen Order document configuration. See Restaurant and kitchen.
Barcode printer
- Open Barcode Printer and select the label printer.
- Adjust the Barcode Sticker Layout:
- Sticker Size and Stickers Per Row
- Gap Between Stickers (mm) and Page Margin (mm)
- Barcode Height (pt), Barcode Width (% of sticker), Element Spacing (pt)
- Printer Resolution, Print Rotation Correction (leave at Printer default for normal printers)
- Invert Print Colors: use only when the printer prints white on black
- Font Sizes for Store Name, Product Name, Price, Date, Barcode Number
- Check the Sticker Preview. It is approximate. Reset restores defaults.
You print stickers from Product → Product Barcode. See Products and stock.
PDF Sharing
PDF Sharing Settings — "Configure invoice PDFs independently from physical printers". This tab controls the PDF that is attached when you Share an order or confirm with WhatsApp.
- Paper size: A4 (default) or A5.
- Template: any A4/A5 template. Default Classic.
- Separate B2C and B2B profiles. B2B uses the B2C sharing profile when left unconfigured.
Advanced print options
Advanced print options — "Applies to all tabs".
- Print Margins: a safe area added to every edge of A4/A5 pages. "Only affects A4 and A5 print jobs." Barcode stickers keep their own Page Margin.
- Printer Driver Settings (Windows, A4/A5): choose Use the PDF's selected A4/A5 page size (recommended for normal invoices, prevents cropping) or Use the selected printer's saved media settings (only when the driver is set up for the exact document size).
Receipt layout and preview
The billing tab has a Receipt layout & preview panel: "Check synced labels and preview the printed receipt".
- Sections Store, Invoice, Customer, Items, Totals & bank and Footer list which fields are visible ("@visible/@total visible").
- Field reference shows every synced label in English and Arabic and its Source.
- Live preview renders a sample receipt with the current settings.
- If nothing shows, the message is "No Bill document configuration is currently synced". Configure the Bill template in the Admin Panel, then tap Resync.
Printing at the counter
- Confirm and Print (F6) in billing confirms the sale and prints the bill on the billing printer.
- With
POS_PRINT_DOUBLE_BILLon, every bill prints twice. - Open cash drawer in billing sends a kick command through the thermal billing printer. If it fails you see "Unable to open cash drawer".
- B2B customers print with the B2B profile (when the
B2Bsetting is on).
Reprint from Sales

*Select Printer: paper size, printers found on this PC, and Print Receipt*
- Open Sales, find the order (for example receipt 2-11-261027-0003, backend ORD-004851).
- Tap Print on the row or on the order details page.
- The Select Printer dialog opens. Pick the Paper Size and a printer.
- Tap Print Receipt.
If you tap print without a printer, the app asks you to select a printer first.
Document configurations
The admin controls what each printout contains in Admin Panel → Document Configuration. The app downloads them with GET /api/v1/document/document-configs?store_id=&language= at startup and on Resync Doc, and keeps them on the device for offline printing.
Document types
Type | Printed for |
|---|---|
Bill | the sales receipt (thermal) |
Bill A4 | the sales bill on A4/A5 |
Return Bill | a sales return |
Sales and Return Bill / Sales and Return Bill A4 | the sale and its return on one print |
Credit Note | credit note after a return |
Invoice | invoice print and share |
Receipt | payment receipt |
Voucher | customer voucher |
Supplier Voucher | supplier voucher |
Quotation | quotation print |
Kitchen Order | KOT |
Barcode | barcode stickers |
Customer Statement / Supplier Statement | ledger statements |
The server also has Delivery Note, Purchase Order, Supplier Invoice, General Payment Voucher, Payslip, Email and ZATCA types used outside the POS screens.
Fields of a document configuration
Field | Effect |
|---|---|
| logo image and whether it prints |
| small icon and whether it prints |
| prefix of the document number (for example |
| heading lines |
| terms printed at the bottom (also used for quotations) |
| footer text |
| template family and default theme |
|
|
| column titles, chosen from options such as Items/Products/Services, Quantity/Hours, Price/Rate, Tax/GST/VAT/Tax (%), Amount/Total |
|
|
| styling |
| whether the configuration is used |
| the display flags below; each has |
Display flags
Each flag turns one part of the printout on or off. A flag can also carry its own label text (for example the Arabic column title).
Area | Flags |
|---|---|
Store heading |
|
Invoice |
|
Customer |
|
Item columns |
|
Totals |
|
Customer balance |
|
Bank |
|
Footer |
|
showPaymentBreaked prints the payment breakdown. For the demo sale it shows cash 258.00 and card 400.00 (cash is stored net of the 42.00 change). showCustomerPhoneMasked hides part of the phone. showQRCode prints the ZATCA QR.
How it works
- Server defaults vs your choice.
GET /api/v1/document/printer-settingsreturns the company defaults:b2c_paper_size,b2c_template,b2b_paper_size,b2b_template. The app checks them against the allowedpaper_sizes,thermal_templatesandpaper_templates. It applies them only where you have not picked a value yourself on this device (each choice is remembered with a<key>_user_selectedflag). After Select Store at login the defaults are force-applied once. - Language. The document
languagedecides English, Arabic or bilingual output. Labels come from the document configuration, not from the app language. - Offline. Document configurations, logos and printer choices are cached, so printing works without internet.
- Default customer phone. With
HIDE_DEFAULT_PHONEon (default), the walk-in customer's phone fromAUTO_ASSIGN_DEFAULT_CUSTOMERis hidden on prints and PDFs. - Title.
PRINT_TITLEis the fallback receipt title when the document configuration has none. - Customer care.
COMPANY_CUSTOMER_CARE_PHONEandCOMPANY_CUSTOMER_CARE_EMAILprint on some templates and shared PDFs. - Public invoice link. Sharing can send the link
{{server}}/invoice/{orderNumber}instead of a file.