The SAP product almost everyone means by “SAP cashier system”

SAP cashier system, traced down to the one technical fact every other guide skips.

Most pages on this topic list features. Sales, returns, day-end, loyalty. None of them tell you that the cashier-facing client is a Java Swing application, that Java Swing is invisible to Windows from the outside until Oracle’s Java Access Bridge is turned on, and that the answer to that single switch is what determines whether any automation around the checkout PC actually works.

M
Matthew Diakonov
9 min

Direct answer (verified 2026-05-05)

SAP cashier system almost always refers to SAP Customer Checkout: SAP’s point-of-sale product, built on Java/Swing, that runs on a Windows checkout PC and posts finalized transactions to SAP S/4HANA, SAP Business One, or SAP Business ByDesign. Two variants ship today:

  • Customer Checkout 2.0, the long-running on-premise release. Java Swing client. SAP Machine 17 (Java 17). Maven-based plugin model.
  • Customer Checkout cloud edition, announced July 2025. SaaS variant with a browser-based cashier UI.

Authoritative source: sap.com / Customer Checkout. SAM4s SAP-series (SAP-530F, SAP-630F) Android cash registers are unrelated hardware that happens to share the prefix.

The stack on the cashier PC

Five layers, and why one of them is invisible by default.

The Customer Checkout window on a cashier counter is the visible part of a five-layer stack. The two layers in the middle are the ones nobody writes about, and they are also the two that decide whether the system is automatable from outside the JVM.

1

Hardware (Windows checkout PC)

All-in-one terminal or standard Windows 10/11 box plus a receipt printer, a barcode scanner, a cash drawer on a serial-over-USB cable, and an EMV PIN pad on a USB or RS-232 line.

2

SAP Machine 17 (Java 17 runtime)

SAP's signed build of OpenJDK 17. Customer Checkout 2.0 requires it; the older SAP Machine 11 / Java 11 path ends with the next feature pack. Anything that talks to the cashier UI from outside the JVM has to cross this boundary.

3

Customer Checkout client (Java Swing)

The cashier-facing app. Built on Swing components (and a small amount of JavaFX in newer panels), distributed as Maven plugins that extend BasePlugin. Backend traffic to SAP S/4HANA, B1, or ByDesign goes through the CCO event bus.

4

Java Access Bridge

Oracle's bridge from Java's accessibility API to Windows. Ships as WindowsAccessBridge-64.dll, JavaAccessBridge.dll, and JAWTAccessBridge.dll. Off by default. Until you turn it on, the rest of the cashier PC sees the Customer Checkout window as one opaque rectangle.

5

Windows UI Automation

The OS framework screen readers, accessibility tools, and accessibility-API automation read the screen with. Once Java Access Bridge is enabled, every Customer Checkout button, field, and grid cell shows up as a UIA element with the usual Edit / Button / DataItem control types.

The Java Access Bridge layer is the one nobody mentions

SAP Customer Checkout is implemented in Java. The cashier UI is built out of Swing components (with a small amount of JavaFX in some newer panels), running inside SAP Machine 17. SAP’s own community documentation calls out this stack directly, including the move from SAP Machine 11 to SAP Machine 17 and the Maven-based plugin model that extends the BasePlugin class.

Java draws Swing widgets inside the JVM with its own component model. A native Windows process looking at the Customer Checkout window from the outside, including Microsoft’s own UI Automation framework, sees one big rectangle by default. No buttons, no fields, no grid cells. The widgets are real, but they live behind a wall.

Oracle ships the official translation layer. It is called Java Access Bridge and it has been there since before SAP Customer Checkout existed. The bridge consists of three DLLs: WindowsAccessBridge-64.dll, JavaAccessBridge.dll, and JAWTAccessBridge.dll. When it is enabled, the Java accessibility API inside the JVM is mirrored out into the Windows accessibility surface. Every Swing button becomes a UIA Button. Every Swing text field becomes a UIA Edit. Every grid cell becomes a UIA DataItem with the Value pattern. The same tree screen readers walk for any other Windows app.

