Page 1
DynaMAX, eDynamo, BulleT Secure Card Reader Authenticator Programmer’s Reference (Android) June 2017 Manual Part Number: D99875728-31 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...
Page 2
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.
ATTENTION: CUSTOMER SUPPORT. TERMS, CONDITIONS, AND RESTRICTIONS MagTek, Incorporated (the "Licensor") owns and has the right to distribute the described software and documentation, collectively referred to as the "Software." LICENSE: Licensor grants you (the "Licensee") the right to use the Software in conjunction with MagTek products.
Page 4
Agreement and will not affect the enforceability of any of the remaining provisions. This Agreement shall be governed by the laws of the State of California and shall inure to the benefit of MagTek, Incorporated, its successors or assigns.
This document provides instructions for software developers who want to create software solutions that include a MagTek Secure Card Reader Authenticator (SCRA) device connected to an Android device via the Audio/Headset Interface, Bluetooth, BLE (Bluetooth 4.0 Low Energy), or USB.
If set to False, the BLE reader will be disconnected after pairing. This function is set to False by default in the SDK, but MagTek highly recommends to set this flag to True in your application in order to make sure that you'll have a successful secure connection between Android OS and BLE reader after the paring.
Mod 10 9 (Luhn algorithm) digit at the end of the number be correct. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 12 of 42 (D99875728-31)
PAN are set to zero; one of them will be set such that last digit of the PAN calculates aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 13 of 42 (D99875728-31)
All other characters are set to the specified mask character. 3.15 getTrack3Masked Get stored masked track3 data. public string getTrack3Masked() Parameters: None Return Value: Return stored masked track3 data string. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 14 of 42 (D99875728-31)
3.16 getMagnePrint Not supported on aDynamo. This 128 byte Binary field contains the MagnePrint data. Only the number of bytes specified in the MagnePrint data length field are valid. The least significant bit of the first byte of data in this field corresponds to the first bit of MagnePrint data. If the Enable/Disable MagnePrint property is set to disable MagnePrint, this field will not be sent.
Return stored device serial number. 3.19 getSessionID Not suported on aDynamo. This 8-byte Binary field contains the encrypted version of the current Session ID. Its primary purpose is to prevent replays. After a card is read, this property will be encrypted, along with the card data, and supplied as part of the transaction message.
3.41 getDataFieldCount Retrieves data field count. public int getDataFieldCount() Parameters: None Return Value: Data field count aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 21 of 42 (D99875728-31)
Bit 2 = Encryption Enabled, always set to One Bit 3 = Reserved (always set to zero) Bit 4 = Reserved (always set to zero) aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 22 of 42 (D99875728-31)
0x04 = Acquirer not available (Note: prevents long timeout on waiting for host approval) (causes “decline” to be generated internally if ARQC is generated) aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 25 of 42 (D99875728-31)
This function sets the user selection result. It should be called after receiving the OnUserSelectRequest event which is triggered after the user makes a selection. public int setUserSelectionResult(byte status, byte selection) Parameters: aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 26 of 42 (D99875728-31)
This method retrieves the configuration parameters from the server as an XML data. The method will throw an exception if there is a problem with retrieving the configuration XML. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 29 of 42 (D99875728-31)
Page 30
String value containing the device model. messageResponse ProcessMessageResponse containing the configuration parameters. Return Value: String value of the configuration parameters for the specified device model. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 30 of 42 (D99875728-31)
This message occurs when transaction status update is received from the EMV device. Parameter Description Byte array containing the data received from the device. See table below for descriptions of the data. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 31 of 42 (D99875728-31)
Final Status OnDisplayMessageRequest (EMV Device Only) This message occurs when the EMV device has display message to present to the user. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 32 of 42 (D99875728-31)
This message occurs when ARQC is received from the EMV device. Parameter Description Byte array containing the data received from the device. See table below for descriptions of the data. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 33 of 42 (D99875728-31)
Byte array containing the Batch Data. See Appendix D for Batch Data Format. 5.10 OnEMVCommandResult (EMV Device Only) This message occurs when an EMV command result is received from the EMV device. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 34 of 42 (D99875728-31)
The first two bytes represent the result codes for the extended command. The next two bytes (most significant byte first) indicate the total length of the following data in bytes. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 35 of 42 (D99875728-31)
The Value inside tag DFDF59 is encrypted and contains the following after decryption: FC<len>/* container for encrypted generic data */ <tags defined by DFDF02 > aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 39 of 42 (D99875728-31)
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) aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 40 of 42 (D99875728-31)
0x21 = Waiting for Card Cancelled by Host 0x22 = Waiting for Card Timeout 0x23 = Cancelled by Card Swipe 0xFF = Unknown aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 41 of 42 (D99875728-31)
Page 42
… /* < Merchant Data tags */ (Buffer if any to be a multiple of 8 bytes) CBC-MAC (4 bytes, always set to zeroes) aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 42 of 42 (D99875728-31)
Need help?
Do you have a question about the aDynamo and is the answer not in the manual?
Questions and answers