Hardware & card machines

The kit on the counter: the scanner, the printer, the drawer, and the card machine — including the bank-supplied machine on your own shop network.

Everything lives on Settings → Hardware & payments — "Two independent setups: barcode scanner and payment terminal — configure, detect, and practice in one place." Only owners and managers with settings access can open it.

Despite the name it is not a step-by-step wizard: the scanner and the terminal are two independent panels. "Scanner and payment terminal are independent — set up either one in any order. Neither blocks the other."

Barcode scanners

A scanner is a keyboard. That single fact explains everything about setting one up. A shop scanner does not talk to the software through a driver — it types the barcode's digits very fast and then presses Enter, exactly as a very quick typist would. Nothing needs installing.

  1. Plug in a USB scanner, or pair a Bluetooth one as a keyboard (HID).
  2. Configure the scanner's suffix to Enter / CR. This is the one setting that matters — without it the code arrives but nothing happens. It is usually set by scanning a configuration barcode in the scanner's own leaflet.
  3. On Settings → Hardware & payments, press Start scanner detect. The panel says "Waiting for a rapid digit burst + Enter…" and prompts Scan any barcode to test.
  4. Scan any product. If the timing is right the panel reports "Detected wedge scan: …" and then looks the code up in your catalog.

What it is actually checking: 8 to 64 characters, arriving with less than 80 milliseconds between keystrokes, ended by Enter. A human cannot type that fast, which is how the till knows a scanner is attached rather than a person at the keyboard.

The failure messages tell you which half is wrong:

MessageWhat to do
"Keystrokes too slow (…ms gap). A wedge scanner sends digits in under 80ms — try again or check the scanner Enter/CR suffix." You typed it by hand, or the scanner is in a serial/OPOS mode. Put it back into keyboard (HID) mode.
"Need at least 8 characters before Enter…" The scanner sent Enter too early, or the code is very short.
"Scanner timing looked good, but this barcode was not found in the catalog." The scanner works. The product does not exist yet — see Products & menus.

No scanner to hand? Type 5900000000001 quickly and press Enter, or press Look up demo barcode (5900000000001). Pasting a code is accepted as a manual check but skips the timing test.

A phone can be your scanner

Because the till only wants a keyboard, a phone running a Bluetooth HID barcode scanner app works: pair the phone to the counter machine as a Bluetooth keyboard, set the app's suffix to Enter, and scan. The till cannot tell the difference between that and a £200 gun. Good for a market stall, a stock count in the back room, or a shop that is not ready to buy hardware.

Receipt printers and paper width

There are no printer settings

tech-pos prints through your computer's normal print dialogue, at a fixed 80 mm receipt layout. There is no printer picker, no paper-width choice, no 58 mm option, no ESC/POS driver and no auto-cut configuration anywhere in the app.

In practice that means: install the thermal printer in the operating system as you would any printer, set it as the default, and choose it in the print dialogue. If you use 58 mm paper the layout will not be tuned for it — the receipt is laid out for an 80 mm strip.

What you can change is the content, on Settings → Receipt & branding: the store logo, receipt logo and label logo, the Header and Footer text, the default from-email, and which channels the till offers after payment. A live preview on the right shows exactly what will print. See Receipts.

Cash drawers

The drawer is not wired to the software

There is no drawer-kick, no pulse setting and no cash-drawer device configuration. A till drawer that opens on a printer cable will open when the printer fires, because the printer opens it — not because tech-pos told it to. There is no "open drawer" button and no no-sale drawer opening.

What tech-pos does track is the money side of the drawer: opening float, mid-shift checks, and the count at close. That is on Cash drawer & day end.

Card terminals

On Settings → Hardware & payments under Card payments: "Enable card payments and choose a terminal provider. For Square or Stripe, save your store credentials below — they stay encrypted for this store only."

Two ticks decide what the till offers: Enable card payments (terminal) and Enable cash payments. Turn both off and the till keeps showing them anyway, with a warning — "Both tenders are off — the POS keeps showing them so the till can still take money. Turn at least one on."

The four providers

Terminal providerWhat it does today
Virtual Terminal (mock) — Approve/Decline locally, no keys A practice terminal. The till shows an Approve / Decline / Cancel dialog and records a real payment against the sale, with no money involved and no keys required. Use it to train staff and to test your flow.
Stripe Terminal — real readers with your Stripe credentials Real card payments on Stripe readers. Needs your own Stripe secret key and Terminal location id, saved below.
Square Terminal — checkout with your Square credentials Real card payments through the Square Terminal API. Needs your Square access token, location id and — in production — a paired device id.
Bank / external EFTPOS — confirm after tap on bank machine No integration at all, and that is the point. The till shows the amount, the cashier takes the payment on the physical bank machine, and then presses Confirm approved on bank terminal in the POS.

The panel is blunt about the rest: "Adyen and other processors: still deferred."

Saving your own card credentials

The credential form appears once you pick Stripe or Square. Fill it in and the status badge reads Connected, Needs attention or Not configured. Secrets are encrypted for that store and never shown again in full — only a hint like "Access token on file: ••••1234".

For Stripe the panel recommends a restricted key: "Prefer a Stripe restricted key limited to Terminal. Full secret keys work but are broader than needed."

Nothing is ever faked

If credentials are missing the app says so instead of showing a green light — "We never fake a connected processor when credentials are missing." Selecting Stripe with no key gives "Stripe Terminal is selected but no Stripe secret is configured…", and the practice terminal remains available so the shop can still rehearse.

Saving credentials also needs the platform's credential encryption key to be set. Without it the Save button is disabled with a plain explanation — see Email, SMS & keys.

Practising before a customer is standing there

Each provider has a rehearsal button: Practice Virtual Terminal, Detect Stripe readers, Check Square Terminal, Practice bank / external confirm. The practice card shows a $1.00 charge marked "Practice · no charge posted", with Approve or Confirm approved. Nothing is taken.

A bank card machine on your shop network (Pakistan)

In Pakistan the card machine is normally supplied by the bank — HBL, Bank Alfalah, MCB, Meezan — and sits on your own shop router. The panel is Bank card machine on your shop network: "For a bank-supplied card machine (HBL, Bank Alfalah, MCB, Meezan) that sits on your shop's own router. Save where the machine lives so the till can find it later."

What works today — read this first

The app states it in two paragraphs, and they are worth repeating exactly because everything else follows from them:

From the app

External terminal mode: the cashier keys the amount on the bank machine, the customer taps or inserts the card, and the cashier records the approval reference against the sale in the POS. That needs nothing on this screen — pick Bank / external EFTPOS as the terminal provider above and you can take card payments now.

Sending the amount from the till to the machine automatically is a separate thing. It needs your bank's ECR/POS integration document for your acquirer — the protocol, the framing and the port are theirs, they differ per bank, and we do not guess them. This screen stores the address and tests that the till can reach the machine; it does not send anything to it.

The checklist

  1. Put the till and the card machine on the same router — same shop Wi-Fi or the same switch. A machine on mobile data cannot be reached.
  2. On the router, give the card machine a static / reserved IP (reserve it against the machine's MAC address). Without a reservation the address changes on the next reboot and the link breaks.
  3. On the card machine, open the merchant / settings menu and note its IP address and the listening port.
  4. Call your bank's merchant desk and ask them to enable POS/ECR integration on your TID, and to send you the integration document. For HBL ask HBL Merchant Services; for Bank Alfalah ask Bank Alfalah Merchant Acquiring. They push a configuration to the machine over the air — until they do, it will not accept the till.
  5. Enter the IP address and port below and press Test connection on the counter machine.

What you fill in

Then Save terminal details. Forget this terminal removes it.

The connection test

Test connection runs on the counter machine, in the Tech POS desktop app — not on a server and not in a normal web browser. In a browser it explains why rather than inventing a result: the terminal sits on your shop's own network, the platform is on the internet and cannot reach it, and a browser tab cannot open a direct connection to a device.

What the test does: it opens a TCP connection to the address and port you gave, waits up to 2.5 seconds, and closes it. It never sends a single byte to the terminal. That restraint is deliberate — nobody knows what a stray frame would do to a live payment device, and it could leave the machine stuck in a half-open transaction.

ResultWhat it means
Answered "The terminal answered on … The network path is good. Sending an amount to it still needs your bank's ECR integration document and integration switched on for this TID."
Nothing listening The machine is there but the port is closed — "ask the bank to enable POS/ECR integration on this TID, and check the port in the terminal's merchant menu."
No answer in 2.5 seconds "Check the terminal is switched on, joined to the same router as the till, and still on the IP you reserved for it."
Cannot be reached "It is usually on a different network (mobile data or a second router) or switched off."
Not a usable address Enter the machine's IPv4 address (for example 192.168.1.50) and the port from its merchant menu.

The honest line

No wire protocol until the acquirer sends their document

tech-pos stores where your terminal is and which profile name the bank gave you. It implements no bank ECR protocol and sends no bytes to any terminal. The wire format, the framing and the port come from your acquirer's integration document, and they differ per bank and per acquirer — inventing them would be worse than not having them.

What is saved here is labelled exactly that way: "Saved as network details only. Sending an amount to the terminal needs your bank's ECR integration document (protocol, framing, port) and integration enabled on this TID — not implemented. Today, take the payment on the bank machine and record the approval reference against the sale (External terminal mode)."

So: you can take card payments in Pakistan today, with the cashier keying the amount on the bank machine. Automatic amount-push waits on your bank.

Screenshot to come: the "Bank card machine on your shop network" panel with the five-step checklist, the IP / port / TID fields and the Test connection button.
The checklist names the bank's own merchant desk, because the step nobody can skip is getting integration switched on for your TID.

Where things sit, in one table

KitSetup neededWhere
Barcode scannerSet the Enter suffix on the scanner; nothing to installSettings → Hardware & payments
Receipt printerInstall in the operating system; fixed 80 mm layoutYour OS print dialogue
Cash drawerWire it to the printer; no software setting exists—
Card terminal (Stripe / Square)Save your own credentials per storeSettings → Hardware & payments
Bank / external machinePick the provider; optionally record its network addressSettings → Hardware & payments