JAB

Java Access Bridge for the Microsoft Windows Operating System makes it possible for a Windows based Assistive Technology to get at and interact with the Java Accessibility API.

Oracle, Java SE Desktop Accessibility documentation

The bridge is off on a stock SAP Machine install. To turn it on you run, in an elevated prompt, from the JRE bin folder:

jabswitch -enable

One command. After that, restart Customer Checkout, open Microsoft’s Inspect.exe tool, and hover over the cashier UI. Buttons resolve to ControlType=Button with the accessible label they show on screen. Article-grid cells resolve to ControlType=DataItem with ValuePattern. That is the moment Customer Checkout becomes addressable from anything outside the JVM, including Mediar.

What the cashier PC actually has to talk to

Customer Checkout’s built-in backend connector handles one relationship: the link from the POS to the configured ERP. Sales, payments, simple returns, gift cards, and day-end journals push out on that pipe with no human help. That is genuinely solved.

The work the cashier and the store manager actually do at exception time involves the other systems on this list. None of them are inside the SAP backend connector, and that is why the search traffic for “SAP cashier system” keeps surfacing.

Adjacent surfaces

Where the cashier alt-tabs to (and where SAP’s connector does not reach)

SAP S/4HANA

Receives finalized transactions, journal entries, and stock movements from Customer Checkout via the configured backend connector.

SAP Business One

The Business One backend variant. Most F&B and small-retail Customer Checkout deployments post here.

SAP Business ByDesign

The ByDesign backend option. Less common, but supported as a Customer Checkout target.

EMV / payment terminal

Adyen, Verifone, Ingenico, or local processor. Talks to the Java client via OPI or a vendor SDK; failures here are the most common day-end mismatch.

Loyalty / gift card

Givex, Paytronix, or a homegrown loyalty stack. Often a separate web portal the cashier opens to look up a card the POS does not recognize.

E-commerce / OMS

Shopify, BigCommerce, or a custom OMS. Order pickups and online returns arrive at the counter without being inside Customer Checkout master data yet.

Excel reconciliation

The end-of-day workbook the manager keeps. Cash totals, voucher counts, manager overrides, and any shortfall get retyped here before the day is closed.

Bank deposit form

Cash counted at the till has to land in a bank deposit slip, usually a vendor PDF or a web form, with the same totals already entered in two other places.

The exception workflow that brings most ops leaders to look at this space is some shape of: cashier hits a problem, cashier opens a second window, cashier copies a number from one app to another, cashier comes back to the till and continues. Each of those alt-tabs is a place where data moves by hand and where a desktop agent that reads the same accessibility tree the cashier is reading can take over.

A concrete example: end-of-day mismatch reconciliation

One specific cashier-PC workflow, end to end

At a small-format restaurant chain we worked with, day-end ran like this. The cashier pulls the till count and types it into the Customer Checkout cash-balancing dialog. CCO posts the day-end journal to SAP Business One. If the difference is non-zero, the night manager opens an Excel workbook the regional ops team maintains, types the till total in column C of today’s row, types the CCO-reported total in column D, and pastes the variance reason from a fixed list. They open the bank’s deposit web form, type the cash-deposited number again, and submit. They email the workbook back. Twenty minutes per night, per store.

With Java Access Bridge enabled on the cashier PC, every value the manager retypes is already addressable. The CCO till total sits in a labelled Edit control inside the cash-balancing dialog. The Excel cells C and D on today’s row are DataItem elements with the Value pattern. The deposit form input is a standard HTML input with an accessible name. The Mediar agent reads the first, types the second and third. The workflow is recorded by watching the manager do it once, end to end, and replays unattended at close every night after that.

Per-run cost is around 90 seconds of agent runtime, so under $1.20 per store per night at our $0.75 per minute rate. The saved labor is the twenty minutes of after-hours management time, multiplied across the chain.

