IDTech Android SDK Guide  1.00.173
API reference for VP3300 AJ
com.idtechproducts.device.IDT_VP3300 Class Reference

Public Member Functions

void setGen2Callback (OnReceiverListenerGen2 callback)
 
int device_cancelGen2Transaction ()
 
 IDT_VP3300 (OnReceiverListener callback, Context context)
 
 IDT_VP3300 (OnReceiverListener callback, OnReceiverListenerPINRequest callback2, Context context)
 
boolean device_setDeviceType (ReaderInfo.DEVICE_TYPE deviceType)
 
void setIDT_Device (FirmwareUpdateTool fwTool)
 
DEVICE_TYPE device_getDeviceType ()
 
void registerListen ()
 
void unregisterListen ()
 
void release ()
 
boolean device_disconnectBLE ()
 
int device_enableBLESearch (DEVICE_TYPE type, String name, int timeout)
 
String getBTLEDeviceAddress ()
 
String config_getSDKVersion ()
 
String config_getXMLVersionInfo ()
 
String phone_getInfoManufacture ()
 
String phone_getInfoModel ()
 
void log_setVerboseLoggingEnable (boolean enable)
 
void log_setSaveLogEnable (boolean enable)
 
int log_deleteLogs ()
 
int emv_callbackResponsePIN (int mode, byte[] KSN, byte[] PIN)
 
int device_sendGen2Cmd (byte[] encPayload, byte[] payloadMac, Gen2DataStruct respData, int timeout)
 
void config_setXMLFileNameWithPath (String xmlFilename)
 
boolean config_loadingConfigurationXMLFile (boolean updateAutomatically)
 
boolean device_connectWithProfile (StructConfigParameters profile)
 
void device_ConnectWithoutValidation (boolean noValidate)
 
int device_pollForToken (int timeout, ResDataStruct respData)
 
boolean device_connect ()
 
boolean device_isConnected ()
 
int device_startRKI ()
 
int device_startRKI (boolean isDemo)
 
int device_startRKI (String Key, boolean isDemo)
 
int device_startRKI (String Key)
 
void device_setSymmetric_RKI_URL (String srki_url)
 
int autoConfig_start (String strXMLFilename)
 
void autoConfig_stop ()
 
int device_startTransaction (double amount, double amtOther, int type, final int timeout, byte[] tags)
 
int device_startTransaction (double amount, double amtOther, int type, final int timeout, byte[] tags, boolean isFastEMV)
 
int device_cancelTransaction ()
 
int device_getFirmwareVersion (StringBuilder version)
 
int device_pingDevice ()
 
int device_ReviewAudioJackSetting (ResDataStruct respData)
 
int config_getSerialNumber (StringBuilder serialNumber)
 
int device_getKSN (ResDataStruct ksn)
 
int device_setMerchantRecord (int index, boolean enabled, String merchantID, String merchantURL)
 
int device_getMerchantRecord (int index, ResDataStruct respData)
 
String device_getResponseCodeString (int errorCode)
 
int device_sendDataCommand (String cmd, boolean calcLRC, String data, ResDataStruct respData)
 
int device_sendDataCommand (String cmd, boolean calcLRC, String data, ResDataStruct respData, int timeout)
 
int device_updateFirmware (String[] commands)
 
int device_getTransactionResults (IDTMSRData cardData)
 
int device_setBurstMode (byte mode)
 
int device_setPollMode (byte mode)
 
int device_controlUserInterface (byte[] values)
 
int device_getRTCDateTime (byte[] dateTime)
 
int device_setRTCDateTime (byte[] dateTime)
 
int icc_getICCReaderStatus (ICCReaderStatusStruct ICCStatus)
 
int icc_powerOnICC (ResDataStruct atrPPS)
 
int icc_passthroughOnICC ()
 
int icc_passthroughOffICC ()
 
int icc_powerOffICC (ResDataStruct respData)
 
int icc_exchangeAPDU (byte[] dataAPDU, ResDataStruct response)
 
int emv_getEMVKernelVersion (StringBuilder version)
 
int emv_getEMVKernelCheckValue (ResDataStruct respData)
 
int emv_getEMVConfigurationCheckValue (ResDataStruct respData)
 
int emv_retrieveApplicationData (String aid, ResDataStruct respData)
 
int emv_removeApplicationData (String aid, ResDataStruct respData)
 
int emv_setApplicationData (String aid, byte[] TLV, ResDataStruct respData)
 
int emv_retrieveTerminalData (ResDataStruct respData)
 
int emv_removeTerminalData (ResDataStruct respData)
 
int emv_setTerminalData (byte[] TLV, ResDataStruct respData)
 
int emv_retrieveAidList (ResDataStruct respData)
 
int emv_retrieveCAPK (byte[] data, ResDataStruct respData)
 
int emv_removeCAPK (byte[] capk, ResDataStruct respData)
 
int emv_setCAPK (byte[] key, ResDataStruct respData)
 
int emv_retrieveCAPKList (ResDataStruct respData)
 
int emv_retrieveCRL (ResDataStruct respData)
 
int emv_removeCRL (byte[] crlList, ResDataStruct respData)
 
int emv_setCRL (byte[] crlList, ResDataStruct respData)
 
int emv_startTransaction (double amount, double amtOther, int type, final int timeout, byte[] tags, boolean forceOnline)
 
int emv_cancelTransaction (ResDataStruct respData)
 
void emv_setTransactionParameters (double amount, double amtOther, int type, final int timeout, byte[] tags)
 
void emv_lcdControlResponse (byte mode, byte data)
 
int emv_authenticateTransaction (byte[] tags)
 
int emv_completeTransaction (boolean commError, byte[] authCode, byte[] iad, byte[] tlvScripts, byte[] tags)
 
int emv_retrieveTransactionResult (byte[] tags, Map< String, Map< String, byte[]>> retrievedTags)
 
int emv_setTerminalMajorConfiguration (int configuration)
 
int device_reviewAllSetting (ResDataStruct respData)
 
int msr_defaultAllSetting ()
 
int msr_cancelMSRSwipe ()
 
int msr_startMSRSwipe ()
 
int msr_startMSRSwipe (int timeout)
 
int ctls_retrieveApplicationData (String aid, ResDataStruct respData)
 
int ctls_removeApplicationData (String aid, ResDataStruct respData)
 
int ctls_setApplicationData (byte[] TLV, ResDataStruct respData)
 
int ctls_setConfigurationGroup (byte[] TLV, ResDataStruct respData)
 
int ctls_getConfigurationGroup (int group, ResDataStruct respData)
 
int ctls_getAllConfigurationGroups (ResDataStruct respData)
 
int ctls_removeConfigurationGroup (int group)
 
int ctls_retrieveTerminalData (ResDataStruct respData)
 
int ctls_setTerminalData (byte[] TLV, ResDataStruct respData)
 
int ctls_retrieveAidList (ResDataStruct respData)
 
int ctls_retrieveCAPK (byte[] data, ResDataStruct respData)
 
int ctls_removeCAPK (byte[] capk, ResDataStruct respData)
 
int ctls_setCAPK (byte[] key, ResDataStruct respData)
 
int ctls_retrieveCAPKList (ResDataStruct respData)
 
int ctls_removeAllApplicationData ()
 
int ctls_removeAllCAPK ()
 
int ctls_startTransaction (double amount, double amtOther, int type, final int timeout, byte[] tags)
 
int ctls_activateTransaction (final int timeout, byte[] tags)
 
int ctls_cancelTransaction ()
 
int expireSessionKeys (Gen2DataStruct respData)
 
int removeEnrollment (Gen2DataStruct respData)
 
int getSessionKeyStatus (Gen2DataStruct respData)
 
int startVTRTPolling (byte timeout, Gen2DataStruct respData)
 
int cancelVTRTPolling (Gen2DataStruct respData)
 
int startVTRT (byte[] data, Gen2DataStruct respData)
 
int finalizeVTRT (byte[] data, Gen2DataStruct respData)
 
int startSession (byte[] data, Gen2DataStruct respData)
 
int finalizeSession (byte[] data, Gen2DataStruct respData)
 
String createFastEMVData (IDTEMVData emvData)
 
int wp_executeTransaction (IDT_VP3300 idt_device, WorldPay.WorldPayData data, WorldpayListener callback, boolean requestOnly)
 
int wp_forwardTransaction (WorldpayListener callback, String forwardID, String password, boolean bypassProcessing)
 
int wp_cancelTransaction ()
 
void wp_setReturnRequest (boolean returnRequest)
 

Static Public Member Functions

static IDT_Device getSDKInstance ()
 
static void useUSBIntentFilter ()
 
static IDT_Device getIDT_Device ()
 
