ID TECH VP3600 Users Manual

NEO Interface Developers Guide
80139403-001 Rev.116
8 Sep 2017
Email: support@idtechproducts.com URL:
ID TECH. 10721 Walker St., Cypress, CA
Confidential
90630
http://www.idtechproducts.com
NEO Interface Developers Guide
Copyright
Copyright © 2017, ID TECH. All rights reserved.
ID TECH 10721 Walker St. Cypress, CA 90630
This document, as well as the software and hardware described in it, is furnished under license and may be used or copied online in accordance with the terms of such license. The content of this document is furnished for information use only, is subject to change without notice, and should not be construed as a commitment by ID TECH. Reasonable effort has been made to ensure the accuracy of information provided herein. However, ID TECH assumes no responsibility or liability for any unintentional errors or inaccuracies that may appear in this document.
Except as permitted by such license, no part of this publication may be reproduced or transmitted by electronic, mechanical, recording, or otherwise, or translated into any language form without the express written consent of ID TECH. ID TECH and ViVOpay are trademarks or registered trademarks of ID TECH.
Warranty Disclaimer: The services and hardware are provided "as is" and "as-available" and the use of the services and hardware is at its own risk. ID TECH does not make, and hereby disclaims, any and all other express or implied warranties, including, but not limited to, warranties of merchantability, fitness for a particular purpose, title, and any warranties arising from a course of dealing, usage, or trade practice. ID TECH does not warrant that the services or hardware will be uninterrupted, error-free, or completely secure.
ii
NEO Interface Developers Guide
Table of Contents
1.0 INTRODUCTION .......................................................................................................................... 1
HISTORICAL BACKGROUND .................................................................................................................. 1
MasterCard Contactless (PayPass) Capability ........................................................................................ 1
Protocol 1 Deprecated ............................................................................................................................ 1
RGANIZATION OF THIS GUIDE
O
OTATIONAL CONVENTIONS
N
EADER INTERFACE CAPABILITIES
R
2.0 QUICK REFERENCE ...................................................................................................................... 4
OMMAND TABLES
C
Commands Sorted by Command Name .................................................................................................. 4
Commands Sorted by Command Number ............................................................................................... 7
Pass-Through Command Table ............................................................................................................. 11
EMV Key Manager Command Tables.................................................................................................... 12
TATUS CODES
S
Status Codes for Protocol 1 ................................................................................................................... 13
Status Codes for Protocol 2 ................................................................................................................... 13
RROR CODES
E
TATE CODES
RF S
3.0 SERIAL COMMUNICATION INTERFACES ....................................................................................... 20
RS232 S
USB HID I
ERIAL INTERFACE
Port Settings .......................................................................................................................................... 20
Basic Communication ............................................................................................................................ 20
Timeouts ............................................................................................................................................... 20
HID Report Format ................................................................................................................................ 21
Sample Single Report Command and Response .................................................................................... 22
Data Frames .......................................................................................................................................... 23
Sample Single Report Command with Multiple Report Response ......................................................... 23
Error Handling at Report Level .............................................................................................................. 24
Error Handling at Command Level ........................................................................................................ 25
........................................................................................................................................... 4
............................................................................................................................................... 13
................................................................................................................................................ 15
............................................................................................................................................ 18
NTERFACE
....................................................................................................................................... 21
............................................................................................................................ 1
............................................................................................................................... 2
......................................................................................................................... 2
................................................................................................................................ 20
4.0 VIVOPAY COMMUNICATION PROTOCOLS ................................................................................... 26
ROTOCOL 1 (DEPRECATED
P
Command Frames ................................................................................................................................. 26
ACK Frames ........................................................................................................................................... 26
NACK Frames ........................................................................................................................................ 27
Special Frames ...................................................................................................................................... 27
ROTOCOL
P
ASS-THROUGH MODE (PROTOCOL
P
2.................................................................................................................................................. 27
Command Frames ................................................................................................................................. 27
Response Frames .................................................................................................................................. 28
) ............................................................................................................................. 26
2) ............................................................................................................... 28
iii
NEO Interface Developers Guide
Basic Pass-Through Operation .............................................................................................................. 28
Pass-Through Command Frame ............................................................................................................ 29
Pass-Through Response Frame ............................................................................................................. 29
Suggested Sequence for Pass-Through Commands .............................................................................. 29
Auto-Switch to Pass-Through Mode ..................................................................................................... 30
RF On/Off States for Pass-through Commands ..................................................................................... 33
URST MODE
B
ViVOpay Burst Mode Frames ................................................................................................................ 34
CRC C
5.0 TAG AND DATA SET CONFIGURATION ......................................................................................... 45
ONFIGURABLE
C
System AIDs .......................................................................................................................................... 48
User AIDs ............................................................................................................................................... 48
Reader Default TLV Group .................................................................................................................... 49
PayPass Default Group ......................................................................................................................... 49
User-defined TLV Groups ...................................................................................................................... 49
Configurable AID Reader Memory Requirement................................................................................... 50
ViVOpay Proprietary TLVs ..................................................................................................................... 51
ARD APPLICATION PROPRIETARY TAG LIST
C
ONFIGURATION TAG TABLES
C
Global Configuration Tags .................................................................................................................... 52
Group Configuration Tags ..................................................................................................................... 56
PayPass Group Configuration TLVs ....................................................................................................... 64
PayPass Group Configuration TLVs with Hard-Coded Values in Kernel ................................................ 70
American Express Group Configuration TLVs ........................................................................................ 75
AID Configuration Tags ......................................................................................................................... 78
................................................................................................................................................ 33
ALCULATION
......................................................................................................................................... 42
S AND GROUPS
AID
.................................................................................................................... 46
(FF69) .............................................................................................. 51
........................................................................................................................... 52
6.0 CARD APPLICATION SELECTION .................................................................................................. 85
OMBINED SELECTION
C
Selection Features (FFE3) ...................................................................................................................... 85
ARTIAL SELECTION
P
ARTICIPATION IN SELECTION PROCESSES
AID P
ERMINAL
T
7.0 CARD APPLICATION SPECIFIC BEHAVIOR ..................................................................................... 88
M
8.0 PROTOCOL COMMAND REFERENCE: PROTOCOL 1 ....................................................................... 91
RANSACTION RELATED COMMANDS
T
EY MANAGER COMMANDS PROTOCOL
K
AID L
ASTERCARD PAYPASS
PayPass Default Group ......................................................................................................................... 88
Balance Read Function .......................................................................................................................... 88
Torn Transaction Recovery.................................................................................................................... 89
EMV Certificate Revocation List ............................................................................................................ 89
Stop Transaction Command .................................................................................................................. 89
Proprietary Tag List ............................................................................................................................... 89
PayPass Personalization Limits ............................................................................................................. 89
Flush Track Data (17-02) ....................................................................................................................... 91
Get Full Track Data (17-CD) .................................................................................................................. 91
Get ViVOpay Firmware Version (29-00) ................................................................................................ 94
Set CA Public Key (24-01) Protocol 1 ..................................................................................................... 96
Delete CA Public Key (24-02) Protocol 1 .............................................................................................. 100
..................................................................................................................................... 85
(FFE1) .............................................................................................................................. 86
(FFE8) ........................................................................................... 86
IST
(DFEF2C) ......................................................................................................................... 87
HIP
M/C
....................................................................................................................... 88
.................................................................................................................. 91
1 ........................................................................................................... 95
iv
NEO Interface Developers Guide
Delete All CA Public Keys (24-03) Protocol 1 ....................................................................................... 102
ISCELLANEOUS PROTOCOL 1 COMMANDS
M
Set RF Error Reporting (17-03) ............................................................................................................ 103
EAL TIME CLOCK) SET UP COMMANDS
RTC (R
RTC Set Time (25-01) ........................................................................................................................... 104
RTC Get Time (25-02) .......................................................................................................................... 105
RTC Set Date (25-03) ........................................................................................................................... 105
RTC Get Date (25-04) .......................................................................................................................... 107
9.0 PROTOCOL COMMAND REFERENCE: PROTOCOL 2 ..................................................................... 109
ENERAL COMMANDS
G
Ping (18-01)......................................................................................................................................... 109
Set Poll Mode (01-01) ......................................................................................................................... 109
Control User Interface (01-02) ............................................................................................................ 110
Set/Get Source for RTC/LCD/Buzzer/LED (01-05) ................................................................................ 112
Set Configuration Defaults Command (04-09) .................................................................................... 114
Set Configuration Defaults and Keep Encrypt Key Command (04-0A) ................................................ 116
Set Configuration (04-00) .................................................................................................................... 116
Get Configuration (03-02) ................................................................................................................... 117
Get Version Protocol 2 (29-00) ............................................................................................................ 118
Get USB Boot Loader Version (29-04) ................................................................................................. 119
Get Contact EMV L2 Kernel Version (29-06) ....................................................................................... 119
Get Contact EMV L2 Kernel Version Detail (29-07) ............................................................................. 120
Get Contact EMV L2 Kernel Checksum (29-08) ................................................................................... 120
Get Contact EMV L2 Terminal Configuration Checksum (29-09) ........................................................ 121
Get UID of MCU (29-17) ...................................................................................................................... 122
Set Baud Rate (30-01) ......................................................................................................................... 122
Set Temporary Baud Rate (30-02) ....................................................................................................... 123
Set Baud Rate and Audio Level (30-03) – UniPay 1.5 & UniPay III ...................................................... 124
Set Cable Type (32-02) ........................................................................................................................ 125
Get Cable Type (32-01) ....................................................................................................................... 125
Set Serial Number (12-02) ................................................................................................................... 126
Get Serial Number (12-01) .................................................................................................................. 126
Bootup Notification Command (14-01) ............................................................................................... 127
ONFIGURABLE
C
Set Configurable AID (04-02) .............................................................................................................. 128
Set Configurable Group (04-03) .......................................................................................................... 130
Get Configurable AID (03-04) .............................................................................................................. 131
Get Configurable Group (03-06) ......................................................................................................... 131
Delete Configurable AID (04-04) ......................................................................................................... 132
Delete Configurable Group (04-05) ..................................................................................................... 133
Get All AIDs (03-05) ............................................................................................................................. 134
Get All Groups (03-07) ........................................................................................................................ 135
RANSACTION RELATED COMMANDS: CONTACT
T
Setting transaction parameters .......................................................................................................... 136
Contact EMV L2 Transaction Flow ...................................................................................................... 137
Contact Retrieve Application Data (60-01) ......................................................................................... 138
Contact Remove Application Data (60-02) ......................................................................................... 138
Contact Set Application Data (60-03) ................................................................................................. 139
Contact Retrieve Terminal Data (60-04) ............................................................................................. 140
Contact Remove Terminal Data (60-05) ............................................................................................. 141
Contact Set Terminal Data (60-06) ..................................................................................................... 142
Contact Retrieve AID List (60-07) ........................................................................................................ 148
................................................................................................................................... 109
AND GROUP COMMANDS
AID
....................................................................................................... 103
................................................................................................... 103
................................................................................................... 128
................................................................................................. 135
v
NEO Interface Developers Guide
Contact Retrieve CA Public Key (60-08) ............................................................................................... 149
Contact Remove CA Public Key (60-09) ............................................................................................... 150
Contact Set CA Public Key (60-0A) ...................................................................................................... 151
Contact Retrieve CA Public Key List (60-0B) ........................................................................................ 152
Contact Retrieve Certification Revocation List (60-0C) ....................................................................... 152
Contact Remove Certification Revocation List (60-0D) ....................................................................... 153
Contact Set Certification Revocation List (60-0E)................................................................................ 154
Contact Remove Transaction Amount Log (60-0F) ............................................................................. 155
Contact Start Transaction (60-10) ...................................................................................................... 155
Contact Authenticate Transaction (60-11).......................................................................................... 161
Contact Apply Host Response (60-12) ................................................................................................. 164
Contact Retrieve Transaction Result (60-13) ...................................................................................... 167
Contact Get Reader Status (60-14) ..................................................................................................... 169
Contact Get ICS Identification (60-15) ................................................................................................ 169
Contact Set ICS Identification (60-16) ................................................................................................. 170
Contact LCD Display Control (61-01) (Reader send to Host) ............................................................... 171
Contact Get PIN Control (61-02) (Reader send to Host) ...................................................................... 173
Contact Get MSR Data Control (Reader send to Host)(61-03) ............................................................ 176
RANSACTION RELATED COMMANDS: CONTACTLESS
T
Activate Transaction Command, Contactless (02-01 and 02-40) ........................................................ 178
Get Transaction Result (03-00 and 03-40) .......................................................................................... 202
Update Balance Command (03-03) ..................................................................................................... 207
Cancel Transaction Command (05-01) ................................................................................................ 208
ASTERCARD
M
Stop Transaction (05-02) ..................................................................................................................... 209
Reset Torn Transaction Log (84-0E) .................................................................................................... 210
Clean Torn Transaction Log (84-0F) Command ................................................................................... 211
ISA
V
VCPS T
Set Cash Transaction Reader Risk Parameters (04-0C) ....................................................................... 212
Get Cash Transaction Reader Risk Parameters (03-0C) ...................................................................... 213
Set Cashback Transaction Reader Risk Parameters (04-0D) ............................................................... 214
Get Cashback Transaction Reader Risk Parameters (03-0D) .............................................................. 215
Set DRL Reader Risk Parameters (04-0E) ............................................................................................ 216
Get DRL Reader Risk Parameters (03-0E) ............................................................................................ 217
EY MANAGEMENT COMMANDS
K
Get CA Public Key (D0-01) ................................................................................................................... 219
Get CA Public Key Hash (D0-02) .......................................................................................................... 220
Set CA Public Key (D0-03) .................................................................................................................... 221
Delete CA Public Key (D0-04) .............................................................................................................. 221
Delete All CA Public Keys (D0-05) ........................................................................................................ 222
Get All CA Public RIDs (D0-06) ............................................................................................................. 222
List CA Public Key IDs or RID (D0-07) ................................................................................................... 223
ODULE VERSIONING
M
Get Product Type (09-01) .................................................................................................................... 225
Get Processor Type (09-02) ................................................................................................................. 226
Get Main Firmware Version (09-03) ................................................................................................... 227
Get Hardware Information (09-14) ..................................................................................................... 228
Get Module Version Information (09-20) ............................................................................................ 229
NTERNATIONAL LANGUAGE SUPPORT
I
Other Language .................................................................................................................................. 231
Bitmap Conversion Completed by POS ................................................................................................ 231
ILM Header Format ............................................................................................................................. 231
Language Version Information ........................................................................................................... 232
HIP
M/C
RANSACTION COMMANDS
RANSACTION COMMANDS
3.0 T
............................................................................................................ 212
..................................................................................................................... 218
................................................................................................................................... 223
............................................................................................................... 230
........................................................................................... 178
...................................................................................... 209
vi
NEO Interface Developers Guide
ERTIFICATE REVOCATION LIST COMMANDS
EMV C
Get EMV Revocation Log Status (84-03) ............................................................................................. 234
Add Entry to EMV Revocation List (84-04) .......................................................................................... 234
Delete All Entries for Single Index in EMV Revocation List (84-05) ..................................................... 235
Delete All Entries from EMV Revocation List (84-06) .......................................................................... 235
Get EMV Revocation List (84-07) ........................................................................................................ 236
Delete an Entry from EMV Revocation List (84-0D) ............................................................................ 237
XCEPTION LOG LIST COMMANDS
EMV E
Get EMV Exception Log Status (84-08) ............................................................................................... 238
Add Entry to EMV Exception List (84-09) ............................................................................................ 238
Delete Entry from EMV Exception List (84-0A) .................................................................................... 239
Delete All Entries from EMV Exception List (84-0B) ............................................................................ 240
Get EMV Exception List (84-0C)........................................................................................................... 240
ENERIC PASS-THROUGH COMMANDS
G
Pass-Through Mode Start/Stop (2C-01) .............................................................................................. 241
Get PCD and PICC Parameters (2C-05) ................................................................................................ 242
Poll for Token (2C-02) ......................................................................................................................... 243
Enhanced Poll for Token (2C-0C) ......................................................................................................... 245
Get ATR (2C-12)................................................................................................................................... 248
Antenna Control (28-01) ..................................................................................................................... 250
ASS-THROUGH UI CONTROL
P
LED Control (0A-02) ............................................................................................................................. 250
Buzzer Control (0B-xx) ......................................................................................................................... 251
ASS-THROUGH DATA EXCHANGE
P
Exchange Contactless Data (2C-03) .................................................................................................... 252
PCD Single Command Exchange (2C-04) Protocol 2 ............................................................................ 253
High Level Halt Command (2C-09) ...................................................................................................... 257
Enhanced Pass-Through Command (2C-0B) ....................................................................................... 257
Single Shot Commands........................................................................................................................ 261
Exchange APDU Data (2C-13) ............................................................................................................. 265
Contact Card Power Off (2C-18) .......................................................................................................... 266
IGH LEVEL PASS-THROUGH COMMANDS FOR MIFARE CARDS
H
Mifare Authenticate Block (2C-06) ...................................................................................................... 267
Mifare Read Blocks (2C-07) ................................................................................................................. 268
Mifare Write Blocks (2C-08) ................................................................................................................ 270
Mifare ePurse Command (2C-0A) ....................................................................................................... 271
IGH LEVEL PASS-THROUGH COMMANDS FOR
H
NFC Commands (2C-40) ...................................................................................................................... 277
ECURE PASS-THROUGH FUNCTION
S
.......................................................................................................................... 250
........................................................................................................... 238
............................................................................................................. 241
.................................................................................................................... 252
................................................................................................................. 280
.............................................................................................. 233
.............................................................................. 267
ARDS
NFC C
.................................................................................. 277
10.0 SECURE COMMUNICATION .................................................................................................. 288
Burst mode .......................................................................................................................................... 288
Data Output ........................................................................................................................................ 288
Encryption Algorithms......................................................................................................................... 288
Secure Data Exchange ........................................................................................................................ 289
Padding of Data Fields ........................................................................................................................ 289
Set Data Encryption Key Variant Type (C7-2F) .................................................................................... 290
Get Data Encryption Key Variant Type (C7-30) ................................................................................... 290
Set DUKPT Key Encryption Type (C7-32) ............................................................................................. 291
Get DUKPT Key Encryption Type (C7-33) ............................................................................................. 291
Set Data Encryption Enable Flag (C7-36) ............................................................................................ 292
Get Data Encryption Enable Flag (C7-37)............................................................................................ 294
Set MSR Secure Parameters (C7-38) ................................................................................................... 294
vii
NEO Interface Developers Guide
Get MSR Secure Parameters (C7-39) .................................................................................................. 295
EY INJECTION AND RELATED COMMANDS
K
Set Remote Key Injection Timeout (C7-2D) ......................................................................................... 296
Get Remote Key Injection Timeout (C7-2E) ......................................................................................... 296
Check DUKPT Keys (81-02) .................................................................................................................. 297
Check DUKPT Key (81-04) .................................................................................................................... 298
Get DUKPT Key Serial Number (KSN) (81-0A)...................................................................................... 299
11.0 IMPROVED COLLISION DETECTION ....................................................................................... 301
Issues with Standard Collision Detection ............................................................................................ 301
Collision Detection Modes................................................................................................................... 302
12.0 KIOSK III BOOT LOADER ....................................................................................................... 305
ESCRIPTION
D
OOT PROCEDURE
B
OMMUNICATION PROTOCOL
C
IRMWARE DOWNLOADER FILE NAME FORMAT
F
IRMWARE DOWNLOADER DATA FORMAT
F
OWNLOAD FIRMWARE STEPS
D
IRMWARE DOWNLOADER COMMANDS
F
Enter Boot Loader Process from Main Application (C7-41) ................................................................. 308
Get Boot Loader Version (C7-10) ........................................................................................................ 308
Start Update Process (C7-11) .............................................................................................................. 309
Erase Boot/Application Space(C7-12) ................................................................................................. 309
Send Encrypted Firmware Check Value(C7-13) ................................................................................... 310
Send Firmware Data (C7-14) ............................................................................................................... 311
End Update Process (C7-15) ................................................................................................................ 311
Start Application (C7-16) ..................................................................................................................... 312
Firmware Downloader Command Processing Flow ............................................................................ 312
............................................................................................................................................... 305
........................................................................................................................................ 305
......................................................................................................................... 306
........................................................................................................................ 308
........................................................................................................ 296
................................................................................................. 306
........................................................................................................ 307
............................................................................................................ 308
13.0 UNIPAY 1.5 & UNIPAY III COMMANDS .................................................................................. 314
Set PMC Status (F0-00) ....................................................................................................................... 314
Get PMC Status (F0-01) ....................................................................................................................... 315
Get Battery Level (F0-02) .................................................................................................................... 315
Shut Off the Power (F0-0F) .................................................................................................................. 316
14.0 VIVOPAY VENDI READER COMMANDS .................................................................................. 318
Configure Buttons (F0-F4) ................................................................................................................... 318
Get Button Configuration (F0-F5) ....................................................................................................... 318
Disable Blue LED Sequence (F0-F6) ..................................................................................................... 319
Enable Blue LED Sequence (F0-F7) ...................................................................................................... 320
LCD Display Clear (F0-F9) .................................................................................................................... 321
Turn Off Yellow LED (F0-FA) ................................................................................................................ 321
Turn On Yellow LED (F0-FB)................................................................................................................. 322
Buzzer On/Off (F0-FE) ......................................................................................................................... 322
LCD Display Line 1 Message (F0-FC) .................................................................................................... 323
LCD Display Line 2 Message (F0-FD) ................................................................................................... 323
15.0 APPLEPAY VAS AND OTHER SPECIAL FUNCTIONS .................................................................. 325
PPLEPAY
A
Set Merchant Record (04-11) .............................................................................................................. 331
Get Merchant Record (03-11) ............................................................................................................. 332
EER TO PEER FUNCTIONALITY
P
VAS F
UNCTIONALITY
...................................................................................................................... 325
........................................................................................................................ 333
viii
NEO Interface Developers Guide
Peer To Peer Send A Message (C7-9A) ................................................................................................ 333
Peer To Peer Receive A Message (C7-9B) ............................................................................................ 333
SYNCHRONOUS MEDIA TRACKING (ONLY FOR KIOSK
A
ETERMINE CARD PRESENCE (ONLY FOR KIOSK
D
Detect Card Presence Command (02-05) ............................................................................................ 335
QUIVALENT DATA FUNCTION
MSR E
Tag DFEF4B ......................................................................................................................................... 336
Tag DFEF4C ......................................................................................................................................... 338
Tag DFEF4D ........................................................................................................................................ 338
16.0 SAMPLE SCENARIOS AND FRAME FLOW ............................................................................... 344
ONTACTLESS MAGSTRIPE TRANSACTIONS IN AUTO POLL MODE
C
ONTACTLESS MAGSTRIPE TRANSACTIONS IN POLL ON DEMAND MODE
C EMV (M/C
APPENDIX A.1: USER EXPERIENCE ILLUSTRATION ............................................................................... 351
APPENDIX A.2: AUDIBLE USER INTERFACE ......................................................................................... 353
APPENDIX A.3: CONFIGURABLE AID USE EXAMPLES ........................................................................... 354
APPENDIX A.4: DEMO UTILITIES AND SAMPLE CODE .......................................................................... 358
APPENDIX A.5: FIRMWARE FAQ ........................................................................................................ 359
APPENDIX A.6: TDES DATA ENCRYPTION EXAMPLES........................................................................... 363
HIP) TRANSACTION IN POLL ON DEMAND MODE
................................................................................................................. 336
III) ..................................................................................... 334
III) ............................................................................................. 335
.......................................................................... 344
................................................................. 346
................................................................................ 348
APPENDIX A.7: AES DATA ENCRYPTION EXAMPLES ............................................................................ 374
APPENDIX A.8: TRANSACTION RESULTS FOR MSD2.0.2 AC3.0 CRYPTOGRAM17 ................................... 386
APPENDIX A.9: PREPARING BITMAPS FOR USE WITH ILM ................................................................... 387
APPENDIX A.10: DEFAULT CONFIGURATION ...................................................................................... 393
APPENDIX A.11: ENHANCED ENCRYPTED MSR DATA OUTPUT FORMAT............................................... 401
APPENDIX A.12: ENCRYPTED DATA FORMAT, TLV-BASED ................................................................... 405
Using Length Byte to Flag Mask and Encryption (IDTech Enhanced TLV): .......................................... 405
NCRYPTED/MASKED
E
RACK 1 (TAG
T
THER TAG VALUE MASK CONFIGURATION NOTE
O
ETAILED –
D
Example of Encrypting a TLV ............................................................................................................... 409
Command Format ............................................................................................................................... 411
Response Formats ............................................................................................................................... 411
APPENDIX A.13: ENHANCED ENCRYPTED MSR DATA OUTPUT WHEN ENCRYPTION IS TURNED ON WITH
C7-38 COMMAND ............................................................................................................................. 413
APPENDIX A.14: GLOSSARY ............................................................................................................... 415
56) & 2 (T
NCRYPTED RESPONSE FORMAT
TLV E
TAG N
AG
OTE
.................................................................................................................... 406
9F6B) M
ASK CONFIGURATION NOTE
.............................................................................................. 408
............................................................................................... 409
....................................................................... 408
APPENDIX A.15: REVISION HISTORY .................................................................................................. 417
ix
NEO Interface Developers Guide
x
NEO Interface Developers Guide
List of Tables
Table 1: Hardware Cross Reference .................................................................................... 3
Table 2: Commands Sorted by Command Name ................................................................ 4
Table 3: Commands Sorted by Command Number ............................................................. 7
Table 4: Pass-Through Command Table ............................................................................ 11
Table 5: EMV Key Management – Protocol 2 .................................................................... 12
Table 6: EMV Key Management - Protocol 1 ..................................................................... 12
Table 7: Protocol 1 Status Codes ....................................................................................... 13
Table 8: Protocol 2 Status Codes ....................................................................................... 13
Table 9: Error Codes .......................................................................................................... 15
Table 10: RF State Codes ................................................................................................... 19
Table 11: Serial Port Settings ............................................................................................. 20
Table 12: Poll for Token Data Field for Response Frame (Status Code is OK) ................... 32
Table 13: Burst Mode Frames............................................................................................ 34
Table 14: Payload Frame with Cryptogram Data Format and Content When Status OK . 35
Table 15: Asynchronous UI Message Event ....................................................................... 40
Table 16: Asynchronous UI Message Event Status ............................................................ 40
Table 17: Asynchronous UI message Event Application Type ........................................... 41
Table 18: System AIDs ....................................................................................................... 48
Table 19: Global Configuration TLVs ................................................................................. 52
Table 20: Group Configuration TLVs .................................................................................. 56
Table 21: PayPass Default Group Configuration TLVs ....................................................... 64
Table 22: PayPass Group Configuration TLVs with Hard-Coded Default Values in Kernel 71
Table 23: Phone Message Table – Hard-Coded Default Value in Kernel .......................... 74
Table 24: American Express Default Group 2 Configuration TLVs .................................... 75
Table 25: AID Configuration TLVs ...................................................................................... 79
Table 26: System AID Default Configuration TLVs ............................................................. 81
Table 27: Get Full Track Data Error Codes ......................................................................... 92
Table 28: EMV Key Management Commands Error Codes – Protocol 1 ........................... 96
Table 29: Set CA Public Key Data Field .............................................................................. 99
Table 30: Error Codes for RTC Management Commands ................................................ 104
Table 31: Control User Interface Data ............................................................................. 111
Table 32: Activate Transaction Command Frame Data Format ...................................... 179
Table 33: Activate Command TLVs .................................................................................. 179
Table 34: Activate Transaction Response Frame Data Format ....................................... 181
Table 35: Activate Response TLVs ................................................................................... 182
Table 36: Activate Transaction Clearing Record TLVs ..................................................... 186
Table 37: Activate Transaction Cause of Failure When Not Request Online Authorization
................................................................................................................................. 188
Table 38: Activate Transaction Cause of Failure When Request Online Authorization .. 188
Table 39: Activate Transaction Response Frame Format, Failed Transaction ................ 189
xi
NEO Interface Developers Guide
Activate Transaction Response Frame Encrypted Data Format ...................................... 194
Table 40: Get Transaction Result Format and Content ................................................... 203
Table 41: Update Balance Format and Contents............................................................. 207
Table 42: Update Balance Format and Contents When Status OK ................................. 208
Table 43: Update Balance Format and Contents When Status Not OK .......................... 208
Table 44: Cash Transaction TLVs ..................................................................................... 212
Table 45: DRL TLVs ........................................................................................................... 216
Table 46: EMV Key Manager Status Codes – Protocol 2 ................................................. 219
Table 47: Language Version Information ........................................................................ 232
Table 48: Exception List Record Format .......................................................................... 241
Table 49: Get PCD and PICC Parameters Data Field ........................................................ 243
Table 50: Poll for Token Data Field for Command Frame ............................................... 244
Table 51: Poll for Token Timeout .................................................................................... 244
Table 52: Poll for Token Data Field for Response Frame (Status Code is OK) ................. 245
Table 53: Enhanced Poll for Token Data Field for Command Frame .............................. 246
Table 54: Enhanced Poll for Token Timeout .................................................................... 247
Table 55: Enhanced Poll for Token Data Field for Response Frame ............................... 247
Table 56: LED Control Data Field ..................................................................................... 251
Table 57: Buzzer Control Data Field ................................................................................ 252
Table 58: PCD Single Command Exchange Data Field Protocol 2.................................... 253
Table 59: PCD Commands Protocol 2 .............................................................................. 254
Table 60: PCD Channel Redundancy Register Protocol 2 ................................................ 255
Table 61: PCD Single Command Exchange Data Field for Response ............................... 256
Table 62: Halt a Command Exchange Between Terminal/PC and Reader ...................... 257
Table 63: Enhanced Pass-Through Data Field ................................................................. 259
Table 64: Mifare Authentication Block Data Field........................................................... 267
Table 65: Mifare Read Block Data Field ........................................................................... 269
Table 66: Mifare Write Block Data Field .......................................................................... 271
Table 67: ePurse Value Block Format .............................................................................. 272
Table 68: Mifare ePurse Command Data Field ................................................................ 273
Table 69: Mifare ePurse Data Field for Debit/Credit Function Block .............................. 273
Table 70: Mifare ePurse Data Field for Backup Function Block ...................................... 274
Table 71: NFC Command Set List ..................................................................................... 277
Table 72: NFC Command Set Response Data List ............................................................ 279
Set White List Data Field .................................................................................................. 282
Table 73: Summary of LCD Messages .............................................................................. 351
xii
NEO Interface Developers Guide
1.0 Introduction
This document is intended to provide application developers and integrators with the detailed information necessary to integrate ViVOpay readers with point of sale terminals (POS). It specifies the interfaces that terminals can use to communicate with a ViVOpay reader to carry out contactless EMV transactions.
Historical Background
Before the introduction of contactless EMV, the ViVOpay reader usually worked in standalone mode, which did not require a terminal to initiate a transaction. In this mode, the reader reads cards and sends transaction data independently. This mode is commonly referred to as “Auto Poll Mode”.
ViVOpay readers can also function in an intelligent mode to provide EMV functionality and fast processing of contactless EMV cards. This approach minimizes the time a cardholder needs to hold a contactless EMV card in front of a reader. However, support for contactless EMV cards requires that terminals set certain parameters and perform intelligent processing to complete a transaction.
While contactless EMV transactions require control commands from a terminal, it is sometimes desirable for the ViVOpay reader to function in standalone mode. This is especially useful for test environments where a terminal may not be available or where all transactions are going to be with contactless MagStripe cards. The EMV serial interface specified in this document addresses the requirements of contactless EMV support, while maintaining backward compatibility to standalone operation.
MasterCard Contactless (PayPass) Capability
ViVOpay readers support MasterCard Contactless technology (PayPass 3.02). You will see numerous references to “PayPass” throughout this guide. MasterCard has officially deprecated the name “PayPass” (although not the technology). This version of the guide continues to use “PayPass” to refer to MasterCard Contactless technology. Future versions of this guide will likely drop the name “PayPass” altogether.
Protocol 1 Deprecated
Historically, ID TECH readers have used two serial protocols (Protocol 1 and Protocol 2). Protocol 1 is no longer supported. For historical reasons, you may see references to Protocol 1 in this guide. They will eventually be removed.
Organization of this Guide
This document provides the details of how to communicate with ViVOpay readers, including the physical connections, the ViVOpay command protocols, and the actual serial commands. The document is organized into major sections that contain increasing levels of detail:
The Quick Reference section includes tables of commands, error and status codes. It is
intended to be a quick index into the Protocol Command Reference sections (Protocol 1 and Protocol 2), or a quick reference for decoding serial commands and responses.
1
NEO Interface Developers Guide
The Serial Communication Interfaces section discusses the serial interfaces available.
The ViVOpay Communication Protocols section provides information on the various
protocols and modes of communication. It describes the frame formats used by each of the protocols.
The Tag and Data Set Configuration discusses the method for configuring AIDs and
groups (parameter/data sets).
The Card Application Selection section discusses the method for selecting a particular
card application and how selection of a particular AID may be controlled.
The section on Card Application Specific Behavior discusses information specific to
particular card applications and the ViVOpay implementation.
The Protocol Command Reference sections (Protocol 1 and Protocol 2) describe each of
the commands available, their frame formats, and the response formats
The Special Reader Features section discusses additional features that may optionally be
used in conjunction with ViVOpay readers. Some of these are specific to a particular ViVOpay reader hardware platform.
Many useful examples of serial communication flows can be found in the various
Appendices at the back of this guide. Also, the Appendices contain examples of how to parse data payloads received during transactions. In future editions of this guide, we will continue to add examples.
Notational Conventions
Many of the tables used in this document describe data objects as TLV (tag, length, value) elements. The details of how TLVs are encoded and explained in the BER-TLV rules. These rules may be found in EMV 4.2 Book 3, Annex B (available from https://www.emvco.com/specifications.aspx?id=223).
The format of the value fields are described in EMV 4.2, Book 3, “Data Element Format Conventions”.
Hexadecimal numbers are expressed in one of two ways:
With an “h” after the number, e.g. 2Ah
With a “0x” preceding the number, e.g. 0x2A
Reader Interface Capabilities
ViVOpay readers can be generally categorized by their capabilities to interact with the host terminal. ViVOpay readers fall into one of the following categories according to the available transaction interfaces:
Contactless Only
2
NEO Interface Developers Guide
Kiosk III ●
Vendi ● ● ●
Contactless and MSR
Contactless and LCD Display
Contactless, MSR, and LCD Display
Contactless, MSR and Line Display
The following table categorizes ViVOpay readers by available interfaces.
Table 1: Hardware Cross Reference
Reader Contactless
MSR LCD Display Line Display
Generally, the commands and parameters related to the LCD display only work on the ViVOpay readers with a display. However, there is an option to use an external display. Refer to the Set/Get Source for RTC/LCD/Buzzer/LED command.
3
NEO Interface Developers Guide
Activate Transaction Command
√ √ √ √ √ 2 02
01
√ √ √ √ √ 2 02
40
√ √ √ √ √ 2 84
09
√ √ √ √ √ 2 84
04
√ √ √ √ √ 2 28
01
√ √ √ √ √ 2 14
01
Buzzer Control Long
√ √ √ √ √ 2 0B
02
√ √ √ √ √ 2 0B
01
n/a √ 2
F0
FE
a
√ √ √ √ √ 2 05
01
√ √ √ √ √ 2 81
04
√ √ √ √ √ 2 81
02
√ √ √ √ √ 2 84
0F
Clear White List
√ √ √ √ √ 2 2C
52
√ √ √ 2 F0
F4
a
√ √ √ 2 60
12
√ √ √ 2 60
11
Host)
√ √ √ 2 60
02
b
√ √ √ 2 60
09
b
√ √ √ 2 60
0D
b
√ √ √ 2 60
05
b
Contact Retrieve AID List
√ √ √ 2 60
07
b
√ √ √ 2 60
01
b
√ √ √ 2 60
0A
b
√ √ √ 2 60
0B
b
√ √ √ 2 60
0C
b
2.0 Quick Reference
This section contains tables for looking up commands, status codes and error codes.
Command Tables
The tables in this section organize the commands by their names and by their command number.
Commands Sorted by Command Name
Table 2: Commands Sorted by Command Name
Command C’less
or C’less + MSR
Activate Transaction Command
Add Entry to EMV Exception List
Add Entry to EMV Revocation List Antenna Control Boot up Notification
Buzzer Control Short Buzzer On/Off Command Cancel Transaction Command Check DUKPT Key Check DUKPT Keys Clean Torn Transaction Log
Configure Buttons Command Contact Apply Host Response Contact Authenticate Transaction Contact Get MSR Data Control (Reader send to Host)
Contact Get PIN Control (Reader send to Host)
2 61 03
2 61 02
LCD Line US EMV Protocol CMD SUB
CMD
Notes
Contact Get Reader Status
Contact LCD Display Control (Reader send to
Contact Remove Application Data Contact Remove CA Public Key Contact Remove Certification Revocation List Contact Remove Terminal Data
Contact Retrieve Application Data Contact Retrieve CA Public Key Contact Retrieve CA Public Key List Contact Retrieve Certification Revocation List
4
2 60 14
2 61 01
NEO Interface Developers Guide
√ √ √ 2 60
04
b
√ √ √ 2 60
13
b
√ √ √ 2 60
03
b
√ √ √ 2 60
0A
b
Contact Set Certification Revocation List
√ √ √ 2 60
0E
b
√ √ √ 2 60
06
b
√ √ √ 2 60
10
b
√ √ √ 2 60
15
b
√ √ √ 2 60
0F
b
√ √ √ 2 60
16
b
√ √ √ 2 01
02
√ √ √ √ √ 2 04
04
c
√ √ √ √ √ 2 04
05
c
Delete Entry from EMV Exception List
√ √ √ √ √ 2 84
0A
√ √ √ √ 2 F0
F6
√ √ √ 2 F0
F7
a
√ √ √ √ √ 2 2C
0C
Exchange APDU Data
√ 2C
13
√ √ √ √ √ 2 2C
03
√ √ √ √ √ 1 17
02
√ √ √ √ √ 2 C7
33
√ √ √ √ √ 2 03
05
c
√ √ √ √ √ 2 D0
06
√ √ √ √ √ 2 03
07
c
√ √ √ √ √ 2 09
00
√ 2C
12
Get Button Configuration Command
√ √ √ 2 F0
F5
c
√ √ √ √ √ 2 32
01
√ √ √ √ √ 2 D0
02
√ √ √ √ √ 2 D0
01
√ √ √ √ √ 2 03
0C
√ √ √ √ √ 2 03
04
c
√ √ √ √ √ 2 03
06
c
√ √ √ √ √ 2 03
02
√ √ √ √ √ 2 29
08
Get Contact EMV L2 Kernel Version
√ √ √ √ √ 2 29
06
√ √ √ √ √ 2 29
07
Command C’less
or C’less + MSR
Contact Retrieve Terminal Data Contact Retrieve Transaction Result Contact Set Application Data Contact Set CA Public Key
Contact Set Terminal Data Contact Start Transaction Contact Get ICS Identification Contact Remove Transaction Amount Log Contact Set ICS Identification Control User Interface
Delete All CA Public Keys Protocol 1
Delete All CA Public Keys Protocol 2
Delete All Entries for Single Index in EMV
Revocation List
Delete All Entries from EMV Exception List
Delete All Entries from EMV Revocation List
Delete CA Public Key Protocol 1
Delete CA Public Key Protocol 2 Delete Configurable AID Delete Configurable Group (DCG)
Disable Blue LED Sequence Enable Blue LED Sequence Command
1 24 03 2 D0 05
2 84 05
2 84 0B
2 84 06 1 24 02 2 D0 04
LCD Line US EMV Protocol CMD SUB
CMD
Notes
Enhanced Pass-Through Command
Enhanced Poll for Token
Exchange Contactless Data Flush Track Data
Get Data encryption Key Encryption Type
Get All AIDs Get All CA Public RIDs Protocol 2 Get All Groups (GAG)
Get ALL Reader Variables
Get ATR
Get Cable Type Get CA Public Key Hash Protocol 2 Get CA Public Key Protocol 2 Get Cash Transaction Reader Risk Parameters Get Cashback Transaction Reader Risk Parameters Get Configurable AID Get Configurable Group Get Configuration Get Contact EMV L2 Kernel Checksum
Get Contact EMV L2 Kernel Version Detail
2 2C 0B
2 03 0D
5
NEO Interface Developers Guide
√ √ √ √ √ 2 03
0E
√ √ √ √ √ 2 84
0C
Get EMV Exception Log Status
√ √ √ √ √ 2 84
08
√ √ √ √ √ 2 84
07
√ √ √ √ √ 2 84
03
√ √ √ √ √ 1 29
00
√ √ √ √ √ 1 17
CD
Get Hardware Information
√ √ √ √ √ 2 09
14
2 C7
37
√ √ √ √ 2 C7
30
√ √ √ √ √ 2 81
0A
√ √ √ √ √ 2 03
11
√ √ √ √ √ 2 09
20
√ √ √ √ √ 2 2C
05
√ √ √ 2 12
01
√ √ √ √ √ 2 03
00
Get Transaction Result
√ √ √ √ √ 2 03
40
Get UID of MCU
√ √ √ √ √ 2 29
17
√ √ √ √ √ 2 29
04
e
√ √ √ √ √ 2 2C
51
√ √ √ √ √ 2 2C
09
n/a √ 2
F0
F9
a
n/a √ 2
F0
FC
a
LCD Display Line 2 Message Command
n/a √ 2
F0
FD
a
√ √ √ √ √ 2 0A
02
√ √ √ √ √ 2 D0
07
√ √ √ √ √ 2 2C
06
√ √ √ √ √ 2 2C
0A
Mifare Read Blocks
√ √ √ √ √ 2 2C
07
√ √ √ √ √ 2 2C
08
√ √ √ √ √ 2 2C
40
√ √ √ √ √ 2 2C
01
√ √ √ √ √ 2 2C
04
√ √ √ √ √ 2 C7
9A
√ √ √ √ √ 2 C7
9B
RTC Get Date
√ √ √ √ √ 2 C7
32
Command C’less
or C’less + MSR
Get Contact EMV L2 Terminal Configuration Checksum Get DRL Reader Risk Parameters
Get EMV Exception List
Get EMV Revocation List Get EMV Revocation Log Status Get Firmware Full Version Get Full Track Data
Get Data Encryption Enable Flag
Get Data Encryption Key Variant Type
Get DUKPT Key Serial Number (KSN)
Get Merchant Record Get Module Version Information
Get Main Firmware Version
Get MSR Secure Parameters
Get PCD and PICC Parameters
Get Processor Type
Get Product Type
Get Remote Key Injection Timeout
Get Serial Number Get Transaction Result
Get USB Boot Loader Version Get White List High Level Halt Command LCD Display Clear Command LCD Display Line 1 Message Command
LED Control List CA Public Key IDs or RID Protocol 2 Mifare Authenticate Block Mifare ePurse Command
Mifare Write Blocks
NFC Commands
Pass-through Mode Start/Stop PCD Single Command Exchange
Peer To Peer Send A Message Peer To Peer Receive A Message
Reset Torn Transaction Log
RTC Get Time
RTC Set Date
RTC Set Time
Set Data encryption Key Encryption Type
2 29 09
2 09 03 a √ 2 C7 39 a
2 09 02
2 09 01 a
2 C7 2E
2 84 0E 1 25 04 d √ 1 25 02 d √ 1 25 03 d √ 1 25 01 d
LCD Line US EMV Protocol CMD SUB
CMD
Notes
6
NEO Interface Developers Guide
√ √ √ √ √ 2 30
01
√ √ √ √ √ 2 32
02
√ √ √ √ √ 2 04
02
c
√ √ √ √ √ 2 04
03
c
Set Configuration
√ √ √ √ √ 2 04
00
√ √ √ √ √ 2 04
0E
2 C7
36
Set Data Encryption Key Variant Type
√ √ √ √ √ 2 C7
2F
√ √ √ √ √ 2 04
11
C7 38
2 04
09
√ √ √ √ √ 2 01
01
√ √ √ √ √ 2 C7
2D
√ √ √ √ √ 1 17
03
Set Serial Number
√ √ √ 2 12
02
√ √ √ √ √ 2 01
05
√ √ √ √ √ 2 30
02
√ √ √ √ √ 2 2C
50
√ √ √ √ √ 2 05
02
n/a √ 2
F0
FA
a
n/a √ 2
F0
FB
a
√ √ √ √ 2 03
03
CMD
MSR
01
01
√ √ √ √ √ 2
01
02
√ √ √ 2
Command C’less
or C’less + MSR
Set Baud Rate
Set CA Public Key Protocol 1
Set CA Public key Protocol 2
Set Cash Transaction Reader Risk Parameters
Set Cashback Transaction Reader Risk
Parameters Set Cable Type Set Configurable AID Set Configurable Group
Set Configuration Defaults and Keep Encryption Key
Set DRL Reader Risk Parameters
Set Data Encryption Enable Flag
1 24 01 2 D0 03 2 04 0C
2 04 0D
2 04 0A
Set Merchant Record Set MSR Secure Parameters
Set Parameter Defaults Set Poll Mode
Set Remote Key Injection Timeout
Set RF Error Reporting
Set/Get Source for RTC/LCD/Buzzer/LED Set Temporary Baud Rate Set White List Stop Transaction Turn Off Yellow LED Command Turn On Yellow LED Command Update Balance Command
a ViVOpay Vendi reader only b Contact EMV products only c Not in Global Reader Lite (GRL) d Real Time Clock only e Only applies to devices with USB
LCD Line US EMV Protocol CMD SUB
CMD
2
Notes
a
Commands Sorted by Command Number
All commands in the following table use Protocol 2 formats (see Protocol 2 Formats) except for
Get Full Track Data, Set RF Error Reporting, and Get ViVOpay Firmware Version.
Table 3: Commands Sorted by Command Number
CMDSUB
7
Command C’less or C’less +
Set Poll Mode Control User Interface
LCDLineUSEMVProtocolNotes
NEO Interface Developers Guide
√ √ √ √ √ 2 02
01
√ √ √ √ √ 2
02
40
√ √ √ √ √ 2
03
00
√ √ √ √ √ 2
03
40
Get Transaction Result
√ √ √ √ √ 2
03
02
√ √ √ √ √ 2
03
03
√ √ √ √ 2
03
04
√ √ √ √ √ 2 c
03
05
√ √ √ √ √ 2 c
03
06
√ √ √ √ √ 2 c
03
07
Get All Groups
√ √ √ √ √ 2 c
√ √ √ √ √ 2
Parameters
√ √ √ √ √ 2 03
0E
√ √ √ √ √ 2
03
11
√ √ √ √ √ 2
03
40
√ √ √ √ √ 2
04
00
√ √ √ √ √ 2
04
02
√ √ √ √ √ 2 c
04
03
√ √ √ √ √ 2 c
04
04
Delete Configurable AID
√ √ √ √ √ 2 c
04
05
√ √ √ √ √ 2 c
04
09
2
Encryption Key
√ √ √ √ √ 2
√ √ √ √ √ 2
Parameters
√ √ √ √ √ 2 04
0E
√ √ √ √ √ 2
√ √ √ √ √ 2
05
01
√ √ √ √ √ 2
05
02
√ √ √ √ √ 2
09
00
√ √ √ √ √ 2
09
01
√ √ √ √ √ 2
09
02
Get Processor Type
√ √ √ √ √ 2
09
03
√ √ √ √ √ 2
09
14
√ √ √ √ √ 2
09
20
√ √ √ √ √ 2
0A
02
√ √ √ √ √ 2
0B
01
Buzzer Control Short
√ √ √ √ √ 2
0B
02
√ √ √ √ √ 2
12
01
√ √ √ √ √ 2
12
02
√ √ √ √ √ 2
14
01
√ √ √ √ √ 2
17
02
√ √ √ √ √ 1
17
03
Set RF Error Reporting
√ √ √ √ √ 1
17
CD
√ √ √ √ √ 1
18
01
√ √ √ √ √ 2
√ √ √ √ 1
√ √ √ √ 1
CM
SUB
D
01 05
Command C’less or C’less +
CMD
Set/Get Source for RTC/LCD/Buzzer/LED
MSR
LCDLineUSEMVProtocolNotes
Activate Transaction Command Activate Transaction Command Get Transaction Result
Get Configuration Update Balance Command Get Configurable AID Get All AIDs Get Configurable Group
03 0C
03 0D
Get Cash Transaction Reader Risk Parameters Get Cashback Transaction Reader Risk
Get DRL Reader Risk Parameters Get Merchant Record Get Transaction Result Set Configuration Set Configurable AID Set Configurable Group
Delete Configurable Group Set Parameter Defaults
04 0A
04 0C
04 0D
Set Configuration Defaults and Keep
Set Cash Transaction Reader Risk Parameters Set Cashback Transaction Reader Risk
Set DRL Reader Risk Parameters
04 11
Set Merchant Record
Cancel Transaction Command Stop Transaction
Get ALL Reader Variables Get Product Type
Get Main Firmware Version Get Hardware Information Get Module Version Information LED Control
Buzzer Control Long Get Serial Number Set Serial Number Boot up Notification Flush Track Data
Get Full Track Data Ping
24 01 24 02
Set CA Public Key
Delete CA Public Key
8
NEO Interface Developers Guide
Delete All CA Public Keys
√ √ √ √ 1
RTC Set Time
√ √ √ √ 1 d
√ √ √ √ 1 d
√ √ √ √ 1 d
√ √ √ √ 1 d
28
01
√ √ √ √ √ 2
29
00
Get Version Protocol 2
√ √ √ √ √ 2
29
00
√ √ √ √ √ 1
29
04
√ √ √ √ √ 2 e
29
06
√ √ 2
√ √ 2 29
08
Get Contact EMV L2 Kernel Checksum
√ √ 2
√ √ 2 29
17
√ √ 2
32
01
Get Cable Type
√ √ √ √ √ 2
32
02
√ √ √ √ √ 2
2C
01
√ √ √ √ √ 2
2C
02
√ √ √ √ √ 2
2C
03
√ √ √ √ √ 2
2C
04
√ √ √ √ √ 2
2C
05
√ √ √ √ √ 2
2C
06
Mifare Authenticate Block
√ √ √ √ √ 2
2C
07
√ √ √ √ √ 2
2C
08
√ √ √ √ √ 2
2C
09
√ √ √ √ √ 2
2C
0A
√ √ √ √ √ 2
2C
0B
Enhanced Pass-Through Command
√ √ √ √ √ 2
2C
0C
√ √ √ √ √ 2
2C
12
√ 2
2C
13
√ 2
2C
40
√ 2
2C
50
2
2C
51
Get White List
2
2C
52
2
30
01
√ √ √ √ √ 2
30
02
√ √ √ √ √ 2
60
01
√ √ √ 2
60
02
√ √ √ 2
60
03
√ √ √ 2
60
04
Contact Retrieve Terminal Data
√ √ √ 2
60
05
√ √ √ 2
60
06
√ √ √ 2
60
07
√ √ √ 2
60
08
√ √ √ 2
60
09
Contact Remove CA Public Key
√ √ √ 2
60
0A
√ √ √ 2
60
0B
√ √ √ 2
√ √ √ 2
CM
SUB
D
24 03 25 01 25 02 25 03 25 04
Command C’less or C’less +
CMD
RTC Get Time
RTC Set Date
RTC Get Date
MSR
LCDLineUSEMVProtocolNotes
Antenna Control
Get Firmware Full Version Get USB Boot Loader Version Get Contact EMV L2 Kernel Version
29 07
Get Contact EMV L2 Kernel Version Detail
29 09
Get Contact EMV L2 Terminal Configuration Checksum Get UID of MCU
Set Cable Type Pass-Through Mode Start/Stop Poll for Token Exchange Contactless Data PCD Single Command Exchange Get PCD and PICC Parameters
Mifare Read Blocks Mifare Write Blocks High Level Halt Command Mifare ePurse Command
Enhanced Poll for Token Get ATR Exchange APDU Data
NFC Commands
Set White List
Clear White List Set Baud Rate Set Temporary Baud Rate Contact Retrieve Application Data Contact Remove Application Data Contact Set Application Data
60 0C
9
Contact Remove Terminal Data Contact Set Terminal Data Contact Retrieve AID List Contact Retrieve CA Public Key
Contact Set CA Public Key Contact Retrieve CA Public Key List Contact Retrieve Certification Revocation List
NEO Interface Developers Guide
√ √ √ 2 60
0E
√ √ √ 2
Log
√ √ √ 2 60
10
√ √ √ 2
60
11
√ √ √ 2
60
12
√ √ √ 2
60
13
√ √ √ 2
60
14
√ √ √ 2
60
15
√ √ √ 2
60
16
Contact Set ICS Identification
√ √ √ 2
√ √ √ 2
√ √ √ 2 √ √ √ 2 81
02
√ √ √ √ √ 2
81
04
√ √ √ √ √ 2
81
0A
√ √ √ √ √ 2
84
03
√ √ √ √ √ 2
84
04
Add Entry to EMV Revocation List
√ √ √ √ √ 2
√ √ √ √ √ 2
Revocation List
√ √ √ √ √ 2 84
07
√ √ √ √ √ 2
84
08
√ √ √ √ √ 2
84
09
√ √ √ √ √ 2
84
0A
√ √ √ √ √ 2
Delete All Entries from EMV Exception
√ √ √ √ √ 2
84
0C
√ √ √ √ √ 2
List
√ √ √ √ √ 2 84
0E
√ √ √ √ √
2
84
0F
√ √ √ √ √
2
C7
2D
√ √ √ √ √ 2
C7
2E
√ √ √ √ √ 2
C7
2F
√ √ √ √ √ 2
C7
30
Get Data Encryption Key Variant Type
√ √ √ √ √ 2
√ √ √ √ √ 2
Type
√ √ √ √ √ 2
C7
36
Set Data Encryption Enable Flag
√ √ √ √ √ 2
C7
37
√ √ √ √ √ 2
C7
38
√ 2
C7
39
√ 2
C7
9A
2
C7
9B
2
D0
01
2
CM
SUB
D
CMD
60 0D
60 0F
Command C’less or C’less +
MSR
Contact Remove Certification Revocation List Contact Set Certification Revocation List Contact Remove Transaction Amount
Contact Start Transaction Contact Authenticate Transaction Contact Apply Host Response Contact Retrieve Transaction Result Get Contact Reader Status Contact Get ICS Identification
LCDLineUSEMVProtocolNotes
61 01
61 02
61 03
84 05
84 06
84 0B
84 0D
Contact LCD Display Control (Reader send to Host)
Contact Get PIN Control (Reader send to Host)
Contact Get MSR Data Control (Reader send to Host) Check DUKPT Keys Check DUKPT Key Get DUKPT Key Serial Number (KSN) Get EMV Revocation Log Status
Delete All Entries for Single Index in EMV Revocation List Delete All Entries from EMV
Get EMV Revocation List
Get EMV Exception Log Status Add Entry to EMV Exception List Delete Entry from EMV Exception List
List Get EMV Exception List Delete an Entry from EMV Revocation
Reset Torn Transaction Log Clean Torn Transaction Log Set Remote Key Injection Timeout Get Remote Key Injection Timeout Set Data Encryption Key Variant Type
C7 32
C7 33
10
Set Data encryption Key Encryption Type Get Data encryption Key Encryption
Get Data Encryption Enable Flag Set MSR Secure Parameters Get MSR Secure Parameters Peer To Peer Send A Message Peer To Peer Receive A Message
Get CA Public Key Protocol 2
NEO Interface Developers Guide
D0
02
Get CA Public Key Hash Protocol 2
√ √ √ √ √ 2
D0
03
√ √ √ √ √ 2
D0
04
√ √ √ √ √ 2
D0
05
√ √ √ √ √ 2
D0
06
√ √ √ √ √ 2
√ √ √ √ √ 2 √ √ √ √ √ 2
F0
01
√ √ √ √ √ 2
F0
02
√ √ √ √ √ 2
F0
0F
√ √ √ √ √ 2
F0
F4
Configure Buttons Command
√ √ √ 2 a
F0
F5
√ √ √ 2 a
F0
F6
n/a √ 2
a
F0
F7
n/a √ 2
a
F0
F9
n/a √ 2
a
F0
FA
n/a √ 2
a
F0
FB
Turn On Yellow LED Command
n/a √ 2
a
F0
FC
n/a √ 2
a
F0
FD
n/a √ 2
a
F0
FE
n/a √ 2
a
√ √ √ √ √ 2 28
01
√ √ √ √ √ 2 0B
02
Buzzer Control Short
√ √ √ √ √ 2 0B
01
√ √ √ √ √ 2 2C
0B √ √ √ √ √ 2 2C
0C
Exchange Contactless Data
√ √ √ √ √ 2 2C
03
√ √ √ √ √ 2 2C
05 √ √ √ √ √ 2 2C
09
√ √ √ √ √ 2 0A
02
Mifare Authenticate Block
√ √ √ √ √ 2 2C
06
√ √ √ √ √ 2 2C
0A
√ √ √ √ √ 2 2C
07
√ √ √ √ √ 2 2C
08
CM
SUB
D
D0 07
F0 00
Command C’less or C’less +
CMD
Set CA Public Key Protocol 2 Delete CA Public Key Protocol 2 Delete All CA Public Keys Protocol 2 Get All CA Public RIDs Protocol 2 List CA Public Key IDs or RID Protocol 2
Set PMC Status Get PMC Status Get Battery Level Shut Off the Power
Get Button Configuration Command Disable Blue LED Sequence Enable Blue LED Sequence Command LCD Display Clear Command Turn Off Yellow LED Command
LCD Display Line 1 Message Command LCD Display Line 2 Message Command Buzzer On/Off Command
MSR
LCDLineUSEMVProtocolNotes
a ViVOpay Vendi reader only c Not in Global Reader Lite (GRL) d Real Time Clock only e Only applies to devices with USB
Pass-Through Command Table
All commands in the following table use Protocol 2 formats (see Protocol 2 Formats).
Table 4: Pass-Through Command Table
Command C’less or
C’less + MSR
Antenna Control Buzzer Control Long
Enhanced Pass-Through Command Enhanced Poll for Token
Get PCD and PICC Parameters High Level Halt Command LED Control
Mifare ePurse Command Mifare Read Blocks Mifare Write Blocks
LCD Line US EMV Protocol CMD
SUB
CMD
11
NEO Interface Developers Guide
√ √ √ √ √ 2 2C
01
√ √ √ √ √ 2 2C
04 √ √ √ √ √ 2 2C
02
√ √ √ √ √ 2 2C
50
√ √ √ √ √ 2 2C
51
√ √ √ √ √ 2 2C
52
√ √ √ √ 2 D0
01
Get CA Public Key Hash
√ √ √ √ 2 D0
02
Set CA Public Key
√ √ √ √ 2 D0
03
√ √ √ √ 2 D0
04
√ √ √ √ 2 D0
05
√ √ √ √ 2 D0
06
RID
√ √ √ √ 2 D0
07
√ √ √ √ 1 24
03
√ √ √ √ 1 24
02
√ √ √ √ 1 24
01
Pass-Through Mode Start/Stop PCD Single Command Exchange Poll for Token Set White List Get White List Clear White List
EMV Key Manager Command Tables
The preferred method of accessing the Certificate Authority public keys is to use the following commands in the Protocol 2 format: (see Protocol 2)
Table 5: EMV Key Management – Protocol 2
Command C’less or
C’less + MSR
Get CA Public Key
LCD Line US EMV
Protocol
CMD SUB
CMD
Notes
Delete CA Public Key
Delete All CA Public Keys
Get All CA Public RIDs
List CA Public Key IDs for
All commands in the following table use Protocol 1 formats (see Protocol 1). These commands are included for backward compatibility. New development should use Protocol 2 commands listed above.
Table 6: EMV Key Management - Protocol 1
Command C’less or
C’less + MSR
Delete All CA Public Keys
Delete CA Public Key
Set CA Public Key
LCD Line USEMV
Protocol
CMDSUB
CMD
Notes
12
NEO Interface Developers Guide
00h
OK
01h
Incorrect Frame Tag
02h
Incorrect Frame Type
03h
Unknown Frame Type
04h
Unknown Command
05h
Unknown Sub-Command
06h
CRC Error
07h
Failed
08h
Timeout
0Ah
Incorrect Parameter
0Bh
Command Not Supported
0Ch
Sub-Command Not Supported
0Dh
Parameter Not Supported / Status Abort Command
0Eh
Command not Allowed
0Fh
Sub-Command Not Allowed
00h
OK
01h
Incorrect Header Tag
02h
Unknown Command
03h
Unknown Sub-Command
04h
CRC Error in Frame
05h
Incorrect Parameter
06h
Parameter Not Supported
07h
Mal-formatted Data
08h
Timeout
0Ah
Failed / NACK
0Bh
Command not Allowed
0Ch
Sub-Command not Allowed
Status Codes
The tables in this section define status codes for Protocol 1 and Protocol 2. Note that Protocol 1 is deprecated.
Status Codes for Protocol 1
Table 7: Protocol 1 Status Codes
Status Code Status
Status Codes for Protocol 2
Table 8: Protocol 2 Status Codes
Status Code Status
13
NEO Interface Developers Guide
0Dh
Buffer Overflow (Data Length too large for reader buffer)
0Eh
User Interface Event
10h
Need clear firmware(apply in boot loader only)
11h Communication type not supported, VT-1, burst, etc.
Need encrypted firmware (apply in boot loader only)
12h
Secure interface is not functional or is in an intermediate state.
13h
Data field is not mod 8
14h
Pad 0x80 not found where expected
15h
Specified key type is invalid
16h
Could not retrieve key from the SAM (InitSecureComm)
17h
Hash code problem
18h
Could not store the key into the SAM (InstallKey)
19h
Frame is too large
1Ah
Unit powered up in authentication state but POS must resend the
1Bh
The EEPROM may not be initialized because SecCommInterface does not make sense
1CH
Problem encoding APDU
20h
Unsupported Index (ILM)
21h
Unexpected Sequence Counter in multiple frames for single bitmap (ILM) Length error in data returned from the SAM (Key Mgr)
22h
Improper bit map (ILM)
23h
Request Online Authorization
24h
ViVOCard3 raw data read successful
25h
Message index not available (ILM) 26h
Version Information Mismatch (ILM)
27h
Not sending commands in correct index message index (ILM)
28h
Time out or next expected message not received (ILM)
29h
ILM languages not available for viewing (ILM)
2Ah
Other language not supported (ILM)
31h
Request Online PIN
41h – 4Fh
Module-specific errors for Key Manager
50h
Auto-Switch OK
51h
Auto-Switch failed
60h
Data not exist
61h
Data Full
62h
Write Flash Error
63h
Ok and have next command
70h
Antenna Error
Status Code Status
InitSecureComm command
Module-Specific Status Codes1
SAM Transceiver error – problem communicating with the SAM (Key Mgr)
ViVOcomm activate transaction card type (ViVOcomm)
1
Status codes in this range are “module-specific” so that their values can be re-used by different modules. The
meaning of these codes may depend on which command is being issued. An exception is 23h, which is used generally.
14
NEO Interface Developers Guide
80h
Use another card
81h
Insert or swipe card
90h
Data encryption Key does not exist
91h
Data encryption Key KSN exhausted
00h
No Error
None.
Out of Sequence Command
Reader did not receive commands in the correct order. Correct the Terminal application to send serial commands in the correct sequence.
The contactless transaction failed.
If the transaction amount is zero and the terminal is “an offline only terminal”
The transaction has failed.
transaction on the other interface.
Status Code Status
Note for Kiosk III:
If antenna is disconnected when Activate Transaction(02-01) command is not received, reader will keep beeping until the antenna is connected correctly.
If Activate Transaction(02-01) command is received, and during the polling time, antenna is disconnected, reader will waiting to the end of polling time, and return status code 08h(Time Out), then keep beeping until the antenna is connected correctly.
Reader will response 70h as status code once Activate Transaction(02-01) command is received when antenna is disconnected.
Error Codes
Table 9: Error Codes
Error Code
01h
02h
03h
04h
Description Reason for Error and Suggested Error Handling
Go to Contact Interface
Transaction Amount is Zero
Go To Other Interface
If the reader supports a contact interface, advise the user to complete the transaction on the contact interface.
Previously, this error code was used if the reader supported another interface (beside the contact interface). Integrators should use error code 04h Go to Other Interface instead. The previous use has been deprecated.
then reader needs to terminate the transaction.
If the reader supports another interface, advise the user to complete the
15
NEO Interface Developers Guide
The transaction has failed.
interface.
The transaction has failed.
Card returned SW1SW2 not equal to 9000 hex. Value of the SW1SW2 bytes from
21h
Collision Error
There was more than one contactless card in the reader’s range.
Amount Over Maximum Limit
The Transaction Amount is greater than Terminal Contactless Transaction Limit (FFF1).
If the Transaction Amount is greater than the Balance on the card but is less
acquirer to format an online authorization request.
Card
Error
If the card is not supported by the reader according to the value of parameter
This error code is sent to the terminal if the current date of the reader is
qVSDC cards.
Card presented to the reader is of a type that is not supported by the reader.
gnized by the
reader.
Error Code
05h
06h
20h
Description Reason for Error and Suggested Error Handling
Go To Nearby Interface
Go To MagStripe Interface
Card returned Error Status
If there is another nearby contact interface, advise the user to complete the transaction on the nearby contact interface. This situation might be a case where there are multiple pay stations, but only one of them has a contact
If the reader has a MagStripe interface, advise the user to complete the transaction using the MagStripe interface.
the Card is returned in the Data portion of the Response Frame. Details of what the SW1SW2 codes mean for each RF State are Card dependent and are out of the scope of this document. How the terminal handles this error depends on when the error occurs in the transaction flow. The RF State Code (see section on RF State Codes) indicates the transaction state when the error occurred. Suggested error handling for individual RF State Codes is given below:
RF State Code = PPSE: If RF State Code = SELECT: If RF State Code = GPO: If RF State Code = READ RECORD: If RF State Code = GET DATA (Ticket): If RF State Code = GET DATA (Ticketing Profile): If RF State Code = GET DATA (Balance): If RF State Code = PUT DATA (Ticket):
The terminal can retry the transaction or abandon it.
If RF State Code = GEN AC:
For Credit transactions: The terminal can retry the transaction or abandon it.
22h
23h
24h
25h Card Blocked
26h Card Expired
27h
Request Online Authorization
Communication
Unsupported Card
than the Terminal Contactless Transaction Limit (FFF1), the reader sends this error code back to the terminal along with other information needed by the
A communication error occurred while interacting with the card. An example might be the card was removed from the field.
Application Capability (FFF3) this error code is sent to the terminal.
greater than the expiration date of the card. This status code is only valid for
This could be due to presenting a card with an AID that is not reco
16
NEO Interface Developers Guide
Card was removed from the field or there was a Communication Error
Data Element Missing
A mandatory/required data element was missing from the card.
Card Generated
The card declined the transaction by sending an AAC instead of a TC.
This error code would be returned if the card generated an ARQC and the
DECLINED.
Card did not indicate support for the correct authentication method and date SDA/DDA/CDDA
Public Key)
Data Authentication failed due to missing CA Public Key.
Key problem is corrected via Key Management commands.
Data Authentication failed due to a problem in recovering the Issuer Public Key
SDA Failed (SSAD)
Data Authentication failed during SSAD. Retrying the transaction does not correct the error.
DDA/CDDA
Data Authentication failed during attempted recovery of ICC Public Key.
DDA/CDDA
Data Authentication failed during Dynamic Signature Verification. Retrying the Processing
The Processing Restrictions step as defined in EMV Specifications failed. This
Error Code
30h
41h
42h
Description Reason for Error and Suggested Error Handling
preventing the card response from reaching the reader. How the terminal handles this error depends on when in the transaction the error occurred. The RF State Code (see section on RF State Codes) indicates the transaction state when the error occurred. Suggested error handling for each RF State Code is given below:
RF State Code = PPSE:
The terminal can retry the transaction or abandon it.
If RF State Code = SELECT:
Card did not respond
AAC
The terminal can retry the transaction or abandon it.
If RF State Code = GPO:
The terminal can retry the transaction or abandon it.
If RF State Code = READ RECORD:
The terminal can retry the transaction or abandon it.
If RF State Code = GEN AC:
For Credit transactions: The terminal can retry the transaction or abandon it.
If RF State Code = GET DATA (Ticket): If RF State Code = GET DATA (Ticketing Profile): If RF State Code = GET DATA (Balance): If RF State Code = PUT DATA (Ticket):
43h
44h
50h
51h
52h
53h
54h
55h
Card Generated ARQC
SDA/DDA Failed (Not Supported by Card)
Failed (CA
SDA/DDA/CDDA Failed (Issuer Public Key)
Failed (ICC Public Key)
Failed (Dynamic Signature Verification)
Restrictions Failed
terminal/reader was configured as “Offline Only”; therefore the card was
authentication failed. For Visa, when DDA is required, the card must indicate support for DDA in AIP. If this support is not indicated then the transaction fails and this error code is returned.
Retrying the transaction does not correct the error until the missing CA Public
from the card data. Data on the card may be incorrect or the reader has the wrong CA Public Key. The transaction continues to fail until the Issuer Public Key and the CA Public Key are correct.
Retrying the transaction does not correct the error.
transaction does not correct the error: At this point, the amount has been deducted from the Card Balance.
could be due to incorrectly set configuration. Retrying the transaction does not correct the error until the EMV configuration is corrected.
17
NEO Interface Developers Guide
Terminal Risk
(TRM) Failed
The Terminal Risk Management step as defined in EMV Specifications failed.
does not correct the error until the EMV configuration is corrected.
Cardholder
Failed
The Cardholder Verification step as defined in EMV Specifications failed. This
correct the error until the EMV configuration is corrected.
Terminal Action
The Terminal Action Analysis step as defined in EMV Specifications failed. This SD Memory Error
This error is reported only when trying to retrieve Transaction Logs. This error is never reported during a transaction.
This is a generic / general error that is reported when a more specific reason
Torn
An error occurred while attempting to clean the torn transaction log. This
No Merchants
configured
This error usually occurred while MerchantID is empty. TLV Parse
This error usually occurred while fail to TLV parsing card response data.
Merchant Data Error
This error usually occurred while no merchant data returned from card.
System Memory
This error usually occurred while fail to read or write system memory.
Application Skip
This error usually occurred while configuration isn’t consistent on whether or
Application Version Error
This error usually occurred while application version number is incorrect.
Error Code
56h
57h
58h
61h
62h Generic Error
73h
80h
81h
82h
Description Reason for Error and Suggested Error Handling
Management
Verification
Analysis (TAA) Failed
Transaction Log Error
have been
Failure
This could be due to incorrectly set configuration. Retrying the transaction
could be due to incorrectly set configuration. Retrying the transaction does not
could be due to incorrectly set configuration. Retrying the transaction does not correct the error until the EMV configuration is corrected.
for the error is not known.
might occur if the reader could not read the time and date from the real time clock.
83h
84h
85h
Error
Error
not to skip payment application
If an error occurs during a transaction and the terminal determines that the reader must perform exception processing, then the terminal must retry the transaction until the transaction has been completed successfully or the terminal decides to abort it. The retries must be continued even if successive transactions fail with conditions that do not require exception processing. This must be done to allow the reader to complete exception processing (even if there are failures during exception processing).
Under certain conditions, such as when a customer walks away or there is a problem with the card, the terminal may want to abort the retries even if the reader has not been able to complete exception processing. How and when the terminal stops retrying is out of the scope of this document.
RF State Codes
For some Error Codes, the RF State Code indicates the exact Reader-Card command that failed. This helps determine the exact place where the failure occurred.
18
NEO Interface Developers Guide
00h
None
RF State Code not available
01h
PPSE
Error occurred during PPSE command
02h
SELECT
Error occurred during SELECT command
03h
GPO
Error occurred during GET PROCESSING OPTIONS command
04h
READ RECORD
Error occurred during READ RECORD command
05h
GEN AC
Error occurred during GEN AC command
06h
CCC
Error occurred during CCC command
07h
IA
Error occurred during IA command
08h
SDA
Error occurred during SDA processing
09h
DDA
Error occurred during DDA processing
0ah
CDA
Error occurred during CDA processing
0bh
TAA
Error occurred during TAA processing
0ch
UPDATE RECORD
Error occurred during UPDATE RECORD command
Error occurred during GET DATA command to retrieve the Ticket
Error occurred during GET DATA command to retrieve the
Error occurred during GET DATA command to retrieve the 13h
GET DATA (All)
Error occurred during GET DATA command to retrieve all data
Error occurred during PUT DATA command to retrieve the Ticket
Table 10: RF State Codes
State Code
10h GET DATA (Ticket)
11h GET DATA (Ticketing Prof)
12h GET DATA (Balance)
20h PUT DATA (Ticket)
RF State Description
Ticketing Profile
Balance
19
NEO Interface Developers Guide
Baud Rate
19200 bps (default value for all but Vendi) Data Bits
8
Stop Bits
1
Parity
None
Out CTS Flow
Disabled
Out DSR Flow
Disabled
DTR Control
Disabled
RTS Control
Disabled
XON/XOFF
Disabled
Flow Control
None
3.0 Serial Communication Interfaces
This section discusses the physical interfaces through which the terminal communicates with the ViVOpay reader. All of the readers have an RS232/ USB Serial Interface.
Note: Please don't plug in/out serial communication interfaces during the device power on, that might cause unstable behavior, The reader is not certified to work properly.
RS232 Serial Interface
Port Settings
To communicate with the ViVOpay reader, set the terminal’s serial communication parameters to the values listed below.
Table 11: Serial Port Settings
Parameter Value
9600 bps (default value for Vendi)
Basic Communication
The ViVOpay reader and the POS terminal communicate by exchanging Command-Response Frames. The terminal always initiates communication by sending a Command Frame and ViVOpay responds by sending a Response Frame. What frames are exchanged depends on the command and the protocol used. There are two command/response protocols. Protocol 1 uses separate Data Frames and ACK/NACK responses. Protocol 2 is simplified by including data within the Command/Response Frames.
Timeouts
The ViVOpay reader does not timeout while trying to receive a command. There is no maximum inter-character delay. As a result, command frames with length errors may appear to “hang”. A subsequent command that does not contain a length error can be received successfully.
20
NEO Interface Developers Guide
Once the ViVOpay reader has received a command, the time required to respond to the terminal varies from command to command, depending on what processing is required.
During a transaction, the Activate (02-01) command may specify a timeout value. The reader will continue to poll until it starts to process a transaction, or the specified timeout period has elapsed. The transaction may not complete within the timeout period.
USB HID Interface
ViVOpay readers can communicate with the terminal using a RS232 Serial link and/or a USB HID link.
All ViVOpay commands sent over the USB HID interface are encapsulated in the following protocol.
Note: The maximum length for any command or response is 1500 bytes since this is the size of the command FIFO.
HID Report Format
All HID reports sent to or received from the ViVOpay are 64 bytes long. The first byte of the frame is a single byte Report ID number. The remaining 63 bytes carry the report payload. Any reports with less than 63 bytes of command or response data are padded with NULL bytes (00h) to make them 63 bytes long.
ViVOpay commands and responses are sent over the USB bus in 63-byte frames. Byte ordering in the USB frame is the same as if the command were sent over the serial port. In other words, the “ViVOtech2” command tag always starts in the second byte of the first report containing the command, just after the Report ID.
There are four defined report IDs used in this protocol: 1, 2, 3, and 4. Undefined report IDs are silently ignored.
3.1.1.1 Report ID 1
ID 1 frames are used when a complete command or response is 63 bytes or less. As soon as the host or device receives a Report ID 1 frame, it should parse the report data to extract the command or response.
3.1.1.2 Report ID 2
ID 2 frames are used when a complete command or response is more than 63 bytes long and cannot fit in a single report. The Report ID 2 frame contains the first 63 bytes of the command. So the “ViVOtech2” command tag is only present in Report IDs 1 or 2. The Report ID 2 frames always contain 63 bytes of valid data with no padding bytes since the command is more than 63 bytes long.
21
NEO Interface Developers Guide
01
“V”
“i”
“V”
“O”
“t”
“e”
“c”
“h”
“2”
00
18
01
00
00
B3
CD 01
“V”
“i”
“V”
“O”
“t”
“e”
“c”
“h”
“2”
00
18
00
00
00
FA
83
3.1.1.3 Report ID 3
ID 3 frames are continuation frames. For any command or response that is more than 126 bytes long, the middle frames of the response are sent with a report ID of 3. Any frame received with a report ID 3 is ignored unless it is preceded by a report with an ID of 2 or 3. The Report ID 3 frames should always contain 63 bytes of valid data with no padding bytes.
3.1.1.4 Report ID 4
ID 4 frames mark the end of multi-report commands. Any padding needed to make the command a multiple of 63 bytes should be placed in this report. Any frame received with a report ID 4 is ignored unless it is preceded by a report with an ID of 2 or 3. As soon as the host or device receives a valid Report ID 4 frame, it should parse the report data to extract the command or response.
The exception to the rule of only adding pad bytes to reports with ID of 1 or 4 is debug test frames. Surrounding a command with pad bytes to make the command span multiple reports is valid for testing the multi-report handling of the host and device software. This must be avoided in deployed code since it slows command processing times.
Sample Single Report Command and Response
Ping Command Report
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
The pad bytes are marked with blue text in this example.
Ping Response Report
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
The pad bytes are marked with blue text in this example.
The serial port version of this command and response would be: (Data bytes in Hex format)
Command: 56 69 56 4F 74 65 63 68 32 00 18 01 00 00 B3 CD
Response: 56 69 56 4F 74 65 63 68 32 00 18 00 00 00 FA 83
22
NEO Interface Developers Guide
Byte 0-8
Byte 9
Byte 10
Byte 11
Byte n+10
Byte n+11
Byte n+12
CRC
CRC
ViVOtech\0
‘D’ …
01
“V”
“i”
“V”
“O”
“t”
“e”
“c”
“h”
“2”
00
03
02
00
00
5B
91 02
“V”
“i”
“V”
“O”
“t”
“e”
“c”
“h”
“2”
00
03
00
00
C2
FF
E4
01
00
9F
02
06
00
00
00
00
00
01
9F
03
06
00
00
00
00
00
00
DF
63
01
00
DF
64
01
01
DF
65
01
00
DF
66
01
00
FF
F0
03
00
00
00
FF
F2
08
30
30
03
30
30
30
30
30
30
FF
F3
02
03
FF
FF
F7
01
02
FF
F9
01
03
FF
FA
02
03
E8
9A
03
00
01
04
9F
21
03
05
13
54
9C
01
00
5F
2A
02
08
40
9F
09
02
00
02
9F
1A
02
08
40
9F
1B
04
00
00
17
70
9F
33
03
03
00
08
E8
9F
35
01
22
9F
40
05
60
00
00
30
00
9F
66
04
A0
00
00
00
FF
F1
06
00
00
00
01
00
00
FF
F4
03
01
00
01
FF
F5
06
00
00
00
00
80
00
FF
F8
01
00
FF
FB
01
00
FF
FC
01
00
FF
FD
05
F8
50
Data Frames
Frame Tag
Frame
Type
Data 0 Data 1 Data n
MSB if from
ViVOpay.
LSB if from
Terminal.
LSB if from
ViVOpay.
MSB if from
Terminal.
Direction: Both Ways (depending on Command). Variable Length (n = 1 … 244).
Sample Single Report Command with Multiple Report Response
Get Configuration Command Report
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
The pad bytes are marked with blue text in this example.
Get Configuration response reports
1st Response Report
2nd Response Report
3rd Response Report
4th and Final Response Report
23
NEO Interface Developers Guide
04
AC
F8
00
FF
FE
05
F8
50
AC
A0
00
FF
FF
05
00
00
00
00
00
72
56
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
The pad bytes are marked with blue text in this example.
Note: The response to this command changes each time the command is sent since it includes the current time and date.
The serial port version of this command and response would be: (Data bytes in Hex format)
Command: 56 69 56 4F 74 65 63 68 32 00 03 02 00 00 5B 91
Response: 56 69 56 4F 74 65 63 68 32 00 03 00 00 C2 FF E4 01 00 9F 02
06 00 00 00 00 00 01 9F 03 06 00
00 00 00 00 00 DF 63 01 00 DF 64 01 01 DF 65 01 00 DF 66 01 00 FF F0 03 00 00 00 FF F2 08 30 30 30 30 30 30 30 30 FF F3 02 03 FF FF F7 01 02 FF F9 01 03 FF FA 02 03 E8 9A 03 00 01 04 9F 21 03 05 13 54 9C 01 00 5F 2A 02 08 40 9F 09 02 00 02 9F 1A 02 08 40 9F 1B 04 00 00 17 70 9F 33 03 00 08 E8 9F 35 01 22 9F 40 05 60 00 00 30 00 9F 66 04 A0 00 00 00 FF F1 06 00 00 00 01 00 00 FF F4 03 01 00 01 FF F5 06 00 00 00 00 80 00 FF F8 01 00 FF FB 01 00 FF FC 01 00 FF FD 05 F8 50 AC F8 00 FF FE 05 F8 50 AC A0 00 FF FF 05 00 00 00 00 00 72 56
Error Handling at Report Level
1. Any report with ID of 1 is processed as soon as it is received. All other unprocessed reports are discarded.
2. Any report with an ID of 2 causes all other unprocessed reports to be discarded.
3. Any report with an ID of 3 is discarded unless the previous report had an ID of 2 or 3. If the previous report ID 3 was discarded then this report also is discarded.
4. Any report with an ID of 4 is discarded unless the previous report had an ID of 2 or 3. If the previous report had an ID of 3 and was discarded then this report also is discarded. If the report ID 4 frame is retained, then all retained reports are processed.
Processing of reports means passing the concatenated Data Frames contained in the reports to the command handler. The report ID bytes must be discarded when concatenating the report Data Frames.
An alternate way to handle the rules for report IDs 3 and 4 is to set a flag when a report with an ID of 2 is received and reset the flag when a report with an ID of 1 is received or an ID of 4 is finished processing. Reports with IDs of 3 or 4 are only kept when the flag is set.
24
NEO Interface Developers Guide
Error Handling at Command Level
The error handling at the command level remains as it is currently implemented for serial port commands.
Incomplete commands are silently ignored when the reception times out. This does not occur for commands received over the USB HID interface unless a complete report is dropped, resulting in missing data for the command. The normal USB handshaking is expected to prevent this.
A bad CRC value for the encapsulated command returns a bad CRC response to the command.
An unknown command or subcommand code results in an unknown command or unknown subcommand Response Frame.
If the host does not receive any response to a command it should retry the command.
If the host receives a bad CRC response to a command it should retry the command. This is not expected to occur when using USB since it includes a layer of error handling.
25
NEO Interface Developers Guide
Frame
Sub-
See
Commands
See
Commands
See
Commands
See
Commands
Frame
Type
4.0 ViVOpay Communication Protocols
There are two main types of protocols: Protocol 1 and Protocol 2. Protocol 2 is the preferred method of communicating between the terminal/POS and a ViVOpay reader. Protocol 1 is retained for backward compatibility with older terminal/POS applications.
In addition to the two main protocols, there are modes of communication that are extensions of the protocols. These modes provide flexibility in the control of the ViVOpay reader:
Pass-through mode allows the terminal/POS application to interact directly with the
contactless ISO 7816 cards.
Burst Mode is a legacy mode intended for use with MagStripe cards.
Protocol 1 (Deprecated)
Protocol 1 is retained for backwards compatibility with existing terminal applications. Whenever possible, Protocol 2 should be used.
Protocol 1 is not supported by Kiosk III/ Vendi.
Communication between ViVOpay and the terminal uses command-response pairs. The terminal sends one or more Command Frames to the reader and waits for one or more response frames. A simple command requires a single Command Frame with a single Response Frame. More complex commands may involve a number of Command/Response Frames being exchanged. This sub­section defines the different types of frames and their format.
Details of specific commands and the order in which different frames are exchanged are documented in a later sub-section.
There are five types of frames – Command, Data, ACK, NACK and Special Frames. The format of each type of frame is given below.
Command Frames
Byte 0-8 Byte 9 Byte 10 Byte 11 Byte 12 Byte 13 Byte 14 Byte 15
Frame Tag
ViVOtech\0
Type
‘C’
Command
Individual
Command
Individual
Data1 Data2 CRC (LSB) CRC (MSB)
Individual
Individual
Direction: From terminal to ViVOpay
ACK Frames
Byte 0-8 Byte 9 Byte 10 Byte 11 Byte 12 Byte 13 Byte 14 Byte 15
Frame Tag
Command
Status Data1 Data2 CRC (MSB) CRC (LSB)
26
NEO Interface Developers Guide
See
Commands
See
Commands
See
Commands
Frame
Type
See
See
See
Byte 0-8
Byte 9
Byte 10
Byte 11
Byte 12
Byte 13
Byte 14
Byte 15
CRC
CRC See
Commands
See
Commands
See
Commands
See
Commands
Byte 14 …
Byte 14+n-1
Header Tag
Data
Data
ViVOtech2\0
ViVOtech\0
‘A’
Individual
See Status
Code
Individual
Individual
Direction: ViVOpay to terminal
NACK Frames
Byte 0-8 Byte 9 Byte 10 Byte 11 Byte 12 Byte 13 Byte 14 Byte 15
Frame Tag
ViVOtech\0
‘N’
Command
Individual
Commands
Status Data1 Data2 CRC (MSB) CRC (LSB)
See Status
Code
Individual
Commands
Individual
Commands
Direction: ViVOpay to terminal.
A NACK Frame has the same fields as an ACK Frame unless specified differently for a specific command. The only difference between a NACK and ACK Frame is that the NACK Frame always contains an Error Status. When ViVOpay returns a NACK Frame, the terminal must consider the command terminated. The Data1 and Data2 fields are not used with a NACK, unless specified differently by a command.
Special Frames
Frame Tag
Frame Type
ViVOtech\0 ‘S’
Data1 Data2 Data3 Data4
Individual
Individual
Individual
Individual
MSB if from ViVOpay. LSB if from Terminal.
LSB if from ViVOpay. MSB if from Terminal.
Direction: Both ways (depending on command).
Protocol 2
There are two types of frames for Protocol 2: Command Frames and Response Frames. The general format of these frames is given below.
Command Frames
Byte 0-9 Byte 10 Byte 11 Byte 12 Byte 13
& Protocol
Version
Command
Sub-
Command
Length
(MSB)
Length
(LSB)
Data CRC (LSB) CRC (MSB)
Byte 14+n Byte 15+n
27
NEO Interface Developers Guide
Byte 14 … Byte
Header Tag
Data
Data
ViVOtech2\0
Response Frames
Byte 0-9 Byte 10 Byte 11 Byte 12 Byte 13
& Protocol
Version
Command
Status
Code
Length
(MSB)
Length
(LSB)
14+n-1
Data CRC (MSB) CRC (LSB)
Byte 14+n Byte 15+n
Pass-Through Mode (Protocol 2)
Some versions of ViVOpay firmware provide a Pass-Through mode which can be used by a terminal to communicate directly with an RF card. This feature allows a terminal to add support for RF cards that are not directly supported by the ViVOpay firmware. Pass-through is actually a special mode of the ViVOPay Protocol 2.
This section describes the Pass-Through protocol and frames for the ViVOpay Serial Interface Protocol.
Note: Pass-Through commands could only be executed in Pass-Through Mode. Other commands (non-pass-through) will return an error in Pass-Through Mode with the exception of Ping, Get Version, and Get Serial Number commands, which will work in both modes.
Basic Pass-Through Operation
Pass-Through mode allows a terminal to communicate directly with an ISO 14443 Type A or Type B Proximity Integrated Circuit Card (PICC) without the ViVOpay firmware knowing the specifics of the application or data present on the PICC. The Pass-Through mode supports a set of basic commands that allow polling and selection of a PICC and sending/receiving low level information to/from the PICC. This allows a terminal to communicate with (and support) cards with applications and data that are not supported by a System AID. Individual Pass-Through commands are described in the sections that follow.
The Pass-Through Mode subcommands are grouped into three categories
General Pass-Through Set Up Commands
These commands have to be used whether you are using high level communication with the PICC or low level communication. These commands include:
Pass-Through Mode Start/Stop Poll for Token
High Level PICC Communication Commands
If a PICC supports ISO 14443-4 Protocol, then these high level commands can be used to send application level APDUs to the PICC and receive the PICC responses. The Send / Receive commands must always be used in pairs, unless the send command returns an error. The high level commands include: Exchange Contactless Data and commands to interact with Mifare cards.
28
NEO Interface Developers Guide
Byte 14 …
Byte
Byte
Header Tag
Data
Data
See
Commands
See
Commands
See
Commands
See
Commands
See
Commands
Byte 14 …
Byte 14+n-1
Byte 15+n
Header Tag
Data
Data
See
Commands
See
Commands
See
Commands
See
Commands
Low Level PICC Communication Commands
These low level commands can be used to send raw ISO 14443-3 data to the PICC and receive the PICC responses. The Send/Receive commands must always be used in pairs, unless the send command returns an error. In addition to this, these commands can also be used to get and set some PCD and PICC parameters. The low level commands include.
PCD Single Command Exchange Get PCD and PICC Parameters
The terminal must periodically instruct the ViVOpay reader to poll for cards. Whenever the ViVOpay reader detects a card in the RF field, it tries to carry out ISO 14443 Layer 3 and Layer 4 negotiations and report the card type found. In the Pass-Through mode, ViVOpay does not attempt to check whether the card application is one that it supports.
Once a card is detected, the terminal may use one of the Pass-Through commands to communicate with the card at the application level and read the data.
Additional Pass-Through commands allow a terminal to use low-level features provided by the ViVOpay reader, such as controlling the RF antenna (field).
Pass-Through Command Frame
Byte 0-9 Byte 10 Byte 11 Byte 12 Byte 13
& Protocol Version
ViVOtech2\0
Command
Individual
Sub­Command
Individual
Length (MSB)
Individual
Length (LSB)
Individual
Byte 14+n-1
Data
Individual
14+n
CRC (MSB)
CRC (LSB)
Note: The Byte 14+n and Byte 15+n CRCs are the reverse of standard Protocol 1 Format and Protocol 2 Format Command Frames. Within each Pass-Through Frame Type, the CRC is stored as big-endian number i.e. higher byte (MSB) first.
Pass-Through Response Frame
Byte 0-9 Byte 10 Byte 11 Byte 12 Byte 13
& Protocol Version
ViVOtech2\0
Command
Individual
Status Code
Individual
Length (MSB)
Individual
Length (LSB)
Individual
Data CRC (MSB)
See Individual Commands
Byte 14+n
CRC (LSB)
15+n
Suggested Sequence for Pass-Through Commands
Put the ViVOpay reader in Pass-Through Mode by sending a Start Pass-Through Mode command.
29
NEO Interface Developers Guide
Periodically request ViVOpay to poll for cards by sending the Poll for Token command. If no card is found within the time specified, the reader ViVOpay indicates this with a timeout error. If a card is found, it returns the card type and serial number.
At this point ViVOpay already has gone through the anti-collision, selection and activation (if required) sequence as per ISO 14443 A/B, and the card is ready for communication. Depending on the Card Type, use the appropriate Pass-Through commands to communicate with the card. Card Types and the applicable commands are given below.
For ISO 14443-4 Compliant Type A or Type B Cards
Use the Exchange Contactless Data command to communicate with the Card at the
application level.
For ISO I4443 Type A or Type B Cards that are not ISO 14443-4 Compliant (i.e.
ISO 14443-3 Compliant Cards), Mifare Type A, and Mifare Ultralight Type A
Low Level Commands: Use the PCD Single Command Exchange command to communicate with the Card. If required, use the Get PCD and PICC Parameters command for greater control.
High Level Commands (For Mifare Cards Only): Or use the Mifare Authenticate Block, Mifare
Read Blocks, and Mifare Write Blocks commands to communicate with a Mifare Standard (1K)
or Mifare Ultralight Card.
For Card Type None
The Card has either been removed from the Field, or there was an error in trying to connect to the card, or the card is not ISO 14443-3 or 14443-4 compliant. No need to communicate with the card.
When done communicating with the card, the terminal is responsible for handling the termination sequence. The terminal may use the Antenna Disable/Antenna Enable commands to turn the RF field off and then on again.
The terminal can instruct the ViVOpay reader to terminate the Pass-Through Mode and start normal polling for cards by sending a Stop Pass-Through Mode command.
Note: If the terminal communicates with the card in the Pass-Through mode and finds that it does not support the card, then the terminal is responsible for handling the termination sequence with the card. The terminal may keep sending Poll for Token commands to the ViVOpay reader until the card has been removed from the field, replaced by another card (different serial number), or a timeout has occurred before it terminates the Pass-Through mode. The terminal may choose to terminate the Pass-Through mode as soon as it is reading is complete.
Care should be taken to ensure that the ViVOpay reader is operating in the correct mode (Auto-Poll or Poll on Demand) when returning from Pass-Through mode. If the card is not removed from the field fast enough, and the reader is in Auto Poll mode, the terminal may end up doing multiple reads of the same card.
Auto-Switch to Pass-Through Mode
The reader can be set to switch automatically out of polling (either Poll on Demand or Auto-Poll) and enter Pass-Through Mode. This allows the POS application to send Pass-Through Mode commands directly to the card APDU without explicitly setting the reader in Pass-Through Mode.
30
NEO Interface Developers Guide
Byte 14 …
Auto-Switch can be enabled globally and for configurable User AIDs. This feature is not supported for System AIDs.
If the Auto-Switch feature is enabled, the reader switches to Pass-Through Mode under the following conditions:
Card application is not recognized – Global Auto-Switch is enabled
Card AID is not recognized – Global Auto-Switch is enabled
Mifare card is recognized but fails – Global Auto-Switch is enabled
DesFire card is recognized but fails – Global Auto-Switch is enabled
Card AID is recognized – User AID Auto-Switch is enabled
There are two ways to use the auto-switch feature: Global Auto-Switch or User AID Auto-Switch. The DF7C TLV sets the feature globally using the Set Configuration command (Global Auto­Switch) and the Set Configurable AID sets the feature for user AIDs (User AID Auto-Switch). You can use both at the same time if you wish, but they do different things so do not confuse the two. In general, one is used for MiFare, DesFire or unrecognized cards. The second is ONLY used for a specific User AID. The Auto-Switch setting in a User AID overrides the Global Auto-Switch setting.
Once the Auto-Switch feature is activated, the POS application must handle error recovery and exit Pass-Through Mode with the Pass-Through Mode Start/Stop command (2C-01) when done. The reader returns to previous polling mode or idle state. For example, if you were exiting Pass­Through mode and resuming Auto Poll mode, the POS must make sure the PICC has left the field before terminating Pass-Through mode. Otherwise Auto Poll will start and the PICC will be read by the reader again as a brand new transaction!
4.1.1.1 Global Auto-Switch
You can use Global Auto-Switch to process:
an unrecognized MiFare PICC
an unrecognized DesFire PICC
a completely unrecognized PICC (failed MiFare, DesFire, PPSE, Trial & Error)
Auto-Switch is invoked if Global Auto-Switch is enabled AND one of the above cards is tapped on the reader during a transaction.
If successful, the reader returns a Response Frame containing some of the following items:
Error or Status condition UID PICC card type detected
Byte 0-9 Byte 10 Byte 11 Byte 12 Byte 13
Byte 14+n-1
Byte 14+n Byte 15+n
31
NEO Interface Developers Guide
Header Tag
Version
Data
(MSB)
Data
(LSB)
See Status
Code Table
Card
1
Type of Card Found (or No Card Found).
07h ISO 14443 Type A and Mifare (NFC phone)
Serial
0 or
Serial Number (or the UID) of the PICC. Length depends on the Card
& Protocol
ViVOtech2\0 50h or 51h
Command Status Code
Length
Length
Data CRC (MSB)
Table 12: Poll for Token Data Field for Response Frame (Status Code is OK)
Data Field Length
(bytes)
Number
Variable
Description
00h None (Card Not Detected or Could not Activate) 01h ISO 14443 Type A (Supports ISO 14443-4 Protocol) 02h ISO 14443 Type B (Supports ISO 14443-4 Protocol) 03h Mifare Type A (Standard) 04h Mifare Type A (Ultralight) 05h ISO 14443 Type A (Does not support ISO 14443-4 Protocol) 06h ISO 14443 Type B (Does not support ISO 14443-4 Protocol)
Detected. If no card was detected, then a Serial Number is not returned.
CRC
(LSB)
The Response Frame is returned asynchronously if the reader is in Auto Poll.
Once Auto-Switch is invoked the reader remains in Pass-Through Mode with the RF antenna on. The POS application must handle error recovery and exit Pass-Through Mode when done with the Pass-Through Mode Start/Stop command (2C-01). The reader returns to previous polling mode or idle state.
To enable Global Auto-Switch, send the Set Configuration command (04-00) with a 01h value for the DF7C TLV.
4.1.1.2 User AID Auto-Switch
You can use User AID Auto-Switch to process:
a recognized User AID that is selected during PPSE a recognized User AID that is selected during Trial & Error
Auto-Switch is invoked if User AID Auto Switch is enabled for an AID and a PICC is initiating a transaction with this AID selected.
If successful, the reader returns a response frame containing some of the following items:
Error or Status condition AID PICC card type detected
The response frame is returned asynchronously if the reader is in Auto Poll.
32
NEO Interface Developers Guide
Once Auto-Switch is invoked the reader remains in Pass-Through Mode with the RF antenna on. The POS application must handle error recovery and exit Pass-Through Mode when done with the Pass-Through Mode Start/Stop command (2C-01). The reader returns to previous polling mode or idle state.
To enable Global Auto-Switch, send the Set Configurable AID command (04-02) with a 01h value for the DF7C TLV.
RF On/Off States for Pass-through Commands
Sending a Stop Pass-through command will turn off the RF Antenna. Otherwise, the antenna is under the direct control of the POS/Terminal in Pass-through mode.
Burst Mode
In Burst Mode, a Data Frame is sent from the ViVOpay reader to the terminal each time a card is read successfully. The ViVOpay keeps polling for the supported RF Cards. Whenever the ViVOpay reader detects a card in the RF Field, it tries to read the card data. If the read operation is successful, the ViVOpay reader sends a “Card Payload” frame that contains the Status, Application Type, Card Data and CRC to the terminal through its serial port. Detailed information on the frame format is given in the sections ahead. The terminal does not have to send any command or data to the ViVOpay reader.
Note: The reader must be in Auto Poll mode for Burst Mode to be used successfully. Setting Burst Mode on for other configurations can lead to unexpected results.
Burst mode is intended to be used with magnetic stripe card data only.
Burst Mode is enabled using the Set Configuration command and the FFF7 tag. There are two options for Burst Mode: Always On (FFF7 = 01) and Auto Exit (FFF7 = 02). When the reader is in Burst Mode Always On, it ignores Activate Transaction and Get Full Track Data commands and remains in Burst Mode. When Burst Mode Auto Exit is enabled, the reader ends Burst Mode (FFF7 = 00) and processes these command. Burst Mode then remains off until it is reactivated with a new Set Configuration command with tag FFF7 set to 01 or 02.
When the Burst Mode is enabled, the standard ViVOpay Serial Interface is not disabled entirely. Commands not related to transactions, such as Ping, can still be sent to the ViVOpay reader. In the Command-Response Mode, the terminal sends a command to the ViVOpay reader and the ViVOpay reader responds in a pre-defined manner. These commands allow a terminal to use features provided by the ViVOpay reader, such as checking for the presence of the ViVOpay reader by pinging it, retrieving the firmware version number, etc.
Burst mode is not allowed when MSR/MSD or EMV encryption is enabled and Data encryption Key exists.
When MSR/MSD or EMV encryption is enabled and Data encryption Key exists, burst mode is always OFF. In this condition, reader will turn the burst mode to be OFF automatically. If user wants to make burst mode to be ON/AUTO EXIT through “Set Configuration (04-00)” command, reader will keep burst mode to be OFF.
Note: Burst mode is disabled for SRED devices.
33
NEO Interface Developers Guide
01h
Payload Frame
02h
Status Frame
03h
Payload Frame for VISA MSD 202 CVN17 type transaction
55h
NACK
0Eh
Asynchronous Event Frame
Byte 0
Byte 1
Byte 2
Byte n-1
Byte n
Frame Type
=01h
Status
=00h
Application
Type
Track 1 Field
(if found)
Track 2 Field
(if found)
CRC
(MSB)
CRC
(LSB)
ViVOpay Burst Mode Frames
The table below describes the Burst Mode frame types. The frame type appears in Byte 0 of a Burst Mode packet.
Table 13: Burst Mode Frames
Frame type Description
4.1.1.3 Payload Frame (On Successful Read)
On successful read ViVOpay sends a Card Payload frame to the terminal that always contains Frame Type, Status and Application Type. The Status always shows Success (=00). The Application Type can have any of the values defined in the “Data Definitions” section. This is followed by the track data. Only those tracks the reader was able to read from the Card are sent. Each Track begins and ends with its Start and End Sentinel. After the Track Data, the reader sends two CRC bytes. The details of the CRC algorithm used are given in the “CRC Calculation” section.
Example 1: Payload, Card Read Successfully, Application Type Visa, Both Track 1 and Track 2 Present
[01] [00] [02] %B123456789^ABCDEF^12345678?;123456=12345?<CRC1><CRC2>
Example 2: Payload, Card Read Successfully, Application Type MasterCard, Only Track 2 Present
[01] [00] [01] ;123456=12345?<CRC1><CRC2>
Example 3: Payload, Card Read Successfully, Application Type AmEx, Only Track 1 Present
[01] [00] [03] %B1234567^ABCDEF^12345678? <CRC1><CRC2>
Example 4: Payload, Card Read Successfully, Application Type Unknown, Both Track 1 and Track 2 Present
[01] [00] [00] %B123456789^ABCDEF^12345678?;123456=12345? <CRC1><CRC2>
34
NEO Interface Developers Guide
Byte5 … Byte
Data
Data
See table
See
Track 1 Length
1
If Track 1 is available, then this field gives the length of the Track 1 data that follows. If Track 1 is not available, then a Length of 00h is
Format: Binary
Track 1 Data
Variable
Track 1 Data (if available).
Track 2 Length
1
If Track 2 is available, then this field gives the length of the Track 2
ength of 00h is Track 2 Data (MagStripe card)
Variable
Track 2 Data (if available). Format: ASCII (no null terminator)
DE055 (Clearing
1
If a Clearing Record (DE 055) field is available, then this field is 01h.
TLV DE 055 (Clearing
Variable up to
DE 055 data (if available) as a TLV data object encoded with Tag ‘E1’. The DE 055 data is the same data as is included in the Clearing
Tag: E1 Format: b1...126 variable.
TLV App PAN
Variable, up to
Application Primary Account Number (PAN) as a TLV object. This
TLV PAN Seq Number
4
PAN Sequence Number as a TLV object.
TLV Application
6
Application Expiration Date as a TLV object.
Tag: 5F24 Format: n6, BCD encoded on 3 bytes (YYMMDD)
TLV Application
Variable, up
Application Label as a TLV object.
Tag: 50 Format: an variable length up to 16 bytes
4.1.1.4 Payload Frame for CVN17 Enabled Readers
For MSD-only readers that require an online cryptogram (i.e. TTQ = ‘80 80 00 00’) MSD v1.4.2 and v2.0.2 transactions return the burst mode payload frame is described as follows (please refer to Visa Contactless Payment V. 2.0.2 Including Additions and Clarifications 3.0 – August
2007):
Byte 0 Byte 1 Byte 2 Byte 3 Byte 4
Frame
Type
03h
Status
Code
below
Applicatio
n Type
Applicatio
n Type
Length
(MSB)
See Data Tables
Length
(LSB)
5+n-1
Data CRC (MSB)
Byte 5+n Byte6+n
CRC
(LSB)
If Status Code is OK then the format and contents of the data field in the Response Frame are given in the following table. All TLV lengths in the TLV include the Tag and Length bytes.
Table 14: Payload Frame with Cryptogram Data Format and Content When Status OK
Data Item Length (bytes) Description
returned.
(MagStripe card)
Format: ASCII (no null terminator)
data that follows. If Track 2 is not available, then a L returned. Format: Binary
Record) Present
Record)
Expiration Date
Label
128
12
to 18
If there is no Clearing Record (DE 055) field, then this field is 00h.
Record.
field is present only if the DE 055 object is present. Tag: 5A Format: cn variable length up to 19 (10 bytes)
This field is present only if the DE 055 object is present. Tag: Format: n2, BCD encoded on 1 bytes
This field is present only if the DE 055 object is present.
This field is present only if the DE 055 object is present.
35
NEO Interface Developers Guide
TLV CVM Results
6
Cardholder Verification Method (CVM) Results as a TLV object.
TLV Data
5
Data Authentication Code as a TLV object.
TLV ICC Dynamic
11
ICC Dynamic Number as a TLV object.
Tag: 9F4C Format: b8
TLV Track 1
(M/Chip card)
81
Track 1 Equivalent Data as a TLV object.
Tag: 56 Format: b79
TLV Transaction
4
Transaction Status Information as a TLV object.
Tag: 9B Format: b2
Cardholder Name
29
Cardholder Name as a TLV object.
Application Usage
5
Application Usage Control as a TLV object.
Issuer Action
8
Issuer Action Code (Online) as a TLV object.
Tag: 9F0D Format: b5
Issuer Action
8
Issuer Action Code (Denial) as a TLV object.
Tag: 9F0E Format: b5
Issuer Action
8
Issuer Action Code (Default) as a TLV object.
Tag: 9F0F Format: b5
TLV Auth Code
9
Authorization Code as a TLV object Tag: E300 Format: b8
TLV Track 2
21
Track 2 Equivalent Data as a TLV object.
VLP Issuer Auth Code
9
VLP Issuer Authorization Code as a TLV object Tag: 9F74 Format: b6
Application Identifier
Variable up
AID as a TLV object
Available Offline
(Balance)
9
Available Offline Spending Amount as a TLV object TLV Application
6
Application Effective Date as a TLV object.
Data Item Length (bytes) Description
This field is present only if the DE 055 object is present. Tag: 9F34 Format: b3
Authentication Code
Number
Equivalent Data
Status Information
Control
Code(Default)
Code(Denial)
Code(Online)
This field is present only if the DE 055 object is present. Tag: 9F45 Format: b2
This field is present only if the DE 055 object is present.
This field is present only if the DE 055 object is present.
This field is present only if the DE 055 object is present.
This field is present only if the DE 055 object is present. Tag: 5F20 Format: b26
This field is present only if the DE 055 object is present. Tag: 9F07 Format: b2
This field is present only if the DE 055 object is present.
This field is present only if the DE 055 object is present.
This field is present only if the DE 055 object is present.
Equivalent Data
to 19
Spending Amount
Effective Date
This field is present only if the DE 055 object is present or Authorization Code is present. Tag: 57 Format: b19
Tag: 9F06 Format: variable b5...16
Tag: 9F5D Format: variable b6
Tag: 5F25 Format: n6, BCD encoded on 3 bytes (YYMMDD)
36
NEO Interface Developers Guide
Form Factor
Data
F: b 32
Indicates the form factor of the consumer payment device and the
Proprietary Data b 1 to 28 bytes
Customer Exclusive
F: b
Contains data for transmission to the Issuer in
command.
Byte 0
Frame Type =0x55h
Data Item Length (bytes) Description
Indicator
PayPass Third Party
Data (CED)
T: ‘9F6E’ L: 4-bytes
F: b T ‘9F6E’ L: 5-32 bytes
T: ‘9F7C’ L: Var. up to 32-bytes
type of contactless interface over which the transaction was conducted. The Form Factor Indicator is both an implementation and Issuer option.
Inclusion of the Form Factor Indicator in online messages (and clearing records for offline capable readers) is an option for qVSDC and MSD readers.
Priority information from a third party in the following format: Country Code according to ISO 3166-1 n3, 2 bytes Unique ID assigned by MasterCard b, 2 bytes
MSD transactions with a cryptogram. Customer Exclusive Data is both an implementation and Issuer option.
Inclusion of the Customer Exclusive Data in online messages is an option for MSD readers compliant to this specification. Customer Exclusive Data shall be updateable via an Issuer script
4.1.1.5 NACK Frame
If the terminal fails to receive the card payload data, it can send a NACK frame and request the ViVOpay reader to resend the card payload data. To ensure that the reader resends the card payload data, the NACK frame must be received by the reader within 500ms after it sends the original card payload. If the reader receives the NACK frame within this time period, it resends the card payload data to the terminal. If the reader receives the NACK Frame after 500ms of sending the original card payload, or if a new card has been detected, the reader ignores the NACK frame and does not resend the payload data. Each payload data is only resent once.
The NACK frame is a 1-Byte code with value of 0x55.
37
NEO Interface Developers Guide
Example 1: ViVOpay receives NACK frame from terminal within 500ms after sending the original payload data, ViVOpay resends the card payload data.
Terminal ViVOpay Reader
Original Payload
---------------------------------------------------------------------
| Time: 0
| NACK sent at 400ms (within 500ms) |
-------------------------------------------------------------------- | Time: 400ms
|
Resend Payload |
--------------------------------------------------------------------- |
Original Payload:
Payload, Card Read Successfully, Application Type Master Card, Both Track 1 and Track 2 Present
[01][00][01]%B5325350000623567^840SMITH/JOHN^05085011492563892473?;532 5350000623567=05081019492993892483? <CRC1><CRC2>
Resent payload:
Payload, Card Read Successfully, Application Type Master Card, Both Track 1 and Track 2 Present
[01][00][01]%B5325350000623567^840SMITH/JOHN^05085011492563892473?;532 5350000623567=05081019492993892483? <CRC1><CRC2>
38
NEO Interface Developers Guide
Byte 5
UI
defined on
Additional
Example 2: Reader receives NACK frame from terminal after 500ms of sending the original payload data, the reader does not resend the card payload data.
Terminal ViVOpay Reader
Original Payload
---------------------------------------------------------------------
| Time: 0
| | |
|
NACK sent at 700ms (after 500ms) |
-------------------------------------------------------------------- | Time: 700ms
|
|
No Resend Payload |
Original card payload data (no resent payload data):
Payload, Card Read Successfully, Application Type American Express, Both Track 1 and Track 2 Present
[01][00][03]%B379013539021002^TEST/CARD001^0604718000877840?;379013539021002=0604718 00087784000102? <CRC1><CRC2>
4.1.1.6 Asynchronous UI Message Event
Asynchronous message event is used by the reader to indicate specific events to the terminal. These frames are only sent when LCD and LED are sent to external source.
In synchronizing with the transaction, the reader can send asynchronous user interface (UI) message event to the terminal to specify the required user experience on the terminal.
Following is the format definition of Asynchronous UI Message Event:
Byte 0 Byte 1 Byte 2 Byte 3 Byte 4
Frame
Type
45h, E
Status
=00h
Event
Type
55h,
Scheme,
tag ‘FF F8’
Length Byte
& 6
2 Byte
UI
Event
Bn-3 Bn-2 Bn-1
2 Byte UI
Events
Null
Character
Null
Character
CRC
(MSB)
Bn
CRC (LSB)
39
NEO Interface Developers Guide
LED
01h
Higher nibble: LED #
Buzzer
02h
Higher nibble:
LCD
03h
LCD message index
STATUS_OK
00h
Card Read completed successfully.
Byte 3 is the UI Scheme # that allows the user to have different user interfaces (LCD display message table, and buzzer/LED profiles).
Byte 4 is the length of the remainder of the frame, less CRC.
Bytes 5 & 6 are the UI Event consisting of component (LCD, LED, or Buzzer) and acts as defined below.
Table 15: Asynchronous UI Message Event
Component UI Type UI Status Definition
00: LED0 01: LED1 02: LED2 03: LED3 FF: all Lower nibble: 00: Off 01: On 11: No change
1: short beeps 2: long beeps
Lower nibble, short beep: 0: No change 1: Single beep 2: Double beep 3: Triple beep
Lower nibble, long beep: 0: 200ms 1: 400ms 2: 600ms
List of messages and the message flow for one user experience are given in Appendix A.1.
4.1.1.7 Data Definitions
4.1.1.7.1 Status
The Status is a 1-Byte code that indicates the Success or contains an Error Code. This can have any value from 0 – 255. A list of valid Status codes is given below.
Table 16: Asynchronous UI Message Event Status
Status Value Description
40
NEO Interface Developers Guide
STATUS_EC_CARD_REMOVED
01h
A timeout occurred, card no longer present
STATUS_EC_COMM_ERROR
02h
Some communication error occurred
STATUS_EC_PROTOCOL_ERROR
03h
Protocol not respected
STATUS_EC_MULTIPLE_CARDS
04h
Collisions were detected
STATUS_EC_CARD_NOT_ACCEPTED
05h
Errors found in card information
STATUS_EC_BAD_DATA
06h
Errors found in card information format
STATUS_EC_UNKNOWN_ERROR
FFh
Internal error
Unknown
00h
MasterCard
01h
Visa
02h
American Express
03h
Discover
04h
SpeedPass
05h
Gift Card
06h
Diners Club
07h
EnRoute
08h
JCB
09h
ViVOcard Diagnostic
0Ah
HID card
0Bh
MSR – Physical MSR, Application type unknown
0Ch
Reserved for future use
0Dh
DesFire (ViVOCard3) Track Data
0Eh
DesFire (ViVOCard3) Raw Data
0Fh
RBS
11h
ViVOcomm
14h
The Status never has a value that matches the Track 1 and Track 2 Start/End Sentinels.
4.1.1.7.2 Application Type
The Application Type is a 1 byte code that indicates the Application Type detected. This can have any value from 0 – 255. A list of currently defined Application Types is given below.
Table 17: Asynchronous UI message Event Application Type
Application Type Value
The Application Type never has a value that matches the Track 1 and Track 2 Start/End Sentinels.
4.1.1.7.3 Track 1 Field
This is a variable length field consisting of Track 1 data as ASCII characters. This field starts with the Track 1 Start Sentinel ‘%’ and ends with the Track 1 End Sentinel ‘?’. If any Track 1 data is available, it is present between the Start and End Sentinel. For example
41
NEO Interface Developers Guide
%B123456789^ABCDEF^12345678?
4.1.1.7.4 Track 2 Field
This is a variable length field consisting of Track 2 data as ASCII characters. This field starts with the Track 2 Start Sentinel ‘;’ and ends with the Track 2 End Sentinel ‘?’. If any Track 2 data is available, it is present between the Start and End Sentinel. For example
;12345678=12345?
4.1.1.7.5 Sample Output
45 00 55 00 04 03 03 00 00 E8 DD 45 00 55 00 04 01 11 00 00 28 B6 45 00 55 00 04 01 10 00 00 1F 86 45 00 55 00 04 02 20 00 00 41 FF 45 00 55 00 04 01 11 00 00 28 B6 45 00 55 00 04 01 21 00 00 ED 13 45 00 55 00 04 01 31 00 00 AE 70
01 00 0A 25 42 36 32 37 39 32 35 37 37 34 39 31 33 32 33 34 33 5E 54 45 53 54 20 43 41 52 44 2F 56 49 56 4F 54 45 43 48 5E 31 30 31 32 38 31 33 30 30 37 32 31 30 34 33 35 30 30 30 30 3F 3B 36 32 37 39 32 35 37 37 34 39 31 33 32 33 34 33 3D 31 30 31 32 38 31 33 30 30 37 32 31 30 34 33 35 30 30 30 30 3F B5 DC
45 00 55 00 04 03 04 00 00 6D 4D 45 00 55 00 0C 01 30 00 00 01 20 00 00 01 10 00 00 53 78 45 00 55 00 04 03 01 00 00 86 BD
<-- Three LED Events
<-- LCD Event <-- LED Event <-- LED Event
<-- Buzzer Event
<-- LED Event
<-- LED Event
<-- LED Event
<-- Burst Mode Payload Frame
<-- LCD Event
<-- LCD Event
CRC Calculation
The 16-bit CRC value is based on CRC-16/CCITT and calculated based on the following parameter set.
Width: 16-bits Polynomial: x16 + x12 + x5 + 1 Truncated Polynomial: 1021 hex Initial Value: FFFF hex Input Data: Not Reflected Output CRC: Not Reflected XOR of Output CRC: Not Done
The CRC-16 is calculated for the entire frame inclusive of Frame Tags, unused bytes, etc.
For Protocol 1 and Protocol 2: The CRC of the Command Frames is little-endian, i.e. lower byte first (LSB). The CRC of the Response Frames is big-endian i.e. higher byte first (MSB).
42
NEO Interface Developers Guide
For Pass-through Frames, both Command and response frames have the CRC stored in big­endian order (MSB first).
For Pass-through frames, the CRC is stored as big-endian number i.e. higher byte first.
Some test values that can be used to test an implementation of this algorithm are given below.
Data String (ASCII Text): 123456789
CRC: 29B1h
Data (Hex): [01h] [02h] [03h] [04h] [05h]
CRC: 9304h
Data (Hex): [56] [69] [56] [4F] [74] [65] [63] [68] [00] [43] [18] [00] [00] [00]
CRC: A1F5h
The following code snippet is an example of the CRC Calculation. The returned CRC would be stored in big-endian or little-endian form, depending on whether the Protocol 1, Protocol 2 or Pass-through Mode was being used. This code has been written in Microsoft Visual C++ 6.0.
43
NEO Interface Developers Guide
// --------------------------------------------------------------------------------------­// ID TECH // ID TECH reserves the right to make changes without notice at any time. ID TECH makes no // warranty, expressed, implied or statutory, including but not limited to any implied // warranty of merchantability or fitness for any particular purpose, or that the use will // not infringe any third party patent, copyright or trademark. ID TECH must not be liable // for any loss or damage arising from its use. // ---------------------------------------------------------------------------------------
static const unsigned short CrcTable[ 256 ] = { 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, 0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, 0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, 0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, 0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, 0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, 0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, 0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, 0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, 0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 };
unsigned short CalculateCRC ( unsigned char *Buffer, unsigned int Len ) {
while (Len--)
} return(Crc); }
unsigned short Crc = 0xffff;
{ Crc = CrcTable[ ((Crc >> 8) ^ *Buffer++) ] ^ (Crc << 8);
44
NEO Interface Developers Guide
5.0 Tag and Data Set Configuration
Tags are configured in the ViVOpay reader ahead of time so that when a card is selected, a “data set” (group) may be instantiated for use in a transaction.
The following illustration shows the basic approach to instantiating the tag database for a transaction. Global variables (configured through the Set Configuration command) are instantiated when the reader is reset or powered up. When a card is in the field, an AID is selected and its tags are added to the database. The selection of the AID will cause a “data set” (group) to be selected and its tags are added to the database. As the transaction proceeds, card tags will be added to the database, possibly overwriting or updating some tags that were already in the database.
The specification of MasterCard PayPass M/Chip 3.0 required some additional features in the Tag Database, including:
The ability to have tags that were “not present” in the database. The ability to handle 3-byte tags.
The specific details of changes for M/Chip 3.0 are covered in the following sections.
45
NEO Interface Developers Guide
Configurable AIDs and Groups
This section explains how you can create and modify Application Identifiers (AIDs) and associate them with TLV Groups in the reader’s memory for specific transaction handling. Detailed descriptions of the Configurable Application Identifier commands are also included.
Each AID uniquely identifies a payment application. The reader has default AIDs that are preconfigured to support common payment applications such as VISA and MasterCard. These AIDs are called the System AIDs and they can be modified or disabled but not deleted. The reader also supports up to eight user-defined AIDs called User AIDs. Each AID must be associated with a TLV Group that defines transaction processing for that payment application. The System AIDs are initially associated with a default TLV Group, which can be modified but not deleted. User AIDs can be associated to the default TLV Group or any of seven other user-defined TLV Groups.
With the implementation of M/Chip 3.0, an additional default TLV Group (Group 1) has been added. M/Chip 3.0 does not use the Reader Default Group (Group 0).
All AIDs must be unique. The reader’s default configuration is System AIDs and two default groups. All of the System AIDs (except PayPass AIDs, as noted above) initially refer to the default TLV Group 0. The diagram below shows the default reader AID configuration.
The Configurable Application Identifiers feature of the ViVOpay readers allows you to create and customize AIDs and the TLV Groups associated with them. Each AID may have characteristics that are unique and different from the reader’s default System AIDs and TLV Group configuration.
To create a new configurable AID you need to send the AID and the TLV Group you wish to use to the reader. If the AID already exists in the reader’s memory, it will modify the AID accordingly. If you send a new AID, the reader creates and saves the new AID. Multiple AIDs can be associated with the same TLV Group or they may refer to unique TLV Groups. You may also redefine the functionality for an existing AID by linking it to a new configuration Group or you
46
NEO Interface Developers Guide
may disable an AID if you do not want the reader to process transactions from that payment application. You may delete an AID by communicating to the reader the AID number with no parameters.
As you add or modify AIDs and TLV Groups, the reader remembers all changes on subsequent boot up.
The diagram below shows an example of a reader’s AID configuration after it has been modified with Configurable AID commands.
In this example, ten System AIDs have been disabled and four User AIDs and three new TLV Groups have been configured. The new AID User AID – 1 has been linked to the Reader Default Configuration (TLV Group 0) so that it functions as the other System AID 1 functions. The Maestro AID has been linked to the user-defined TLV Group – 2. User AID – 2 functions as defined in the new TLV Group – 3. Both User AID – 3 and User AID – 4 point to the new TLV Group – 4 and function accordingly. Also notice that the other System AIDs have been disabled by removing their link to a configuration group.
Use the Configurable AID Commands to create new AIDs or change configuration values for an AID. Use the Configurable Group commands to create new groups or configuration values for a group.
47
NEO Interface Developers Guide
American Express
A0 00 00 00 25 01
MasterCard
A0 00 00 00 04 10 10
QUICPay
A0 00 00 00 65 90 01
Maestro
A0 00 00 00 04 30 60
Visa
A0 00 00 00 03 10 10
Visa Electron
A0 00 00 00 03 20 10
Visa Interlink
A0 00 00 00 03 30 10
Visa Plus
A0 00 00 00 03 80 10
J/Speedy
A0 00 00 00 65 10 10
MXI
A0 00 00 00 02 30 60 D1 58 00
Discover
A0 00 00 03 24 10 10
Discover
A0 00 00 01 52 30 10
STAR
A0 00 00 04 17 01 01
Interac
A0 00 00 02 77 10 10
CUP Debit (Kiosk III only)
A0 00 00 03 33 01 01 01
CUP Credit(Kiosk III only)
A0 00 00 03 33 01 01 02
CUP Semi Credit(Kiosk III only)
A0 00 00 03 33 01 01 03
CUP Electronic Cash(Kiosk III only)
A0 00 00 03 33 01 01 06
SmartTap2.1
A0 00 00 04 76 D0 00
System AIDs
A System AID is an AID preloaded for a specific application using a known AID value. Examples include MasterCard, American Express, and Visa. The table below shows all the System AIDs.
Table 18: System AIDs
Application Name Application Identifier
The terminal:
May disable a System AID May ONLY modify some of the System AID properties May NOT delete a System AID
User AIDs
A User AID is an optional AID that is added and/or configured by the user. These AIDs are used for servicing transactions that are not defined by one of the System AIDs. This determination needs to be made by the integrator.
The terminal:
May modify ANY User AID property May delete a User AID
There is no equivalent to the System AID disable; the User AID either exists, and it is used for its associated transactions, or the User AID is not present.
48
NEO Interface Developers Guide
Reader Default TLV Group
The reader is provided with a default TLV Group (Group 0) that defines all the properties (with TLVs) required for a basic transaction. By default, all of the System AIDs except PayPass System AIDs (MasterCard and Maestro) use TLV Group 0 to define their transaction processing. By default, MasterCard PayPass System AIDs will use Group 1.
The user:
MUST ALWAYS include the Group Number TLV as the FIRST TLV in the Set Configurable
Group message.
MUST define AT LEAST ONE TLV in addition to the Group Number TLV (in a Set
Configurable Group command)
May modify ANY TLVs in TLV Group 0 May NEVER delete TLV Group 0
Unlike all other groups, the TLVs in the Default TLV Group (TLV Group 0) are constant. The reader ALWAYS uses the latest copy of the TLV. If you issue a Set Configurable Group command that only updates some TLVs in TLV Group 0, the reader continues to use older versions of the TLVs that were not updated.
After each transaction, the reader reloads the default values from TLV Group 0, prior to the next transaction. For this reason, TLV Group 0 maintains a copy of ALL TLVs that can be entered into a TLV Group structure2.
Warning: Changing values in TLV Group 0 should be done with EXTREME CAUTION, since this
affects the default configuration that most (not PayPass) transactions use.
PayPass Default Group
The PayPass default group is Group 1. PayPass M/Chip 3.0 does not use Group 0 tag definitions (not even for default values). The process of instantiating a PayPass database is slightly different from other applications:
Group 0 tags are not loaded. 28 default tags defined in the EMV Contactless Book C-2 Kernel 2 Spec
v2.3 are initialized with their specified default values. See PayPass Group
Configuration TLVs with Hard-Coded Values in Kernel.
PayPass Group tags are loaded. (Group 1 is the default group for PayPass
applications).
Tags sent in the Activate Command are loaded into the database.
User-defined TLV Groups
There are seven undefined TLV Groups in the reader at startup. These groups can be used for any purpose.
2
PayPass specific tags are an exception to this rule. Those are maintained in Group 1.
49
NEO Interface Developers Guide
The user:
MUST ALWAYS include the Group Number TLV as the FIRST TLV in the message. MUST include AT LEAST ONE TLV other than the Group Number TLV (in a Set
Configurable Group command)
May modify ANY TLV in the TLV Group May ALWAYS delete a TLV Group 1 through 7 SHOULD NEVER include the TDOL TLV if its length = zero (i.e., only include the TDOL if
it has a value)
User-defined TLV Groups differ from the default TLV Group 0 in two important ways. First, these groups only need to contain TLVs that are different than the TLVs in the default TLV Group 0. Thus they are normally a sub-set of the TLVs in the default group.
For American Express Transaction limit(FFF1), CVM limit(FFF5), Floor limit(9F1B): For Discover Transaction limit(FFF1), CVM limit(FFF5), Floor limit(9F1B), Risk flags(FFF4): if user-defined TLV Group is used, user should set these above TLVs in the user-defined Group. If not set, these above TLVs will be regard as not exist.
For American Express, Terminal Capabilities (9F33) and Enhanced Expresspay Terminal Capabilities (9F6E) are expected to be set consistently. For example, if Byte 2 bit 7 of ‘9F6E’ is set to 1(b) to indicate ‘Online PIN Supported’ then ‘9F33’ byte 2 bit 7 should also be set to 1(b).
For American Express, Kiosk III reader is always capable of CVM processing, and CVM items in terminal capabilities are supported (9F33 byte2 bit5-8 =1, 9F6E byte2 bit5-8 =1).
Secondly, the TLVs in TLV Groups 1 through 7 are not permanent. If you configure a TLV Group and then issue a second Set Configurable Group command on the same TLV Group, the second Set Configurable Group command overwrites EVERY change to the TLV Group made by the first command.
Warning: Changing values in TLV Groups 1 through 7 overwrites all content in the TLV Group,
including deleting TLVs not in the update.
Except for MasterCard PayPass transactions, when one of these user-defined TLV Groups is selected during a transaction, the reader uses the TLVs included in the group AND any other TLVs required for the transaction are taken from the default Group 0. Once the reader has finished transaction processing, it reloads TLV Group 0 values for all TLVs. It is now ready to commence the next transaction.
There are some guidelines for setting and deleting TLV Groups listed below. Most of these guidelines are intuitive (i.e., you may not delete a TLV Group if an AID exists that currently uses it).
Configurable AID Reader Memory Requirement
The Configurable AIDs feature requires memory to store TLV groups and User AIDs. ViVOpay readers use 64K flash memory to support the Configurable AID feature. Refer to the reader’s user documentation for more information on reader memory.
50
NEO Interface Developers Guide
ViVOpay Proprietary TLVs
TLVs may be either standard TLVs or proprietary TLVs. Standard TLVs are defined by EMV and the Payment Association Requirements and recognized by everyone. Proprietary TLVs are created by individual payment associations and reader manufacturers for specific functions. Proprietary TLVs must be handled in a manner that isolates them from other proprietary TLVs.
ViVOpay proprietary TLVs can be present with standard TLVs without encapsulation when the command is processed exclusively by ViVOpay firmware or software. If the TLVs will be processed by other devices, ViVOpay proprietary TLVs must be encapsulated to prevent conflicts with proprietary TLVs from other organizations.
ViVOPay TLV Group Tag FFEE01 is used to encapsulate ViVOpay proprietary TLVs.
EXAMPLE
The following example is for an encapsulated Terminal Capabilities – CVM Required TLV.
The TLV string “FFEE0106DF29030101” is broken down as follows:
FFEE01 ViVOpay TLV Group Tag
06 Length of all encapsulated TLVs
DF29 Tag Terminal Capabilities – CVM Required – ViVOpay Proprietary
03 Length of Transaction CVM
00 01 00 Value: Actual Transaction CVM
Card Application Proprietary Tag List (FF69)
For some applications, there may be a requirement to define a list of proprietary tags that may be returned in Data Object Lists (DOLs). To accomplish this, the reader allows each user-defined group (except Group 0) to define a list of proprietary tags that can be inserted into the tag database. The maximum size of this list is 32 bytes. The new tag that is used for encapsulating the proprietary tag list is FF69.
A tag in this list may be configured in one of two ways:
Constant Value – the TLV contains a non-zero length and a value. The
reader will not modify this value, but it can be provided when requested (as in a DOL).
Updateable – the TLV contains a length of zero and no value. The tag is
then “defined” but has no value, so it may be updated during the
51
NEO Interface Developers Guide
Require Heartbeat frame to stay in Idle mode (EMEA
01: Heartbeat frame required
Unsupported cards display option (EMEA User
Enable/Disable Stop Command processing
Enable Communication Error Recovery
transaction. At the end of a transaction, the reader will send any updated proprietary tags back in the Activate Response frame.
Configuration Tag Tables
Global Configuration Tags
The following table contains TLVs that are configurable using the Set
Configuration (04-00) command. These TLVs are global within in the reader.
Table 19: Global Configuration TLVs
Tag Data Object Name and Description Format
Transaction Date (YYMMDD)
9A
9F21
DF65
DF66
This value is used to set the Real Time Clock. Note: The terminal/POS application should perform range checking on this value to ensure it is within acceptable limits.
Transaction Time (HHMMSS) This value is used to set the Real Time Clock. Note: The terminal/POS application should perform range checking on this value to ensure it is within acceptable limits.
User Experience only). If this feature is enabled, then to stay in the Idle mode, a valid frame must be
[1]
received by the reader every 15 seconds or it returns to Not Working state. 00: Heartbeat frame not required
Experience only). If an unsupported card is detected, then display a message based on this setting.
[1]
00: Display a “Fail” message 01: Display an “Insert/ Swipe” message if the reader is configured to indicate support for Contact cards, otherwise display a “Fail” message.
n6 3 Reader Date
n6 3 Reader Time
b 1 00
b 1 00
Length (Bytes)
Default Value
DF68
DF6A
0 = Disable (default) 1 = Enable
Enables the reader to poll again and return to discovery after a communication error (e.g. tear or “no tag” error) 00: Disabled 01: Enabled (default)
52
b 1 00
b 1 01
NEO Interface Developers Guide
Communication Error Delay time
seconds)
Auto-Switch to Pass-Through Mode.
Track 1 and Track 2 Data Format
Improved Collision Detection (see special features
Application Capability(1:Support,0:Not Support):
Tag Data Object Name and Description Format
Delay between the time a communication error first occurs and the time when the reader will issue an
DF75
indication of an error to the reader. If a tear occurs, but the card comes back into the field during this time, then no error indication is issued. Time is expressed in milliseconds (default is 3000ms, or 3
DF7C
Refer to Auto-Switch to Pass-Through Mode 00: Disable (default) 01: Enable
Sets the format of data returned from Activate
DF7D
Transaction and Get Transaction Results commands. 00: No start/end sentinels or LRC (default) 01: Add start/end sentinel and LRC
Improved Collision Detection.) RF signal locked to a
specified card only after a specified number of
DF7F
polling attempts without an EMV collision. 00h = Improved Collision Detection Disabled. 02h-FFh = Number of successful polling attempts required.
Byte 1: (Leftmost)
b8 b7 b6 b5 b4 b3 b2 b1
X Normal J/Speedy support X ViVOpay Mifare for NFC X Interac support X CUP support X SmartTap support X X X RFU
Byte 2:
FFF3
[1]
b8 b7 b6 b5 b4 b3 b2 b1
- - - - - - - X MasterCard Credit support
- - - - - - X - American Express support
- - - - - X - - Visa support
- - - - X - - - Mobile J/Speedy support
- - - X - - - - ViVOwallet support
- - X - - - - - RBS support
- X - - - - - - MasterCard Cash support X - - - - - - - Discover support
Example: 0009 means reader support both MasterCard and Mobile J/Speedy applications
Meaning (0 = disable, 1 = enable)
Meaning (0 = disable, 1 = enable)
n
(BCD)
Length (Bytes)
3 00 30 00
Default Value
b 1 00
b
1
b 1 00
b 2
(0F FF for Kiosk
00
07 FF
III)
53
NEO Interface Developers Guide
Enable/Disable Burst Mode:
received (Sections 6 and 14 of this document)
LCD Font Size:
LCD delay time (ms) – default is 1000ms.
Language Option for LCD display:
Value = 05: English & French display
9F15
Merchant Category Code
merchant, see ISO 8583:1993.
n4 2 00 00
9F16
Merchant Identifier
ans
15
00 00 00 00 00
00 00 00 00 00
9F1C
Terminal Identification
an 8 00 00 00 00 00
9F40
Additional Terminal Capabilities
the terminal.
b 5 60 00 00 10 01
9F4E
Merchant Name and Location
ASCII
<=30
00 00 00 00 00
9F7C
Merchant Custom Data
b
<=20
00 00 00 00 00
FFF2
Interface Device Serial Number
an 8 30 30 30 30 30
Tag Data Object Name and Description Format
Value = 00: Disable Burst Mode Value = 01: Enable Burst Mode
[1]
FFF7
Value = 02: Burst Mode Auto Exit. Burst mode is
b 1 02
turned off as soon as a transaction command is
[1]
FFF9
[2] [3]
FFFA
[2]
FFFB
Value = 02: Large Value = 03: Extra Large (default)
[1]
If the device has no LCD, then the value will be 0.
Value = 00: English only display (default) Value = 01: Chinese only display
[1]
Value = 02: English & Chinese display Value = 03: French only display Value = 04: Other Language (if ILM present)
b 1 03
b 2
[2]
[2]
[4]
[2]
b 1 00
Poll Mode
DF891B
Value = 00 : Auto-Poll Value = 01 : Poll on Demand
b 1 00
Note: Only used for Vendi.
Classifies the type of business being done by the
Length (Bytes)
Default Value
03 E8
or
00 00
Indicates the data input and output capabilities of
Allows the reader to be configured with the Merchants Name and Location (VCPS 2.1.1 and M/Chip 3.0)
This is equivalent to tag 9F1E. They refer to the same parameter.
00 00 00 00 00
00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30 30 30
54
NEO Interface Developers Guide
FFF8
UI Scheme:
b 1 00
9F53
Transaction Category Code
defined by MasterCard and Interac.
an 1 00
DFEF36
MTAS(Media Tracking And Status)
b 4 Not present
Tag Data Object Name and Description Format
Value = 00:ViVOpay User Interface (default) Value = 02:Visa Wave User Interface Value = 03:EMEA User Interface Note: LCD Messages need to be configured separately. Warning: EMEA UI is intended for use in the EMV or European environment, where the reader Vend is not allowed to poll continuously (e.g., operate in Auto Poll Mode). The reader Vend does NOT support Auto Poll while in EMEA UI mode. The reader is not certified to work properly in this situation. The reader Vendi supports Auto Poll while in EMEA UI mode.
Indicate type of transaction being performed,
Byte 1: (Leftmost)
b8 b7 b6 b5 b4 b3 b2 b1
X CL Media Arrival Reproting X CL Media Removal Reproting X X X X X X RFU
Meaning (0 = disable, 1 = enable)
Byte 2:
b8 b7 b6 b5 b4 b3 b2 b1 Notes
- - - - - - - X
- - - - - - X -
- - - - - X - -
- - - - X - - -
- - - X - - - -
-X X- X - - - - - RFU
0 - RF Antenna Off 1 - RF Antenna On
0 - RF Field Deactiated 1 - RF Field Activated
0 - No event 1 - RF Field Activated
0 - No event 1 - CL Midia Arrival Detected
0 - No event 1 - CL Media Removal
Detected.
Byte 3: RFU Byte 2: RFU
Length (Bytes)
Default Value
b 4 00 00 00 00
FFEE1C UN range
Masked Output Data Parameter
FFEE1D
55
b 5 04 04 2A 0C 31
NEO Interface Developers Guide
Group 0 Initialize Flag:
Tag Data Object Name and Description Format
Value = 00: not initialized.(If the tag is not found or Value is not 1, reader will initialize group 0 with
FFEE1E
[1]
These objects use proprietary tags. The use of these tags should be restricted to the serial interface. Once the Reader has returned an OK Response Frame, the Terminal application should dispose of the tags to avoid conflicts with other proprietary TLVs.
[2]
These objects only work on the ViVOpay graphic reader.
[3]
Only applies to non-index messages. The default size for the LCD Font is 3. The Lookup table for all the messages are hard coded with the Font Size 3. The Font Size = 2 is treated only when the three messages are displayed on the screen. When the user wants to use the LCD Font size = 2, A store LCD message command can be used to configure the string by prefixing the %F2.
[4]
These objects only work on the Vendi.
default setting automatically when the power cycle is on) Value = 01: Initialized
Only used for Kiosk III.
b 1 01
Length (Bytes)
Default Value
Group Configuration Tags
The following table contains tags that may be configured within a Configurable Group. For Group 0, default values exist. Except for groups associated with a PayPass AID, if a group does not define some of these TLVs, then the values in Group 0 will be used. The Set Configurable Group command should be used to set the TLVs in this section.
Table 20: Group Configuration TLVs
56
The PayPass configuration tags are documented separately. To configure a group that will be associated with a PayPass AID, refer to PayPass Group Configuration TLVs.
Tag Description Format Length
Merchant Type Indicator
9F58
9F59
9F5D
Provides Merchant Type Indicator used by the card for risk management. Five values are valid: 01, 02, 03, 04 and 05. (Interac)
Terminal Transaction Information (TTI) Provides Terminal Transaction Information for the current transaction. (Interac)
Note: Vendi default values are B4 07 00.
Terminal Contactless Receipt Required Limit Limit Amount used to compare against Transaction amount to automatically print a transaction record. (Interac)
n1 1 03
b 3 DC 80 00
n12 6 00 00 00 00 50 00
Default Value in
Group 0
NEO Interface Developers Guide
Terminal (Reader) Contactless Floor Limit
Threshold Value for Biased Random Selection
Target Percentage for Random Selection
ExpressPay Terminal Capabilities
Enable/Disable Visa Wave cards
Default Transaction Certificate Data Object List (TDOL)
Transaction Type
Code. (default = purchase goods or services)
Tag Description Format Length
Terminal Option Status Options supported by the terminal. (Interac)
9F5E
Note: Vendi default values are 00 00.
b 2 E0 00
9F5F
Floor limit amount used to compare against
n12 6 00 00 00 00 80 00
Transaction amount. (Interac)
Enable/Disable Certificate Revocation list 0 = disable
DF26
1 = enable (default)
b 1 01
M/Chip 3.02 can make use of the Certificate Revocation list.
Note: Vendi default value is not present.
DF2A
Value used in terminal risk management for random
n12 6 00 00 00 00 50 00
transaction selection. (Interac)
DF2B
Maximum Target Percentage for Biased Random Selection Value used in terminal risk management for random transaction selection. (Interac)
b
1 32
Default Value in
Group 0
DF2C
DF51
DF64
97
9C
Value used in terminal risk management for random transaction selection. (Interac)
Used to create the ExpressPay Terminal Capabilities
[1]
TLV, 9F6D for Amex ExpressPay applications.
Note: Vendi default value is not present.
Enables the use of Visa Wave cards (not the Visa Wave
[1]
protocol). 00: Reject Visa Wave cards 01: Accept Visa Wave cards
List of TLV data objects to be used by the terminal to generate the TC Hash Value in case the TDOL is not returned by the card.
Note: Vendi default value is not present.
In Group 0, this tag must be encapsulated in another tag, FF67. FF67 encapsulates all “variable length” tags in group 0.
Indicates the type of financial transaction, represented by the first two digits of ISO 8583:1987 Processing
b 1 0A
b 1 80
b 1 00
b <=64 Zero length
n2 1 00
57
NEO Interface Developers Guide
Transaction Currency Code
AIDs. (default = US Dollars)
Transaction Currency Exponent
9F01
Acquirer ID
n 6 Not present
9F02
Amount Authorized (Numeric)
n12
6
00 00 00 00 00 01
9F03
Amount Other (Numeric)
n12
6
00 00 00 00 00 00
Application Version Number
Amex (Value = 00 01)
Terminal Country Code
represented according to ISO 3166. Default = US
Terminal Floor Limit
Terminal Identification
Terminal Capabilities
 CDA supported
Terminal Type Terminal Transaction Qualifier (TTQ)
supported.
Tag Description Format Length
Indicates the currency code of the transaction
5F2A
5F36
9F09
9F1A
according to ISO 4217. Note: make sure you use the same Transaction Currency Code for all configurable
Indicates the implied position of the decimal point from the right of the transaction amount represented according to ISO 4217. (decimal is two places from right of the transaction amount)
PayPass M/Chip (Value = 00 02) D-PAS (Value = 00 02) Interac (Value = 00 02)
Indicates the country code of the terminal,
Indicates the floor limit in the terminal for the AID(s)
associated with this group.
n3 2 08 40
n1 1 02
b 2 00 02
n3 2 08 40
Default Value in
Group 0
9F1B
9F1C
9F33
9F35
9F66
Note: The value is the decimal limit amount given in binary represented in Hex in the command/response. (100 limit = 10000 decimal = 2710h).
Default = $60.00
Note: Vendi default value is not present.
Indicates the card data input, CVM, and security capabilities of the terminal Default =
No CVM required SDA supported DDA supported Card Capture
Indicates the environment of the terminal, its communications capability, and its operational control
Note: Vendi default value is 25.
Determine the type of transaction (MSD, qVSDC, and Contactless VSDC) and whether online processing is
b 4 00 00 17 70
an 8
b 3 00 08 E8
n2 1 22
b 4
00 00 00 00 00 00
00 00
80 00 40 00
(27 00 40 80 for
CUP)
58
NEO Interface Developers Guide
Application Version Number (MagStripe)
Terminal Capabilities – No CVM Required
DF28 Byte
PayPass Tag Equivalent
2
DF8119
Terminal Capabilities – CVM Required
DF29 Byte
PayPass Tag Equivalent
2
DF8118
Group Number
Terminal Contactless Transaction Limit
Tag Description Format Length
9F6D
PayPass MagStripe (Value = 00 01)
b 2 00 01
Note: Vendi default value is not present.
M/Chip v2.0 element indicating the Terminal Capabilities to be used when Amount, Authorized < CVM Required Limit. Formatted as Terminal Capabilities (tag ‘9F 33’)
DF28
Only byte 2 of this tag is actually used. The other terminal capabilities are configured using tag 9F33.
b 3 00 08 E8
Note: Vendi default value is not present.
M/Chip v2.0 element indicating the Terminal Capabilities to be used when Amount, Authorized >= CVM Required Limit. Formatted as Terminal Capabilities (tag ‘9F 33’)
DF29
Only byte 2 of this tag is actually used. The other terminal capabilities are configured using tag 9F33.
b 3 00 68 E8
Note: Vendi default value is not present.
Default Value in
Group 0
The group number assigned to this group of parameters. AIDs may be associated with the group number.
[1]
FFE4
This tag is mandatory when getting or setting group parameters and it must be the 1st TLV in Data Field. It is used as the “key” for the group parameter set.
[1]
FFF1
Indicates the terminal limit for this AID for Contactless transactions.
n2 1 --
n12 6 00 00 00 01 00 00
59
NEO Interface Developers Guide
Visa Reader Risk Flags
Tag Description Format Length
Byte 1
b
b
b
b
8
- - - - - - - X Status Check X X X X X X X - RFU
b
7
6
5
4
Meaning
b
b
b
3
2
1
(0 = disable, 1 = enable)
Byte 2:
Meaning
b
b
2
1
(0 = disable, 1 = enable)
Cash Transaction Reader Risk (RR)
DRL (Dynamic Reader Limits) RR
Meaning
b
b
2
1
(0 = disable, 1 = enable) 1 = online cryptogram required
for zero amount (only used with zero amount check enabled)
b 3 00 06 01
FFF4
b
b
b
b
b
8
7
6
- - - - - - - X Transaction Limit Check
- - - - - - X - CVM Required Limit Test
- - - - - X - - Terminal Floor Limit Check
- - - - X - - -
- - - X - - - - Cashback Reader Risk (RR)
- - X - - - - -
[1]
X X - - - - - - RFU
Byte 3
b
b
b
8
7
6
- - - - - - - X
- - - - - - X - 1 = perform zero amount check X X X X X X - - RFU
b
5
4
3
b
b
b
5
4
3
For example: 0x00 = Zero Amount check disabled. 0x01 = Zero Amount check is disabled and online cryptogram required bit will not be checked. (default) 0x02 = Zero Amount check enabled. 0x03 = Zero Amount check enabled and Option 1, online Cryptogram Required
Default Value in
Group 0
Note: Vendi default values are 01 00 01.
60
NEO Interface Developers Guide
D-PAS Reader Risk Flags:
X
-
1 = online cryptogram required for
CVM Required Limit
associated AIDs.
PayPass Profile (also used for Amex)
Terminal Action Code (Online)
analysis of the TVR.
Terminal Action Code (Default)
Terminal Action Code (Denial)
Tag Description Format Length
Byte 1
b
b
b
b
b
8
7
6
5
4
Meaning
b
b
b
3
2
1
(0 = disable, 1 = enable)
- - - - - - - X RFU
X X X X X X
1=Status Check Support RFU
Byte 2:
b
b
b
b
b
b
8
7
6
5
4
3
Meaning
b
b
2
1
(0 = disable, 1 = enable)
b 3
X X X X X X X X RFU
Byte 3
b
b
b
b
b
b
8
7
6
5
4
3
- - - - - - - X
X X X X X X X - RFU
Meaning
b
b
2
1
(0 = disable, 1 = enable)
zero amount
Default Value in
Group 0
[1]
FFF5
Indicates the CVM required limit in the terminal for the
Information in this tag is equivalent to PayPass tag DF811B, although it is formatted slightly differently:
87654321
-------X
[1]
FFFC
------X-
-----X--
XXXXX---
The default value is 0x01 – support MagStripe only.
Note: Vendi default value is not present.
[1]
FFFD
Reflect the acquirer-selected action to be taken upon
[1]
FFFE
Reflect the acquirer-selected action to be taken upon analysis of the TVR.
Bit Meaning Value
MagStripe Only
M/Chip Only
On Device CVM
RFU
0 = normal transaction 1 = MagStripe only
transaction allowed 0 = normal transaction
1 = M/Chip only transaction allowed
0 = not supported 1 = supported
n12 6 00 00 00 00 80 00
b 1 01
b 5 F8 50 AC F8 00
b 5 F8 50 AC A0 00
[1]
FFFF
61
Reflect the acquirer-selected action to be taken upon analysis of the TVR.
b 5 00 00 00 00 00
NEO Interface Developers Guide
Specific Feature Switch
Byte 3: RFU
9F5A
Terminal Transaction Type (Interac)
b 1
00
Counter maintained by the terminal that is
Tag Description Format Length
Used with Visa VCPS 2.1.1/2.1.2. It controls Visa CVN17 support and Track 1 & 2 data in the transaction response. Byte 1
b8 b7 b6 b5 b4 b3 b2 b1
- - - - - - - X RFU (Deprecated)
FFF0
[1]
- - - - - - X -
- - - - - X - -
- - - - X - - -
X X X X - - - - RFU
1 = Visa CVN17 supported 0 = Visa CVN17 disabled
1 = Remove Track 1 data in Visa response
1 = Remove Track 2 data in Visa response
b 3 02 00 00
Byte 2: RFU
• 0x00 = Purchase
• 0x01 = Refund
Masked Output Data Parameter When there is a PAN to be output in masked format, this parameter gives the key points of the format. Byte 1: PrePAN, value scope is [0, 6], Byte 2: PosPAN, value scope is [0, 4],
FFEE1D
Byte 3: MaskAscii, value scope is [20h, 7Eh], Byte 4: MaskHex, value scope is [0Ah, 0Fh]
b 5 04 04 2A 0C 31
Byte 5: Expire date output option,
0x30=Mask, 0x31=NotMask, default 0x31 For detailed rules, please refer to "ID-Tech Encypt Data Format In Command / Response Specification for ICC Communication".
Default Value in
Group 0
9F41
incremented by one for each transaction
Note: Vendi default value is not present.
“Interac Retry Limit” Configured value for the total number of tap
DF891C
attempts during an Interac Mobile Debit (NFC) application transaction.
Note: Vendi default value is not present.
62
n 4 4 Not Present
n1 1 Not Present
NEO Interface Developers Guide
CUP Risk and Configuration Flag
Byte 4: RFU
Tag Description Format Length
DFEF2F
Byte 1
b8 b7 b6 b5 b4 b3 b2 b1
- - - - - - - X Status Check
- - - - - - X - Transaction Limit Check
- - - - - X - - CVM required Limit Check
- - - - X - - - Terminal Floor Limit Check
- - - X - - - - Zero Amount Check X X X - - - - - RFU
Byte 2:
b8 b7 b6 b5 b4 b3 b2 b1
- - - - - - - X RFU
- - - - - - X - Exception File Support
- - - - X X - - RFU
- - - X - - - -
- - X - - - - - RFU
- X - - - - - - UPI Support
X - - - - - - -
Online Authentication Support
Cardholder Credential Support
Byte 3:
b8 b7 b6 b5 b4 b3 b2 b1
- - - - - - - X Encrypt Keyboard Support
- - - - - - X - Reversal Support qUICS Online ODA Fail
- - - - - X - -
X X X X X - - - RFU
Decision: 1 = Go Online 0 = Decline
Default Value in
Group 0
b 4 Not Present
DFEE3F Default TDOL
[1]
These objects use proprietary tags. The use of these tags should be restricted to the serial interface. Once the Reader has returned an OK Response Frame, the Terminal application should dispose of the tags to avoid conflicts with other proprietary TLVs.
[2]
Not used by M/Chip 3.0 because M/Chip 3.0 redefines this as a card tag that passes Application Capability Information.
[3]
These objects only work on the Vendi.
[4]
These objects only work on the ViVOpay graphic reader.
b var Not Present
63
NEO Interface Developers Guide
Default Transaction Certificate Data Object List
Transaction Date (YYMMDD)
Transaction Type
Transaction Currency Code
PayPass Group Configuration TLVs
If a PayPass AID will be assigned to a group, then the table in this section should be used to configure the group. The Set Configurable Group command should be used to set the TLVs in this section.
The following PayPass Group TLVs should not be configured for Group 0. The default PayPass group is Group 1. That is, when the reader is configured from the factory, the PayPass System AIDs will be associated with Group 1.
If there are tags in a PayPass group that should be set, they must all be set explicitly, since the absent values are not filled in with Group 0 or Group 1 defaults.
PayPass Group tags are instantiated a little differently than other groups. Group 0 is never used as a default. Refer to the section on PayPass Default
Group for an explanation of how the tag database is instantiated for PayPass.
Table 21: PayPass Default Group Configuration TLVs
Tag Description Format Length
97
9A
9C
(TDOL) List of TLV data objects to be used by the terminal to generate the TC Hash Value in case the TDOL is not returned by the card
Indicates local date that the transaction was authorized. Note: The reader does not perform range checking on this value. The POS application should perform range checking on this value to ensure it is within acceptable limits. Default value = FF FF FF (use the RTC for date and time.)
When this value is set in a PayPass group, it should generally be set to FF FF FF (use the RTC). Setting this value to something other than FF FF FF may have unexpected results. The transaction date and time may be overridden by the terminal if the 9A and 9F21 TLVS are supplied in an Activate command.
Indicates the type of financial transaction, represented by the first two digits of ISO 8583:1987 Processing Code (default = purchase goods or services)
Default Value in
Group 1
b <=64 Not present
n6 3 FF FF FF
n2 1 00
Indicates the currency code of the transaction
5F2A
according to ISO 4217. Note: make sure you use the same Transaction Currency Code for all configurable AIDs. Default = US Dollars(08 40)
64
n3 2 08 40
NEO Interface Developers Guide
Transaction Currency Exponent
last digit of the transaction amount.
Amount Authorized (Numeric)
Application Version Number (M/Chip)
Amex (Value = 00 01)
Merchant Category Code
merchant, see ISO 8583:1993.
9F16
Merchant Identifier
ans
15
Not present
Terminal Country Code
represented according to ISO 3166.
Terminal Floor Limit
Terminal Identification
Interface Device Serial Number
Transaction Time (HHMMSS)
authorized. Default = use RTC.
Terminal Capabilities
Tag Description Format Length
Default Value in
Group 1
Indicates the implied position of the decimal point
5F36
from the right of the transaction amount represented according to ISO 4217.
n1 1 02
Default = decimal is two places to the right of the
9F01 Acquirer ID
9F02
n 6 Not present
n12 6 00 00 00 00 00 01
Note: Vendi default value is not present.
9F03 Amount Other (Numeric) n12 6 00 00 00 00 00 00
9F09
9F15
9F1A
PayPass M/Chip 3.0(Value = 00 02)
Classifies the type of business being done by the
Indicates the country code of the terminal,
b 2 00 02
n4 2 11 11
n3 2 08 40
Indicates the floor limit in the terminal in
9F1B
conjunction with the AID (hex).
This tag is equivalent to MasterCard tag DF8123 Reader Contactless Floor Limit.
b 4 00 00 17 70
9F1C
Note: Vendi default values are 00 00 00 00 00
an 8 zero length
00 00 00.
This is intended to be the serial number of the
9F1E
terminal/POS. It is configured by the POS and is unique to the terminal.
an 8
30 30 30 30 30 30
30 30
Note: KioskIII/Vendi default value is not present.
9F21
Indicates local time that the transaction was
n6 3 FF FF FF
Indicates the card data input, CVM, and security capabilities of the terminal.
This tag (9F33) only configures bytes 1 and 3 of the terminal capabilities. Byte 2 of the terminal
9F33
capabilities actually comes from DF28 or DF29 during the transaction. Refer to tags DF28 and DF29 for details. Note: Byte 1 of 9F33 is the same as DF8117 Card Data Inpput Capability defined in PayPass 3.0.2 and Byte 3 of 9F33 is the same as DF811F Security Capability.
b 3 00 08 E8
65
NEO Interface Developers Guide
Terminal Type
Additional Terminal Capabilities Merchant Name and Location
M/Chip 3.0)
Transaction Category Code
Terminal Transaction Qualifier (TTQ)
processing is supported.
Application Version Number (MagStripe) PayPass MagStripe (Value = 00 01)
9F6E
Third Party Data
Not present
00 00 00 00 00 00
00 00
Mobile Support Indication. (PayPass only)
DF28 Byte
PayPass Tag Equivalent
2
DF8119
Tag Description Format Length
Indicates the environment of the terminal, its communications capability, and its operational
9F35
control
n2 1 22
Note: Vendi default value is 25.
Indicates the data input and output capabilities of
9F40
9F4E
the terminal
Note: Vendi default values are 60 00 00 10 01.
Allows the reader to be configured with the Merchants Name and Location (VCPS 2.1.1 and
b 5 60 00 00 30 00
ASCII 30 Not present
This is a data object defined by MasterCard which indicates the type of transaction being performed,
9F53
and which may be used in card risk management.
an 1 01
Note: Vendi default value is 00.
Default Value in
Group 1
9F66
9F6D
Determine the type of transaction (MSD, qVSDC, and Contactless VSDC) and whether online
b 4 Not present
b 2 00 01
9F7C Merchant Custom Data b <=20
9F7E
Note: Vendi default value is 00.
b 1 Zero length
Terminal Capabilities – No CVM Required M/Chip v2.0 element indicating the Terminal Capabilities to be used when Amount, Authorized < CVM Required Limit. Formatted as Terminal
DF28
Capabilities (tag ‘9F 33’)
Only byte 2 of this tag is actually used. The other terminal capabilities are configured using tag 9F33.
b 3 00 08 E8
00 00 00 00 00 00 00 00 00 00 00 00
66
NEO Interface Developers Guide
DF29 Byte
PayPass Tag Equivalent
2
DF8118
Pre Gen-AC Balance Read
Post Gen-AC Balance Read
be read after Gen-AC.
Default UDOL
the “Unpredictable Number”.
Maximum Lifetime of Torn Transaction Record
Maximum Number of Torn Transaction Records
MagStripe CVM Required Capability
Required Limit.
Reader Contactless Transaction Limit, No On-
Tag Description Format Length
Terminal Capabilities – CVM Required M/Chip v2.0 element indicating the Terminal Capabilities to be used when Amount, Authorized >= CVM Required Limit. Formatted as
DF29
Terminal Capabilities (tag ‘9F 33’)
Only byte 2 of this tag is actually used. The other terminal capabilities are configured using tag 9F33.
b 3 00 68 E8
If this tag is defined, a transaction will read the
DF8104
balance before Gen-AC. This tag may also be sent
n12 6 Not present in the Activate to indicate that the balance should be read prior to Gen-AC.
If this tag is defined, a transaction will read the
DF8105
balance after Gen-AC. This tag may also be sent
n12 6 Not present in the Activate to indicate that the balance should
DF811A
Used for calculating the CCC if no UDOL is present in the card. The default is the tag and length of
b 3 9F 6A 04
Default Value in
Group 1
DF811C
DF811D
DF811E
DF8124
This is the maximum time a torn record can exist in the log before it expires. It is expressed in seconds. While the transaction log is global to the reader, the MasterCard application is the only application that supports it.
Due to storage limitations, the maximum number of records that may be configured is 2. There may be 0, 1, or 2 torn transaction records configured. If 0 records are configured, the torn transaction recovery facility is effectively disabled. While the transaction log is global to the reader, the MasterCard application is the only application that supports it.
Indicates the CVM capability of the Terminal/Reader in the case of a mag-stripe mode transaction when the Amount, Authorized (Numeric) is greater than the Reader CVM
Device CVM When there is no On-Device CVM available (e.g. with a phone), then this is the transaction limit that will be used. Default = $300.00
b 2 Not Present
b 1 Not Present
b 1 10
n12 6 00 00 00 03 00 00
67
NEO Interface Developers Guide
Reader Contactless Transaction Limit, On-Device
MagStripe No CVM Required Capability
Required Limit.
Message Hold Time
requirement.
RF Hold Time Value
Phone Message Table
Proprietary Tag List
tag list.
Group Number
Tag Description Format Length
CVM When On-Device CVM is available (e.g. with a phone) then this is the transaction limit that will
DF8125
be used.
n12 6 Not Present
Note: Vendi default values are 00 00 00 03 00
00. KioskIII default values are 00 00 00 05 00
00.
Indicates the CVM capability of the
DF812C
Terminal/Reader in the case of a mag-stripe mode transaction when the Amount, Authorized
b 1 00
(Numeric) is less than or equal to the Reader CVM
Indicates the default delay for the processing of the next MSG signal. The Message Hold Time is an
DF812D
integer in units of 100ms.
n6 3 Not Present While this value is configurable, it is not used in practice in the reader. It is a MasterCard
Indicates the time that the field is to be turned off after the transaction is completed if requested
DF8130
to do so by the cardholder device. The Hold Time Value is in units of 100ms.
b 1 Not Present
While this value is configurable, it is not used in practice in the reader. It is a MasterCard requirement.
Default Value in
Group 1
Defines for the selected AID the message and status identifiers as a function of the POS Cardholder Interaction Information. The Phone Message Table is a variable length list with 8-byte entries. Each entry in the Phone Message Table
DF8131
contains the following fields: PCII Mask (3 bytes, binary) PCII Value (3 bytes, binary) Message Identifier (1 byte, binary) Status (1 byte, binary) The last entry in the phone message table must always have the PCII Mask and PCII Value set to ‘000000’.
FF69
Proprietary tags that are not otherwise configured may be configured by encapsulating them in this
The group number that contains the characteristics for this AID
[1]
FFE4
This tag is mandatory when getting or setting group parameters and it must be the 1st TLV in Data Field.
68
B Var No Present
b <=32 Not present
n2 1 --
NEO Interface Developers Guide
Terminal Contactless Transaction Limit
Contactless transactions.
CVM Required Limit
UI Scheme:
Language Option for LCD display:
PayPass Profile
only.
Tag Description Format Length
[1]
FFF1
FFF5
Indicates the terminal limit for this AID for
Indicates the CVM required limit in the terminal
[1]
for the associated AIDs. Default = $80.00
This is equivalent to MasterCard tag DF8126.
n12 6 00 00 00 01 00 00
n12 6 00 00 00 00 80 00
Value = 00:ViVOpay User Interface (default) Value = 02:Visa Wave User Interface Value = 03:EMEA User Interface Note: LCD Messages need to be configured separately. Warning: EMEA UI is intended for use in the EMV or European environment, where the reader is not
FFF8
Poll Mode). The reader does NOT support Auto
b 1 00
allowed to poll continuously (e.g., operate in Auto
[1]
Poll while in EMEA UI mode. The reader is not certified to work properly in this situation.
Note: Vendi default value is not present.
For PayPass M/Chip, this value should be set to 03 (EMEA). It defaults to ViVOpay for backward compatibility with MagStripe applications.
Default Value in
Group 1
FFFB
FFFC
Value = 00: English only display (default) Value = 01: Chinese only display Value = 02: English & Chinese display
[1]
Value = 03: French only display Value = 04: Other Language (if ILM present)
Value = 05: English & French display
[2]
[2]
[3]
Note: Vendi default value is not present.
Information in this tag is equivalent to PayPass tag DF811B, although it is formatted slightly differently:
87654321
-------X
[1]
------X-
-----X--
XXXXX---
Bit Meaning Values
MagStripe Only
M/Chip Only
On Device CVM
RFU
0 = normal transaction 1 = MagStripe only transactions allowed
0 = normal transaction 1 = M/Chip only Transactions allowed
0 = not supported 1 = supported
The default value is 0x01 – support MagStripe
[2]
b 1 00
b 1 01
69
NEO Interface Developers Guide
Terminal Action Code (Online)
Terminal Action Code (Default)
Terminal Action Code (Denial)
FFF2
Interface Device Serial Number
same parameter.
an
8
30 30 30 30 30 30
Tag Description Format Length
Reflect the acquirer-selected action to be taken
[1]
FFFD
FFFE
FFFF
[1]
These objects use proprietary tags. The use of these tags should be restricted to the serial interface. Once the Reader has returned an OK Response Frame, the Terminal application should dispose of the tags to avoid conflicts with other proprietary TLVs.
[2]
These objects only work on the ViVOpay graphic reader.
upon analysis of the TVR.
This is equivalent to MasterCard tag DF8122.
Reflect the acquirer-selected action to be taken
[1]
upon analysis of the TVR.
This is equivalent to MasterCard tag DF8120.
Reflect the acquirer-selected action to be taken
[1]
upon analysis of the TVR.
This is equivalent to MasterCard tag DF8121.
This is equivalent to tag 9F1E. They refer to the
b 5 F8 50 AC F8 00
b 5 F8 50 AC A0 00
b 5 00 00 00 00 00
Default Value in
Group 1
30 30
[3]
These objects only work on the Vendi
PayPass Group Configuration TLVs with Hard-Coded Values in Kernel
PayPass transactions do not use Group 0 at all. If a TLV data item has not been defined in a PayPass group (Group 1 or higher), then the default value is not picked up from Group 0 as for other card types.
There is a minimal sub-set of TLV data items that must be present for a PayPass transaction to be performed. If any of the data items from this sub-set are not present, a PayPass transaction cannot be performed.
To allow PayPass transactions to be performed even if these critical data items are missing from the PayPass group, The PayPass Kernel keeps a set of hard­coded default values for these data items. If any of these data items are not present in the PayPass Group then the kernel uses the hard-coded value for the missing data item.
A list of data items that have a hard-coded value and the default value are given in the following table.
70
NEO Interface Developers Guide
Transaction Type
Application Version Number (Reader) PayPass M/Chip 3.0
Terminal Country Code
represented according to ISO 3166.
Terminal Floor Limit
Terminal Capabilities
Terminal Type
control
Additional Terminal Capabilities
the terminal
Application Version Number (MagStripe)
If any of these data items is “not present” in the PayPass group, then a Get Group command will not return the values for these data items even though the PayPass kernel will use the hard-coded default values for these data items.
Table 22: PayPass Group Configuration TLVs with Hard-Coded Default Values in Kernel
Hard-Coded
Tag Description Format Length
Indicates the type of financial transaction,
9C
represented by the first two digits of ISO
n2 1 00 8583:1987 Processing Code (default = purchase goods or services)
Default Value in
PayPass Kernel
9F09
9F1A
9F1B
9F33
9F35
Indicates the country code of the terminal,
Indicates the floor limit in the terminal in conjunction with the AID (hex).
This tag is equivalent to MasterCard tag DF8123 Reader Contactless Floor Limit.
Indicates the card data input, CVM, and security capabilities of the terminal.
This tag (9F33) only configures bytes 1 and 3 of the terminal capabilities. Byte 2 of the terminal capabilities actually comes from DF28 or DF29 during the transaction. Refer to tags DF28 and DF29 for details. Note: Byte 1 of 9F33 is the same as DF8117 Card Data Input Capability defined in PayPass 3.0.2 and Byte 3 of 9F33 is the same as DF811F Security Capability.
Indicates the environment of the terminal, its communications capability, and its operational
b 2 00 02
n3 2 00 00
b 4 00 00 17 70
b 3 00 00 00
n2 1 00
9F40
9F6D
Indicates the data input and output capabilities of
PayPass MagStripe (Value = 00 01)
71
b 5 00 00 00 00 00
b 2 00 01
NEO Interface Developers Guide
DF28 Byte
PayPass Tag Equivalent
2
DF8119
DF29 Byte
PayPass Tag Equivalent
2
DF8118
Default UDOL
Maximum Lifetime of Torn Transaction Record
Maximum Number of Torn Transaction Records
MagStripe CVM Required Capability Reader Contactless Transaction Limit, No On-
that will be used.
Hard-Coded
Tag Description Format Length
Default Value in
PayPass Kernel
Terminal Capabilities – No CVM Required M/Chip v2.0 element indicating the Terminal Capabilities to be used when Amount, Authorized < CVM Required Limit. Formatted as Terminal
DF28
Capabilities (tag ‘9F 33’)
Only byte 2 of this tag is actually used. The other terminal capabilities are configured using tag 9F33.
b 3 00 00 E8
Terminal Capabilities – CVM Required M/Chip v2.0 element indicating the Terminal Capabilities to be used when Amount, Authorized >= CVM Required Limit. Formatted as
DF29
Terminal Capabilities (tag ‘9F 33’)
Only byte 2 of this tag is actually used. The other terminal capabilities are configured using tag 9F33.
b 3 00 00 E8
DF811A
DF811C
DF811D
DF811E
DF8124
Used for calculating the CCC if no UDOL is present in the card. The default is the tag and length of the “Unpredictable Number”.
This is the maximum time a torn record can exist in the log before it expires. It is expressed in seconds. While the transaction log is global to the reader, the MasterCard application is the only application that supports it.
Due to storage limitations, the maximum number of records that may be configured is 2. There may be 0, 1, or 2 torn transaction records configured. If 0 records are configured, the torn transaction recovery facility is effectively disabled. While the transaction log is global to the reader, the MasterCard application is the only application that supports it.
Indicates the CVM capability of the Terminal/Reader in the case of a mag-stripe mode transaction when the Amount, Authorized
(Numeric) is greater than the Reader CVM Required Limit.
Device CVM When there is no On-Device CVM available (e.g. with a phone), then this is the transaction limit
b 3 9F 6A 04
b 2 01 2C
b 1 00
b 1 F0
n12 6 00 00 00 00 00 00
72
NEO Interface Developers Guide
Reader Contactless Transaction Limit, On-Device
be used.
MagStripe No CVM Required Capability
Required Limit.
Message Hold Time
RF Hold Time Value
Phone Message Table
‘000000’.
CVM Required Limit
Hard-Coded
Tag Description Format Length
Default Value in
PayPass Kernel
CVM
DF8125
When On-Device CVM is available (e.g. with a
n12 6 00 00 00 00 00 00
phone) then this is the transaction limit that will
Indicates the CVM capability of the
DF812C
Terminal/Reader in the case of a mag-stripe mode transaction when the Amount, Authorized
b 1 F0
(Numeric) is less than or equal to the Reader CVM
Indicates the default delay for the processing of the next MSG signal. The Message Hold Time is an
DF812D
integer in units of 100ms.
n6 3 00 00 13 While this value is configurable, it is not used in practice in the reader. It is a MasterCard requirement.
Indicates the time that the field is to be turned off after the transaction is completed if requested
DF8130
to do so by the cardholder device. The Hold Time Value is in units of 100ms.
b 1 0D
While this value is configurable, it is not used in practice in the reader. It is a MasterCard requirement.
DF8131
[1]
FFF5
Defines for the selected AID the message and status identifiers as a function of the POS Cardholder Interaction Information. The Phone Message Table is a variable length list with 8-byte entries. Each entry in the Phone Message Table contains the following fields: PCII Mask (3 bytes, binary) PCII Value (3 bytes, binary) Message Identifier (1 byte, binary) Status (1 byte, binary) The last entry in the phone message table must always have the PCII Mask and PCII Value set to
Indicates the CVM required limit in the terminal for the associated AIDs.
This is equivalent to MasterCard tag DF8126.
See next table
‘Phone Message
b Var.
Table Hard-
Coded Default
Value in Kernel’.
n12 6 00 00 00 00 00 00
73
NEO Interface Developers Guide
PayPass Profile
Terminal Action Code (Online)
Terminal Action Code (Default)
Terminal Action Code (Denial)
Hard-Coded
Tag Description Format Length
Default Value in
PayPass Kernel
Information in this tag is equivalent to PayPass tag DF811B, although it is formatted slightly differently:
FFFC
[1]
87654321
-------X
------X-
-----X--
XXXXX---
Bit Meaning Values
MagStripe Only
M/Chip Only
On Device CVM
RFU
0 = normal transaction 1 = MagStripe only transactions allowed
0 = normal transaction 1 = M/Chip only Transactions allowed
0 = not supported 1 = supported
b 1 00
Reflect the acquirer-selected action to be taken
[1]
FFFD
upon analysis of the TVR.
This is equivalent to MasterCard tag DF8122.
b 5 CC 00 00 00 00
Reflect the acquirer-selected action to be taken
[1]
FFFE
FFFF
[1]
These objects use proprietary tags. The use of these tags should be restricted to the serial interface. Once the Reader has returned an OK Response Frame, the Terminal application should dispose of the tags to avoid conflicts with other proprietary TLVs.
upon analysis of the TVR.
This is equivalent to MasterCard tag DF8120.
Reflect the acquirer-selected action to be taken
[1]
upon analysis of the TVR.
This is equivalent to MasterCard tag DF8121.
b 5 CC 00 00 00 00
b 5 00 00 00 00 00
Table 23: Phone Message Table – Hard-Coded Default Value in Kernel
PCI Mask PCII Value Message Identifier Status
000800 000800
000400 000400
20 (SEE PHONE) 00 (NOT READY)
20 (SEE PHONE) 00 (NOT READY)
000100 000100 20 (SEE PHONE) 00 (NOT READY)
000200 000200
000000 000000
20 (SEE PHONE) 00 (NOT READY)
20 (SEE PHONE) 00 (NOT READY)
74
NEO Interface Developers Guide
Transaction Currency Code
American Express Group Configuration TLVs
American Express use Group 2 as default Group. The Set Configurable Group command should be used to set the TLVs in this section. The following table in this section shows TLVs in American Express Configuration Group.
Kiosk III rule for American Express Configuration Group:
If a TLV value is absent in American Express Group, reader will use the value in Group 0, except 3 TLVs below:
For Transaction limit(FFF1), CVM limit(FFF5), Floor limit(9F1B): if user-defined TLV Group is used, user should set these above TLVs in the user-defined Group. If not set, these above TLVs will be regard as not present.
Vendi rule for American Express Configuration Group:
The following American Express Group TLVs should not be configured for Group 0. The default American Express group is Group 2. That is, when the reader is configured from the factory, the American Express System AIDs will be associated with Group 2.
If there are tags in a American Express group that should be set, they must all be set explicitly, since the absent values are not filled in with Group 0 or Group 1 defaults.
American Express Group tags are instantiated a little differently than other groups. Group 0 is never used as a default. Refer to the section on American Express Default Group for an explanation of how the tag database is instantiated for American Express.
Table 24: American Express Default Group 2 Configuration TLVs
Tag Description Format Length
Indicates the currency code of the transaction according to ISO 4217.
n3 2 08 40
Note: make sure you use the same
5F2A
Transaction Currency Code for all configurable AIDs. (default = US Dollars)
Note: Kiosk III default value is “09 01”
Default Value in
Group 2
75
NEO Interface Developers Guide
Transaction Date (YYMMDD)
FF FF FF
Transaction Type
n12
6
Application Version Number
b 2 00 01
Terminal Country Code
n3 2 08 40
Terminal Floor Limit
b 4 00 00 17 70
Transaction Time (HHMMSS)
n6 3 FF FF FF
Tag Description Format Length
n6 3
This value is used to set the Real Time Clock. Note: The terminal/POS application should perform range checking
9A
on this value to ensure it is within acceptable limits.
Note: Kiosk III default value is “not present”
Indicates the type of financial transaction,
9C
9F03 Amount Other (Numeric)
9F09
represented by the first two digits of ISO 8583:1987 Processing Code. (default = purchase goods or services)
PayPass M/Chip (Value = 00 02) Amex (Value = 00 01)
n2 1 00
Note: Kiosk III default value is 00 02
Default Value in
Group 2
00 00 00 00 00
00
9F1A
9F1B
9F21
Indicates the country code of the terminal, represented according to ISO 3166. Default = US
Note: Kiosk III default value is “01 58”
ndicates the floor limit in the terminal for the AID(s) associated with this group.
Note: The value is the decimal limit amount given in binary represented in Hex in the command/response. (60 limit = 6000 decimal = 1770h).
This value is used to set the Real Time Clock.
Note: The terminal/POS application should perform range checking on this value to ensure it is within acceptable limits.
Note: Kiosk III default value is not present”
76
NEO Interface Developers Guide
Terminal Capabilities
b 3 00 08 E8
Terminal Type
Environment
Operational Control Provided By:
Financial Institution
Merchant
Cardholder
Attended
Offline with
Offline only
13
23
Unattended
ine with
n2
1
25
Terminal Transaction Capabilities
b 4 D8 E0 00 00
ExpressPay Terminal Capabilities
UN range
Tag Description Format Length
Indicates the card data input, CVM, and security capabilities of the terminal Default =
• No CVM required
9F33
• SDA supported
• DDA supported
• Card Capture
• CDA supported
Note: Kiosk III default value is “00 00 A8”
Indicates the environment of the terminal, its communications capability, and its operational control
9F35
Online only
online capability
11 12
21 22
Default Value in
Group 2
9F6E
DF51
FFEE1C
Online only Offl online capability Offline only
14 15
16
24 25
26
34 35
36
Note: Kiosk III default value is 22
Note: Kiosk III default value is “not present”
Used to create the ExpressPay Terminal Capabilities TLV, 9F6D for Amex ExpressPay applications.
Note: Kiosk III default value is 80
Note: Kiosk III default value is “not present”
b 1 C0
b 4 00 00 00 3C
77
NEO Interface Developers Guide
Terminal Contactless Transaction Limit
n12 6 00 00 00 01 50
CVM Required Limit
n12 6 00 00 00 00 50
Terminal Action Code (Online)
b 5 00 00 00 00 00
Terminal Action Code (Default)
b 5 00 00 00 00 00
Terminal Action Code (Denial)
b 5 00 00 00 00 00
Tag Description Format Length
Indicates the terminal limit for this AID for Contactless transactions.
FFF1[1]
Note: Kiosk III default value is 00 00 00 01 00 00
Indicates the CVM required limit in the terminal
for the associated AIDs.
FFF5[1]
Note: Kiosk III default value is 00 00 00 00 80 00
Reflect the acquirer-selected action to be taken upon analysis of the TVR.
FFFD[1]
Note: Kiosk III default value is F8 50 AC F8 00
Reflect the acquirer-selected action to be taken upon analysis of the TVR.
FFFE[1]
Note: KioskIII default value is F8 50 AC A0 00
Default Value in
Group 2
00
00
FFFF[1]
[1]
These objects use proprietary tags. The use of these tags should be restricted to the serial interface. Once the Reader has returned an OK Response Frame, the Terminal application should dispose of the tags to avoid conflicts with other proprietary TLVs.
[2]
These objects only work on the ViVOpay graphic reader.
[3]
These objects only work on the Vendi
Reflect the acquirer-selected action to be taken upon analysis of the TVR.
AID Configuration Tags
In this table, the “Usage” column indicates when the tag is used. In some cases, the use may depend on whether a system AID or a user AID is being configured. The possible usages are:
MAND – this is a mandatory tag when configuring an AID OPT – this is an optional tag when configuring an AID NEVER – this tag should never be used for configuring this type of AID (e.g.
“System”)
DEP – this tag is Mandatory depending on how another tag is configured.
For default values of the AID configuration TLVs for each System AID, refer to the System AID Default Configuration TLVs table in the appendix.
78
NEO Interface Developers Guide
Automatically switch to Pass-Through Mode
01h = enabled
Identifies the payment system to which the
Tells the reader to allow partial selection
1 (01h) – MasterCard MagStripe Application
Enables or disables selection features. For
87654321
Selection Feature
Deprecated / RFU
Extended Selection
Cardholder Confirmation Not
API (application priority Invalid AID Allowed
Duplicate AID Allowed
Enable Kernel ID
RFU
Table 25: AID Configuration TLVs
Data
Tag
Object
Usage Description
Name
Application
9F06
DF7C Auto-Switch OPT
FFE0
FFE1
FFE2
[1]
[1]
[1]
Identifier (AID)
Registered Application Provider Identifier (RID)
Partial Selection Allowed
Application Flow
MAND
Sys = NEVER User = OPT
OPT (Visa MAND)
Sys = NEVER
User = MAND
Identifies the application as described in ISO/IEC 7816-5. This must be the 2nd TLV in the data field.
when PICC is unknown. 00h = disabled (default)
Certification Authority Public Key is associated. If this Tag is not provided the first five bytes from the AID are used.
during the initial select process. 01 = Allowed, 00 = Disabled Note: Required for Visa application flow, this value is set to 01 Allowed and cannot be changed.
2 (02h) – American Express Application 3 (03h) – MasterCard PayPass Application 6 (06h) - Visa Application. 13 (0Dh) - Discover Application 14 (0Eh) – JCB QuicPay Application 15 (0Fh) – STAR Application 21 (15h) –Interac Application 23 (17h) –SmartTap
Forma
t
b 5 – 16
b 1
b 5
b 1
b 1
Length
FFE3
Selection Features
79
OPT
M/Chip 3.0, this value will default to 74h. Please refer to the Selection Features section for a detailed description of this tag.
-------x
------x-
Supported
-----x--
Supported
----x---
indicator) required
---x----
--x-----
-x-----­x-------
b 1
NEO Interface Developers Guide
The TLV Group number that contains the
This value must be <= 16.
1 = This AID will not be added to
This list defines 3-byte triplets, where the
Byte
Description
1- Kernel ID
Kernel ID as defined by
2-
Supported transaction 3- Group
The group that should
ID.
characteristics for this AID This must be the 1st TLV in Data Field.
For MasterCard PayPass and any applications that use the Combined
FFE4
[1]
TLV Group Number
MAND
Selection Feature, this tag represents the fallback group if the TLV FFE9
n2 1
transaction type list is empty, or the kernel ID is disabled (see tag FFE3).
For MasterCard PayPass, this tag may NOT be Group 0
.
For Visa application flow, this value is set
FFE5
[1]
Maximum AID Length
DEP
to 16 and cannot be changed.
Note: This tag must be included if the
b 1
FFE1 Partial Select TLV is included.
[1]
FFE6
AID Disabled OPT
FFE8
FFE9
Exclude from
Processing
Transaction
Type List
Used to disable a System AID (has no effect on a User AID). 80h = disabled and 00h =
b 1
enabled
This byte is formatted as follows:
Meaning (0 = disable, 1 = enable)
Exclude from PPSE processing.
the candidate list during PPSE. Exclude from Trial and Error
processing. 1 = This AID may not be added to the candidate list during Trial and Error (sometime referred to as “List of AIDs” processing.
RFU
b 1
OPT
87654321
-------x
------x-
xxxxxx--
Kernel ID and transaction type may be used to identify the group that will be used to instantiate the dataset for the transaction. A maximum of 8 entries may appear in this list. The format of each triplet entry is as follows:
OPT
Transaction Type
Number
EMV first byte only.
types may be: Payment(00), Cash(01), Cashback(09) or Refund(20)
be used for this transaction and Kernel
b
Variable
<= 24
Group 0 may not be used in this list.
80
NEO Interface Developers Guide
This Kernel Identifier will be used if the
Card Application
Default KID
MasterCard
2
Visa
3
American Express
4
JCB Quickpay
5
All others
0
DF810C.
Tells the reader to allow Terminal AID List
card does not supply a valid Kernel ID (9F2A). If this tag is not provided, then default kernel identifiers will be used depending on the application:
Configurable
FFEA
Kernel
Identifier
OPT
b 1
This tag is equivalent to MasterCard tag
DFEF2C
Terminal AID
List
OPT
support during the initial select process. 01 = Allowed, 00 = Disabled
b 1
Setting the FFE6 tag may disable an AID. However, the preferred method to disable an AID is to issue a “Delete Configurable AID” command (04-04). For a system AID, the command will set the disable bit in FFE6.
The following table lists the System AIDs and the default values for their TLVs
Table 26: System AID Default Configuration TLVs
Name Tag Length
Group
AID
Partial Selection
Application Flow
Max AID Length
Group
AID
Partial Selection
Application Flow
Max AID Length
Selection Features
Transaction Type List
Kernel ID
FF E4
9F 06
FF E1
FF E2
FF E5
FF E4
9F 06
FF E1
FF E2
FF E5
FF E3
FF E9
FF EA
(Hex)
01
06
01
01
01
01
07
01
01
01
01
0C
01
Value (Hex) Card Application
02
A0 00 00 00 25 01
01
02
10
01
A0 00 00 00 04 10 10
01
03
10
74
02 00 01
02 20 01
02 01 01
02 09 01
02
American Express
MasterCard PayPass Application
81
NEO Interface Developers Guide
Name Tag Length
(Hex)
Group
AID
Partial Selection
Application Flow
Max AID Length
Selection Features
Group
AID
Partial Selection
Application Flow
Max AID Length
Selection Features
Transaction Type List
Kernel ID
Group
AID
Application Flow
Partial Selection
Max AID Length
Selection Features
Group
AID
Application Flow
Partial Selection
Max AID Length
Selection Features
Group
AID
Application Flow
Partial Selection
Max AID Length
Selection Features
FF E4
9F 06
FF E1
FF E2
FF E5
FF E3
FF E4
9F 06
FF E1
FF E2
FF E5
FF E3
FF E9
FF EA
FF E4
9F 06
FF E2
FF E1
FF E5
FF E3
FF E4
9F 06
FF E2
FF E1
FF E5
FF E3
FF E4
9F 06
FF E2
FF E1
FF E5
FF E3
01
07
01
01
01
01
01
07
01
01
01
01
0C
01
01
07
01
01
01
01
01
07
01
01
01
01
01
07
01
01
01
01
Value (Hex) Card Application
00
A0 00 00 00 65 90 01
01
0E
08
14
Note: Vendi default value,
FF E6 = 80
01
A0 00 00 00 04 30 60
01
03
10
74
02 00 01
02 20 01
02 01 01
02 09 01
02
00
A0 00 00 00 03 10 10
06
01
10
14
00
A0 00 00 00 03 20 10
06
01
10
14
00
A0 00 00 00 03 30 10
06
01
10
14
JCB (QUICPay) Application
MasterCard PayPass Application
Visa Application
Visa Application
(Visa Electron)
Visa Application
(Visa Interlink)
82
NEO Interface Developers Guide
Name Tag Length
(Hex)
Group
AID
Application Flow
Partial Selection
Max AID Length
Selection Features
Group
AID
Application Flow
Partial Selection
Max AID Length
Selection Features
Group
AID
Application Flow
Partial Selection
Max AID Length
Selection Features
FF E4
9F 06
FF E2
FF E1
FF E5
FF E3
FF E4
9F 06
FF E2
FF E1
FF E5
FF E3
FF E4
9F 06
FF E2
FF E1
FF E5
FF E3
01
07
01
01
01
01
01
07
01
01
01
01
01
0A
01
01
01
01
Value (Hex) Card Application
00
A0 00 00 00 03 80 10
06
01
10
14
00
A0 00 00 00 65 10 10
06
01
10
14
Note: Vendi default value,
FF E2 = FF
00
A0 00 00 00 02 30 60 D1 58 00
10
01
10
74
Visa Application
(Visa Plus)
Visa Application
(J/Speedy)
MXI Application
Group
AID
Application Flow
Partial Selection
Max AID Length
Group
AID
Application Flow
Partial Selection
Max AID Length
Group
AID
Partial selection
Application Flow
Max AID Length
Selection Features
FF E4
9F 06
FF E2
FF E1
FF E5
FF E4
9F 06
FF E2
FF E1
FF E5
FF E4
9F 06
FF E1
FF E2
FF E5
FF E3
01
07
01
01
01
01
07
01
01
01
01
07
01
01
01
01
Note: Vendi default value,
FF E2 = FF
00
A0 00 00 03 24 10 10
0D
01
10
00
A0 00 00 01 52 30 10
0D
01
10
00
A0 00 00 04 17 01 01
01
0F
08
08
Discover (ZIP)Application
Discover (D-PAS) Application
STAR Application
83
NEO Interface Developers Guide
Name Tag Length
(Hex)
Group
AID
Partial selection
Application Flow
Max AID Length
Group
AID
Partial selection
Application Flow
Max AID Length
FF E4
9F 06
FF E1
FF E2
FF E5
FF E4
9F 06
FF E1
FF E2
FF E5
01
07
01
01
01
01
07
01
01
01
Value (Hex) Card Application
00
A0 00 00 02 77 10 10
01
15
10
Note: Vendi default value,
FF E2 = 15
00
A0 00 00 04 76 D0 00
01
17
10
Interac Application
SmartTap
84
NEO Interface Developers Guide
87654321
Feature Name
Description
Deprecated/RFU
Reserved for Future use.
Extended Selection
Allow the Extended Selection value optionally provided by the
Cardholder Confirmation
0 = Cardholder Confirmation is allowed for this AID and if API bit API Required
0 = the API is not required for this AID and the application may
added to the candidate list if the API is missing.
Invalid AID Allowed
0 = any invalid AID will cause this AID to terminate the
Duplicate AID Allowed
0 = a duplicate AID, whether extended or not, is not allowed and
may be added to the candidate list.
Enable Kernel ID
1 = allow the evaluation of the Kernel ID. 0 = if a Kernel ID is provided by the card it is ignored.
RFU
Reserved for Future Use.
6.0 Card Application Selection
Combined Selection
The selection of a card application may be based on a Kernel ID, transaction type and other requirements. The Selection Features tag directs the flow through the selection logic in the firmware. In addition, the selection of an AID may be based on a list of transaction types that it supports. Depending on the transaction type, the AID may be mapped to a different Configurable Group. This entire process is referred to as “Combined Selection”.
Selection Features (FFE3)
The following table defines each of the bits in the Selection Features tag (FFE3) and describes how they control the logic flow:
-------x
------x-
-----x--
----x---
---x----
--x-----
Supported
Not Supported
card in PPSE to be added to the AID for final selection. The resulting AID must be less than or equal to 16 bytes or the candidate will not be added to the candidate list.
0 = the Extended Selection value, if provided by the card, will not be appended to the AID value for final select. 1 = the Extended Selection value, if provided by the card, will be appended to the AID value, if it fits (AID + ES <= 16), for use in final select.
8 (Cardholder Confirmation) is true, the application will not be added to the candidate list. 1 = Customer Cardholder Confirmation is not allowed for this AID, API bit 8 (Cardholder Confirmation) will be ignored.
be added to the candidate list if the API is missing. 1 = the API is required for this AID; the application will not be
transaction. 1 = any invalid AID will be ignored as related to this AID.
will not be added to the candidate list. 1 = a duplicate AID, whether extended or not, is allowed and
-x------
x-------
85
NEO Interface Developers Guide
Value
Description
Partial selection is
0 = This AID does not participate in partial selection
RFU
Reserved for Future Use
87654321
Process to be Excluded
Description
Exclude from PPSE
0 = This AID may be added to the candidate list during PPSE.
Exclude from Trial &
0 = This AID may be added to the candidate list during T&E. RFU
Reserved for Future Use
Refer to the System AID Defaults for the configuration of Selection features for each of the AIDs. If no Selection Features tag (FFE3) is specified, then no selection features are specified.
Partial Selection (FFE1)
For some applications, an AID on the card may be longer than an AID configured in the reader. If partial selection is allowed, the AID will be considered a match if all of the AID configured in the reader matches the first portion of an AID in the card.
Table 1: Partial Selection (FFE1)
87654321
-------x
allowed
xxxxxxx-
1 = This AID will participate in partial selection (default)
For M/Chip 3.0, this value should be set to “allowed”
Historically, Partial Selection has been a separate tag. However, it is an integral part of the selection process, and may be used in conjunction with combined selection features.
AID Participation in Selection Processes (FFE8)
In some cases, applications/AIDs may not be able to participate in some of the selection processes. For example, some cards/applications do not support PPSE. The following table describes the bits in tag FFE8 that may be used to exclude an AID from selection processes.
Table 2: Exclude from Processing (FFE8)
-------x
Processing
------x-
Error Processing
xxxxxx--
1 = This AID will not be added to the candidate list during PPSE.
1 = This AID will not be added to the candidate list during T&E.
“Trial & Error” is sometimes referred to as “List of AIDs”. It is a process by which the reader will attempt to select an AID by going through its list, hoping for a successful selection.
For M/Chip 3.0, tag FFE8 should be set to 0x00.
86
NEO Interface Developers Guide
87654321
Value
Description
Terminal AID List is
0 = Terminal will not send out terminal AID data
RFU
Reserved for Future Use
Terminal AID List (DFEF2C)
The Terminal AID List Tag DFEF2C is associated with each Terminal AID which set by the 04-02 (Load AID) command. This tag can control which Terminal AID should be sent to the card, if the Select AID Command (with PPSE) get “Select AID Failed”(response SW1/SW2 not 9000 or format error), or the AID list returned by the card cannot matched by any Terminal AID. One by one, the terminal will check each Tag DFEF2C associated with the Terminal AID, if the Tag DFEF2C value is ‘01’, the terminal will send out that Terminal AID data to the card, contactless transaction can be continued if any Terminal AID matched by the card; if the Tag DFEF2C value is ‘00’, that terminal AID data will not be sent.
Table 3: Terminal AID List (DFEF2C)
-------x
allowed
xxxxxxx-
1 = Terminal will send out terminal AID data
Note: The Terminal AIDs can be modified by 04-02 Load AID command.
87
NEO Interface Developers Guide
7.0 Card Application Specific Behavior
This section contains information specific to a particular card application.
MasterCard PayPass M/Chip
The implementation of MasterCard M/Chip 3.0 is the EMV mode transaction flow. This includes support for Mag Stripe, but does not include Data Exchange functionality. The M/Chip 3.0 implementation incorporates new functionality for:
Balance reading before and after GenAC Recovery of torn transactions Support for Certificate Revocation List functions STOP command processing Support for defining proprietary tags that are not otherwise handled or
defined in the tag database.
PayPass Default Group
The PayPass implementation required a new data model in which data objects could be “not present” or “not defined”. As a result, the historical method of using Group 0 to define default tags could not be used.
Group 0 is no longer used by the PayPass application. The default group for PayPass applications is Group 1.
In addition to the PayPass default group, the PayPass Kernel also keeps hard­coded values for a sub-set of the group parameters that are essential for a transaction. If one of these data items is not available via Activate Transaction or via Get Configurable Group, then the kernel uses its own hard-coded value for the ‘Not Present’ data item.
Balance Read Function
The balance may be read from cards that support balance reading. The balance may be read before or after the Generate AC process. In order to enable balance reading, the tags for balance read must be defined in the tag database. This may be accomplished through the Set Configurable Group command or by including the balance TLVs (DF8104, DF8105) in the Activate command.
For example, if DF8104 is included in the Activate Command, and the card supports balance reading, then the balance read prior to Generate AC will be returned in the DF8104 TLV in the Activate response.
88
Loading...