background image

2.4 PA-DSS Guidelines

5

of a card, contained in a chip, or elsewhere). This data is alternatively called full track, track, track 1, track 2, and
magnetic-stripe data.

In the normal course of business, the following data elements from the magnetic stripe may need to be retained:

• The accountholders name,

• Primary account number (PAN),

• Expiration date, and

• Service code

• To minimize risk, store only those data elements needed for business.

Note: See PCI DSS and PA-DSS Glossary of Terms, Abbreviations, and Acronyms for additional information. PCI
Data Security Standard Requirement 3.2.1

1.1.2 After authorization, do not store the card-validation value or code (three-digit or four-digit number printed on
the front or back of a payment card) used to verify card-not-present transactions. Note: See PCI DSS and P

-

A-DSS Glossary of Terms, Abbreviations, and Acronyms for additional information. PCI Data Security Standard
Requirement 3.2.2

1.1.3 After authorization, do not store the personal identification number (PIN) or the encrypted PIN block.

Note: See PCI DSS and PA-DSS Glossary of Terms, Abbreviations, and Acronyms for additional information. PCI
Data Security Standard Requirement 3.2.3

1.1.4 Securely delete any magnetic stripe data, card validation values or codes, and PINs or PIN block data stored
by previous versions of the payment application, in accordance with industry-accepted standards for secure deletion,
as defined, for example by the list of approved products maintained by the National Security Agency, or by other
State or National standards or regulations. PCI Data Security Standard Requirement 3.2

Note: This requirement only applies if previous versions of the payment application stored sensitive authentication
data.

1.1.5 Securely delete any sensitive authentication data (pre-authorization data) used for debugging or troubleshoot-
ing purposes from log files, debugging files, and other data sources received from customers, to ensure that mag-
netic stripe data, card validation codes or values, and PINs or PIN block data are not stored on software vendor
systems. These data sources must be collected in limited amounts and only when necessary to resolve a problem,
encrypted while stored, and deleted immediately after use. PCI Data Security Standard Requirement 3.2

2. Protect stored cardholder data

2.1 Software vendor must provide guidance to customers regarding purging of cardholder data after expiration of
customer-defined retention period. PCI Data Security Standard Requirement 3.1

2.2 Mask PAN when displayed (the first six and last four digits are the maximum number of digits to be displayed).

Notes:

• This requirement does not apply to those employees and other parties with a legitimate business need to see

full PAN;

• This requirement does not supersede stricter requirements in place for displays of cardholder datafor exam-

ple, for point-of-sale (POS) receipts. PCI Data Security Standard Requirement 3.3

2.3 Render PAN, at a minimum, unreadable anywhere it is stored, (including data on portable digital media, backup
media, and in logs) by using any of the following approaches:

• One-way hashes based on strong cryptography with associated key management processes and procedures

• Truncation

IDTech Windows SDK Guide for Kiosk III/IV #80136501-001

Summary of Contents for Kiosk III

Page 1: ...IDTech Windows SDK Guide for Kiosk III IV 80136501 001 Rev A ...

Page 2: ...on History Revision Description and Reason for Change Date A Initial Release Manual User MiniSmartII SDK Win 1 12 2016 A Added Kiosk IV Reference 6 20 2018 80136501 001 IDTech Windows SDK Guide for Kiosk III IV ...

Page 3: ...ace COM 14 6 Core Implementation WinForms 15 6 1 Integrating with IDTechSDK dll 15 6 2 Import the necessary libraries 15 6 3 Add using statements to utilize library 16 6 4 Implement the callback function 16 6 5 Initialize Kiosk III IV 17 6 6 Sample Project Tutorial 17 6 6 1 Step 1 Create New Project 18 6 6 2 Step 2 Import Libraries 18 6 6 3 Step 3 Design Interface 18 6 6 4 Step 4 Configure the pro...

Page 4: ...hSDK EMV_Callback Class Reference 47 14 1 1 Detailed Description 47 14 1 2 Member Data Documentation 47 14 1 2 1 callbackType 47 14 1 2 2 language 47 14 1 2 3 lcd_backlightTimeout 48 14 1 2 4 lcd_displayMode 48 14 1 2 5 lcd_entryTimeout 48 14 1 2 6 lcd_entryTimeoutMinor 48 14 1 2 7 lcd_messages 48 14 1 2 8 maskEntry 48 14 1 2 9 msr_displayMessage 49 14 1 2 10 msr_swipeTimeout 49 14 1 2 11 pin_entr...

Page 5: ...type int timeout byte tags 57 14 2 2 20 ctls_updateBalance byte statusCode byte authCode byte date byte time 58 14 2 2 21 device_activateTransaction int timeout byte tags 59 14 2 2 22 device_controlUserInterface byte values 60 14 2 2 23 device_enablePassThrough bool enablePassThrough 60 14 2 2 24 device_getFirmwareVersion ref string response 61 14 2 2 25 device_getMerchantRecord int index ref byte...

Page 6: ...69 14 2 3 Property Documentation 69 14 2 3 1 SharedController 69 14 3 IDTechSDK IDTCryptoData Class Reference 69 14 3 1 Detailed Description 69 14 3 2 Member Data Documentation 69 14 3 2 1 BDK 69 14 3 2 2 clearPinBlock 70 14 3 2 3 dataResults 70 14 3 2 4 dataToProcess 70 14 3 2 5 DataVariant 70 14 3 2 6 DEK 70 14 3 2 7 errorString 70 14 3 2 8 IPEK 70 14 3 2 9 isDecryption 70 14 3 2 10 isTDES 70 14...

