Bitta Retail POS guide

Telemetry and diagnostics

The privacy-safe BAAPOS telemetry event series, wiring Application Insights at the environment level, the in-product diagnostic surfaces, and exactly what to capture before contacting support.

status: verified applies-to: 1.0.0.121rev: 1

Bitta Retail POS emits structured, privacy-safe telemetry for its operational events and ships several in-product diagnostic surfaces. This page covers what the app records, how Application Insights fits in, and exactly what to capture before contacting support.

Built-in telemetry: the BAAPOS event series

Every telemetry event the app raises goes through a single emission point and carries an event id in the BAAPOS-#### range plus an AppVersion dimension. Custom dimensions are limited to counts, category codes, and configuration identifiers such as store code, terminal id, and setup codes.

NOTE

Telemetry never contains card data, PINs, API keys, customer or item names, or monetary amounts. Failure events carry short category codes (for example a processor's decline category), never free-form error text or payloads.

The event families:

Event ids Area Signals
BAAPOS-0001 Lifecycle Install completed
BAAPOS-0010 - 0011 Selling Sale posted; sale tendered and completed (with a locale-invariant tender-type mix)
BAAPOS-0020 End of day Consolidation run finished (group, failed, and skipped counts)
BAAPOS-0021, 0022, 0025 Register controls Price override, on-account sale, line/invoice discount (reason codes only, never prices)
BAAPOS-0030 Scanning Barcode parse failure that fell back to raw item lookup
BAAPOS-0040 - 0041 Shifts Shift closed (over/short count, never an amount); X/Z report printed
BAAPOS-0050 - 0051 Printing Receipt print sent / failed, with the transport and a short failure category
BAAPOS-0060 - 0067 Card payments Payment lifecycle: started, captured, failed, refunded, crash-restart reconciliation, and abandoned-authorization release
BAAPOS-0070 Returns Return document created (line count only)
BAAPOS-0075 Dual pricing Price-mode adjustment applied at tender (mode name only)
BAAPOS-0080 - 0084 Licensing Entitlement stored through enforcement blocked, with short reason categories such as TrialEnded or TerminalCountExceeded
BAAPOS-0090 - 0092 Security Register locked/unlocked and cashier switched (never a PIN)
BAAPOS-0093 - 0095 Scale Scale paired, stable reading accepted, read failed (protocol only, never a weight)
BAAPOS-0104 - 0106 Kitchen output Kitchen label queued, failed, reprint requested
BAAPOS-0118 Dashboards Warning raised when role-center dashboard data is momentarily unavailable

These events are emitted at extension-publisher scope, which means they land in Bitta Apps' own Application Insights resource. In practice: Bitta Apps support can already see your environment's operational signals (correlated by app version, store, and terminal) without any setup on your side, and the data they see is limited to the safe dimensions above.

Wiring Application Insights at the environment level

You can additionally connect your own Application Insights resource to the Business Central environment itself. This gives your team environment telemetry that you own - errors, performance signals, and extension lifecycle events for everything running in the environment - and it is the standard way to self-diagnose platform-level issues.

  1. Create (or reuse) an Application Insights resource in your Azure subscription and copy its connection string.
  2. Open the Business Central admin center, select the environment, and paste the connection string into the environment's Application Insights setting.
  3. Restart the environment when prompted; telemetry begins flowing after the restart.

TIP

Wire Application Insights before go-live, not after the first incident. Historical telemetry cannot be collected retroactively, and having even a few days of baseline makes support conversations much faster.

In-product diagnostic surfaces

Before reaching for telemetry, the app itself usually tells you where the problem is:

  • Role-center attention cues - EFT Needs Attention, Failed Print Jobs, Settlement Attention, EOD Backlog, and unmapped-record counts, each drilling to the affected records. See Analytics and reporting.
  • POS Print Jobs - every durable print job with Status, Attempt Count, Last Failure Category, and Error Detail, plus Retry and Cancel. See Printers and hardware setup.
  • EFT transactions and attention - the durable record of every card payment, used to reconcile interrupted transactions. See Payment acceptance labs.
  • POS Settlement Entries - per-tender settlement outcomes with an error message and a retry action. See Per-tender settlement.
  • POS License page - license state, days left, and terminal counts. See Licensing and trials.

What to capture before contacting support

Collect these before you write in - they let support identify the exact code path on the first pass:

  1. App version - from Extension Management in Business Central (the current release is 1.0.0.121).
  2. Business Central version and environment - the BC version, the environment name, and whether it is production or sandbox.
  3. Where it happened - store code, terminal id, and the POS user number involved.
  4. The exact error text - copy it verbatim. For a "record was modified" or "not up-to-date" error, also capture the top line of the AL call stack from the error details before refreshing the page; it names the exact write path.
  5. When it happened - date and time with your time zone, so it can be matched to telemetry.
  6. What the operator was doing - the two or three steps immediately before the failure, and whether it reproduces.
  7. Relevant record ids - the POS sale number, print job entry number, settlement entry, or the masked card-payment reference shown in the UI.
  8. A screenshot - of the error and the relevant page state.

WARNING

Never include card numbers, PINs, API keys, activation codes, or raw processor payloads in screenshots or support messages. The masked references and safe status texts shown in the UI are sufficient - support never needs the raw values.

For symptom-by-symptom self-service fixes, start with Troubleshooting.

// next step

Ready to try Bitta Retail POS?