background image

8

Important Security Notice

• Back-out or product de-installation procedures

5.4 The payment application must not use or require use of unnecessary and insecure services and protocols (for
example, NetBIOS, file-sharing, Telnet, unencrypted FTP must be secured via SSH, S-FTP, SSL, IPSec and other
technology to implement end to end security). PCI Data Security Standard Requirement 2.2.2

6. Protect wireless transmissions

6.1 For payment applications using wireless technology, the wireless technology must be implemented securely.
Payment applications using wireless technology must facilitate use of industry best practices (for example, IE

-

EE 802.11i) to implement strong encryption for authentication and transmission. Controls must be in place to
protect the implemented wireless network from unknown wireless access points and clients. This includes testing
the end users wireless deployment on a quarterly basis to detect unauthorized access points within the system.
Change wireless vendor defaults, including but not limited to default wireless encryption keys, passwords, and S

-

NMP community strings. Maintain a detailed updated hardware list. The end to end wireless implementation must
be end to end secure. The use of WEP as a security control was prohibited as of 30 June 2010. PCI Data Security
Standard Requirements 1.2.3, 2.1.1, 4.1.1, 6.2, 11.1a-e and 11.4a-c.

7. Test payment applications to address vulnerabilities

7.1 Software vendors must establish a process to identify newly discovered security vulnerabilities (for example,
subscribe to alert services freely available on the Internet) and to test their payment applications 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 establish a process for timely development and deployment of security patches and
upgrades, which includes delivery of updates and patches in a secure manner with a known chain-of-trust, and
maintenance of the integrity of patch and update code during delivery and deployment.

8. Facilitate secure network implementation

8.1 The payment application must be able to be implemented into a secure network environment. Application must
not interfere with use of devices, applications, or configurations required for PCI DSS compliance (for example, pay-
ment application cannot interfere with anti-virus protection, firewall configurations, or any other device, application,
or configuration required for PCI DSS compliance). PCI Data Security Standard Requirements 1, 3, 4, 5, and 6.

9. Cardholder data must never be stored on a server connected to the Internet

9.1 The payment application must be developed such that the database server and web server are not required to
be on the same server, nor is the database server required to be in the DMZ with the web server. PCI Data Security
Standard Requirement 1.3.7

10. Facilitate secure remote software updates

10.1 If payment application updates are delivered securely via remote access into customers systems, software
vendors must tell customers to turn on remote-access technologies only when needed for downloads from vendor

#80152504-001 IDTech iOS SDK Guide for NEO2

Summary of Contents for Vivopay Neo 2

Page 1: ...Apple iOS SDK Guide for NEO2 80152802 001 Rev A...

Page 2: ...ii Revision History Revision Description and Reason for Change Date A Initial Release Manual User NEO2 SDK iOS 1 29 2018 80152504 001 IDTech iOS SDK Guide for NEO2...

Page 3: ...cessary framework libraries 15 6 3 Add Import statements to utilize frameworks 21 6 4 Amend the view controller interface to include the framework delegate classes 21 6 5 Implement any all of the opti...

Page 4: ...2 Error Code Reference 57 9 Enumeration Reference 59 10 EMV Tag Reference 63 11 Hierarchical Index 76 11 1 Class Hierarchy 76 12 Class Index 77 12 1 Class List 77 13 Class Documentation 78 13 1 AIDEnt...

Page 5: ...7 2 17 ctls_setConfigurationGroup NSData tlv 89 13 7 2 18 ctls_setTerminalData NSData tlv 90 13 7 2 19 ctls_startTransaction type timeout tags double amount type int type timeout int timeout tags NSM...

Page 6: ...onData NSString AID 102 13 7 2 48 emv_removeCAPK index NSString rid index NSString index 103 13 7 2 49 emv_removeCRLList 103 13 7 2 50 emv_removeTerminalData 104 13 7 2 51 emv_retrieveAIDList NSArray...

Page 7: ...NSString message signature NSData signature 116 13 7 2 79 pin_captureFunctionKey 117 13 7 2 80 pin_captureNumericInput minPIN maxPIN message signature bool mask min PIN int minPIN maxPIN int maxPIN me...

Page 8: ...ieveTerminalData 128 13 11 2 17sendSystemError 128 13 11 2 18setApplicationData IDTech_ApplicationID data 128 13 11 2 19setTag tagData NSString tagName tagData NSData data 128 13 11 2 20setTerminalDat...

Page 9: ...Property Documentation 136 13 14 3 1 captureEncodeType 136 13 14 3 2 captureEncryptType 136 13 14 3 3 event 136 13 14 3 4 readStatus 136 13 15MaskAndEncryption Struct Reference 137 13 15 1 Detailed D...

Page 10: ......