Page 7: ...rorState 75 14 4 2 18 emv_clearingRecord 75 14 4 2 19 emv_encipheredOnlinePIN 75 14 4 2 20 emv_encryptedTags 75 14 4 2 21 emv_ESC 75 14 4 2 22 emv_hasAdvise 75 14 4 2 23 emv_hasReversal 75 14 4 2 24 emv_maskedTags 75 14 4 2 25 emv_resultCode 75 14 4 2 26 emv_RF_State 75 14 4 2 27 emv_rfStateCode 75 14 4 2 28 emv_transaction_Error_Code 76 14 4 2 29 emv_unencryptedTags 76 14 4 2 30 Event 76 14 4 2 3...

Page 8: ...14 4 2 48 msr_rawData 78 14 4 2 49 msr_sessionID 78 14 4 2 50 msr_track1 78 14 4 2 51 msr_track1Length 78 14 4 2 52 msr_track2 78 14 4 2 53 msr_track2Length 78 14 4 2 54 msr_track3 78 14 4 2 55 msr_track3Length 78 14 4 2 56 Notification 78 14 4 2 57 pin_KeyEntry 78 14 4 2 58 pin_KSN 79 14 4 2 59 pin_pinblock 79 14 4 2 60 SW1 79 14 4 2 61 SW2 79 Index 80 80136501 001 IDTech Windows SDK Guide for Ki...

Page 9: ...s the Kiosk III IV and payment processing solutions The purpose of this document is to describe the requirements of the API as well as the interface definitions and requirements needed for a WinForms application wishing to deploy with the payment application Connecting To Kiosk III IV Core Implementation WinForms Important Security Notice IDTech Windows SDK Guide for Kiosk III IV 80136501 001 ...

Page 10: ...ence Guide for Kiosk III IV Main Transaction Commands Sending Direct Commands EMV Tag Reference Enumeration Reference Error Code Reference LCD Foreign Language Mapping Table 80136501 001 IDTech Windows SDK Guide for Kiosk III IV ...

Page 11: ...into a single comprehensive set of security standards The transition to PCI PA DSS was announced in April 2008 In early October 2008 PCI PA DSS Version 1 2 was released to align with the PCI DSS Version 1 2 which was released on October 1 2008 On January 1 2011 PCI PA DSS Version 2 0 was released This extends the PCI DSS Version 1 2 which was released on October 1 2008 and is effective as of Janua...

Page 12: ...o production on your application 2 4 PA DSS Guidelines The following PA DSS Guidelines are being provided by IDTech as a convenience to its customers Customers should not rely on these PA DSS Guidelines but should instead always refer to the most recent PCI DSS Program Guide published by PCI SSC 1 Sensitive Data Storage Guidelines Do not retain full magnetic stripe card validation code or value CA...

Page 13: ...ional standards or regulations PCI Data Security Standard Requirement 3 2 Note This requirement only applies if previous versions of the payment application stored sensitive authentication data 1 1 5 Securely delete any sensitive authentication data pre authorization data used for debugging or troubleshoot ing purposes from log files debugging files and other data sources received from customers t...

Page 14: ...ess and for all access to cardholder data Secure authentication must be enforced to all accounts generated or managed by the application by the completion of installation and for subsequent changes after the out of the box installation defined at PCI DSS Requirements 8 1 8 2 and 8 5 88 5 15 for all administrative access and for all access to cardholder data PCI Data Security Standard Requirements ...

Page 15: ...nel or third parties 5 2 Develop all web payment applications internal and external and including web administrative access to product based on secure coding guidelines such as the Open Web Application Security Project Guide Cover prevention of common coding vulnerabilities in software development processes to include Injection flaws with particular emphasis on SQL injection Cross site scripting X...

Page 16: ...pplications for vulnerabilities Any underlying software or systems that are provided with or required by the payment application for example web servers third party libraries and programs must be included in this process Remove all test configurations samples and data after testing and before promoting the changes to production PCI Data Security Standard Requirement 6 2 7 2 Software vendors must e...

Page 17: ...echnologies for exam ple e mail instant messaging and chat PCI Data Security Standard Requirement 4 2 12 Encrypt all non console administrative access 12 1 Instruct customers to encrypt all non console administrative access using technologies such as SSH VPN or SSL TLS for web based management and other non console administrative access Telnet or remote login must never be used for administrative ...

Page 18: ...g http www visa com cisp http www sans org resources http www microsoft com security default asp https sdp mastercardintl com http www americanexpress com merchantspecs CAPN questions capninfocenter aexp com 80136501 001 IDTech Windows SDK Guide for Kiosk III IV ...

Page 19: ... command consists of a Command a Sub Command and optionally data To access these commands please reference the NEO IDG Command document included as a separate item in the SDK Please note that Protocol 1 com mands have been deprecated and any existing Protocol 1 commands relevant to Kiosk III IV can be accomplished by a Protocol 2 command The library uses the following the command to send Protocol ...

Page 20: ...ode will automatically capture taps Setting the device to Burst Mode will automati cally return data for processing Terminal Configuration IDTechSDK IDT_KioskIII ctls_retrieveTerminalData IDTechSDK IDT_KioskIII ctls_setTerminalData Methods for terminal configuration When setting the terminal data you pass the tags in TLV format AID Management IDTechSDK IDT_KioskIII ctls_retrieveApplicationData res...

Page 21: ...rieveCAPKList Methods for Certificate Authority Public Key management When setting the CAPK you populate and pass the key as a sequence of ordered bytes When specifying a CAPK to retrieve or remove you populate the name in the byte parameter When retrieving the CAPK list the list of RID Index can be retrieved from the ordered byte stream 6 bytes each bytes 1 5 RID byte 6 index IDTech Windows SDK G...