static void device_setMonitorCtlsTransactionData (boolean monitor)
 
static void emv_allowFallback (boolean allow)
 
static void emv_setAutoAuthenticateTransaction (boolean auto)
 
static boolean emv_getAutoAuthenticateTransaction ()
 
static void emv_setAutoCompleteTransaction (boolean auto)
 
static boolean emv_getAutoCompleteTransaction ()
 

Constructor & Destructor Documentation

◆ IDT_VP3300() [1/2]

com.idtechproducts.device.IDT_VP3300.IDT_VP3300 ( OnReceiverListener  callback,
Context  context 
)

It is the constructor of the main class IDT_VP3300. When it is called, the SDK will create the Instance for IDT_VP3300 device. The interface OnReceiverListner needs to be implemented in the application.

Parameters
callbackOnReceiverListener callback
contextApplication context

◆ IDT_VP3300() [2/2]

com.idtechproducts.device.IDT_VP3300.IDT_VP3300 ( OnReceiverListener  callback,
OnReceiverListenerPINRequest  callback2,
Context  context 
)

It is the constructor of the main class IDT_VP3300. When it is called, the SDK will create the Instance for IDT_VP3300 device. The interface OnReceiverListner needs to be implemented in the application.

Parameters
callbackOnReceiverListener callback
contextApplication context

Member Function Documentation

◆ autoConfig_start()

int com.idtechproducts.device.IDT_VP3300.autoConfig_start ( String  strXMLFilename)

start Auto Config to search the profile.

Parameters
strXMLFilenameInput the customized XML file as the templates to search the profile.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ autoConfig_stop()

void com.idtechproducts.device.IDT_VP3300.autoConfig_stop ( )

stop Auto Config.

Returns
null.

◆ cancelVTRTPolling()

int com.idtechproducts.device.IDT_VP3300.cancelVTRTPolling ( Gen2DataStruct  respData)

Cancels CTLS polling for VTRT

respData.statusCode 0: VTC_SECURITY_RESULT_CODE_Success 1: VTC_SECURITY_RESULT_CODE_Failure 2: VTC_SECURITY_RESULT_CODE_No_Data_Found 3: VTC_SECURITY_RESULT_CODE_No_Authentication_Key 4: VTC_SECURITY_RESULT_CODE_No_Agreement_Key 5: VTC_SECURITY_RESULT_CODE_Invalid_Data 6: VTC_SECURITY_RESULT_CODE_Signature_Validation_Failed 7: VTC_SECURITY_RESULT_CODE_Nonce_Mismatch 8: VTC_SECURITY_RESULT_CODE_KC_MAC_Mismatch 9: VTC_SECURITY_RESULT_CODE_Session_Keys_Expired 10: VTC_SECURITY_RESULT_CODE_No_Session_Keys 11: VTC_SECURITY_RESULT_CODE_No_K_init_Key

◆ config_getSDKVersion()

String com.idtechproducts.device.IDT_VP3300.config_getSDKVersion ( )

READER CONFIG API LIST Get the version of SDK.

Returns
the SDK version string

◆ config_getSerialNumber()

int com.idtechproducts.device.IDT_VP3300.config_getSerialNumber ( StringBuilder  serialNumber)

Get the serial number of device.

Parameters
serialNumberreturns Serial Number string.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ config_getXMLVersionInfo()

String com.idtechproducts.device.IDT_VP3300.config_getXMLVersionInfo ( )

Get XML configuration version.

Returns
the version info.

◆ config_loadingConfigurationXMLFile()

boolean com.idtechproducts.device.IDT_VP3300.config_loadingConfigurationXMLFile ( boolean  updateAutomatically)

Load XML Configuration File.

Parameters
updateAutomatically
Returns
none

◆ config_setXMLFileNameWithPath()

void com.idtechproducts.device.IDT_VP3300.config_setXMLFileNameWithPath ( String  xmlFilename)

set XML Configuration File Name with the full path.

Parameters
xmlFilename,XMLConfiguration File Name.
Returns
none

◆ createFastEMVData()

String com.idtechproducts.device.IDT_VP3300.createFastEMVData ( IDTEMVData  emvData)

Create Fast EMV Data

At the completion of a Fast EMV Transaction, after the final card decision is returned and the IDTEMVData object is provided, sending that emvData object to this method will return string data that represents the Fast EMV data that would be returned from and IDTech FastEMV over KB protocol

Parameters
emvDataThe IDTEMVData object populated with card data.
Returns
Fast EMV String data

◆ ctls_activateTransaction()

int com.idtechproducts.device.IDT_VP3300.ctls_activateTransaction ( final int  timeout,
byte []  tags 
)

Activate CTLS Transaction Request

Authorizes the CTLS (or MSR) transaction for an ICC card

The tags will be returned in the callback routine.

Parameters
timeoutTimeout value in seconds.
Tagsto be included in the request. Passed as a byte array. Example, tag 9F0C with amount 0x000000000100 would be the byte array "9F0C06000000000100" If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method. Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F36959F37
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode Note: if auto poll is on, it will return the error IDG_P2_STATUS_CODE_COMMAND_NOT_ALLOWED

◆ ctls_cancelTransaction()

int com.idtechproducts.device.IDT_VP3300.ctls_cancelTransaction ( )

Cancel CTLS (or MSR) Transaction

Cancels the currently executing CTLS transaction (or MSR swipe request).

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_getAllConfigurationGroups()

int com.idtechproducts.device.IDT_VP3300.ctls_getAllConfigurationGroups ( ResDataStruct  respData)

Retrieve All Configuration Groups

Returns all the Configuration Groups installed on the terminal for CTLS.

Parameters
respDataReturns TLV in ResDataStruct.resData. Status Code in ResDataStruct.statusCode. If no Application data exists, status code will be 0x60
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_getConfigurationGroup()

int com.idtechproducts.device.IDT_VP3300.ctls_getConfigurationGroup ( int  group,
ResDataStruct  respData 
)

Get Configuration Group

Retrieves the Configuration for the specified Group.

Parameters
groupConfiguration Group
respDataReturns TLV in ResDataStruct.resData. Status Code in ResDataStruct.statusCode. If no Application data exists, status code will be 0x60
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_removeAllApplicationData()

int com.idtechproducts.device.IDT_VP3300.ctls_removeAllApplicationData ( )

Remove all Application Data

Removes all the Application Data

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_removeAllCAPK()

int com.idtechproducts.device.IDT_VP3300.ctls_removeAllCAPK ( )

Remove All Certificate Authority Public Key

Removes all CAPK

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_removeApplicationData()

int com.idtechproducts.device.IDT_VP3300.ctls_removeApplicationData ( String  aid,
ResDataStruct  respData 
)

Remove Application Data

Removes the Application Data as specified by the AID name passed as a parameter

Parameters
aidAid file to remove.
respDataStatus Code in ResDataStruct.statusCode. If no application data exists, status code will be 0x60. Format error status code 0x05
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_removeCAPK()

int com.idtechproducts.device.IDT_VP3300.ctls_removeCAPK ( byte []  capk,
ResDataStruct  respData 
)

Remove Certificate Authority Public Key

Removes the CAPK as specified by the RID/Index

Parameters
capk6 byte CAPK = 5 bytes RID + 1 byte INDEX
respDataStatus Code in ResDataStruct.statusCode.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_removeConfigurationGroup()

int com.idtechproducts.device.IDT_VP3300.ctls_removeConfigurationGroup ( int  group)

Remove Configuration Group

Removes the Configuration as specified by the Group. Must not by group 0

Parameters
groupConfiguration Group
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_retrieveAidList()

int com.idtechproducts.device.IDT_VP3300.ctls_retrieveAidList ( ResDataStruct  respData)

Retrieve Aid List

Returns all the AID names installed on the terminal.

Parameters
respDataArray of AID string names passed back in ResDataStruct.stringArray. Status Code in ResDataStruct.statusCode. If no AIDs exists, status code will be 0x60
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_retrieveApplicationData()

int com.idtechproducts.device.IDT_VP3300.ctls_retrieveApplicationData ( String  aid,
ResDataStruct  respData 
)

Retrieve Application Data

Retrieves the TLV values of a provide AID.

Parameters
aidAid file to retrieve.
respDataReturns TLV in ResDataStruct.resData. Status Code in ResDataStruct.statusCode. If no application data exists, status code will be 0x60
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_retrieveCAPK()

int com.idtechproducts.device.IDT_VP3300.ctls_retrieveCAPK ( byte []  data,
ResDataStruct  respData 
)

Retrieve Certificate Authority Public Key

Retrieves the CAPK as specified by the RID/Index passed as a parameter.

