Magtek aDynamo Programmer's Reference Manual

Magtek aDynamo Programmer's Reference Manual

Secure card reader authenticator
Hide thumbs Also See for aDynamo:
Table of Contents

Advertisement

Quick Links

aDynamo, uDynamo, Dynamag,
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

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the aDynamo and is the answer not in the manual?

Questions and answers

Summary of Contents for Magtek aDynamo

  • 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.
  • Page 3: Software License Agreement

    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.
  • Page 5: Table Of Contents

    ........................18 3.26 getCapMagnePrintEncryption ....................18 3.27 getCapMagneSafe20Encryption ....................18 3.28 getCapMagStripeEncryption ..................... 18 3.29 getCapMSR ..........................18 3.30 getCapTracks ..........................19 aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 5 of 42 (D99875728-31)
  • Page 6 OnTransactionStatus (EMV Device Only) ..................31 OnDisplayMessageRequest (EMV Device Only) ................. 32 OnUserSelectionRequest (EMV Device Only) ................33 OnARQCReceived (EMV Device Only) ..................33 aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 6 of 42 (D99875728-31)
  • Page 7 Appendix C ARQC Response Message Format ..................40 Appendix D Batch Data Format ........................ 41 DFDF1A Transaction Status Return Codes ................41 aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 7 of 42 (D99875728-31)
  • Page 8: Introduction

    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.
  • Page 9: How To Set Up The Mtscra Library For Projects

    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> BLEEMV <service android:name="com.magtek.mobile.android.mtlib.MTBLEService" android:enabled="true"/> <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> Bluetooth <service android:name="com.magtek.mobile.android.mtlib.MTBTHService" android:enabled="true"/> <uses-feature android:name="android.hardware.usb.host" /> <service android:name="com.magtek.mobile.android.mtlib.MTUSBService" android:enabled="true"/> aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 9 of 42 (D99875728-31)
  • Page 10: Mtscra Class Methods

    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.
  • Page 11: Setaddress

    INPUT_SAMPLE_RATE_IN_HZ 44100 32000, 44100, 48000 Return Value: None openDevice This method opens connection to the device. public void openDevice() Parameters: None aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 11 of 42 (D99875728-31)
  • Page 12: Closedevice

    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)
  • Page 13: Gettrack1

    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)
  • Page 14: Gettrack2Masked

    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)
  • Page 15: Getmagneprint

    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.
  • Page 16: Getdeviceserial

    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.
  • Page 17: Getksn

    Battery Level (0 to 100) 3.24 getSwipeCount Retrieves swipe count. public long getSwipeCount() Parameters: None Return Value: Long value representing swipe count. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 17 of 42 (D99875728-31)
  • Page 18: Getcapmagneprint

    String representing MagStripe Encryption capabilities. 0 = No Encryption, 1 = TDES DUKPT / PIN Variant, other values TBD 3.29 getCapMSR Retrieves MSR capabilities. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 18 of 42 (D99875728-31)
  • Page 19: Getcaptracks

    Return Value: String representing card expiration date. 3.33 getCardIIN Retrieves Issuer Identification Number (IIN) from card data. public string getCardIIN() Parameters: None aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 19 of 42 (D99875728-31)
  • Page 20: Getcardlast4

    Parameters: None Return Value: PAN length 3.38 getCardServiceCode Retrieves Service Code. public string getCardServiceCode() Parameters: None Return Value: String representing service code. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 20 of 42 (D99875728-31)
  • Page 21: Getcardstatus

    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)
  • Page 22: Gethashcode

    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)
  • Page 23: Getfirmware

    3.48 getResponseType Retrieves response type. public string getResponseType() Parameters: None Return Value: String representing response type. For Audio Reader, always “C101”. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 23 of 42 (D99875728-31)
  • Page 24: Gettagvalue

    01 = Track read Error  02 = Track is Blank 3.52 getSDKVersion Retrieves SDK version. public string getSDKVersion() Parameters: None aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 24 of 42 (D99875728-31)
  • Page 25: Sendcommandtodevice

    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)
  • Page 26: Setuserselectionresult (Emv Device Only)

    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)
  • Page 27: Setacquirerresponse (Emv Device Only)

    9 = Error  15 = Busy 3.58 sendExtendedCommand (EMV Device Only) Send extended command to device. public int sendExtendedCommand(string command) aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 27 of 42 (D99875728-31)
  • Page 28 The next two bytes (most significant byte first) indicate the total length the following data in bytes. Return Value:  0 = Success  9 = Error  15 = Busy aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 28 of 42 (D99875728-31)
  • Page 29: Mtscraconfig Class Methods

    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)
  • Page 31: Mtscra Callback Messages

    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)
  • Page 32: Ondisplaymessagerequest (Emv Device Only)

    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)
  • Page 33: Onuserselectionrequest (Emv Device Only)

    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)
  • Page 34: Ontransactionresult (Emv Device Only)

    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)
  • Page 35: Ondeviceextendedresponse (Emv Device Only)

    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)
  • Page 36: Commands

    Use getCapTracks method to retrieve data. Capability - MagStripe Encryption: 0 = No Encryption, 1 = TripDES DUKPT. Use getCapMagStripeEncryption method to retrieve data. aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 36 of 42 (D99875728-31)
  • Page 37: Appendix A Code Examples

    Switch (msg.what) Case MTSCRAEvent.CardDataReceived: OnCardDataReceived(); break; public void OnCardDataReceived() // Display raw card data CardData.Text = m_SCRA.getResponseData(); aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 37 of 42 (D99875728-31)
  • Page 38: Send Command To Device

    // Display last 4 digits of the card CardLast4.Text = m_SCRA.getCardLast4(); Send Command To Device if (mSCRA.isDeviceConnected()) // Send discovery command m_SCRA.sendCommandToDevice(“C10206C20503840900”, 0); aDynamo, uDynamo, Dynamag, DynaMAX, eDynamo, BulleT| Secure Card Reader Authenticator | Programmer’s Reference (Android) Page 38 of 42 (D99875728-31)
  • Page 39: Appendix Barqc Message Format

    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)
  • Page 40: Appendix Carqc Response Message Format

    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)
  • Page 41: Appendix D Batch Data Format

    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)

This manual is also suitable for:

UdynamoDynamagDynamaxEdynamoBullet

Table of Contents