IDTech iOS SDK Guide  1.1.166.045
API reference for VP3300
VP3300 Main Transaction Commands

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_VP3300)
Start CTLS Transaction (EMV or MSD)
IDT_VP3300::ctls_startTransaction:amtOther:type:timeout:tags:forceOnline:fallback:()
Start Any Interface Transaction
device_startTransaction:amtOther:type:timeout:tags:forceOnline:fallback: (IDT_VP3300)

Begins an amount authorization request with the ICC. Returns authorization decision (approved, denied, or go online) in delegate method.


emv_authenticateTransaction: (IDT_VP3300)

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_VP3300)), 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_VP3300)

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_VP3300)
emv_removeTerminalData (IDT_VP3300)
emv_setTerminalData: (IDT_VP3300)
ctls_setTerminalData: (IDT_VP3300)
ctls_setConfigurationGroup: (IDT_VP3300)
ctls_removeConfigurationGroup: (IDT_VP3300)
ctls_getConfigurationGroup:response: (IDT_VP3300)

Methods for terminal configuration. When setting the terminal data, you populate and pass and TerminalFile structure.


AID Management
emv_retrieveApplicationData:response: (IDT_VP3300)
emv_removeApplicationData: (IDT_VP3300)
emv_setApplicationData:configData: (IDT_VP3300)
emv_retrieveAIDList: (IDT_VP3300)
ctls_retrieveApplicationData:response: (IDT_VP3300)
ctls_removeApplicationData: (IDT_VP3300)
ctls_setApplicationData: (IDT_VP3300)
ctls_retrieveAIDList: (IDT_VP3300)

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_VP3300)
emv_removeCAPK:index: (IDT_VP3300)
emv_setCAPK: (IDT_VP3300)
emv_retrieveCAPKList: (IDT_VP3300)
ctls_retrieveCAPK:key: (IDT_VP3300)
ctls_removeCAPK: (IDT_VP3300)
ctls_setCAPK: (IDT_VP3300)
IDT_VP3300::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_VP3300)
emv_removeCRLList (IDT_VP3300)
emv_setCRLEntries: (IDT_VP3300)

Methods for Certificate Revocation List management.


APDU Communication
device_setPassThrough: (IDT_VP3300)
icc_powerOnICC: (IDT_VP3300)
icc_powerOffICC: (IDT_VP3300)

icc_exchangeAPDU:response: (IDT_VP3300)
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_VP3300)
ctls_startTransaction (IDT_VP3300)
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_VP3300)
ctls_cancelTransaction (IDT_VP3300)
Both methods perform identical operation. Cancels the Swipe/Tap request.