MagTek 99875629 User Manual

DynaPro Mini
PIN Encryption Device
Programmer’s Reference (Commands)
Manual Part Number:
99875629-2.01
REGISTERED TO ISO 9001:2008
MagTek I 1710 Apollo Court I Seal Beach, CA 90740 I Phone: (562) 546-6400 I Technical Support: (888) 624-8350
www.magtek.com
Copyright © 2006 - 2014 MagTek, Inc.
Rev Number
Date
Notes
1.01
Feb 18, 2014
Initial Release based on 99200078 7.01
2.01
July 25, 2014
Update based on 99200078-8.01: Update usage tables for 0x1A, 0xA1, 0xA2; apply consistent captions to tables and figures; add kernel IDs; clarify HID Usages; add 0x1F, 0x2E usages in report descriptor and elsewhere; add BLE properties; misc. clarifications and accuracy fixes; add Report 0x06 bitmap option, Report 0x1F, Report 0x2E
Printed in the United States of America
Information in this publication is subject to change without notice and may contain technical inaccuracies or graphical discrepancies. Changes or improvements made to this product will be updated in the next publication release. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of MagTek, Inc.
MagTek® is a registered trademark of MagTek, Inc. MagnePrint® is a registered trademark of MagTek, Inc.
Magensa™ is a trademark of MagTek, Inc. MagneSafe™ is a trademark of MagTek, Inc. DynaPro™ and DynaPro Mini™ are trademarks of MagTek, Inc.
Bluetooth® is a registered trademark of Bluetooth SIG. iPhone®, iPod®, iPad®, and Mac® are registered trademarks of Apple Inc., registered in the U.S. and other countries. App StoreSM is a service mark of Apple Inc., registered in the U.S. and other countries. IOS is a trademark or registered trademark of Cisco in the U.S. and other countries and is used by Apple Inc. under license.
Microsoft® and Windows® are registered trademarks of Microsoft Corporation. All other system names and product names are the property of their respective owners.
Table 0.1 - Revisions
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 2
LIMITED WARRANTY
MagTek warrants that the products sold pursuant to this Agreement will perform in accordance with MagTek’s published specifications. This warranty shall be provided only for a period of one year from the date of the shipment of the product from MagTek (the “Warranty Period”). This warranty shall apply only to the “Buyer” (the original purchaser, unless that entity resells the product as authorized by MagTek, in which event this warranty shall apply only to the first repurchaser).
During the Warranty Period, should this product fail to conform to MagTek’s specifications, MagTek will, at its option, repair or replace this product at no additional charge except as set forth below. Repair parts and replacement products will be furnished on an exchange basis and will be either reconditioned or new. All replaced parts and products become the property of MagTek. This limited warranty does not include service to repair damage to the product resulting from accident, disaster, unreasonable use, misuse, abuse, negligence, or modification of the product not authorized by MagTek. MagTek reserves the right to examine the alleged defective goods to determine whether the warranty is applicable. Without limiting the generality of the foregoing, MagTek specifically disclaims any liability or warranty for goods resold in other than MagTek’s original packages, and for goods modified, altered, or treated without authorization by MagTek.
Service may be obtained by delivering the product during the warranty period to MagTek (1710 Apollo Court, Seal Beach, CA 90740). If this product is delivered by mail or by an equivalent shipping carrier, the customer agrees to insure the product or assume the risk of loss or damage in transit, to prepay shipping charges to the warranty service location, and to use the original shipping container or equivalent. MagTek will return the product, prepaid, via a three (3) day shipping service. A Return Material Authorization (“RMA”) number must accompany all returns. Buyers may obtain an RMA number by contacting MagTek Support Services at (888) 624-8350.
Each buyer understands that this MagTek product is offered as is. MagTek makes no other warranty, express or implied, and MagTek disclaims any warranty of any other kind, including any warranty of merchantability or fitness for a particular purpose.
If this product does not conform to MagTek’s specifications, the sole remedy shall be repair or replacement as provided above. MagTek’s liability, if any, shall in no event exceed the total amount paid to MagTek under this agreement. In no event will MagTek be liable to the buyer for any damages, including any lost profits, lost savings, or other incidental or consequential damages arising out of the use of, or inability to use, such product, even if MagTek has been advised of the possibility of such damages, or for any claim by any other party.
LIMITATION ON LIABILITY
Except as provided in the sections relating to MagTek’s Limited Warranty, MagTek’s liability under this agreement is limited to the contract price of this product.
MagTek makes no other warranties with respect to the product, expressed or implied, except as may be stated in this agreement, and MagTek disclaims any implied warranty, including without limitation any implied warranty of merchantability or fitness for a particular purpose.
MagTek shall not be liable for contingent, incidental, or consequential damages to persons or property. MagTek further limits its liability of any kind with respect to the product, including any negligence on its part, to the contract price for the goods.
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 3
MagTek’s sole liability and buyer’s exclusive remedies are stated in this section and in the section relating to MagTek’s Limited Warranty.
FCC WARNING STATEMENT
This equipment has been tested and was found to comply with the limits for a Class B digital device pursuant to Part 15 of FCC Rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a residential environment. This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the instruction manual, may cause harmful interference with radio communications. However, there is no guarantee that interference will not occur in a particular installation.
FCC COMPLIANCE STATEMENT
This device complies with Part 15 of the FCC Rules. Operation of this device is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.
CANADIAN DOC STATEMENT
This digital apparatus does not exceed the Class B limits for radio noise from digital apparatus set out in the Radio Interference Regulations of the Canadian Department of Communications.
Le présent appareil numérique n’émet pas de bruits radioélectriques dépassant les limites applicables aux appareils numériques de la classe B prescrites dans le Réglement sur le brouillage radioélectrique édicté par le ministère des Communications du Canada.
This Class B digital apparatus complies with Canadian ICES-003.
Cet appareil numérique de la classe B est conformé à la norme NMB-003 du Canada.
CE STANDARDS
Testing for compliance with CE requirements was performed by an independent laboratory. The unit under test was found compliant with standards established for Class B devices.
UL/CSA
This product is recognized per Underwriter Laboratories and Canadian Underwriter Laboratories 1950.
ROHS STATEMENT
When ordered as RoHS compliant, this product meets the Electrical and Electronic Equipment (EEE) Reduction of Hazardous Substances (RoHS) European Directive 2002/95/EC. The marking is clearly
recognizable, either as written words like “Pb-free,” “lead-free,” or as another clear symbol ( ).
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 4
0 - Table of Contents

