The methods below are provided as a reference to the main commands needed to execute a contact or contactless EMV transaction, or collect MSR information from a swipe or tap.
EMV Methods
- Start EMV Transaction
- emv_startTransaction:amtOther:type:timeout:tags:forceOnline:fallback: (IDT_NEO2)
- Start CTLS Transaction (EMV or MSD)
- IDT_NEO2::ctls_startTransaction:amtOther:type:timeout:tags:forceOnline:fallback:()
- Start Any Interface Transaction
- IDT_NEO2::device_startTransaction:amtOther:type:timeout:tags:forceOnline:fallback:()
Begins an amount authorization request with the ICC. Returns authorization decision (approved, denied, or go online) in delegate method.
emv_authenticateTransaction: (IDT_NEO2)
For contact EMV only. 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_CODE.EMV_RESULT_CODE_AUTHENTICATE_TRANSACTION, this method must be called to continue the EMV transaction.
- Complete Online EMV Transaction
- emv_completeOnlineEMVTransaction:hostResponseTags: (IDT_NEO2)
For contact EMV only. After receiving a host response, pass host tags (minimum 8A Authorization Response Code) as a TLV stream through the tags parameter. EMV tags can be parsed returned pointer.
If there was a communication error with host, you must still finish the EMV transaction by passing "FALSE" for isSuccess, and nil for tags.
- Terminal Configuration
- emv_retrieveTerminalData: (IDT_NEO2)
emv_removeTerminalData (IDT_NEO2)
emv_setTerminalData: (IDT_NEO2)
ctls_setTerminalData: (IDT_NEO2)
ctls_setConfigurationGroup: (IDT_NEO2)
ctls_removeConfigurationGroup: (IDT_NEO2)
ctls_getConfigurationGroup:response: (IDT_NEO2)
Methods for terminal configuration. When setting the terminal data, you populate and pass and TerminalFile structure.
- AID Management
- emv_retrieveApplicationData:response: (IDT_NEO2)
emv_removeApplicationData: (IDT_NEO2)
emv_setApplicationData:configData: (IDT_NEO2)
emv_retrieveAIDList: (IDT_NEO2)
ctls_retrieveApplicationData:response: (IDT_NEO2)
ctls_removeApplicationData: (IDT_NEO2)
ctls_setApplicationData: (IDT_NEO2)
ctls_retrieveAIDList: (IDT_NEO2)
Methods for AID management on Contact EMV. When setting the AID, you pass tags in TLV format. When retrieving AID, you can receive the results as tags in TLV format. When retrieving the AID list, the list of AID Names/length can be retrieved from the NSArray of NSString.
- CAPK Management
- emv_retrieveCAPK:index:response: (IDT_NEO2)
emv_removeCAPK:index: (IDT_NEO2)
emv_setCAPK: (IDT_NEO2)
emv_retrieveCAPKList: (IDT_NEO2)
ctls_retrieveCAPK:key: (IDT_NEO2)
ctls_removeCAPK: (IDT_NEO2)
ctls_setCAPK: (IDT_NEO2)
IDT_NEO2::ctsl_retrieveCAPKList:()
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 NSData parameter. When retrieving the CAPK list, the list of RID/Index can be retrieved from the ordered NSData stream, 6 bytes each, bytes 1-5 RID, byte 6 index.
- CRL Management
- emv_retrieveCRLList: (IDT_NEO2)
emv_removeCRLList (IDT_NEO2)
emv_setCRLEntries: (IDT_NEO2)
Methods for Certificate Revocation List management.
- APDU Communication
- device_setPassThrough: (IDT_NEO2)
icc_powerOnICC: (IDT_NEO2)
icc_powerOffICC: (IDT_NEO2)
icc_exchangeAPDU:response: (IDT_NEO2)
Allows the direct sending of APDU packets to ICC. Pass through mode must first be enabled. Then Power On needs to complete successfully. Then APDU packet exchange can take place
MSR/CTLS MSD
- Request Swipe or Tap
- msr_startMSRSwipe (IDT_NEO2)
IDT_NEO2::ctls_startTransaction()
Both methods perform identical operation. Enables MSR to receive Swipe and CTLS to receive tap. If swipe captured, returns IDTMSRData instance to deviceDelegate::swipeMSRData:(). If CTLS captured, returns IDTEMVData to deviceDelegate::emvTransactionData:()
- Cancel Swipe
- msr_cancelMSRSwipe (IDT_NEO2)
ctls_cancelTransaction (IDT_NEO2)
Both methods perform identical operation. Cancels the Swipe/Tap request.