Page 11: ...the requirements of the frameworks as well as the interface definitions and requirements needed for any iOS applications wishing to deploy with the payment application Connecting to NEO2 BLE version C...

Page 12: ...me IDT_NEO2 The API method to start BLE scanning device_enableBLEDeviceSearch IDT_NEO2 The very first time a NEO2 is used with a particular iOS device it must be located by it s friendly name as the d...

Page 13: ...SDP 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...

Page 14: ...g into production on your application 3 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 Gui...

Page 15: ...r 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...

Page 16: ...e access 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 chang...

Page 17: ...ersonnel 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 Appli...

Page 18: ...ent applications 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...

Page 19: ...ing technologies 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 c...

Page 20: ...ds org 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 capninfocen...

Page 21: ...y By default auto authenticate is ON and this step does not need to be performed If auto authenticate is OFF emv_disableAutoAuthenticateTransaction IDT_NEO2 when the results come back as EMV_RESULT_CO...

Page 22: ...onse emv_removeCAPK index IDT_NEO2 IDT_NEO2 emv_setCAPK emv_retrieveCAPKList IDT_NEO2 ctls_retrieveCAPK key IDT_NEO2 ctls_removeCAPK IDT_NEO2 ctls_setCAPK IDT_NEO2 IDT_NEO2 ctsl_retrieveCAPKList Metho...

Page 23: ...ceive Swipe and CTLS to receive tap If swipe captured returns IDTMSRData instance to deviceDelegate swipeMSRData If CTLS captured returns ID TEMVData to deviceDelegate emvTransactionData Cancel Swipe...

Page 24: ...on the NEO platform A NEO command con sists 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 SD...

Page 25: ...ent optional delegate protocols Allocate initialize IDT_NEO2 objects Sample Project Tutorial 6 2 Import the necessary framework libraries Communicating with IDTech Devices requires the following frame...

Page 26: ...Core Implementation NEO2 Objective C On the Choose Frameworks screen click Add Other in the lower left Navigate to the IDTech framework folder and click Open 80152504 001 IDTech iOS SDK Guide for NEO...

Page 27: ...ary framework libraries 17 Link the ExternalAccessory framework On the Choose Frameworks screen type exter into the search bar select ExternalAccesssory framework and click Open IDTech iOS SDK Guide f...

Page 28: ...layer framework AVFoundation framework AudioToolbox framework and CFNetwork framework Link another library Under Copy Bundle click the Add button click Add Other navigate to and select the IDTech bund...

Page 29: ...6 2 Import the necessary framework libraries 19 IDTech iOS SDK Guide for NEO2 80152802 001...

Page 30: ...20 Core Implementation NEO2 Objective C The Build Phases should now include the required frameworks libraries for the NEO2 80152504 001 IDTech iOS SDK Guide for NEO2...

Page 31: ...legate classes In the header files of the classes that will be a delegate of IDTech framework include the reference to the framework delegate class name interface ViewController UIViewController IDT_N...

Page 32: ...Do any additional setup after loading the view typically from a nib IDT_NEO2 sharedController setDelegate self IDT_NEO2 sharedController device_enableBLEDeviceSearch nil 6 7 Sample Project Tutorial Us...

Page 33: ...Import the necessary framework libraries 6 7 3 Step 3 Design Interface Design the User Interface by editing the iPhone storyboard file Open your storyboard and add items to so it contains the followi...

Page 34: ...Scan for BLE Device Start Transaction Complete ICC EMV Cancel Transaction add constraints accordingly so layout maps to intended screen size 6 7 4 Step 4 Configure Header File In the header file perfo...

Page 35: ...e type bottom id 2fi mo 0CV layoutGuides view key view contentMode scaleToFill id kh9 bI dsS rect key frame x 0 0 y 0 0 width 414 height 736 autoresizingMask key autoresizingMask flexibleMaxX YES flex...

Page 36: ...er lineBreakMode middleTruncation translatesAutoresizingMaskIntoConstraints NO id QvK Hw R0Z rect key frame x 20 y 87 width 374 height 26 color key backgroundColor red 1 green 1 blue 1 alpha 1 colorSp...

Page 37: ...1 constraints constraint firstAttribute height constant 21 id cH1 gW ZeD constraints fontDescription key fontDescription type system pointSize 14 color key textColor red 0 0 green 0 0 blue 0 0 alpha 1...

Page 38: ...eading id hIx P5 n22 constraint firstItem XfN t5 Cxv firstAttribute top secondItem oIl 91 J9y secondAttribute bottom constant 8 symbolic YES id jrl iP BpW constraint firstItem QvK Hw R0Z firstAttribut...

Page 39: ...ngWithFormat Encode Type Other break case CAPTURE_ENCODE_TYPE_Raw self appendMessageToResults NSString stringWithFormat Encode Type Raw break case CAPTURE_ENCODE_TYPE_JIS_I self appendMessageToResults...