Table of Contents

LIMITED WARRANTY .......................................................................................................................... 3
FCC WARNING STATEMENT .............................................................................................................. 4
FCC COMPLIANCE STATEMENT ........................................................................................................ 4
CANADIAN DOC STATEMENT ............................................................................................................ 4
CE STANDARDS .................................................................................................................................. 4
UL/CSA ................................................................................................................................................. 4
RoHS STATEMENT .............................................................................................................................. 4
Table of Contents ............................................................................................................................... 5
1 Introduction ............................................................................................................................... 10
1.1 About This Document ....................................................................................................... 10
1.2 Nomenclature .................................................................................................................... 10
1.3 About Connection Types .................................................................................................. 10
1.4 About Device Features ..................................................................................................... 10
1.5 About APIs .......................................................................................................................... 11
2 Connection Types ...................................................................................................................... 11
2.1 How to Use USB Connections .......................................................................................... 11
2.1.1 About HID Usages ...................................................................................................... 12
2.1.1.1 About Reports .................................................................................................... 12
2.1.1.2 About the Report Descriptor ............................................................................ 12
2.2 How to Use Apple iOS UART Connections ..................................................................... 20
2.3 How to Use BLE Connections .......................................................................................... 21
3 Command Set ........................................................................................................................... 24
3.1 About Big Block Data Mode ............................................................................................ 24
3.2 About SRED / Non-SRED Firmware ............................................................................... 24
3.3 About Commands Tagged As “MAC” ............................................................................. 25
3.3.1 CA Public Key Data and Terminal and Payment Brand Data (TLV format) ...... 25
3.3.2 ARQC Requests (Smart Cards) ................................................................................ 25
3.3.2.1 Non-SRED ARQC request .................................................................................. 25
3.3.2.2 SRED ARQC Request ......................................................................................... 26
3.3.2.3 ARQC Response (Report 0xA4 – Acquirer Response) ................................. 27
3.3.3 Batch Data .................................................................................................................. 27
3.3.3.1 Non-SRED Batch Data ....................................................................................... 27
3.3.3.2 SRED Batch Data ............................................................................................... 28
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 5
0 - Table of Contents
3.4 General Feature Reports .................................................................................................. 29
3.4.1 Report 0x01 – Response ACK ................................................................................. 29
3.4.2 Report 0x02 – End Session ..................................................................................... 29
3.4.3 Report 0x03 – Request Swipe Card ....................................................................... 30
3.4.4 Report 0x04 – Request PIN Entry ........................................................................... 31
3.4.5 Report 0x05 – Cancel Command ........................................................................... 33
3.4.6 Report 0x06 – Request User Selection.................................................................. 33
3.4.7 Report 0x07 – Display Message ............................................................................. 34
3.4.8 Report 0x08 – Request Device Status ................................................................... 35
3.4.9 Report 0x09 – Set Device Configuration ............................................................... 35
3.4.10 Report 0x09 – Get Device Configuration ........................................................... 37
3.4.11 Report 0x0A – Request MSR Data ..................................................................... 38
3.4.12 Report 0x0B – Get Challenge .............................................................................. 38
3.4.13 Report 0x0D – Send Session Data - Amount .................................................... 39
3.4.14 Report 0x0D – Send Session Data - PAN .......................................................... 40
3.4.15 Report 0x0E – Get Information ........................................................................... 40
3.4.16 Report 0x0F – Login/Authenticate ..................................................................... 43
3.4.17 Report 0x0F – Logout ........................................................................................... 43
3.4.18 Report 0x10 – Send Big Block Data to Device ................................................. 43
3.4.19 Report 0x11 – Request Manual Card Entry ...................................................... 45
3.4.20 Report 0x14 – Request User Data Entry............................................................ 46
3.4.21 Report 0x1A – Request Device Information ..................................................... 47
3.4.22 Report 0x1C – Set/Get BLE Power Configuration (BLE Only) ......................... 50
3.4.23 Report 0x1D – Set BLE Module Control Data (BLE Only) ................................ 50
3.4.24 Report 0x1E – Set iAP Protocol Info (30-pin Only) ........................................... 51
3.4.25 Report 0x1E – Get iAP Protocol Info (30-pin Only) .......................................... 51
3.4.26 Report 0x1F – Request Clear Text User Data Entry ......................................... 51
3.4.27 Report 0x30 – Set / Get KSN .............................................................................. 52
3.4.28 Report 0x31 – Set KSN Encrypted Data ............................................................ 53
3.4.29 Report 0x32 – Set BIN Table Data (MAC) .......................................................... 54
3.4.30 Report 0x32 – Get BIN Table Data ..................................................................... 54
3.4.31 Report 0xFF – Device Reset ................................................................................ 55
3.5 General Input Reports ...................................................................................................... 55
3.5.1 Report 0x20 – Device State Report ....................................................................... 55
3.5.2 Report 0x21 – User Data Entry Response Report................................................ 56
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 6
0 - Table of Contents
3.5.3 Report 0x22 – Card Status Report ......................................................................... 56
3.5.4 Report 0x23 – Card Data Report ............................................................................ 57
3.5.5 Report 0x24 – PIN Response Report ..................................................................... 58
3.5.6 Report 0x25 – User Selection Response Report .................................................. 59
3.5.7 Report 0x27 – Display Message Done Report ..................................................... 59
3.5.8 Report 0x29 – Send Big Block Data to Host ......................................................... 59
3.5.8.1 Big Block Data for Authorization Request (ARQC) ....................................... 60
3.5.9 Report 0x2A – Delayed Response ACK ................................................................. 61
3.5.10 Report 0x2B – Test Response ............................................................................. 61
3.5.11 Report 0x2D –BLE Module Control Data (BLE Only) ........................................ 61
3.5.12 Report 0x2E – Clear Text User Data Entry Response Report ......................... 62
3.6 EMV-Related Reports........................................................................................................ 63
3.6.1 Report 0x2C – EMV Cardholder Interaction Status Report ................................ 63
3.6.2 Report 0xA1 – Set or Get EMV Tag(s) (MAC) ......................................................... 64
3.6.2.1 Setting EMV Tags ............................................................................................... 64
3.6.2.2 Getting EMV Tags ............................................................................................... 64
3.6.3 Report 0xA2 – Request Start EMV Transaction.................................................... 65
3.6.3.1 0xA2 Command Completion............................................................................ 67
3.6.4 Report 0xA4 – Acquirer Response (MAC).............................................................. 67
3.6.5 Report 0xA5 – Set or Get CA Public Key (MAC) .................................................... 68
3.6.6 Report 0xA8 – Get Kernel Info ................................................................................ 69
3.6.7 Report 0xAB – Request EMV Transaction Data (MAC) ........................................ 70
3.6.8 Report 0xAC – Merchant Bypass PIN Command ................................................. 76
Appendix A Examples ................................................................................................................ 77
A.1 How to Get MSR/PIN Data from the Device for a Bank Simulation ......................... 77
Appendix B Terminology ............................................................................................................ 80
Appendix C Status and Message Table ................................................................................... 83
Appendix D MagTek Custom EMV Tags ................................................................................... 87
Appendix E Configurations ........................................................................................................ 92
E.1 PIN-PAD Terminal Configuration .................................................................................... 92
E.2 Terminal Type .................................................................................................................... 92
E.3 Terminal Capabilities........................................................................................................ 92
E.4 Additional Terminal Capabilities .................................................................................... 93
Appendix F Error Codes ............................................................................................................. 96
F.1 H Codes ............................................................................................................................... 96
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 7
0 - Table of Contents
F.2 S Codes ............................................................................................................................... 96
F.3 C Codes ............................................................................................................................... 97
F.4 Device Offline K Codes ..................................................................................................... 98
F.5 Device offline A Codes ..................................................................................................... 98
Appendix G User-Defined Messages ........................................................................................ 99
Appendix H Factory Defaults ...................................................................................................101
H.1 Terminal Factory Defaults .............................................................................................101
H.2 Payment Brand Factory Defaults .................................................................................102
H.3 Certificate Authority Public Keys ..................................................................................103
Appendix I Language and Country Codes ...............................................................................104
I.1 Terminal Country Codes .................................................................................................104
I.2 Terminal Language Codes .............................................................................................104
Appendix J BLE Module Control Data ...................................................................................105
J.1 BLE Module Configuration Properties ..........................................................................105
J.1.1 Get property command ..........................................................................................105
J.1.2 Set property command ...........................................................................................105
J.1.3 Software ID property ...............................................................................................105
J.1.4 Bluetooth Device Address property ......................................................................106
J.1.5 Bluetooth Device Name property ..........................................................................106
J.1.6 Configuration Revision property............................................................................107
J.1.7 Power Timeout property .........................................................................................107
J.1.8 Power Control property ...........................................................................................108
J.1.9 Advertising Control property ..................................................................................109
J.1.10 Passkey property .....................................................................................................109
J.1.11 Desired Minimum Connection Interval Property ................................................110
J.1.12 Desired Maximum Connection Interval Property ...............................................110
J.1.13 Desired Slave Latency Property ............................................................................111
J.1.14 Desired Supervision Timeout Property ................................................................111
J.1.15 Connection Parameter Update Request Control Property ................................112
J.2 Other Commands ............................................................................................................112
J.2.1 Echo Command .......................................................................................................112
J.2.2 Reset Command ......................................................................................................113
J.2.3 Erase All Non-volatile Memory Command ...........................................................113
J.2.4 Erase All Bonds Command ....................................................................................113
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 8
0 - Table of Contents
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 9
1 - Introduction
Feature
IPAD
Legacy
DynaPro
DynaPro Plus
DynaPro Plus L1
DynaPro
Mini
30-pin
DynaPro Mini
BLE
General Features
Signature Capture (“SC”)
Yes
Yes
No
No

