Payter Session Protocol (PSP) Specification
To integrate using the Payter Session Protocol local/direct interface, there are two communication options dependant upon the device type. The P6X only supports a Serial connection, whereas the Apollo range supports both TCP/IP and Serial.
In order to utilise a serial connection with Apollo devices, a serial to USB-C adapter is required. These adapters have variable degrees of reliability so Payter can recommend and optionally supply a specific make and model known to be compatible. Please also note that USB-C ports are not “lockable” so particular care must be taken if relying on this connection in a production environment to ensure that the cable cannot be easily unplugged through routine host machine maintenance.
TCP/IP
The Apollo terminal has a server-side socket open that accepts an incoming connection on its IP address or hostname using the default port: 3201*. The TCP/IP port is configurable. The server socket will close an open connection after 20 seconds of inactivity, though this is also configurable. If forcibly closed due to this timeout, the client will have to reconnect. The “Get State” command can be used to keep the connection alive if preferred.
*Early Apollo releases supported PSP over TCP/IP on default port 1234. This is no longer the case, though it can be manually reconfigured if required.
Serial
The serial connection is configured for direct communication between the host machine and Payter terminal. Because the protocol does not provides the mechanism to address a specific device, it is not possible to connect multiple terminals to the host machine on the same serial port. This is done to keep the interface clean and simple, which makes it easy to integrate in host machines lacking the use of a vending machine controller.