Advertisement

Quick Links

SDK - MagneFlex Powder,
Middleware
PIN PEDs
Programmer's Manual ( MagneFlex Powder V2 API )
January 2024
Manual Part Number:
D998200582-100
REGISTERED TO ISO 9001:2015
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

Summary of Contents for Magtek SDK MagneFlex Powder

  • Page 1 PIN PEDs Programmer’s Manual ( MagneFlex Powder V2 API ) January 2024 Manual Part Number: D998200582-100 REGISTERED TO ISO 9001:2015 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

    0 - Table of Contents Table of Contents SOFTWARE LICENSE AGREEMENT ......................... 3 Table of Contents .............................. 5 Introduction ............................... 7 About the MagneFlex Powder V2 API ................... 7 Nomenclature ........................... 7 SDK Contents ............................ 7 System Requirements ........................8 Interfaces for Operating Systems ....................
  • Page 6 0 - Table of Contents 4.12 RequestSignature ........................69 4.13 RequestSmartCard ........................71 4.14 RequestSmartCardEx ........................ 76 4.15 RequestSendAcquirerResponse ....................83 Appendix A TLV Data Format ........................87 ARQC Message Format ......................... 87 ARQC Response (from online processing) ................. 87 Transaction Result Message –...
  • Page 7: Introduction

    This document provides instructions for software developers to create software solutions that include IPAD, DynaPro, DynaPro Mini, and DynaProx, DynaFlex, DynaFlex II PED, and DynaFlex II Go. This document is part of a library of documents which includes the following from MagTek: •...
  • Page 8: System Requirements

    1 - Introduction Sample SOAPUI project: File Description MagneFlex Powder Dual Sample-soapui-project.xml Sample SOAPUI project file Sample Java web page: File Description Sample.html Sample Java jQuery html file tlvdecoder.js Java TLV decoder System Requirements Tested operating systems: Windows 7 Windows 8 Windows 8.1 Windows 10 Microsoft .Net Framework 4.5 installed.
  • Page 9: How To Set Up The Magneflex Powder V2 Api

    2 - How to Set Up the MagneFlex Powder V2 API How to Set Up the MagneFlex Powder V2 API How to Connect MagneFlex Powder V2 Service to a Host App To use the MagneFlex Powder (MUSDK.WEBAPI.HostService.exe) 1) In all Request, set the header ContentType to "application/json" 2) Build the JSON object for the MagneFlex Powder V2 resource to be accessed.
  • Page 10 2 - How to Set Up the MagneFlex Powder V2 API 6) In the left side navigator, select > PC and devices Bluetooth 7) Make sure Bluetooth is turned on and close the PC and devices app. 8) If using DynaMax, place it into pairing mode by switching it on. 9) If using DynaFlex II Go, place it into pairing mode by pressing and holding its power button until 4 beeps and release the button.
  • Page 11 2 - How to Set Up the MagneFlex Powder V2 API Figure 2-2 – Windows 8 Manage Bluetooth Devices App 11) Locate the serial number on the label on the bottom of the device. Note the final four digits. 12) Read through the list of pairable devices and locate the device called DynaProMini-nnnn DF II where nnnn is the last four digits of the device’s serial number (if the device does not show...
  • Page 12 2 - How to Set Up the MagneFlex Powder V2 API 16) Remember to change the default password. See the DynaPro Mini Programmer’s Reference documents for details. To unpair from the device: 1) Locate the device in the Manage Bluetooth devices window.
  • Page 13: Magneflex Powder V2 Resources - Dynaflex Devices

    3 - MagneFlex Powder V2 Resources – DynaFlex devices MagneFlex Powder V2 Resources – DynaFlex devices MagneFlex Powder V2 API can be hosted as a Windows service (MagTek Powder (PinPAD, DynaFlex) Host service or as an executable (MUSDK.WEBAPI.Host.exe). CheckHealth Returns the operational status of the MagneFlex Powder.
  • Page 14 3 - MagneFlex Powder V2 Resources – DynaFlex devices MessageID Value representing the message. (Integer) For DynaFlex family: 0x01 = “AMOUNT” 0x02 = “AMOUNT OK?” 0x03 = “APPROVED” 0x04 = “CALL YOUR BANK” 0x05 = “CANCEL OR ENTER” 0x06 = “CARD ERROR” 0x07 = “DECLINED”...
  • Page 15 3 - MagneFlex Powder V2 Resources – DynaFlex devices 0x06 = “Processing” 0x07 = “Please Wait” 0x08 = “Hands Off” 0x09 = “PIN PAD not available” 0x0A = “Call Your Bank” 0x0B = “CARD ERROR” 0x0C = “Not Accepted” 0x0D = “Processing Error” 0x0E = “Use CHIP READER”...
  • Page 16: Endpinsessionv1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices EndPINSessionV1 Ends the PIN session on the device. RequestPINWithPANFromCardV1 or RequestPINWithSuppliedPANV1 must be called beforehand to start the PIN session. The host app makes the determination of which status to display on the device. Using Method POST: api/mtppscrahost/EndPINSessionV1 "DeviceID": "",...
  • Page 17: Releasedevicev1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices "Option": "Success" "DeviceID": "", "ResultStatus": true, "ResultMessage": "Session Ended", "State": 1 ReleaseDeviceV1 Closes the connection to the device. This operation is not applicable on a device which was already closed. Using Method POST: api/mtppscrahost/ReleaseDeviceV1 "DeviceID": ""...
  • Page 18: Requestdevicelistv1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices "DeviceID": "", "ResultStatus": true, "ResultMessage": "All devices are released!" RequestDeviceListV1 Returns a string array containing name/value pairs of devices detected on the host based on device type. Using Method POST: api/mtppscrahost/RequestDeviceListV1 "DeviceType": ""...
  • Page 19: Requestmanualcardv1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices ConnectionType Device communication interface to the Host. (String) WEBSOCKET SERIAL BLUETOOTH_LE Address Address of the device. (String) Example Request/Response: "DeviceType": "MMS" {"Devices": [{ "DeviceID": "[USB DynaFlex] B62CA53", "DeviceType": "MMS", "ConnectionType": "USB", "Address": "\\\\?\\hid#vid_0801&pid_2020#6&1faf27ac&0&0000#{4d1e55b2-f16f-11cf- 88cb-001111000030}"...
  • Page 20 3 - MagneFlex Powder V2 Resources – DynaFlex devices "ResultMessage": "", "DataBlob": "", "CardManualOutput": "CardOperationStatus": , "CardStatus": , "CardType": , "DataType": , "EncryptedMagnePrint": "", "EncryptedTrack1": "", "EncryptedTrack2": "", "EncryptedTrack3": "", "EncryptedMagnePrintLength": , "EncryptedMagnePrintStatus": , "EncryptedTrack1Length": , "EncryptedTrack1Status": , "EncryptedTrack2Length": , "EncryptedTrack2Status": , "EncryptedTrack3Length": , "EncryptedTrack3Status": ,...
  • Page 21 3 - MagneFlex Powder V2 Resources – DynaFlex devices ResultMessage Message explaining the status of the operation. (String) DataBlob Manually entered data encoded in TLV. (Hexadecimal string) CardManualOutput Container for the manual card data. See RequestCardSwipe operation for details. "CardManualOutput": { "CardOperationStatus": , "CardStatus": , "CardType": ,...
  • Page 22 3 - MagneFlex Powder V2 Resources – DynaFlex devices Example Request/Response: "DeviceID": "", "WaitTime": 10, "Amount": 1.00 "DeviceID": "[USB DynaFlex] B62CA53", "ResultStatus": true, "ResultMessage": "Data received", "DataBlob": "0165F9820161...", "CardManualOutput": "CardOperationStatus": 0, "CardStatus": 0, "CardType": 0, "DataType": 0, "EncryptedMagnePrint": "", "EncryptedTrack1": "", "EncryptedTrack2": "", "EncryptedTrack3": "", "EncryptedMagnePrintLength": 0,...
  • Page 23: Requestpinwithpanfromcardv1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices RequestPINWithPANFromCardV1 Returns the encrypted PIN data entered on the device and the PAN is retrieved from the card. This function prompts the user to present their card and enter a PIN. A card must be presented so that the device can retrieve the PAN, which is used for PIN Format blocks requiring a PAN.
  • Page 24 3 - MagneFlex Powder V2 Resources – DynaFlex devices "PAN": { "KSN": "", "EncryptionType": , "Data": "" "DeviceID": "", "ResultStatus": , "ResultMessage": "", "PINOutput": null, "State": , "PINBlock": "", "KSN": "", "Format": , "EncryptionType": , "OperationStatus": Parameter Description (Type) Contains the Primary Account Number key value pairs. (name/value pairs) KSN = Key serial number the PAN.
  • Page 25: Requestpinwithsuppliedpanv1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices EncryptionType Encryption type. (Integer) 128 = Data 129 = PIN OperationStatus Status of the operation (Integer) Example Request/Response: "DeviceID": "", "WaitTime": 10, "PINMode": 1, "MaxPINLength": 8, "MinPINLength": 4, "Format": 0, "UserSupplyPANMethods": ["MSR","Contact","Contactless"] "PAN": "KSN": "FFFF9876543210200007", "EncryptionType": 128,...
  • Page 26 3 - MagneFlex Powder V2 Resources – DynaFlex devices "Format": , "PAN": "", "Options" : Parameter Description (Type) DeviceID URI of the device. See DeviceID URI for details. (String) WaitTime Time in seconds to complete the operation. (Integer) (1 - 255) PINMode Message to display as a user prompt: (Integer)
  • Page 27 3 - MagneFlex Powder V2 Resources – DynaFlex devices Parameter Description (Type) DeviceID Device ID returned from RequestDeviceList. (String) ResultStatus Status of the operation. (Boolean) false = fail true = success ResultMessage Message explaining the status of the operation. (String) PINOutput Container for the PIN data.
  • Page 28: Requestsendacquirerresponsev1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices "DeviceID": "[USB DynaFlex] B62CA53", "ResultStatus": true, "ResultMessage": "PIN received", "PINOutput": null, "State": 1, "PINBlock": "FC7817FD5686501B", "KSN": "FFFF9876543211E00001", "Format": 0, "EncryptionType": 129, "OperationStatus": 0 RequestSendAcquirerResponseV1 Sends the ARPC to the device. Applicable only after a RequestSmartCard with QwickChipMode set to false.
  • Page 29 3 - MagneFlex Powder V2 Resources – DynaFlex devices IssuerScriptTemplate2 Issuer Script to send to ICC in hexadecimal format. This (String) field is for the data portion of the EVM Tag 72. Use 00 if not provided. Return value: { "DeviceID": "", "TransactionOutput": { "TransactionType": , "TransactionStatus": ,...
  • Page 30 3 - MagneFlex Powder V2 Resources – DynaFlex devices TransactionStatus Transaction status (Integer) 0x00 = Accept 0x01 = Decline 0x02 = Error 0x10 = Cancelled by Host 0x11 = Confirm Amount No 0x12 = Confirm Amount Timeout 0x13 = Confirm Amount Cancel 0x14 = MSR Select Credit 0x15 = MSR Select Debit 0x16 = MSR Select Credit/Debit timeout...
  • Page 31 3 - MagneFlex Powder V2 Resources – DynaFlex devices RawBatchData Raw Batch data for the transaction (Base64 string) Key serial number (Hexadecimal string) DeviceSerialNumber MagTek device serial number (Hexadecimal string) EncryptionType Encryption type (Hexadecimal) 80 = DUKPT Key Data variant 81 = DUKPT Key PIN variant...
  • Page 32: Requestsendcommandv1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices "IssuerAuthenticationData": "00", "IssuerScriptTemplate1": "00", "IssuerScriptTemplate2": "00" "DeviceID": "[USB DynaFlex] B62CA53", "TransactionOutput": "TransactionType": 1, "TransactionStatus": 0, "OperationStatus": 0, "DataType": 2, "ApplicationIdentifier": "A0000000041010", "CardBrand": "MasterCard", "ARQCData": "01E9F98201E5...", "BatchData": "01E7F98201E3...", "RawARQCData": "Aen5ggH...", "RawBatchData": "Aef5ggHj...", "KSN": "FFFF9876543210200004", "DeviceSerialNumber": "42363243413533", "EncryptionType": "80",...
  • Page 33 3 - MagneFlex Powder V2 Resources – DynaFlex devices Parameter Description (Type) DeviceID URI of the device. See DeviceID URI for details. (String) Data Command to send to the device. (Hexadecimal string) WaitTime Time in seconds to complete the operation. (Integer) (1 - 255) Return value:...
  • Page 34: Requestsignaturev1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices 3.11 RequestSignatureV1 Prompts the user to sign on the device’s screen. Using Method POST: api/mtppscrahost/RequestSignatureV1 "DeviceID": "", "WaitTime": Parameter Description (Type) DeviceID URI of the device. See DeviceID URI for details. (String) WaitTime Time in seconds the device will wait for the action to be completed.
  • Page 35: Requestsmartcardv1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices SignatureData Signature data encoded as Base64. (Base64 string) AdditionaOutputData Additional output data. (name/value strings) Example Request/Response: "DeviceID": "", "WaitTime": 10 "DeviceID": "[USB DynaFlex] B62CA53", "ResultStatus": true, "ResultMessage": "signature captured", "SignatureOutput": "SignatureOperationStatus": 0, "SignatureData": "DWoOXA9SEEcRPBIuEyIUIBYfGCAaIR0jICYjKSYtKTEsNC83MTozPDU+Nj83QDhAOUA7Q D0+PzxBOUM1RTFGLEgoSiRLIEwdTRlOF08UUBJREVIQUw9UD1YQWBFaFF0XXxxiIWQmZyt...
  • Page 36 3 - MagneFlex Powder V2 Resources – DynaFlex devices WaitTime Time in seconds to complete the operation. (Integer) (1 - 255) PaymentMethods List of payment methods. (Array of string) MSR = For magnetic stripe cards. Contact = For EMV chip cards. Contactless = For NFC contactless cards.
  • Page 37 3 - MagneFlex Powder V2 Resources – DynaFlex devices Return value: "DeviceID": "", "TransactionOutput": "TransactionType": , "TransactionStatus": , "OperationStatus": , "DataType": , "ApplicationIdentifier": , "CardBrand": "", "ARQCData": "", "BatchData": , "RawARQCData": "", "RawBatchData": , "KSN": "", "DeviceSerialNumber": "", "EncryptionType": "", "NumberOfPaddedBytes": , "NumberOfPaddedBytesForBatch": , "EMVSREDData": "",...
  • Page 38 3 - MagneFlex Powder V2 Resources – DynaFlex devices TransactionStatus Transaction status (Integer) 0x00 = Accept 0x01 = Decline 0x02 = Error 0x10 = Cancelled by Host 0x11 = Confirm Amount No 0x12 = Confirm Amount Timeout 0x13 = Confirm Amount Cancel 0x14 = MSR Select Credit 0x15 = MSR Select Debit 0x16 = MSR Select Credit/Debit timeout...
  • Page 39 3 - MagneFlex Powder V2 Resources – DynaFlex devices RawBatchData Raw Batch data for the transaction (Base64 string) Key serial number (Hexadecimal string) DeviceSerialNumber MagTek device serial number (Hexadecimal string) EncryptionType Encryption type (Hexadecimal) 80 = DUKPT Key Data variant 81 = DUKPT Key PIN variant...
  • Page 40: Scanbarcodev1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices ResultMessage Message explaining the status of the operation. (String) Example Request/Response: "DeviceID": "", "WaitTime": 10, "PaymentMethods": ["MSR","Contact","Contactless"], "QwickChipMode": true, "TransactionType": 0, "Amount": 1.00, "CashBack": 0.00, "AdditionalTags": "5F2A020840" "AdditionalRequestData": null "DeviceID": "[USB DynaFlex] B62CA53", "TransactionOutput": "TransactionType": 1, "TransactionStatus": 0,...
  • Page 41 3 - MagneFlex Powder V2 Resources – DynaFlex devices Using Method POST: api/mtppscrahost/ScanBarCodeV1 "DeviceID": "", "WaitTime": , "Encryption": Parameter Description (Type) DeviceID URI of the device. See DeviceID URI for details. (String) WaitTime Time in seconds to complete the operation. (Integer) 0 = Wait until a barcode is read.
  • Page 42: Showbarcodev1

    3 - MagneFlex Powder V2 Resources – DynaFlex devices EncryptionType Encryption type in decimal format. (Integer) 0 = not encrypted 128 = Data variant 129 = PIN variant The possible values are an ORed bitmask using the following elements: 1x00 xxxx = TDES DUKPT key 1x01 xxxx = AES128 DUKPT key 1x10 xxxx = AES256 DUKPT key xxxx 0000 = Data Encrypt/Decrypt Variant...
  • Page 43 3 - MagneFlex Powder V2 Resources – DynaFlex devices "Message": "", "Prompt": "", "BlockColor": "", "BackgroundColor": "" Parameter Description (Type) DeviceID URI of the device. See DeviceID URI for details. (String) WaitTime Time in seconds to complete the operation. (Integer) 0 = Indefinite 1 to 255 seconds Message...
  • Page 44 3 - MagneFlex Powder V2 Resources – DynaFlex devices "MessageID": 1 "DeviceID": "[USB DynaFlex] B62CA53", "ResultStatus": true, "ResultMessage": "feature_display_message,status_timed_out" SDK - MagneFlex Powder, Middleware| PIN PEDs | Programmer’s Manual ( MagneFlex Powder V2 API ) Page 44...
  • Page 45: Magneflex Powder V2 Resources - Dynapro Devices

    Appendix A – TLV Data Format MagneFlex Powder V2 Resources – DynaPro devices MagneFlex Powder V2 can be hosted as a Windows service (MagTek Powder (PinPAD, DynaFlex) Host service or as an executable (MUSDK.WEBAPI.Host.exe). CheckHealth Returns the operational status of the MagneFlex Powder.
  • Page 46: Requestcardswipe

    Appendix A – TLV Data Format None Example Request: "DeviceID": "", "EndSessionDisplayMessage": 0 RequestCardSwipe Prompts for a magnetic card swipe. Using Method POST: api/mtppscrahost/RequestCardSwipe "DeviceID": "", "WaitTime": , "DisplayMessage": , "Tones": , "FieldSeparator": "", "CloseDevice": , "EndSession": , "EndSessionDisplayMessage": Parameter Description (type) DeviceID...
  • Page 47 Appendix A – TLV Data Format EndSession Send an EndSession command after the request is processed. (Boolean) false = Do not end the session. (default) true = End the session. EndSessionDisplayMessage Display to show on the device when EndSession is set to true. (Integer) 0 = “Welcome”...
  • Page 48 Appendix A – TLV Data Format Parameter Description (type) CardOperationStatus Card operation status (Integer) CardStatus Bit masked card status. (Integer) 0 = OK Otherwise, for each track, the possible values are listed below: When bit value is 0 = No error When bit value is 1 = Error detected for that track.
  • Page 49 Appendix A – TLV Data Format EncryptedTrack1Length Encrypted track 1 length. (Integer) EncryptedTrack1Status Encrypted track 1 status (Integer) EncryptedTrack2Length Encrypted track 2 length (Integer) EncryptedTrack2Status Encrypted track 2 status (Integer) EncryptedTrack3Length Encrypted track 3 length (Integer) EncryptedTrack3Status Encrypted track 3 status (Integer) MagStripeStatus Magnetic stripe status...
  • Page 50 Bit 21 = Actual card swipe direction (0 = Forward, 1 = Reverse) Bits 22-31 = Reserved PANData Primary Account Number data (Hexadecimal string) MagTekSerialNumber MagTek device serial number (Hexadecimal string) Track1 Masked Track 1 data (String) Track2 Masked Track 2 data...
  • Page 51: Requestdevicestatus

    Appendix A – TLV Data Format "EncryptedTrack1Length": 72, "EncryptedTrack1Status": 0, "EncryptedTrack2Length": 40, "EncryptedTrack2Status": 0, "EncryptedTrack3Length": 24, "EncryptedTrack3Status": 0, "MagStripeStatus": 0, "PANDataLength": 24, "Track1Length": 72, "Track1Status": 0, "Track2Length": 39, "Track2Status": 0, "Track3Length": 18, "Track3Status": 0, "StatusCode": 0, "CardData": "CardType=7|OperationStatus=0|CardStatus=0|DataType=34|Track1Status=0| Track1Length=72|Track1=%B5443000040...|Track2Status=0|Track2Length=39| Track2=;54430000400...|Track3Status=0|Track3Length=18|Track3=;54436848 000...|EncTrack1Status=0|EncTrack1Length=72|EncTrack1=10BC99CBD8BD...| EncTrack2Status=0|EncTrack2Length=40|EncTrack2=550D25B03440807...|EncT rack3Status=0|EncTrack3Length=24|EncTrack3=550D25B03440...|EncMPStatus...
  • Page 52 Appendix A – TLV Data Format Parameter Description (Type) DeviceID URI of the device. See DeviceID URI for details. (String) WaitTime Time in seconds the device will wait for the action to be completed. (Integer) (1 - 255) CreateNewConnection Create a new connection. (Boolean) false = Do not create new connection true = Create new connection...
  • Page 53: Requestemvtags

    Appendix A – TLV Data Format "CardPresent": false, "DeviceState": "00" RequestEMVTags Retrieves EMV tags from the device. Using Method POST: api/mtppscrahost/RequestEMVTags "DeviceID": "", "WaitTime": , "TagType": , "TagOperation": , "DataBase": , "Data": "", "RequestType" : , "CloseDevice": , "EndSession" : , "EndSessionDisplayMessage"...
  • Page 54 Appendix A – TLV Data Format Data TLV data block to send to the device. (String) Data block must be formed as an F9 CBC-MAC container message. Reference the device manual for details. AAAA /* 2-byte MSB message length excluding padding and CBC-MAC */ F9<len>...
  • Page 55 Appendix A – TLV Data Format Parameter Description (Type) EMVTagOperationStatus EMV tag operation status. (Integer) 0 = OK / Done 128 = Device Error, tamper has been detected, device certificate missing. 129 = Device not Idle 130 = Data Error or the command contains bad parameters. 134 = Device busy EMVTagData EMV tag data...
  • Page 56: Requestendemvsession

    Appendix A – TLV Data Format "AdditionalOutputData": null RequestEndEMVSession Ends an EMV session for the device. Using Method POST: api/mtppscrahost/RequestEndEMVSession "DeviceID": "", "EndSessionDisplayMessage" : Parameter Description (Type) DeviceID URI of the device. See DeviceID URI for details. (String) EndSessionDisplayMessage Display to show on the device. (Integer) 0 = “Welcome”...
  • Page 57: Requestmanualswipe

    Appendix A – TLV Data Format DeviceState Device state (Integer) RequestManualSwipe Prompts the user to manually enter card data. Using Method POST: api/mtppscrahost/RequestManualSwipe "DeviceID": "", "WaitTime": , "Options": , "Tones": , "CloseDevice": , "EndSession": , "EndSessionDisplayMessage": Parameter Description (Type) DeviceID URI of the device.
  • Page 58 Appendix A – TLV Data Format Parameter Description (Type) Close the connection to the device after the request is processed. CloseDevice false = Do not close the device. (default) (Boolean) true = Close the device. Sends an EndSession command after the request is processed. EndSession false = Do not end the session.
  • Page 59 Appendix A – TLV Data Format "Track1": "", "Track2": "", "Track3": "" "StatusCode": , "AdditionalOutputData": null Parameter Description (Type) CardOperationStatus Card operation status (Integer) CardStatus Bit masked card status. (Integer) 0 = OK Otherwise, for each track, the possible values are listed below: Bit value 0 = No error Bit value 1 = Error detected Bit 7 - 0...
  • Page 60 Appendix A – TLV Data Format EncryptedTrack3 Encrypted track 3 data. (Hexadecimal string) EncryptedMagnePrintLength Encrypted MagnePrint data length. (Integer) EncryptedMagnePrintStatus Encrypted MagnePrint status. (Integer) EncryptedTrack1Length Encrypted track 1 length. (Integer) EncryptedTrack1Status Encrypted track 1 status (Integer) EncryptedTrack2Length Encrypted track 2 length (Integer) EncryptedTrack2Status Encrypted track 2 status...
  • Page 61 Bit 21 = Actual card swipe direction (0 = Forward, 1 = Reverse) • Bits 22-31 = Reserved PANData Primary Account Number data (Hexadecimal string) MagTekSerialNumber MagTek device serial number (Hexadecimal string) Track1 Masked Track 1 data (String) Track2 Masked Track 2 data...
  • Page 62 Appendix A – TLV Data Format "EncryptedTrack1": "314424973DEA436A5026AE842830EDF1EE44C1949E3E2ED734516079FFC086C8C030A 4A7C7D7882F2F3D17CAC7821DC3313358FE40D639F3", "EncryptedTrack2": "5A655F7936E9D6672385C8EACF63095FB06C4813453AC549E131A551ABB43971CAA3F 5B7992FB924", "EncryptedTrack3": "", "EncryptedMagnePrintLength": 0, "EncryptedMagnePrintStatus": 1, "EncryptedTrack1Length": 56, "EncryptedTrack1Status": 0, "EncryptedTrack2Length": 40, "EncryptedTrack2Status": 0, "EncryptedTrack3Length": 0, "EncryptedTrack3Status": 1, "MagStripeStatus": 0, "PANDataLength": 24, "Track1Length": 53, "Track1Status": 0, "Track2Length": 35, "Track2Status": 0, "Track3Length": 0, "Track3Status": 1,...
  • Page 63: Requestoperationstatus

    Appendix A – TLV Data Format RequestOperationStatus Retrieves the operation status of the device. Using Method POST: api/mtppscrahost/RquestOperationStatus Return value: "OperationStatus": , "DeviceID": "", "CreateNewConnection": , "AdditionalOutputData": null Parameter Description (Type) OperationStatus Operation status. See the Programmer’s Manual (Commands) for details (Integer) of the operation that was started.
  • Page 64 Appendix A – TLV Data Format "MaxPinLength": , "MinPinLength": , "Options": , "Tones": , "CloseDevice": , "EndSession": , "EndSessionDisplayMessage": Parameter Description (Type) DeviceID URI of the device. See DeviceID URI for details. (String) WaitTime Time in seconds the device will wait for the action to be completed. (Integer) (1 - 255) Message to display as a user prompt:...
  • Page 65 Appendix A – TLV Data Format Parameter Description (Type) Display to show on the device when EndSession is set to true. 0 = “Welcome” (default) EndSessionDisplayMessage 1 = Bitmap Slot 1 (Integer) 2 = Bitmap Slot 2 3 = Bitmap Slot 3 4 = Bitmap Slot 4 Return value: "PINOutput": {"PINData":"[PIN KSN],[EPB],[Operationstatus]"},...
  • Page 66: Requestsendcommand

    Appendix A – TLV Data Format "PINOutput": {"PINData": "FFFF9876543210E0003A,006B30D36D752D4D,0"}, "AdditionalOutputData": null 4.11 RequestSendCommand Sends a command to the device and returns the raw response from the device. Using Method POST: api/mtppscrahost/RquestSendCommand "DeviceID": "", "WaitTime": , "Data": "", "RequestType": "", "WaitForReport": "", "CloseDevice": , "EndSession": , "EndSessionDisplayMessage":...
  • Page 67 Appendix A – TLV Data Format EndSession Sends an EndSession command after the request is processed. (Boolean) false = Do not end the session. (default) true = End the session. EndSessionDisplayMessage Display message to show on the device. (Integer) 0 = “Welcome” (default) 1 = Bitmap Slot 1 2 = Bitmap Slot 2 3 = Bitmap Slot 3...
  • Page 68 Appendix A – TLV Data Format DeviceState Device state. (Hexadecimal string) 0x00 = Idle 0x01 = Session 0x02 = Wait For Card 0x03 = Wait For PIN 0x04 = Wait For Selection 0x05 = Displaying Message 0x06 = Test (Reserved for future use) 0x07 = Manual Card Entry 0x08 = Wait for Signature Capture (SC-S Only | SC-F Only) 0x09 = Wait Cardholder Entry...
  • Page 69: Requestsignature

    Appendix A – TLV Data Format "WaitForReport": "09", "CloseDevice": false, "EndSession": false, "EndSessionDisplayMessage": 0 "Data": "090801C0D53044012C000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000", "AdditionalOutputData": null, "ResultStatus": true, "ResultMessage": null, "CardPresent": false, "DeviceState": "00" 4.12 RequestSignature Prompts the user to sign on the device’s screen. Using Method POST: api/mtppscrahost/RequestSignature "DeviceID": "", "WaitTime": ,...
  • Page 70 Appendix A – TLV Data Format Parameter Description (Type) Close the connection to the device after the request is processed. CloseDevice false = Do not close the device. (default) (Boolean) true = Close the device. Sends an EndSession command after the request is processed. EndSession false = Do not end the session.
  • Page 71: Requestsmartcard

    Appendix A – TLV Data Format "SignatureData": "HG8cbxxvHW0eah9kIVskUChELDgwLjInNCM1IjYkOCo5Mzs/PktAVENaRV9GYUhgS1tQV VNLVkNZPVs6XTlgOmRAaUhwUnZae2GAZ///eil6KXopeil6KXopfCp/KoQqjCqWKaApqim zKP//pTOlM6UzpTOlM6UzpTOlNaY4pj2oRKlMrFWuXbBn//8=" "AdditionalOutputData": null 4.13 RequestSmartCard Begins an EMV transaction. Using Method POST: api/mtppscrahost/RequestSmartCard "DeviceID": "", "CardType": , "ConfirmationWaitTime": , "PINEntryWaitTime": , "Tones": , "Options": , "TransactionType": , "Amount": , "CashBack": , "QwickChipMode": , "Reserved": , "CloseDevice": ,...
  • Page 72 Appendix A – TLV Data Format Parameter Description (Type) Tones to use: Tones 0 = No sound (Integer) 1 = One beep 2 = Two beeps Transaction options: 0 = Normal Options 1 = Bypass PIN (Integer) 2 = Force Online 4 = Acquirer not available Type of transaction to be used: 0x00 = Purchase...
  • Page 73 Appendix A – TLV Data Format Parameter Description (Type) Display to show on the device when EndSession is set to true. 0 = “Welcome” (default) EndSessionDisplayMessage 1 = Bitmap Slot 1 (Integer) 2 = Bitmap Slot 2 3 = Bitmap Slot 3 4 = Bitmap Slot 4 AdditionalRequestData Additional name/value pairs of data.
  • Page 74 Appendix A – TLV Data Format TransactionStatus Transaction status (Integer) 0x00 = Accept 0x01 = Decline 0x02 = Error 0x10 = Cancelled by Host 0x11 = Confirm Amount No 0x12 = Confirm Amount Timeout 0x13 = Confirm Amount Cancel 0x14 = MSR Select Credit 0x15 = MSR Select Debit 0x16 = MSR Select Credit/Debit timeout 0x17 = MSR Select Credit/Debit cancel...
  • Page 75 Appendix A – TLV Data Format RawBatchData Raw Batch data for the transaction (Base64 string) Key serial number (Hexadecimal string) DeviceSerialNumber MagTek device serial number (Hexadecimal string) EncryptionType Encryption type (Hexadecimal) 80 = DUKPT Key Data variant 81 = DUKPT Key PIN variant...
  • Page 76: Requestsmartcardex

    Appendix A – TLV Data Format "ConfirmationWaitTime": 10, "PINEntryWaitTime": 10, "Tones": 1, "Options": 0, "TransactionType": 2, "Amount": 1.00, "CashBack": 0.00, "QwickChipMode": true, "Reserved": , "CloseDevice": true, "EndSession": true, "EndSessionDisplayMessage": 0, "AdditionalRequestData": null, {"TransactionOutput": { "TransactionType": 1, "TransactionStatus": 1, "OperationStatus": 0, "DataType": 2, "ApplicationIdentifier": "A0000000041010", "CardBrand": "MasterCard",...
  • Page 77 Appendix A – TLV Data Format "ConfirmationWaitTime": , "PINEntryWaitTime": , "Tones": , "Options": , "TransactionType": , "Amount": , "CashBack": , "QwickChipMode": , "Reserved": , "CloseDevice": , "EndSession": , "EndSessionDisplayMessage": , "AdditionalRequestData": null Parameter Description (Type) DeviceID URI of the device. See DeviceID URI for details. (String) Card type that can be used for the transaction: 1 = Magnetic stripe...
  • Page 78 Appendix A – TLV Data Format Parameter Description (Type) Start the transaction in Qwick Chip mode. In Qwick Chip mode, the devices does not prompt for an amount approval and needs no Acquirer QwickChipMode Response (RequestSendAcquirerResponse). (Boolean) true = Qwick chip mode. false = Do not do qwick chip mode.
  • Page 79 Appendix A – TLV Data Format "CardHolderName": "", "CardType": "", "ApplicationIdentifier": null, "NumberOfPaddedBytesForBatch": , "EMVSREDDataForBatch": null "TransactionType": 1, "TransactionStatus": , "OperationStatus": , "DataType": , "Data": "", "RawData": "", "KSN": "", "DeviceSerialNumber": "", "EncryptionType": "", "NumberOfPaddedBytes": , "EMVSREDData": "", "MerchantData": "", "FallbackIndicator": "", "MaskedICCTrack2": "", "ServiceCode": "",...
  • Page 80 When TransactionType type is 1, this is Batch data. RawData Raw data (Base64 string) Key serial number (Hexadecimal string) DeviceSerialNumber MagTek device serial number (Hexadecimal string) EncryptionType Encryption type (Hexadecimal) 80 = DUKPT Key Data variant 81 = DUKPT Key PIN variant SDK - MagneFlex Powder, Middleware| PIN PEDs | Programmer’s Manual ( MagneFlex Powder V2 API )
  • Page 81 Appendix A – TLV Data Format NumberOfPaddedBytes Number of padded bytes to the end of the decrypted EMV SRED (Integer) data to make a multiple of 8 bytes. EMVSREDData EMV SRED data. This is data portion of the TLV tag DFDF59 (Hexadecimal string) from ARQCData.
  • Page 82 Appendix A – TLV Data Format "Reserved": , "CloseDevice": true, "EndSession": true, "EndSessionDisplayMessage": 0, "AdditionalRequestData": null, {"TransactionOutput": [ "TransactionType": 0, "TransactionStatus": 255, "OperationStatus": 0, "DataType": 1, "Data": "021EF982021A...", "RawData": "Ah75ggIa399U...", "KSN": "9010010B9999990000F7", "DeviceSerialNumber": "992B808819160710", "EncryptionType": "80", "NumberOfPaddedBytes": 1, "EMVSREDData": "03B74819C0BF...", "MerchantData": "", "FallbackIndicator": "00", "MaskedICCTrack2": "3B3534343330...",...
  • Page 83: Requestsendacquirerresponse

    Appendix A – TLV Data Format "EMVSREDDataForBatch": null 4.15 RequestSendAcquirerResponse Sends the ARPC to the device. Applicable only after a RequestSmartCard with QwickChipMode set to false. Using Method POST: api/mtppscrahost/RequestSendAcquirerResponse "DeviceID": "", "WaitTime": , "IssuerAuthenticationData": "", "IssuerScriptTemplate1": "", "IssuerScriptTemplate2": "", "ApprovalStatus": , "KSN": "", "DeviceSerialNumber": "",...
  • Page 84 Appendix A – TLV Data Format ApprovalStatus Status from acquirer/issuer. This field represents the data (Integer) portion of the EMV Tag 8A. Example: 0 = Approve 1 = Decline Key serial number used for the transaction (String) DeviceSerialNumber Device serial number (String) CloseDevice Close the connection to the device after the request is...
  • Page 85 (Hexadecimal string) transaction. RawBatchData Raw Batch data for the transaction (Base64 string) Key serial number (Hexadecimal string) DeviceSerialNumber MagTek device serial number (Hexadecimal string) EncryptionType Encryption type (Hexadecimal) 80 = DUKPT Key Data variant 81 = DUKPT Key PIN variant MerchantData...
  • Page 86 Appendix A – TLV Data Format Example Request/Response: "DeviceID": "", "WaitTime": 5, "WaitTimeBeforeTransactionComplete": 3, "ApprovalStatus": 0, "IssuerAuthenticationData": "00", "IssuerScriptTemplate1": "00", "IssuerScriptTemplate2": "00", "KSN": "9010010B9999990000F9", "DeviceSerialNumber": "992B808819160710", "CloseDevice": true, "EndSession": true, "EndSessionDisplayMessage": 0, "AdditionalRequestData": null, {"TransactionOutput": { "TransactionType": 1, "TransactionStatus": 0, "OperationStatus": 0, "BatchData": "024BF9820247...", "RawBatchData": "Akv5ggJH399U...",...
  • Page 87: Appendix Atlv Data Format

    Appendix A – TLV Data Format Appendix A TLV Data Format ARQC Message Format This section gives the format of the ARQC Message delivered in the ARQC Message notification. It is a TLV object with the following contents: F9<len>/* container for MAC structure and generic data */ DFDF54(MAC KSN)<len><val>...
  • Page 88: Transaction Result Message - Batch Data Format

    Appendix A – TLV Data Format Transaction Result Message – Batch Data Format This section gives the format of the data the device uses to do completion processing FE<len> /* container for generic data */ DFDF25(IFD Serial Number)<len><val> FA<len>/* container for generic data */ F0<len>...
  • Page 89: Deviceid Uri

    Appendix A – TLV Data Format DeviceID URI Parameter (type) Description DeviceID URI of the device. (String) For USB devices, use the forms: Examples, An empty string or null to open the first device found. “DeviceID”: “” “DeviceID”: null “DeviceID”: “[USB DynaFlex] B62CA5F” “DeviceID”: “[USB DynaPro] 98D90C660E070F0E”...

This manual is also suitable for:

Sdk magneflex middleware

Table of Contents