Page 40: ...Tags cardData unencryptedTags description if cardData encryptedTags nil self appendMessageToResults NSString stringWithFormat Encrypted Tags cardData encryptedTags description if cardData maskedTags n...

Page 41: ...appendMessageToResults NSString stringWithFormat Unencrytped Tags emvData unencryptedTags description if emvData encryptedTags nil self appendMessageToResults NSString stringWithFormat Encrypted Tags...

Page 42: ...alse fallback true if RETURN_CODE_DO_SUCCESS rt self appendMessageToResults Start Transaction Command Accepted Please Swipe Insert Tap IBAction completeEMV id sender logTextView text RETURN_CODE rt ID...

Page 43: ...Controller Interface Implement Optional Delegate Protocols Allocate Initialize IDT_NEO2 Object Sample Project Tutorial 7 2 Import the Necessary Framework Libraries Communicating with IDTech Devices re...

Page 44: ...34 Core Implementation NEO2 Swift On the Choose Frameworks screen click Add Other in the lower left Navigate to the IDTech framework folder and click Open 80152504 001 IDTech iOS SDK Guide for NEO2...

Page 45: ...sary Framework Libraries 35 Link the ExternalAccessory framework On the Choose Frameworks screen type exter into the search bar select ExternalAccesssory framework and click Add IDTech iOS SDK Guide f...

Page 46: ...er framework AVFoundation framework AudioToolbox framework and CFNetwork framework Link another library Under Copy Bundle click the Add button click Add Other navigate to and select the IDTech bundle...

Page 47: ...7 2 Import the Necessary Framework Libraries 37 IDTech iOS SDK Guide for NEO2 80152802 001...

Page 48: ...38 Core Implementation NEO2 Swift The Build Phases should now include the required frameworks libraries for the NEO2 80152504 001 IDTech iOS SDK Guide for NEO2...

Page 49: ...File Using the NEO2 SDK with Swift requires a bridging header to allow the application to have a mixed language codebase First you will need to create a header file Right click on your project direct...

Page 50: ...40 Core Implementation NEO2 Swift On the file creation screen select Header File and click Next 80152504 001 IDTech iOS SDK Guide for NEO2...

Page 51: ...7 3 Create a Bridging Header File 41 On the following screen choose a name for your header file and click Create IDTech iOS SDK Guide for NEO2 80152802 001...

Page 52: ...42 Core Implementation NEO2 Swift The bridging header file is now created 80152504 001 IDTech iOS SDK Guide for NEO2...

Page 53: ...link your header file to the bridging header setting Navigate to Build Settings within Xcode Type bridging into the search bar and double click the Objective C Bridging Header setting to get an input...

Page 54: ...er Interface In the view controller classes that will be a delegate of IDTech framework include the reference to the framework delegate class name class ViewController UIViewController IDT_NEO2_Delega...

Page 55: ...r loading the view typically from a nib IDT_NEO2 sharedController delegate self 7 8 Sample Project Tutorial Using Xcode 7 3 1 we will create a sample project that will interface with the NEO2 and will...

Page 56: ...46 Core Implementation NEO2 Swift 7 8 1 Step 1 Create New Project Create a new Single View Application in Xcode 80152504 001 IDTech iOS SDK Guide for NEO2...

Page 57: ...Tutorial 47 7 8 2 Step 2 Import Frameworks Import the Necessary Framework Libraries 7 8 3 Step 3 Design Interface Design the User Interface by editing the Main storyboard file IDTech iOS SDK Guide for...

Page 58: ...ant the keyboard to pop up if you accidentally select it Add buttons to execute the following functions Get Firmware Start MSR CTLS Start ICC EMV Complete ICC EMV Cancel Transaction Add constraints ac...

Page 59: ...ider target sceneMemberID viewController layoutGuides viewControllerLayoutGuide type top id y3c jy aDJ viewControllerLayoutGuide type bottom id wfy db euE layoutGuides view key view contentMode scaleT...

Page 60: ...132 height 30 state key normal title Cancel Transaction connections action selector cancelTransaction destination BYZ 38 t0r eventType touchUpInside id GXx f7 Rgx connections button button opaque NO c...

Page 61: ...NO id RTX Hq mMT rect key frame x 8 y 226 width 584 height 160 color key backgroundColor white 0 66666666669999997 alpha 0 14835831930000001 colorSpace calibratedWhite fontDescription key fontDescript...

Page 62: ...Margin secondItem etO Zq HWr secondAttribute trailing constant 20 id S1d up ufn constraint firstItem Y4B gd hVo firstAttribute leading secondItem 8bC Xf vdC secondAttribute leadingMargin constant 20 i...