1 Introduction

1.1 About This Document

This document describes the master command set available through byte-by-byte direct communication with DynaPro Mini PIN encryption devices (referred to in this document as the device”).

1.2 Nomenclature

The general terms “device” and “host” are used in different, often incompatible ways in a multitude of specifications and contexts. For example “host” may have different meanings in the context of USB
communication than it does in the context of networked financial transaction processing. In this document, “device” and “host” are used strictly as follows:
Device refers to the Pin Encryption Device (PED) that receives and responds to the command set
specified in this document.
Host refers to the piece of general-purpose electronic equipment the device is connected or paired to,
which can send data to and receive data from the device. Host types include PC and Mac computers/laptops, tablets, smartphones, teletype terminals, and even test harnesses. In many cases
the host may have custom software installed on it that communicates with the PED. When “host”
must be used differently, it is qualified as something specific, such as “USB host.”
Because the BLE communication layer uses a very specific meaning for the term “Application,” (see section 2.3 How to Use BLE Connections) this document favors the term software for software on the host that provides an interface for the operator, such as a cashier. The combination of device(s), host(s), software, firmware, configuration settings, physical mounting and environment, user experience, and documentation is referred to as the solution.
Similarly, the word “user” is used in different ways in different contexts. In command names in this
document, user generally refers to the cardholder.

1.3 About Connection Types

DynaPro Mini uses a common communication protocol across a variety of physical connection layers, which can include universal serial bus (USB), Apple 30-pin dock connector, and Bluetooth Low Energy (BLE). The set of available connection layers depends on the device. Details for communicating with devices via each physical connection type are provided in section 2 Connection Types.

1.4 About Device Features

The information in this document applies to multiple devices. When developing solutions that use a
specific device or set of devices, integrators must be aware of each device’s communication interfaces,
features, and configuration options, which affect the availability and behavior of some commands. Table 1-1 provides a list of device features that may impact command availability and behavior.
Table 1-1 - Device Features
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 10
2 - Connection Types
Feature
IPAD
Legacy
DynaPro
DynaPro Plus
DynaPro Plus L1
DynaPro
Mini
30-pin
DynaPro Mini
BLE
User-defined messages
Yes
Yes
No
No
Communication Interfaces
USB connection
Yes
Yes
Yes
Yes
Ethernet connection
No
Yes (option)
No
No
Apple 30-pin connection
No
No
Yes
No
RS-232 connection
No
No (future option)
No
No
Bluetooth connection (“BLE”)
No
No
No
Yes
SRED Options
SRED
No
Yes (option)
Yes (option)
Yes (option)
Non-SRED
Yes
Yes (option)
Yes (option)
Yes (option)
EMV Features
Smart card contact
No
Yes
Yes
Yes
Smart card contactless
No
Yes (option)
No
No
Smart card L1 mode
No
Yes (option)
No
No
Smart card L2 mode
No
Yes (option)
Yes
Yes