Parameters
capk6 bytes CAPK = 5 bytes RID + 1 byte Index
keyResponse returned in ResDataStruct.resData: [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 bytes Modulus] 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 3 bytes. It can have two values: 3 (Format is 0x00 00 00 03), or 65537 (Format is 0x00 01 00 01)
  • Modulus Length: 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
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_retrieveCAPKList()

int com.idtechproducts.device.IDT_VP3300.ctls_retrieveCAPKList ( ResDataStruct  respData)

Retrieve the Certificate Authority Public Key list

Returns all the CAPK RID and Index installed on the terminal.

Parameters
respDataResDataStruct.resData = [key1][key2]...[keyn], each key 6 bytes where key = 5 bytes RID + 1 byte index
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_retrieveTerminalData()

int com.idtechproducts.device.IDT_VP3300.ctls_retrieveTerminalData ( ResDataStruct  respData)

Retrieve Terminal Data

Retrieves the TLV values of a the terminal.

Parameters
respDataReturns TLV in ResDataStruct.resData. Status Code in ResDataStruct.statusCode. If no terminal data exists, status code will be 0x60
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_setApplicationData()

int com.idtechproducts.device.IDT_VP3300.ctls_setApplicationData ( byte []  TLV,
ResDataStruct  respData 
)

Set Application Data by AID

Sets the Application Data for CTLS as specified by the TLV data

Parameters
tlvApplication data in TLV format The first tag of the TLV data must be the group number (FFE4). The second tag of the TLV data must be the AID (9F06)

Example valid TLV, for Group #2, AID a0000000035010: "ffe401029f0607a0000000051010ffe10101ffe50110ffe30114ffe20106"

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
See also
ErrorCode

◆ ctls_setCAPK()

int com.idtechproducts.device.IDT_VP3300.ctls_setCAPK ( byte []  key,
ResDataStruct  respData 
)

Set Certificate Authority Public Key

Sets the CAPK as specified by the CAKey structure

Parameters
keyCAKey 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 bytes Modulus] 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 3 bytes. It can have two values: 3 (Format is 0x00 00 00 03), or 65537 (Format is 0x00 01 00 01)
  • Modulus Length: 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.
respDataStatus Code in ResDataStruct.statusCode.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_setConfigurationGroup()

int com.idtechproducts.device.IDT_VP3300.ctls_setConfigurationGroup ( byte []  TLV,
ResDataStruct  respData 
)

Set Configuration Data for AID Group

Sets the Configuration Data for CTLS as specified by the TLV data

Parameters
tlvConfiguration data in TLV format The first tag of the TLV data must be the group number (FFE4). A second tag must exisdt
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
See also
ErrorCode

◆ ctls_setTerminalData()

int com.idtechproducts.device.IDT_VP3300.ctls_setTerminalData ( byte []  TLV,
ResDataStruct  respData 
)

Set Terminal Data

Sets the Terminal Data as specified by the TerminalData structure passed as a parameter

Parameters
TLVTerminalData configuration file.
respDataStatus Code in ResDataStruct.statusCode. If Flash error, status code will be 0x62. Format error status code 0x05
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ ctls_startTransaction()

int com.idtechproducts.device.IDT_VP3300.ctls_startTransaction ( double  amount,
double  amtOther,
int  type,
final int  timeout,
byte []  tags 
)

Start CTLS (or MSR) Transaction Request

Authorizes the CTLS (or MSR) transaction for an ICC card

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02)
amtOtherOther amount value, if any (tag value 9F03)
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsAny other tags to be included in the request. Passed as a string. Example, tag 9F02 with amount 0x000000000100 would be "9F0206000000000100" If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method. Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F369f9F37 For SmartTap, pass the tag FFEE08 with the value 0200 For Apple VAS, pass the tag FFEE06 with the value 9F220201009F2604000000009F2B050100000000DF010101
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_cancelGen2Transaction()

int com.idtechproducts.device.IDT_VP3300.device_cancelGen2Transaction ( )

Cancel Gen2 Device Transaction

Cancels the currently executing Gen2 Transaction.

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_cancelTransaction()

int com.idtechproducts.device.IDT_VP3300.device_cancelTransaction ( )

Cancel Device Transaction

Cancels the currently executing Device transaction.

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_connect()

boolean com.idtechproducts.device.IDT_VP3300.device_connect ( )

Connect the device.

This will attempt to connect to reader. For audio connection: it will first attempt to set the IDTech reader to the correct baud rate compatible with the Android Audio hardware Then it will attempt to recognize the reader that is attached by polling for model information

Returns
true: success, false: fail.

◆ device_ConnectWithoutValidation()

void com.idtechproducts.device.IDT_VP3300.device_ConnectWithoutValidation ( boolean  noValidate)

Set connection mode to connect to the device without validation

This will tell the SDK to connect to a reader with supplied device type For audio connection: it will not attempt to set the IDTech reader to the correct baud rate compatible with the Android Audio hardware and will assume the hardware baud rate is correct. It will not attempt to validate an IDTech reader is connected. It will assume an IDTech reader is connected and charged

NOTE: It is left to the integrator to make the decision to validate the reader is connected. One method is execute device_getFirmware and evaluate the response. If there is a response, then a reader from IDTech. If it is an expected response (known firmware string), then the specific reader model can be verified.

Parameters
noValidateTRUE = no validation, FALSE = validate (normal operation)
Returns
none.

◆ device_connectWithProfile()

boolean com.idtechproducts.device.IDT_VP3300.device_connectWithProfile ( StructConfigParameters  profile)

connect the device with Profile.

Parameters
profile,theprofile is the one which is the result from Auto config.
Returns
true: success, false: fail.

◆ device_controlUserInterface()

int com.idtechproducts.device.IDT_VP3300.device_controlUserInterface ( byte []  values)

Control User Interface

Controls the User Interface: Display, Beep, LED