Page 63: ...t case EVENT_MSR_CARD_DATA switch cardData captureEncodeType case CAPTURE_ENCODE_TYPE_ISOABA appendMessageToLog Encode Type ISO ABA case CAPTURE_ENCODE_TYPE_AAMVA appendMessageToLog Encode Type AA MVA...

Page 64: ...Data encTrack2 hexEncodedString NSLog Encoded Track 3 cardData encTrack3 nil N A cardData encTrack3 hexEncodedString NSLog Hash Track 1 cardData hashTrack1 nil N A cardData hashTrack1 hexEncodedString...

Page 65: ...geToLog Unencrypted Tags String describing emvData unencryptedTags if emvData encryptedTags nil appendMessageToLog Encrypted Tags String describing emvData encryptedTags if emvData maskedTags nil appe...

Page 66: ...sharedController emv_startTransaction 1 00 amtOther 0 type 0 timeout 60 tags nil forceOnline false fallback true logTextView text if RETURN_CODE_DO_SUCCESS rt appendMessageToLog Start Transaction Com...

Page 67: ...dex ILM SAM Transceiver error problem communicating with the SAM Key Mgr 0021 Unexpected Sequence Counter in multiple frames for single bitmap ILM Length error in data returned from the SAM Key Mgr 00...

Page 68: ...ng with the SAM Key Mgr EE21 Unexpected Sequence Counter in multiple frames for single bitmap ILM Length error in data returned from the SAM Key Mgr EE22 Improper bit map ILM EE23 Request Online Autho...

Page 69: ...TDES 0 CAPTURE_ENCRYPT_TYPE_AES 1 CAPTURE_ENCRYPT_TYPE IDTCommon typedef enum POWER_ON_OPTION_IFS_FLAG 1 POWER_ON_OPTION_EXPLICIT_PPS_FLAG 2 POWER_ON_OPTION_AUTO_PPS_FLAG 64 POWER_ON_OPTION_IFS_RESPON...

Page 70: ...typedef enum EVENT_MSR_UNKNOWN 31 EVENT_MSR_CARD_DATA EVENT_MSR_CANCEL_KEY EVENT_MSR_BACKSPACE_KEY EVENT_MSR_ENTER_KEY EVENT_MSR_DATA_ERROR EVENT_MSR_ICC_START EVENT_BTPAY_CARD_DATA EVENT_NEO2_EMV_NO_...

Page 71: ...LT_CODE_V2_SMARTCARD_FAIL 0x3001 EMV_RESULT_CODE_V2_SMARTCARD_INIT_FAILED 0x3003 EMV_RESULT_CODE_V2_FALLBACK_SITUATION 0x3004 EMV_RESULT_CODE_V2_SMARTCARD_ABSENT 0x3005 EMV_RESULT_CODE_V2_SMARTCARD_TI...

Page 72: ...V2_CVM_TAG_8E_FORMAT_ERROR 0X6004 EMV_RESULT_CODE_V2_CVM_CODE_IS_NOT_SUPPORTED 0X6005 EMV_RESULT_CODE_V2_CVM_COND_CODE_IS_NOT_SUPPORTED 0X6006 EMV_RESULT_CODE_V2_CVM_NO_MORE 0X6007 EMV_RESULT_CODE_V2_...

Page 73: ...ncy 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...

Page 74: ...Data 99 Transaction Personal Identification Number PIN Data 98 Transaction Certificate TC Hash Value 9A Transaction Date YYMMDD 9A Transaction Date 9B Transaction Status Information 9B Transaction Sta...

Page 75: ...ities see below 9F34 Cardholder Verification Method CVM Results 9F35 Terminal Type see below 9F36 Application Transaction Counter ATC 9F37 Unpredictable Number 9F38 Processing Options Data Object List...

Page 76: ...lity 9F60 CVC3 Track1 9F61 CVC3 Track2 9F62 PCVC3 Track1 9F64 NATC Track1 9F65 PCVC3 Track2 9F66 PUNATC Track2 9F67 NATC Track2 9F68 Card Additional Processes 9F69 UDOL 9F6A Unpredictable Number Numer...

Page 77: ...D6 Default ARPC response code D7 Application Control PayPass D8 AIP PayPass D9 AFL PayPass DA Static CVC3 TRACK1 DB Static CVC3 TRACK2 DC IVCVC3 TRACK1 DD IVCVC3 TRACK2 DF01 ApplePay VAS Protocol DF02...

Page 78: ...TK Customer Additional POS Info DF4E Polling Options DF4F TTK Customer Fallback Reason DF50 Special Flow DF51 Amex Terminal Capability DF52 Transaction CVM DF55 RID DF56 Activate Trans for DESFireViVO...

Page 79: ...Media Removal Feature DF891B Poll Mode DF891C Interac Retry Limit DFDE04 MSR Encryption Option DFEE0C PPSE Terminate Flags DFEE12 KID DFEE15 Application Selection Indicator DFEE16 DUKPT Key or MKSK Se...

Page 80: ...ED DFEF42 MAC VerificationKSN for SRED DFEF43 Local TZ DST information DFEF44 CombinationOptions DFEF45 Removal Timeout DFEF46 ACT Pass Response DOL DFEF47 CDA Hash Input DFEF48 Indicate retrieve tran...

Page 81: ...messages option DFEF79 PIN block format when TDES DFEF7A Enable Apple Pay Check DFEF7B Apple Pay Status DFEF7C Track Bit Encoding DFEF7D Re power on times DFEF7E Fallback response code list FF69 ViVO...

Page 82: ...FFEE13 Track 1 Data FFEE13 Cashback Reader Risk Record FFEE14 Track 2 Data FFEE14 DRL Record 1 FFEE15 DRL Record 2 FFEE16 DRL Record 3 FFEE17 DRL Record 4 FFEE18 Tags To Write Yet Before GenAC FFEE19...

Page 83: ...x x x x Cashback x x x x 1 x x x Inquiry x x x x x 1 x x Transfer x x x x x x 1 x Payment x x x x x x x 1 Administrative Byte 2 b8 b7 b6 b5 b4 b3 b2 b1 Meaning 1 x x x x x x x Cash Deposit x 0 x x x x...

Page 84: ...0 RFU Byte 3 b8 b7 b6 b5 b4 b3 b2 b1 Meaning 0 x x x x x x x RFU Revocation of Issuer Public Key Certificate DF26 x 1 x x x x x x Manual action when CA PK loading fails x x 1 x x x x x CA PK verified...

Page 85: ...CC Magstripe reader combined x x 1 x x x x x Magstripe read first x x x 1 x x x x Support account type selection x x x x 1 x x x On fly script processing x x x x x 1 x x Internal date management x x x...

Page 86: ...9 CAKey 81 CRLEntry 81 ICCReaderStatus 82 IDT_Device_Delegate IDT_NEO2 83 IDTechEMV 123 IDTech_ApplicationID 121 IDTech_TerminalData 122 MaskAndEncryption 137 NSObject APDUResponse 78 IDT_NEO2 83 IDTe...

Page 87: ...8 APDUResponse 78 ApplicationID 79 CAKey 81 CRLEntry 81 ICCReaderStatus 82 IDT_NEO2 83 IDT_NEO2_Delegate 119 IDTech_ApplicationID 121 IDTech_TerminalData 122 IDTechEMV 123 IDTechEMV_Delegate 130 IDTEM...

Page 88: ...th 13 1 1 Detailed Description AID Entry Used to populate array in IDT_BTPay emv_retrieveAIDList IDT_UniPay emv_retrieveAIDList The documentation for this struct was generated from the following file...

Page 89: ...DU encrypted ksn response IDT_UniPay icc_exchangeAPDU encrypted response 13 2 2 Method Documentation 13 2 2 1 void clear clears all APDUResponse properties 13 2 2 2 APDUResponse sharedController Singl...

Page 90: ...r 0x01 unsigned char tACDenial 5 Terminal Action Code Denial unsigned char tACOnline 5 Terminal Action Code Online unsigned char tACDefault 5 Terminal Action Code Default unsigned char terminalFloorLi...

Page 91: ...t networks definition unsigned char exponentLength Length of exponent 0x01 or 0x03 as per EMV specs unsigned char keyLength Length of key max 248 bytes as per EMV specs unsigned char exponent 3 CA Pub...

Page 92: ...g file Source_iOS IDTCommon h 13 6 ICCReaderStatus Struct Reference include IDTCommon h Public Attributes bool iccPower Determines if ICC has been powered up bool cardSeated Determines if card is inse...

Page 93: ...TURN_CODE ctls_setApplicationData RETURN_CODE ctls_setCAPK RETURN_CODE ctls_setConfigurationGroup RETURN_CODE ctls_setTerminalData RETURN_CODE ctls_startTransaction type timeout tags RETURN_CODE ctls_...

Page 94: ...nfig_getSerialNumber RETURN_CODE icc_exchangeAPDU response RETURN_CODE icc_getICCReaderStatus RETURN_CODE icc_powerOnICC RETURN_CODE icc_powerOffICC RETURN_CODE msr_cancelMSRSwipe RETURN_CODE msr_star...

Page 95: ...ee parameters resets the default password to 123456 Parameters name Device name 1 25 characters oldPW Old password as a six character string example 123456 newPW New password as a six character string...