1.5 About APIs

MagTek provides convenient Application Programming Interface (API) libraries for some connection types and development frameworks. These APIs wrap the details of the connection in an interface that conceptually parallels the device’s internal operation, freeing developers from dealing with the details of the connection, and allowing them to focus on software business logic. In cases where API libraries are available, developers also have the option to revert to direct communication with the device using libraries available in the chosen development framework. This document provides information and support for the latter method. Information about using MagTek APIs is available in separate documentation, including 99875394 DynaPro/IPAD Programmer’s Reference (.NET).

2 Connection Types

Table 1-1 above includes a list of connection types available for each device. The following subsections provide details developers will need to communicate with the devices using each connection type.

2.1 How to Use USB Connections

The devices conform to the USB specification revision 2.0, and are compatible with revision 1.1. They also conform to the Human Interface Device (HID) class specification version 1.1, and communicate as vendor-defined HID devices. This document assumes the reader is familiar with USB HID class specifications, which are available at www.usb.org.
Developers can easily create custom software using any framework that can make API calls to the standard Windows USB HID driver, such as Visual Basic or Visual C++. MagTek has developed
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 11
2 - Connection Types
demonstration software that communicates with the device via this method, and developers can use it to test the device and to provide a starting point for developing other software. For more information, see the MagTek web site, or contact your reseller or MagTek Support Services.
These devices are full speed high-powered USB devices that, when connected, draw power from the USB bus. They identify themselves with vendor ID 0x0801 and product ID 0x3009. The devices will enter and wake up from Suspend mode when directed to do so by the USB host. They do not support remote wakeup.
This device has programmable configuration properties stored in non-volatile memory. The properties are configured via the USB port and can be configured at the factory, by the key loader, or by the end user. More details can be found in section 3 Command Set in this document, and in a separate document which provides details about key loading.

2.1.1 About HID Usages