Parameters
valuesFour bytes to control the user interface Byte[0] = LCD Message Messages 00-07 are normally controlled by the reader.
  • 00h: Idle Message (Welcome)
  • 01h: Present card (Please Present Card)
  • 02h: Time Out or Transaction cancel (No Card)
  • 03h: Transaction between reader and card is in the middle (Processing...)
  • 04h: Transaction Pass (Thank You)
  • 05h: Transaction Fail (Fail)
  • 06h: Amount (Amount $ 0.00 Tap Card)
  • 07h: Balance or Offline Available funds (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 beeps
  • 04h: Four short beeps
  • 05h: One long beep of 200 ms
  • 06h: One long beep of 400 ms
  • 07h: One long beep of 600 ms
  • 08h: One long beep of 800 ms Byte[2] = LED Number
  • 00h: LED 0 (Power LED) 01h: LED 1
  • 02h: LED 2
  • 03h: LED 3
  • FFh: All LEDs Byte[3] = LED Status
  • 00h: LED Off
  • 01h: LED On
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

◆ device_disconnectBLE()

boolean com.idtechproducts.device.IDT_VP3300.device_disconnectBLE ( )

Disconnect from BLE -

Will disconnect from existing BLE connection.

Returns
status: True = valid current connection can be shut down False = connection doesn't exist, or error shutting down connection.

◆ device_enableBLESearch()

int com.idtechproducts.device.IDT_VP3300.device_enableBLESearch ( DEVICE_TYPE  type,
String  name,
int  timeout 
)

Searches for Bluetooth Device

Parameters
typeDevice Type to search for
nameBluetooth Device Name or MAC Address
timeoutScanning timeout, in milliseconds
Returns
error code 0 = Success 1 = Invalid DEVICE_TYPE 2 = Bluetooth LE is not supported on this device 3 = Bluetooth LE is not available 4 = Bluetooth LE is not enabled 5 = Device not paired. Please pair first

◆ device_getDeviceType()

DEVICE_TYPE com.idtechproducts.device.IDT_VP3300.device_getDeviceType ( )

Gets type of device

◆ device_getFirmwareVersion()

int com.idtechproducts.device.IDT_VP3300.device_getFirmwareVersion ( StringBuilder  version)

DEVICE INFO API Get the firmware version of device.

Parameters
versionfor version string.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_getKSN()

int com.idtechproducts.device.IDT_VP3300.device_getKSN ( ResDataStruct  ksn)

Get the Account DUKPT Key KSN of device.

Parameters
10-byteKSN
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_getMerchantRecord()

int com.idtechproducts.device.IDT_VP3300.device_getMerchantRecord ( int  index,
ResDataStruct  respData 
)

Get Merchant Record

Sets the burst mode for the device.

Parameters
respDataresponse data from reader. Merchant Record Index: 1 byte enabled: 1 byte Merchant ID: 32 bytes Length of Merchant URL: 1 byte Merchant URL: 64 bytes
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_getResponseCodeString()

String com.idtechproducts.device.IDT_VP3300.device_getResponseCodeString ( int  errorCode)

Get Response Code String

Interpret a response code and return string description.

Parameters
errorCodeError code, range 0x0000 - 0xFFFF, example 0x0300
Returns
Verbose error description

◆ device_getRTCDateTime()

int com.idtechproducts.device.IDT_VP3300.device_getRTCDateTime ( byte []  dateTime)

get RTC date and time of the device

Parameters
dateTime<dateTime data>=""> is: 6 byte data for yyMMddHHmmss in hex. For example 0x171003102543 stands for 2017 Oct 3rd 10:25:43
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_getTransactionResults()

int com.idtechproducts.device.IDT_VP3300.device_getTransactionResults ( IDTMSRData  cardData)

Get Transaction Results Gets the transaction results when the reader is functioning in "Auto Poll" mode

Parameters
cardDataThe transaction results
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_isConnected()

boolean com.idtechproducts.device.IDT_VP3300.device_isConnected ( )

get the status if the device connected.

Returns
true: connected, false: disconnected

◆ device_pingDevice()

int com.idtechproducts.device.IDT_VP3300.device_pingDevice ( )

Ping Device

Pings the reader. If connected, returns success. Otherwise, returns timeout.

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_pollForToken()

int com.idtechproducts.device.IDT_VP3300.device_pollForToken ( int  timeout,
ResDataStruct  respData 
)

Poll for Token

Polls for a PICC

Parameters
timeouttimeout in milliseconds, must be multiple of 10 milliseconds. 30, 120, 630, or 1150 for example.
respDataResponse data will be stored in respData. 1 byte of card type, and the Serial Number (or the UID) of the PICC if available.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_reviewAllSetting()

int com.idtechproducts.device.IDT_VP3300.device_reviewAllSetting ( ResDataStruct  respData)

Review All Configuration Settings

it returns the current values for all the parameters that can be set using the Set Configuration command. Each parameter is returned as a TLV data object.

Parameters
respDataReturns TLV in ResDataStruct.resData. Status Code in ResDataStruct.statusCode.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_ReviewAudioJackSetting()

int com.idtechproducts.device.IDT_VP3300.device_ReviewAudioJackSetting ( ResDataStruct  respData)

Retrieves Audio Jack setting.

Parameters
responseresponse[0]: baud rate of the device connected.
response[1]: level option of the device output signals.
response[2]: the number of prefix "55", and end with "66".
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_sendDataCommand() [1/2]

int com.idtechproducts.device.IDT_VP3300.device_sendDataCommand ( String  cmd,
boolean  calcLRC,
String  data,
ResDataStruct  respData 
)

Sends a Direct Command Sends a NEO IDG ViVOtech 2.0 command

Parameters
commandTwo bytes command (including subCommand) as per NEO IDG Reference Guide (UniPayIII)
calcLRCNot used for IDG devices
dataCommand data (if applicable) for IDG devices
responseReturns response ResDataStruct.resData. Status Code in ResDataStruct.statusCode
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_sendDataCommand() [2/2]

int com.idtechproducts.device.IDT_VP3300.device_sendDataCommand ( String  cmd,
boolean  calcLRC,
String  data,
ResDataStruct  respData,
int  timeout 
)

Sends a Direct Command Sends a NEO IDG ViVOtech 2.0 command

Parameters
commandTwo bytes command (including subCommand) as per NEO IDG Reference Guide (UniPayIII)
calcLRCNot used for IDG devices
dataCommand data (if applicable) for IDG devices
responseReturns response ResDataStruct.resData. Status Code in ResDataStruct.statusCode
timeoutCommand timeout in seconds
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_sendGen2Cmd()

int com.idtechproducts.device.IDT_VP3300.device_sendGen2Cmd ( byte []  encPayload,
byte []  payloadMac,
Gen2DataStruct  respData,
int  timeout 
)

Send Gen2 Command

Informs SDK to format command for EMV Gen2 Device Communication

Parameters
encPayloadEncrypted Payload.
payloadMacEncrypted 8-byte MAC.
respDataStatus Code in ResDataStruct.statusCode. If Flash error, status code will be 0x62. Format error status code 0x05
timeoutTimeout parameter.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_setBurstMode()

int com.idtechproducts.device.IDT_VP3300.device_setBurstMode ( byte  mode)

Set Burst Mode

Sets the burst mode for the device.

Parameters
mode0 = OFF, 1 = Always On, 2 = Auto Exit
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_setDeviceType()

boolean com.idtechproducts.device.IDT_VP3300.device_setDeviceType ( ReaderInfo.DEVICE_TYPE  deviceType)

Defines connection Bluetooth, USB or Audio Jack

Parameters
deviceTypeDEVICE_TYPE.DEVICE_VP3300_AJ, DEVICE_TYPE.DEVICE_VP3300_AJ_USB, DEVICE_TYPE.DEVICE_VP3300_USB, DEVICE_TYPE.DEVICE_VP3300_BT, or DEVICE_TYPE.DEVICE_VP3300_BT_USB

◆ device_setMerchantRecord()

int com.idtechproducts.device.IDT_VP3300.device_setMerchantRecord ( int  index,
boolean  enabled,
String  merchantID,
String  merchantURL 
)

Set Merchant Record

Sets the burst mode for the device.

Parameters
indexMerchant Record Index. The valid value is 1–6.
enabled1: The Merchant ID is valid, 0: The Merchant ID is not valid.
merchantIDThe tag is 9F25.
merchantURLThe tag is 9F29.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_setMonitorCtlsTransactionData()

static void com.idtechproducts.device.IDT_VP3300.device_setMonitorCtlsTransactionData ( boolean  monitor)
static

Sets Monitor card data for CTLS Transactions when auto poll is on and burst mode is off Tells the SDK to monitor CTLS Transaction data when auto poll is on and burst mode is off. FALSE by default

◆ device_setPollMode()

int com.idtechproducts.device.IDT_VP3300.device_setPollMode ( byte  mode)

Set Poll Mode

Sets the poll mode for the device. Auto Poll keeps reader active, Poll On Demand only polls when requested by terminal

Parameters
mode0 = Auto Poll, 1 = Poll On Demand
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

◆ device_setRTCDateTime()

int com.idtechproducts.device.IDT_VP3300.device_setRTCDateTime ( byte []  dateTime)

set RTC date and time of the device

Parameters
dateTime<dateTime data>=""> is: 6 byte data for yyMMddHHmmss in hex. For example 0x171003102543 stands for 2017 Oct 3rd 10:25:43
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_setSymmetric_RKI_URL()

void com.idtechproducts.device.IDT_VP3300.device_setSymmetric_RKI_URL ( String  srki_url)

Use Gen2 or Gen4 server.

Parameters
isGen2TRUR: use Gen2 URL, FALSE: use Gen4 URL Set symmetric RKI URL.
srki_urlThe URL for symmetric RKI

◆ device_startRKI() [1/4]

int com.idtechproducts.device.IDT_VP3300.device_startRKI ( )

Start remote key injection.

Returns
success or error code.
See also
ErrorCode

◆ device_startRKI() [2/4]

int com.idtechproducts.device.IDT_VP3300.device_startRKI ( boolean  isDemo)

Start remote key injection.

Parameters
isDemoTRUE: for demo unit, FALSE: for production unit.
Returns
success or error code.
See also
ErrorCode

◆ device_startRKI() [3/4]

int com.idtechproducts.device.IDT_VP3300.device_startRKI ( String  Key,
boolean  isDemo 
)

Start remote key injection with Selectable Key.

Parameters
KeySelectable Key.
isDemoTRUE: for demo unit, FALSE: for production unit.
Returns
success or error code.
See also
ErrorCode

◆ device_startRKI() [4/4]

int com.idtechproducts.device.IDT_VP3300.device_startRKI ( String  Key)

Start remote key injection with Selectable Key.

Returns
success or error code.
See also
ErrorCode

◆ device_startTransaction() [1/2]

int com.idtechproducts.device.IDT_VP3300.device_startTransaction ( double  amount,
double  amtOther,
int  type,
final int  timeout,
byte []  tags 
)

Start Device Transaction Request

Authorizes the MSR (or CTLS) or EMV transaction for an ICC card

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02)
amtOtherOther amount value, if any (tag value 9F03)
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsAny other tags to be included in the request. Passed as a string. Example, tag 9F02 with amount 0x000000000100 would be "9F0206000000000100" If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method. Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F369f9F37
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_startTransaction() [2/2]

int com.idtechproducts.device.IDT_VP3300.device_startTransaction ( double  amount,
double  amtOther,
int  type,
final int  timeout,
byte []  tags,
boolean  isFastEMV 
)