Page 96: ...ls_removeApplicationData NSString AID Remove Application Data by AID Removes the Application Data for CTLS as specified by the AID name passed as a parameter Parameters AID Name of ApplicationID as He...

Page 97: ...IDTCommon RETURN_CODE Values can be parsed with device_getResponseCodeString 13 7 2 11 RETURN_CODE ctls_retrieveApplicationData NSString AID response NSDictionary response Retrieve Application Data b...

Page 98: ...ngth LenL LenH Indicated 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 Return codes listed as typedef...

Page 99: ...e CAKey structure Parameters key CAKey format 5 bytes RID 1 byte Index 1 byte Hash Algorithm 1 byte Encryption Algorithm 20 bytes HashValue 4 bytes Public Key Exponent 2 bytes Modulus Length Variable...

Page 100: ...up int group You cannot delete group 0 Parameters tlv TerminalData configuration data Returns RETURN_CODE Return codes listed as typedef enum in IDTCommon RETURN_CODE Values can be parsed with device_...

Page 101: ...NSData transTags VAS NSData VAS Start a CTLS Transaction Request Authorizes the CTLS transaction for an CTLS card including AppleVAS and SmartTAP The tags will be returned in the callback routine Par...

Page 102: ...6 RFU Bit 5 RFU Bit 1 2 3 4 0 Payment Terminal 1 Transit Terminal 2 Access Terminal 3 Wireless Handoff Terminal 4 App Handoff Terminal 15 Other Terminal Byte 3 RFU Byte 4 Terminal Mode 0 ApplePay VAS...

Page 103: ...he UUID of the connected BLE device NEO2 Returns NSUUID UUID of the connected BLE device Returns nil if no BLE device connected 13 7 2 23 bool device_disableBLEDeviceSearch Stops searching for Bluetoo...

Page 104: ...legate This device does not support Bluetooth Low Energy This app is not authorized to use Bluetooth Low Energy Bluetooth on this device is currently powered off The BLE Manager is resetting a state u...

Page 105: ...SR 0x0006 PINPad Busy SDK is doing PINPad task RETURN_CODE_SDK_BUSY_PINPAD 0x0007 Unknown Unknown error RETURN_CODE_ERR_OTHER 0x0100 through 0xFFFF refer to IDT_UniPay device_getResponseCodeString 13...

Page 106: ...and One byte command as per NEO IDG Reference Guide subCommand One byte sub command as per NEO IDG Reference Guide data Command data if applicable response Returns next Command response Returns RETURN...

Page 107: ...ough mode on NEO2 Parameters enablePassThrough TRUE Pass through enabled Returns RETURN_CODE 0x0000 Success no error RETURN_CODE_DO_SUCCESS 0x0001 Disconnect no response from reader RETURN_CODE_ERR_DI...

Page 108: ...he request Returns RETURN_CODE Return codes listed as typedef enum in IDTCommon RETURN_CODE Values can be parsed with device_getResponseCodeString NOTE ON INTERFACE SELECTION For the NEO2 tag DFEF37 i...

Page 109: ...0000000100 Tag DFEE1A can be used to specify tags to be returned in response in addition to the default tags Example DFEE1A049F029F03 will return tags 9F02 and 9F03 with the response Returns RETURN_CO...

Page 110: ...getErrorString 13 7 2 42 RETURN_CODE emv_cancelTransaction Cancels Transaction request all interfaces CTLS MSR INSERT Returns RETURN_CODE Return codes listed as typedef enum in IDTCommon RETURN_CODE...

Page 111: ...TURN_CODE_SDK_BUSY_MSR 0x0006 PINPad Busy SDK is doing PINPad task RETURN_CODE_SDK_BUSY_PINPAD 0x0007 Unknown Unknown error RETURN_CODE_ERR_OTHER 0xFE00 Authorization Accepted RETURN_CODE_EMV_AUTHORIZ...

Page 112: ...erminalMajorConfiguration NSUInteger configuration Gets the terminal major configuration in ICS Parameters configuration A configuration value range 1 5 1 1C 2 2C 3 3C 4 4C 5 5C Returns RETURN_CODE Va...

Page 113: ...or task or CMD RETURN_CODE_ERR_TIMEDOUT 0x0004 Invalid Parameter wrong parameter RETURN_CODE_ERR_INVALID_PARAMETER 0x0005 MSR Busy SDK is doing MSR or ICC task RETURN_CODE_SDK_BUSY_MSR 0x0006 PINPad B...

Page 114: ...parameter with an Array of NSString with AID names Each AID name represent a unique configuration file to be loaded used when a matching application is found on a card during a transaction Parameters...

