ATM Software

The software of an Automated Teller Machine (ATM) controls all the machine’s operations, including customer interactions, transaction processing, communication with banking networks, and the management of hardware components. Modern ATM software acts as the bridge between the ATM hardware and the bank’s central computer systems, ensuring that every transaction is processed accurately, securely, and efficiently.

As ATM technology has evolved, the software platforms used by ATMs have also changed significantly. Earlier ATM systems relied on specialized operating systems designed specifically for banking equipment, while modern ATMs generally use commercially available operating systems and standardized software frameworks.


Evolution of ATM Operating Systems

The adoption of Personal Computer (PC) hardware in ATM design allowed manufacturers to replace custom operating systems with widely available commercial operating systems and programming environments. This change reduced development costs, simplified maintenance, and made it easier to integrate new technologies.

Earlier ATM platforms commonly used operating systems such as:

  • RMX
  • OS/2

As PC-based hardware became more common, these operating systems were gradually replaced by Microsoft Windows and other modern platforms.


Microsoft Windows in ATMs

Today, the majority of ATMs around the world operate using Microsoft Windows operating systems.

By early 2014, approximately 95% of ATMs worldwide were running Windows XP, making it the most widely used ATM operating system at that time.

Although Microsoft officially ended support for Windows XP in 2014, many ATMs continued using this operating system for several years because upgrading ATM software and hardware requires significant investment and careful testing.

Even as of 2020, a considerable number of ATMs were still operating with Windows XP. Some older ATM installations also continued to use operating systems such as:

  • Windows NT
  • Windows CE
  • Windows 2000

Today, Microsoft officially supports only Windows 10 and Windows 11, and many financial institutions are gradually upgrading their ATM software to these newer operating systems.

Common Operating Systems Used in ATMs

Operating SystemUsage
RMXEarly ATM operating system.
OS/2Earlier commercial ATM platform.
Windows XPWidely used in ATMs for many years.
Windows NTUsed in older ATM installations.
Windows CEUsed in certain embedded ATM systems.
Windows 2000Found in some legacy ATMs.
Windows 10 / Windows 11Current Microsoft-supported operating systems for modern ATMs.

Security Considerations

The widespread use of general-purpose desktop operating systems has raised security concerns within the banking and computer security industries.

Many security experts believe that operating systems originally designed for desktop computers may present greater security risks when used in machines that dispense cash. Since ATMs are connected to financial networks and handle sensitive customer information, they require a much higher level of protection against malware, unauthorized access, and cyberattacks.

Some experts suggest that Real-Time Operating Systems (RTOS), which are specifically designed for secure and reliable embedded systems, may provide better security than conventional desktop operating systems in certain ATM applications.


Linux-Based ATMs

In recent years, Linux has become an increasingly popular operating system for ATM deployments because of its flexibility, reliability, and lower licensing costs.

Several financial institutions have adopted Linux-based ATM systems.

For example:

  • Banrisul, one of the largest banks in southern Brazil, replaced the MS-DOS operating system in its ATMs with Linux.
  • Banco do Brasil has also been migrating many of its ATMs to Linux.
  • Vortex Engineering, an Indian ATM manufacturer, develops ATMs that operate exclusively on Linux.

The growing use of Linux demonstrates its ability to provide stable and secure operation in banking environments.


ATM Communication Protocols

ATM software communicates with banking systems through transaction protocols, which define how transaction data is exchanged between the ATM and the bank’s processing systems.

Several widely used application-layer protocols continue to support both older and newer ATM hardware.

Some commonly used protocols include:

  • Diebold 91x (911 and 912)
  • NCR NDC
  • NCR NDC+

These protocols allow newer ATM systems to maintain compatibility with older hardware while gradually adding support for new features and technologies.

ATM manufacturers continue improving these protocols over time. For example, NCR periodically releases updated versions such as AANDC v3.x.y, providing additional functionality and performance improvements.

A newer communication protocol known as IFX has also been developed. However, it has not yet achieved widespread adoption among transaction processing systems.

Common ATM Transaction Protocols

ProtocolPurpose
Diebold 91x (911/912)Supports communication between ATM software and banking systems.
NCR NDCStandard transaction communication protocol for NCR ATMs.
NCR NDC+Enhanced version of the NCR NDC protocol with additional capabilities.
IFXNewer transaction protocol with limited industry adoption.

XFS Standard

As ATM software became more standardized, financial institutions sought greater flexibility in selecting software from different vendors.

To support this objective, the Windows Open Systems Architecture for Financial Services (WOSA/XFS) standard was developed. It is now commonly known as CEN XFS or simply XFS.

XFS provides a common Application Programming Interface (API) that allows ATM software to communicate with hardware devices such as:

  • Card readers
  • Cash dispensers
  • Receipt printers
  • PIN pads
  • Deposit modules

By using a common API, software developers can create ATM applications that work across different hardware platforms with fewer modifications.

Another implementation called J/XFS provides the same functionality using the Java programming language.

Advantages of XFS

FeatureBenefit
Common APIStandard interface for communicating with ATM hardware.
Hardware IndependenceAllows software to work with equipment from different manufacturers.
Java SupportAvailable through J/XFS implementation.
Improved FlexibilitySimplifies development and maintenance of ATM software.

Middleware in ATM Systems

Although XFS provides a common standard, different ATM manufacturers sometimes interpret the standard differently when developing their hardware.

As a result, software written for one manufacturer’s ATM may not function exactly the same on another manufacturer’s equipment.

To solve this compatibility issue, ATM systems often use middleware.

Middleware acts as an intermediate software layer between the ATM application and the hardware, translating commands so that applications can operate consistently across equipment from multiple vendors.


Programmable ATM Applications

The introduction of Windows operating systems together with the XFS standard significantly expanded the capabilities of ATM software.

Earlier ATM applications were primarily limited to communicating with the ATM switch for processing financial transactions.

Modern programmable ATM applications can perform many additional functions beyond traditional banking services.

These applications can communicate with:

  • Content management servers
  • Customer information systems
  • Video banking platforms
  • Other remote service applications

This allows ATMs to provide a much wider range of interactive services, including multimedia content and remote customer assistance.


Examples of ATM Software Platforms

Several software platforms have been developed for ATMs that operate using the XFS standard. Some of the widely used ATM software solutions include:

ATM Software PlatformDeveloper
Triton PRISMTriton
Diebold Agilis EmPowerDiebold
NCR APTRA EdgeNCR
AbsoluteINTERACTAbsolute Systems
Kalignite Software PlatformKAL
VISTAatmPhoenix Interactive
ProTopasWincor Nixdorf
EFTSEuronet
inter-ATMIntertech

These software platforms provide tools for transaction processing, hardware control, customer interface management, monitoring, and integration with banking networks.


Software Integrity and Security

As ATMs have increasingly adopted industry-standard computer hardware and commercial operating systems, concerns about the integrity of the ATM software stack have grown.

The software stack includes the operating system, middleware, communication protocols, security modules, and application software that work together to operate the ATM.

Since ATMs process sensitive financial information and control cash dispensing, maintaining the integrity and security of every software component is essential. Financial institutions therefore implement regular software updates, security patches, encryption technologies, and continuous monitoring to protect ATM systems from unauthorized access, malware, and other cybersecurity threats.