Start Device Transaction Request

Authorizes the MSR (or CTLS) or EMV transaction for an ICC card

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02)
amtOtherOther amount value, if any (tag value 9F03)
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsAny other tags to be included in the request. Passed as a string. Example, tag 9F02 with amount 0x000000000100 would be "9F0206000000000100" If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method. Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F369f9F37
isFastEMVIf TRUE, it will populate the IDTTransactionData.fastEMV with ASCII data similar to IDTech FastEMV KB output, after performing an auto-authenticate and auto-complete with ResultCode = Could Not Contact Host
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ device_updateFirmware()

int com.idtechproducts.device.IDT_VP3300.device_updateFirmware ( String []  commands)

DEVICE INFO API Update the firmware of device.

Parameters
commandsfor all the lines/commands of the firmware text file.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_allowFallback()

static void com.idtechproducts.device.IDT_VP3300.emv_allowFallback ( boolean  allow)
static

Allow fallback for EMV transactions. Default is TRUE

Parameters
allowTRUE = allow fallback, FALSE = don't allow fallback

◆ emv_authenticateTransaction()

int com.idtechproducts.device.IDT_VP3300.emv_authenticateTransaction ( byte []  tags)

Authenticate EMV Transaction Request

Authenticates the EMV transaction for an ICC card. Execute this after receiving response with result code 0x10 to emv_startTransaction

The tags will be returned in the callback routine.

Parameters
tagsTLV stream that can be used to update the following values:
  • 9F02: Amount
  • 9F03: Other amount
  • 9C: Transaction type
  • 5F57: Account type In addition tag DFEE1A can be sent to specify tag list to include in results. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F369f9F37
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_callbackResponsePIN()

int com.idtechproducts.device.IDT_VP3300.emv_callbackResponsePIN ( int  mode,
byte []  KSN,
byte []  PIN 
)

Callback Response PIN Request

Provides PIN data to the kernel after a callback was received pinRequest delegate.

Parameters
modePIN Mode:
  • EMV_PIN_MODE_CANCEL = 0X00,
  • EMV_PIN_MODE_ONLINE_PIN_DUKPT = 0X01,
  • EMV_PIN_MODE_ONLINE_PIN_MKSK = 0X02,
  • EMV_PIN_MODE_OFFLINE_PIN = 0X03
KSNKey Serial Number. If no pairing and PIN is plaintext, value is nil
PINPIN data, encrypted. If no pairing, PIN will be sent plaintext
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

◆ emv_cancelTransaction()

int com.idtechproducts.device.IDT_VP3300.emv_cancelTransaction ( ResDataStruct  respData)

Cancel EMV Transaction

Cancels the currently executing EMV transaction.

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_completeTransaction()

int com.idtechproducts.device.IDT_VP3300.emv_completeTransaction ( boolean  commError,
byte []  authCode,
byte []  iad,
byte []  tlvScripts,
byte []  tags 
)

Complete EMV Transaction Request

Completes the EMV transaction for an ICC card when online authorization request is received from emv_authenticateTransaction

The tags will be returned in the callback routine.

Parameters
commErrorCommunication error with host. Set to TRUE if host was unreachable, or FALSE if host response received. If Communication error, authCode, iad, tlvScripts can be null.
authCodeAuthorization code from host. Two bytes. Example 0x3030. (Tag value 8A). Required
iadIssuer Authentication Data, if any. Example 0x11223344556677883030 (tag value 91).
tlvScripts71/72 scripts, if any
tagsAdditional TLV data to return with transaction results (if any)
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_getAutoAuthenticateTransaction()

static boolean com.idtechproducts.device.IDT_VP3300.emv_getAutoAuthenticateTransaction ( )
static

Gets Auto Authentication for EMV Transactions Check the boolean value of Auto Authentication.

◆ emv_getAutoCompleteTransaction()

static boolean com.idtechproducts.device.IDT_VP3300.emv_getAutoCompleteTransaction ( )
static

Gets Auto Completion for EMV Transactions Check the boolean value of Auto Completion.

◆ emv_getEMVConfigurationCheckValue()

int com.idtechproducts.device.IDT_VP3300.emv_getEMVConfigurationCheckValue ( ResDataStruct  respData)

Get EMV Kernel configuration check value info

Parameters
responseResponse returned of Kernel configuration check value info
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_getEMVKernelCheckValue()

int com.idtechproducts.device.IDT_VP3300.emv_getEMVKernelCheckValue ( ResDataStruct  respData)

Get EMV Kernel check value info

Parameters
responseResponse returned of Kernel check value info
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_getEMVKernelVersion()

int com.idtechproducts.device.IDT_VP3300.emv_getEMVKernelVersion ( StringBuilder  version)

Polls device for EMV Kernel Version

Parameters
responseResponse returned of Kernel Version
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_lcdControlResponse()

void com.idtechproducts.device.IDT_VP3300.emv_lcdControlResponse ( byte  mode,
byte  data 
)

Callback Response LCD Display

Provides menu selection responses to the kernel after a callback was received lcdDisplay delegate.

Parameters
modeThe choices are as follows
  • 0x00 Cancel
  • 0x01 Menu Display
  • 0x02 Normal Display get Function Key supply either 0x43 ('C') for Cancel, or 0x45 ('E') for Enter/accept
  • 0x08 Language Menu Display
selectionLine number in hex (0x01, 0x02), or 'C'/'E' of function key
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

◆ emv_removeApplicationData()

int com.idtechproducts.device.IDT_VP3300.emv_removeApplicationData ( String  aid,
ResDataStruct  respData 
)

Remove Application Data

Removes the Application Data as specified by the AID name passed as a parameter

Parameters
aidAid file to remove.
respDataStatus Code in ResDataStruct.statusCode. If no application data exists, status code will be 0x60. Format error status code 0x05
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_removeCAPK()

int com.idtechproducts.device.IDT_VP3300.emv_removeCAPK ( byte []  capk,
ResDataStruct  respData 
)

Remove Certificate Authority Public Key

Removes the CAPK as specified by the RID/Index

Parameters
capk6 byte CAPK = 5 bytes RID + 1 byte INDEX
respDataStatus Code in ResDataStruct.statusCode.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_removeCRL()

int com.idtechproducts.device.IDT_VP3300.emv_removeCRL ( byte []  crlList,
ResDataStruct  respData 
)

Remove Certificate Revocation List Entries

Removes CRLEntries as specified by the RID and Index and serial number passed as 9 bytes

Parameters
crlListcontaining the list of CRL to remove: [CRL1][CRL2]...[CRLn] where each [CRL] is 9 bytes: [5 bytes RID][1 byte CAPK Index][3 bytes serial number]
respDataStatus Code in ResDataStruct.statusCode.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_removeTerminalData()

int com.idtechproducts.device.IDT_VP3300.emv_removeTerminalData ( ResDataStruct  respData)

Remove Terminal Data

Removes the Terminal Data.

Parameters
respDataStatus Code in ResDataStruct.statusCode.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_retrieveAidList()

int com.idtechproducts.device.IDT_VP3300.emv_retrieveAidList ( ResDataStruct  respData)

Retrieve Aid List

Returns all the AID names installed on the terminal.

Parameters
respDataArray of AID string names passed back in ResDataStruct.stringArray. Status Code in ResDataStruct.statusCode. If no AIDs exists, status code will be 0x60
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_retrieveApplicationData()

int com.idtechproducts.device.IDT_VP3300.emv_retrieveApplicationData ( String  aid,
ResDataStruct  respData 
)

Retrieve Application Data

Retrieves the TLV values of a provide AID.

Parameters
aidAid file to retrieve.
respDataReturns TLV in ResDataStruct.resData. Status Code in ResDataStruct.statusCode. If no application data exists, status code will be 0x60
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_retrieveCAPK()

int com.idtechproducts.device.IDT_VP3300.emv_retrieveCAPK ( byte []  data,
ResDataStruct  respData 
)

Retrieve Certificate Authority Public Key

Retrieves the CAPK as specified by the RID/Index passed as a parameter.

Parameters
capk6 bytes CAPK = 5 bytes RID + 1 byte Index
keyResponse returned in ResDataStruct.resData: [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 bytes Modulus] 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 3 bytes. It can have two values: 3 (Format is 0x00 00 00 03), or 65537 (Format is 0x00 01 00 01)
  • Modulus Length: 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
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_retrieveCAPKList()

int com.idtechproducts.device.IDT_VP3300.emv_retrieveCAPKList ( ResDataStruct  respData)

Retrieve the Certificate Authority Public Key list

Returns all the CAPK RID and Index installed on the terminal.