2.1.1.1 About Reports
HID devices send and receive data using reports. Each report can contain several sections, called usages, each of which has its own unique four-byte identifier. The two most significant bytes of a usage
are called the usage page, and the least two significant bytes are called the usage ID. Vendor-defined usages must have a usage page in the range 0xFF00 – 0xFFFF, and it is common practice for related usage IDs to share the same usage page. For these reasons, all usages for these devices use vendor­defined usage page 0xFF20.
HID reports used by the host can be divided into three types: Feature Reports (documented in section 3.4 General Feature Reports). Feature reports can be
further divided into Get types and Set types. The host exclusively uses this type of report to send commands to the device and to receive synchronous responses from the device.
Input Reports (documented in section 3.5 General Input Reports) are used by the device to send
asynchronous responses or notifications to the host when a related feature report completes, or automatically when the device’s state changes. This is common when a command depends on cardholder action (for example, Report 0x03 – Request Swipe Card or Report 0x04 – Request PIN Entry) or otherwise takes more time to run.
Output Reports. Output reports are part of the HID standard, but are not used by these devices.
The host uses HID Set Feature Reports to send commands to the device, and HID Get Feature Reports to retrieve data or responses from the device when synchronous response is appropriate. The general sequence for using feature reports to send a command and receive a response is as follows:
1) Send the feature report (command), which could be either a Get or Set type.
2) Read Report 0x01 – Response ACK for acknowledgement, which includes the command number
being acknowledged and a one-byte status indicating whether the device accepted the command.
3) For some commands, the host would then call a Get feature report to read the device’s response.
4) For some commands, the host would instead expect the device to send an asynchronous response via
an HID Input Report using a USB Interrupt IN transaction when the command finishes executing.
2.1.1.2 About the Report Descriptor
The list of the device’s available reports and their structure is sent to the host in a report descriptor, usually just after the device is connected to the USB port. Generally the details of the report descriptor are abstracted by the developer’s HID API; however, should it become necessary to examine a report
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 12
2 - Connection Types
Item
Value (Hex)
Usage Page
06 20 FF
Usage
09 01
Collection
A1 01
Report Size (8)
75 08
Logical Minimum (0)
15 00
Logical Maximum (255)
26 FF 00
Report ID (0x01) - Get
85 01
Usage (Response ACK)
09 01
Report Count (4)
95 04
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Nvol,Buf)
B2 02 01
Report ID (0x02) - Set
85 02
Usage (End Session)
09 02
Report Count (1)
95 01
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x03) - Set
85 03
Usage (Request Swipe Card)
09 03
Report Count (3)
95 03
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x04) - Set
85 04
Usage (Request PIN Entry)
09 04
Report Count (5)
95 05
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x05) - Set
85 05
Usage (Cancel Command)
09 05
Report Count (1)
95 01
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x06) - Set
85 06
Usage (Request User Selection)
09 06
Report Count (4)
95 04
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
descriptor byte-by-byte, a full inventory of the report descriptor for these devices is provided in Table 2-1, which also indicates whether each report is a Get type or Set type or both. The reports themselves are fully documented in the sections that follow.
Table 2-1 - USB HID Report Descriptor
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 13
2 - Connection Types
Item
Value (Hex)
Report ID (0x07) - Set
85 07
Usage (Display Message)
09 07
Report Count (2)
95 02
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x08) - Set
85 08
Usage (Request Device Status)
09 08
Report Count (1)
95 01
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x09) - Get/Set
85 09
Usage (Get/Set Device Config)
09 09
Report Count (8)
95 08
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x0A) - Set
85 0A
Usage (Request MSR Data)
09 0A
Report Count (1)
95 01
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x0B) - Get/Set
85 0B
Usage (Get/Set Challenge)
09 0B
Report Count (13)
95 0D
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x0C) - Set
85 0C
Usage (Set Bitmap)
09 0C
Report Count (2)
95 02
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x0D) - Set
85 0D
Usage (Send Session Data/Send Session PAN)
09 0D
Report Count (21)
95 15
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x0E) - Get
85 0E
Usage (Get Information)
09 0E
Report Count (63)
95 3F
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x0F) - Set
85 0F
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 14
2 - Connection Types
Item
Value (Hex)
Usage (Authenticate/Logout)
09 0F
Report Count (9)
95 09
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x10) - Set
85 10
Usage (Send Big Block Data to Device)
09 10
Report Count (63)
95 3F
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x11) - Set
85 11
Usage (Request Manual Card Entry)
09 11
Report Count (3)
95 03
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x12) - Set
85 12
Usage (Request User Signature)
09 12
Report Count (3)
95 03
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x13) - Get
85 13
Usage (Get User Signature)
09 13
Report Count (1)
95 01
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x14) - Set
85 14
Usage (Request User Data Entry)
09 14
Report Count (3)
95 03
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x15) - Set
85 15
Usage (Set Signature Capture Configuration)
09 15
Report Count (8)
95 08
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x017) - Set
85 17
Usage (Update Device)
09 17
Report Count (8)
95 08
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x018) - Set
85 18
Usage (Perform Test)
09 18
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 15
2 - Connection Types
Item
Value (Hex)
Report Count (63)
95 3F
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x019) - Get/Set
85 19
Usage (Extended Device)
09 19
Report Count (8)
95 08
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x01A) - Get/Set
85 1A
Usage (Request Device Configuration)
09 1A
Report Count (63)
95 3F
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x1C) - Get/Set
85 1C
Usage (Set/Get BLE Power Configuration)
09 1C
Report Count (4)
95 04
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x1D) - Set
85 1D
Usage (Set BLE Control Data)
09 1D
Report Count (63)
95 3F
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x1E) - Get/Set
85 1E
Usage (Set/Get iAP Protocol Info)
09 1E
Report Count (63)
95 3F
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0x1F)
Usage (Request Clear Text User Data Entry)
85 1F
Report Count (3)
95 03
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0x20) - Input
85 20
Usage (Device State)
09 20
Report Count (6)
95 06
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x21) - Input
85 21
Usage (User Data Entry Response)
09 21
Report Count (20)
95 14
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 16
2 - Connection Types
Item
Value (Hex)
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x22) - Input
85 22
Usage (Card Status)
09 22
Report Count (16)
95 10
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x23) - Input
85 23
Usage (Card Data)
09 23
Report Count (127)
95 7F
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x24) - Input
85 24
Usage (PIN Response)
09 24
Report Count (20)
95 14
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x25) - Input
85 25
Usage (User Selection Response)
09 25
Report Count (3)
95 03
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x27) - Input
85 27
Usage (Display Message Done)
09 27
Report Count (2)
95 02
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x28) - Input
85 28
Usage (Signature Capture Response)
09 28
Report Count (4)
95 04
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x29) - Input
85 29
Usage (Send Big Block Data to Host)
09 29
Report Count(127)
95 7F
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x2A) - Input
85 2A
Usage (Delayed Response ACK)
09 2A
Report Count (3)
95 03
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 17
2 - Connection Types
Item
Value (Hex)
Report ID (0x2B) - Input
85 2B
RESERVED
Report ID (0x2C) - Input
85 2C
Usage (EMV Cardholder Interaction Status)
09 2C
Report Count (127)
95 7F
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x2D) - Input
85 2D
Usage (BLE Module Control Data)
09 2D
Report Count(64)
95 40
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x2E) - Input
85 2E
Usage (Clear Text User Data Entry Response Report)
09 2E
Report Count (12)
95 0C
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
82 02 01
Report ID (0x30 - Get/Set)
85 30
Usage (Set/Get KSN)
09 30
Report Count(1)
95 01
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0x31) - Set
85 31
Usage (Set KSN Encrypted Data)
09 31
Report Count(1)
95 01
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0x32) - Get/Set
85 32
Usage (Set/Get BIN Table)
09 32
Report Count(1)
95 01
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0x58) - Set
85 58
Usage (Key Handling or Manufacturing Command)
09 58
Report Count (2)
95 02
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0xA1) - Set
85 A1
Usage (Set or Get EMV Tag(s))
09 A1
Report Count (8)
95 08
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 18
2 - Connection Types
Item
Value (Hex)
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0xA2) - Set
85 A2
Usage (Request Start EMV Transaction)
09 A2
Report Count (48)
95 30
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0xA3) - Set
85 A3
Usage (Request ATR Data)
09 A3
Report Count (1)
95 01
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0xA4) - Set
85 A4
Usage (Acquirer Response)
09 A4
Report Count (12)
95 0C
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0xA5) - Set
85 A5
Usage (Set or Get CA Public Key)
09 A5
Report Count (8)
95 08
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0xA6) - Set
85 A6
Usage (Request Power Up/Down Reset ICC)
09 A6
Report Count (16)
95 10
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0xA7) - Get/Set
85 A7
Usage (Send/Get ICC APDU)
09 A7
Report Count (16)
95 10
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0xA8) - Set
85 A8
Usage (Get Kernel Info)
09 A8
Report Count (63)
95 3F
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0xA9) - Get/Set
85 A9
Usage (Get/Set Challenge and Session Key)
09 A9
Report Count (44)
95 2C
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 19
2 - Connection Types
Item
Value (Hex)
Report ID (0xAA) - Set
85 AA
Usage (Confirm Session Key)
09 AA
Report Count (17)
95 11
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0xAB) - Set
85 AB
Usage (Request EMV Transaction Data)
09 AB
Report Count (4)
95 04
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
Report ID (0xAC) - Set
85 AC
Usage (Merchant Bypass PIN Command)
09 AC
Report Count (1)
95 01
Feature (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Nvol,Buf)
B2 02 01
Report ID (0xFF) - Set
85 FF
Usage (Device Reset)
09 1E
Report Count (02)
95 02
Input (Data,Var,Abs,NWrp,Lin,Pref,Nnul,Buf)
B2 02 01
End Collection
C0
Bit 7 6 5 4 3 2 1 0
Byte 0
0x00 = Get 0x01 = Set

2.2 How to Use Apple iOS UART Connections

When DynaPro Mini is connected to an iOS host via the Apple 30-pin dock connector, custom apps use iPod Accessory Protocol (iAP1) to communicate with DynaPro Mini using the EASession class. The custom software wraps commands in simple Get/Set wrappers, also called a UART packet header. The device firmware expects to receive and send data using the same formats produced by the iAP iPodDataTransfer and AccessoryDataTransfer commands, respectively. Documentation for these formats is available from Apple, specifically in MFi Accessory Firmware Specification R44 (see http://developer.apple.com/programs/mfi/). Sample code is available in the form of Apple’s EADemo app; see https://developer.apple.com/library/IOS/samplecode/EADemo/Introduction/Intro.html.
Because the command set is common to all connection types, it is also helpful to read section 2.1.1 About HID Usages to become familiar with the types of available commands.
The devices only use TXD and RXD; hardware handshaking is not available. The serial settings are 57600 bps, No parity, 8 data bits, and 1 stop bit. Code upgrade commands are not available through this connection. To communicate with a device using the UART connection, the host should begin all commands and responses with the following UART packet header:
Table 2-2 - iOS UART Packet Header
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 20
2 - Connection Types
Bit 7 6 5 4 3 2 1 0
Byte 1..n
Command/Response as defined in section 3 Command Set.
IMPORTANT: Generally, iOS commands must be transmitted in MSB (big endian) order. By convention, this document gives commands in LSB (little endian) order.

2.3 How to Use BLE Connections

This section provides information about developing software for a BLE-capable host that needs to interface with the device using Bluetooth Low Energy (BLE). In this arrangement, the device will act as a BLE server/peripheral, and the host will act as a client/central. The custom software wraps commands in simple Get/Set wrappers, and should use whatever BLE library is appropriate for the chosen software
development framework. For example, iOS custom apps use Apple’s CoreBluetooth Framework, for
which sample code is available in the form of Apple’s Temperature Sensor app; see
https://developer.apple.com/library/IOS/samplecode/TemperatureSensor/Introduction/Intro.html. Because the command set is common to all connection types, it is also helpful to read section 2.1.1 About HID Usages to become familiar with the types of available commands.
In its default configuration, the BLE module can be toggled between Advertising and not Advertising (for example, for airline travel) as follows:
If the device is Advertising, press and hold the power button for 7 seconds or longer to reset the BLE
module and turn Advertising off. The device will also reset to this state if the battery completely discharges.
If the device is not Advertising, press and release the power button, or connect the device to USB
power.
Some of the details described in this section may be abstracted by the libraries in the chosen development framework. For general information about BLE and the associated terms, see the Bluetooth specifications found at https://www.bluetooth.org/Technical/Specifications/adopted.htm.
The general steps for a host to communicate with the device via BLE are as follows. Refer to Table 2-3 for details about each BLE Characteristic (in this case, “Application” refers to the device):
1) If the device has been recently reset or has had its battery replaced, re-enable BLE Advertising by
pressing and releasing the power button or connecting the device to USB power.
2) Scan for nearby BLE peripherals advertising the desired GATT service UUID.
3) If multiple devices of the desired type are available, examine each device’s name property. A
specific device’s default name is a constant, equal to the product name plus a dash and the least
significant 4 digits of its Bluetooth address.
4) Establish a BLE connection with the device. If the device is not already powered on, it will start
powering on when the host establishes a connection. The power-on sequence takes about 10 seconds. Any application data the host sends before the power-on sequence is complete will be lost.
5) Pair with the device using passkey 000000. In many cases this step is user-driven.
6) Configure the device to notify the host when the Application Data To Host Length
characteristic changes. The host should then use this notification as a trigger to read the Application Data To Host characteristic and process incoming data from the device. The specific method to enable notifications for a characteristic is different in different BLE development libraries. For example, iOS code would be similar to [servicePeripheral setNotifyValue:YES forCharacteristic:characteristic].
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 21
2 - Connection Types
Characteristic
Max.
Size
UUID In LSB (Little Endian) Order
Some frameworks use MSB order
DynaPro Mini GATT service
N/A
01:01:B6:0C:41:E3:43:F8:8F:89:82:AD:F8:E6:08:05
Application Data From Host Length
1 byte
20:02:B6:0C:41:E3:43:F8:8F:89:82:AD:F8:E6:08:05 Application Data From Host
65 bytes
21:02:B6:0C:41:E3:43:F8:8F:89:82:AD:F8:E6:08:05
Application Data To Host Length
1 byte
22:02:B6:0C:41:E3:43:F8:8F:89:82:AD:F8:E6:08:05
Application Data To Host
128 bytes
23:02:B6:0C:41:E3:43:F8:8F:89:82:AD:F8:E6:08:05
Bit 7 6 5 4 3 2 1 0
Byte 0
0x00 = Get 0x01 = Set
Byte 1 Byte n
Request data as defined below and in section 3 Command Set.
7) Send commands to the device by writing to the Application Data From Host Length
characteristic, then to the Application Data From Host characteristic; receive notifications that the device has changed the Application Data To Host Length characteristic, and read the corresponding incoming data from the Application Data To Host characteristic.
8) The device will stay powered on until the host terminates the BLE connection, or until a user powers
off the device using the power switch. Powering off causes the device to terminate the BLE connection. To conserve power, always power off the device when it is not in use.
Table 2-3 - BLE Characteristics and UUIDs
To communicate with a device using the BLE connection, hosts should begin all commands and responses with the following header:
The command / response for a Get report are formatted as follows:
Request from Host Byte 0 0 (Get) Byte 1 Report ID
Response from Device Byte 0 Report ID Byte 1 - n Report Maximum report size is 63 bytes.
The command / response for a Set report are formatted as follows:
Request from Host Byte 0 1 (Set) Byte 1 Report ID Byte 2 – n Report Maximum report size is 63 bytes.
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 22
2 - Connection Types
Response from Device Byte 0 1 (Response ACK Report ID) Byte 1..2 (Response ACK Report)
Input report format Byte 0 Report ID Byte 1 - n Report Maximum report size is 127 bytes.
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 23
3 - Command Set

3 Command Set

This section describes the full device command set. Because the command set is common to all connection types, it is helpful to first read and understand section 2.1.1 About HID Usages to become familiar with the types of available commands.

3.1 About Big Block Data Mode