Page 22: ...te the following command during program initialization to establish a connection IDT_KioskIII useUSB 5 2 Connect with Serial Interface COM The Kiosk III IV can connect via Serial Interface The serial port settings are as follows Speed 19 200 Bits 8 Stop Bit 1 Parity None To inform the SDK you are using the Serial Interface of the Kiosk III you would execute the following command during program ini...

Page 23: ...lick on the References in the Solution Explorer for the project select Add Reference click Browse and locate IDTechSDK dll IDTechSDK dll has a dependency of Microsoft NET 4 50 or greater Please make sure your final application installer checks for this dependency and installs it if not on the destination system In addition the following libraries need to be added to project folder and included in ...

Page 24: ...on to take private void MessageCallBack IDTechSDK IDT_DEVICE_Types type DeviceState state byte data IDTTransactionData cardData EMV_Callback emvCallback RETURN_CODE transactionResultCode switch state case DeviceState ToConnect A connection attempt is starting for IDT_DEVICE_TYPES type break case DeviceState DefaultDeviceTypeChange The SDK is changing the default device to IDT_DEVICE_TYPES type bre...

Page 25: ...SwipeTimeout Waiting for swipe timed out break case DeviceState TransactionCancelled Transaction has been cancelled break case DeviceState DeviceTimeout Waiting for transaction to complete timed out break case DeviceState TransactionFailed Transaction failed to complete break case DeviceState EMVCallback Callback during EMV transaction retrieved from EMV_Callback emvCallback break default break 6 ...

Page 26: ...raries Import the necessary libraries 6 6 3 Step 3 Design Interface Use the Form Designer to layout buttons fields Open your form designer and add items so it contains the following buttons fields Radio buttons for USB and COM selection For COM selection add a text box to specify COM port Add buttons to execute the following functions Get Firmware Start ICC Transaction Cancel ICC Transaction Add a...

Page 27: ...kChanged handlers to set the proper interface for SDK communi cations private void rbUSB_CheckedChanged object sender EventArgs e if rbUSB Checked IDT_KioskIII useUSB return IDT_KioskIII useSerialPort Convert ToInt32 tbCOMPort Text cbSRED Checked Implement the button methods Click handlers for button press code execution private void btnFirmwareVersion_Click object sender EventArgs e string firmwa...

Page 28: ...back to receive important SDK data messages log info and transaction results private void MessageCallBack IDTechSDK IDT_DEVICE_Types type DeviceState state byte data IDTTransactionData cardData EMV_Callback emvCallback RETURN_CODE transactionResultCode switch state case DeviceState ToConnect A connection attempt is starting for IDT_DEVICE_TYPES type SetOutputText Callback ToConnect n break case De...

Page 29: ... during EMV transaction retrieved from EMV_Callback emvCallback SetOutputText Callback EMVCallback n break default break private void displayCardData IDTTransactionData cardData string text if cardData Event EVENT_TRANSACTION_DATA_Types EVENT_TRANSACTION_DATA_CARD_DATA SetOutputText Data received Length cardData msr_rawData Length ToString n string Concat cardData msr_rawData ToArray Select b b To...

Page 30: ...gs null if cardData emv_unencryptedTags Length 0 text r n r n text r nUnencrypted Tags r n text Common getHexStringFromBytes cardData emv_unencryptedTags r n r n text tlvToValues cardData emv_unencryptedTags text r n r n if cardData emv_encryptedTags null if cardData emv_encryptedTags Length 0 text r n r n text r nEncrypted Tags r n text Common getHexStringFromBytes cardData emv_encryptedTags r n ...

Page 31: ...xt EMV RESULT EMV_RESULT_CODE_SWIPE_NON_ICC r n break case EMV_RESULT_CODE EMV_RESULT_CODE_CTLS_TWO_CARDS text EMV RESULT EMV_RESULT_CODE_CTLS_TWO_CARDS r n break case EMV_RESULT_CODE EMV_RESULT_CODE_CTLS_TERMINATE text EMV RESULT EMV_RESULT_CODE_CTLS_TERMINATE r n break case EMV_RESULT_CODE EMV_RESULT_CODE_CTLS_TERMINATE_TRY_ANOTHER text EMV RESULT EMV_RESULT_CODE_CTLS_TERMINATE_TRY_ANOTHER r n b...

Page 32: ...Implementation WinForms Invoke d new object text else try logOutput AppendText text r n catch Exception ex System Diagnostics Debug WriteLine Exception ex 80136501 001 IDTech Windows SDK Guide for Kiosk III IV ...

Page 33: ...RER PIN ENTRAR NPI 入密 10 MSG_INCORRE CT_PIN INCORRECT PIN NIP INCORRECT NPI INCORRECTO 密 11 MSG_ICC_MSR1 SWIPE OR INSE RT PASSER OU INS ERT MOVER O INSERT 刷卡或插卡 12 MSG_ICC_MSR2 CARD CARTE TARJETA 卡 13 MSG_INSERT_ CARD INSERT CARD INSERT CARTE INSERTAR TAR JETA 插卡 14 MSG_USE_CHI P_READER USE CHIP READ ER UTI LECTEUR CHIP USO CHIP LECT OR 使用芯片卡 15 MSG_NOT_ACC EPTED NOT ACCEPTED PAS ACCEPTE DENEGADO ...

Page 34: ..._TRY_ EX PIN TRY LIMIT EX PIN TRY DEPAS SE TRY PIN SUPER ADA 密次多 28 MSG_ISSUER_ AUTH_FAIL ISSUER AUTH F AIL EMETTEUR FAIL EMISOR FALLA 与卡机构 29 MSG_CONTINU E_PROCESS CONTINUE PRO CESS CONTINUER LA CONTINUAR PR OCES 理 30 MSG_GET_PIN_ ERROR GET PIN ERROR GET PIN ERROR OBTENER PIN E RR 密 31 MSG_GET_PIN_ FAIL GET PIN FAIL GET PIN FAIL OBTENER PIN F ALL 取密 32 MSG_NOKEY_G ET_PIN NO KEY GET PIN NO KEY GET...