Parameters
respDataResDataStruct.resData = [key1][key2]...[keyn], each key 6 bytes where key = 5 bytes RID + 1 byte index
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_retrieveCRL()

int com.idtechproducts.device.IDT_VP3300.emv_retrieveCRL ( ResDataStruct  respData)

Retrieve the Certificate Revocation List

Returns the CRL entries on the terminal.

Parameters
keyResponse returned in ResDataStruct.resData: list [CRL1][CRL2]...[CRLn], each CRL 9 bytes where CRL = 5 bytes RID + 1 byte index + 3 bytes serial number
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_retrieveTerminalData()

int com.idtechproducts.device.IDT_VP3300.emv_retrieveTerminalData ( ResDataStruct  respData)

Retrieve Terminal Data

Retrieves the TLV values of a the terminal.

Parameters
respDataReturns TLV in ResDataStruct.resData. Status Code in ResDataStruct.statusCode. If no terminal data exists, status code will be 0x60
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_retrieveTransactionResult()

int com.idtechproducts.device.IDT_VP3300.emv_retrieveTransactionResult ( byte []  tags,
Map< String, Map< String, byte[]>>  retrievedTags 
)

Retrieve Transaction Results

Retrieves specified EMV tags from the currently executing transaction.

Parameters
tagsTags to be retrieved. Example 0x9F028A will retrieve tags 9F02 and 8A
tlvAll requested tags returned as unencrypted, encrypted and masked tags. The tlv Map will contain a Map with key "tags" that has the unencrypted tag data, a Map with the key "masked" that has the masked tag data, and a Map with the key "encrypted" that has the encrypted tag data
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString

◆ emv_setApplicationData()

int com.idtechproducts.device.IDT_VP3300.emv_setApplicationData ( String  aid,
byte []  TLV,
ResDataStruct  respData 
)

Set Application Data

Sets the Application Data as specified by the application name and TLV data

Parameters
nameApplication name, 10-32 ASCII hex characters representing 5-16 bytes Example "a0000000031010"
tlvApplication data in TLV format.
respDataStatus Code in ResDataStruct.statusCode. If AID list is full, status code will be 0x61. Format error status code 0x05
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_setAutoAuthenticateTransaction()

static void com.idtechproducts.device.IDT_VP3300.emv_setAutoAuthenticateTransaction ( boolean  auto)
static

Sets Auto Authentication for EMV Transactions Tells the SDK to automatically execute Authenticate Transaction after StartEMV Transaction. TRUE by default

◆ emv_setAutoCompleteTransaction()

static void com.idtechproducts.device.IDT_VP3300.emv_setAutoCompleteTransaction ( boolean  auto)
static

Sets Auto Completion for EMV Transactions Tells the SDK to automatically execute Complete Transaction after EMV Authentication. FALSE by default

◆ emv_setCAPK()

int com.idtechproducts.device.IDT_VP3300.emv_setCAPK ( byte []  key,
ResDataStruct  respData 
)

Set Certificate Authority Public Key

Sets the CAPK as specified by the CAKey structure

Parameters
keyCAKey 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 bytes Modulus][2 bytes MAC Length][Variable bytes MAC Data] 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 3 bytes. It can have two values: 3 (Format is 0x00 00 00 03), or 65537 (Format is 0x00 01 00 01)
  • Modulus Length: 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.
  • MAC Length: LenL LenH Indicated the length of the next field. For Non-PCI device, it is 0x00 0x00. For PCI device, it is 0x1E 0x00.
  • MAC Data: For Non-PCI device, i does not exist. For PCI device, it is 30 bytes data consists of [2 bytes MAC Value Length][16 bytes MAC Value][2 bytes MAC Key KSN Length][10 bytes MAC Key KSN] Where:
    • MAC Value Length: 0x10 0x00
    • MAC value: MAC-HOST.
    • MAC Key KSN Length: 0x0A 0x00
    • MAC Key KSN: MAC DUKPT Key KSN
respDataStatus Code in ResDataStruct.statusCode.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_setCRL()

int com.idtechproducts.device.IDT_VP3300.emv_setCRL ( byte []  crlList,
ResDataStruct  respData 
)

Set Certificate Revocation List

Sets the CRL

Parameters
listCRL Entries containing the RID, Index, and serial numbers to set [CRL1][CRL2]...[CRLn] where each [CRL] is 9 bytes: [5 bytes RID][1 byte CAPK Index][3 bytes serial number]
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_setTerminalData()

int com.idtechproducts.device.IDT_VP3300.emv_setTerminalData ( byte []  TLV,
ResDataStruct  respData 
)

Set Terminal Data

Sets the Terminal Data as specified by the TerminalData structure passed as a parameter

Parameters
TLVTerminalData configuration file.
respDataStatus Code in ResDataStruct.statusCode. If Flash error, status code will be 0x62. Format error status code 0x05
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_setTerminalMajorConfiguration()

int com.idtechproducts.device.IDT_VP3300.emv_setTerminalMajorConfiguration ( int  configuration)

Sets the terminal major configuration in ICS .

Parameters
configurationA configuration value, range 1-23
  • 1 = 1C
  • 2 = 2C
  • 3 = 3C
  • 4 = 4C
  • 5 = 5C ...
  • 23 = 23C
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ emv_setTransactionParameters()

void com.idtechproducts.device.IDT_VP3300.emv_setTransactionParameters ( double  amount,
double  amtOther,
int  type,
final int  timeout,
byte []  tags 
)

Set EMV Transaction Parameters

Set the parameters to be used on EMV transactions for an ICC card when Auto Poll is on and Burst Mode is off

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02)
amtOtherOther amount value, if any (tag value 9F03)
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsAny other tags to be included in the request. Passed as a string. Example, tag 9F02 with amount 0x000000000100 would be "9F0206000000000100" If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method. Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F369f9F37

◆ emv_startTransaction()

int com.idtechproducts.device.IDT_VP3300.emv_startTransaction ( double  amount,
double  amtOther,
int  type,
final int  timeout,
byte []  tags,
boolean  forceOnline 
)

Start EMV Transaction Request

Authorizes the EMV transaction for an ICC card

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02)
amtOtherOther amount value, if any (tag value 9F03)
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsAny other tags to be included in the request. Passed as a string. Example, tag 9F02 with amount 0x000000000100 would be "9F0206000000000100" If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method.
forceOnlineTRUE = do not allow offline approval, FALSE = allow ICC to approve offline if terminal capable Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F369f9F37
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ expireSessionKeys()

int com.idtechproducts.device.IDT_VP3300.expireSessionKeys ( Gen2DataStruct  respData)

Expire Session Keys

Sets Session Keys to expired state

respData.statusCode 0: VTC_SECURITY_RESULT_CODE_Success 1: VTC_SECURITY_RESULT_CODE_Failure 2: VTC_SECURITY_RESULT_CODE_No_Data_Found 3: VTC_SECURITY_RESULT_CODE_No_Authentication_Key 4: VTC_SECURITY_RESULT_CODE_No_Agreement_Key 5: VTC_SECURITY_RESULT_CODE_Invalid_Data 6: VTC_SECURITY_RESULT_CODE_Signature_Validation_Failed 7: VTC_SECURITY_RESULT_CODE_Nonce_Mismatch 8: VTC_SECURITY_RESULT_CODE_KC_MAC_Mismatch 9: VTC_SECURITY_RESULT_CODE_Session_Keys_Expired 10: VTC_SECURITY_RESULT_CODE_No_Session_Keys 11: VTC_SECURITY_RESULT_CODE_No_K_init_Key

◆ finalizeSession()

int com.idtechproducts.device.IDT_VP3300.finalizeSession ( byte []  data,
Gen2DataStruct  respData 
)

Finalize Session Key

Parameters
jwsCMDJWS command in xxxxx.yyyyy.zzzzz Base64URL format, where xxxxxx = header indicating alg: ES256 yyyyyy = payload [ Session_Expiration || Session_MAC_TAG] zzzzzz = xxxxx.yyyyy signed with Private TC Auth Key

respData.statusCode 0: VTC_SECURITY_RESULT_CODE_Success 1: VTC_SECURITY_RESULT_CODE_Failure 2: VTC_SECURITY_RESULT_CODE_No_Data_Found 3: VTC_SECURITY_RESULT_CODE_No_Authentication_Key 4: VTC_SECURITY_RESULT_CODE_No_Agreement_Key 5: VTC_SECURITY_RESULT_CODE_Invalid_Data 6: VTC_SECURITY_RESULT_CODE_Signature_Validation_Failed 7: VTC_SECURITY_RESULT_CODE_Nonce_Mismatch 8: VTC_SECURITY_RESULT_CODE_KC_MAC_Mismatch 9: VTC_SECURITY_RESULT_CODE_Session_Keys_Expired 10: VTC_SECURITY_RESULT_CODE_No_Session_Keys 11: VTC_SECURITY_RESULT_CODE_No_K_init_Key

◆ finalizeVTRT()

int com.idtechproducts.device.IDT_VP3300.finalizeVTRT ( byte []  data,
Gen2DataStruct  respData 
)

Finalize VTRT from provided data

Parameters
data[AES_GCM (K_init, SPTC_Auth, || Seed_TC || SHA-256 (KiC_Reader_ID || TC_Reader_Init_ID))]

respData.statusCode 0: VTC_SECURITY_RESULT_CODE_Success 1: VTC_SECURITY_RESULT_CODE_Failure 2: VTC_SECURITY_RESULT_CODE_No_Data_Found 3: VTC_SECURITY_RESULT_CODE_No_Authentication_Key 4: VTC_SECURITY_RESULT_CODE_No_Agreement_Key 5: VTC_SECURITY_RESULT_CODE_Invalid_Data 6: VTC_SECURITY_RESULT_CODE_Signature_Validation_Failed 7: VTC_SECURITY_RESULT_CODE_Nonce_Mismatch 8: VTC_SECURITY_RESULT_CODE_KC_MAC_Mismatch 9: VTC_SECURITY_RESULT_CODE_Session_Keys_Expired 10: VTC_SECURITY_RESULT_CODE_No_Session_Keys 11: VTC_SECURITY_RESULT_CODE_No_K_init_Key

◆ getSDKInstance()

static IDT_Device com.idtechproducts.device.IDT_VP3300.getSDKInstance ( )
static

Returns an instance of the currently initialized IDT_Device class.

Returns
IDT_Device instance

◆ getSessionKeyStatus()

int com.idtechproducts.device.IDT_VP3300.getSessionKeyStatus ( Gen2DataStruct  respData)

Get Session Key Status

respData.statusCode 0: VTC_SECURITY_RESULT_CODE_Success 1: VTC_SECURITY_RESULT_CODE_Failure 2: VTC_SECURITY_RESULT_CODE_No_Data_Found 3: VTC_SECURITY_RESULT_CODE_No_Authentication_Key 4: VTC_SECURITY_RESULT_CODE_No_Agreement_Key 5: VTC_SECURITY_RESULT_CODE_Invalid_Data 6: VTC_SECURITY_RESULT_CODE_Signature_Validation_Failed 7: VTC_SECURITY_RESULT_CODE_Nonce_Mismatch 8: VTC_SECURITY_RESULT_CODE_KC_MAC_Mismatch 9: VTC_SECURITY_RESULT_CODE_Session_Keys_Expired 10: VTC_SECURITY_RESULT_CODE_No_Session_Keys 11: VTC_SECURITY_RESULT_CODE_No_K_init_Key

◆ icc_exchangeAPDU()

int com.idtechproducts.device.IDT_VP3300.icc_exchangeAPDU ( byte []  dataAPDU,
ResDataStruct  response 
)

Exchange APDU

Sends an APDU packet to the ICC. If successful, response is returned in APDUResult class instance in response parameter.

Parameters
dataAPDUAPDU data packet
responseUnencrypted/encrypted parsed APDU response
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ icc_getICCReaderStatus()

int com.idtechproducts.device.IDT_VP3300.icc_getICCReaderStatus ( ICCReaderStatusStruct  ICCStatus)

Get Reader Status

Returns the reader status

Parameters
statusPointer that will return with the ICCReaderStatus results. bit 0: 0 = ICC Power Not Ready, 1 = ICC Powered bit 1: 0 = Card not seated, 1 = card seated
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ icc_passthroughOffICC()

int com.idtechproducts.device.IDT_VP3300.icc_passthroughOffICC ( )

Disables pass through mode for ICC. Required when executing transactions (start EMV, start MSR, authenticate transaction)

Returns
success or error code.
See also
ErrorCode

◆ icc_passthroughOnICC()

int com.idtechproducts.device.IDT_VP3300.icc_passthroughOnICC ( )

Enables pass through mode for ICC. Required when direct ICC commands are required (power on/off ICC, exchange APDU)

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ icc_powerOffICC()

int com.idtechproducts.device.IDT_VP3300.icc_powerOffICC ( ResDataStruct  respData)

Power Off ICC

Powers down the ICC

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode If Success, empty If Failure, ASCII encoded data of error string

◆ icc_powerOnICC()

int com.idtechproducts.device.IDT_VP3300.icc_powerOnICC ( ResDataStruct  atrPPS)

Power up the currently selected microprocessor card in the ICC reader. It follows the ISO7816-3 power up sequence and returns the ATR as its response.

Parameters
optionsthe options is optional.
please see PowerOnStructure class for more information.
See also
PowerOnStructure (not used for the UniPay II)
Parameters
atrPPSthe class for ATR string.
the ATR string is following:
  1. 2D01: Card Not Supported;
  2. 2D03: Card Not Supported, wants CRC;
  3. 690D: Command not supported on reader without ICC support;
  4. 8100: ICC error time out on power-up;
  5. 8200: invalid TS character received;
  6. 8500: PPS confirmation error;
  7. 8600: Unsupported F, D, or combination of F and D;
  8. 8700: protocol not supported EMV TD1 out of range;
  9. 8800: power not at proper level;
  10. 8900: ATR length too long;
  11. 8B01: EMV invalid TA1 byte value*;
  12. 8B02: EMV TB1 required*;
  13. 8B03: EMV Unsupported TB1 only 00 allowed*;
  14. 8B04: EMV Card Error, invalid BWI or CWI*;
  15. 8B06: EMV TB2 not allowed in ATR*;
  16. 8B07: EMV TC2 out of range*;
  17. 8B08: EMV TC2 out of range*;
  18. 8B09: per EMV96 TA3 must be > 0xF*;
  19. 8B10: ICC error on power-up;
  20. 8B11: EMV T=1 then TB3 required*;
  21. 8B12: Card Error, invalid BWI or CWI;
  22. 8B13: Card Error, invalid BWI or CWI;
  23. 8B17: EMV TC1/TB3 conflict*;
  24. 8B20: EMV TD2 out of range must be T=1*;
  25. 8C00: TCK error;
  26. A304: connector has no voltage setting;
  27. A305: ICC error on power-up invalid (SBLK(IFSD) exchange;
  28. E301: ICC error after session start
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ log_deleteLogs()

int com.idtechproducts.device.IDT_VP3300.log_deleteLogs ( )

delete the log in the root path of SD card.

Returns
number of log files deleted
See also
log_setSaveLogEnable

◆ log_setSaveLogEnable()

void com.idtechproducts.device.IDT_VP3300.log_setSaveLogEnable ( boolean  enable)

Enable/Disable save the log into the root path of SD card.

Parameters
enabletrue: enable save the log, the log includes the .txt text log and .wav signals file. false: disable save the log.
Returns
none
See also
deleteLogs

◆ log_setVerboseLoggingEnable()

void com.idtechproducts.device.IDT_VP3300.log_setVerboseLoggingEnable ( boolean  enable)

Enable/Disable Verbose Logging show in the logcat view window.

Parameters
enable,trueenable to show the log in the logcat view window. false: disable to show the log in the logcat view window.
Returns
none

◆ msr_cancelMSRSwipe()

int com.idtechproducts.device.IDT_VP3300.msr_cancelMSRSwipe ( )

Disable MSR swipe card.

Cancels MSR swipe request.

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ msr_defaultAllSetting()

int com.idtechproducts.device.IDT_VP3300.msr_defaultAllSetting ( )

Default all setting of Mask and Encryption.

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ msr_startMSRSwipe() [1/2]

int com.idtechproducts.device.IDT_VP3300.msr_startMSRSwipe ( )

Enable MSR swipe card. Returns encrypted MSR data or function key value by call back function. The function swipeMSRData in interface OnReceiverListener will be called if swiping card data received.

See also
OnReceiverListener
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ msr_startMSRSwipe() [2/2]

int com.idtechproducts.device.IDT_VP3300.msr_startMSRSwipe ( int  timeout)

Enable MSR swipe card. Returns encrypted MSR data or function key value by call back function.
The function swipeMSRData in interface OnReceiverListener will be called if swiping card data received.

See also
OnReceiverListener
Parameters
timeoutSwipe Timeout Value timeout value in seconds; maximum value is 255 seconds. If it is 0, it will be set to 5 seconds.
Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ phone_getInfoManufacture()

String com.idtechproducts.device.IDT_VP3300.phone_getInfoManufacture ( )

Get manufacture version.

Returns
the manufacture info

◆ phone_getInfoModel()

String com.idtechproducts.device.IDT_VP3300.phone_getInfoModel ( )

Get phones's model number information.

Returns
the model number information.

◆ registerListen()

void com.idtechproducts.device.IDT_VP3300.registerListen ( )

General API:registerListen.

registerListen to enable SDK detect the phone jack plug in/off notification

◆ release()

void com.idtechproducts.device.IDT_VP3300.release ( )

release, make the SDK in the idle status.

◆ removeEnrollment()

int com.idtechproducts.device.IDT_VP3300.removeEnrollment ( Gen2DataStruct  respData)

Remove Enrollment

Removes all enrollment data from device (Auth Keys, Session Keys)

respData.statusCode 0: VTC_SECURITY_RESULT_CODE_Success 1: VTC_SECURITY_RESULT_CODE_Failure 2: VTC_SECURITY_RESULT_CODE_No_Data_Found 3: VTC_SECURITY_RESULT_CODE_No_Authentication_Key 4: VTC_SECURITY_RESULT_CODE_No_Agreement_Key 5: VTC_SECURITY_RESULT_CODE_Invalid_Data 6: VTC_SECURITY_RESULT_CODE_Signature_Validation_Failed 7: VTC_SECURITY_RESULT_CODE_Nonce_Mismatch 8: VTC_SECURITY_RESULT_CODE_KC_MAC_Mismatch 9: VTC_SECURITY_RESULT_CODE_Session_Keys_Expired 10: VTC_SECURITY_RESULT_CODE_No_Session_Keys 11: VTC_SECURITY_RESULT_CODE_No_K_init_Key

◆ setGen2Callback()

void com.idtechproducts.device.IDT_VP3300.setGen2Callback ( OnReceiverListenerGen2  callback)

Sets the OnReceiverListenerGen2 callback

Parameters
callbackOnReceiverListenerGen2 callback

◆ setIDT_Device()

void com.idtechproducts.device.IDT_VP3300.setIDT_Device ( FirmwareUpdateTool  fwTool)

For System Use Only

Parameters
fwToolParameter for firmware update

◆ startSession()

int com.idtechproducts.device.IDT_VP3300.startSession ( byte []  data,
Gen2DataStruct  respData 
)

Start Session Key

Parameters
dataJWS command in xxxxx.yyyyy.zzzzz Base64URL format, where xxxxxx = header indicating alg: ES256 yyyyyy = payload [ TC_Session || EPTC_Agr ] zzzzzz = xxxxx.yyyyy signed with Private TC Auth Key
respDataJWS command in xxxxx.yyyyy.zzzzz Base64URL format, where xxxxxx = header indicating alg: ES256 yyyyyy = payload [EPR_Agr || TC_Session || KC_MAC_Tag ] zzzzzz = xxxxx.yyyyy signed with Private Reader Auth Key

respData.statusCode 0: VTC_SECURITY_RESULT_CODE_Success 1: VTC_SECURITY_RESULT_CODE_Failure 2: VTC_SECURITY_RESULT_CODE_No_Data_Found 3: VTC_SECURITY_RESULT_CODE_No_Authentication_Key 4: VTC_SECURITY_RESULT_CODE_No_Agreement_Key 5: VTC_SECURITY_RESULT_CODE_Invalid_Data 6: VTC_SECURITY_RESULT_CODE_Signature_Validation_Failed 7: VTC_SECURITY_RESULT_CODE_Nonce_Mismatch 8: VTC_SECURITY_RESULT_CODE_KC_MAC_Mismatch 9: VTC_SECURITY_RESULT_CODE_Session_Keys_Expired 10: VTC_SECURITY_RESULT_CODE_No_Session_Keys 11: VTC_SECURITY_RESULT_CODE_No_K_init_Key

◆ startVTRT()

int com.idtechproducts.device.IDT_VP3300.startVTRT ( byte []  data,
Gen2DataStruct  respData 
)

Start VTRT from provided data

Parameters
data[AES_GCM ( K_init, TC_Reader_Init_ID || Nonce_TC) || IV]
respData[AES_GCM (K_init, SPR_Auth || KiC_Reader_ID || Nonce_TC)]]

respData.statusCode 0: VTC_SECURITY_RESULT_CODE_Success 1: VTC_SECURITY_RESULT_CODE_Failure 2: VTC_SECURITY_RESULT_CODE_No_Data_Found 3: VTC_SECURITY_RESULT_CODE_No_Authentication_Key 4: VTC_SECURITY_RESULT_CODE_No_Agreement_Key 5: VTC_SECURITY_RESULT_CODE_Invalid_Data 6: VTC_SECURITY_RESULT_CODE_Signature_Validation_Failed 7: VTC_SECURITY_RESULT_CODE_Nonce_Mismatch 8: VTC_SECURITY_RESULT_CODE_KC_MAC_Mismatch 9: VTC_SECURITY_RESULT_CODE_Session_Keys_Expired 10: VTC_SECURITY_RESULT_CODE_No_Session_Keys 11: VTC_SECURITY_RESULT_CODE_No_K_init_Key

◆ startVTRTPolling()

int com.idtechproducts.device.IDT_VP3300.startVTRTPolling ( byte  timeout,
Gen2DataStruct  respData 
)

Enables CTLS polling to start VTRT from CTLS AID

Parameters
timeoutValue 1-255 seconds

respData.statusCode 0: VTC_SECURITY_RESULT_CODE_Success 1: VTC_SECURITY_RESULT_CODE_Failure 2: VTC_SECURITY_RESULT_CODE_No_Data_Found 3: VTC_SECURITY_RESULT_CODE_No_Authentication_Key 4: VTC_SECURITY_RESULT_CODE_No_Agreement_Key 5: VTC_SECURITY_RESULT_CODE_Invalid_Data 6: VTC_SECURITY_RESULT_CODE_Signature_Validation_Failed 7: VTC_SECURITY_RESULT_CODE_Nonce_Mismatch 8: VTC_SECURITY_RESULT_CODE_KC_MAC_Mismatch 9: VTC_SECURITY_RESULT_CODE_Session_Keys_Expired 10: VTC_SECURITY_RESULT_CODE_No_Session_Keys 11: VTC_SECURITY_RESULT_CODE_No_K_init_Key

◆ unregisterListen()

void com.idtechproducts.device.IDT_VP3300.unregisterListen ( )

unregisterListen to disable the detect

◆ useUSBIntentFilter()

static void com.idtechproducts.device.IDT_VP3300.useUSBIntentFilter ( )
static

Use USB Intent Filter For USB Devices, you may opt to incorporate an Intent Filter that will automatically start your application when a specific USB device is attached. The SDK must be informed to bypass it's normal Enumeration of USB Devices when an Intent Filter is being use. This function MUST be called BEFORE device_setDeviceType() is executed if a USB Intent Filter is being utilized. https://developer.android.com/guide/topics/connectivity/usb/host.html

◆ wp_cancelTransaction()

int com.idtechproducts.device.IDT_VP3300.wp_cancelTransaction ( )

Cancel WorldPay Transaction

Cancels the currently executing WorldPay transaction.

Returns
success or error code. Values can be parsed with device_getResponseCodeString
See also
ErrorCode

◆ wp_executeTransaction()

int com.idtechproducts.device.IDT_VP3300.wp_executeTransaction ( IDT_VP3300  idt_device,
WorldPay.WorldPayData  data,
WorldpayListener  callback,
boolean  requestOnly 
)

executeTransaction Requests 3 sets of public keys: encrypting Keys, signing/validating keys, signing/validating 3rd party apps

Parameters
idt_devicethe reader object
dataWorldPay data object
callbackWorldPay callback
requestOnly
  • 0 = send transaction and return response,
  • 1 = send transaction and return both request and response,
  • 2 = do not send transaction, instead return request
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString()

◆ wp_forwardTransaction()

int com.idtechproducts.device.IDT_VP3300.wp_forwardTransaction ( WorldpayListener  callback,
String  forwardID,
String  password,
boolean  bypassProcessing 
)

forwardTransaction Send the saved data to WorldPay and complete the transaction.

Parameters
callbackcallback is the callback to send the results. Should the the same as executeTransaction callback.
forwardID= ID, which could be either unique ID or Memo.
password= password. If null/blank, no password.
bypassProcessing= true means read the file from disk, but don't send to WorldPay, then delete the transaction as if you did send to WorldPay. The purpose of this is to allow them to delete transactions from the storage without sending to WorldPay.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString()

◆ wp_setReturnRequest()

void com.idtechproducts.device.IDT_VP3300.wp_setReturnRequest ( boolean  returnRequest)

Set retuen request for the WorldPay transaction

Parameters
returnRequestTRUE: the request packet will be returned with the response
Returns

The documentation for this class was generated from the following file: