e-bon
e-bon.ro
E-BON App

Pairing your fiscal printer

Pair an AMEF to the E-BON Android app over Bluetooth, USB, Serial or TCP, understand how auto-detection probes protocols in order, and fall back to Manual Connect when detection cannot identify the device.

Once the app is installed and signed in, the Devices tab is where you introduce each fiscal printer (AMEF) to E-BON. This page walks through the four supported transports — Bluetooth, USB, Serial, TCP — explains how the app auto-detects the protocol the printer speaks, and shows what to do when auto-detection cannot pin down the model.

The central entry point for every flow on this page is the Device Discovery screen. Open the Devices tab and tap Add device — that lands you on the three-button discovery screen described below.

Pair over Bluetooth

Bluetooth is the most common transport for counter-top and mobile AMEFs. The E-BON app deliberately does not run its own Bluetooth bonding flow: it relies on Android's own pairing UI, then picks the printer up as an already-bonded device. This keeps PIN entry, passkey confirmation and encryption negotiation in the hands of the OS, where they belong.

Pair the printer in Android's Bluetooth settings first

Put the printer into pairing mode (consult the printer manual — most Datecs and Tremol devices hold a button on the control panel until the beeper sounds). On the Android device open Settings → Connected devices → Pair new device, tap the printer when it shows up, and confirm the passkey. When the OS reports the device as Paired, you are done here.

Open Device Discovery in the app

In the app, tap Devices → Add device. On the Device Discovery screen tap Scan Bluetooth. The app enumerates bonded Bluetooth devices and starts a short BLE scan, collating the results into the list underneath the action cards.

Pick the printer and confirm on the Pairing screen

Tap the entry for your printer. The app navigates to the Device Pairing screen, pre-filling the device name and the suggested protocol (if it could infer one from the Bluetooth name or service UUIDs). Edit the display name, assign a location label if you use one, verify the protocol chip, and tap Pair Device. The device is saved locally and registered with the cloud in one shot.

If the Bluetooth scan returns nothing, the usual culprit is the Android permission prompt for Nearby devices (Bluetooth scan + connect) or Location — see the permissions section in Installing on Android for why the location permission is required for Bluetooth scans on Android 10 and some Android 12+ devices.

Connect over USB

Romanian ANAF-certified AMEFs do not typically expose a native Android USB-HID fiscal interface — they show up as serial devices over a USB-to-Serial bridge (CDC-ACM for printers with a built-in UART, or an external FTDI / CH340 / CP210x cable from the printer's RS-232 port to the phone's USB-C). That is why the AndroidManifest.xml for the app does not declare USB_HOST or usb-feature permissions, and why the supported devices matrix treats USB as reached via the Serial transport entry in the protocol registry.

In practice:

Plug the adapter into the Android device

Connect the USB-to-Serial bridge (or the printer's USB cable, if the printer presents itself as CDC-ACM) to the phone or tablet. Android shows the familiar per-device USB permission prompt — the one-time system dialog asking whether to let E-BON access this specific USB device. Tap OK, and tick Always open E-BON when this USB device is connected if you want to skip the prompt next time.

Use Manual Connect to register the serial endpoint

Because the adapter is addressed as Serial, open Devices → Add device → Manual connection. Pick the printer's protocol, leave transport on Serial, and enter the identifier Android reported for the adapter (typically /dev/ttyUSB0 or the CDC-ACM node name). Baud defaults to 115200; drop it to 9600 for Incotex and for the Custom generic adapter.

Connect over Serial (RS-232)

Serial covers a direct RS-232 cable (including the USB-to-Serial bridge case above) between the printer and the Android host. There is no discovery step — the printer exposes no scannable beacon — so serial always goes through Manual Connect.

Open Manual Connect

Tap Devices → Add device → Manual connection to open the manual setup form.

Pick protocol and transport

Select the protocol that matches your printer (Datecs Extended / Compact / Professional, Tremol / Tremol V2, Daisy / Daisy RO, Eltrade, Incotex, MF/JE for Shtrih, or Custom for anything not listed). Set Transport to Serial.

Fill in address and baud

Enter the serial port identifier (for example /dev/ttyS0 or /dev/ttyUSB0) in the Address field. The default baud rate is 115200, matching the registry defaults for the ISL and ZFP families. Lower it to 9600 for Incotex and for the Custom fallback — both ship with a 9600-baud default in the protocol registry.

Connect over TCP

TCP is the transport for LAN-attached printers that expose a network fiscal service, and for printers reached through a Wi-Fi-to-serial bridge sitting on the same subnet. Add them either by running a Scan network pass from Device Discovery — which probes the registry's default ports on the local subnet — or by entering the IP and port by hand in Manual Connect.

Put the printer on the network

Make sure the printer (or the bridge in front of it) is reachable from the Android device's subnet. Note the IP address — it is almost always visible on the printer's status receipt or admin menu.

Pick the port for the protocol family

The default TCP port depends on the family:

  • 9100 — Datecs Extended / Compact / Professional, Daisy, Daisy RO, Eltrade, Incotex, MF/JE. Every ISL and the Shtrih entry share this port.
  • 4999 — Tremol and Tremol V2. This is the distinctive ZFP port.
  • 8000 — the Custom generic Serial/TCP fallback, checked last.

Register the device

Either kick off Scan network on the Device Discovery screen and tap the match that appears (the scan probes the ports above on the local subnet and merges results by host), or go through Manual connection, set Transport to TCP, and enter the Host and Port fields directly.

Understand how auto-detection works

When you tap Scan network or Scan Bluetooth, the app does not yet know which protocol the discovered device speaks. It walks through a built-in list of candidate protocols in a fixed order and tries them one after the other until one accepts the connection.

The probe order is fixed and ships with the build:

  1. Datecs Extended (ISL)
  2. Datecs Compact (ISL)
  3. Datecs Professional (ISL)
  4. Tremol (ZFP)
  5. Tremol V2 (ZFP)
  6. Daisy (ISL)
  7. Daisy RO (ISL)
  8. Eltrade (ISL)
  9. Incotex (ISL)
  10. MF/JE (Shtrih)
  11. Custom (Serial) — always last

Ordering roughly tracks installed-base size in the Romanian market: Datecs first, Custom last. For a TCP scan the probe is further narrowed by port — a hit on port 4999 only tries the Tremol entries, a hit on port 9100 tries the ISL and Shtrih families, and 8000 falls through to Custom. The full matrix of ports, baud rates and transports lives in Supported devices & transports.

Once a device has been paired successfully, its protocol is recorded on the local device entry and on the cloud-side registration. On every subsequent reconnect the app skips probing entirely and opens the connection with the stored protocol — which is what makes reconnects feel instant even for Custom adapters that would otherwise take the longest to identify.

Fall back to Manual Connect when auto-detection fails

Auto-detection is best-effort. It can fail when the device is behind a firewall that blocks the default ports, when the printer speaks a non-listed dialect of an ISL variant, when a USB-to-Serial bridge exposes an unusual baud rate, or when a Bluetooth-over-SPP device advertises an uninformative name. In all of those cases the fallback is the Manual Connect screen, where you tell the app explicitly what to do:

  • Device name — free-text label that will appear on the Devices list and on issued receipts' device column.
  • Protocol — pick the exact registry entry. If you genuinely do not know, start at the manufacturer's family (Datecs → ISL, Tremol → ZFP, Shtrih → MF/JE) and only fall through to Custom after those fail.
  • Transport — TCP, Bluetooth or Serial. The USB chip is shown for completeness but resolves to Serial under the hood for now.
  • Connection fieldsHost + Port for TCP (port pre-filled to 4999; change to 9100 for ISL/Shtrih or 8000 for Custom); Address for Bluetooth (the MAC) and Serial (the device node).
  • Test connection — runs a live handshake against the chosen protocol and transport before you commit. A green tick means the app successfully negotiated the protocol; a red cross points at the wrong protocol, wrong port or an unreachable host.

When Test connection succeeds, tap Save device. The entry lands in the on-device list immediately, then the cloud registration is attempted in the background — the same two-step path used by the Bluetooth pairing flow.

Troubleshoot and continue

If pairing fails, the usual fault lines are covered in the Troubleshooting guide — the Bluetooth permission prompt never appeared, the USB dialog was dismissed, the host is on a different subnet, the printer returned no response to any of the eleven probe candidates, or the protocol auto-detected correctly but the cloud claim failed. Each case has a dedicated remediation there.

Once the device is paired, manage it day-to-day from the Devices tab on the app and from the Portal's Devices page, which shows every paired printer across every location, with live status, protocol, transport and last-seen timestamp.