Page 35: ...x502 return TR 31 format error case 0x702 return PAN is Error Key case 0x705 return No Internal MSR PAN or Internal MSR PAN is erased timeout case 0X0C01 return Incorrect Frame Tag case 0X0C02 return Incorrect Frame Type case 0X0C03 return Unknown Frame Type case 0X0C04 return Unknown Command case 0X0C05 return Unknown Sub Command case 0X0C06 return CRC Error case 0X0C07 return Failed case 0X0C08 ...

Page 36: ...anager case 0X0D4F return All key slots are full maximum number of keys has been installed case 0X0D50 return Auto Switch OK case 0X0D51 return Auto Switch failed case 0X0D90 return Account DUKPT Key not exist case 0X0D91 return Account DUKPT Key KSN exausted case 0x0D00 return This Key had been loaded case 0x0E00 return Base Time was loaded case 0x0F00 return Encryption Or Decryption Failed case ...

Page 37: ...eturn ICC error on power up invalid SBLK IFSD exchange case 0xE301 return ICC error after session start case 0xFF00 return Request to go online case 0xFF01 return EMV Accept the offline transaction case 0xFF02 return EMV Decline the offline transaction case 0xFF03 return EMV Accept the online transaction case 0xFF04 return EMV Decline the online transaction case 0xFF05 return EMV Application may f...

Page 38: ...ORE case 0x7001 return PK_BUFFER_SIZE_TOO_BIG case 0x7002 return PK_FILE_WRITE_ERROR case 0x7003 return PK_HASH_ERROR case 0x8001 return NO_CARD_HOLDER_CONFIRMATION case 0x8002 return GET_ONLINE_PIN case 0xD000 return Data not exist case 0xD001 return Data access error case 0xD100 return RID not exist case 0xD101 return RID existed case 0xD102 return Index not exist case 0xD200 return Maximum exce...

Page 39: ...or future use case 0X9045 return Reserved for future use case 0X9046 return Invalid DATA DUKPT Key case 0X9047 return Invalid PIN Pairing DUKPT Key case 0X9048 return Invalid DATA Pairing DUKPT Key case 0X9049 return No nonce generated case 0X9949 return No GUID available Perform getVersion first case 0X9950 return MAC Calculation unsuccessful Check BDK value case 0X904A return Not ready case 0X90...

Page 40: ...public enum EMV_ENCRYPTION_MODE EMV_ENCRYPTION_MODE_TDES 0 EMV_ENCRYPTION_MODE_AES 1 public enum EMV_LCD_DISPLAY_MODE EMV_LCD_DISPLAY_MODE_CANCEL 0 EMV_LCD_DISPLAY_MODE_MENU 1 EMV_LCD_DISPLAY_MODE_PROMPT 2 EMV_LCD_DISPLAY_MODE_MESSAGE 3 EMV_LCD_DISPLAY_MODE_LANGUAGE_SELECT 8 EMV_LCD_DISPLAY_MODE_CLEAR_SCREEN 16 public enum EMV_RESULT_CODE EMV_RESULT_CODE_APPROVED_OFFLINE 0 EMV_RESULT_CODE_DECLINED...

Page 41: ...33 IDTech Windows SDK Guide for Kiosk III IV 80136501 001 ...

Page 42: ...nce Number PSN 5F36 Transaction Currency Exponent 5F3C Transaction Reference Currency Code 5F3D Transaction Reference Currency Exponent 5F50 Issuer URL 5F53 International Bank Account Number IBAN 5F54 Bank Identifier Code BIC 5F55 Issuer Country Code alpha2 format 5F56 Issuer Country Code alpha3 format 5F57 Account Type 61 Application Template 62 File Control Parameters FCP Template 6F File Contro...

Page 43: ...er PIN Data 9A Transaction Date 9B Transaction Status Information 9C Transaction Type 9D Directory Definition File DDF Name 9F01 Acquirer Identifier 9F02 Amount Authorised Numeric 9F03 Amount Other Numeric 9F04 Amount Other Binary 9F05 Application Discretionary Data 9F06 Application Identifier AID terminal 9F07 Application Usage Control AUC 9F08 Application Version Number 9F09 Application Version ...

Page 44: ...ictable Number UN Reader Terminal 9F38 Processing Options Data Object List PDOL 9F39 Point of Service POS Entry Mode 9F3A Amount Reference Currency 9F3B Application Reference Currency 9F3C Transaction Reference Currency Code 9F3D Transaction Reference Currency Exponent 9F40 Additional Terminal Capabilities 9F41 Transaction Sequence Counter 9F42 Application Currency Code 9F43 Application Reference ...

Page 45: ...ted Operator ID 9F5C Magstripe Data Object List MDOL 9F5D Available Offline Spending Amount AOSA 9F5D Application Capabilities Information ACI 9F5E Consecutive Transaction International Upper Limit CTIUL 9F5E DS ID 9F5F DS Slot Availability 9F5F Offline Balance 9F60 CVC3 Track1 9F60 Issuer Update Parameter 9F60 P3 Generated 3DES KEYS 9F61 CVC3 Track2 9F62 PCVC3 Track1 9F62 Encrypted PIN ISO 95641 ...

