Interfaces between computer systems are reviewed. An interface establishes a physical connection between two computer systems, a conversational syntax, a format for logical messages passed between the systems, and a data-encoding structure understood by both systems. Interfaces are usually implemented as software modules and consist of three ''layers.'' The physical layer contains the actual physical connection and the hardware, firmware, and software that make the connection work. The protocol layer ensures that the bits of data sent across the interface by the sending system are received intact and in the correct sequence. The logical layer organizes the data to be sent into a form that can be read by the other system. Interfaces can be described by whether they operate in batch or real time, whether they are unidirectional or bidirectional, and the medium used to establish the physical connection (e.g., the exchange of a floppy disk or with an RS-232 serial connection). The real challenge to producing an interface lies in ensuring that the transactions between the two systems are meaningful. An interface engine allows one computer system to interface with several others through a single connection. A good interface has invisibility, reliability, timeliness, flexibility, terseness, and utilities. In planning an interface, goals and the proposed exchanges of data should be clearly defined. The interface should be the simplest one that meets a pharmacy's needs. When the specifications for the interface are completed, the pharmacy should thoroughly test the interface. Computer interfaces can save time by avoiding manual rekeying of data. However, since interfaces are costly and can create pitfalls, they should be carefully planned and thoroughly tested.