Page 115: ...ime out for task or CMD RETURN_CODE_ERR_TIMEDOUT 0x0004 Invalid Parameter wrong parameter RETURN_CODE_ERR_INVALID_PARAMETER 0x0005 MSR Busy SDK is doing MSR or ICC task RETURN_CODE_SDK_BUSY_MSR 0x0006...

Page 116: ...meters response Response returned contains an NSArray of NSString items 12 characters each characters 1 10 RID characters 11 12 index Example a00000000357 RID a00000003 Index 57 Returns RETURN_CODE 0x...

Page 117: ...tring representation of the tag hex value example DF13 and the Object being the Value as NSData example 0x00058003FF The data returned will be from the range of allowable kernel EMV tags Please see EM...

Page 118: ...t the end of this document for the listing NOTES There is no minimum defined set of AID TLV data that must be provided other than 9F06 for the AID name If this AID is selected and matched during an EM...

Page 119: ...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...

Page 120: ...nge of allowable kernel EMV tags Please see EMV Tag Reference at the end of this document for the listing NOTES There is an uneditable set of tags that make up the current kernel configuration major p...

Page 121: ...ABLED this function will complete with a return of EMV_RESULT_CODE_START_TRANSACTION_SUCCESS to emvTransactionData delegate protocol and then IDT_NEO2 emv_authenticateTransaction must be executed If a...

Page 122: ...alue of 04 if this tag is not provided 13 7 2 64 RETURN_CODE felica_authentication NSData key FeliCa Authentication Provides a key to be used in a follow up FeliCa Read with MAC 3 blocks max or Write...

Page 123: ...E Values can be parsed with errorCode getErrorString 13 7 2 67 RETURN_CODE felica_readWithMac int numBlocks blockList NSData blockList blocks NSData blocks FeliCa Read with MAC Generation Reads up to...

Page 124: ...to work Parameters blockNumber Number of block data Block to write Must be 16 bytes Returns RETURN_CODE Values can be parsed with errorCode getErrorString 13 7 2 70 RETURN_CODE icc_exchangeAPDU NSDat...

Page 125: ...sta else sta NSString stringWithFormat Card not Seated sta 13 7 2 72 RETURN_CODE icc_powerOffICC NSString error Power Off ICC Powers down the ICC Parameters error Returns the error if any Returns RETU...

Page 126: ...IDT_Device getNumeric minLength maxLength messageID language and IDT_Device getAmount maxLength messageID language and IDT_Device getCardAccount max line1 line2 and IDT_Device pin_getFunctionKey and I...

Page 127: ...ers mask True mask input with False no masking of input minPIN Minimum PIN Length maxPIN Maximum PIN Length message LCD Message signature Display message signed by Numeric Private Key using RSAPSS alg...

Page 128: ...message LCD Message Results returned to pinpadData delegate Returns RETURN_CODE Values can be parsed with errorCode getErrorString 13 7 2 82 NSString SDK_version SDK Version Returns the current versio...

Page 129: ...id pinpadData keySN event void lcdDisplay lines void emvTransactionData errorCode 13 8 1 Detailed Description Protocol methods established for IDT_NEO2 class 13 8 2 Method Documentation 13 8 2 1 void...

Page 130: ...0x04 List of languages are presented for selection A selection must be made to resume the transaction 0x10 Clear Screen Command to clear the LCD screen 13 8 2 5 void pinpadData NSData value keySN NSDa...

Page 131: ...s per payment networks Tag 9F06 unsigned char aidLen AID s length unsigned char applicationVersionNumber 2 EMV application version number Tag 9F09 unsigned char tacDefault 5 Terminal Action Code Denia...

Page 132: ...ion of a terminal at a merchant unsigned char defaultTACDefault 5 Default Terminal Action Code Denial Tag DF13 unsigned char defaultTACDenial 5 Default Terminal Action Code Denial Tag DF14 unsigned ch...

Page 133: ...ernelChecksum NSString getEMVConfigurationChecksum NSData getTag void removeApplicationData NSArray retrieveAIDList IDTech_ApplicationID retrieveApplicationData IDTech_TerminalData retrieveTerminalDat...

Page 134: ...acters ASCII value Example 00 iad Issuer Authentication Data Optional 10 bytes 20 Hex Characters representing data Example 11223344556677883030 scripts Issuer Scripts Optional Data represented by Hex...

Page 135: ...inserted card Only available after the card has been processed after executing IDTechEMV startEMVTransaction timeout additionalTags Returns data NSdictionary with all tag values Key is NSString Object...

Page 136: ...ta getTag NSString tagName Get Tag Retrieves an EMV tag from the inserted card Only available after the card has been processed after executing IDTechEMV startEMVTransaction timeout additionalTags 801...

Page 137: ...ID in ASCII example A0000000031020 Must be between 5 and 16 characters 13 11 2 14 NSArray retrieveAIDList Retrieve AID list Returns all the AID name length on the inserted ICC Populates response param...