Page 46: ... 9F77 VLP Funds Limit 9F78 VLP Single Transaction Limit 9F79 VLP Available Funds 9F7A VLP Terminal Support Indicator 9F7B VLP Terminal Transaction Limit 9F7C Customer Exclusive Data CED 9F7C Merchant Custom Data 9F7D DS Summary 1 9F7D VISA Applet Data 9F7E Mobile Support Indicator 9F7E Application life cycle data 8 first bytes 9F7F DS Unpredictable Number 9F7F Card Production Life Cycle CPLC Data ...

Page 47: ...iVOpay MSR Custom Data Output Tag DF78 MC Timing Performance Enable DF79 Card Disable Mask DF7A Card Disable Interval DF7B Serial Port UART Inter character Timeout Period DF7C Auto Switch Feature DF7D Track Formatting Feature DF7F Improved Collision Detection Media Removal Feature FF70 Serial Finite State Machine Version FF71 Transaction Finite State Machine Version FF72 System Information Suite F...

Page 48: ...r Limit Data DFDE04 MSR Encryption Option DFEE12 KSN of Account DUKPT Key DFEE15 Application Selection Indicator DFEE16 DUKPT Key or MKSK Select for Online PIN Encrypted DFEE17 ICC Terminal Entry Mode DFEE18 MSR Terminal Entry Mode DFEE19 Online DOL DFEE1A Output data element DFEE1B Authorization Request data elements DFEE1E Terminal Configuration DFEE1F Issuer Script Limit DFEE20 ICC power on wai...

Page 49: ...plePay VAS Container FFEE10 ViVOpay MChip Group Tag FFEE11 ViVOpay Discover Group Tag FFEE12 KSN of Account DUKPT Key FFEE13 Track 1 Data FFEE14 Track 2 Data FFEE1C Unpredictable Number Range FFEE1D Sensitive Data Mask IDTech Windows SDK Guide for Kiosk III IV 80136501 001 ...

Page 50: ...42 Namespace Index Chapter 11 Namespace Index 11 1 Packages Here are the packages with brief descriptions if available IDTechSDK 44 80136501 001 IDTech Windows SDK Guide for Kiosk III IV ...

Page 51: ...t Here are the classes structs unions and interfaces with brief descriptions IDTechSDK EMV_Callback 47 IDTechSDK IDT_KioskIII 49 IDTechSDK IDTCryptoData 69 IDTechSDK IDTTransactionData 71 IDTech Windows SDK Guide for Kiosk III IV 80136501 001 ...

Page 52: ..._APPLICATION_JCB 9 CTLS_APPLICATION_VIVO_D IAGNOSTIC 10 CTLS_APPLICATION_HID 11 CTLS_APPLICATION_MSR_SWIPE 12 CTLS_APPLICATION_RESERVED 13 CTLS_APPLICATI ON_DES_FIRE_TRACK_DATA 14 CTLS_APPLICATION_DES_FIRE_RAW_DATA 15 CTLS_APPLICATION_RBS 17 CTLS_APPLICATION_VIVO_COMM 20 enum EMV_PIN_MODE EMV_PIN_MODE_CANCEL 0 EMV_PIN_MODE_ONLINE_DUKPT 1 EMV _PIN_MODE_ONLINE_MKSK 2 EMV_PIN_MODE_OFFLINE 3 enum EMV_...

Page 53: ..._AIP_NOT_RECEIVED 0x5010 EMV_RESULT_CODE_AFL_NOT_RECEIVED 0x5011 EMV_RESULT_CODE_AFL_LEN_OUT_OF_RANGE 0x5012 EMV_RESULT_CODE_SFI_O UT_OF_RANGE 0x5013 EMV_RESULT_CODE_AFL_INCORRECT 0x5014 EMV_RESULT_CODE_EXP_DATE_INCORRECT 0x5015 EMV_RESULT_CODE_EFF_DATE_INCORRECT 0x5016 EMV_RESULT_CODE_ISS_COD_ TBL_OUT_OF_RANGE 0x5017 EMV_RESULT_CODE_CRYPTOGRAM_TYPE_INCORRECT 0x5018 EMV_RESULT_CODE_PSE _BY_CARD_NO...

Page 54: ...EMV_CALLBACK_TYPES 13 1 1 3 enum IDTechSDK EMV_LCD_DISPLAY_MODE strong Define EMV_LCD_DISPLAY_MODE 13 1 1 4 enum IDTechSDK EMV_PIN_MODE strong Define EMV_PIN_MODE 13 1 1 5 enum IDTechSDK EMV_RESULT_CODE strong Define EMV_PIN_MODE 80136501 001 IDTech Windows SDK Guide for Kiosk III IV ...

Page 55: ...imeout int lcd_entryTimeoutMinor byte language byte lcd_messages UInt16 lcd_backlightTimeout bool maskEntry 14 1 1 Detailed Description Class for LCD Message 14 1 2 Member Data Documentation 14 1 2 1 EMV_CALLBACK_TYPE IDTechSDK EMV_Callback callbackType Callback Type 1 EMV_CALLBACK_TYPE_LCD LCD Display Hardware Event 2 EMV_CALLBACK_TYPE_PINPAD Pinpad Hardware Event 3 EMV_CALLBACK_MSR MSR Hardware ...

Page 56: ...lay Total timeout for keypad entry in second default is 30 seconds 14 1 2 6 int IDTechSDK EMV_Callback lcd_entryTimeoutMinor Keypad Entry Timeout Minor If Normal Display or Menu Display minor timeout during each keypad entry in second little endian default is 10 seconds Note Minor timeout will erase all previous keypad entry 14 1 2 7 byte IDTechSDK EMV_Callback lcd_messages Display Message repeata...