The device’s big block data mode supports feature reports (commands sent from the host to the device) and input reports (events sent from the device to the host) that require special treatment of data involved. Special treatment can include large data sizes, encryption / decryption, encoding / decoding, and so on.
Using big block data mode for feature reports involves using Report 0x10 – Send Big Block Data to Device to load the big block data buffer with the relevant data, then invoking the command.
Using big block data mode for input reports involves sending the desired command, then receiving an event notification Report 0x29 – Send Big Block Data to Host and unpacking the data.
This document includes specific information for using big block data mode in the usage information for each report that uses it.

3.2 About SRED / Non-SRED Firmware

Devices can be loaded with one of two types of firmware, depending on how the integrator wants the device to transmit card data to the host:
The SRED version of the firmware enables Secure Reading and Exchange of Data. In this mode, the
device will not allow complete unmasking of card data, such as the PAN.
In some cases, the solution may require further options for unmasking and encrypting card data
before the device transmits it to the host. In those cases, the device can be loaded with the Non­SRED version of the firmware.
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 24
3 - Command Set

3.3 About Commands Tagged As “MAC”

All commands and responses in this chapter that are tagged “MAC” require the host to calculate and append the device unique serial number and a MAC signature to the message per ANSI X9.19 -1996 – Financial Institution Retail Message Authentication.
Data for “MAC” commands is staged using big block data buffers. For information about using big block
mode, section 3.1 About Big Block Data Mode. After the host sends the big block data to the device, it can then send the “MAC” tagged command.
The key used will be depend on the message; it will be the MAC variant of either the MSR or AMK key. For CA Public Key configuration, the host should use the AMK MAC variant (because no encryption is involved). For big block batch data and smart card ARQC requests, the host should use the MSR MAC variant. These commands require the encrypted block to begin with a two-byte header in big-endian form (MSB first) that contains the expected length of the message after decryption, excluding data padding and CBC-MAC.
The following sections provide details about the required tag structures for each of these requests.

3.3.1 CA Public Key Data and Terminal and Payment Brand Data (TLV format)

AAAA /* 2-byte MSB message length excluding padding and CBC-MAC */ F9<len> /* container for MAC structure and generic data */ DFDF55(MAC Encryption Type)<len><val> DFDF25(IFD Serial Number)<len><val> FA<len>/* container for generic data */ <Buffer if any to make blocks as multiple of 8 bytes> <CBC-MAC (4 bytes, use MAC variant of AMK)>

3.3.2 ARQC Requests (Smart Cards)

3.3.2.1 Non-SRED ARQC request
Begin with a two-byte header in big-endian form (MSB first) that contains the expected length of the message after decryption (included as <len> in the sample below), excluding data padding and CBC­MAC. Use container F9 for the MAC structure, container FA for passing the non-encrypted ARQC message, and use the MAC variant of the MSR DUKPT key.
AAAA /* 2-byte MSB message length excluding padding and CBC-MAC */ F9<len> /* container for MAC structure and generic data */ DFDF54(MAC KSN)<len><val> DFDF55(MAC Encryption Type)<len><val> DFDF25(IFD Serial Number)<len><val> FA<len>/* container for generic data */ 70<len> /*container for ARQC */ F4<len>/* container tag for encrypted MSR data, if present */ DFDF36 <EncT1status><len><val> DFDF37 <EncT1data><len><val> DFDF38 <EncT2status><len><val> DFDF39 <EncT2data><len><val> DFDF3A <EncT3status><len><val> DFDF3B <EncT3data><len><val>
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 25
3 - Command Set
DFDF3C <Encrypted Magneprint Data><len><val> DFDF3D <Magneprint Status><len><val> DFDF43 <Magneprint Status Data><len><val> DFDF50(MSR KSN Data)<len><val> /*sent in the clear*/ DFDF51(MSR EncryptionType)<len><val> F5<len>/* container tag for encrypted PIN data (normally debit card)*/ 99(Encrypted PIN DATA)<len><val> DFDF41(PIN KSN Data)<len><val> DFDF42(PIN EncryptionType)<len><val> (Buffer if any to be a multiple of 8 bytes) CBC-MAC (4 bytes, use MAC variant of MSR DUKPT key)
3.3.2.2 SRED ARQC Request
Begin with a two-byte header in big-endian form (MSB first) that contains the expected length of the message after decryption, excluding data padding and CBC-MAC. Use container F9 for the MAC structure, use container F8 within container FA for passing the encrypted ARQC message, and use the MAC variant of the MSR DUKPT key.
AAAA /* 2-byte MSB message length excluding padding and CBC-MAC */ F9<len> /* container for MAC structure and generic data */ DFDF54(MAC KSN)<len><val> DFDF55(MAC Encryption Type)<len><val> DFDF25(IFD Serial Number)<len><val> FA<len>/* container for generic data */ 70<len> /*container for ARQC */ F8<len> /*container tag for encryption */ DFDF59(Encrypted Data Primitive)<len><Encrypted Data val (Decrypt data to read tags)> DFDF56(Encrypted Transaction Data KSN)<len><val> DFDF57(Encrypted Transaction Data Encryption Type)<val> DFDF58(# of bytes of padding in DFDF59)<len><val> (Buffer if any to be a multiple of 8 bytes) CBC-MAC (4 bytes, use MAC variant of MSR DUKPT key)
The Value inside tag DFDF59 is encrypted and contains the following after decryption:
FC<len>/* container for encrypted generic data */ F4<len>/* container tag for encrypted MSR data */ DFDF36 <EncT1status><len><val> DFDF37 <EncT1data><len><val> DFDF38 <EncT2status><len><val> DFDF39 <EncT2data><len><val> DFDF3A <EncT3status><len><val> DFDF3B <EncT3data><len><val> DFDF3C <Encrypted Magneprint Data><len><val>
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 26
3 - Command Set
DFDF3D <Magneprint Status><len><val> DFDF43 <Magneprint Status Data><len><val> DFDF50(MSR KSN Data)<len><val> /*sent in the clear*/ DFDF51(MSR EncryptionType)<len><val> F5<len>/* container tag for encrypted PIN data */ 99(Encrypted PIN DATA)<len><val> DFDF41(PIN KSN Data)<len><val> DFDF42(PIN EncryptionType)<len><val>
3.3.2.3 ARQC Response (Report 0xA4 – Acquirer Response)
Response from host (key used must be the same as KSN in ARQC request). Use container F9 for the MAC structure, use F8 within FA for passing the encrypted ARQC message, use MAC variant of MSR DUKPT key. This example assumes an acquirer host response of 70 04 8A 02 30 30:
AAAA /* 2-byte MSB message length excluding padding and CBC-MAC */ F9<len> /* container for MAC structure and generic data */ DFDF54 (MAC KSN)<len><val> DFDF55 (Mac Encryption Type><len><val> DFDF25 (IFD Serial Number)<len><val> FA<len> /* Container for generic data */ 70 04 8A 02 30 30 (ARQC padding, if any, to be a multiple of 8 bytes) CBC-MAC (4 bytes, use MAC variant of MSR DUKPT key that was used in ARQC request, from message length up to and including ARQC padding, if any)

3.3.3 Batch Data

3.3.3.1 Non-SRED Batch Data
Begin with a two-byte header in big-endian form (MSB first) that contains the expected length of the message after decryption, excluding data padding and CBC-MAC. Use container F9 for the MAC structure, FA for passing non-encrypted batch data message, use MAC variant of MSR DUKPT key.
AAAA /* 2-byte MSB message length excluding padding and CBC-MAC */ F9<len> /* container for MAC structure and generic data */ DFDF54(MAC KSN)<len><val> DFDF55(MAC Encryption Type)<len><val> DFDF25(IFD Serial Number)<len><val> FA<len>/* container for generic data */ F0<len> /* Transaction Results */ F1<len> /* container for Status Data */ /* Status Data tags */ F2<len>/* container for Batch Data */ /* Batch Data tags */ F3<len>/* container for Reversal Data, if any */ /* Reversal Data tags */ F7<len>/* container for Merchant Data */ /* < Merchant Data tags */ (Buffer if any to be a multiple of 8 bytes)
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 27
3 - Command Set
CBC-MAC (4 bytes, use MAC variant of MSR DUKPT key)
3.3.3.2 SRED Batch Data
Begin with a two-byte header in big-endian form (MSB first) that contains the expected length of the message after decryption, excluding data padding and CBC-MAC. Use container F9 for the MAC structure, use F8 within FA for passing encrypted batch data message, use MAC variant of MSR DUKPT key.
AAAA /* 2-byte MSB message length excluding padding and CBC-MAC */ F9<len> /* container for MAC structure and generic data */ DFDF54(MAC KSN)<len><val> DFDF55(MAC Encryption Type)<len><val> DFDF25(IFD Serial Number)<len><val> FA<len>/* container for generic data */ F0<len> /* Transaction Results */ F1<len> /* container for Status Data */ … /* Status Data tags */ F8<len> /* container tag for encryption */ DFDF59(Encrypted Data Primative)<len><Encrypted Data val (Decrypt data to read tags)> DFDF56(Encrypted Transaction Data KSN)<len><val> DFDF57(Encrypted Transaction Data Encryption Type)<val> DFDF58(# of bytes of padding in DFDF59)<len><val> F7<len>/* container for Merchant Data */ … /* < Merhcant Data tags */ (Buffer if any to be a multiple of 8 bytes) CBC-MAC (4 bytes, use MAC variant of MSR DUKPT key)
The Value inside tag DFDF59 is encrypted and contains the following after decryption:
FC<len>/* container for encrypted generic data */ F2<len>/* container for Batch Data */ … /* Batch Data tags */ F3<len>/* container for Reversal Data, if any */ … /* Reversal Data tags */
Notes: 1 - ARQC request encrypted message: 70<len> F8 <len><encrypted data> 2 - Batch data includes batch and merchant data and for declined transactions, reversal data as well.
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 28
3 - Command Set
Bit
7 6 5 4 3 2 1
0
Byte 0
0x01
Byte 1
Status of command (“ACKSTS”)
Byte 2
Report ID of command being ACKed
Byte 3
reserved
Byte 4
reserved
Bit
7 6 5 4 3 2 1
0
Byte 0
0x02
Byte 1
Idle message ID: 0 = Welcome (default)

3.4 General Feature Reports

3.4.1 Report 0x01 – Response ACK

This command causes the device to send the host a response status (“ACKSTS”, see Appendix C Status and Message Table), and the Report ID of the command the host has just executed. The host should get
this report immediately after it sends any command to the device to determine whether or not the device accepted the command as sent.
Table 3-1 - Usage Table for Report 0x01

3.4.2 Report 0x02 – End Session

This command clears all existing session data including PIN, PAN, and amount. The device returns to the idle state and sets the display to the specified Welcome screen. Use of message IDs 1-4 require that the associated bitmaps have been previously loaded during configuration; otherwise, use 0 for displayMsg and the device will display its default “Welcome” screen (shown below).
Figure 3-1 - DynaPro Mini Welcome Screen
Table 3-2 - Usage Table for Report 0x02
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 29
3 - Command Set
Bit
7 6 5 4 3 2 1
0
Byte 0
0x03
Byte 1
Wait time in seconds, (1 – 255; 0 = infinite wait time)
Byte 2
Card Message ID to display: 0 = Swipe Card / Idle alternating 1 = Swipe Card 2 = Please Swipe Card 3 = Please Swipe Card Again 4 = Chip Error, Use Mag Stripe
Byte 3
Tones: 0 = No sound 1 = One beep 2 = Two beeps

3.4.3 Report 0x03 – Request Swipe Card

This command causes the device to prompt the user to swipe a card by displaying one of four predetermined messages (see Card Message ID in Table 3-3). Example request screens look like this:
Figure 3-2 - DynaPro Mini Initial Swipe Prompt
The device will report an error in ACKSTS of Report 0x01 – Response ACK in the following cases:
System Error (0x80) Bad parameter (0x82) PAN already exists in the device (0x84) System is not available (0x8A)
When this command completes (card swiped OK, user cancelled, or timeout), the device will send Report 0x22 – Card Status Report to the host. If the Card and Operation Status are both OK, the host should then send Report 0x0A – Request MSR Data to get the card data.
Table 3-3 - Usage Table for Report 0x03
DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)
Page 30
Loading...
+ 84 hidden pages