E & D Trading • Technical Resources

Understanding the ICT RS232 Bill Acceptor Protocol

A practical reference for serial settings, startup communication, escrow control, status codes, and reset commands.

When a bill acceptor communicates with a machine controller, both devices must use the same interface and protocol. The ICT RS232 protocol described here allows a controller to receive bill-validation information, accept or return a bill, request operating status, and enable or disable the validator.

1. Serial Communication Settings

The specification uses full-duplex, asynchronous communication with a request-based connection-control method. Configure the serial connection as follows:

Setting Required configuration
Baud rate 9600
Data bits 8
Parity Even
Stop bits 1
Start bits 1
X parameter None, as listed in the specification
Transmission Full duplex

Serial format: 9600 baud, 8E1. Command values below are hexadecimal byte values. For example, 0x02 represents one byte with decimal value 2.

ICT WEL-RV706-1 Serial Communication Cable

The ICT WEL-RV706-1 is an RS232 communication cable for ICT protocol systems. It uses a DB9 female connector and an RJ-45 connector to provide data communication between an ICT bill acceptor and compatible equipment.

Use this cable with equipment configured for the ICT RS232 protocol described in this guide. Confirm that your validator and controller have the appropriate interfaces and connector pinouts before ordering.

View the ICT WEL-RV706-1 Serial Cable →

2. Power-Up Communication

At power-up, the bill acceptor sends 0x80 and 0x8F to the controller. The startup table specifies a controller response of 0x02 within two seconds.

3. Bill Validation and Escrow

Escrow is the stage where a validated bill is held while the controller decides whether to accept it or return it. The bill acceptor first sends 0x81 to indicate validation, followed by a bill-type code.

Bill-type code Meaning
0x40 First bill type
0x41 Second bill type
0x42 Third bill type
0x43 Fourth bill type
0x44 Fifth bill type

These codes identify bill types; the supplied specification does not assign currency denominations to them. Confirm the denomination mapping for your validator's currency configuration and firmware.

Controller Decisions

Action Controller command Documented behavior
Accept the bill 0x02 The validator reports stacking with 0x10.
Reject the bill 0x0F The validator reports rejection with 0x11.
Hold in escrow 0x18 in the command table The note states that the bill remains in escrow until an accept or reject command is received, subject to the documented timeout.

The controller does not need to respond to the stacking or rejection notifications, according to the escrow table.

4. Requesting Validator Status

The controller sends 0x0C to request the bill acceptor's status. The specification lists the following responses:

Response Status
0x20 Motor failure
0x21 Checksum error
0x22 Bill jam
0x23 Bill remove
0x24 Stacker open
0x25 Sensor problem
0x27 Bill fish
0x28 Stacker problem
0x29 Bill reject
0x2A Invalid command
0x2E Reserved
0x2F Error-status exclusion response; the document does not further define this condition
0x3E Bill acceptor enabled
0x5E Bill acceptor inhibited

Version 0.3 removed response 0x26. The specification does not define a polling interval or detailed recovery procedures for individual faults.

5. Enabling and Disabling Bill Acceptance

The controller can change the validator's acceptance state using these commands:

Controller command Function
0x3E Enable bill acceptance
0x5E Disable bill acceptance

Decimal-value correction: The original enable/disable table incorrectly labels 0x5E as decimal 62. Its correct decimal value is 94. 0x3E is decimal 62.

6. Resetting the Bill Acceptor

To request a reset, the controller sends 0x30. The reset section then shows the startup exchange: the validator sends 0x80 and 0x8F, and the controller responds with 0x02 within two seconds.

Before Connecting Your Equipment

  • Confirm protocol support: Verify the validator model, firmware, and controller requirements.
  • Confirm wiring: Obtain the correct connector pinout and interface requirements for your hardware.
  • Match the serial settings: Use 9600 baud, eight data bits, even parity, and one stop bit.
  • Verify bill-type mapping: Do not assume that the first bill type represents a particular denomination.
  • Resolve escrow discrepancies: Confirm the hold command and timeout values before programming the controller.
  • Test the complete transaction: Verify startup, acceptance, rejection, inhibition, status reporting, and reset behavior on the intended equipment.
Source: International Currency Technologies, ICT Protocol for RS232 — Communication Specification, version 0.3, dated January 15, 2014, supplied as “ICT104U Protocol.pdf.” This article is an explanatory summary of that document. Model-specific behavior and unresolved source discrepancies require confirmation with ICT.