Page 57: ... response required 1 EMV_PIN_MODE_O NLINE_DUKPT PIN_DUKPT_KEY required as response 2 EMV_PIN_MODE_ONLINE_MKSK PIN_SESSION _KEY required as response 3 EMV_PIN_MODE_OFFLINE PIN_PAIRING_DUKPT_KEY required as response unless devices does not implement pairing function then plaintext PIN required as response 14 1 2 15 byte IDTechSDK EMV_Callback pin_truncatedPAN Truncated PAN Truncated PAN The document...

Page 58: ... capk RETURN_CODE ctls_removeAllCAPK RETURN_CODE ctls_retrieveCAPKList ref byte keys RETURN_CODE device_startTransaction double amount double amtOther int exponent int type int time out byte tags RETURN_CODE device_activateTransaction int timeout byte tags RETURN_CODE ctls_startTransaction double amount double amtOther int exponent int type int timeout byte tags RETURN_CODE ctls_updateBalance byte...

Page 59: ...ith amount 0x000000000100 would be 0x9F0206000000000100 Returns RETURN_CODE Values can be parsed with errorCode getErrorString NOTE ON APPLEPAY VAS To enable ApplePay VAS first a merchant record must be defined in one of the six available index positions 1 6 using device_setMerchantRecord then container tag FFEE06 must be sent as part of the additional tags parameter of ctls_startTransaction Tag F...

Page 60: ...hSDK IDT_KioskIII ctls_cancelTransaction Cancel EMV Transaction Cancels the currently executing EMV transaction Returns RETURN_CODE Values can be parsed with errorCode getErrorString 14 2 2 4 RETURN_CODE IDTechSDK IDT_KioskIII ctls_getAllConfigurationGroups ref byte response Retrieve All Configuration Groups Returns all the Configuration Groups installed on the terminal for CTLS Parameters respons...

Page 61: ...a for CTLS as specified by the AID name passed as a parameter Parameters AID Name of ApplicationID Must be between 5 and 16 bytes Returns RETURN_CODE Values can be parsed with errorCode getErrorString 14 2 2 8 RETURN_CODE IDTechSDK IDT_KioskIII ctls_removeCAPK byte capk Remove Certificate Authority Public Key Removes the CAPK as specified by the RID Index Parameters capk 6 byte CAPK 5 bytes RID 1 ...

Page 62: ...errorCode getErrorString 14 2 2 11 RETURN_CODE IDTechSDK IDT_KioskIII ctls_retrieveApplicationData byte AID ref byte tlv Retrieve Application Data by AID Retrieves the CTLS Application Data as specified by the AID name passed as a parameter Parameters AID Name of ApplicationID Must be between 5 and 16 bytes tlv The TLV elements of the requested AID Returns RETURN_CODE Values can be parsed with err...

Page 63: ...ed the length of the next field Modulus This is the modulus field of the public key Its length is specified in the field above Returns RETURN_CODE Values can be parsed with errorCode getErrorString 14 2 2 13 RETURN_CODE IDTechSDK IDT_KioskIII ctls_retrieveCAPKList ref byte keys Retrieve the Certificate Authority Public Key list Returns all the CAPK RID and Index installed on the terminal for CTLS ...

Page 64: ...ulus Where Hash Algorithm The only algorithm supported is SHA 1 The value is set to 0x01 Encryption Algorithm The encryption algorithm in which this key is used Currently support only one type RSA The value is set to 0x01 HashValue Which is calculated using SHA 1 over the following fields RID Index Modulus Exponent Public Key Exponent Actually the real length of the exponent is either one byte or ...

Page 65: ...rameters amount Transaction amount value tag value 9F02 amtOther Other amount value if any tag value 9F03 type Transaction type tag value 9C timeout Timeout value in seconds tags Any other tags to be included in the request Passed as TLV data Example tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100 If tags 9F02 amount 9F03 other amount or 9C transaction type are included they will...

Page 66: ...tatusCode byte authCode byte date byte time Update Balance This command is the authorization response sent by the issuer to the terminal including the Authorization Status OK or NOT OK This command is also being used in some implementations i e EMEA to communicate the results of Issuer Authentication to the reader in order to display the correct LCD messages With this command the POS passes the au...

Page 67: ... index positions 1 6 using device_setMerchantRecord then container tag FFEE06 must be sent as part of the additional tags parameter of ctls_startTransaction Tag FFEE06 must contain tag 9F26 and 9F22 and can op tionanally contain tags 9F2B and DFO1 Example FFEE06189F220201009F2604000000009F2B050100000000 DF010101 9F22 two bytes ApplePay Terminal Applicaiton Version Number Hard defined as 0100 for n...

Page 68: ...nds Balance 0 00 Messages 08 0B are controlled by the terminal 08h Insert or Swipe card Use Chip PIN 09h Try Again Tap Again 0Ah Tells the customer to present only one card Present 1 card only 0Bh Tells the customer to wait for authentication authorization Wait FFh indicates the command is setting the LED Buzzer only Byte 1 Beep Indicator 00h No beep 01h Single beep 02h Double beep 03h Three short...

Page 69: ...g 99 bytes Byte 0 Merchand Index Byte 1 Merchant Enabled 1 enabled Byte 2 33 Merchant Protocol Hash 256 value Byte 34 Length of Merchant URL Bytes 35 99 URL Returns RETURN_CODE Values can be parsed with errorCode getErrorString 14 2 2 26 RETURN_CODE IDTechSDK IDT_KioskIII device_getTransactionResults ref IDTTransactionData results Get Transaction Results Gets the transaction results when the reade...

Page 70: ...C If TRUE this will wrap command with start length lrc sum end STX Len_Low Len_High data CheckLRC CheckSUM ETX response Response data Returns RETURN_CODE Values can be parsed with device_getResponseCodeString 14 2 2 30 RETURN_CODE IDTechSDK IDT_KioskIII device_sendDataCommand_ext string cmd bool calcLRC ref byte response int timeout bool noResponse Send a data command to the device extended Sends ...

