Máy rút tiền tự động
Phần mềm

Với việc chuyển đổi sang phần cứng máy tính cá nhân, các hệ điều hành và môi trường lập trình thương mại tiêu chuẩn "có sẵn" có thể được sử dụng bên trong máy ATM. Các nền tảng điển hình trước đây được sử dụng trong phát triển ATM bao gồm RMX hoặc OS/2.
Ngày nay, phần lớn các máy ATM trên toàn thế giới sử dụng hệ điều hành Microsoft Windows, chủ yếu là Windows XP Professional hoặc Windows XP Embedded.  Đầu năm 2014, 95% máy ATM đang chạy Windows XP. Một số lượng nhỏ các bản triển khai có thể vẫn đang chạy các phiên bản Windows OS cũ hơn, chẳng hạn như Windows NT, Windows CE hoặc Windows 2000, mặc dù Microsoft vẫn chỉ hỗ trợ Windows 8 và Windows 10.
Có quan điểm bảo mật trong ngành máy tính cho rằng hệ điều hành máy tính để bàn công cộng có nhiều rủi ro hơn khi là hệ điều hành cho máy rút tiền so với các loại hệ điều hành khác như hệ điều hành thời gian thực (RTOS) (an toàn). RISKS Digest đã có nhiều bài viết về các lỗ hổng của hệ điều hành ATM.
Linux cũng đang tìm kiếm một số sự tiếp nhận trên thị trường ATM. Một ví dụ về điều này là Banrisul, ngân hàng lớn nhất ở miền nam Brazil, đã thay thế hệ điều hành MS-DOS trong các máy ATM của mình bằng Linux. Banco do Brasil cũng đang chuyển các máy ATM sang Linux. Vortex Engineering có trụ sở tại Ấn Độ đang sản xuất các máy ATM chỉ hoạt động với Linux. Các giao thức giao dịch lớp ứng dụng phổ biến, chẳng hạn như Diebold 91x (911 hoặc 912) và NCR NDC hoặc NDC + cung cấp mô phỏng của các thế hệ phần cứng cũ hơn trên các nền tảng mới hơn với các phần mở rộng gia tăng được thực hiện theo thời gian để giải quyết các khả năng mới, mặc dù các công ty như NCR liên tục cải thiện việc phát hành các giao thức này phiên bản mới hơn (ví dụ: NCR của AANDC v3.xy, trong đó xy là các phép lật đổ). Hầu hết các nhà sản xuất ATM lớn đều cung cấp các gói phần mềm thực hiện các giao thức này. Các giao thức mới hơn như IFX vẫn chưa được các bộ xử lý giao dịch chấp nhận rộng rãi.
Với việc chuyển sang nền tảng phần mềm được tiêu chuẩn hóa hơn, các tổ chức tài chính ngày càng quan tâm đến khả năng chọn và lựa chọn các chương trình ứng dụng điều khiển thiết bị của họ. WOSA / XFS, hiện được gọi là CEN XFS (hoặc đơn giản là XFS), cung cấp một API chung để truy cập và thao tác các thiết bị khác nhau của máy ATM. J / XFS là một triển khai Java của API CEN XFS.
Mặc dù lợi ích được nhận thức của XFS tương tự như câu thần chú " viết một lần, chạy mọi nơi " của Java, thường các nhà cung cấp phần cứng ATM khác nhau có cách hiểu khác nhau về tiêu chuẩn XFS. Kết quả của những khác biệt này trong cách diễn giải có nghĩa là các ứng dụng ATM thường sử dụng một phần mềm trung gian để phân biệt sự khác biệt giữa các nền tảng khác nhau.
Với sự ra đời của hệ điều hành Windows và XFS trên máy ATM, các ứng dụng phần mềm có khả năng trở nên thông minh hơn. Điều này đã tạo ra một loạt ứng dụng ATM mới thường được gọi là ứng dụng có thể lập trình. Những loại ứng dụng này cho phép một loạt các ứng dụng hoàn toàn mới trong đó thiết bị đầu cuối ATM có thể làm được nhiều việc hơn là chỉ giao tiếp với bộ chuyển mạch ATM. Nó hiện được trao quyền để kết nối với các máy chủ nội dung khác và hệ thống ngân hàng video.
Phần mềm ATM đáng chú ý hoạt động trên nền tảng XFS bao gồm Triton PRISM, Diebold Agilis EmPower, NCR APTRA Edge, Absolute Systems AbsoluteINTERACT, KAL Kalignite Software Platform, Phoenix Interactive VISTAatm, Wincor Nixdorf ProTopas, Euronet EFTS và Intertech inter-ATM.
Với việc chuyển các máy ATM sang các môi trường máy tính tiêu chuẩn công nghiệp, mối quan tâm đã tăng lên về tính toàn vẹn của ngăn xếp phần mềm của máy ATM.