The two things this page is honest about not solving

A page about a Java POS that only describes the easy cases is a brochure. Two limits worth naming:

  • Receipt-less return decisions. When a customer walks up with no receipt and the article is not in CCO master data, somebody has to make a judgment call. We do not pretend an agent should make that call for you. The recorded workflow pauses, the cashier types the override SKU into Customer Checkout, and the agent picks up the rest.
  • Customer Checkout cloud edition before the browser tree stabilizes. The cloud edition (announced July 2025) uses an HTML cashier UI rather than Swing. UI Automation reads HTML accessibility roles fine, but the specific element names in the cloud build will keep shifting until the product hits a steady state. We follow that as it ships; the on-prem 2.0 path is the more reliable target right now.

Within those limits, the cashier-PC exception workflow is the place where the “SAP cashier system” question actually ends. Every page that ranks for the term tells you what Customer Checkout does. The thing missing from those pages is what to do when the cashier closes the dialog and reaches for the workbook on the second monitor.

Bring a real day-end and one exception. We will trace the bridge.

On a call, share one cashier-PC workflow that today involves alt-tabbing between Customer Checkout, Excel, and a deposit form. We will enable Java Access Bridge on a test PC, walk the UIA tree live, and show the recorded workflow run end to end.

Frequently asked questions

What does 'SAP cashier system' actually refer to?

Almost always SAP Customer Checkout, SAP's point-of-sale product. It runs as a Java Swing application on a Windows checkout PC, handles sales, returns, vouchers, loyalty, and day-end closing, and posts transactions to SAP S/4HANA, SAP Business One, or SAP Business ByDesign through a backend connector. There are two shipping variants today: the on-premise Customer Checkout 2.0, which is the long-running release, and Customer Checkout cloud edition, announced in July 2025 as the SaaS replacement. A small fraction of searches are about SAM4s 'SAP-series' Android cash registers (SAP-530F, SAP-630F), which are unrelated hardware that happen to share the prefix in their model name.

Why does it matter that Customer Checkout is built on Java Swing?

Because most Windows automation tools (and most operating-system features) cannot read Swing widgets directly. Swing draws its UI inside the JVM with its own component model; from the outside, the Customer Checkout window looks like one undifferentiated bitmap. Oracle's Java Access Bridge is the official translation layer: it surfaces Swing's accessibility API to Windows so that screen readers, accessibility-API automation, and the OS itself can address each button, field, and grid cell as a normal UI Automation element. If Java Access Bridge is disabled on a checkout PC, anything that tries to read or type into Customer Checkout has to fall back to image matching, which is the brittle path. If it is enabled, the same UI Automation calls that work on SAP GUI, Excel, or Notepad work on Customer Checkout too.

How do you actually turn on Java Access Bridge on a cashier PC?

On a 64-bit Windows machine with SAP Machine 17 installed, open an elevated command prompt, change directory to the JRE bin folder (typically %SAP_MACHINE_HOME%\bin), and run `jabswitch -enable`. That registers the system-wide bridge and writes the .accessibility.properties marker into the user profile. Restart Customer Checkout. To verify, open Microsoft's Inspect.exe (ships in the Windows SDK) or Accessibility Insights for Windows and hover over a Customer Checkout button: the role should resolve to Button or PushButton with an accessible name, not 'Pane' with no name. Oracle documents the same procedure for any 64-bit Java application; SAP does not override it.

What can Customer Checkout post automatically, and what still needs human typing?

The happy-path transactional flow is fine. Sales, payments, simple returns, gift cards, and day-end closing journals push to S/4HANA, Business One, or ByDesign through the configured backend connector with no human help. The work that still falls on the cashier or the store manager is the exception lane: returns where the original receipt is from a different store, manual coupon overrides, payment-terminal mismatches that have to be reconciled by hand at close, master-data gaps where the article scanned does not exist in the local cache yet, manager overrides that need to be re-keyed into a separate audit log, and the dance between the till count, the deposit slip, and the back-office workbook. Those exceptions are exactly the workflows that bring people to look for automation around 'SAP cashier system' in the first place.

Why doesn't Customer Checkout's own backend connector handle the exception cases?

Because the connector is point-to-point: it pushes finalized transactions from CCO to one backend ERP. It does not bridge the cashier PC to the loyalty portal, the e-commerce OMS, the manager's Excel workbook, the bank deposit web form, or the helpdesk ticketing system. Those are separate apps with their own UIs, often opened in a browser tab next to the Customer Checkout window. The exception workflows are the moments where the cashier alt-tabs between two or three of those, copies a number from one window, and types it into another. That is the work that does not have a SAP connector and never will, because the partner systems on the other side change too often.

How does Mediar fit on top of this?

Mediar runs as a Windows desktop agent on the same checkout PC. It reads the Customer Checkout UI through the Java Access Bridge bridge described above, plus the browser, Excel, and any other window the cashier touches, all through the same Windows UI Automation tree. A workflow is recorded by watching a real human do it once: open the loyalty portal, look up the card, paste the number into the CCO Customer field, finish the sale. The recording becomes a Zod-typed schema and a workflow file that runs unattended after that. We do not write a special Customer Checkout connector; we read the same accessibility tree the user already exposes by enabling Java Access Bridge.

Does this work on the new Customer Checkout cloud edition or only the on-prem 2.0 release?

Both, with a caveat. The on-prem 2.0 client is the Java Swing application described above and is the cleanest target. The cloud edition is the SaaS variant SAP announced in July 2025; the cashier UI for that edition is browser-based, which is a different accessibility tree (HTML / ARIA roles instead of Swing components) but the same UI Automation framework reads both. The exception workflows around the cashier PC, the loyalty portal, the Excel workbook, the deposit form, are identical in either case, so the work Mediar does on top sits in the same place. The Java Access Bridge step only matters for the Swing client.

Is enabling Java Access Bridge a security or compliance risk?

It is the same thing your screen-reader users already need. Java Access Bridge ships with every supported 64-bit Java distribution, including SAP Machine. It exposes the Java accessibility API to Windows assistive technologies. Turning it on does not open a network port, does not change Customer Checkout's authentication model, and does not weaken the SAP backend connector. It does mean that any process running as the same logged-in user can read the Customer Checkout UI tree, which is also true of the existing Windows accessibility surface (Notepad, Excel, browser, SAP GUI). Customers running SOC 2 or HIPAA workloads typically allowlist the bridge in their endpoint policy and move on; we have not seen a hard 'no' on it from a security review.

What is the cost ladder if I want to actually deploy automation around the cashier PC?

Mediar is $0.75 per minute of runtime, with a $10K turn-key program fee that converts to credits. A typical exception workflow (look up loyalty, finish a return-with-receipt-from-other-store, post the day-end mismatch into the manager workbook) runs in 60 to 120 seconds, so under two dollars per execution. There is no per-seat license, no separate Customer Checkout add-on charge from SAP, and no specialized RPA developer requirement. The comparable UiPath pricing for Java automation against Customer Checkout, with attended-bot licenses on every cashier PC plus an orchestrator instance, comes in around five times that on the deployments we have seen, which is why the F&B chains we work with end up moving.

What about returns where the customer has no receipt and the article is not in CCO master data?

That is the worst case and the most honest place to acknowledge what automation cannot do. If the cashier has to make a judgment call (does this article look like ours? is this customer trustworthy?), the workflow has to wait at that step. Mediar handles this by pausing on the human-decision step in the recording: the desktop agent stops, the cashier types the article SKU into the override field, hits Enter, and the agent picks up from there. That is faster than scripting around it, and more honest than pretending an LLM can do retail loss prevention.