Page 71: ...KioskIII device_sendVivoCommandP2_ext byte command byte subCommand byte data ref byte response int timeout bool noResponse Send Vivo Command Protocol 2 Extended Sends a protocol 2 command to Vivo readers IDG NEO Parameters command Command subCommand Sub Command data Data May be null response Response timeout Timeout in milliseconds 3000 3 seconds noResponse TRUE don t wait for response FALSE wait ...

Page 72: ...chSDK IDT_KioskIII device_setPollMode byte mode Send Poll Mode Sets the poll mode forthe device Auto Poll keeps reader active Poll On Demand only polls when requested by terminal Parameters mode 0 Auto Poll 1 Poll On Demand Returns RETURN_CODE Values can be parsed with errorCode getErrorString 14 2 2 36 RETURN_CODE IDTechSDK IDT_KioskIII device_startRKI Start Legacy Remote Key Injection Starts a r...

Page 73: ...rameter of ctls_startTransaction Tag FFEE06 must contain tag 9F26 and 9F22 and can op tionanally contain tags 9F2B and DFO1 Example FFEE06189F220201009F2604000000009F2B050100000000 DF010101 9F22 two bytes ApplePay Terminal Applicaiton Version Number Hard defined as 0100 for now required 9F26 four bytes ApplePay Terminal Capabilities Information required Byte 1 RFU Byte 2 Terminal Type Bit 8 VAS Su...

Page 74: ...receive status of the progress through callbacks to the IDTechSDK Callback delegate The following parameters will be passed back sender IDT_DEVICE_Types IDT_DEVICE_AUGUSTA state DeviceState FirmwareUpdate transactionResultCode status of the firmware update starting entering bootloader applying update block success firmware success data File Progress Four bytes with bytes 0 1 current block and byte...

Page 75: ... n break case RETURN_CODE RETURN_CODE_BLOCK_TRANSFER_SUCCESS int start data 0 0x100 data 1 int end data 2 0x100 data 3 SetOutputText Sent block start ToString of end ToString n break default SetOutputText Firmware Update Error Code 0x String Format 0 X ushort transactionResultCode IDTechSDK errorCode getErrorString transactionResultCode r n break break 14 2 2 40 static int IDTechSDK IDT_KioskIII g...

Page 76: ...command response Parameters milliseconds Time 14 2 2 45 static bool IDTechSDK IDT_KioskIII useSerialPort int port static Use Serial Port Interface Instructs SDK to attempt to use the Serial Port for communication with Kiosk III IV using default baud rate Parameters port Serial Port to use Example COM1 1 Returns bool TRUE successful FALSE failure 14 2 2 46 static bool IDTechSDK IDT_KioskIII useSeri...

Page 77: ...m the following file Source IDT_KioskIII cs 14 3 IDTechSDK IDTCryptoData Class Reference Public Attributes byte BDK byte KSN byte IPEK byte DEK byte DataVariant byte PINVariant byte MACVariant bool isTDES int keyVariant bool isDecryption byte dataToProcess byte dataResults byte pinBlock byte clearPinBlock string PAN string PIN int PINBlockType string errorString bool MAC_Command 14 3 1 Detailed De...

Page 78: ...2 5 byte IDTechSDK IDTCryptoData DataVariant Data Encryption Key variant of DEK 14 3 2 6 byte IDTechSDK IDTCryptoData DEK Derived Encryption Key 14 3 2 7 string IDTechSDK IDTCryptoData errorString Encryption Decryption Error 14 3 2 8 byte IDTechSDK IDTCryptoData IPEK Initial Public Encryption Key 14 3 2 9 bool IDTechSDK IDTCryptoData isDecryption TRUE Decrypt Data FALSE Encrypt Data 14 3 2 10 bool...

Page 79: ... 3 2 16 string IDTechSDK IDTCryptoData PIN PIN derived from clearPinBlock or used to create clearPinBlock 14 3 2 17 byte IDTechSDK IDTCryptoData pinBlock Encrypted Pin Block 14 3 2 18 int IDTechSDK IDTCryptoData PINBlockType PIN Block Type TDES can be 0 or 3 AES will be 4 14 3 2 19 byte IDTechSDK IDTCryptoData PINVariant PIN Encryption Key variant of DEK The documentation for this class was genera...

Page 80: ...Present byte msr_sessionID byte msr_hashTrack1 byte msr_hashTrack2 byte msr_hashTrack3 KEY_VARIANT_TYPE msr_keyVariantType byte msr_extendedField int isCTLS CTLS_APPLICATION ctlsApplication byte emv_clearingRecord byte emv_encryptedTags byte emv_unencryptedTags EMV_RESULT_CODE emv_resultCode byte emv_maskedTags byte emv_encipheredOnlinePIN bool emv_hasAdvise bool emv_hasReversal string pin_pinbloc...

Page 81: ...URE_CARD_TYPE_CTLS_MSD CAPTURE_CARD_TYPE_MSR 14 4 2 2 byte IDTechSDK IDTTransactionData captured_CSC Captured Customer Service Code 14 4 2 3 byte IDTechSDK IDTTransactionData captured_Expiry Captured Expiry Date 14 4 2 4 string IDTechSDK IDTTransactionData captured_firstPANDigits First plaintext PAN Digits 14 4 2 5 byte IDTechSDK IDTTransactionData captured_InitialVector This initial vector is use...