Page 138: ...plicationID configuration file 13 11 2 19 void setTag NSString tagName tagData NSData data Set Tag Sets an EMV tag from the tags read into the terminal Only available after the card has been processed...

Page 139: ...lue format 950500000080009B02E8009F2701018A025 A339F26080C552B9364D55CE5 This data contains the following EMV tags values Tag Length Value 95 05 0000008000 9B 02 E800 9F27 01 01 8A 02 5A33 9F26 08 0C5...

Page 140: ...pplications to select from during and EMV transactions when terminal is set for cardholder confirmation or a decision must be made between multiple applications available for selection Array index of...

Page 141: ...interaction or post information Parameters message EMV Message Type typedef enum MESSAGE_INSERT_CARD 0 MESSAGE_REMOVE_CARD EMV_MESSAGE_Types 13 12 2 4 void languagePreference NSData lang optional Lang...

Page 142: ...g Object tag value NSData NSDictionary encryptedTags Encrypted EMV Tags Key tag name NSString Object tag value NSData NSDictionary maskedTags Encrypted EMV Tags Key tag name NSString Object tag value...

Page 143: ...V_RESULT_CODE_V2_NOT_ACCEPTED 0x0006 EMV_RESULT_CODE_V2_USE_MAGSTRIPE 0x0007 EMV_RESULT_CODE_V2_TIME_OUT 0x0008 EMV_RESULT_CODE_V2_START_TRANS_SUCCESS 0x0010 EMV_RESULT_CODE_V2_MSR_SUCCESS 0x0011 EMV_...

Page 144: ...RESULT_CODE_V2_CVM_TAG_8E_FORMAT_ERROR 0X6004 EMV_RESULT_CODE_V2_CVM_CODE_IS_NOT_SUPPORTED 0X6005 EMV_RESULT_CODE_V2_CVM_COND_CODE_IS_NOT_SUPPORTED 0X6006 EMV_RESULT_CODE_V2_CVM_NO_MORE 0X6007 EMV_RES...

Page 145: ...k 2 encoded data NSData hashTrack3 Sha 256 hash of Track 3 encoded data NSString RSN Reader Serial Number NSData KSN Key Serial Number NSData sessionID Session ID Security level 4 only unsigned char r...

Page 146: ...EVENT_MSR_CANCEL_KEY EVENT_MSR_BACKSPACE_KEY EVENT_MSR_ENTER_KEY EVENT_MSR_DATA_ERROR EVENT_MSR_ICC_START EVENT_BTPAY_CARD_DATA EVENT_UNIPAYII_EMV_NO_ICC_MSR_DATA EVENT_UNIPAYII_EMV_FALLBACK_DATA EVE...

Page 147: ...unsigned char maskOption 13 15 1 Detailed Description Mask and Encryption Used to Set Retrieve mask and encryption values IDT_BTPay emv_retrieveAIDList IDT _UniPay emv_retrieveAIDList 13 15 2 Member...

Page 148: ...onfirmation Indicates whether or not cardholder may confirm application selection at EMV Selection time Tag 58 0x00 or 0x01 unsigned char terminalType Standard parameter Tag 9F35 See EMVCo book IV uns...

Page 149: ...inal 0x00 or 0x01 unsigned char defaultTACDenial 5 Default TAC Denial value See EMVCo book IV unsigned char defaultTACOnline 5 Default TAC Online value See EMVCo book IV unsigned char defaultTACDefaul...

Page 150: ...emoveCAPK IDT_NEO2 86 ctls_removeConfigurationGroup IDT_NEO2 86 ctls_retrieveAIDList IDT_NEO2 87 ctls_retrieveApplicationData response IDT_NEO2 87 ctls_retrieveCAPK key IDT_NEO2 87 ctls_retrieveCAPKLi...

Page 151: ...DT_NEO2 107 emv_retrieveTransactionResult retrievedTags IDT_NEO2 107 emv_setApplicationData configData IDT_NEO2 108 emv_setCAPKFile IDT_NEO2 109 emv_setCRLEntries IDT_NEO2 109 emv_setTerminalData IDT_...

Page 152: ...4 emv_retrieveCAPKFile index response 105 emv_retrieveCAPKList 106 emv_retrieveCRLList 106 emv_retrieveTerminalData 107 emv_retrieveTransactionResult retrievedTags 107 emv_setApplicationData configDat...

Page 153: ...maskOption MaskAndEncryption 137 msr_cancelMSRSwipe IDT_NEO2 115 msr_startMSRSwipe IDT_NEO2 116 pin_cancelPin IDT_NEO2 116 pin_captureAmountInput maxPIN message signature IDT_NEO2 116 pin_captureFunc...

Reviews: