Setting Configuration Parameters and Values (ITP Protocol)

The table below provides a list of setting configuration parameters and values for ID TECH devices.

Function ID

Hex

Length

Name

Default

Description

TrackSelectID

13

1

Track Selection

0

Any Track 0-any

PollingIntervalID

14

1

Polling Interval

1 (1 ~ 255)

USB HID polling interval

TrackSepID

17

1

Track Separator

0x0D=CR/Enter

CR for RS232; Enter for KB any character

supported except 00, which means “none”

Sentinel and Account Number controlID

19

1

Sentinel and Account Number Control

1 (0~0xF)

Bit0

1: Send start/end sentinel

0: Not send start/end sentinel

Bit1

1: Only send account number on Track2

0: Send all data on Track2

Bit2

1: Send error notification

0: No error notification

Bit3

1: Alt key output

0: Control key output

MSRReadingID

1A

1

MSR Reading

Setting

1 (0~1)

0: MSR Reading Disabled

1: MSR Reading Enabled

DecodingMethodID

1D

1

Decoding Direction

1 (0~3)

Reading Direction

0x30: Raw data decoding in both directions

0x31: Decode in both directions

0x32: Move stripe along head in direction of encoding

0x33: Move stripe along head against direction of encoding

ReviewID

1F

1

Review All

Settings

None

 

FmVerID

22

1

Firmware

Version

None

 

USBHIDFmtID

23*

1

USB HID Format

(HID reader only)

8 (0, 8)

0: ID TECH format

8: HID KB format

ForeignKBID

24

1

Foreign KB

0 (0 ~0x3A)

Foreign Keyboard; available options are:

US: 0x30

SWISS: 0x31

SWEDISH: 0x32

SPANISH_MEX: 0x33

NORWAY: 0x34

ITALIAN: 0x35

GERMAN: 0x36

FRENCH: 0x37

JAPAN: 0x38

UK: 0x39

UNIVERSAL: 0x3A

USBSuspendID

25

1

Enable/Disable

USB Suspend

0(0,1)

0: Disable USB suspend

1: Enable USB suspend

CustSetID

30

1

Custom Customer Settings

04(00 - 07)

0: Level 3/4 Non-CC sent as Level 1

1: Level3: No empty packet when not enough sampling bits

2: Enhanced secured output will have SN after hash

Track1PrefixID

34

6

Track1 Prefix

0 (any string)

No prefix for Track1; six character maximum

Track2PrefixID

35

6

Track2 Prefix

0 (any string)

No prefix for Track2; six character maximum

Track3PrefixID

36

6

Track3 Prefix

0 (any string)

No prefix for Track3; six character maximum

Track1SuffixID

37

6

Track1 Suffix

0 (any string)

No suffix for Track1; six character maximum

Track2SuffixID

38

6

Track2 Suffix

0 (any string)

No suffix for Track2; six character maximum

Track3SuffixID

39

6

Track3 Suffix

0 (any string)

No suffix for Track3; six character maximum

KeyTypeID

3E*

1

Data or PIN Key

0

0: Data key

5A: PIN key

PrePANID

49

1

PAN to Not

Mask

4 (0-6)

Number of leading PAN digits to display

PostPANID

4A

1

PAN to Not Mask

4 (0-4)

Number of trailing PAN digits to display

MaskCharID

4B

1

Mask the PAN with This

Character

  • (0x20-0x7E)

Any printable character

CrypTypeID

4C*

1

Encryption Type

1 (1~3)

1: 3DES

2: AES

3: TransArmor RSA

DispExpDateID

50

1

Mask or Display Expiration Date

1(0-1)

0: Mask expiration date

1: Display expiration date

Mod10ID

55

1

Include mod10 Check Digit

0 (0-2)

0: Don’t include mod10

1: Display mod10

2: Display wrong mod10

HashOptID

5C

1

Hash Process Option

7 (0~7)

Send Track1-3 hash

bit 0:1 send Track1 hash

bit 1: 1: send Track2 hash

bit 2:1 send Track3 hash

UpperID

5D

1

Upper Case Option

1 (0, 1)

0: a~z,

1: A~Z

LRCLv1ID

60

1

Track LRC Option in Level 1

1 (0, 1)

1: Send Track LRC in output data

0: Do not send Track LRC

T17BstartID

61

1

Track1 Bit 7

Start Char

% (any)

% as Track1 Bit 7 start sentinel

T15BstartID

63

1

Track1 Bit 5 Start

; (any)

; as Track1 Bit 5 start sentinel

T27BstartID

64

1

Track2 Bit 7

Start Char

% (any)

% as Track2 Bit 7 start sentinel

T25BstartID

65

1

Track2 Bit 5 Start

; (any)

; as Track2 Bit 5 start sentinel

T37BstartID

66

1

Track3 Bit 7

Start Character

% (any)

% as Track3 Bit 7 start sentinel

T35BstartID

68

1

Track3 Bit 5 Start

; (any)

; as Track3 Bit 5 start sentinel

T1EndID

69

1

Track1 End

Sentinel

? (any)

? as end sentinel

T2EndID

6A

1

Track2 End

Sentinel

? (any)

? as end sentinel

T3EndID

6B

1

Track3 End

Sentinel

? (any)

? as end sentinel

T1ERRSTARTID

6C

1

Track1 error

Code

% (any)

Start sentinel if Track1 error report

T2ERRSTARTID

6D

1

Track2 error

Code

; (any)

Start sentinel if Track2 error report

T3ERRSTARTID

6E

1

Track3 error

Code

+ (any)

Start sentinel if Track3 error report

SecureLrcID

6F

1

Secured Output Format Track LRC Option Enhanced Only

1 (0, 1)

1: Send track LRC in secured output data

0: Don’t send track LRC

Note: This command is valid for level3

EquipFwID

77*

1

Feature Option Setting

0x05 (any)

Factory Reader firmware configuration; setting 77 is the firmware equipment options settings.

Bit 0: _secure = equipFw^0; // Always 1 if a secure reader

Bit 1: _hasLED = equipFw^1; // 1 if the reader has LED and beep support, 0 for SREDKey 2

Bit 2: _hasRail = equipFw^2; // 1 if the reader has a rail for a SecureKey reader

Bit 3: _xml = equipFw^3; // 1 if XML output format, 0 for ID TECH output format

Bit 4: _mm = equipFw^4; // 1 if MiniMag, always 0 for SREDKey 2

Bit 5: _generic = equipFw^5; // 1 if generic.

Bit 6 and 7: Always 0.

SyncCheckID

7B

1

Check for Track Sync Bits; can allow poorly encoded cards to be read

2 (0~2)

Check leading & trailing sync bits 0 13 bits:

1: 13 bits, but allow if valid through track LRC;

2: 9 bits ABA; 13 bits IATA; 16 bits JIS

EncryptOptID

84

1

Encryption Options, Enhanced Only

0 encrypt card type 0; (0-1F)

Bit 0: Encrypt Track1

Bit 1: Encrypt Track2;

Bit 2: Force encryption on Track3 and with  no masked data; valid both for non-CC and card type 0

Bit 3: Encrypt Track3 if card type 0

Bit 4: Encrypt Track3 if card type 0 only and allow Track1, Track2, Track3 masked data to be sent as well

Note: General ISO card Track3 mask is always not present, except for command 0x91. In this command, the Track3 mask is only for 4909 cards.

EncryptStrID

85*

1

Encryption Structure

1 (0~1)

0: Original; 1: Enhanced

MaskOptID

86

1

Clear / Mask Data Options

7 (0~7)

Bit 0: Send clear/mask Track1

Bit 1: Send clear/mask Track2

Bit 2: Send clear/mask Track3

EnFmtID

88

1

Encryption Format

\02\30\34

Encryption format used in XML output format

T3ExpDatePosID

89

1

Expiration Date Position

0x34 ((0x34, 0x36)

Track3 expiration date position offset

KeyTimeoutI D

8D

1

Timeout Value for Key Press Interval

5(20 seconds) (1~225)

Timeout = value * 4

Timeout range is from 4 to 900 seconds

AdminLvlID

8E

1

Admin Level

B, 15, 1F, 29, 33, 3D

B: Admin 1

15: Admin 2

1F: Admin 3

29: Admin 4

33: Admin 5

3D: Admin 6

KeyedOptID

8F*

1

Keyed Options

3

bit 0

0: Output in original keyed output

1: Output in enhanced keyed-in output

bit 1

0: Allow empty CVV entry

1: Require three or more CVV digits

bit 2

0: Allow empty ZIP entry

1: Require five or more ZIP digits

bit 3

0: Allow empty ADR entry

1: Require one or more ADR digits

bit 4

0: Do a mod-10 check on keyed-in PAN

1: Don’t check the PAN mod-10

bit 5

0: Admin enabled

1: Admin disabled

Bits 6-7 reserved; all 0

Non-fincilEncryptOptID

90*

1

Non-Financial Card Encryption Options

0

0: Non-financial card output plaintext at level 3.

1: Non-financial card output as financial card at level 3.

Equip2ID

AE*

1

Equip Setting Byte for Different Readers or New Settings

0 (00-0xFF)

If bit4 = 1, send serial number during USB enumeration

CustomSet3ID

B0

1

Customer Setting

0 (0, 1)

Bit 0

0: Standard manual entry display

1: Remise special display, in PAN entry

mode, have hyphens every four digits, pre-PAN and post-PAN are always four digits, and masked PAN has a short delay after PAN data is displayed in clear text

CustomTimeout1

B1

1

Timeout for Plaintext Change to Mask Characters

2 (1~20)

The algorithm is timeout = value * 0.5 (seconds), so timeout range is 1~10 seconds.

PrefixID

D2

15

Preamble

0 (any 15)

No Preamble, 15 character maximum

PostfixID

D3

15

Postamble

0 (any 15)

No Postamble, 15 character maximum

EncryptOpt2ID

D5

1

Encrypted Option 2 Output

0 (0~1)

Bit 0

0: Encrypted without MAC

1: Encrypted with MAC

Bit 1 to Bit 7 reserved; all 0.

Legacy Setting Configuration Parameters and Values

The Function ID settings below are legacy versions only.

Function ID

Hex

Length

Name

Default

Description

TrackSepID

17

1

Track Separator

0x0D=CR/Enter

CR for RS232, Enter for KB any character supported except 00 which means none.

Sentinel and Account number controlID

19

1

Sentinel and Account Number Control

1

Bit 0

1: Send start/end sentinel

0: Do not send start/end sentinel

Bit 1

1: Only send account number on Track2\

0: Send all data on Track2

Bit 2

1: Send error notification

0: Not error notification

Bit 3

1: Alt key output

0: Control key output

Track1PrefixID

34

6

Track1 Prefix

0 (any string)

No prefix for Track1: six character maximum

Track2PrefixID

35

6

Track2 Prefix

0 (any string)

No prefix for Track2: six character maximum

Track3PrefixID

36

6

Track3 Prefix

0 (any string)

No prefix for Track3: six character maximum

Track1SuffixID

37

6

Track1 Suffix

0 (any string)

No suffix for Track1: six character maximum

Track2SuffixID

38

6

Track2 Suffix

0 (any string)

No suffix for Track2: six character maximum

Track3SuffixID

39

6

Track3 Suffix

0 (any string)

No suffix for Track3: six character maximum

LRCLv1ID

60

1

Track LRC Option in Level 1

1 (0-1)

1: Send track LRC in output data

0: Don’t send track LRC

T17BstartID

61

1

Track1 Bit 7

Start Character

% (any)

% as Track1 Bit 7 start sentinel

T15BstartID

63

1

Track1 Bit 5 Start

; (any)

; as Track1 5 Bit start sentinel

T27BstartID

64

1

Track2 Bit 7

Start Character

% (any)

% as Track2 Bit 7 start sentinel

T25BstartID

65

1

Track2 Bit 5 Start

; (any)

; as Track2 5 Bit start sentinel

T37BstartID

66

1

Track3 Bit 7

Start Character

% (any)

% as Track3 Bit 7 start sentinel

T35BstartID

68

1

Track3 Bit 5 Start

; (any)

; as Track3 5 Bit start sentinel

T1EndID

69

1

Track1 End

Sentinel

? (any)

? as end sentinel

T2EndID

6A

1

Track2 End

Sentinel

? (any)

? as end sentinel

T3EndID

6B

1

Track3 End

Sentinel

? (any)

? as end sentinel

T1ERRSTARTID

6C

1

Track1 Error Code

% (any)

Start sentinel if Track1 error report

T2ERRSTARTID

6D

1

Track2 Error

Code

; (any)

Start sentinel if Track2 error report

T3ERRSTARTID

6E

1

Track3 Error

Code

+ (any)

Start sentinel if Track3 error report