Page 82: ...ES CAPTURE_ENCRYPT_TYPE_AES CAPTURE_ENCRYPT_TYPE_NONE CAPTURE_ENCRYPT_TRANS_ARMOR_PKI CAPTURE_ENCRYPT_VOLTAGE CAPTURE_ENCRYPT_VISA_FPE CAPTURE_ENCRYPT_VERIFONE_FPE CAPTURE_ENCRYPT_DESJARDIN 14 4 2 13 CAPTURE_ENCRYPT_TYPE IDTechSDK IDTTransactionData captureEncryptTypeEMV Get the encrypted type for EMV please see CAPTURE_ENCRYPT_TYPE for more information CAPTURE_ENCRYPT_TYPE_UNKNOWN CAPTURE_ENCRYPT...

Page 83: ...XTENDED_STATUS_CODES IDTechSDK IDTTransactionData emv_ESC Extended Status Code select AR products 14 4 2 22 bool IDTechSDK IDTTransactionData emv_hasAdvise Advise 14 4 2 23 bool IDTechSDK IDTTransactionData emv_hasReversal Reversal 14 4 2 24 byte IDTechSDK IDTTransactionData emv_maskedTags Masked Tags TLV 14 4 2 25 EMV_RESULT_CODE IDTechSDK IDTTransactionData emv_resultCode EMV Result Code 14 4 2 ...

Page 84: ... 33 int IDTechSDK IDTTransactionData isCTLS Track data was captured via CTLS interface 0 Unknown 1 True 2 False 14 4 2 34 byte IDTechSDK IDTTransactionData mac Message Authentication Code 14 4 2 35 byte IDTechSDK IDTTransactionData macKSN Message Authentication Code Key Serial Number 14 4 2 36 byte IDTechSDK IDTTransactionData msr_captureEncodeStatus Get the swiped card decoded status 0x00 decoded...

Page 85: ...ntaining Track3 encrypted data 14 4 2 41 int IDTechSDK IDTTransactionData msr_errorCode Contains error code when data is not returned 14 4 2 42 byte IDTechSDK IDTTransactionData msr_extendedField Extended Field Data Byte 0 1 Hash SHA256 14 4 2 43 byte IDTechSDK IDTTransactionData msr_hashTrack1 Get the swiped card Track1 hash data A byte array containing Track1 hash data 14 4 2 44 byte IDTechSDK I...

Page 86: ...th Get the swiped card length of Track1 data 14 4 2 52 String IDTechSDK IDTTransactionData msr_track2 Get the swiped card Track2 data A string containing Track2 masked data expressed as hex characters 14 4 2 53 int IDTechSDK IDTTransactionData msr_track2Length Get the swiped card length of Track2 data 14 4 2 54 String IDTechSDK IDTTransactionData msr_track3 Get the swiped card Track3 data A string...

Page 87: ... 59 string IDTechSDK IDTTransactionData pin_pinblock PIN block from PINPAD 14 4 2 60 byte IDTechSDK IDTTransactionData SW1 SW1 14 4 2 61 byte IDTechSDK IDTTransactionData SW2 SW2 The documentation for this class was generated from the following file Source IDT_Transactions cs IDTech Windows SDK Guide for Kiosk III IV 80136501 001 ...

Page 88: ...oveAllCAPK IDTechSDK IDT_KioskIII 53 ctls_removeApplicationData IDTechSDK IDT_KioskIII 53 ctls_removeCAPK IDTechSDK IDT_KioskIII 53 ctls_removeConfigurationGroup IDTechSDK IDT_KioskIII 53 ctls_retrieveAIDList IDTechSDK IDT_KioskIII 54 ctls_retrieveApplicationData IDTechSDK IDT_KioskIII 54 ctls_retrieveCAPKList IDTechSDK IDT_KioskIII 55 ctls_retrieveCAPK IDTechSDK IDT_KioskIII 54 ctls_retrieveTermi...

Page 89: ...de IDTechSDK IDTTransactionData 75 emv_rfStateCode IDTechSDK IDTTransactionData 75 emv_transaction_Error_Code IDTechSDK IDTTransactionData 75 emv_unencryptedTags IDTechSDK IDTTransactionData 76 errorString IDTechSDK IDTCryptoData 70 Event IDTechSDK IDTTransactionData 76 getCommandTimeout IDTechSDK IDT_KioskIII 67 hasMACVerificationData IDTechSDK IDTTransactionData 76 IDTechSDK EMV_Callback 47 IDTe...

Page 90: ...ptured_MACKSN 73 captured_MACValue 74 captured_PAN 74 captured_SHA256 74 captured_firstPANDigits 73 captured_lastPANDigits 73 ctlsApplication 74 device_RSN 74 emv_ESC 75 emv_RF_State 75 emv_appErrorFn 74 emv_appErrorState 75 emv_clearingRecord 75 emv_encipheredOnlinePIN 75 emv_encryptedTags 75 emv_hasAdvise 75 emv_hasReversal 75 emv_maskedTags 75 emv_resultCode 75 emv_rfStateCode 75 emv_transactio...

Page 91: ...TransactionData 77 msr_hashTrack3 IDTechSDK IDTTransactionData 77 msr_keyVariantType IDTechSDK IDTTransactionData 77 msr_rawData IDTechSDK IDTTransactionData 78 msr_sessionID IDTechSDK IDTTransactionData 78 msr_swipeTimeout IDTechSDK EMV_Callback 49 msr_track1 IDTechSDK IDTTransactionData 78 msr_track1Length IDTechSDK IDTTransactionData 78 msr_track2 IDTechSDK IDTTransactionData 78 msr_track2Lengt...

Page 92: ...84 INDEX SharedController IDTechSDK IDT_KioskIII 69 useSerialPort IDTechSDK IDT_KioskIII 68 useUSB IDTechSDK IDT_KioskIII 68 80136501 001 IDTech Windows SDK Guide for Kiosk III IV ...

Reviews: