IDTech Windows SDK Guide  3.2.4.393
API reference for Visual Studio .Net
IDTechSDK.IDT_NEO2 Class Reference

Public Member Functions

RETURN_CODE device_loadCertCA (byte certType, byte[] certData, string ident="")
 
RETURN_CODE config_setDUKPTEncryptionType (byte type, string ident="")
 
RETURN_CODE config_getDUKPT_KSN (ref byte[] ksn, string ident="")
 
RETURN_CODE config_getSalt_KCV (ref byte[] kcv, string ident="")
 
RETURN_CODE config_getDUKPTEncryptionType (ref byte type, string ident="")
 
RETURN_CODE config_setKeyslot_PEK_DEK (bool isPEK, byte keyslot, string ident="")
 
RETURN_CODE device_resetNVM (string ident="")
 
RETURN_CODE config_setRKLKeys (short keyNumber, byte[] tr31, byte[] nonce, byte[] hmac, ref byte[] kv, ref byte[] nonce_device, ref byte[] hmac_device, string ident="")
 
RETURN_CODE config_getKeyslot_PEK_DEK (ref byte keyslotPEK, ref byte keyslotDEK, string ident="")
 
RETURN_CODE config_setDUKPT_DEK_Attribution_TDES (byte keyslot, byte outputMode, byte variant, string ident="")
 
RETURN_CODE config_setDUKPT_DEK_Attribution_AES (byte keyslot, byte workingKey, byte keyUsage, string ident="")
 
RETURN_CODE config_getDUKPT_DEK_Attribution (byte keyslot, ref byte mode, ref byte outputMode_workingKey, ref byte variant_keyUsage, string ident="")
 
RETURN_CODE config_checkDUKPTKey (byte keyindex, ref byte[] val, string ident="")
 
RETURN_CODE config_setDEKVariantType (byte type, string ident="")
 
RETURN_CODE config_getDEKVariantType (ref byte type, string ident="")
 
RETURN_CODE config_setBaudRate (int baud, string ident="")
 
bool ip_firstConnectToSocket (string IP)
 
RETURN_CODE device_getDRS (ref byte[] codeDRS, string ident="")
 
bool ip_connectToSocket (string IP, bool isSecure=false)
 
void ip_autoConnectToSocket ()
 
void ip_monitorSocketConnectionStatus (bool enable, bool monitorConnect, int interval, int retryCount)
 
RETURN_CODE device_queryFile (string directory, string filename, bool isSD, ref bool exists, ref string timestamp, ref int fileSize, string ident="")
 
RETURN_CODE device_readFileFromSD (string directory, string filename, ref byte[] fileData, string ident="")
 
RETURN_CODE device_getBatteryVoltage (ref string voltage, string ident="")
 
RETURN_CODE device_pollForToken (byte seconds, ref byte card, ref byte[] serialNumber, string ident="")
 
RETURN_CODE config_getSerialNumber (ref string response, string ident="")
 
RETURN_CODE device_terminalInfo (ref byte[] tlv, string ident="")
 
RETURN_CODE config_setWhiteList (byte[] data, string ident="")
 
RETURN_CODE config_setTrackFormat (byte option, string ident="")
 
RETURN_CODE config_getTrackFormat (ref byte option, string ident="")
 
RETURN_CODE config_setMasking (byte prePAN, byte postPAN, byte asciiMask, byte hexMask, bool maskExp, string ident="")
 
RETURN_CODE config_getMasking (ref byte prePAN, ref byte postPAN, ref byte asciiMask, ref byte hexMask, ref bool maskExp, string ident="")
 
RETURN_CODE config_getWhiteList (ref Dictionary< string, string > data, string ident="")
 
RETURN_CODE config_getEthernetMACAddress (ref byte[] address, string ident="")
 
RETURN_CODE config_getNetworkConfiguration (ref bool isStatic, ref string address, ref string subnet, ref string gateway, ref string dns, string ident="")
 
RETURN_CODE config_setSSLServerEthernet (string address, int port, string ident="")
 
RETURN_CODE config_getSSLServerEthernet (ref string address, ref int port, string ident="")
 
RETURN_CODE device_getDeviceTime (ref DateTime time, string ident="")
 
RETURN_CODE config_setBluetoothParameters (string name, string oldPW, string newPW, string ident="")
 
RETURN_CODE config_setSwipeandDone (byte swipeVal, byte doneVal, byte delay, string ident="")
 
RETURN_CODE config_getSwipeandDone (ref byte swipeVal, ref byte doneVal, ref byte delay, string ident="")
 
RETURN_CODE device_disBlueLED (string ident="")
 
RETURN_CODE device_enaBlueLED (byte[] dataCmd, string ident="")
 
RETURN_CODE device_onYellowLED (string ident="")
 
RETURN_CODE device_offYellowLED (string ident="")
 
RETURN_CODE device_buzzerOnOff (string ident="")
 
RETURN_CODE device_getLightSensorVal (ref UInt16 lightVal, string ident="")
 
RETURN_CODE device_setSelfCheckTime (byte hour, byte minutes, string ident="")
 
RETURN_CODE device_logRead (DeviceLogCallback callback, string ident="")
 
RETURN_CODE device_logClear (string ident="")
 
RETURN_CODE device_logEnable (bool enable, string ident="")
 
RETURN_CODE device_extendedErrorCondition (bool enable, string ident="")
 
RETURN_CODE device_getSelfCheckTime (ref byte hour, ref byte minutes, string ident="")
 
RETURN_CODE config_setNetworkConfiguration (bool isStatic, string address, string subnet, string gateway, string dns, string ident="")
 
RETURN_CODE config_setWifiConfig (int mode, string ssid, string password, string ip, string netMask, string gateway, string ident="", string remoteIP=null, string remotePort=null)
 
RETURN_CODE config_getWifiConfig (ref int mode, ref string ssid, ref string password, ref string ip, ref string netMask, ref string gateway, ref string remoteIP, ref string remotePort, string ident="")
 
RETURN_CODE device_getFirmwareVersion (ref string response, string ident="")
 
RETURN_CODE device_getBLEName (ref string name, string ident="")
 
RETURN_CODE device_getDeviceTreeVersion (ref string response, bool isDeviceTree, string ident="")
 
RETURN_CODE device_get1050BootloaderVersion (ref string response, string ident="")
 
RETURN_CODE device_get1050FuseStatus (ref byte[] status, string ident="")
 
RETURN_CODE device_getBootloaderVersion (ref string response, string ident="")
 
RETURN_CODE config_setWirelessWorkMode (int mode, string ident="")
 
RETURN_CODE config_sendSSLRequestWiFi (string address, int port, string ident="")
 
RETURN_CODE config_getWirelessWorkMode (ref int mode, string ident="")
 
RETURN_CODE device_getRT1050FirmwareVersion (ref string response, string ident="")
 
bool createFastEMVData (ref IDTTransactionData cData, string ident="")
 
RETURN_CODE device_sendPAE (string command, ref string response, int timeout, string ident="")
 
RETURN_CODE device_setTransArmorEncryption (byte[] cert, string ident="")
 
RETURN_CODE device_getTransArmorID (ref string TID, string ident="")
 
RETURN_CODE device_setTransArmorID (string TID, string ident="")
 
RETURN_CODE device_retrieveAIDList (ref byte[][] response, string ident="")
 
RETURN_CODE device_rebootDevice (string ident="")
 
RETURN_CODE device_sendDataCommand (string cmd, bool calcLRC, ref byte[] response, string ident="")
 
RETURN_CODE device_sendDataCommand_ext (string cmd, bool calcLRC, ref byte[] response, int timeout, bool noResponse, string ident="")
 
RETURN_CODE msr_setMSRTrack (int val, string ip, string ident="")
 
RETURN_CODE msr_getMSRTrack (ref int val, string ident="")
 
RETURN_CODE msr_startMSRSwipe (int timeout, string ident="")
 
RETURN_CODE msr_startMSRSwipe_ext (int timeout, string ident, SwipeCallback swipeCallback, TimeoutCallback timeoutCallback, FailureCallback failureCallback)
 
RETURN_CODE msr_cancelMSRSwipe (string ident="")
 
RETURN_CODE emv_cancelTransaction (string ident="")
 
RETURN_CODE ctls_cancelTransaction (string ident="")
 
RETURN_CODE emv_startTransactionCB (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, bool forceOnline, CallBackIP callback, bool isFastEMV=false, string ident="")
 
RETURN_CODE emv_startTransaction (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, bool forceOnline, bool isFastEMV=false, string ident="")
 
RETURN_CODE emv_activateTransaction (int timeout, byte[] tags, bool forceOnline, bool isFastEMV=false, string ident="")
 
RETURN_CODE emv_authenticateTransactionCB (byte[] updatedTLV, CallBackIP callback, string ident="")
 
RETURN_CODE emv_authenticateTransaction (byte[] updatedTLV, string ident="")
 
RETURN_CODE ctls_startTransaction (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, bool forceOnline, bool isFastEMV=false, string ident="")
 
RETURN_CODE ctls_activateTransaction (int timeout, byte[] tags, bool forceOnline, bool isFastEMV=false, string ident="")
 
RETURN_CODE ctls_updateBalance (byte statusCode, byte[] authCode, byte[] date, byte[] time, string ident="")
 
RETURN_CODE device_startTransactionCB (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, CallBackIP callback, string ident="", bool isFastEMV=false)
 
RETURN_CODE device_startTransaction (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, bool isFastEMV=false, string ident="")
 
RETURN_CODE device_activateTransaction (int timeout, byte[] tags, bool isFastEMV=false, string ident="")
 
RETURN_CODE emv_completeTransactionCB (bool commError, byte[] authCode, byte[] iad, byte[] tlvScripts, byte[] tlv, CallBackIP callback, string ident="")
 
RETURN_CODE emv_completeTransaction (bool commError, byte[] authCode, byte[] iad, byte[] tlvScripts, byte[] tlv, string ident="")
 
RETURN_CODE emv_callbackResponseLCD (EMV_LCD_DISPLAY_MODE type, byte selection, string ident="")
 
RETURN_CODE emv_callbackResponsePIN (EMV_PIN_MODE type, byte[] KSN, byte[] PIN, string ident="")
 
RETURN_CODE emv_callbackResponsePIN_ETC (EMV_PIN_MODE type, byte[] KSN, byte[] PIN, string ident="")
 
RETURN_CODE emv_generateDUKPT (byte[] cert, byte[] signature, ref byte[] key, string ident="")
 
RETURN_CODE emv_exchangeCerts (ref byte[] cert, ref byte[] nonce, ref byte[] signature, string ident="")
 
RETURN_CODE emv_callbackResponseKSN (byte[] KSN, string ident="")
 
RETURN_CODE emv_verifyDUKPTLoaded (byte[] KCV, string ident="")
 
RETURN_CODE emv_callbackResponseMSR (byte[] MSR, string ident="")
 
RETURN_CODE emv_getEMVKernelCheckValue (ref string response, string ident="")
 
RETURN_CODE emv_getEMVConfigurationCheckValue (ref string response, string ident="")
 
RETURN_CODE emv_getEMVKernelVersion (ref string response, string ident="")
 
RETURN_CODE emv_retrieveTransactionResult (byte[] tags, ref IDTTransactionData tlv, string ident="")
 
RETURN_CODE emv_removeApplicationData (byte[] AID, string ident="")
 
RETURN_CODE ctls_removeApplicationData (byte[] AID, string ident="")
 
RETURN_CODE emv_removeAllApplicationData (string ident="")
 
RETURN_CODE emv_removeCAPK (byte[] capk, string ident="")
 
RETURN_CODE ctls_removeCAPK (byte[] capk, string ident="")
 
RETURN_CODE emv_removeAllCAPK (string ident="")
 
RETURN_CODE config_getKeySlotInfo (int index, int slot, ref byte[] keyslot, string ident="")
 
RETURN_CODE adf_ApplicationControl (ADF_APP_CONTROL state, string ident="")
 
RETURN_CODE adf_getModuleBytes (ADF_TYPE type, ref List< byte[]> adfInfo, string ident="")
 
RETURN_CODE adf_getModuleInfo (ADF_TYPE type, ref List< ADF_Info > adfInfo, string ident="")
 
RETURN_CODE adf_setJTAG (bool enable, string ident="")
 
RETURN_CODE adf_setADFMode (bool enable, string ident="")
 
RETURN_CODE adf_getADFMode (ref bool enable, string ident="")
 
RETURN_CODE adf_eraseFlash (ADF_TYPE type, string ident="")
 
RETURN_CODE ctls_removeAllCAPK (string ident="")
 
RETURN_CODE emv_removeCRL (byte[] crlList, string ident="")
 
RETURN_CODE emv_removeAllCRL (string ident="")
 
RETURN_CODE emv_retrieveApplicationData (byte[] AID, ref byte[] tlv, string ident="")
 
RETURN_CODE ctls_retrieveApplicationData (byte[] AID, ref byte[] tlv, string ident="")
 
RETURN_CODE emv_retrieveAIDList (ref byte[][] response, string ident="")
 
RETURN_CODE ctls_retrieveAIDList (ref byte[][] response, string ident="")
 
RETURN_CODE emv_retrieveCAPK (byte[] capk, ref byte[] key, string ident="")
 
RETURN_CODE ctls_retrieveCAPK (byte[] capk, ref byte[] key, string ident="")
 
RETURN_CODE emv_retrieveCAPKList (ref byte[] keys, string ident="")
 
RETURN_CODE ctls_retrieveCAPKList (ref byte[] keys, string ident="")
 
RETURN_CODE emv_retrieveCRLList (ref byte[] list, string ident="")
 
RETURN_CODE ctls_retrieveTerminalData (ref byte[] tlv, string ident="")
 
RETURN_CODE device_retrieveTerminalData (ref byte[] tlv, string ident="")
 
RETURN_CODE emv_retrieveTerminalData (ref byte[] tlv, string ident="")
 
RETURN_CODE emv_removeTerminalData (string ident="")
 
RETURN_CODE emv_setApplicationData (byte[] name, byte[] tlv, string ident="")
 
RETURN_CODE emv_setApplicationData (byte[] tlv, string ident="")
 
RETURN_CODE ctls_setApplicationData (byte[] tlv, string ident="")
 
RETURN_CODE ctls_setDefaultConfiguration (string ident="")
 
RETURN_CODE ctls_setConfigurationGroup (byte[] tlv, string ident="")
 
RETURN_CODE emv_setCAPK (byte[] key, string ident="")
 
RETURN_CODE ctls_setCAPK (byte[] key, string ident="")
 
RETURN_CODE emv_setCRL (byte[] list, string ident="")
 
RETURN_CODE emv_trySetTerminalData (byte[] tlv, ref byte[] rejectedTLV, ref byte[] convertedTLV, bool overwrite=false, string ident="")
 
RETURN_CODE emv_setTerminalData (byte[] tlv, string ident="")
 
RETURN_CODE emv_addTerminalData (byte[] tlv, string ident="")
 
RETURN_CODE ctls_setTerminalData (byte[] tlv, string ident="")
 
RETURN_CODE ctls_trySetTerminalData (byte[] tlv, ref byte[] rejectedTLV, ref byte[] convertedTLV, string ident="")
 
RETURN_CODE device_setTerminalData (byte[] tlv, string ident="")
 
RETURN_CODE device_sendVivoCommandP3 (byte command, byte subCommand, byte[] data, ref byte[] response, string ident="")
 
RETURN_CODE device_sendVivoCommandP3_ext (byte command, byte subCommand, byte[] data, ref byte[] response, int timeout, bool noResponse, string ident="")
 
RETURN_CODE device_sendVivoCommandP4 (byte command, byte subCommand, byte[] data, ref byte[] response, string ident="")
 
RETURN_CODE device_sendVivoCommandP4_ext (byte command, byte subCommand, byte[] data, ref byte[] response, int timeout, bool noResponse, string ident="")
 
RETURN_CODE emv_setTerminalMajorConfiguration (int configuration, string ident="")
 
RETURN_CODE emv_getTerminalMajorConfiguration (ref int configuration, string ident="")
 
RETURN_CODE device_lowPowerMode (bool stopMode, bool wakeOnTrans, string ident="")
 
RETURN_CODE device_pingDevice (string ident="")
 
RETURN_CODE device_buzzer (string ident="")
 
RETURN_CODE device_cancelTransaction (string ident="")
 
RETURN_CODE device_resetTransaction (string ident="")
 
RETURN_CODE device_setLED (byte indexLED, byte control, string ident="")
 
RETURN_CODE device_getProductType (ref byte[] type, string ident="")
 
RETURN_CODE device_getProcessorType (ref byte[] type, string ident="")
 
RETURN_CODE device_getHardwareInfor (ref string ascii, string ident="")
 
RETURN_CODE device_getUIDofMCU (ref string uid, string ident="")
 
RETURN_CODE device_getModuleVer (ref string moduleVer, string ident="")
 
RETURN_CODE device_getUsbBootLoader (ref string bootLoader, string ident="")
 
RETURN_CODE device_getRemoteKeyInjectionTO (ref int timeout, string ident="")
 
RETURN_CODE device_getCashTranRiskPara (ref byte[] tlv, string ident="")
 
RETURN_CODE device_getMsrSecurePar (bool b0, bool b1, bool b2, bool b3, ref byte[] tlv, string ident="")
 
RETURN_CODE emv_resetConfigurationGroup (int group, string ident="")
 
RETURN_CODE device_getMerchantRecord (int index, ref byte[] record, string ident="")
 
RETURN_CODE device_resetConfigurationGroup (int group, string ident="")
 
RETURN_CODE ctls_resetConfigurationGroup (int group, string ident="")
 
RETURN_CODE device_controlUserInterface (byte[] values, string ident="")
 
RETURN_CODE device_controlLED (byte indexLED, byte control, string ident="")
 
RETURN_CODE device_sendVivoCommandP2 (byte command, byte subCommand, byte[] data, ref byte[] response, string ident="")
 
RETURN_CODE device_sendVivoCommandP2_ext (byte command, byte subCommand, byte[] data, ref byte[] response, int timeout, bool noResponse, string ident="")
 
RETURN_CODE device_StartRKI (int type, string ident="")
 
RETURN_CODE ctls_getConfigurationGroup (int group, ref byte[] tlv, string ident="")
 
RETURN_CODE ctls_removeConfigurationGroup (int group, string ident="")
 
RETURN_CODE ctls_getAllConfigurationGroups (ref byte[][] response, string ident="")
 
RETURN_CODE device_setBurstMode (byte mode, string ident="")
 
RETURN_CODE device_setPollMode (byte mode, string ident="")
 
RETURN_CODE device_setMerchantRecord (int index, bool enabled, string merchantID, string merchantURL, string ident="")
 
RETURN_CODE device_startRKI (bool isTest, string ident="")
 
RETURN_CODE device_certificateType (ref int type, string ident="")
 
RETURN_CODE device_updateDeviceFromManifest (string filepath, string ident="", bool isForeground=false)
 
RETURN_CODE device_updateFirmwareType (string path, FIRMWARE_TYPE type, FirmwareUpdateCallback callback, string ident="", UInt32 address=0)
 
RETURN_CODE device_updateFirmwareKernels (string path, FirmwareUpdateCallback callback, string ip="", UInt32 address=0, string ident="")
 
RETURN_CODE device_updateFirmwareIP (string path, int type, FirmwareUpdateCallback callback, string ip, string ident="", bool performOnForeground=false)
 
RETURN_CODE icc_getICCReaderStatus (ref byte status, string ident="")
 
RETURN_CODE icc_powerOffICC (string ident="")
 
RETURN_CODE icc_powerOnICC (ref byte[] ATR, byte interfaces, string ident="")
 
RETURN_CODE icc_exchangeAPDU (string c_APDU, ref byte[] response, string ident="")
 
RETURN_CODE lcd_displayMessage (int lineNumber, string message, string ident="")
 
RETURN_CODE lcd_clearAllLines (string ident="")
 
RETURN_CODE lcd_linkUIWithTransactionMessageId (byte messageID, string screenName, string ident="")
 
RETURN_CODE lcd_showScreen (string screenName, string ident="")
 
RETURN_CODE lcd_createScreen (string screenName, ref UInt16 screenID, string ident="")
 
RETURN_CODE lcd_cloneScreen (string screenName, string cloneName, ref UInt16 cloneID, string ident="")
 
RETURN_CODE lcd_destroyScreen (string screenName, string ident="")
 
RETURN_CODE lcd_getActiveScreen (ref string screenName, string ident="")
 
RETURN_CODE lcd_getButtonEvent (ref UInt16 screenID, ref UInt16 objectID, ref string screenName, ref string objectName, ref bool isLongPress, string ident="")
 
RETURN_CODE lcd_addButton (string screenName, string buttonName, byte type, byte alignment, UInt16 xCord, UInt16 yCord, string label, ref lcdItem returnItem, buttonCallback callback, string ident="")
 
RETURN_CODE lcd_addEthernet (string screenName, string objectName, byte alignment, UInt16 xCord, UInt16 yCord, ref lcdItem returnItem, string ip, string ident="")
 
RETURN_CODE lcd_addLED (string screenName, string objectName, byte alignment, UInt16 xCord, UInt16 yCord, ref lcdItem returnItem, byte[] LED, string ident="")
 
RETURN_CODE lcd_addImage (string screenName, string objectName, byte alignment, UInt16 xCord, UInt16 yCord, string filename, ref lcdItem returnItem, string ident="")
 
void lcd_setButtonCallback (string screenName, string buttonName, buttonCallback callback, string ip, string ident="")
 
void lcd_setPinInputCallback (SwipeCallback callback, string ident="")
 
RETURN_CODE device_enterStandbyMode (string ident="")
 
void lcd_setPinSwipeCallback (SwipeCallback callback, string ident="")
 
void lcd_setPinFailureCallback (FailureCallback callback, string ident="")
 
void lcd_setPinTimeoutCallback (TimeoutCallback callback, string ident="")
 
void lcd_setPinCancelPromptCallback (CancelPromptCallback callback, string ident="")
 
RETURN_CODE lcd_addText (string screenName, string objectName, byte alignment, UInt16 xCord, UInt16 yCord, UInt16 width, UInt16 height, byte fontID, byte[] color, string label, ref lcdItem returnItem, string ident="")
 
RETURN_CODE lcd_updateLabel (string screenName, string objectName, string label, string ident="")
 
RETURN_CODE lcd_updateColor (string screenName, string objectName, byte[] color, string ident="")
 
RETURN_CODE lcd_updatePosition (string screenName, string objectName, byte alignment, UInt16 new_xCord, UInt16 new_yCord, string ident="")
 
RETURN_CODE lcd_removeItem (string screenName, string objectName, string ident="")
 
RETURN_CODE lcd_storeScreenInfo (string ident="")
 
RETURN_CODE lcd_loadScreenInfo (string ident="")
 
RETURN_CODE lcd_clearScreenInfo (string ident="")
 
RETURN_CODE lcd_getAllScreens (ref byte screenNumbers, ref Dictionary< UInt16, string > returnScreens, string ident="")
 
RETURN_CODE lcd_getAllObjects (string screenName, ref byte objectNumbers, ref Dictionary< UInt16, string > returnObjects, string ident="")
 
RETURN_CODE lcd_queryScreenbyName (string screenName, ref byte result, string ident="")
 
RETURN_CODE lcd_queryObjectbyName (string objectName, ref byte objectNumbers, ref List< string > returnItems, string ident="")
 
RETURN_CODE lcd_queryScreenbyID (UInt16 screenID, ref byte result, ref string screenName, string ident="")
 
RETURN_CODE lcd_queryObjectbyID (UInt16 objectID, ref byte objectNumbers, ref List< string > returnItems, string ident="")
 
RETURN_CODE lcd_setBacklight (bool isBacklightOn, byte backlightVal, string ident="")
 
RETURN_CODE device_enablePassThrough (bool enablePassThrough, string ident="")
 
RETURN_CODE device_enableL100PassThrough (bool enablePassThrough, string ident="")
 
RETURN_CODE device_enableL80PassThrough (bool enablePassThrough, string ident="")
 
string device_getResponseCodeString (RETURN_CODE eCode)
 
RETURN_CODE device_getTransactionResults (ref IDTTransactionData results, string ident="")
 
RETURN_CODE pin_getFunctionKey (int timeout, string ident="")
 
RETURN_CODE pin_getFunctionKey_ext (int timeout, string ip, SwipeCallback inputCallback, FailureCallback failureCallback, TimeoutCallback timeoutCallback, CancelPromptCallback cancelPromptCallback)
 
RETURN_CODE pin_capturePin (int timeout, int type, string PAN, int minPIN, int maxPIN, string message, string ident="")
 
RETURN_CODE pin_capturePinExt (int timeout, int type, string PAN, int minPIN, int maxPIN, string message1, string message2, string verify1, string verify2, string ident="")
 
RETURN_CODE pin_capturePin_ext (int timeout, int type, string PAN, int minPIN, int maxPIN, string message, string ident, SwipeCallback inputCallback, FailureCallback failureCallback, TimeoutCallback timeoutCallback, CancelPromptCallback cancelPromptCallback)
 
RETURN_CODE pin_sendBeep (string ident="")
 
RETURN_CODE pin_getPanEntry (bool csc, bool expDate, bool ADR, bool ZIP, bool mod10, UInt16 timeout, bool encPANOnly=false, string ident="")
 
RETURN_CODE pin_getPanEntry_ext (bool csc, bool expDate, bool ADR, bool ZIP, bool mod10, UInt16 timeout, bool encPANOnly, string ip, SwipeCallback swipeCallback, TimeoutCallback timeoutCallback, CancelPromptCallback cancelPromptCallback)
 
RETURN_CODE pin_promptForInput (int messageID, short timeout, string ip=null, string ident="")
 
RETURN_CODE pin_promptForInput_ext (int messageID, short timeout, string ident, SwipeCallback inputCallback, SwipeCallback swipeCallback, FailureCallback failureCallback, TimeoutCallback timeoutCallback, CancelPromptCallback cancelPromptCallback)
 
RETURN_CODE pin_promptForNumericKeyWithSwipe (short timeout, byte function, int minLen, int maxLen, string line1, string line2, byte[] signature, string ident="")
 
RETURN_CODE pin_promptForNumericKeyWithSwipe_ext (short timeout, byte function, int minLen, int maxLen, string line1, string line2, byte[] signature, string ident, SwipeCallback inputCallback, SwipeCallback swipeCallback, FailureCallback failureCallback, TimeoutCallback timeoutCallback, CancelPromptCallback cancelPromptCallback)
 
RETURN_CODE pin_promptForAmount (int timeout, int minLen, int maxLen, string message, byte[] signature, string ident="")
 
RETURN_CODE pin_promptForAmount_ext (int timeout, int minLen, int maxLen, string message, byte[] signature, string ident, SwipeCallback inputCallback, FailureCallback failureCallback, TimeoutCallback timeoutCallback, CancelPromptCallback cancelPromptCallback)
 
RETURN_CODE pin_cancelPINEntry (string ident="")
 
void device_listenForNotifications (bool enable, string ident="")
 
RETURN_CODE device_deleteDirectory (string filename, string ident="")
 
RETURN_CODE device_listDirectory (string directoryName, bool recursive, bool onSD, ref string directory, string ident="")
 
RETURN_CODE device_transferFile (string fileName, byte[] file, bool isSD=false, string ident="")
 
RETURN_CODE device_deleteFile (string filename, bool isSD=false, string ident="")
 
RETURN_CODE felica_authentication (byte[] key, string ident="")
 
RETURN_CODE felica_SendCommand (byte[] command, ref byte[] response, string ident="")
 
RETURN_CODE felica_readWithMac (int numBlocks, byte[] blockList, ref byte[] blocks, string ident="")
 
RETURN_CODE felica_writeWithMac (int blockNumber, byte[] data, string ident="")
 
RETURN_CODE felica_read (byte[] serviceCode, int numBlocks, byte[] blockList, ref byte[] blocks, string ident="")
 
RETURN_CODE felica_write (byte[] serviceCode, int blockCount, byte[] blockList, byte[] data, ref byte[] statusFlag, string ident="")
 
RETURN_CODE ctls_nfcCommand (byte[] nfcCmdPkt, ref byte[] response, string ident="")
 
RETURN_CODE felica_requestService (byte[] nodeCode, ref byte[] response, string ident="")
 
RETURN_CODE lcd_startScreenSaver (string name, string ident="")
 
RETURN_CODE lcd_playAudio (string name, int type, string ident="")
 
RETURN_CODE lcd_stopAudio (string ident="")
 
RETURN_CODE lcd_getAudioVolume (ref int volume, string ident="")
 
RETURN_CODE lcd_setAudioVolume (int volume, string ident="")
 
RETURN_CODE device_playAudio (string name, int type, string ident="")
 
RETURN_CODE device_stopAudio (string ident="")
 
RETURN_CODE device_getAudioVolume (ref int volume, string ident="")
 
RETURN_CODE device_setAudioVolume (int volume, string ident="")
 
RETURN_CODE lcd_startScanQR (ushort timeout, string ident="")
 
RETURN_CODE lcd_startScanQR_ext (ushort timeout, ushort xcord, ushort ycord, ushort width, ushort height, string ident="")
 
RETURN_CODE lcd_stopScanQR (string ident="")
 
RETURN_CODE lcd_startCameraCapture (ushort timeout, string ident="")
 
RETURN_CODE lcd_stopCameraCapture (string ident="")
 
RETURN_CODE config_setEncryptionControl (bool msr, bool icc, string ident="")
 
RETURN_CODE config_getEncryptionControl (ref bool msr, ref bool icc, string ident="")
 
RETURN_CODE msr_setConfiguration (byte[] config, string ident="")
 
RETURN_CODE msr_getConfiguration (ref byte[] config, string ident="")
 
RETURN_CODE device_getRKIStatus (bool isProd, bool isMultiKey, ref string status, ref Dictionary< string, RKI_KEY_TYPE > keys, string ident="")
 
RETURN_CODE device_getAnyRKIStatus (bool isMultiKey, ref string status, ref Dictionary< string, RKI_KEY_TYPE > keys, string ident="")
 
RETURN_CODE emv_getEMVKernelVersionExt (ref string response, string ident="")
 
RETURN_CODE device_updateFirmwareFromZip (byte[] zipfile, string ident="", bool isForeground=false)
 
RETURN_CODE device_sendConfigurationFromZip (byte[] zip, string filename, VC_OPERATION_TYPE type, bool matchFW, string ident="", bool isForeground=false)
 
RETURN_CODE device_sendConfiguration (string filename, VC_OPERATION_TYPE type, bool matchFW, string ident="", bool isForeground=false)
 
RETURN_CODE device_readConfigurationToMemory (string memo, Configs.InstallRules rules, List< Configs.DeviceCommand > cmds, string ident="", bool isForeground=false)
 
RETURN_CODE device_getConfigurationFromMemory (ref string json, string ident="")
 
RETURN_CODE device_RemoteKeyInjection (RKI_KEY_TYPE type, string keyName, string ident="", bool performOnForeground=false)
 
RETURN_CODE device_rrcUninstallApp (string appName, string ident="")
 
RETURN_CODE device_rrcRunApp (string appName, string ident="")
 
RETURN_CODE device_rrcInstallApp (string appName, string ident="")
 
RETURN_CODE device_rrcDownloadApp (string appName, byte[] appData, string ident="")
 
RETURN_CODE device_rrcConnect (string ident="")
 
RETURN_CODE device_rrcDisconnect (string ident="")
 

Static Public Member Functions

static bool useSerialPort (int port)
 
static bool useSerialPort (int port, int baud)
 
static bool useSerialPortLinux (string path)
 
static bool useSerialPortLinux (string path, int baud)
 
static int getCommandTimeout (string ident="")
 
static void setCommandTimeout (int milliseconds, string ident="")
 
static void hasUI (bool val)
 
static void monitorNetworkForDevices (bool monitorON, int port=0, bool authClient=false, int sendTimeout=6000, int receiveTimeout=6000)
 
static bool ip_switchToSocket (string IP)
 
static bool closeSocket (string IP)
 
static List< string > ip_getSocketList ()
 
static string getlastErrorString (string ident="")
 
static bool ip_isConnected (string ip, int attempts=1, bool isSecure=false)
 
static void initSC ()
 
static void setCallback (CallBack my_Callback)
 
static void setLongPressCallback (longPressCallback callback, string ident="")
 
static void setCallbackIP (CallBackIP my_Callback, string ident="")
 
static void setCallback (IntPtr my_Callback, SynchronizationContext context)
 
static String SDK_Version ()
 
static void emv_autoAuthenticate (bool authenticate, string ident="")
 
static void emv_autoAuthenticateTags (bool authenticate, byte[] tags, string ident="")
 
static void emv_allowFallback (bool allow, string ident="")
 
static RETURN_CODE device_updateFirmwareType (FIRMWARE_TYPE type, byte[] firmwareData, string ident="", UInt32 address=0, bool performOnForeground=false, int manifestScriptsCount=0, int processedScriptCount=0, string DT_PRJ_filename="")
 
static RETURN_CODE device_updateDeviceFirmware (byte[] firmwareData, string ident="")
 
static RETURN_CODE device_wakeDevice (string macAddress="", string ipAddress="")
 
static RETURN_CODE lcd_clearDisplay (string ident="")
 
static void lcd_retrieveMessage (DisplayMessages.DISPLAY_MESSAGE_LANGUAGE lang, DisplayMessages.DISPLAY_MESSAGE_IDENTIFIER id, ref string line1, ref string line2)
 

Properties

static bool bypassUSBCheck [get, set]
 
static IDT_NEO2 SharedController [get]
 

Detailed Description

Class for VP6300 reader

Member Function Documentation

RETURN_CODE IDTechSDK.IDT_NEO2.adf_ApplicationControl ( ADF_APP_CONTROL  state,
string  ident = "" 
)

ADF Application Control

Starts or stop application running in ADF environment

Parameters
stateApplication Control state:
  • ADF_APP_CONTROL_STOP_ALL = Stop All Applications
  • ADF_APP_CONTROL_START_ALL = Start All Applications
  • ADF_APP_CONTROL_START_FIRST = Start Only First Application
  • ADF_APP_CONTROL_START_ADDITIONAL = Start All Applicatins EXCEPT First Application
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.adf_eraseFlash ( ADF_TYPE  type,
string  ident = "" 
)

Erase ADF Flash

Erases ADF Flash Memory

Parameters
typeTRUE = ADF type, ADF_TYPE_SDK or ADF_TYPE APP
identoptional - device identifier
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.adf_getADFMode ( ref bool  enable,
string  ident = "" 
)

Get ADF Mode

Gets the enabled state of the ADF environment

Parameters
enableTRUE = ADF enabled, FALSE = ADF disabled
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.adf_getModuleBytes ( ADF_TYPE  type,
ref List< byte[]>  adfInfo,
string  ident = "" 
)

Get Module Bytes

Retrieves first 64 bytes of module info running in ADF environment

Parameters
typeType:
  • ADF_TYPE_SDK = SDK
  • ADF_TYPE_APP = Application
adfInfoList of Modules First 64 bytes
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.adf_getModuleInfo ( ADF_TYPE  type,
ref List< ADF_Info >  adfInfo,
string  ident = "" 
)

Get Module Info Info

Retrieves module info running in ADF environment

Parameters
typeType:
  • ADF_TYPE_SDK = SDK
  • ADF_TYPE_APP = Application
adfInfoList of Modules Info
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.adf_setADFMode ( bool  enable,
string  ident = "" 
)

Set ADF Mode

Enables/Disables the ADF environment

Parameters
enableTRUE = ADF enabled, FALSE = ADF disabled
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.adf_setJTAG ( bool  enable,
string  ident = "" 
)

Set JTAG

Enables/Disables the JTAG pin in the ADF environment

Parameters
enableTRUE = JTAG enabled, FALSE = JTAG disabled
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
static bool IDTechSDK.IDT_NEO2.closeSocket ( string  IP)
static

Close Socket

Instructs SDK to attempt to use close existing TCP/IP socket used for communication with IDT_NEO2

Parameters
IPValid established IP address of the existing device. Must match original IP string exactly. Example: Connect to device as 192.168.1.155:50#Device_1. You must use that whole string, not just 192.168.1.155, or 192.168.1.155:50.
Return values
successTRUE = socket closed, FALSE = socket not found
RETURN_CODE IDTechSDK.IDT_NEO2.config_checkDUKPTKey ( byte  keyindex,
ref byte[]  val,
string  ident = "" 
)

Check DUKPT Key

This command checks whether a valid DUKPT key is stored at the specified slot and if a valid key is found then some basic information related to the type of key is returned. The actual Key data is never returned. This command can be used to check whether a key is already present before injecting a key in a KeyIndex to prevent overwriting an existing DUKPT key.

Parameters
keyindexData Encryption Key Index (usually 5)
val
  • Byte 0 = Key State: 00h = Unused, 01h = Valid, 02h = End Of Life, FFh = Not Available
  • Byte 1-2 = Key Usage (ASCII). "D0" = Use to encrypt data
  • Byte 3 = Algorithm (ASCII). "T" = Triple DES
  • Byte 4 = Mode ofUse (ASCII). "E" = Encryption Only
  • Byte 5-6 = Key Version (ASCII). "00" = key version not used
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getDEKVariantType ( ref byte  type,
string  ident = "" 
)

Get Data Encryption Key Variant Type

Returns the Data Encryption Key Type

Parameters
type
  • 0 = Data Variant
  • 1 = Pin Variant
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getDUKPT_DEK_Attribution ( byte  keyslot,
ref byte  mode,
ref byte  outputMode_workingKey,
ref byte  variant_keyUsage,
string  ident = "" 
)

Get DUKPT DEK Attribution based on KeySlot

Command settings can only be changed for each key one time.

Parameters
keyslotKey Slot
mode
  • 0 = TDES
  • 1 = AES
outputMode_workingKeyOutput Mode is when TDES, Working Key is when AES
  • 0 = TDES / TDES
  • 1 = AES-128 / TDES3
  • 2 = TransArmor / AES-128
variant_keyUsageVariant is when TDES, Key Usage is when AES
  • 0 = Data Key / Encrypt/Decrypt
  • 1 = PIN Key / Encrypt
  • 2 = N/A / Decrypt
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getDUKPT_KSN ( ref byte[]  ksn,
string  ident = "" 
)

Get DUKPT Key Serial Number (KSN)

Host can use this command to retrieve the KSN of the DUKPT key.

Parameters
ksnKey Serial Number
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getDUKPTEncryptionType ( ref byte  type,
string  ident = "" 
)

Get DUKPT Key Encryption Type

Returns DUKPT Key Encryption Type.

Parameters
type
  • 0 = TDES
  • 1 = AES
  • 2 = TransArmor
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getEncryptionControl ( ref bool  msr,
ref bool  icc,
string  ident = "" 
)

Get Encryption Control

Get Encryption Control to switch status between MSR and ICC/EMV function. Following Encryption status supported:

  • MSR ON, ICC/EMV ON,
  • MSR ON, ICC/EMV OFF,
  • MSR OFF, ICC/EMV OFF,
Parameters
msr
  • true: enabled MSR with Encryption,
  • false: disabled MSR with Encryption,
icc
  • true: enabled ICC with Encryption,
  • false: disabled ICC with Encryption,
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getEthernetMACAddress ( ref byte[]  address,
string  ident = "" 
)

Get Device Ethernet MAC Address

Parameters
address6-byte MAC Address
ipOptional: The callback function will only be applicable to the provided IP.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getKeyslot_PEK_DEK ( ref byte  keyslotPEK,
ref byte  keyslotDEK,
string  ident = "" 
)

Get KeySlot for DUKPT PEK and DUKPT DEK

• Returns the KeySlot for PEK and DEK (when exists).

Parameters
keyslotPEKPEK KeySlot (0-9). Value of 255 (0xff) = does not exist
keyslotDEKDEK KeySlot (0-9). Value of 255 (0xff) = does not exist
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getKeySlotInfo ( int  index,
int  slot,
ref byte[]  keyslot,
string  ident = "" 
)

Get Key Slot Info

This command checks whether a valid DUKPT key is stored at the specified index and slot and if a valid key is found then some basic information related to the type of key is returned

Parameters
indexKey index: 0x01 = PIN, 0x02 = Data, 0x05 = MAC, 0x14 = KEK, 0x0A = PCI Pairing Key
slotKey Slot: Slot number of particular key Key Slot Data. If 0x00, no key at the slot, otherwise:
  • Byte 0 - Key State: 0x00 = Unused, 0x01 = Valid, 0x02 = End of Life, 0xFF = Not Available
  • Byte 1 - KSN Lenght. Value 10 = TDES PIN DUKPT Key, value 12 = AES PIN DUKPT KEY
  • Byte 2-12 or 2-14 - DUKPT Key KSN. If length 10, then TDES. If length 12 then AES
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getMasking ( ref byte  prePAN,
ref byte  postPAN,
ref byte  asciiMask,
ref byte  hexMask,
ref bool  maskExp,
string  ident = "" 
)

Get Masking

Parameters
prePANthe number of pre-PAN characters to display in the clear. Valid values 0-6. Default 4.
postPANthe number of post-PAN characters to display in the clear. Valid values 0-6. Default 4.
asciiMaskMask character for ASCII output masked data. Valid values 0x20-0x7E. Default 0x2A (*, string ident = "") param hexMask Mask character for compressed numeric masked data. Valid values are 0x0A = 0x0F. Default 0x0C param maskExp TRUE = mask expiration data, FALSE = display expiration date in the clear.
ipOptional: The callback function will only be applicable to the provided IP.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getNetworkConfiguration ( ref bool  isStatic,
ref string  address,
ref string  subnet,
ref string  gateway,
ref string  dns,
string  ident = "" 
)

Get Device Network Configuration

Parameters
isStaticTRUE = Static IP, FALSE = DHCP
addressDevice IP Address as string. Example "192.168.1.15"
subnetDevice Subnet as string. Example "255.255.255.0"
gatewayDevice Gateway address as a string. Example "8.8.8.8"
dnsDevice DNS address as string. Example "192.168.1.22"
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getSalt_KCV ( ref byte[]  kcv,
string  ident = "" 
)

Get Salt KCV

Host can use this command to retrieve the Salt KCV.

Parameters
kcvKCV
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getSerialNumber ( ref string  response,
string  ident = "" 
)

Polls device for Serial Number

Parameters
responseReturns Serial Number
ipOptional: The callback function will only be applicable to the provided IP.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getSSLServerEthernet ( ref string  address,
ref int  port,
string  ident = "" 
)

Get SSL Sever Ethernet

Parameters
addressIP Address of TLS Server.
portPort of server.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getSwipeandDone ( ref byte  swipeVal,
ref byte  doneVal,
ref byte  delay,
string  ident = "" 
)

Get Swipe Button and Done Button Configuration

Read the button configuration from the ViVOpay Vendi reader.

Parameters
swipeValue of Swipe Button. The value set to 01h, the Swipe Card switch is enabled. If value is set to 00h the Swipe Card switch is disabled.
doneValue of Done Button. If value is set to 01h, the Done switch is enabled. If value is set to 00h, the DONE switch is disabled.
delayThe Delay is an unsigned delay value in seconds. This should probably not be set to values larger than 30 seconds
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getTrackFormat ( ref byte  option,
string  ident = "" 
)

Get Track Format

Parameters
optionFormat Options
  • 0 = No start/end sentinels, No LRC
  • 1 = Include start/end sentinels, No LRC
  • 2 = Include start/end sentinels, Include LRC
ipOptional: The callback function will only be applicable to the provided IP.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getWhiteList ( ref Dictionary< string, string >  data,
string  ident = "" 
)

Get White List

Parameters
dataThe white list data returned as Dictionary. Key = start bin range, Value = end bin range. When no range, Value = empty string.
ipOptional: The callback function will only be applicable to the provided IP.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getWifiConfig ( ref int  mode,
ref string  ssid,
ref string  password,
ref string  ip,
ref string  netMask,
ref string  gateway,
ref string  remoteIP,
ref string  remotePort,
string  ident = "" 
)

Get Wifi Configuration

Return all the network configurations.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getWirelessWorkMode ( ref int  mode,
string  ident = "" 
)

Get Wireless Work Mode

Return Wireless Work Mode.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_sendSSLRequestWiFi ( string  address,
int  port,
string  ident = "" 
)

Send SSL Request Over WiFi

Attempts to connect to TLS server over WiFi.

Parameters
addressTLS Server Address.
portTLS Server port. IF 0, will use 1443.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setBaudRate ( int  baud,
string  ident = "" 
)

Set Baud Rate

Sets the buad rate for RS-232 communication.

Parameters
baud
  • 4 = 9600
  • 6 = 19200
  • 7 = 38400
  • 8 = 57600
  • 9 = 115200
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setBluetoothParameters ( string  name,
string  oldPW,
string  newPW,
string  ident = "" 
)

Set BluetoothParameters

Sets the name and password for the BLE module.

Sending null to all three parameters resets the default password to 123456

Parameters
nameDevice name, 1-25 characters
oldPWOld password, as a six character string, example "123456"
newPWNew password, as a six character string, example "654321"
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setDEKVariantType ( byte  type,
string  ident = "" 
)

Set Data Encryption Key Variant Type

This command exists to specify the key variant type of Data encryption Key (Slot = 0), and MUST be used before the initial loading of the Data encryption Key into the device. The key variant type CANNOT be changed once the Data encryption Key is present. It must remain either Data Variant or PIN Variant.

Parameters
type
  • 0 = Data Variant
  • 1 = Pin Variant
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setDUKPT_DEK_Attribution_AES ( byte  keyslot,
byte  workingKey,
byte  keyUsage,
string  ident = "" 
)

Set DUKPT DEK Attribution based on KeySlot AES

Command settings can only be changed for each key one time.

Parameters
keyslotKey Slot
workingKey
  • 0 = TDES
  • 1 = TDES3
  • 2 = AES-128
keyUsage
  • 0 = Encrypt/Decrypt
  • 1 = Encrypt
  • 2 = Decrypt
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setDUKPT_DEK_Attribution_TDES ( byte  keyslot,
byte  outputMode,
byte  variant,
string  ident = "" 
)

Set DUKPT DEK Attribution based on KeySlot TDES

Command settings can only be changed for each key one time. However switching the Output mode (TDES and TransArmor TDES) is always valid.

Parameters
keyslotKey Slot
outputMode
  • 0 = TDES
  • 1 = AES-128
  • 2 = TransArmor TDES
variant
  • 0 = Data Variant
  • 1 = Pin Variant
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setDUKPTEncryptionType ( byte  type,
string  ident = "" 
)

Set DUKPT Key Encryption Type

This command exists to specify the encryption type of Data encryption Key(Slot = 0), and MUST be used before the initial loading of the Data encryption Key into the device. The encryption type CANNOT be changed once the Data encryption Key is present. It must remain either TDES or AES.

Parameters
type
  • 0 = TDES
  • 1 = AES
  • 2 = TransArmor
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setEncryptionControl ( bool  msr,
bool  icc,
string  ident = "" 
)

Set Encryption Control

Set Encryption Control to switch status between MSR and ICC/EMV function. Following Encryption status supported:

  • MSR ON, ICC/EMV ON,
  • MSR ON, ICC/EMV OFF,
  • MSR OFF, ICC/EMV OFF,
Parameters
msr
  • true: enable MSR with Encryption,
  • false: disable MSR with Encryption,
icc
  • true: enable ICC with Encryption,
  • false: disable ICC with Encryption,
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setKeyslot_PEK_DEK ( bool  isPEK,
byte  keyslot,
string  ident = "" 
)

Set KeySlot for DUKPT PEK and DUKPT DEK

• Selects one of the available PEKs for use in subsequent PIN encryption operations. • Selects one of the available DEKs for use in subsequent Data encryption operations.

Parameters
isPEKTRUE = Set PEK, FALSE = Set DEK
keyslotThe KeySlot number specifies the key this command will select
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setMasking ( byte  prePAN,
byte  postPAN,
byte  asciiMask,
byte  hexMask,
bool  maskExp,
string  ident = "" 
)

Set Masking

Parameters
prePANthe number of pre-PAN characters to display in the clear. Valid values 0-6. Default 4.
postPANthe number of post-PAN characters to display in the clear. Valid values 0-6. Default 4.
asciiMaskMask character for ASCII output masked data. Valid values 0x20-0x7E. Default 0x2A (*, string ident = "") param hexMask Mask character for compressed numeric masked data. Valid values are 0x0A = 0x0F. Default 0x0C param maskExp TRUE = mask expiration data, FALSE = display expiration date in the clear.
ipOptional: The callback function will only be applicable to the provided IP.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setNetworkConfiguration ( bool  isStatic,
string  address,
string  subnet,
string  gateway,
string  dns,
string  ident = "" 
)

Set Device Network Configuration

Parameters
isStaticTRUE = Static IP, FALSE = DHCP
addressDevice IP Address as string. Example "192.168.1.15"
subnetDevice Subnet as string. Example "255.255.255.0"
gatewayDevice Gateway address as a string. Example "8.8.8.8"
dnsDevice DNS address as string. Example "192.168.1.22"
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setRKLKeys ( short  keyNumber,
byte[]  tr31,
byte[]  nonce,
byte[]  hmac,
ref byte[]  kv,
ref byte[]  nonce_device,
ref byte[]  hmac_device,
string  ident = "" 
)

Set RKL Keys

• Sets the RKL Keys.

Parameters
keyNumberNumber of keys remaining to load
tr31ASN.1 structure of encrypted key(s)
nonceNonce generated by RKMS to generate an HMAC used for auth.
hmacHMAC-SHA256 generated from RKMS.
kvASN.1 Key Verification Structure returned from device.
nonce_deviceNonce generated by the device to generate a MAC used for auth.
hmac_deviceHMAC-SHA256 generated from device terminal.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setSSLServerEthernet ( string  address,
int  port,
string  ident = "" 
)

Set SSL Sever Ethernet

Parameters
addressIP Address of TLS Server. Example "192.168.1.15"
portPort of server. If 0, 1443 will be used
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setSwipeandDone ( byte  swipeVal,
byte  doneVal,
byte  delay,
string  ident = "" 
)

Set Swipe Button and Done Button Configuration

Configure the buttons on the ViVOpay Vendi reader. Both the SWIPE and DONE buttons can be independently disabled with this command. This command also sets the TAP disable time for when the SWIPE button is pressed. When the SWIPE button is enabled, the contactless reader is turned off for the programmed delay time so that a false read does not occur when the user wishes to swipe a dual contactless/MagStripe card.

Parameters
swipeValue of Swipe Button. The value set to 01h, the Swipe Card switch is enabled. If value is set to 00h the Swipe Card switch is disabled.
doneValue of Done Button. If value is set to 01h, the Done switch is enabled. If value is set to 00h, the DONE switch is disabled.
delayThe Delay is an unsigned delay value in seconds. This should probably not be set to values larger than 30 seconds
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setTrackFormat ( byte  option,
string  ident = "" 
)

Set Track Format

Parameters
optionFormat Options
  • 0 = No start/end sentinels, No LRC
  • 1 = Include start/end sentinels, No LRC
  • 2 = Include start/end sentinels, Include LRC
ipOptional: The callback function will only be applicable to the provided IP.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setWhiteList ( byte[]  data,
string  ident = "" 
)

Set White List

Parameters
dataThe signed white list data
ipOptional: The callback function will only be applicable to the provided IP.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setWifiConfig ( int  mode,
string  ssid,
string  password,
string  ip,
string  netMask,
string  gateway,
string  ident = "",
string  remoteIP = null,
string  remotePort = null 
)

Set Wifi Configuration

Set wifi configuration. Configuration will be saved in flash.

Parameters
modeWiFi work mode 0 – Set NULL Mode, WiFi RF will be disabled 1 - Set Station Mode Default) 2 – Set SoftAP Mode 3 – Set SoftAP+Station Mode(Default)
ssidSSID of the target AP as string.
passwordPassword of the target AP as string.
ipDevice IP Address as string.
netMaskDevice Subnet as string.
gatewayDevice Gateway address as a string.
remoteIPOptional. IP Address of TLS server as string.
remotePortOptional. Port of TLS server as string. Default 1443.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setWirelessWorkMode ( int  mode,
string  ident = "" 
)

Set Wireless Work Mode

Set wireless work mode(Wi-Fi/BLE). Configuration will be saved in flash.

Parameters
modeWireless work mode 0 – Set Wi-Fi TCP Server Mode 1 - Set Wi-Fi SSL Server Mode 2 – Set BLE Server Mode 3 - Set Wi-Fi UDP Server Mode 5 – Disable Wi-Fi and BLE, power off wireless module
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
bool IDTechSDK.IDT_NEO2.createFastEMVData ( ref IDTTransactionData  cData,
string  ident = "" 
)

Create Fast EMV Data

At the completion of a Fast EMV Transaction, after the final card decision is returned and the IDTTransactionData object is provided, sending that cData object to this method will populate the .fastEMV element with string data that represents the Fast EMV data that would be returned from and IDTech FastEMV over KB protocol

Parameters
cDataThe IDTTransactionData object populated with card data.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_activateTransaction ( int  timeout,
byte[]  tags,
bool  forceOnline,
bool  isFastEMV = false,
string  ident = "" 
)

Start a CTLS Transaction Request

Authorizes the CTLS transaction for an CTLS card

The tags will be returned in the callback routine.

Parameters
timeoutTimeout value in seconds.
tagsThe tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100
forceOnlineTRUE = do not allow offline approval, FALSE = allow ICC to approve offline if terminal capable
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
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

NOTE ON APPLEPAY VAS: To enable ApplePay VAS, first a merchant record must be defined in one of the six available index positions (1-6) using device_setMerchantRecord, then container tag FFEE06 must be sent as part of the additional tags parameter of ctls_startTransaction. Tag FFEE06 must contain tag 9F26 and 9F22, and can optionanally contain tags 9F2B and DFO1. Example FFEE06189F220201009F2604000000009F2B050100000000DF010101 9F22 = two bytes = ApplePay Terminal Applicaiton Version Number. Hard defined as 0100 for now. (required, string ident = "") 9F26 = four bytes = ApplePay Terminal Capabilities Information (required, string ident = "")

  • Byte 1 = RFU
  • Byte 2 = Terminal Type
  • - Bit 8 = VAS Support (1=on, 0 = off, string ident = "")
  • - Bit 7 = Touch ID Required (1=on, 0 = off, string ident = "")
  • - Bit 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 OR ApplePay
  • - 1 = ApplePay VAS AND ApplePay
  • - 2 = ApplePay VAS ONLY
  • - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional, string ident = "") DF01 = 1 byte = ApplePay VAS Protocol. (optional, string ident = "")
  • - Bit 1 : 1 = URL VAS, 0 = Full VAS
  • - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
  • - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
  • - Bit 4-8 : RFU
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_cancelTransaction ( string  ident = "")

Cancel Transaction

Cancels the currently executing EMV or CTLS transaction.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_getAllConfigurationGroups ( ref byte  response[][],
string  ident = "" 
)

Retrieve All Configuration Groups

Returns all the Configuration Groups installed on the terminal for CTLS

Parameters
responsearray of CTLS groups as TLV bytes
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_getConfigurationGroup ( int  group,
ref byte[]  tlv,
string  ident = "" 
)

Get Configuration Group

Retrieves the Configuration for the specified Group. Group 0 = terminal settings.

Parameters
groupConfiguration Group
tlvreturn data
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_nfcCommand ( byte[]  nfcCmdPkt,
ref byte[]  response,
string  ident = "" 
)

NFC Command

This command uses nfcCmdPkt[0] in command data field to implement different functions. This command should be used in Pass-Through mode and command with “Poll for a NFC Tag” data should be used first. Command with other data can only be used once the “Poll for a NFC Tag” command has indicated that a NFC tag is present.

Parameters
nfcCmdPktSystem Code
  • Poll for NFC Tag: nfcCmdPkt[0] = 0xff, nfcCmdPkt[1] = timeout value (in seconds, string ident = "")
  • Tag1 Static Get All Data: nfcCmdPkt[0] = 0x11
  • Tag1 Static Read a Byte: nfcCmdPkt[0] = 0x12, nfcCmdPkt[1] = Address of Data
  • Tag1 Static Write a Byte: nfcCmdPkt[0] = 0x13 nfcCmdPkt[1] = Address of Data, nfcCmdPkt[2] = Data to be written
  • Tag1 Static Write a Byte NE: nfcCmdPkt[0] = 0x14, nfcCmdPkt[1] = Address of Data, nfcCmdPkt[2] = Data to be written
  • Tag1 Dynamic Read a Segment: nfcCmdPkt[0] = 0x15, nfcCmdPkt[1] = Address of Segment
  • Tag1 Dynamic Read 8 Bytes: nfcCmdPkt[0] = 0x16, nfcCmdPkt[1] = Address of Data
  • Tag1 Dynamic Write 8 Bytes: nfcCmdPkt[0] = 0x17, nfcCmdPkt[1] = Address of Data, nfcCmdPkt[2]~nfcCmdPkt[9] = Data to be written
  • Tag1 Dynamic Write 8 Bytes NE: nfcCmdPkt[0] = 0x18, nfcCmdPkt[1] = Address of Data, nfcCmdPkt[2]~nfcCmdPkt[9] = Data to be written
  • Tag2 Read Data (16 bytes): nfcCmdPkt[0] = 0x21, nfcCmdPkt[1] = Address of Data
  • Tag2 Write Data (4 bytes): nfcCmdPkt[0] = 0x22, nfcCmdPkt[1] = Address of Data, nfcCmdPkt[2]~nfcCmdPkt[5] = Data to be written
  • Tag2 Select Sect: nfcCmdPkt[0] = 0x23, nfcCmdPkt[1] = Sect number
  • Tag3 Read Data: – nfcCmdPkt[0] = 0x41, – nfcCmdPkt[1] = Number of services, value n – nfcCmdPkt[2]~nfcCmdPkt[2n+1]: Service code list – nfcCmdPkt[2n+2]: Number of blocks, value m. – nfcCmdPkt[2n+3....]: Block list, length is 2m~3m
  • Tag3 Write Data: – nfcCmdPkt[0] = 0x41, – nfcCmdPkt[1] = Number of services, value n – nfcCmdPkt[2]~nfcCmdPkt[2n+1]: Service code list – nfcCmdPkt[2n+2]: Number of blocks, value m. – nfcCmdPkt[2n+3....]: Block list, length is 2m~3m – nfcCmdPkt[...]: Block data, length is 16m
  • Tag4 Command: nfcCmdPkt[0] = 0x81, nfcCmdPkt[1]~nfcCmdPkt[n]:data
responseResponse as explained in FeliCA Lite-S User's Manual
ipIP Address of target device (optional, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_removeAllCAPK ( string  ident = "")

Remove All Certificate Authority Public Key

Removes all the CAPK for CTLS

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_removeApplicationData ( byte[]  AID,
string  ident = "" 
)

Remove Application Data by AID

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

Parameters
AIDName of ApplicationID Must be between 5 and 16 bytes
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_removeCAPK ( byte[]  capk,
string  ident = "" 
)

Remove Certificate Authority Public Key

Removes the CAPK for CTLS as specified by the RID/Index

Parameters
capk6 byte CAPK = 5 bytes RID + 1 byte INDEX
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_removeConfigurationGroup ( int  group,
string  ident = "" 
)

Remove Configuration Group

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

Parameters
groupConfiguration Group
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_resetConfigurationGroup ( int  group,
string  ident = "" 
)

Reset Configuration Group

This command allows resetting a dataset to its default configuration. If the file exists, it will be overwritten. If not, it will be created.

Parameters
groupConfiguration Group
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_VP8800::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_retrieveAIDList ( ref byte  response[][],
string  ident = "" 
)

Retrieve AID list

Returns all the AID names and their assigned groups installed on the terminal for CTLS.

Parameters
responsearray of TLV data objects: DFEE2D (group name) followed by 9F06 (AID), and DFEE4F (Interface 01 = CTLS, 02 = CONTACT, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_retrieveApplicationData ( byte[]  AID,
ref byte[]  tlv,
string  ident = "" 
)

Retrieve Application Data by AID

Retrieves the CTLS Application Data as specified by the AID name passed as a parameter.

Parameters
AIDName of ApplicationID. Must be between 5 and 16 bytes
tlvThe TLV elements of the requested AID
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_retrieveCAPK ( byte[]  capk,
ref byte[]  key,
string  ident = "" 
)

Retrieve Certificate Authority Public Key

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

Parameters
capk6 bytes CAPK = 5 bytes RID + 1 byte Index
keyResponse returned as a 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 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, string ident = "")
  • 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.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_retrieveCAPKList ( ref byte[]  keys,
string  ident = "" 
)

Retrieve the Certificate Authority Public Key list

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

Parameters
keys[key1][key2]...[keyn], each key 6 bytes where key = 5 bytes RID + 1 byte index
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_retrieveTerminalData ( ref byte[]  tlv,
string  ident = "" 
)

Retrieve Terminal Data

Retrieves the Terminal Data for CTLS. This is configuration group 0 (Tag FFEE - > FFEE0100). The terminal data can also be retrieved by ctls_getConfiguraitonGroup(0).

Parameters
tlvResponse returned as a TLV
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_setApplicationData ( byte[]  tlv,
string  ident = "" 
)

Set Application Data by AID

Sets the Application Data as specified by TLV data

Parameters
tlvApplication data in TLV format The first tag of the TLV data must be the group number (DFEE2D). Group 0 = System, all other Groups = User The second tag of the TLV data must be the AID (9F06) If tag DFEE4F is included, it must have a value of 0x01 to be a CTLS AID

Example valid TLV, for Group #2, AID a0000000045010: "dfee2d01029f0607a0000000045010dfee4b0101dfee2e0110dfee4c0101dfee4f0101

Tags:

  • DFEE2D : Group Number. Mandatory First Tag. 0 = System, 1-255 = User
  • 9F06 : AID. Mandatory Second Tag
  • DFEE4B : Partial AID Matching. 01 = allowed, 00 = Disabled. Mandatory for Visa
  • DFEE4C : Application Flow, System: Never, User: Mandatory – 0x01 = MasterCard – 0x02 = AMEX – 0x03 = MasterCard w/Strip Application – 0x06 = Visa – 0x0D = Discover – 0x0E = JCB – 0x15 = Reserved – 0x16 = Reserved – 0x17 = Reserved
  • DFEE4D = PPSE Disable, Optional
  • DFEE2E = Max AID Length, Mandatory if DFEE4B included. Visa must be set to 16
  • DFEE2F = Disable System Aid (no effect on User AID, string ident = "")
  • DFEE4F = Interface Support. 01 = CTLS, 02 = Contact. If missing, defaults to CTLS
Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_setCAPK ( byte[]  key,
string  ident = "" 
)

Set Certificate Authority Public Key

Sets the CAPK for CTLS 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, string ident = "")
  • 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.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_setConfigurationGroup ( byte[]  tlv,
string  ident = "" 
)

Set Configuration Group

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

Parameters
tlvConfiguration Group Data in TLV format The first tag of the TLV data must be the group number (DFEE2D). A second tag must exist
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_setDefaultConfiguration ( string  ident = "")

Set Default Configuration Group

Resets the device to default CTLS configuration group settings

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_setTerminalData ( byte[]  tlv,
string  ident = "" 
)

Set Terminal Data

Sets the Terminal Data for CTLS as specified by the TLV. The terminal global data is group 0. Other groups can be defined using this method (1 or greater), and those can be retrieved with emv_getConfigurationGroup(int group), and deleted with emv_removeConfigurationGroup(int group). You cannot delete group 0.

Parameters
tlvTerminalData configuration data
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_startTransaction ( double  amount,
double  amtOther,
int  exponent,
int  type,
int  timeout,
byte[]  tags,
bool  forceOnline,
bool  isFastEMV = false,
string  ident = "" 
)

Start a CTLS Transaction Request

Authorizes the CTLS transaction for an CTLS card

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02, string ident = "")
amtOtherOther amount value, if any (tag value 9F03, string ident = "")
exponentNumber of characters after decimile point
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsAny other tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100 If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will 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
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
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

NOTE ON APPLEPAY VAS: To enable ApplePay VAS, first a merchant record must be defined in one of the six available index positions (1-6) using device_setMerchantRecord, then container tag FFEE06 must be sent as part of the additional tags parameter of ctls_startTransaction. Tag FFEE06 must contain tag 9F26 and 9F22, and can optionanally contain tags 9F2B and DFO1. Example FFEE06189F220201009F2604000000009F2B050100000000DF010101 9F22 = two bytes = ApplePay Terminal Applicaiton Version Number. Hard defined as 0100 for now. (required, string ident = "") 9F26 = four bytes = ApplePay Terminal Capabilities Information (required, string ident = "")

  • Byte 1 = RFU
  • Byte 2 = Terminal Type
  • - Bit 8 = VAS Support (1=on, 0 = off, string ident = "")
  • - Bit 7 = Touch ID Required (1=on, 0 = off, string ident = "")
  • - Bit 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 OR ApplePay
  • - 1 = ApplePay VAS AND ApplePay
  • - 2 = ApplePay VAS ONLY
  • - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional, string ident = "") DF01 = 1 byte = ApplePay VAS Protocol. (optional, string ident = "")
  • - Bit 1 : 1 = URL VAS, 0 = Full VAS
  • - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
  • - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
  • - Bit 4-8 : RFU
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_trySetTerminalData ( byte[]  tlv,
ref byte[]  rejectedTLV,
ref byte[]  convertedTLV,
string  ident = "" 
)

Try to Set CTLS Terminal Data

Atempts to set the CTLS Terminal Data. Use this functions to attempt to set the terminal data to the device. This function will allow the cross-device tag compatible writing of IDTech Legacy/New tag definitions

Parameters
tlvTerminalData TLV Data
rejectedTLVContains the tags (if any) that were rejected by the firmware
convertedTLVContains the tags (if any) that were converted and accepted by the firmware
identOptional identifier
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_BTPay::device_getResponseCodeString:()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_updateBalance ( byte  statusCode,
byte[]  authCode,
byte[]  date,
byte[]  time,
string  ident = "" 
)

Update Balance

This command is the authorization response sent by the issuer to the terminal including the Authorization Status (OK or NOT OK).

This command is also being used in some implementations (i.e. EMEA) to communicate the results of Issuer Authentication to the reader in order to display the correct LCD messages. With this command, the POS passes the authorization result (OK/NOT OK), and possibly the Authorization Code (Auth_Code)/Date/Time to the terminal.

Parameters
statusCode00: OK, 01: NOT OK, 02: (ARC response 89 for Interac, string ident = "")
authCodeAuthorization code from host. Six bytes. Optional
dateTransaction date. If null, uses current terminal date. 3 bytes compressed numeric YYMMDD (tag value 9A).
timeTransaction time. If null, uses current terminal time. 3 bytes compressed numeric HHMMSS (tag value 9F21).
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_activateTransaction ( int  timeout,
byte[]  tags,
bool  isFastEMV = false,
string  ident = "" 
)

Start a Transaction Request

Authorizes the transaction CTLS, MSR or Contact EMV

The tags will be returned in the callback routine.

Parameters
timeoutTimeout value in seconds.
tagsThe tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100
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
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

NOTE ON APPLEPAY VAS: To enable ApplePay VAS, first a merchant record must be defined in one of the six available index positions (1-6) using device_setMerchantRecord, then container tag FFEE06 must be sent as part of the additional tags parameter of ctls_startTransaction. Tag FFEE06 must contain tag 9F26 and 9F22, and can optionanally contain tags 9F2B and DFO1. Example FFEE06189F220201009F2604000000009F2B050100000000DF010101 9F22 = two bytes = ApplePay Terminal Applicaiton Version Number. Hard defined as 0100 for now. (required, string ident = "") 9F26 = four bytes = ApplePay Terminal Capabilities Information (required, string ident = "")

  • Byte 1 = RFU
  • Byte 2 = Terminal Type
  • - Bit 8 = VAS Support (1=on, 0 = off, string ident = "")
  • - Bit 7 = Touch ID Required (1=on, 0 = off, string ident = "")
  • - Bit 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 OR ApplePay
  • - 1 = ApplePay VAS AND ApplePay
  • - 2 = ApplePay VAS ONLY
  • - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional, string ident = "") DF01 = 1 byte = ApplePay VAS Protocol. (optional, string ident = "")
  • - Bit 1 : 1 = URL VAS, 0 = Full VAS
  • - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
  • - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
  • - Bit 4-8 : RFU
RETURN_CODE IDTechSDK.IDT_NEO2.device_buzzer ( string  ident = "")

Buzzer Device

Buzzer the reader. If success can hear one beep. Otherwise, returns timeout.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_buzzerOnOff ( string  ident = "")

Buzzer On/Off

Cause the buzzer to beep once.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_cancelTransaction ( string  ident = "")

Cancel Transaction

Cancels the currently executing device transaction.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_certificateType ( ref int  type,
string  ident = "" 
)

Device Certificate Type

Returns the device certificate type

Parameters
type0 = Unknown, 1 = Demo, 2 = Production
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_controlLED ( byte  indexLED,
byte  control,
string  ident = "" 
)

Control LED

Controls the LED for the reader. This command will only operate in pass-through mode

Parameters
indexLEDFor LED
  • 00: LED 0 (Power LED, leftmost LED)
  • 01: LED 1
  • 02: LED 2
  • 03: LED 3
  • FF: All LED's
controlLED Status:
  • 00: LED Off
  • 01: LED On
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_controlUserInterface ( byte[]  values,
string  ident = "" 
)

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, string ident = "")
  • 01h: Present card (Please Present Card, string ident = "")
  • 02h: Time Out or Transaction cancel (No Card, string ident = "")
  • 03h: Transaction between reader and card is in the middle (Processing...)
  • 04h: Transaction Pass (Thank You, string ident = "")
  • 05h: Transaction Fail (Fail, string ident = "")
  • 06h: Amount (Amount $ 0.00 Tap Card, string ident = "")
  • 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, string ident = "")
  • 09h: Try Again(Tap Again, string ident = "")
  • 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
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_deleteDirectory ( string  filename,
string  ident = "" 
)

Delete Directory

This command deletes an empty directory.

Parameters
filenameComplete path and file name of the directory you want to delete. You do not need to specify the root directory. Indicate subdirectories with a forward slash (/).
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_deleteFile ( string  filename,
bool  isSD = false,
string  ident = "" 
)

Delete File

This command deletes a file or group of files.

Parameters
filenameComplete path and file name of the file you want to delete. You do not need to specify the root directory. Indicate subdirectories with a forward slash (/).
isSDTRUE = Delete from SDCard, FALSE = Delete from Flash
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_disBlueLED ( string  ident = "")

Disable Blue LED Sequence

Stop the blue LEDs on the ViVOpay Vendi reader from flashing in left to right sequence and turn the LEDs off, and contactless function is disable at the same time.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_enableL100PassThrough ( bool  enablePassThrough,
string  ident = "" 
)

Enable L100 Pass Through

Enables Pass Through Mode for direct communication to L100 hooked up to NEO II device

Parameters
enablePassThroughtrue = pass through ON, false = pass through OFF
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_enableL80PassThrough ( bool  enablePassThrough,
string  ident = "" 
)

Enable L80 Pass Through

Enables Pass Through Mode for direct communication to L80 hooked up to NEO II device

Parameters
enablePassThroughtrue = pass through ON, false = pass through OFF
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_enablePassThrough ( bool  enablePassThrough,
string  ident = "" 
)

Enable Pass Through

Enables Pass Through Mode for direct communication with L1 interface (power on icc, send apdu, etc).

Parameters
enablePassThroughtrue = pass through ON, false = pass through OFF
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_enaBlueLED ( byte[]  dataCmd,
string  ident = "" 
)

Control the blue LED behavior on the Vendi reader.

Control the blue LED behavior on the Vendi reader.

Parameters
dataCmdLED control. Minumum 4 bytes. Maximum 25 bytes. First byte is cycle. Next three bytes are sequence. Then sequence can repeat up to 8 times (24 bytes total for sequence, string ident = "") Byte 0 = Cycles (0 = Cycle once 1 = Repeat, string ident = "") Byte 1 = LED State Bitmap Bit - Description 8 = Left blue LED, 0 = off, 1 = on 7 = Center Blue LED, 0 = off, 1 = on 6 = Right Blue LED0 = off, 1 = on 5 = Yellow LED, 0 = off, 1 = on 4 = Reserved for future use 3 = Reserved for future use 2 = Reserved for future use 1 = Reserved for future use Byte2~3 = Duration (Given in multiples of 10 millisecond, string ident = "") If cycle equals 1, more pairs would be after Byte 3.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_enterStandbyMode ( string  ident = "")

Enter Standby Mode

Puts unit into low power stand by mode

Parameters
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_extendedErrorCondition ( bool  enable,
string  ident = "" 
)

Enable/disable Extended Error Condition

Enables/disables extended error condition for commands 02-40, 61-xx, 62-xx, 83-41 when error is 0xD0A or 0xD0B String can be retrieved with getLastErrorString

Parameters
enableTRUE = enable log, FALSE = disable log
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_get1050BootloaderVersion ( ref string  response,
string  ident = "" 
)

Polls device for 1050 Bootloader Version

Parameters
responseResponse returned of 1050 Bootloader Version
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_get1050FuseStatus ( ref byte[]  status,
string  ident = "" 
)

RT1050 SRK Fuse Status

This command retrieves the status of the readers RT1050 SRK fuse.

Parameters
statusFirst 8 bytes of SRK Fuse, if programmed. Otherwise, empty array returned
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getAnyRKIStatus ( bool  isMultiKey,
ref string  status,
ref Dictionary< string, RKI_KEY_TYPE >  keys,
string  ident = "" 
)

Get RKI Status Polls the RKI servers to validate device RKI eligiblity. Note: if device type is known in advance (production or demo device), it is more efficient to use device_getRKIStatus instead

Parameters
isMultiKeyTrue = MultiKey, False = SingleKey
statusRKI status returned as a string
keysReturns all available keys
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString(). When no data is available, return code = RETURN_CODE_NO_DATA_AVAILABLE
RETURN_CODE IDTechSDK.IDT_NEO2.device_getAudioVolume ( ref int  volume,
string  ident = "" 
)

Get Audio Volume

Returns playback volume as represented by an integer

Parameters
volumeValue 0-20, where 0 is silent and 20 is full volume
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_getBatteryVoltage ( ref string  voltage,
string  ident = "" 
)

Polls device for Battery Voltage

Parameters
voltageReturns Battery Voltage string representing millivolts.
Return values
RETURN_CODE
  • 0x0000: Success: no error - RETURN_CODE_DO_SUCCESS
  • 0x0001: Disconnect: no response from reader - RETURN_CODE_ERR_DISCONNECT
  • 0x0002: Invalid Response: invalid response data - RETURN_CODE_ERR_CMD_RESPONSE
  • 0x0003: Timeout: time 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: 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 errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getBLEName ( ref string  name,
string  ident = "" 
)

Get BLE Name

Parameters
responseName of BLE device
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getBootloaderVersion ( ref string  response,
string  ident = "" 
)

Polls device for Bootloader Version

Parameters
responseResponse returned of Bootloader Version
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getCashTranRiskPara ( ref byte[]  tlv,
string  ident = "" 
)

Get Cash Transaction Reader Risk Parameters Returns the TTQ and reader risk parameters that will be used for cash transactions, if enabled.

Parameters
tlvTLV Data Objects
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getConfigurationFromMemory ( ref string  json,
string  ident = "" 
)

Read Device Configuration From Memory Retrieves the ViVOconfig configuration data from memory after a successful device_readConfigurationToMemory

Parameters
jsonReturns the .json file data that can be saved to disk
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString(). When no data is available, return code = RETURN_CODE_NO_DATA_AVAILABLE
RETURN_CODE IDTechSDK.IDT_NEO2.device_getDeviceTime ( ref DateTime  time,
string  ident = "" 
)

Get Device Time

Parameters
timeDevice Time
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_getDeviceTreeVersion ( ref string  response,
bool  isDeviceTree,
string  ident = "" 
)

Polls device for Device Tree Version

Parameters
responseResponse returned of Device Tree Version
isDeviceTreeTRUE = Device Tree Version, FALSE = Device Tree 1050 Version
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getDRS ( ref byte[]  codeDRS,
string  ident = "" 
)

Get DRS Status

Gets the status of DRS(Destructive Reset).

Parameters
codeDRSthe data format is [DRS SourceBlk Number] [SourceBlk1] … [SourceBlkN] [DRS SourceBlk Number] is 2 bytes, format is NumL NumH. It is Number of [SourceBlkX] [SourceBlkX] is n bytes, Format is [SourceID] [SourceLen] [SourceData] [SourceID] is 1 byte [SourceLen] is 1 byte, it is length of [SourceData]

[SourceID] [SourceLen] [SourceData] 00 1 01 – Application Error 01 1 01 – Application Error 02 1 0x01 – EMV L2 Configuration Check Value Error 0x02 – Future Key Check Value Error 10 1 01 – Battery Error 11 1 Bit 0 – Tamper Switch 1 (0-No, 1-Error) Bit 1– Tamper Switch 2 (0-No, 1-Error) Bit 2– Tamper Switch 3 (0-No, 1-Error) Bit 3– Tamper Switch 4 (0-No, 1-Error) Bit 4– Tamper Switch 5 (0-No, 1-Error) Bit 5– Tamper Switch 6 (0-No, 1-Error)

12 1 01 –TemperatureHigh or Low 13 1 01 –Voltage High or Low 1F 4 Reg31~24bits, Reg23~16bits, Reg15~8bits, Reg7~0bits

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_getFirmwareVersion ( ref string  response,
string  ident = "" 
)

Polls device for Firmware Version

Parameters
responseResponse returned of Firmware Version *
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getHardwareInfor ( ref string  ascii,
string  ident = "" 
)

Get Hardware Information

Parameters
asciithe ascii charactor
identDevice ID to send command to. If not specified, current SDK default device will be used.

RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")

ASCII | Description

HW,VPVendi<CR><LF>K21F Rev9 | Vendi HW,VP3300 Audio Jack<CR><LF>K21F Rev9 | Unipay III HW,VPUnipay1.5<CR><LF>K21F Rev9 | Unipay 1.5 HW,VPUniPay1.5TTK<CR><LF>K21F Rev9 | UniPay 1.5 TTK HW,VP3300 USB<CR><LF>K21F Rev9 | VP3300 USB, VP3300 USB OEM (iBase/Cake same code, string ident = "") HW,VP3300 USB-E<CR><LF>K21F Rev9 | VP3300 USB-E HW,VP3300 USB-C<CR><LF>K21F Rev9 | VP3300 USB-C HW,VPVP3300 Bluetooth<CR><LF>K21F Rev9 | VP3300 Bluetooth HW,.VP6300<CR><LF>K81F.Rev4 | VP6300

RETURN_CODE IDTechSDK.IDT_NEO2.device_getLightSensorVal ( ref UInt16  lightVal,
string  ident = "" 
)

Get Light Sensor Value

Parameters
lightValValue of the light sensor
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_getMerchantRecord ( int  index,
ref byte[]  record,
string  ident = "" 
)

Get Merchant Record Gets the merchant record for ApplePay VAS

Parameters
indexMerchant Record index, valid values 1-6
recordData returned containing 99 bytes: Byte 0 = Merchand Index Byte 1 = Merchant Enabled (1 = enabled, string ident = "") Byte 2 - 33 = Merchant Protocol Hash-256 value Byte 34 = Length of Merchant URL Bytes 35 - 99 = URL
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getModuleVer ( ref string  moduleVer,
string  ident = "" 
)

Get Module Version Information Get the 16 byte UID of MCU

Parameters
uidstring UID
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getMsrSecurePar ( bool  b0,
bool  b1,
bool  b2,
bool  b3,
ref byte[]  tlv,
string  ident = "" 
)

Get MSR Secure Parameters get parameters from flash setting

Parameters
b0,b1,b2,b3Encryption Option Bit 0: T1 force encrypt Bit 1: T2 force encrypt Bit 2: T3 force encrypt Bit 3: T3 force encrypt when card type is 80
tlvMSR Secure Parameters TVL objects
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getProcessorType ( ref byte[]  type,
string  ident = "" 
)

Get Processor Type Returns a processor type TLV

Parameters
typeprocessor type
identDevice ID to send command to. If not specified, current SDK default device will be used.

RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")

Processor Type | Description

45 00 | ARM7/ LPC21xx 4D 00 | ARM Cortex-M4/ K21 Family 4E 00 | ARM Cortex-M4/ K81 Family

RETURN_CODE IDTechSDK.IDT_NEO2.device_getProductType ( ref byte[]  type,
string  ident = "" 
)

Get Product Type Returns a "product type" value in a proprietary TLV

Parameters
typeproduct type
identDevice ID to send command to. If not specified, current SDK default device will be used.

RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")

Product Type | Description

42 37 00 | ViVOpay 5000 43 33 00 | ViVOpay 4500 43 35 00 | ViVOpay Vend 43 36 00 | Vendi (NEO, string ident = "") 43 37 00 | ViVOpay Kiosk1 (ATM1, string ident = "") 43 38 00 | Kiosk2 43 39 00 | Kiosk3 (NEO, string ident = "") 55 31 00 | UniPay 1.5 (NEO, string ident = "") 55 33 00 | UniPay III (NEO) 55 33 31 | VP3300, VP3300 OEM (NEO) (iBase/Cake same code, string ident = "") 55 33 32 | VP3300E(NEO, string ident = "") 55 33 33 | VP3300C(NEO, string ident = "") 55 33 34 | BTPay Mini (NEO) (UniPayIII + BLE, string ident = "") 56 31 00 | VP3600 56 32 00 | VP5200 56 33 00 | VP5300 56 34 00 | VP6300 56 35 00 | VP6800 56 36 00 | VP8300 56 37 00 | VP8310 56 38 00 | VP8800 56 39 00 | VP8810 56 40 00 | VP9000 44 30 00 | QX120 44 31 00 | Mx8Series 44 32 00 | NETs 44 33 00 | Magtek 44 35 00 | ICP

RETURN_CODE IDTechSDK.IDT_NEO2.device_getRemoteKeyInjectionTO ( ref int  timeout,
string  ident = "" 
)

Get Remote Key Injection Timeout

Parameters
timeoutTimeout is in seconds, value scope is [120, 3600]
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
string IDTechSDK.IDT_NEO2.device_getResponseCodeString ( RETURN_CODE  eCode)

Get the description of response result.

Parameters
eCodethe response result.
Return values
thestring for description of response result
  • case 0: "no error, beginning task";
  • case 1: "no response from reader";
  • case 2: "invalid response data";
  • case 3: "time out for task or CMD";
  • case 4: "wrong parameter";
  • case 5: "SDK is doing MSR or ICC task";
  • case 6: "SDK is doing PINPad task";
  • case 7: "SDK is doing CTLS task";
  • case 8: "SDK is doing EMV task";
  • case 9: "SDK is doing Other task";
  • case 10: "err response or data";
  • case 11: "no reader attached";
  • case 12: "mono audio is enabled";
  • case 13: "did connection";
  • case 14: "audio volume is too low";
  • case 15: "task or CMD be canceled";
  • case 16: "UF wrong string format";
  • case 17: "UF file not found";
  • case 18: "UF wrong file format";
  • case 19: "Attempt to contact online host failed";
  • case 20: "Attempt to perform RKI failed";
  • case 0x300: "Key Type(TDES) of Session Key is not same as the related Master Key.";
  • case 0x400: "Related Key was not loaded.";
  • case 0x500: "Key Same.";
  • case 0x501: "Key is all zero";
  • case 0x502: "TR-31 format error";
  • case 0x702: "PAN is Error Key.";
  • case 0x705: "No Internal MSR PAN (or Internal MSR PAN is erased timeout)";
  • case 0X0C01: "Incorrect Frame Tag";
  • case 0X0C02: "Incorrect Frame Type";
  • case 0X0C03: "Unknown Frame Type";
  • case 0X0C04: "Unknown Command";
  • case 0X0C05: "Unknown Sub-Command";
  • case 0X0C06: "CRC Error";
  • case 0X0C07: "Failed";
  • case 0X0C08: "Timeout";
  • case 0X0C0A: "Incorrect Parameter";
  • case 0X0C0B: "Command Not Supported";
  • case 0X0C0C: "Sub-Command Not Supported";
  • case 0X0C0D: "Parameter Not Supported / Status Abort Command";
  • case 0X0C0F: "Sub-Command Not Allowed";
  • case 0X0D01: "Incorrect Header Tag";
  • case 0X0D02: "Unknown Command";
  • case 0X0D03: "Unknown Sub-Command";
  • case 0X0D04: "CRC Error in Frame";
  • case 0X0D05: "Incorrect Parameter";
  • case 0X0D06: "Parameter Not Supported";
  • case 0X0D07: "Mal-formatted Data";
  • case 0X0D08: "Timeout";
  • case 0X0D0A: "Failed / NACK";
  • case 0X0D0B: "Command not Allowed";
  • case 0X0D0C: "Sub-Command not Allowed";
  • case 0X0D0D: "Buffer Overflow (Data Length too large for reader buffer)";
  • case 0X0D0E: "User Interface Event";
  • case 0X0D11: "Communication type not supported, VT-1, burst, etc.";
  • case 0X0D12: "Secure interface is not functional or is in an intermediate state.";
  • case 0X0D13: "Data field is not mod 8";
  • case 0X0D14: "Pad 0x80 not found where expected";
  • case 0X0D15: "Specified key type is invalid";
  • case 0X0D1: "Could not retrieve key from the SAM(InitSecureComm)";
  • case 0X0D17: "Hash code problem";
  • case 0X0D18: "Could not store the key into the SAM(InstallKey)";
  • case 0X0D19: "Frame is too large";
  • case 0X0D1A: "Unit powered up in authentication state but POS must resend the InitSecureComm command";
  • case 0X0D1B: "The EEPROM may not be initialized because SecCommInterface does not make sense";
  • case 0X0D1C: "Problem encoding APDU";
  • case 0X0D20: "Unsupported Index(ILM) SAM Transceiver error – problem communicating with the SAM(Key Mgr)";
  • case 0X0D2: "Unexpected Sequence Counter in multiple frames for single bitmap(ILM) Length error in data returned from the SAM(Key Mgr)";
  • case 0X0D22: "Improper bit map(ILM)";
  • case 0X0D23: "Request Online Authorization";
  • case 0X0D24: "ViVOCard3 raw data read successful";
  • case 0X0D25: "Message index not available(ILM) ViVOcomm activate transaction card type(ViVOcomm)";
  • case 0X0D26: "Version Information Mismatch(ILM)";
  • case 0X0D27: "Not sending commands in correct index message index(ILM)";
  • case 0X0D28: "Time out or next expected message not received(ILM)";
  • case 0X0D29: "ILM languages not available for viewing(ILM)";
  • case 0X0D2A: "Other language not supported(ILM)";
  • case 0X0D41: "Unknown Error from SAM";
  • case 0X0D42: "Invalid data detected by SAM";
  • case 0X0D43: "Incomplete data detected by SAM";
  • case 0X0D44: "Reserved";
  • case 0X0D45: "Invalid key hash algorithm";
  • case 0X0D46: "Invalid key encryption algorithm";
  • case 0X0D47: "Invalid modulus length";
  • case 0X0D48: "Invalid exponent";
  • case 0X0D49: "Key already exists";
  • case 0X0D4A: "No space for new RID";
  • case 0X0D4B: "Key not found";
  • case 0X0D4C: "Crypto not responding";
  • case 0X0D4D: "Crypto communication error";
  • case 0X0D4E: "Module-specific error for Key Manager";
  • case 0X0D4F: "All key slots are full (maximum number of keys has been installed)";
  • case 0X0D50: "Auto-Switch OK";
  • case 0X0D51: "Auto-Switch failed";
  • case 0X0D90: "Account DUKPT Key not exist";
  • case 0X0D91: "Account DUKPT Key KSN exausted";
  • case 0x0D00: "This Key had been loaded.";
  • case 0x0E00: "Base Time was loaded.";
  • case 0x0F00: "Encryption Or Decryption Failed.";
  • case 0x1000: "Battery Low Warning (It is High Priority Response while Battery is Low.)";
  • case 0x1800: "Send “Cancel Command” after send “Get Encrypted PIN” &”Get Numeric “& “Get Amount”";
  • case 0x1900: "Press “Cancel” key after send “Get Encrypted PIN” &”Get Numeric “& “Get Amount”";
  • case 0x30FF: "Security Chip is not connect";
  • case 0x3000: "Security Chip is deactivation & Device is In Removal Legally State.";
  • case 0x3101: "Security Chip is activation & Device is In Removal Legally State.";
  • case 0x5500: "No Admin DUKPT Key.";
  • case 0x5501: "Admin DUKPT Key STOP.";
  • case 0x5502: "Admin DUKPT Key KSN is Error.";
  • case 0x5503: "Get Authentication Code1 Failed.";
  • case 0x5504: "Validate Authentication Code Error.";
  • case 0x5505: "Encrypt or Decrypt data failed.";
  • case 0x5506: "Not Support the New Key Type.";
  • case 0x5507: "New Key Index is Error.";
  • case 0x5508: "Step Error.";
  • case 0x5509: "KSN Error";
  • case 0x550A: "MAC Error.";
  • case 0x550B: "Key Usage Error.";
  • case 0x550C: "Mode Of Use Error.";
  • case 0x550F: "Other Error.";
  • case 0x6000: "Save or Config Failed / Or Read Config Error.";
  • case 0x6200: "No Serial Number.";
  • case 0x6900: "Invalid Command - Protocol is right, but task ID is invalid.";
  • case 0x6A01: "Unsupported Command – Protocol and task ID are right, but command is invalid – In this State";
  • case 0x6A00: "Unsupported Command - Protocol and task ID are right, but command is invalid.";
  • case 0x6B00: "Unknown parameter in command - Protocol task ID and command are right, but parameter is invalid.";
  • case 0x6C00: "Unknown parameter in command – Protocol task ID and command are right, but length is out of the requirement.";
  • case 0x7200: "Device is suspend (MKSK suspend or press password suspend).";
  • case 0x7300: "PIN DUKPT is STOP (21 bit 1).";
  • case 0x7400: "Device is Busy.";
  • case 0xE100: "Can not enter sleep mode";
  • case 0xE200: "File has existed";
  • case 0xE300: "File has not existed";
  • case 0xE313: "IO line low -- Card error after session start";
  • case 0xE400: "Open File Error";
  • case 0xE500: "SmartCard Error";
  • case 0xE600: "Get MSR Card data is error";
  • case 0xE700: "Command time out";
  • case 0xE800: "File read or write is error";
  • case 0xE900: "Active 1850 error!";
  • case 0xEA00: "Load bootloader error";
  • case 0xEF00: "Protocol Error- STX or ETX or check error.";
  • case 0xEB00: "Picture is not exist";
  • case 0x2C02: "No Microprocessor ICC seated";
  • case 0x2C06: "no card seated to request ATR";
  • case 0x2D01: "Card Not Supported,";
  • case 0x2D03: "Card Not Supported, wants CRC";
  • case 0x690D: "Command not supported on reader without ICC support";
  • case 0x8100: "ICC error time out on power-up";
  • case 0x8200: "invalid TS character received - Wrong operation step";
  • case 0x8300: "Decode MSR Error";
  • case 0x8400: "TriMagII no Response";
  • case 0x8500: "No Swipe MSR Card";
  • case 0x8510: "No Financial Card";
  • case 0x8600: "Unsupported F, D, or combination of F and D";
  • case 0x8700: "protocol not supported EMV TD1 out of range";
  • case 0x8800: "power not at proper level";
  • case 0x8900: "ATR length too long";
  • case 0x8B01: "EMV invalid TA1 byte value";
  • case 0x8B02: "EMV TB1 required";
  • case 0x8B03: "EMV Unsupported TB1 only 00 allowed";
  • case 0x8B04: "EMV Card Error, invalid BWI or CWI";
  • case 0x8B06: "EMV TB2 not allowed in ATR";
  • case 0x8B07: "EMV TC2 out of range";
  • case 0x8B08: "EMV TC2 out of range";
  • case 0x8B09: "per EMV96 TA3 must be > 0xF";
  • case 0x8B10: "ICC error on power-up";
  • case 0x8B11: "EMV T=1 then TB3 required";
  • case 0x8B12: "Card Error, invalid BWI or CWI";
  • case 0x8B13: "Card Error, invalid BWI or CWI";
  • case 0x8B17: "EMV TC1/TB3 conflict-";
  • case 0x8B20: "EMV TD2 out of range must be T=1";
  • case 0x8C00: "TCK error";
  • case 0xA304: "connector has no voltage setting";
  • case 0xA305: "ICC error on power-up invalid (SBLK(IFSD) exchange";
  • case 0xE301: "ICC error after session start";
  • case 0xFF00: "Request to go online";
  • case 0xFF01: "EMV: Accept the offline transaction";
  • case 0xFF02: "EMV: Decline the offline transaction";
  • case 0xFF03: "EMV: Accept the online transaction";
  • case 0xFF04: "EMV: Decline the online transaction";
  • case 0xFF05: "EMV: Application may fallback to magstripe technology";
  • case 0xFF06: "EMV: ICC detected tah the conditions of use are not satisfied";
  • case 0xFF07: "EMV: ICC didn't accept transaction";
  • case 0xFF08: "EMV: Transaction was cancelled";
  • case 0xFF09: "EMV: Application was not selected by kernel or ICC format error or ICC missing data error";
  • case 0xFF0A: "EMV: Transaction is terminated";
  • case 0xFF0B: "EMV: Other EMV Error";
  • case 0xFFFF: "NO RESPONSE";
  • case 0xF002: "ICC communication timeout";
  • case 0xF003: "ICC communication Error";
  • case 0xF00F: "ICC Card Seated and Highest Priority, disable MSR work request";
  • case 0xF200: "AID List / Application Data is not exist";
  • case 0xF201: "Terminal Data is not exist";
  • case 0xF202: "TLV format is error";
  • case 0xF203: "AID List is full";
  • case 0xF204: "Any CA Key is not exist";
  • case 0xF205: "CA Key RID is not exist";
  • case 0xF206: "CA Key Index it not exist";
  • case 0xF207: "CA Key is full";
  • case 0xF208: "CA Key Hash Value is Error";
  • case 0xF209: "Transaction format error";
  • case 0xF20A: "The command will not be processing";
  • case 0xF20B: "CRL is not exist";
  • case 0xF20C: "CRL number exceed max number";
  • case 0xF20D: "Amount,Other Amount,Trasaction Type are missing";
  • case 0xF20E: "The Identification of algorithm is mistake";
  • case 0xF20F: "No Financial Card";
  • case 0xF210: "In Encrypt Result state, TLV total Length is greater than Max Length";
  • case 0x1001: "INVALID ARG";
  • case 0x1002: "FILE_OPEN_FAILED";
  • case 0x1003: "FILE OPERATION_FAILED";
  • case 0x2001: "MEMORY_NOT_ENOUGH";
  • case 0x3002: "SMARTCARD_FAIL";
  • case 0x3003: "SMARTCARD_INIT_FAILED";
  • case 0x3004: "FALLBACK_SITUATION";
  • case 0x3005: "SMARTCARD_ABSENT";
  • case 0x3006: "SMARTCARD_TIMEOUT";
  • case 0x5001: "EMV_PARSING_TAGS_FAILED";
  • case 0x5002: "EMV_DUPLICATE_CARD_DATA_ELEMENT";
  • case 0x5003: "EMV_DATA_FORMAT_INCORRECT";
  • case 0x5004: "EMV_NO_TERM_APP";
  • case 0x5005: "EMV_NO_MATCHING_APP";
  • case 0x5006: "EMV_MISSING_MANDATORY_OBJECT";
  • case 0x5007: "EMV_APP_SELECTION_RETRY";
  • case 0x5008: "EMV_GET_AMOUNT_ERROR";
  • case 0x5009: "EMV_CARD_REJECTED";
  • case 0x5010: "EMV_AIP_NOT_RECEIVED";
  • case 0x5011: "EMV_AFL_NOT_RECEIVED";
  • case 0x5012: "EMV_AFL_LEN_OUT_OF_RANGE";
  • case 0x5013: "EMV_SFI_OUT_OF_RANGE";
  • case 0x5014: "EMV_AFL_INCORRECT";
  • case 0x5015: "EMV_EXP_DATE_INCORRECT";
  • case 0x5016: "EMV_EFF_DATE_INCORRECT";
  • case 0x5017: "EMV_ISS_COD_TBL_OUT_OF_RANGE";
  • case 0x5018: "EMV_CRYPTOGRAM_TYPE_INCORRECT";
  • case 0x5019: "EMV_PSE_NOT_SUPPORTED_BY_CARD";
  • case 0x5020: "EMV_USER_SELECTED_LANGUAGE";
  • case 0x5021: "EMV_SERVICE_NOT_ALLOWED";
  • case 0x5022: "EMV_NO_TAG_FOUND";
  • case 0x5023: "EMV_CARD_BLOCKED";
  • case 0x5024: "EMV_LEN_INCORRECT";
  • case 0x5025: "CARD_COM_ERROR";
  • case 0x5026: "EMV_TSC_NOT_INCREASED";
  • case 0x5027: "EMV_HASH_INCORRECT";
  • case 0x5028: "EMV_NO_ARC";
  • case 0x5029: "EMV_INVALID_ARC";
  • case 0x5030: "EMV_NO_ONLINE_COMM";
  • case 0x5031: "TRAN_TYPE_INCORRECT";
  • case 0x5032: "EMV_APP_NO_SUPPORT";
  • case 0x5033: "EMV_APP_NOT_SELECT";
  • case 0x5034: "EMV_LANG_NOT_SELECT";
  • case 0x5035: "EMV_NO_TERM_DATA";
  • case 0x6001: "CVM_TYPE_UNKNOWN";
  • case 0x6002: "CVM_AIP_NOT_SUPPORTED";
  • case 0x6003: "CVM_TAG_8E_MISSING";
  • case 0x6004: "CVM_TAG_8E_FORMAT_ERROR";
  • case 0x6005: "CVM_CODE_IS_NOT_SUPPORTED";
  • case 0x6006: "CVM_COND_CODE_IS_NOT_SUPPORTED";
  • case 0x6007: "NO_MORE_CVM";
  • case 0x6008: "PIN_BYPASSED_BEFORE";
  • case 0x7001: "PK_BUFFER_SIZE_TOO_BIG";
  • case 0x7002: "PK_FILE_WRITE_ERROR";
  • case 0x7003: "PK_HASH_ERROR";
  • case 0x8001: "NO_CARD_HOLDER_CONFIRMATION";
  • case 0x8002: "GET_ONLINE_PIN";
  • case 0xD000: "Data not exist";
  • case 0xD001: "Data access error";
  • case 0xD100: "RID not exist";
  • case 0xD101: "RID existed";
  • case 0xD102: "Index not exist";
  • case 0xD200: "Maximum exceeded";
  • case 0xD201: "Hash error";
  • case 0xD205: "System Busy";
  • case 0x0E01: "Unable to go online";
  • case 0x0E02: "Technical Issue";
  • case 0x0E03: "Declined";
  • case 0x0E04: "Issuer Referral transaction";
  • case 0x0F01: "Decline the online transaction";
  • case 0x0F02: "Request to go online";
  • case 0x0F03: "Transaction is terminated";
  • case 0x0F05: "Application was not selected by kernel or ICC format error or ICC missing data error";
  • case 0x0F07: "ICC didn't accept transaction";
  • case 0x0F0A: "Application may fallback to magstripe technology";
  • case 0x0F0C: "Transaction was cancelled";
  • case 0x0F0D: "Timeout";
  • case 0x0F0F: "Other EMV Error";
  • case 0x0F10: "Accept the offline transaction";
  • case 0x0F11: "Decline the offline transaction";
  • case 0x0F21: "ICC detected tah the conditions of use are not satisfied";
  • case 0x0F22: "No app were found on card matching terminal configuration";
  • case 0x0F23: "Terminal file does not exist";
  • case 0x0F24: "CAPK file does not exist";
  • case 0x0F25: "CRL Entry does not exist";
  • case 0x0FFE: "code when blocking is disabled";
  • case 0x0FFF: "code when command is not applicable on the selected device";
  • case 0xF005: "ICC Encrypted C-APDU Data Structure Length Error Or Format Error.";
  • case 0xBBE0: "CM100 Success";
  • case 0xBBE1: "CM100 Parameter Error";
  • case 0xBBE2: "CM100 Low Output Buffer";
  • case 0xBBE3: "CM100 Card Not Found";
  • case 0xBBE4: "CM100 Collision Card Exists";
  • case 0xBBE5: "CM100 Too Many Cards Exist";
  • case 0xBBE6: "CM100 Saved Data Does Not Exist";
  • case 0xBBE8: "CM100 No Data Available";
  • case 0xBBE9: "CM100 Invalid CID Returned";
  • case 0xBBEA: "CM100 Invalid Card Exists";
  • case 0xBBEC: "CM100 Command Unsupported";
  • case 0xBBED: "CM100 Error In Command Process";
  • case 0xBBEE: "CM100 Invalid Command";
  • case 0X9031: "Unknown command";
  • case 0X9032: "Wrong parameter (such as the length of the command is incorrect)";
  • case 0X9038: "Wait (the command couldn’t be finished in BWT)";
  • case 0X9039: "Busy (a previously command has not been finished)";
  • case 0X903A: "Number of retries over limit";
  • case 0X9040: "Invalid Manufacturing system data";
  • case 0X9041: "Not authenticated";
  • case 0X9042: "Invalid Master DUKPT Key";
  • case 0X9043: "Invalid MAC Key";
  • case 0X9044: "Reserved for future use";
  • case 0X9045: "Reserved for future use";
  • case 0X9046: "Invalid DATA DUKPT Key";
  • case 0X9047: "Invalid PIN Pairing DUKPT Key";
  • case 0X9048: "Invalid DATA Pairing DUKPT Key";
  • case 0X9049: "No nonce generated";
  • case 0X9949: "No GUID available. Perform getVersion first.";
  • case 0X9950: "MAC Calculation unsuccessful. Check BDK value.";
  • case 0X904A: "Not ready";
  • case 0X904B: "Not MAC data";
  • case 0X9050: "Invalid Certificate";
  • case 0X9051: "Duplicate key detected";
  • case 0X9052: "AT checks failed";
  • case 0X9053: "TR34 checks failed";
  • case 0X9054: "TR31 checks failed";
  • case 0X9055: "MAC checks failed";
  • case 0X9056: "Firmware download failed";
  • case 0X9060: "Log is full";
  • case 0X9061: "Removal sensor unengaged";
  • case 0X9062: "Any hardware problems";
  • case 0X9070: "ICC communication timeout";
  • case 0X9071: "ICC data error (such check sum error)";
  • case 0X9072: "Smart Card not powered up";
RETURN_CODE IDTechSDK.IDT_NEO2.device_getRKIStatus ( bool  isProd,
bool  isMultiKey,
ref string  status,
ref Dictionary< string, RKI_KEY_TYPE >  keys,
string  ident = "" 
)

Get RKI Status From Specified Server Polls the RKI server to validate device RKI eligiblity

Parameters
isProdTRUE = poll production RKI server, FALSE = poll demo RKI server
isMultiKeyTrue = MultiKey, False = SingleKey
statusRKI status returned as a string
keysReturns dictionary of available keys
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString(). When no data is available, return code = RETURN_CODE_NO_DATA_AVAILABLE
RETURN_CODE IDTechSDK.IDT_NEO2.device_getRT1050FirmwareVersion ( ref string  response,
string  ident = "" 
)

Get RT1050 Firmware Version

Parameters
responseResponse returned of Firmware Version
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getSelfCheckTime ( ref byte  hour,
ref byte  minutes,
string  ident = "" 
)

Get Self-Check Time

Gest the specific time for 24hrs self-check in Coordinated Universal Time

Parameters
Hours,00-23h
Minutes00-59h
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_getTransactionResults ( ref IDTTransactionData  results,
string  ident = "" 
)

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

Parameters
resultsThe transaction results
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString(). When no data is available, return code = RETURN_CODE_NO_DATA_AVAILABLE
RETURN_CODE IDTechSDK.IDT_NEO2.device_getTransArmorID ( ref string  TID,
string  ident = "" 
)

Get TransArmor ID

Parameters
TIDTransArmor ID
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getUIDofMCU ( ref string  uid,
string  ident = "" 
)

Get UID of MCU

Parameters
moduleVermodule version information
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_getUsbBootLoader ( ref string  bootLoader,
string  ident = "" 
)

Get USB Boot Loader Version Get the version of the USB Boot Loader

Parameters
bootLoaderUSB boot loader information
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_listDirectory ( string  directoryName,
bool  recursive,
bool  onSD,
ref string  directory,
string  ident = "" 
)

List Directory

This command retrieves a directory listing of user accessible files from the reader.

Parameters
directoryNameDirectory Name. If null, root directory is listed
recursiveIncluded sub-directories
onSDTRUE = use flash storage
directoryThe returned directory information
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
void IDTechSDK.IDT_NEO2.device_listenForNotifications ( bool  enable,
string  ident = "" 
)

Listen for Notifications

Instructs SDK to listen for unsolicited data

Parameters
enableTRUE = Listen, FALSE = Don't Listen
RETURN_CODE IDTechSDK.IDT_NEO2.device_loadCertCA ( byte  certType,
byte[]  certData,
string  ident = "" 
)

CA Cert (Intermediate Certificate) Loading

This command load the intermediate certificate for Application and TLS

Parameters
certType
  • 0 = Application CA
  • 1 = TLS CA
certDataCA cert data
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_logClear ( string  ident = "")

Clear Log

Instructs device to delete all log data

Parameters
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_logEnable ( bool  enable,
string  ident = "" 
)

Enable Log

Instructs device to enable log

Parameters
enableTRUE = enable log, FALSE = disable log
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_logRead ( DeviceLogCallback  callback,
string  ident = "" 
)

Read Log

Instructs device to output all log data

Parameters
callbackDeviceLogCallback that will receive all log entries. If null, will be sent to MessageCallback, DeviceState.LogEvent
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_lowPowerMode ( bool  stopMode,
bool  wakeOnTrans,
string  ident = "" 
)

Enter Low Power Mode

Puts terminal in sleep mor stop mode, with the option to wak on swipe/tap

Parameters
stopModeTRUE = Stop Mode (POR required), FALSE = Sleep Mode (resume from last instruction, string ident = "")
wakeOnTransTRUE = Swipe/Tap will wake from low power, FALSE = will not wake on power from swipe/tap
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_offYellowLED ( string  ident = "")

Turn Off Yellow LED

Turn off the ViVOpay Vendi reader yellow LED. This LED is located below the three blue LEDs.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_onYellowLED ( string  ident = "")

Turn On Yellow LED

Turn On the ViVOpay Vendi reader yellow LED. This LED is located below the three blue LEDs.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_pingDevice ( string  ident = "")

Ping Device

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

Parameters
ipOptional: The callback function will only be applicable to the provided IP.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_playAudio ( string  name,
int  type,
string  ident = "" 
)

Play Audio

This command plays an audio file loaded from the inserted SD card. The VP6800 supports 16bit PCM format .WAV files.

Parameters
nameName of file on SD Card
type0 = Flash, 1 = SD Card
ipOptional IP Address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_pollForToken ( byte  seconds,
ref byte  card,
ref byte[]  serialNumber,
string  ident = "" 
)

Poll for Token

Once Pass-Through Mode is started, ViVOpay will not poll for any cards until the “Poll for Token” command is received. This command tells ViVOpay to start polling for a Type A or Type B PICC until a PICC is detected or a timeout occurs.

This command automatically turns the RF Antenna on.

If a PICC is detected within the specified time limit, ViVOpay activates it and responds back to the terminal with card related data such as the Serial Number. If no PICC is detected within the specified time limit, ViVOpay stops polling and responds back indicating that no card was found. No card related data is returned in this case

Parameters
timeoutTimeout, in seconds to wait for card to be detected
cardCard Type:
  • 00h None (Card Not Detected or Could not Activate)
  • 01h ISO 14443 Type A (Supports ISO 14443-4 Protocol)
  • 02h ISO 14443 Type B (Supports ISO 14443-4 Protocol)
  • 03h Mifare Type A (Standard)
  • 04h Mifare Type A (Ultralight)
  • 05h ISO 14443 Type A (Does not support ISO 14443-4 Protocol)
  • 06h ISO 14443 Type B (Does not support ISO 14443-4 Protocol)
  • 07h ISO 14443 Type A and Mifare (NFC phone)
serialNumberSerial Number or the UID of the PICC
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_queryFile ( string  directory,
string  filename,
bool  isSD,
ref bool  exists,
ref string  timestamp,
ref int  fileSize,
string  ident = "" 
)

Query File

Reports if the file exists, and if so will report the file timestamp and the file size

Parameters
directoryFile directory. If blank/null, root directory is used
filenameName of file to retrieve
isSDTRUE = query SD card, FALSE = query internal memory
isSDTRUE = query SD card, FALSE = query internal memory
timestampIf file exists, reports the timestamp from the file in the form of YYYYMMDDMMSS
fileSizeIf file exists, reports the size of the file
Return values
RETURN_CODE
  • 0x0000: Success: no error - RETURN_CODE_DO_SUCCESS
  • 0x0001: Disconnect: no response from reader - RETURN_CODE_ERR_DISCONNECT
  • 0x0002: Invalid Response: invalid response data - RETURN_CODE_ERR_CMD_RESPONSE
  • 0x0003: Timeout: time 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: 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 errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_readConfigurationToMemory ( string  memo,
Configs.InstallRules  rules,
List< Configs.DeviceCommand >  cmds,
string  ident = "",
bool  isForeground = false 
)

Read Device Configuration To Memory Executes a ViVOconfig read of device settings and stores the results in memory

Once a ViVOconfig read starts, all messages will be returned to the callback as DeviceState.ViVOconfig. The ViVOconfig operation is complete when the return code from a DeviceState.ViVOconfig message is one of the following values:

  • RETURN_CODE_SDK_VIVOCONFIG_READ_CONFIG_SUCCESS = Read process completed successfully. Execute device_getConfigurationFromMemory to retrieve the configuration data
  • RETURN_CODE_SDK_VIVOCONFIG_READ_CONFIG_FAILED = Read process FAILED.

    Parameters
    memoOptional: populates the memo field of the captured .json file
    rulesOptional: populates the .json file with available install rules
    cmdsOptional: populates the .json file with commands to execute
    identDevice ID to send command to. If not specified, current SDK default device will be used.
    isForegroundIf TRUE, will block program until update complete. Otherwise, FALSE performs update on background.
    Returns
    RETURN_CODE: Values can be parsed with errorCode.getErrorString(). When no data is available, return code = RETURN_CODE_NO_DATA_AVAILABLE
RETURN_CODE IDTechSDK.IDT_NEO2.device_readFileFromSD ( string  directory,
string  filename,
ref byte[]  fileData,
string  ident = "" 
)

Reads a file from the SD card

Parameters
directoryFile directory. If blank/null, root directory is used
filenameName of file to retrieve
fileDatathe returned file data, if exists
Return values
RETURN_CODE
  • 0x0000: Success: no error - RETURN_CODE_DO_SUCCESS
  • 0x0001: Disconnect: no response from reader - RETURN_CODE_ERR_DISCONNECT
  • 0x0002: Invalid Response: invalid response data - RETURN_CODE_ERR_CMD_RESPONSE
  • 0x0003: Timeout: time 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: 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 errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_rebootDevice ( string  ident = "")

Reboot Device

Performs a reboot of the device

Parameters
ipOptional: The callback function will only be applicable to the provided IP.
RETURN_CODE IDTechSDK.IDT_NEO2.device_RemoteKeyInjection ( RKI_KEY_TYPE  type,
string  keyName,
string  ident = "",
bool  performOnForeground = false 
)

Remote Key Injection Performs a remote key injection for the device

Parameters
typeRemote Key Injection Type
keyNameName of key (optional)
identDevice ID to send command to. If not specified, current SDK default device will be used.
performOnForegroundTRUE = block during process (default is false)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString(). When no data is available, return code = RETURN_CODE_NO_DATA_AVAILABLE
RETURN_CODE IDTechSDK.IDT_NEO2.device_resetConfigurationGroup ( int  group,
string  ident = "" 
)

Reset Configuration Group

This command allows resetting a dataset to its default configuration. If the file exists, it will be overwritten. If not, it will be created.

Parameters
groupConfiguration Group
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_VP8800::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_resetNVM ( string  ident = "")

Reset non-volatile memory.

• The Set Configuration Defaults and Keep Encryption Key command provides an external method for resetting parameters • in non-volatile memory (NVM) to their default values. When the reader receives this serial command it • erases EEPROM (but retains encryption keys). After completing initialization, the reader reboots.

Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_resetTransaction ( string  ident = "")

Reset Transaction

Abruptly terminates the currently executing device transaction. Does not produce any further transaction data or notifications after executing.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_retrieveAIDList ( ref byte  response[][],
string  ident = "" 
)

Retrieve AID list

Returns all the AID names and their assigned groups installed on the terminal for CTLS/CONTACT.

Parameters
responsearray of 2-tag TLV data objects: DFEE2D (group name) followed by 9F06 (AID, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_retrieveTerminalData ( ref byte[]  tlv,
string  ident = "" 
)

Retrieve Terminal Data

Retrieves the Terminal Data for CTLS. This is configuration group 0 (Tag FFEE - > FFEE0100). The terminal data can also be retrieved by ctls_getConfiguraitonGroup(0).

Parameters
tlvResponse returned as a TLV
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_rrcConnect ( string  ident = "")

RRC Connect

The RRC Connect command allows a host to establish an RRC connection to a reader. A host must first establish an RRC connection to the reader before issuing other RRC IDG commands.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_rrcDisconnect ( string  ident = "")

RRC Disconnect

The RRC Disonnect command allows a host to terminate it's existing RRC connection with a reader.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_rrcDownloadApp ( string  appName,
byte[]  appData,
string  ident = "" 
)

RRC Download Application

The RRC Download Application command allows the transfer of a compressed application file from a host to the reader, extracts it, and performs signature verification on its contents.

Parameters
appNameThis will be the name of the application that will appear in Application Manager application list.
appDataApplication Data
identDevice ID to send command to. If not specified, current SDK default device will be used.
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_rrcInstallApp ( string  appName,
string  ident = "" 
)

RRC Install Application

The RRC Install Application command installs a downloaded application to a reader. Only installed applications can run on the reader.

Parameters
appNameThis will be the name of the application that will appear in Application Manager application list.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_rrcRunApp ( string  appName,
string  ident = "" 
)

RRC Run Application

The RRC Run Application command allows the reader to run an installed application.

Parameters
appNameThis will be the name of the application that will appear in Application Manager application list.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_rrcUninstallApp ( string  appName,
string  ident = "" 
)

RRC Uninstall Application

The RRC Uninstall Application command uninstalls an application on a reader device. The application will remain in the file system of the reader but cannot be executed.

Parameters
appNameThis will be the name of the application that will appear in Application Manager application list.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendConfiguration ( string  filename,
VC_OPERATION_TYPE  type,
bool  matchFW,
string  ident = "",
bool  isForeground = false 
)

Send Configuration Executes a ViVOconfig update or verify to a device

Once a ViVOconfig write or verify starts, all messages will be returned to the callback as DeviceState.ViVOconfig. The ViVOconfig operation is complete when the return code from a DeviceState.ViVOconfig message is one of the following values:

  • RETURN_CODE_SDK_VIVOCONFIG_VERIFY_SUCCESS = Verification process completed successfully. No differences found.
  • RETURN_CODE_SDK_VIVOCONFIG_VERIFY_SUCCESS_WITH_WARNING = Verification process completed with warnings.
  • RETURN_CODE_SDK_VIVOCONFIG_VERIFY_FAILED = Verification process FAILED
  • RETURN_CODE_SDK_VIVOCONFIG_WRITE_SUCCESS = Write process completed successfully.
  • RETURN_CODE_SDK_VIVOCONFIG_WRITE_SUCCESS_WITH_WARNING = Write process completed with warnings
  • RETURN_CODE_SDK_VIVOCONFIG_WRITE_FAILED = Write process FAILED

    Parameters
    filenameThe .json configuration file to update the device with NOTE: You can also use this parameter to pass the path of where the .json file is located at on local storage instead
    filenameThe name of the .json configuration file
    typeVC_OPERATION_TYPE
  • VC_OPERATION_TYPE_WRITE = Write File To Device, Hash must validate
  • VC_OPERATION_TYPE_VERIFY = Verify Device With File
  • VC_OPERATION_TYPE_WRITE_IGNORE_HASH = Write File To Device, Ignore Hash
  • VC_OPERATION_TYPE_WRITE_FIX_HASH = Write File To Device, Fix Hash If Necessary
    Parameters
    matchFWTRUE = Device FW must match file FW, FALSE = Don't validate device FW against file
    identDevice ID to send command to. If not specified, current SDK default device will be used.
    isForegroundIf TRUE, will block program until update complete. Otherwise, FALSE performs update on background.
    Returns
    RETURN_CODE: Values can be parsed with errorCode.getErrorString(). When no data is available, return code = RETURN_CODE_NO_DATA_AVAILABLE
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendConfigurationFromZip ( byte[]  zip,
string  filename,
VC_OPERATION_TYPE  type,
bool  matchFW,
string  ident = "",
bool  isForeground = false 
)

Send Configuration From Zip Executes a ViVOconfig update or verify to a device using files from a .zip archive

Once a ViVOconfig write or update starts, all messages will be returned to the callback as DeviceState.ViVOconfig. The ViVOconfig operation is complete when the return code from a DeviceState.ViVOconfig message is one of the following values:

  • RETURN_CODE_SDK_VIVOCONFIG_VERIFY_SUCCESS = Verification process completed successfully. No differences found.
  • RETURN_CODE_SDK_VIVOCONFIG_VERIFY_SUCCESS_WITH_WARNING = Verification process completed with warnings.
  • RETURN_CODE_SDK_VIVOCONFIG_VERIFY_FAILED = Verification process FAILED
  • RETURN_CODE_SDK_VIVOCONFIG_WRITE_SUCCESS = Write process completed successfully.
  • RETURN_CODE_SDK_VIVOCONFIG_WRITE_SUCCESS_WITH_WARNING = Write process completed with warnings
  • RETURN_CODE_SDK_VIVOCONFIG_WRITE_FAILED = Write process FAILED

    Parameters
    zip.Zip archive containing the .json configuration file and also any associated image assets NOTE: You can also use this parameter to pass the path of where the .zip file is located at on local storage instead
    filenameThe name of the .json configuration file
    typeVC_OPERATION_TYPE
  • VC_OPERATION_TYPE_WRITE = Write File To Device, Hash must validate
  • VC_OPERATION_TYPE_VERIFY = Verify Device With File
  • VC_OPERATION_TYPE_WRITE_IGNORE_HASH = Write File To Device, Ignore Hash
  • VC_OPERATION_TYPE_WRITE_FIX_HASH = Write File To Device, Fix Hash If Necessary
    Parameters
    matchFWTRUE = Device FW must match file FW, FALSE = Don't validate device FW against file
    identDevice ID to send command to. If not specified, current SDK default device will be used.
    isForegroundIf TRUE, will block program until update complete. Otherwise, FALSE performs update on background.
    Returns
    RETURN_CODE: Values can be parsed with errorCode.getErrorString(). When no data is available, return code = RETURN_CODE_NO_DATA_AVAILABLE
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendDataCommand ( string  cmd,
bool  calcLRC,
ref byte[]  response,
string  ident = "" 
)

Send a data command to the device

Sends a command to the device.

Parameters
cmdString representation of command to execute
calcLRCIf TRUE, this will wrap command with start/length/lrc/sum/end: '{STX}{Len_Low}{Len_High} data {CheckLRC} {CheckSUM} {ETX}'
responseResponse data
ipOptional IP parameter
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendDataCommand_ext ( string  cmd,
bool  calcLRC,
ref byte[]  response,
int  timeout,
bool  noResponse,
string  ident = "" 
)

Send a data command to the device - extended

Sends a command to the device.

Parameters
cmdString representation of command to execute
calcLRCIf TRUE, this will wrap command as NGA with start/length/lrc/sum/end: '{STX}{Len_Low}{Len_High} data {CheckLRC} {CheckSUM} {ETX}'
responseResponse data
timeoutTimeout value waiting for response, in milliseconds (1000 = 1 second, string ident = "")
noResponseif TRUE, this will not wait for a response and immediately return SUCCESS
calcITPIf TRUE, this will wrap command as ITP with start/end/lrc: '{STX} data {ETX}{CheckLRC}'
ipOptional IP parameter
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendPAE ( string  command,
ref string  response,
int  timeout,
string  ident = "" 
)

Send Payment Application Engine Command

Executes a PAE command

Parameters
commandASCII command string, should start with "*PAE"
responsecommand response
timeouttimeout waiting for PAE response
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP2 ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
string  ident = "" 
)

Send Vivo Command Protocol 2

Sends a protocol 2 command to Vivo readers (IDG/NEO, string ident = "")

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
ipOptional IP
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP2_ext ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
int  timeout,
bool  noResponse,
string  ident = "" 
)

Send Vivo Command Protocol 2 Extended

Sends a protocol 2 command to Vivo readers (IDG/NEO, string ident = "")

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
timeoutTimeout, in milliseconds (3000 = 3 seconds, string ident = "")
noResponseTRUE = don't wait for response, FALSE = wait for response defined by timeout
ipOptional IP
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP3 ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
string  ident = "" 
)

Send Vivo Command Protocol 3

Sends a protocol 3 command to Vivo readers (IDG/NEO, string ident = "")

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
ipOptional IP
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP3_ext ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
int  timeout,
bool  noResponse,
string  ident = "" 
)

Send Vivo Command Protocol 3 Extended

Sends a protocol 3 command to Vivo readers (IDG/NEO, string ident = "")

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
timeoutTimeout, in milliseconds (3000 = 3 seconds, string ident = "")
noResponseTRUE = don't wait for response, FALSE = wait for response defined by timeout
ipOptional IP
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP4 ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
string  ident = "" 
)

Send Vivo Command Protocol 4

Sends a protocol 4 command to Vivo readers (IDG/NEO, string ident = "")

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
ipOptional IP
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP4_ext ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
int  timeout,
bool  noResponse,
string  ident = "" 
)

Send Vivo Command Protocol 4 Extended

Sends a protocol 4 command to Vivo readers (IDG/NEO, string ident = "")

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
timeoutTimeout, in milliseconds (3000 = 3 seconds, string ident = "")
noResponseTRUE = don't wait for response, FALSE = wait for response defined by timeout
ipOptional IP
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_setAudioVolume ( int  volume,
string  ident = "" 
)

Set Audio Volume

Sets the audio playback volume

Parameters
volumeValue 0-20, where 0 is silent and 20 is full volume
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_setBurstMode ( byte  mode,
string  ident = "" 
)

Send Burst Mode

Sets the burst mode forthe device.

Parameters
mode0 = OFF, 1 = Always On, 2 = Auto Exit
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_setLED ( byte  indexLED,
byte  control,
string  ident = "" 
)

Set LED

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

Parameters
indexLEDdescription as follows: 00h: LED 0 (Power LED, string ident = "") 01h: LED 1 02h: LED 2 03h: LED 3 10h: Single Tri-Color LED (Unipay III used, string ident = "") FFh: All 4 LEDs + Single Tri-Color LED Where the LEDs are numbered 0, 1, 2, 3 counting from the left. Note: If you are using pass-through mode to control the Power LED (LED 0), it is your responsibility to make sure that it behaves correctly.
controldescription as follows: 00h: LED Off (LED 0~4 + Tri-Color LED, string ident = "") 01h: LED On (LED 0~4, string ident = "") 02h: Green Color (Tri-Color LED, string ident = "") 03h: Red Color (Tri-Color LED, string ident = "") 04h: Amber Color(Tri-Color LED, string ident = "")
ipOptional: The callback function will only be applicable to the provided IP.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_setMerchantRecord ( int  index,
bool  enabled,
string  merchantID,
string  merchantURL,
string  ident = "" 
)

Set Merchant Record Sets the merchant record for ApplePay VAS

Parameters
indexMerchant Record index, valid values 1-6
enabledMerchant Enabled/Valid flag
merchantIDMerchant unique identifer registered with Apple. Example com.idtechproducts.applePay
merchantURLMerchant URL, when applicable
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_setPollMode ( byte  mode,
string  ident = "" 
)

Send Poll Mode

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

Parameters
mode0 = Auto Poll, 1 = Poll On Demand
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_setSelfCheckTime ( byte  hour,
byte  minutes,
string  ident = "" 
)

Set Self-Check Time

Set a specific time for 24hrs self-check in Coordinated Universal Time

Parameters
Hours00-23h
Minutes00-59h
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_setTerminalData ( byte[]  tlv,
string  ident = "" 
)

Set Terminal Data

Sets the Terminal Data for CTLS as specified by the TLV. The terminal global data is group 0. Other groups can be defined using this method (1 or greater), and those can be retrieved with emv_getConfigurationGroup(int group), and deleted with emv_removeConfigurationGroup(int group). You cannot delete group 0.

Parameters
tlvTerminalData configuration data
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_setTransArmorEncryption ( byte[]  cert,
string  ident = "" 
)

Set TransArmor Encryption

Parameters
certCertificate in PEM format or DER format. PEM format must be string data (converted to binary) starting with "---". DER format is binary data
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_setTransArmorID ( string  TID,
string  ident = "" 
)

Set TransArmor ID

Parameters
TIDTransArmor ID
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_StartRKI ( int  type,
string  ident = "" 
)

Start Remote Key Injection

Starts a remote key injection request with IDTech RKI servers. Set/Get RKI url with IDT_Device.RKI_URL.

Parameters
type0 = Symmetric RKI Demo Unit 1 = Symmetric RKI Production Unit 2 = PKI-RKI Demo Unit 3 = PKI-RKI Production Unit
ipOptional IP address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_startRKI ( bool  isTest,
string  ident = "" 
)

Start Remote Key Injection

Starts a remote key injection request with IDTech RKI servers.

Parameters
isTestTRUE = Demo Device, FALSE = Production Device
ipOptional IP address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_startTransaction ( double  amount,
double  amtOther,
int  exponent,
int  type,
int  timeout,
byte[]  tags,
bool  isFastEMV = false,
string  ident = "" 
)

Start a Transaction Request

Authorizes the transaction CTLS, MSR or Contact EMV

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02, string ident = "")
amtOtherOther amount value, if any (tag value 9F03, string ident = "")
exponentNumber of characters after decimile point
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsAny other tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100
If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method.
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
ipOptional IP parameter
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

NOTE ON APPLEPAY VAS: To enable ApplePay VAS, first a merchant record must be defined in one of the six available index positions (1-6) using device_setMerchantRecord, then container tag FFEE06 must be sent as part of the additional tags parameter of ctls_startTransaction. Tag FFEE06 must contain tag 9F26 and 9F22, and can optionanally contain tags 9F2B and DFO1. Example FFEE06189F220201009F2604000000009F2B050100000000DF010101 9F22 = two bytes = ApplePay Terminal Applicaiton Version Number. Hard defined as 0100 for now. (required, string ident = "") 9F26 = four bytes = ApplePay Terminal Capabilities Information (required, string ident = "")

  • Byte 1 = RFU
  • Byte 2 = Terminal Type
  • - Bit 8 = VAS Support (1=on, 0 = off, string ident = "")
  • - Bit 7 = Touch ID Required (1=on, 0 = off, string ident = "")
  • - Bit 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 OR ApplePay
  • - 1 = ApplePay VAS AND ApplePay
  • - 2 = ApplePay VAS ONLY
  • - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional, string ident = "") DF01 = 1 byte = ApplePay VAS Protocol. (optional, string ident = "")
  • - Bit 1 : 1 = URL VAS, 0 = Full VAS
  • - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
  • - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
  • - Bit 4-8 : RFU
RETURN_CODE IDTechSDK.IDT_NEO2.device_startTransactionCB ( double  amount,
double  amtOther,
int  exponent,
int  type,
int  timeout,
byte[]  tags,
CallBackIP  callback,
string  ident = "",
bool  isFastEMV = false 
)

Start a Transaction Request

Authorizes the transaction CTLS, MSR or Contact EMV with results returned to the specified callback

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02, string ident = "")
amtOtherOther amount value, if any (tag value 9F03, string ident = "")
exponentNumber of characters after decimile point
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsAny other tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100
If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method.
callbackCallback for returning transaction results
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
ipOptional IP parameter
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

NOTE ON APPLEPAY VAS: To enable ApplePay VAS, first a merchant record must be defined in one of the six available index positions (1-6) using device_setMerchantRecord, then container tag FFEE06 must be sent as part of the additional tags parameter of ctls_startTransaction. Tag FFEE06 must contain tag 9F26 and 9F22, and can optionanally contain tags 9F2B and DFO1. Example FFEE06189F220201009F2604000000009F2B050100000000DF010101 9F22 = two bytes = ApplePay Terminal Applicaiton Version Number. Hard defined as 0100 for now. (required, string ident = "") 9F26 = four bytes = ApplePay Terminal Capabilities Information (required, string ident = "")

  • Byte 1 = RFU
  • Byte 2 = Terminal Type
  • - Bit 8 = VAS Support (1=on, 0 = off, string ident = "")
  • - Bit 7 = Touch ID Required (1=on, 0 = off, string ident = "")
  • - Bit 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 OR ApplePay
  • - 1 = ApplePay VAS AND ApplePay
  • - 2 = ApplePay VAS ONLY
  • - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional, string ident = "") DF01 = 1 byte = ApplePay VAS Protocol. (optional, string ident = "")
  • - Bit 1 : 1 = URL VAS, 0 = Full VAS
  • - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
  • - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
  • - Bit 4-8 : RFU
RETURN_CODE IDTechSDK.IDT_NEO2.device_stopAudio ( string  ident = "")

Stop Audio

This command stop playing audio started with lcd_playAudio.

Parameters
ipOptional IP Address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_terminalInfo ( ref byte[]  tlv,
string  ident = "" 
)

Retrieve Terminal Info

Parameters
tlvTLV Tags assigned as follows:
  • 0x01 = Date Time, 6 bytes Y M D H M S
  • 0x02 = Device Model Number
  • 0x03 = Firmware Version
  • 0x04 = hardware Version
  • 0x05 = Serial Number
  • 0x06 Last swipe UTC/RTC
  • 0x07 Life time total swipe
  • 0x08 Last Dip (ICC) UTC/RTC
  • 0x09 Lifetime Total Dip (ICC, string ident = "")
  • 0x0A Last Tap (CL) UTC/RTC
  • 0x0B Lifetime Total Tap (CL, string ident = "")
  • 0x0C Reboot Count
  • 0x0D Device Uptime since Last Reboot
  • 0x0E Device Lifetime Uptime
  • 0x0F Tamper Status
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_transferFile ( string  fileName,
byte[]  file,
bool  isSD = false,
string  ident = "" 
)

Transfer File

This command transfers a data file to the reader.

Parameters
fileNameFilename. The data for this command is a ASCII string with the complete path and file name you want to create. You do not need to specify the root directory. Indicate subdirectories with a forward slash (/).
fileThe data file.
isSDTRUE = tranfer to SD Card, FALSE = transfer to Flash.
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
static RETURN_CODE IDTechSDK.IDT_NEO2.device_updateDeviceFirmware ( byte[]  firmwareData,
string  ident = "" 
)
static

Update K81 Firmware

Updates the firmware .

Parameters
firmwareDataSigned binary data of a firmware file provided by IDTech
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")

After you pass the firmwareData file, a new thread will start to execute the firmware download. You will receive status of the progress through callbacks to the IDTechSDK.Callback() delegate. The following parameters will be passed back:

  • sender = IDT_DEVICE_Types.IDT_DEVICE_AUGUSTA
  • state = DeviceState.FirmwareUpdate
  • transactionResultCode = status of the firmware update (starting, entering bootloader, applying update, block success, firmware success, string ident = "")
  • data = File Progress. Four bytes, with bytes [0][1] = current block, and bytes [2][3] = total blocks. 0x00030010 = block 3 of 16

Example code starting a firmware update

OpenFileDialog diag = new OpenFileDialog( ident);
diag.Filter = "NGA FW Files|*.fm";
if (diag.ShowDialog() == DialogResult.OK, string ident = "")
{
byte[] file = File.ReadAllBytes(diag.FileName, ident);
RETURN_CODE rt = IDT_Device.SharedController.device_updateDeviceFirmware(file, ident);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS, string ident = "")
{
//Was a success
}
else
{
//Error starting firmware download
}
}

Example monitoring firmware update status / success

private void MessageCallBack(IDTechSDK.IDT_DEVICE_Types type, DeviceState state, byte[] data, IDTTransactionData cardData, EMV_Callback emvCallback, RETURN_CODE transactionResultCode, string ident = "")
{
switch (state, string ident = "")
{
case DeviceState.FirmwareUpdate:
switch (transactionResultCode, string ident = "")
{
case RETURN_CODE.RETURN_CODE_FW_STARTING_UPDATE:
SetOutputText("Starting Firmware Update\n", ident);
break;
case RETURN_CODE.RETURN_CODE_DO_SUCCESS:
SetOutputText("Firmware Update Successful\n", ident);
break;
case RETURN_CODE.RETURN_CODE_APPLYING_FIRMWARE_UPDATE:
SetOutputText("Applying Firmware Update....\n", ident);
break;
case RETURN_CODE.RETURN_CODE_ENTERING_BOOTLOADER_MODE:
SetOutputText("Entering Bootloader Mode....\n", ident);
break;
case RETURN_CODE.RETURN_CODE_BLOCK_TRANSFER_SUCCESS:
int start = data[0] * 0x100 + data[1];
int end = data[2] * 0x100 + data[3];
SetOutputText("Sent block " + start.ToString() + " of " + end.ToString() + "\n", ident);
break;
default:
SetOutputText("Firmware Update Error Code: " + "0x" + String.Format("{0:X}", (ushort)transactionResultCode) + ": " + IDTechSDK.errorCode.getErrorString(transactionResultCode) + "\r\n", ident);
break;
}
break;
}
}
RETURN_CODE IDTechSDK.IDT_NEO2.device_updateDeviceFromManifest ( string  filepath,
string  ident = "",
bool  isForeground = false 
)

Update Device From Manifest

Initiates a device update using a manifest file.

Parameters
filepathFile path of the manifest file. It must be a valid .json manifest file, and must be located in the same folder as all the needed firmware update assets
ipOptional Device Identifier
isForegroundOptional. If TRUE, function blocks until complete, other if FALSE, runs on background thread
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_updateFirmwareFromZip ( byte[]  zipfile,
string  ident = "",
bool  isForeground = false 
)

Update Firmware From Zip

Performs one or more device firmware updates from firmware files passed as a compressed archive with a valid configuration file (.json format)

Parameters
zipfileZip file containing on or more firmware update files and a .json configuration file
identDevice ID to send command to. If not specified, current SDK default device will be used.
isForegroundIf TRUE, will block program until firmware update complete. Otherwise, FALSE performs FW update on background.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString(string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.device_updateFirmwareIP ( string  path,
int  type,
FirmwareUpdateCallback  callback,
string  ip,
string  ident = "",
bool  performOnForeground = false 
)

Update Firmware

Updates the firmware over IP .

Parameters
pathLocal filepath to the signed binary data of a firmware file provided by IDTech
type0 = K81, 1 = 1050
callbackCallback to receive the status updates
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")

After you pass the filename file, a new thread will start to execute the firmware download. You will receive status of the progress through callback to the IDTechSDK.FirmwareUpdateCallback() delegate. The following parameters will be passed back:

  • transactionResultCode = status of the firmware update (starting, entering bootloader, applying update, block success, firmware success, string ident = "")
  • data = File Progress. Four bytes, with bytes [0][1] = current block, and bytes [2][3] = total blocks. 0x00030010 = block 3 of 16
  • IP. Ip address of the device

Example code starting a firmware update

OpenFileDialog diag = new OpenFileDialog( ident);
diag.Filter = "FW Files|*.fm";
if (diag.ShowDialog() == DialogResult.OK, string ident = "")
{
RETURN_CODE rt = IDT_Device.SharedController.device_updateFirmwareIP(diag.FileName,0,callback,"10.12.34.96", ident);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS, string ident = "")
{
//Was a success
}
else
{
//Error starting firmware download
}
}

Example monitoring firmware update status / success

private void callback( byte[] data, RETURN_CODE transactionResultCode, string IP, string ident = "")
{
switch (transactionResultCode, string ident = "")
{
case RETURN_CODE.RETURN_CODE_FW_STARTING_UPDATE:
SetOutputText("Starting Firmware Update\n", ident);
break;
case RETURN_CODE.RETURN_CODE_DO_SUCCESS:
SetOutputText("Firmware Update Successful\n", ident);
break;
case RETURN_CODE.RETURN_CODE_APPLYING_FIRMWARE_UPDATE:
SetOutputText("Applying Firmware Update....\n", ident);
break;
case RETURN_CODE.RETURN_CODE_ENTERING_BOOTLOADER_MODE:
SetOutputText("Entering Bootloader Mode....\n", ident);
break;
case RETURN_CODE.RETURN_CODE_BLOCK_TRANSFER_SUCCESS:
int start = data[0] * 0x100 + data[1];
int end = data[2] * 0x100 + data[3];
SetOutputText("Sent block " + start.ToString() + " of " + end.ToString() + "\n", ident);
break;
default:
SetOutputText("Firmware Update Error Code: " + "0x" + String.Format("{0:X}", (ushort)transactionResultCode) + ": " + IDTechSDK.errorCode.getErrorString(transactionResultCode) + "\r\n", ident);
break;
}
RETURN_CODE IDTechSDK.IDT_NEO2.device_updateFirmwareKernels ( string  path,
FirmwareUpdateCallback  callback,
string  ip = "",
UInt32  address = 0,
string  ident = "" 
)

Update Firmware Kernels

Updates all the recognized firmware kernels from the provided folder path .

Parameters
pathLocal folder that contains the kernel files. NOTE: The files must start with the following names to be properly recognized
  • app_ct_l2
  • app_nfcrd_l2_amex
  • app_nfcrd_l2_apvas
  • app_nfcrd_l2_cup
  • app_nfcrd_l2_dpass
  • app_nfcrd_l2_interac
  • app_nfcrd_l2_jcb
  • app_nfcrd_l2_mchip
  • app_nfcrd_l2_ppse
  • app_nfcrd_l2_smarttap
  • app_nfcrd_l2_vcps
callbackOptional firmware callback. Otherwise, will use main callback
ipOptional ip address of device
addressRequired for ADF_SDK and ADF_APP. Start address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")

After you pass the folder name, a new thread will start to execute the kernel download. You will receive status of the progress through callback to the IDTechSDK.FirmwareUpdateCallback() delegate. The following parameters will be passed back:

  • transactionResultCode = status of the firmware update (starting, entering bootloader, applying update, block success, firmware success, string ident = "")
  • data = File Progress. Four bytes, with bytes [0][1] = current block, and bytes [2][3] = total blocks. 0x00030010 = block 3 of 16
  • IP. Ip address of the device
static RETURN_CODE IDTechSDK.IDT_NEO2.device_updateFirmwareType ( FIRMWARE_TYPE  type,
byte[]  firmwareData,
string  ident = "",
UInt32  address = 0,
bool  performOnForeground = false,
int  manifestScriptsCount = 0,
int  processedScriptCount = 0,
string  DT_PRJ_filename = "" 
)
static

Update App Firmware

Updates the firmware

Parameters
typeFIRMWARE_TYPE.
  • FIRMWARE_TYPE_External_EMV_CTL2
  • FIRMWARE_TYPE_EMV_CLL2_PPSE
  • FIRMWARE_TYPE_EMV_CLL2_VCPS
  • FIRMWARE_TYPE_EMV_CLL2_MChip
  • FIRMWARE_TYPE_EMV_CLL2_DPass
  • FIRMWARE_TYPE_EMV_CLL2_Amex
  • FIRMWARE_TYPE_EMV_CLL2_Interac
  • FIRMWARE_TYPE_EMV_CLL2_CUP
  • FIRMWARE_TYPE_EMV_CLL2_JCB
  • FIRMWARE_TYPE_APVAS
  • FIRMWARE_TYPE_SmartTap
  • FIRMWARE_TYPE_SCRP
  • FIRMWARE_TYPE_ADF_SDK
  • FIRMWARE_TYPE_ADF_App
  • FIRMWARE_TYPE_1050
  • FIRMWARE_TYPE_1050_DEVICE_TREE FIRMWARE_TYPE_DEVICE_TREE_DEF FIRMWARE_TYPE_DEVICE_TREE_PRJ
  • FIRMWARE_TYPE_NEO3_BOOTLOADER
  • FIRMWARE_TYPE_K81_BOOTLOADER_A
  • FIRMWARE_TYPE_K81_BOOTLOADER_B
  • FIRMWARE_TYPE_K81
firmwareDataSigned binary data of a firmware file provided by IDTech
identDevice ID to send command to. If not specified, current SDK default device will be used.
addressRequired for ADF_SDK and ADF_APP. Start address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")

After you pass the firmwareData file, a new thread will start to execute the firmware download. You will receive status of the progress through callbacks to the IDTechSDK.Callback() delegate. The following parameters will be passed back:

  • sender = IDT_DEVICE_Types.IDT_DEVICE_AUGUSTA
  • state = DeviceState.FirmwareUpdate
  • transactionResultCode = status of the firmware update (starting, entering bootloader, applying update, block success, firmware success, string ident = "")
  • data = File Progress. Four bytes, with bytes [0][1] = current block, and bytes [2][3] = total blocks. 0x00030010 = block 3 of 16

Example code starting a firmware update

OpenFileDialog diag = new OpenFileDialog( ident);
diag.Filter = "NGA FW Files|*.fm";
if (diag.ShowDialog() == DialogResult.OK, string ident = "")
{
byte[] file = File.ReadAllBytes(diag.FileName, ident);
RETURN_CODE rt = IDT_Device.SharedController.device_updateFirmware(FIRMWARE_TYPE.FIRMWARE_TYPE_1050, file, ident);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS, string ident = "")
{
//Was a success
}
else
{
//Error starting firmware download
}
}

Example monitoring firmware update status / success

private void MessageCallBack(IDTechSDK.IDT_DEVICE_Types type, DeviceState state, byte[] data, IDTTransactionData cardData, EMV_Callback emvCallback, RETURN_CODE transactionResultCode, string ident = "")
{
switch (state, string ident = "")
{
case DeviceState.FirmwareUpdate:
switch (transactionResultCode, string ident = "")
{
case RETURN_CODE.RETURN_CODE_FW_STARTING_UPDATE:
SetOutputText("Starting Firmware Update\n", ident);
break;
case RETURN_CODE.RETURN_CODE_DO_SUCCESS:
SetOutputText("Firmware Update Successful\n", ident);
break;
case RETURN_CODE.RETURN_CODE_APPLYING_FIRMWARE_UPDATE:
SetOutputText("Applying Firmware Update....\n", ident);
break;
case RETURN_CODE.RETURN_CODE_ENTERING_BOOTLOADER_MODE:
SetOutputText("Entering Bootloader Mode....\n", ident);
break;
case RETURN_CODE.RETURN_CODE_BLOCK_TRANSFER_SUCCESS:
int start = data[0] * 0x100 + data[1];
int end = data[2] * 0x100 + data[3];
SetOutputText("Sent block " + start.ToString() + " of " + end.ToString() + "\n", ident);
break;
default:
SetOutputText("Firmware Update Error Code: " + "0x" + String.Format("{0:X}", (ushort)transactionResultCode) + ": " + IDTechSDK.errorCode.getErrorString(transactionResultCode) + "\r\n", ident);
break;
}
break;
}
}
RETURN_CODE IDTechSDK.IDT_NEO2.device_updateFirmwareType ( string  path,
FIRMWARE_TYPE  type,
FirmwareUpdateCallback  callback,
string  ident = "",
UInt32  address = 0 
)

Update Firmware

Updates the firmware through path .

Parameters
pathLocal filepath to the signed binary data of a firmware file provided by IDTech
typeFIRMWARE_TYPE.
  • FIRMWARE_TYPE_External_EMV_CTL2
  • FIRMWARE_TYPE_EMV_CLL2_PPSE
  • FIRMWARE_TYPE_EMV_CLL2_VCPS
  • FIRMWARE_TYPE_EMV_CLL2_MChip
  • FIRMWARE_TYPE_EMV_CLL2_DPass
  • FIRMWARE_TYPE_EMV_CLL2_Amex
  • FIRMWARE_TYPE_EMV_CLL2_Interac
  • FIRMWARE_TYPE_EMV_CLL2_CUP
  • FIRMWARE_TYPE_EMV_CLL2_JCB
  • FIRMWARE_TYPE_APVAS
  • FIRMWARE_TYPE_SmartTap
  • FIRMWARE_TYPE_SCRP
  • FIRMWARE_TYPE_ADF_SDK
  • FIRMWARE_TYPE_ADF_App
  • FIRMWARE_TYPE_1050
  • FIRMWARE_TYPE_1050_DEVICE_TREE FIRMWARE_TYPE_DEVICE_TREE_DEF FIRMWARE_TYPE_DEVICE_TREE_PRJ
  • FIRMWARE_TYPE_NEO3_BOOTLOADER
  • FIRMWARE_TYPE_K81_BOOTLOADER_A
  • FIRMWARE_TYPE_K81_BOOTLOADER_B
  • FIRMWARE_TYPE_K81
callbackOptional firmware callback. Otherwise, will use main callback
identDevice ID to send command to. If not specified, current SDK default device will be used.
addressRequired for ADF_SDK and ADF_APP. Start address
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")

After you pass the filename file, a new thread will start to execute the firmware download. You will receive status of the progress through callback to the IDTechSDK.FirmwareUpdateCallback() delegate. The following parameters will be passed back:

  • transactionResultCode = status of the firmware update (starting, entering bootloader, applying update, block success, firmware success, string ident = "")
  • data = File Progress. Four bytes, with bytes [0][1] = current block, and bytes [2][3] = total blocks. 0x00030010 = block 3 of 16
  • IP. Ip address of the device

Example code starting a firmware update

OpenFileDialog diag = new OpenFileDialog( ident);
diag.Filter = "FW Files|*.fm";
if (diag.ShowDialog() == DialogResult.OK, string ident = "")
{
RETURN_CODE rt = IDT_Device.SharedController.device_updateFirmwareIP(diag.FileName,0,callback,"10.12.34.96", ident);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS, string ident = "")
{
//Was a success
}
else
{
//Error starting firmware download
}
}

Example monitoring firmware update status / success

private void callback( byte[] data, RETURN_CODE transactionResultCode, string IP, string ident = "")
{
switch (transactionResultCode, string ident = "")
{
case RETURN_CODE.RETURN_CODE_FW_STARTING_UPDATE:
SetOutputText("Starting Firmware Update\n", ident);
break;
case RETURN_CODE.RETURN_CODE_DO_SUCCESS:
SetOutputText("Firmware Update Successful\n", ident);
break;
case RETURN_CODE.RETURN_CODE_APPLYING_FIRMWARE_UPDATE:
SetOutputText("Applying Firmware Update....\n", ident);
break;
case RETURN_CODE.RETURN_CODE_ENTERING_BOOTLOADER_MODE:
SetOutputText("Entering Bootloader Mode....\n", ident);
break;
case RETURN_CODE.RETURN_CODE_BLOCK_TRANSFER_SUCCESS:
int start = data[0] * 0x100 + data[1];
int end = data[2] * 0x100 + data[3];
SetOutputText("Sent block " + start.ToString() + " of " + end.ToString() + "\n", ident);
break;
default:
SetOutputText("Firmware Update Error Code: " + "0x" + String.Format("{0:X}", (ushort)transactionResultCode) + ": " + IDTechSDK.errorCode.getErrorString(transactionResultCode) + "\r\n", ident);
break;
}
static RETURN_CODE IDTechSDK.IDT_NEO2.device_wakeDevice ( string  macAddress = "",
string  ipAddress = "" 
)
static

Wake Device From Standby Mode

 If an IP connected device, the device can be located by it's MAC Address, or IP Address (if the SDK has previously established a connection to that device, string ident = "")
 When a IP device is first connected, the MacAddress and IP Address are stored in a look up table.
 Only one of the two parameter are required for Wake on WAN.  If IP address is provided, it will take priority over Mac Address.
Parameters
macAddressOptional: Mac Address of IP connected device to wake
ipAddressOptional: IP Address of IP connected device to wake
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_activateTransaction ( int  timeout,
byte[]  tags,
bool  forceOnline,
bool  isFastEMV = false,
string  ident = "" 
)

Start EMV Transaction Request

Authorizes the EMV transaction for an ICC card

The tags will be returned in the callback routine.

Parameters
timeoutTimeout value in seconds.
tagsThe tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100
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
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
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_addTerminalData ( byte[]  tlv,
string  ident = "" 
)

Add Terminal Data

Adds to the exosting Terminal Data

Parameters
tlvTerminalData TLV Data
identOptional identifier
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_BTPay::device_getResponseCodeString:()
static void IDTechSDK.IDT_NEO2.emv_allowFallback ( bool  allow,
string  ident = "" 
)
static

Allow fallback for EMV transactions. Default is TRUE

Parameters
allowTRUE = allow fallback, FALSE = don't allow fallback
RETURN_CODE IDTechSDK.IDT_NEO2.emv_authenticateTransaction ( byte[]  updatedTLV,
string  ident = "" 
)

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.

@param updatedTLV  TLV 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

@param ident Device ID to send command to.  If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_authenticateTransactionCB ( byte[]  updatedTLV,
CallBackIP  callback,
string  ident = "" 
)

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.

@param updatedTLV  TLV 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

@param callback Callback to receive transaction results
@param ident Device ID to send command to.  If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
static void IDTechSDK.IDT_NEO2.emv_autoAuthenticate ( bool  authenticate,
string  ident = "" 
)
static

Enables authenticate for EMV transactions. If a startEMVTranaction results in code 0x0010 (start transaction success), then emv_authenticateEMVTransaction can automatically execute if parameter is set to TRUE

Parameters
authenticateTRUE = auto authenticate, FALSE = manually authenticate
static void IDTechSDK.IDT_NEO2.emv_autoAuthenticateTags ( bool  authenticate,
byte[]  tags,
string  ident = "" 
)
static

Enables authenticate for EMV transactions. If a startEMVTranaction results in code 0x0010 (start transaction success), then emv_authenticateEMVTransaction can automatically execute if parameter is set to TRUE

Parameters
authenticateTRUE = auto authenticate, FALSE = manually authenticate
tagsTags to pass during authentication stage;
RETURN_CODE IDTechSDK.IDT_NEO2.emv_callbackResponseKSN ( byte[]  KSN,
string  ident = "" 
)

Callback Response Get ETC DUKPT key KSN

Provides a status code to device request of DUKPT IK Loaded Status, from emvCallback.callbackType = EMV_CALLBACK_TYPE.EMV_CALLBACK_TYPE_GET_KSN

Parameters
KSNKSN
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_callbackResponseLCD ( EMV_LCD_DISPLAY_MODE  type,
byte  selection,
string  ident = "" 
)

Callback Response LCD Display

Provides menu selection responses to the kernel after a callback was received with DeviceState.EMVCallback, and callbackType = EMV_CALLBACK_TYPE.EMV_CALLBACK_TYPE_LCD, and lcd_displayMode = EMV_LCD_DISPLAY_MODE_MENU, EMV_LCD_DISPLAY_MODE_PROMPT, or EMV_LCD_DISPLAY_MODE_LANGUAGE_SELECT

Parameters
typeIf Cancel key pressed during menu selection, then value is EMV_LCD_DISPLAY_MODE_CANCEL. Otherwise, value can be EMV_LCD_DISPLAY_MODE_MENU, EMV_LCD_DISPLAY_MODE_PROMPT, or EMV_LCD_DISPLAY_MODE_LANGUAGE_SELECT
selectionIf type = EMV_LCD_DISPLAY_MODE_MENU or EMV_LCD_DISPLAY_MODE_LANGUAGE_SELECT, provide the selection ID line number. Otherwise, if type = EMV_LCD_DISPLAY_MODE_PROMPT supply either 0x43 ('C') for Cancel, or 0x45 ('E') for Enter/accept
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_callbackResponseMSR ( byte[]  MSR,
string  ident = "" 
)

Callback Response MSR Entry

Provides MSR information to kernel after a callback was received with DeviceState.EMVCallback, and callbackType = EMV_CALLBACK_MSR

Parameters
MSRSwiped track data
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_callbackResponsePIN ( EMV_PIN_MODE  type,
byte[]  KSN,
byte[]  PIN,
string  ident = "" 
)

Callback Response PIN Entry

Provides (or cancels) PIN entry information to kernel after a callback was received with DeviceState.EMVCallback, and callbackType = EMV_CALLBACK_TYPE_PINPAD

Parameters
typeIf Cancel key pressed during PIN entry, then value is EMV_PIN_MODE_CANCEL. Otherwise, value can be EMV_PIN_MODE_ONLINE_DUKPT, EMV_PIN_MODE_ONLINE_MKSK, or EMV_PIN_MODE_OFFLINE
KSNIf enciphered PIN, this is either the PIN DUKPT Key (EMV_PIN_MODE_ONLINE_DUKPT) or PIN Session Key (EMV_PIN_MODE_ONLINE_MKSK), or PIN Pairing DUKPT key (EMV_PIN_MODE_OFFLINE, string ident = "")
PINIf encipherd PIN, this is encrypted PIN block. If device does not implement pairing function, this is plaintext PIN
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_callbackResponsePIN_ETC ( EMV_PIN_MODE  type,
byte[]  KSN,
byte[]  PIN,
string  ident = "" 
)

Callback Response PIN Entry for ETC

Provides (or cancels) PIN entry information to kernel after a callback was received with DeviceState.EMVCallback, and callbackType = EMV_CALLBACK_TYPE_PINPAD_ETC

Parameters
typeIf Cancel key pressed during PIN entry, then value is EMV_PIN_MODE_CANCEL. If PIN Bypass during PIN entry, then value is EMV_PIN_MODE_BYPASS. Otherwise, value can be EMV_PIN_MODE_ONLINE_DUKPT, EMV_PIN_MODE_ONLINE_MKSK, or EMV_PIN_MODE_OFFLINE
KSNIf enciphered PIN, this is either the PIN DUKPT Key (EMV_PIN_MODE_ONLINE_DUKPT) or PIN Session Key (EMV_PIN_MODE_ONLINE_MKSK), or PIN Pairing DUKPT key (EMV_PIN_MODE_OFFLINE, string ident = "")
PINIf encipherd PIN, this is encrypted PIN block. If device does not implement pairing function, this is plaintext PIN
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_cancelTransaction ( string  ident = "")

Cancel Transaction

Cancels the currently executing EMV or CTLS transaction.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_completeTransaction ( bool  commError,
byte[]  authCode,
byte[]  iad,
byte[]  tlvScripts,
byte[]  tlv,
string  ident = "" 
)

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
tlvAdditional TVL data to return with transaction results
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString

NOTE: There are three possible outcomes for Authorization Code: Approval, Refer To Bank, Decline. The kernel maps these three outcomes to valid authorization response codes using tag DFEE1B through 8 bytes: {2 bytes Approval Code}{2 bytes Referral Code}{2 bytes Decline Code}{2 bytes RFU} If your gateway uses "00" for Approval, "01" for Referral, and "05" for Decline, then DFEE1B 08 3030 3031 3035 0000 If you use an authorization code value that that is not defined in DFEE1B, the kernel will use the DECLINE value of DFEE1B by default.

RETURN_CODE IDTechSDK.IDT_NEO2.emv_completeTransactionCB ( bool  commError,
byte[]  authCode,
byte[]  iad,
byte[]  tlvScripts,
byte[]  tlv,
CallBackIP  callback,
string  ident = "" 
)

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
tlvAdditional TVL data to return with transaction results
callbackCallback that will receive transaction results
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString

NOTE: There are three possible outcomes for Authorization Code: Approval, Refer To Bank, Decline. The kernel maps these three outcomes to valid authorization response codes using tag DFEE1B through 8 bytes: {2 bytes Approval Code}{2 bytes Referral Code}{2 bytes Decline Code}{2 bytes RFU} If your gateway uses "00" for Approval, "01" for Referral, and "05" for Decline, then DFEE1B 08 3030 3031 3035 0000 If you use an authorization code value that that is not defined in DFEE1B, the kernel will use the DECLINE value of DFEE1B by default.

RETURN_CODE IDTechSDK.IDT_NEO2.emv_exchangeCerts ( ref byte[]  cert,
ref byte[]  nonce,
ref byte[]  signature,
string  ident = "" 
)

Exchange Certificates, Nonces, and Keys

Use this command to send the ETC certificate, nonce, and signature. The return data is the NEO2 certificate, nonce, and signature.

Parameters
certSEND: ETC Certificate for signature verification, RECEIVE: NEO2 Certificate for signature verification
nonceSEND: ETC random nonce, RECEIVE: NEO2 random nonce
signatureSEND: ETC Signature, RECEIVE: NEO2 Signature. Signature of (CertETC_SV || NONCE_ETC) with PKCS1-v1_5 padding
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_generateDUKPT ( byte[]  cert,
byte[]  signature,
ref byte[]  key,
string  ident = "" 
)

Generate DUKPT IK Using KEK

Use this command to send the encrypted KEK and signature generated by the ETC. NEO2 returns the DUKPT IK in TR-31 format encrypted with the KEK and signature

Parameters
certETC certificate for signature verification
signatureSignature of (KEK || NONCE_ETC) with PKCS1-v1_5 padding
keyASN.1 structure of DUKPT IK used between NEO2 and ETC
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_getEMVConfigurationCheckValue ( ref string  response,
string  ident = "" 
)

Polls device for EMV Configuration Check Value

Parameters
responseResponse returned of Check Value of Configuration
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_getEMVKernelCheckValue ( ref string  response,
string  ident = "" 
)

Polls device for EMV Kernel Check Value

Parameters
responseResponse returned of Check Value of Kernel
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_getEMVKernelVersion ( ref string  response,
string  ident = "" 
)

Polls device for EMV Kernel Version

Parameters
responseResponse returned of Kernel Version
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_getEMVKernelVersionExt ( ref string  response,
string  ident = "" 
)

Polls device for Extended EMV Kernel Version

Parameters
responseResponse returned of Kernel Version
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString(string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_getTerminalMajorConfiguration ( ref int  configuration,
string  ident = "" 
)

Get Terminal Major Configuration

Gets the Terminal Data Major Configuration setting

Parameters
configurationThe configuration that is set (1-5, string ident = "")
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeAllApplicationData ( string  ident = "")

Remove All Application Data

Removes all the Application Data for EMV Kernel

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeAllCAPK ( string  ident = "")

Remove All Certificate Authority Public Key

Removes all the CAPK for EMV Kernel

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeAllCRL ( string  ident = "")

Remove All Certificate Revocation List Entries

Removes all CRLEntry entries

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeApplicationData ( byte[]  AID,
string  ident = "" 
)

Remove Application Data by AID

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

Parameters
AIDName of ApplicationID Must be between 5 and 16 bytes
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeCAPK ( byte[]  capk,
string  ident = "" 
)

Remove Certificate Authority Public Key

Removes the CAPK for EMV Kernel as specified by the RID/Index

Parameters
capk6 byte CAPK = 5 bytes RID + 1 byte INDEX
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeCRL ( byte[]  crlList,
string  ident = "" 
)

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]
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeTerminalData ( string  ident = "")

Remove Terminal Data

Removes the Terminal Data

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_resetConfigurationGroup ( int  group,
string  ident = "" 
)

Reset Configuration Group

This command allows resetting a dataset to its default configuration. If the file exists, it will be overwritten. If not, it will be created.

Parameters
groupConfiguration Group
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_VP8800::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveAIDList ( ref byte  response[][],
string  ident = "" 
)

Retrieve AID list

Returns all the AID names and their assigned groups installed on the terminal for CONTACT.

Parameters
responsearray of 2-tag TLV data objects: DFEE2D (group name) followed by 9F06 (AID, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveApplicationData ( byte[]  AID,
ref byte[]  tlv,
string  ident = "" 
)

Retrieve Application Data by AID

Retrieves the Application Data for EMV Kernel as specified by the AID name passed as a parameter.

Parameters
AIDName of ApplicationID. Must be between 5 and 16 bytes
tlvThe TLV elements of the requested AID
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveCAPK ( byte[]  capk,
ref byte[]  key,
string  ident = "" 
)

Retrieve Certificate Authority Public Key

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

Parameters
capk6 bytes CAPK = 5 bytes RID + 1 byte Index
keyResponse returned as a 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 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, string ident = "")
  • 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.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveCAPKList ( ref byte[]  keys,
string  ident = "" 
)

Retrieve the Certificate Authority Public Key list

Returns all the CAPK RID and Index installed on the terminal for EMV Kernel.

Parameters
keys[key1][key2]...[keyn], each key 6 bytes where key = 5 bytes RID + 1 byte index
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveCRLList ( ref byte[]  list,
string  ident = "" 
)

Retrieve the Certificate Revocation List

Returns the CRL entries on the terminal.

Parameters
list[CRL1][CRL2]...[CRLn], each CRL 9 bytes where CRL = 5 bytes RID + 1 byte index + 3 bytes serial number
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveTerminalData ( ref byte[]  tlv,
string  ident = "" 
)

Retrieve Terminal Data

Retrieves the Terminal Data for EMV Kernel.

Parameters
tlvResponse returned as a TLV
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveTransactionResult ( byte[]  tags,
ref IDTTransactionData  tlv,
string  ident = "" 
)

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 TLV data in IDDTransactionData object
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setApplicationData ( byte[]  name,
byte[]  tlv,
string  ident = "" 
)

Set Application Data by AID

Sets the Application Data as specified by TLV data

Parameters
tlvApplication data in TLV format

Tags:

  • DFEE4B : Partial AID Matching. 01 = allowed, 00 = Disabled. Mandatory for Visa
  • DFEE4C : Application Flow, System: Never, User: Mandatory – 0x01 = MasterCard – 0x02 = AMEX – 0x03 = MasterCard w/Strip Application – 0x06 = Visa – 0x0D = Discover – 0x0E = JCB – 0x15 = Reserved – 0x16 = Reserved – 0x17 = Reserved
  • DFEE4D = PPSE Disable, Optional
  • DFEE2E = Max AID Length, Mandatory if DFEE4B included. Visa must be set to 16
  • DFEE2F = Disable System Aid (no effect on User AID). 0x80 = Disable, 0x00 = Enable
  • DFEE4F = Interface Support. 01 = CTLS, 02 = Contact. If missing, defaults to CTLS
Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setApplicationData ( byte[]  tlv,
string  ident = "" 
)

Set Application Data by AID

Sets the Application Data as specified by TLV data

Parameters
tlvApplication data in TLV format The first tag of the TLV data must be the group number (DFEE2D). The second tag of the TLV data must be the AID (9F06) Tag DFEE4F must be included, and it must have a value of 0x02 to be and EMV AID

Example valid TLV, for Group #8, AID a0000000045010: "dfee2d01089f0607a0000000045010dfee4b0101dfee2e0110dfee4c0101dfee4f0103

Tags:

  • DFEE2D : Group Number. Mandatory First Tag. 0 = System, 1-255 = User
  • 9F06 : AID. Mandatory Second Tag
  • DFEE4B : Partial AID Matching. 01 = allowed, 00 = Disabled. Mandatory for Visa
  • DFEE4C : Application Flow, System: Never, User: Mandatory – 0x01 = MasterCard – 0x02 = AMEX – 0x03 = MasterCard w/Strip Application – 0x06 = Visa – 0x0D = Discover – 0x0E = JCB – 0x15 = Reserved – 0x16 = Reserved – 0x17 = Reserved
  • DFEE4D = PPSE Disable, Optional
  • DFEE2E = Max AID Length, Mandatory if DFEE4B included. Visa must be set to 16
  • DFEE2F = Disable System Aid (no effect on User AID). 0x80 = Disable, 0x00 = Enable
  • DFEE4F = Interface Support. 01 = CTLS, 02 = Contact. If missing, defaults to CTLS
Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setCAPK ( byte[]  key,
string  ident = "" 
)

Set Certificate Authority Public Key

Sets the CAPK for EMV Kernel 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, string ident = "")
  • 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.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setCRL ( byte[]  list,
string  ident = "" 
)

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]
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setTerminalData ( byte[]  tlv,
string  ident = "" 
)

Set Terminal Data

Sets the Terminal Data

Parameters
tlvTerminalData TLV Data
identOptional identifier
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_BTPay::device_getResponseCodeString:()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setTerminalMajorConfiguration ( int  configuration,
string  ident = "" 
)

Set Terminal Major Configuration

Sets the Terminal Data Major Configuration setting

Parameters
configurationThe configuration to set (1-5, string ident = "")
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.emv_startTransaction ( double  amount,
double  amtOther,
int  exponent,
int  type,
int  timeout,
byte[]  tags,
bool  forceOnline,
bool  isFastEMV = false,
string  ident = "" 
)

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, string ident = "")
amtOtherOther amount value, if any (tag value 9F03, string ident = "")
exponentNumber of characters after decimile point
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsAny other tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100 If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will 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
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
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_startTransactionCB ( double  amount,
double  amtOther,
int  exponent,
int  type,
int  timeout,
byte[]  tags,
bool  forceOnline,
CallBackIP  callback,
bool  isFastEMV = false,
string  ident = "" 
)

Start EMV Transaction Request

Authorizes the EMV transaction for an ICC card

The tags will be returned in the specified callback routine.

Parameters
amountTransaction amount value (tag value 9F02, string ident = "")
amtOtherOther amount value, if any (tag value 9F03, string ident = "")
exponentNumber of characters after decimile point
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsAny other tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100 If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will 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
callbackCallback for the returned data 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
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_trySetTerminalData ( byte[]  tlv,
ref byte[]  rejectedTLV,
ref byte[]  convertedTLV,
bool  overwrite = false,
string  ident = "" 
)

Try to Set Terminal Data

Atempts to set the Terminal Data. Use this functions to attempt to set the terminal data to the device. This function will allow the cross-device tag compatible writing of IDTech Legacy/New tag definitions

Parameters
tlvTerminalData TLV Data
rejectedTLVContains the tags (if any) that were rejected by the firmware
convertedTLVContains the tags (if any) that were converted and accepted by the firmware
overwriteTRUE = add TLV to existing tags, FALSE = replace existing tags with TLV
identOptional identifier
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_BTPay::device_getResponseCodeString:()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_verifyDUKPTLoaded ( byte[]  KCV,
string  ident = "" 
)

7.3 Verify DUKPT IK Loaded on ETC

Use this command to verify the DUKPT IK is loaded into the ETC. NEO2 is activated and it can request PIN from ETC after this command.

Parameters
KCVASN.1 structure of KCV
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.felica_authentication ( byte[]  key,
string  ident = "" 
)

FeliCa Authentication

Provides a key to be used in a follow up FeliCa Read with MAC (3 blocks max) or Write with MAC (1 block max). This command must be executed before each Read w/MAC or Write w/MAC command

NOTE: The reader must be in Pass Through Mode for FeliCa commands to work.

Parameters
key16 byte key used for MAC generation of Read or Write with MAC
ipIP Address of target device (optional, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.felica_read ( byte[]  serviceCode,
int  numBlocks,
byte[]  blockList,
ref byte[]  blocks,
string  ident = "" 
)

FeliCa Read

Reads up to 4 blocks.

NOTE: The reader must be in Pass Through Mode for FeliCa commands to work.

Parameters
serviceCodeService Code List. Each service code in Service Code List = 2 bytes of data
numBlocksNumber of blocks
blockListBlocks to read. Maximum 4 block requests
blocksBlocks read. Each block 16 bytes.
ipIP Address of target device (optional, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.felica_readWithMac ( int  numBlocks,
byte[]  blockList,
ref byte[]  blocks,
string  ident = "" 
)

FeliCa Read with MAC Generation

Reads up to 3 blocks with MAC Generation. FeliCa Authentication must be performed first

NOTE: The reader must be in Pass Through Mode for FeliCa commands to work.

Parameters
numBlocksNumber of blocks
blockListBlock to read. Each block in blockList Maximum 3 block requests
blocksBlocks read. Each block 16 bytes.
ipIP Address of target device (optional, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.felica_requestService ( byte[]  nodeCode,
ref byte[]  response,
string  ident = "" 
)

FeliCa Request Service

Perform functions a Felica Request Service

NOTE: The reader must be in Pass Through Mode for FeliCa commands to work.

Parameters
nodeCodeNode Code
responseResponse as explained in FeliCA Lite-S User's Manual
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.felica_SendCommand ( byte[]  command,
ref byte[]  response,
string  ident = "" 
)

FeliCa Send Command

Send a Felica Command

Parameters
commandCommand data from settlement center to be sent to felica card
responseResponse data from felica card.
Returns
RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.felica_write ( byte[]  serviceCode,
int  blockCount,
byte[]  blockList,
byte[]  data,
ref byte[]  statusFlag,
string  ident = "" 
)

FeliCa Write

Writes a block

NOTE: The reader must be in Pass Through Mode for FeliCa commands to work.

Parameters
serviceCodeService Code list. Each service code must be be 2 bytes
blockCountBlock Count
blockListBlock list.
dataBlock to write. Must be 16 bytes.
statusFlagStatus flag response as explained in FeliCA Lite-S User's Manual, Section 4.5
ipIP Address of target device (optional, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.felica_writeWithMac ( int  blockNumber,
byte[]  data,
string  ident = "" 
)

FeliCa Write with MAC Generation

Writes a block with MAC Generation. FeliCa Authentication must be performed first

NOTE: The reader must be in Pass Through Mode for FeliCa commands to work.

Parameters
blockNumberNumber of block
dataBlock to write. Must be 16 bytes.
ipIP Address of target device (optional, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
static int IDTechSDK.IDT_NEO2.getCommandTimeout ( string  ident = "")
static

Get Command Timeout

Gets the default timeout (in milliseconds) waiting for a blocking command response

Return values
timeTime
static string IDTechSDK.IDT_NEO2.getlastErrorString ( string  ident = "")
static

Last Error String

Returns the last firmware reported error string to RETURN_CODE_P2_FAILED and RETURN_CODE_P2_COMMAND_NOT_ALLOWED if error reporting is enabled

Parameters
ipIP address of device
Return values
stringLast Error String Message
RETURN_CODE IDTechSDK.IDT_NEO2.icc_exchangeAPDU ( string  c_APDU,
ref byte[]  response,
string  ident = "" 
)

Exchange APDU

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

Parameters
c_APDUAPDU data packet
responseUnencrypted/encrypted parsed APDU response
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.icc_getICCReaderStatus ( ref byte  status,
string  ident = "" 
)

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
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.icc_powerOffICC ( string  ident = "")

Power Off ICC

Powers down the ICC

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")

If Success, empty If Failure, ASCII encoded data of error string

RETURN_CODE IDTechSDK.IDT_NEO2.icc_powerOnICC ( ref byte[]  ATR,
byte  interfaces,
string  ident = "" 
)

Power On ICC

Power up the currently selected microprocessor card in the ICC reader

Parameters
interfacesFor NEO2 devices allowed interfaces for which to get the ATR. 0x20h = retrieve last ATR received from PICC 0x21h = SAM1 (SRED version only, string ident = "") 0x22h = SAM2 (SRED version only, string ident = "") For other devices interfaces euquals to 0s
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
void IDTechSDK.IDT_NEO2.ip_autoConnectToSocket ( )

Auto Connect To Socket

Instructs SDK to attempt to attempt to connect to all the IP addresses as specified in NEO2_Devices.xml. The NEO2_Devices.xml must be located in the same root directory as IDTechSDK.dll. It is used to specify NEO2 devices for USB connectivity and IP connectivity. It is made up of DEVICE entries example as follows:

<Device>
<Product>VP6800</Product>
<Name>VP6800</Name>
<VID>0x0acd</VID>
<PID>0x4460</PID>
<UsageID>0x0001</UsageID>
<UsagePage>0xFF00</UsagePage>
<BaseIP>10.12.34.98</BaseIP>
<IP_Count>2</IP_Count>
<IP_Port></IP_Port>
</Device>
  • BaseIP = IP address of first device to look for
  • IP_Count - # of consecutive IP address to search, up to an IP address of xx.xx.xx.255
  • IP_Port - Optional. Defaults to port 1025

Multiple device connections can be defined by a single Device entry, if those devices will use consecutive IP addresses, or multiple device connections can be defined by multiple Device entries, each with unique IP.

Every IP connection attempt is reported to a callback as connection successful, or connection could not be established

bool IDTechSDK.IDT_NEO2.ip_connectToSocket ( string  IP,
bool  isSecure = false 
)

Connect to Socket

Instructs SDK to attempt to use TCP/IP for communication with IDT_NEO2

Parameters
IPValid IP address, with optional port and label. Examples
  • IP Address: "10.12.34.98"
  • IP Address + Port: "10.12.34.98:1024"
  • IP Address + Label: "10.12.34.98#Neo Device #1"
  • IP Address + Port + Label: "10.12.34.98:1025#Neo Device #1"
isSecureTRUE = Use TLS 1.2
Return values
successTRUE = device found, FALSE = device not found

NOTE: If the device is found, it will automatically become the currently selected SDK device unless there is another currently connected IP device the SDK is using. If you would like to change between multiple IP connected devices, use ip_switchToSocket instead

bool IDTechSDK.IDT_NEO2.ip_firstConnectToSocket ( string  IP)

First Connect to Socket

Instructs SDK to attempt to use TCP/IP for communication with IDT_NEO2, without any retries for reboot delay

Parameters
IPValid IP address, with optional port and label. Examples
  • IP Address: "10.12.34.98"
  • IP Address + Port: "10.12.34.98:1024"
  • IP Address + Label: "10.12.34.98#Neo Device #1"
  • IP Address + Port + Label: "10.12.34.98:1025#Neo Device #1"
isSecureTRUE = Use TLS 1.2
Return values
successTRUE = device found, FALSE = device not found

NOTE: If the device is found, it will automatically become the currently selected SDK device unless there is another currently connected IP device the SDK is using. If you would like to change between multiple IP connected devices, use ip_switchToSocket instead

static List<string> IDTechSDK.IDT_NEO2.ip_getSocketList ( )
static

Get IP Socket List

Returns a list of all the established socket connections with the SDK. Each entry is the original full IP address specified.

Return values
listSocket Connections
static bool IDTechSDK.IDT_NEO2.ip_isConnected ( string  ip,
int  attempts = 1,
bool  isSecure = false 
)
static

Is IP Connected

Validates if IP channel is open and device responsive. If the channel is open and device not responsive, this will close the channel.

Parameters
IPaddress to check
attemptsNumber of connection attempts to try before returning result
isSecureTRUE = TLS 1.2 connection
Return values
status
  • TRUE = channel is open and device is responsive
  • FALSE = channel is open and device is unresponsive (channel will close, string ident = "")
  • FALSE = channel is closed
void IDTechSDK.IDT_NEO2.ip_monitorSocketConnectionStatus ( bool  enable,
bool  monitorConnect,
int  interval,
int  retryCount 
)

Monitor Socket Connection Status

Instructs SDK to monitor currently connected devices for network disconnect, and also to automatically re-connect when plugged back into the network. Disconnect monitors is done by pinging the SDK connected stream list on an interval, and if ping unsuccessful, that device stream is closed and removed from SDK device list, followed by a notification of the device disconnect.

If the option to monitor connection, then the NEO2_Devices.xml must contain the auto-connect information for the SDK to run on the specified interval.

Parameters
enableTRUE = enable polling for device disconnect and optional connect, at specified interval and retryCount
monitorConnectIf TRUE, an auto-connect attempt will be made at the specified interval
intervalInterval, in seconds, to monitor IP. Minimum value 5 seconds
retryCountNumber of retries trying to communicate before determining device not available and issue disconnect notification.
static bool IDTechSDK.IDT_NEO2.ip_switchToSocket ( string  IP)
static

Switch to Socket

Instructs SDK to direct communication to the specified device (the device must have already established a connection through auto-connent or ip_connecToSocket, string ident = "")

Parameters
IPValid established IP address of the existing device. Must match original IP string exactly. Example: Connect to device as 192.168.1.155:50#Device_1. You must use that whole string, not just 192.168.1.155, or 192.168.1.155:50.
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_addButton ( string  screenName,
string  buttonName,
byte  type,
byte  alignment,
UInt16  xCord,
UInt16  yCord,
string  label,
ref lcdItem  returnItem,
buttonCallback  callback,
string  ident = "" 
)

Add Button

Adds a button to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on.

Parameters
screenNameScreen name that will be the target of add button
buttonNameButton name that will be the target of add button
typeButton Type
  • Large = 0x01
  • Medium = 0x02
  • Invisible = 0x03 (70px by 60 px, string ident = "")
alignmentPosition for Button
  • 0 = Display object at the horizon center of specified y, while x ignored
  • 1 = Display object at specified x andy
  • 2 = Display object at center of screen, x, y are both ignored
  • 3 = Display object at left of the screen of specified y, while x ignored
  • 4 = Display object at right of the screen of specified y, while x ignored
xCordx-coordinate for Button, range 0-271
yCordy-coordinate for Button, range 0-479
labelLabel to show on the button. Required for Large/Medium buttons. Not used for Invisible buttons.
returnItemThe item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created button
callbackbuttonCallback to receive button presses. Passing NULL will return button presses to main messageCallback.
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString

NOTE ON BUTTON PRESS EVENTS: A button press consists of uInt16 specifying the screen, and uInt16 specifying the button ID If buttonCallback is used, it will have the follow signature:
public delegate void buttonCallback(IDT_DEVICE_Types sender, UInt16 screenID, UInt16 itemID, string IP);
If buttonCallback is NULL, then the button presses will be passed to the messageCallback, with DeviceState.ButtonEvent, and data = data[0], data[1] = uInt16 screenID, and data[2], data[3] = uint16 buttonID

RETURN_CODE IDTechSDK.IDT_NEO2.lcd_addEthernet ( string  screenName,
string  objectName,
byte  alignment,
UInt16  xCord,
UInt16  yCord,
ref lcdItem  returnItem,
string  ip,
string  ident = "" 
)

Add Ethernet Settings

Adds an Ethernet settings to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on.

Parameters
screenNameScreen name that will be the target of add widget
objectNameObject name that will be the target of add widget
alignmentPosition for widget
  • 0 = Display object at the horizon center of specified y, while x ignored
  • 1 = Display object at specified x andy
  • 2 = Display object at center of screen, x, y are both ignored
  • 3 = Display object at left of the screen of specified y, while x ignored
  • 4 = Display object at right of the screen of specified y, while x ignored
xCordx-coordinate for widget, range 0-271
yCordy-coordinate for widget, range 0-479
returnItemThe item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created widget
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
Item Maximum can be created for each screen
Text Area 20
Large Button 8
Medium Button 16
Invisible Button 16
Numeric Entry 1
Ethernet Setting 1
Led widget 1
image 20
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_addImage ( string  screenName,
string  objectName,
byte  alignment,
UInt16  xCord,
UInt16  yCord,
string  filename,
ref lcdItem  returnItem,
string  ident = "" 
)

Add Image

Adds a image to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on.

Parameters
screenNameScreen name that will be the target of add image
objectNameObject name that will be the target of add image
alignmentPosition for Image
  • 0 = Display object at the horizon center of specified y, while x ignored
  • 1 = Display object at specified x andy
  • 2 = Display object at center of screen, x, y are both ignored
  • 3 = Display object at left of the screen of specified y, while x ignored
  • 4 = Display object at right of the screen of specified y, while x ignored
xCordx-coordinate for Image, range 0-271
yCordy-coordinate for Image, range 0-479
filenameFilename of the image. Must be available in device memory.
returnItemThe item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created image
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
Item Maximum can be created for each screen
Text Area 20
Large Button 8
Medium Button 16
Invisible Button 16
Numeric Entry 1
Ethernet Setting 1
Led widget 1
image 20
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_addLED ( string  screenName,
string  objectName,
byte  alignment,
UInt16  xCord,
UInt16  yCord,
ref lcdItem  returnItem,
byte[]  LED,
string  ident = "" 
)

Add LED

Adds a LED widget to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on.

Parameters
screenNameScreen name that will be the target of add LED
objectNameObject name that will be the target of add LED
alignmentPosition for LED
  • 0 = Display object at the horizon center of specified y, while x ignored
  • 1 = Display object at specified x andy
  • 2 = Display object at center of screen, x, y are both ignored
  • 3 = Display object at left of the screen of specified y, while x ignored
  • 4 = Display object at right of the screen of specified y, while x ignored
xCordx-coordinate for LED, range 0-271
yCordy-coordinate for LED, range 0-479
returnItemThe item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created widget
LEDMust be 4 bytes, LED 0 = byte 0, LED 1 = byte 1, LED 2 = byte 2, LED 3 = byte 3
  • Value 0 = LED OFF
  • Value 1 = LED Green
  • Value 2 = LED Yellow
  • Value 3 = LED Red
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
Item Maximum can be created for each screen
Text Area 20
Large Button 8
Medium Button 16
Invisible Button 16
Numeric Entry 1
Ethernet Setting 1
Led widget 1
image 20
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_addText ( string  screenName,
string  objectName,
byte  alignment,
UInt16  xCord,
UInt16  yCord,
UInt16  width,
UInt16  height,
byte  fontID,
byte[]  color,
string  label,
ref lcdItem  returnItem,
string  ident = "" 
)

Add text

Adds a text component to a selected screen. Must execute lcd_createScreen first to establish a screen to draw on.

Parameters
screenNameScreen name that will be the target of add text
objectNameObject name that will be the target of add text
alignmentPosition for Text
  • 0 = Display object at the horizon center of specified y, while x ignored
  • 1 = Display object at specified x andy
  • 2 = Display object at center of screen, x, y are both ignored
  • 3 = Display object at left of the screen of specified y, while x ignored
  • 4 = Display object at right of the screen of specified y, while x ignored
xCordx-coordinate for Text, range 0-271
yCordy-coordinate for Text, range 0-479
widthWidth of text area
heightHeight of text area
fontIDFont ID
colorFour bytes for color, example, Blue = 0xFF000000, Black = 0x00000000
  • Byte 0 = B
  • Byte 1 = G
  • Byte 2 = R
  • Byte 3 = Reserved
labelLabel to show on the text
returnItemThe item includes screen ID, object ID, top-left x-coordinate, top-left y-coordinate, bottom-right x-coordinate, bottom-left y-coordinate, which are all assigned to the created text area
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
Font ID Typography Name Font Size
0 RoundBold_12 RoundBold.ttf 12
1 RoundBold_18 RoundBold.ttf 18
2 RoundBold_24 RoundBold.ttf 24
3 RoundBold_36 RoundBold.ttf 36
4 RoundBold_48 RoundBold.ttf 48
5 RoundBold_60 RoundBold.ttf 60
6 RoundBold_72 RoundBold.ttf 72
7 RoundCondensedBold_12 RoundCondensedBold.ttf 12
8 RoundCondensedBold_18 RoundCondensedBold.ttf 18
9 RoundCondensedBold_24 RoundCondensedBold.ttf 24
10 RoundCondensedBold_36 RoundCondensedBold.ttf 36
11 RoundCondensedBold_48 RoundCondensedBold.ttf 48
12 RoundCondensedBold_60 RoundCondensedBold.ttf 60
13 RoundCondensedBold_72 RoundCondensedBold.ttf 72
14 RoundCondensedMedium_12 RoundCondensedMedium_0.ttf 12
15 RoundCondensedMedium_18 RoundCondensedMedium_0.ttf 18
16 RoundCondensedMedium_24 RoundCondensedMedium_0.ttf 24
17 RoundCondensedMedium_36 RoundCondensedMedium_0.ttf 36
18 RoundCondensedMedium_48 RoundCondensedMedium_0.ttf 48
19 RoundCondensedMedium_60 RoundCondensedMedium_0.ttf 60
20 RoundCondensedMedium_72 RoundCondensedMedium_0.ttf 72
21 RoundCondensedSemibold_12 RoundCondensedSemibold.ttf 12
22 RoundCondensedSemibold_18 RoundCondensedSemibold.ttf 18
23 RoundCondensedSemibold_24 RoundCondensedSemibold.ttf 24
24 RoundCondensedSemibold_36 RoundCondensedSemibold.ttf 36
25 RoundCondensedSemibold_48 RoundCondensedSemibold.ttf 48
26 RoundCondensedSemibold_60 RoundCondensedSemibold.ttf 60
27 RoundCondensedSemibold_72 RoundCondensedSemibold.ttf 72
28 RoundMedium_12 RoundMedium.ttf 12
29 RoundMedium_18 RoundMedium.ttf 18
30 RoundMedium_24 RoundMedium.ttf 24
31 RoundMedium_36 RoundMedium.ttf 36
32 RoundMedium_48 RoundMedium.ttf 48
33 RoundMedium_60 RoundMedium.ttf 60
34 RoundMedium_72 RoundMedium.ttf 72
35 RoundSemibold_12 RoundSemibold.ttf 12
36 RoundSemibold_18 RoundSemibold.ttf 18
37 RoundSemibold_24 RoundSemibold.ttf 24
38 RoundSemibold_36 RoundSemibold.ttf 36
39 RoundSemibold_48 RoundSemibold.ttf 48
40 RoundSemibold_60 RoundSemibold.ttf 60
41 RoundSemibold_72 RoundSemibold.ttf 72
Item Maximum can be created for each screen
Text Area 20
Large Button 8
Medium Button 16
Invisible Button 16
Numeric Entry 1
Ethernet Setting 1
Led widget 1
image 20
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_clearAllLines ( string  ident = "")

Clear LCD Display

Clears all lines of the LCD Display.

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
static RETURN_CODE IDTechSDK.IDT_NEO2.lcd_clearDisplay ( string  ident = "")
static

Clear Display

Command to clear the display screen on the reader.It returns the display to the currently defined background color and terminates all events

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_clearScreenInfo ( string  ident = "")

Clear Screen Info

Clear all current screen information in RAM and flash. And then show'power-on screen'

Parameters
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_cloneScreen ( string  screenName,
string  cloneName,
ref UInt16  cloneID,
string  ident = "" 
)

Clone Screen

Clones an existing screen.

Parameters
screenIDScreen number to clone.
cloneIDScreen ID of the cloned screen
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_createScreen ( string  screenName,
ref UInt16  screenID,
string  ident = "" 
)

Create Screen

Creates a new screen.

Parameters
screenNameScreen name to use.
screenIDScreen ID that was created.
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_destroyScreen ( string  screenName,
string  ident = "" 
)

Destroy Screen

Destroys a previously created inactive screen. The screen cannot be active

Parameters
screenNameScreen name to destroy. The screen number is assigned with lcd_createScreen.
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_displayMessage ( int  lineNumber,
string  message,
string  ident = "" 
)

Display Message on Line

Displays a message on a display line. 16 characters per line. You can display up to 32 characters for line 1, and it will flow to line 2, or you can display up to 16 characters on just line 2

Parameters
lineNumberLine number to display message on (1 or 2, string ident = "")
messageMessage to display
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_getActiveScreen ( ref string  screenName,
string  ident = "" 
)

Get Active Screen

Returns the active screen ID.

Parameters
screenNameScreen name this is active.
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_getAllObjects ( string  screenName,
ref byte  objectNumbers,
ref Dictionary< UInt16, string >  returnObjects,
string  ident = "" 
)

Get All Objects on Screen

Get all created objects' name on certain screen

Parameters
objectNumbersNumber of created objects
returnObjectsDictionary all created objects -key ID of a created screen -value Name of a created screen
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_getAllScreens ( ref byte  screenNumbers,
ref Dictionary< UInt16, string >  returnScreens,
string  ident = "" 
)

Get All Screens

Get all created screens' name

Parameters
screenNumbersNumber of created screens
returnScreensDictionary all created screens -key ID of a created screen -value Name of a created screen
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_getAudioVolume ( ref int  volume,
string  ident = "" 
)

Get Audio Volume

Returns playback volume as represented by an integer

Parameters
volumeValue 0-20, where 0 is silent and 20 is full volume
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_getButtonEvent ( ref UInt16  screenID,
ref UInt16  objectID,
ref string  screenName,
ref string  objectName,
ref bool  isLongPress,
string  ident = "" 
)

Get Button Event

Reports back the ID of the button that encountered a click event after the last Get Button Event.

Parameters
screenIDScreen ID of the last clicked button
objectIDButton ID of the last clicked button
screenNameScreen Name of the last clicked button
objectNameButton Name of the last clicked button
isLongPressTRUE = Long Press, FALSE = Short Press
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_linkUIWithTransactionMessageId ( byte  messageID,
string  screenName,
string  ident = "" 
)

Link UI with Transaction Message ID

Link an existing Customer UI ID with a specified transaction message ID. During transaction, the linked System UI will be replaced by the linked Customer UI

Parameters
messageIDTransaction Message ID: Refer to Doc “EMV Display Message ID Assignment” Selection by Customer
screenNameName of the screen (No longer than 31 characters)
Returns
RETURN_CODE: Values can be parsed with device_getIDGStatusCodeString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_loadScreenInfo ( string  ident = "")

Load Screen Info

Load all current screen information from RAM to flash

Parameters
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_playAudio ( string  name,
int  type,
string  ident = "" 
)

Play Audio

This command plays an audio file loaded from the inserted SD card. The VP6800 supports 16bit PCM format .WAV files.

Parameters
nameName of file on SD Card
type0 = Flash, 1 = SD Card
ipOptional IP Address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_queryObjectbyID ( UInt16  objectID,
ref byte  objectNumbers,
ref List< string >  returnItems,
string  ident = "" 
)

Queery Object by ID

Check if the given object exists or not. If exists, return all screen names which contains the object of the given object ID

Parameters
objectIDID of the checked object
objectNumberNumber of the checked object
returnItemsscreens containing the item
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_queryObjectbyName ( string  objectName,
ref byte  objectNumbers,
ref List< string >  returnItems,
string  ident = "" 
)

Queery Object by Name

Check if the given object exists or not. If exists, return all screen names which contains the object of the given object name

Parameters
objectNameName of the checked object
objectNumberNumber of the checked object
returnItemsList of all the screens that contain the object
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_queryScreenbyID ( UInt16  screenID,
ref byte  result,
ref string  screenName,
string  ident = "" 
)

Queery Screen by ID

Check if the given screen exists or not

Parameters
screenIDID of the checked screen
resultthe checking result
screenNameName of the checked screen
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_queryScreenbyName ( string  screenName,
ref byte  result,
string  ident = "" 
)

Queery Screen by Name

Check if the given screen exists or not

Parameters
screenNameName of the checked screen
resultthe checking result
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_removeItem ( string  screenName,
string  objectName,
string  ident = "" 
)

Removed Item

Removes a component.

Parameters
screenNameScreen name where to remove the target from.
objectNameIdentifier of the component
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
static void IDTechSDK.IDT_NEO2.lcd_retrieveMessage ( DisplayMessages.DISPLAY_MESSAGE_LANGUAGE  lang,
DisplayMessages.DISPLAY_MESSAGE_IDENTIFIER  id,
ref string  line1,
ref string  line2 
)
static

Retrieve LCD Message

Returns the string value for a message ID returned for LCD messaging

Parameters
langLanguage.
idMessage ID
line1Line 1 string value
line2Line 2 string value
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_setAudioVolume ( int  volume,
string  ident = "" 
)

Set Audio Volume

Sets the audio playback volume

Parameters
volumeValue 0-20, where 0 is silent and 20 is full volume
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_setBacklight ( bool  isBacklightOn,
byte  backlightVal,
string  ident = "" 
)

Set Backlight

Set backlight percentage. If the percent >100, it will be rejected. If percent < 10, backlight percent will be set to 10

Parameters
isBacklightOnTrue = ON, False = Off
backlightValBacklight percent value to be sat
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
void IDTechSDK.IDT_NEO2.lcd_setButtonCallback ( string  screenName,
string  buttonName,
buttonCallback  callback,
string  ip,
string  ident = "" 
)

Set Button Callback

Sets the callback for a button.

Parameters
screenNameScreen name where the button is located
buttonNameObject name of the button
callbackbuttonCallback to receive button presses. Passing NULL will return button presses to main messageCallback.
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")

NOTE ON BUTTON PRESS EVENTS: A button press consists of uInt16 specifying the screen, and uInt16 specifying the button ID If buttonnCallback is used, it will have the follow signature:
public delegate void buttonCallback(IDT_DEVICE_Types sender, UInt16 screenID, UInt16 itemID, string IP);
If buttonCallback is NULL, then the button presses will be passed to the messageCallback, with DeviceState.ButtonEvent, and data = data[0], data[1] = uInt16 screenID, and data[2], data[3] = uint16 buttonID

void IDTechSDK.IDT_NEO2.lcd_setPinCancelPromptCallback ( CancelPromptCallback  callback,
string  ident = "" 
)

Set Pin Cancel Prompt Callback

Sets the callback for the PIN Cancel Prompt Callback.

Parameters
callbackCancelPromptCallback
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")

Callback will have the follow signature:
public delegate void CancelPromptCallback(string ipAddress, ident);

void IDTechSDK.IDT_NEO2.lcd_setPinFailureCallback ( FailureCallback  callback,
string  ident = "" 
)

Set Pin Failure Callback

Sets the callback for the PIN Failure Callback.

Parameters
callbackFailureCallback
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")

Callback will have the follow signature:
public delegate void FailureCallback(string ipAddress, RETURN_CODE errorCode, ident);

void IDTechSDK.IDT_NEO2.lcd_setPinInputCallback ( SwipeCallback  callback,
string  ident = "" 
)

Set Pin Input Callback

Sets the callback for the PIN Input Callback.

Parameters
callbackSwipeCallback
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")

Callback will have the follow signature:
public delegate void SwipeCallback(string ipAddress, string input, ident);

void IDTechSDK.IDT_NEO2.lcd_setPinSwipeCallback ( SwipeCallback  callback,
string  ident = "" 
)

Set Pin Swipe Callback

Sets the callback for the PIN Swipe Callback.

Parameters
callbackSwipeCallback
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")

Callback will have the follow signature:
public delegate void InputCallback(string ipAddress, IDTTransactionData input, ident);

void IDTechSDK.IDT_NEO2.lcd_setPinTimeoutCallback ( TimeoutCallback  callback,
string  ident = "" 
)

Set Pin Timeout Callback

Sets the callback for the PIN Timeout Callback.

Parameters
callbackTimeoutCallback
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")

Callback will have the follow signature:
public delegate void TimeoutCallback(string ipAddress, ident);

RETURN_CODE IDTechSDK.IDT_NEO2.lcd_showScreen ( string  screenName,
string  ident = "" 
)

Show Screen

Displays and makes active a previously created screen.

Parameters
screenNameScreen to display. The screen name is defined with lcd_createScreen.
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_startCameraCapture ( ushort  timeout,
string  ident = "" 
)

Start Camera Capture

When the camera is turned on, a “take a picture” button appears on the display. If the button is pressed, the device takes a picture, which is stored in SD card and displayed on-screen for five seconds. The device stores a maximum of 20 pictures. Upon reaching capacity, the 21st picture replaces the 1st.

Parameters
iptimeout Timeout value. Minimum is 30 seconds (values under 30 seconds will default to 30 seconds, string ident = "")
ipOptional IP Address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_startScanQR ( ushort  timeout,
string  ident = "" 
)

Start QR Scanning

This command will enable the camera and attempt to scan a QR code. The data will be returned to the MessageCallback, with DeviceState.CameraEventData

Parameters
timeoutTimeout value. Passing a value of 0 defaults to 30 seconds
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_startScanQR_ext ( ushort  timeout,
ushort  xcord,
ushort  ycord,
ushort  width,
ushort  height,
string  ident = "" 
)

Start QR Scanning Extended

This command will enable the camera and attempt to scan a QR code. The data will be returned to the MessageCallback, with DeviceState.CameraEventData.

Parameters
timeoutTimeout value. Passing a value of 0 defaults to 30 seconds
xcordDisplay Window X Coordinate 0-271
ycordDisply Window Y Coordinate 0-479
widthDisplay Window Width 0-271
heightDisplay Window Height 0-479
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_startScreenSaver ( string  name,
string  ident = "" 
)

Start Screen Saver

The command starts the screen saver, which is disabled when the touchpad is touched, the customize screen is shown, or a transaction is started. The device reads the video from the inserted SD Card; the video format must be MJPEG with a maximum frame width of 480px and maximum frame height of 272px. Note that the video displays rotated +90 degrees.

Parameters
nameName of file on SD Card
ipOptional IP Address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_stopAudio ( string  ident = "")

Stop Audio

This command stop playing audio started with lcd_playAudio.

Parameters
ipOptional IP Address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_stopCameraCapture ( string  ident = "")

Stop Camera Capture

This command will stop the camera that started with lcd_startCameraCapture

Parameters
ipOptional IP Address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_stopScanQR ( string  ident = "")

Stop QR Scanning

This command will stop QR scanning that started with lcd_startScanQR

Parameters
ipOptional IP Address
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_storeScreenInfo ( string  ident = "")

Store Screen Info

Store all current screen information from RAM to flash

Parameters
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_updateColor ( string  screenName,
string  objectName,
byte[]  color,
string  ident = "" 
)

Update Color

Updates the component color, or updates the LED colors if specifying LCD component

Parameters
screenNameScreen name that will be the target of update color
objecNameIdentifier of the component
color
Non LCD Widget: Four bytes for color, example, Blue = 0xFF000000, Black = 0x00000000
  • Byte 0 = B
  • Byte 1 = G
  • Byte 2 = R
  • Byte 3 = Reserved LCD Widget: Four bytes for LED color, byte 0 = LED 0, byte 1 = LED 1, byte 2 = LED2, byte 3 = LED 3
  • Value 0 = LED OFF
  • Value 1 = LED Green
  • Value 2 = LED Yellow
  • Value 3 = LED Red
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_updateLabel ( string  screenName,
string  objectName,
string  label,
string  ident = "" 
)

Update Label

Updates the component label.

Parameters
screenNameScreen name that will be the target of update label
objectNameIdentifier of the component
labelLabel to show on the component
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_updatePosition ( string  screenName,
string  objectName,
byte  alignment,
UInt16  new_xCord,
UInt16  new_yCord,
string  ident = "" 
)

Update Position

Updates the component position.

Parameters
screenNameScreen Name that will be the target of update position
objectNameIdentifier of the component
alignmentAlignment for the target
  • 0 = Display object at the horizon center of specified y, while x ignored
  • 1 = Display object at specified x andy
  • 2 = Display object at center of screen, x, y are both ignored
  • 3 = Display object at left of the screen of specified y, while x ignored
  • 4 = Display object at right of the screen of specified y, while x ignored
new_xCordx-coordinate for Text, range 0-271
new_yCordy-coordinate for Text, range 0-479
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
static void IDTechSDK.IDT_NEO2.monitorNetworkForDevices ( bool  monitorON,
int  port = 0,
bool  authClient = false,
int  sendTimeout = 6000,
int  receiveTimeout = 6000 
)
static

Monitor for Network TLS Devices

Instructs SDK to attempt to automatically monitor and establish connections with incoming TCP/IP Devices

Parameters
monitorONTRUE = enable monitoring, FALSE = disable monitoring
portCan override the default port if necessary. TLS default = 1443, non-TLS = 1025
authClientTRUE = Authorize client certificates
sendTimeoutTimeout value for sending packets, in milliseconds. Default 6000ms
receiveTimeout value for receiving packets, in milliseconds. Default 6000ms

NOTE: The devices will report to the main callback connect/disconnect events

RETURN_CODE IDTechSDK.IDT_NEO2.msr_cancelMSRSwipe ( string  ident = "")

Disable MSR Swipe Cancels MSR swipe request.

Parameters
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.msr_getConfiguration ( ref byte[]  config,
string  ident = "" 
)

Set MSR Configuration

Gets msr configuration data.

Parameters
configConfiguration data to get
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.msr_getMSRTrack ( ref int  val,
string  ident = "" 
)

Gets the MSR tracks setting.

Parameters
valTrack Value:
  • 0 = Any Track
  • 1 = Track 1
  • 2 = Track 2
  • 3 = Track 1, Track 2
  • 4 = Track 3
  • 5 = Track 1, Track 3
  • 6 = Track 2, Track 3
  • 7 = Track 1, Track 2, Track 3
ipOptional IP parameter
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.msr_setConfiguration ( byte[]  config,
string  ident = "" 
)

Set MSR Configuration

Sets msr configuration data.

Parameters
configConfiguration data to send
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.msr_setMSRTrack ( int  val,
string  ip,
string  ident = "" 
)

Sets the MSR tracks to recognize. When "Any Track" is selected (0 - default value), an error condition will be returned if no tracks are read When specific tracks are selected (1 - 7), if any of the requested tracks are missing, it will return error.

Parameters
valTrack Value:
  • 0 = Any Track
  • 1 = Track 1
  • 2 = Track 2
  • 3 = Track 1, Track 2
  • 4 = Track 3
  • 5 = Track 1, Track 3
  • 6 = Track 2, Track 3
  • 7 = Track 1, Track 2, Track 3
ipOptional IP parameter
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.msr_startMSRSwipe ( int  timeout,
string  ident = "" 
)

Enable MSR Swipe

Enables MSR, waiting for swipe to occur.

Parameters
timeoutSwipe Timeout Value
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.msr_startMSRSwipe_ext ( int  timeout,
string  ident,
SwipeCallback  swipeCallback,
TimeoutCallback  timeoutCallback,
FailureCallback  failureCallback 
)

Enable MSR Swipe

Enables MSR, waiting for swipe to occur.

Parameters
timeoutSwipe Timeout Value
swipeCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData transactionData, string ident = "")
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode, string ident = "")
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.pin_cancelPINEntry ( string  ident = "")

Cancel PIN Entry

Cancel “Get Function Key” & “Get Encrypted PIN” & “Get Numeric” & “Get Amount”

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.pin_capturePin ( int  timeout,
int  type,
string  PAN,
int  minPIN,
int  maxPIN,
string  message,
string  ident = "" 
)

Capture PIN

Parameters
timeoutTimeout, in seconds. Value of 0 will use system timeout, if any
typePAN and Key Type
  • 00h = MKSK to encrypt PIN, Internal PAN (from MSR, string ident = "")
  • 01h = DUKPT to encrypt PIN, Internal PAN (from MSR, string ident = "")
  • 10h = MKSK to encrypt PIN, External Plaintext PAN
  • 11h = DUKPT to encrypt PIN, External Plaintext PAN
  • 20h = MKSK to encrypt PIN, External Ciphertext PAN
  • 21h = DUKPT to encrypt PIN, External Ciphertext PAN
PANPersonal Account Number (if internal, value is 0, string ident = "")
minPINMinimum PIN Length
maxPINMaximum PIN Length
messageLCD Message
identDevice ID to send command to. If not specified, current SDK default device will be used.

Results returned to MessageCallback. If successful PIN capture, data is returned as DeviceState.TransactionData, with IDTTransactionData cData.pin_pinblock and cData.pin_KSN. If timeout, returns DeviceState.PINTimeout If error, returns DeviceState.PINFail with one of the following values in data[0]:

  • 01h – Fail, Key Pad Cancel
  • 02h – Fail, External Command Cancel
  • 03h – Fail, Invalid input parameters
  • 04h – Fail, PAN error
  • 05h – Fail, PIN DUKPT Key is absent
  • 06h – Fail, PIN DUKPT Key is exhausted
  • 07h – Fail, Display message error
  • 0Ch – Fail, Operation Failed
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.pin_capturePin_ext ( int  timeout,
int  type,
string  PAN,
int  minPIN,
int  maxPIN,
string  message,
string  ident,
SwipeCallback  inputCallback,
FailureCallback  failureCallback,
TimeoutCallback  timeoutCallback,
CancelPromptCallback  cancelPromptCallback 
)

Capture PIN

Parameters
timeoutTimeout, in seconds. Value of 0 will use system timeout, if any
typePAN and Key Type
  • 00h = MKSK to encrypt PIN, Internal PAN (from MSR, string ident = "")
  • 01h = DUKPT to encrypt PIN, Internal PAN (from MSR, string ident = "")
  • 10h = MKSK to encrypt PIN, External Plaintext PAN
  • 11h = DUKPT to encrypt PIN, External Plaintext PAN
  • 20h = MKSK to encrypt PIN, External Ciphertext PAN
  • 21h = DUKPT to encrypt PIN, External Ciphertext PAN
PANPersonal Account Number (if internal, value is 0, string ident = "")
minPINMinimum PIN Length
maxPINMaximum PIN Length
messageLCD Message
identDevice address to execute command on Results returned to MessageCallback. If successful PIN capture, data is returned as DeviceState.TransactionData, with IDTTransactionData cData.pin_pinblock and cData.pin_KSN. If timeout, returns DeviceState.PINTimeout If error, returns DeviceState.PINFail with one of the following values in data[0]:
  • 01h – Fail, Key Pad Cancel
  • 02h – Fail, External Command Cancel
  • 03h – Fail, Invalid input parameters
  • 04h – Fail, PAN error
  • 05h – Fail, PIN DUKPT Key is absent
  • 06h – Fail, PIN DUKPT Key is exhausted
  • 07h – Fail, Display message error
  • 0Ch – Fail, Operation Failed
inputCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData input, ident);
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode, string ident = "")
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress, string ident = "")
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.pin_capturePinExt ( int  timeout,
int  type,
string  PAN,
int  minPIN,
int  maxPIN,
string  message1,
string  message2,
string  verify1,
string  verify2,
string  ident = "" 
)
  • Capture PIN

  

Parameters
timeout180 seconds for first pin, or 360 seconds for first pin + verify pin   
typePAN and Key Type
  • 00h: MKSK to encrypt PIN, Internal PAN (from MSR or Manual PAN Entry or Contactless EMV Transaction)
  • 01h: DUKPT to encrypt PIN, Internal PAN (from MSR or Manual PAN Entry or Contactless EMV Transaction)
  • 10h: MKSK to encrypt PIN, External Plaintext PAN
  • 11h:  DUKPT to encrypt PIN, External Plaintext PAN
  • 20h: MKSK to encrypt PIN, External Ciphertext PAN (for PIN pad only)
  • 21h:  DUKPT to encrypt PIN, External Ciphertext PAN (for PIN pad only)
  • 80h:  MKSK to encrypt PIN, Internal PAN, Verify PIN (from MSR or Manual PAN Entry or Contactless EMV Transaction)
  • 81h:  DUKPT to encrypt PIN, Internal PAN, Verify PIN (from MSR or Manual PAN Entry or Contactless EMV Transaction)
  • 90h: MKSK to encrypt PIN, External Plaintext PAN, Verify PIN
  • 91h: DUKPT to encrypt PIN, External Plaintext PAN, Verify PIN
PANPersonal Account Number (if internal, value is 0)
PANLenLength of PAN
minPINMinimum PIN Length
maxPINMaximum PIN Length
message1First line LCD message, up to 16 characters. If null it will display default msg “PLEASE ENTER PIN”
message2Second line LCD message, up to 16 characters. message1 must not be null.
verify1First line LCD verification message, up to 16 characters. If null it will display default msg "ENTER PIN AGAIN"
verify2Second line LCD verification message, up to 16 characters. verify1 must not be null.
identDevice ID to send command to. If not specified, current SDK default device will be used.

Results returned to MessageCallback. If successful PIN capture, data is returned as DeviceState.TransactionData, with IDTTransactionData cData.pin_pinblock and cData.pin_KSN. If timeout, returns DeviceState.PINTimeout If error, returns DeviceState.PINFail with one of the following values in data[0]:

  • 01h – Fail, Key Pad Cancel
  • 02h – Fail, External Command Cancel
  • 03h – Fail, Invalid input parameters
  • 04h – Fail, PAN error
  • 05h – Fail, PIN DUKPT Key is absent
  • 06h – Fail, PIN DUKPT Key is exhausted
  • 07h – Fail, Display message error
  • 0Ch – Fail, Operation Failed
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.pin_getFunctionKey ( int  timeout,
string  ident = "" 
)

Get Function Key

Results returned to MessageCallback. If successful function key capture, data is returned as DeviceState.FunctionKey, with data being the ASCII value of the key that was pressed.

@param timeout Timeout, in seconds. Value of 0 will use system timeout, if any
@param ip Optional: IP address to execute command on (for IP connected devices, string ident = "")
Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()g
RETURN_CODE IDTechSDK.IDT_NEO2.pin_getFunctionKey_ext ( int  timeout,
string  ip,
SwipeCallback  inputCallback,
FailureCallback  failureCallback,
TimeoutCallback  timeoutCallback,
CancelPromptCallback  cancelPromptCallback 
)

Get Function Key

Results returned to MessageCallback. If successful function key capture, data is returned as DeviceState.FunctionKey, with data being the ASCII value of the key that was pressed.

@param timeout Timeout, in seconds. Value of 0 will use system timeout, if any
@param ip  IP address to execute command on (for IP connected devices, string ident = "")
Parameters
inputCallbackRedirects the input from main callback to InputCallback(string ipAddress, IDTTranasctionData input, ident);
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode, string ident = "")
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress, string ident = "")
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress, string ident = "")
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()g
RETURN_CODE IDTechSDK.IDT_NEO2.pin_getPanEntry ( bool  csc,
bool  expDate,
bool  ADR,
bool  ZIP,
bool  mod10,
UInt16  timeout,
bool  encPANOnly = false,
string  ident = "" 
)

Get Pan

prompt the user to manually enter a card PAN and Expiry Date (and optionally CSC) from the keypad and return it to the POS.

Parameters
timeoutNumber of seconds that the reader waits for the data entry session to complete, stored as a big-endian number. 0 = no timeout
cscRequest CSS
expDateRequest Expiration Date
ADRRequest Address
ZIPRequest Zip
mod10Validate entered PAN passes MOD-10 checking before accepting
encPANOnlyOutput only encrypted PAN
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
swipeCallbackOptional: Redirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData transactionData, string ident = "")
timeoutCallbackOptional: Redirects the input from main callback to TimeoutCallback(string ipAddress, string ident = "")
cancelPromptCallbackOptional: Redirects the input from main callback to CancelPromptCallback(string ipAddress, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.pin_getPanEntry_ext ( bool  csc,
bool  expDate,
bool  ADR,
bool  ZIP,
bool  mod10,
UInt16  timeout,
bool  encPANOnly,
string  ip,
SwipeCallback  swipeCallback,
TimeoutCallback  timeoutCallback,
CancelPromptCallback  cancelPromptCallback 
)

Get Pan

prompt the user to manually enter a card PAN and Expiry Date (and optionally CSC) from the keypad and return it to the POS.

Parameters
timeoutNumber of seconds that the reader waits for the data entry session to complete, stored as a big-endian number. 0 = no timeout
cscRequest CSS
expDateRequest Expiration Date
ADRRequest Address
ZIPRequest Zip
mod10Validate entered PAN passes MOD-10 checking before accepting
encPANOnlyOutput only encrypted PAN
ipIP address to execute command on (for IP connected devices, string ident = "")
swipeCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData transactionData, string ident = "")
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress, string ident = "")
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress, string ident = "")
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.pin_promptForAmount ( int  timeout,
int  minLen,
int  maxLen,
string  message,
byte[]  signature,
string  ident = "" 
)

Capture Amount

Parameters
timeoutTimeout, in seconds. Value of 0 will use system timeout, if any
minLenMinimum input Length
maxLenMaximum input Length
messageLCD Message
signatureDisplay message signed by Numeric Private Key using RSAPSS algorithm:
  1. Calculate 32 bytes Hash for “<Display Flag><Key max="" length>="">< Key Min Length><Plaintext display="" message>="">”
  2. Using RSAPSS algorithm calculate the Hash to be 256 bytes Raw Data
  3. Using Numeric Private Key to sign the Raw Data to be 256 bytes signature
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.pin_promptForAmount_ext ( int  timeout,
int  minLen,
int  maxLen,
string  message,
byte[]  signature,
string  ident,
SwipeCallback  inputCallback,
FailureCallback  failureCallback,
TimeoutCallback  timeoutCallback,
CancelPromptCallback  cancelPromptCallback 
)

Capture Amount

Parameters
timeoutTimeout, in seconds. Value of 0 will use system timeout, if any
minLenMinimum input Length
maxLenMaximum input Length
messageLCD Message
signatureDisplay message signed by Numeric Private Key using RSAPSS algorithm:
  1. Calculate 32 bytes Hash for “<Display Flag><Key max="" length>="">< Key Min Length><Plaintext display="" message>="">”
  2. Using RSAPSS algorithm calculate the Hash to be 256 bytes Raw Data
  3. Using Numeric Private Key to sign the Raw Data to be 256 bytes signature
identDevice address to execute command on (for IP connected devices, string ident = "")
inputCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData input, ident);
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode, string ident = "")
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress, string ident = "")
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.pin_promptForInput ( int  messageID,
short  timeout,
string  ip = null,
string  ident = "" 
)

Capture Numeric Input From Message ID

Parameters
messageIDMessage ID
  • 01 = "Please Swipe Or Key Employee ID", delayed masking, enable MSR, min len = 1, max len = 16
timeoutTimeout, in seconds. Value of 0 will use system timeout, if any
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.pin_promptForInput_ext ( int  messageID,
short  timeout,
string  ident,
SwipeCallback  inputCallback,
SwipeCallback  swipeCallback,
FailureCallback  failureCallback,
TimeoutCallback  timeoutCallback,
CancelPromptCallback  cancelPromptCallback 
)

Capture Numeric Input From Message ID

Parameters
messageIDMessage ID
  • 01 = "Please Swipe Or Key Employee ID", delayed masking, enable MSR, min len = 1, max len = 16
timeoutTimeout, in seconds. Value of 0 will use system timeout, if any
identDevice address to execute command on (for IP connected devices, string ident = "")
inputCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData input, ident);
swipeCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData transactionData, string ident = "")
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode, string ident = "")
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress, string ident = "")
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.pin_promptForNumericKeyWithSwipe ( short  timeout,
byte  function,
int  minLen,
int  maxLen,
string  line1,
string  line2,
byte[]  signature,
string  ident = "" 
)

Capture Numeric Input

@param timeout Timeout, in seconds. Value of 0 will use system timeout, if any
Parameters
function
  • 0x00 = Plaintext Input
  • 0x01 = Masked Input
  • 0x02 = Delayed Masking Input
  • 0x10 = Plaintext Input + MSR Active
  • 0x11 = Masked Input + MSR Active
  • 0x12 = Delayed Masking Input + MSR Active
minLenMinimum input Length
maxLenMaximum input Length
line1Line 1 of LCD Message - 16 chars max
line2Line 2 of LCD Message - 16 chars max
signatureDisplay message signed by Numeric Private Key using RSAPSS algorithm:
  1. Calculate 32 bytes Hash for “<Display Flag><Key max="" length>="">< Key Min Length><Plaintext display="" message>="">”
  2. Using RSAPSS algorithm calculate the Hash to be 256 bytes Raw Data
  3. Using Numeric Private Key to sign the Raw Data to be 256 bytes signature
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.pin_promptForNumericKeyWithSwipe_ext ( short  timeout,
byte  function,
int  minLen,
int  maxLen,
string  line1,
string  line2,
byte[]  signature,
string  ident,
SwipeCallback  inputCallback,
SwipeCallback  swipeCallback,
FailureCallback  failureCallback,
TimeoutCallback  timeoutCallback,
CancelPromptCallback  cancelPromptCallback 
)

Capture Numeric Input

@param timeout Timeout, in seconds. Value of 0 will use system timeout, if any
Parameters
function
  • 0x00 = Plaintext Input
  • 0x01 = Masked Input
  • 0x02 = Delayed Masking Input
  • 0x10 = Plaintext Input + MSR Active
  • 0x11 = Masked Input + MSR Active
  • 0x12 = Delayed Masking Input + MSR Active
minLenMinimum input Length
maxLenMaximum input Length
line1Line 1 of LCD Message - 16 chars max
line2Line 2 of LCD Message - 16 chars max
signatureDisplay message signed by Numeric Private Key using RSAPSS algorithm:
  1. Calculate 32 bytes Hash for “<Display Flag><Key max="" length>="">< Key Min Length><Plaintext display="" message>="">”
  2. Using RSAPSS algorithm calculate the Hash to be 256 bytes Raw Data
  3. Using Numeric Private Key to sign the Raw Data to be 256 bytes signature
ident: Device address to execute command on (for IP connected devices, string ident = "")
inputCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData input, ident);
swipeCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData transactionData, string ident = "")
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode, string ident = "")
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress)p
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_NEO2.pin_sendBeep ( string  ident = "")

Send Beep

Executes a beep request.

Parameters
ipOptional: IP address to execute command on (for IP connected devices, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
static String IDTechSDK.IDT_NEO2.SDK_Version ( )
static

SDK Version

  • All Devices

Returns the current version of SDK

Returns
Framework version
static void IDTechSDK.IDT_NEO2.setCallback ( CallBack  my_Callback)
static

Set Callback

Sets the class callback
static void IDTechSDK.IDT_NEO2.setCallback ( IntPtr  my_Callback,
SynchronizationContext  context 
)
static

Set Callback

Sets the class callback

Parameters
my_CallbackThe callback function to receive the response message from device. defined as follows. public unsafe delegate void MFCCallBack(Parameters parameters, ident);
contextThe context of the UI thread
static void IDTechSDK.IDT_NEO2.setCallbackIP ( CallBackIP  my_Callback,
string  ident = "" 
)
static

Set Callback with IP

Sets the class callback that also reports back IP device information (for network connected devices, string ident = "")

Parameters
my_CallbackThe callback function to receive the response message from device. defined as follows. public delegate void CallBackIP(IDT_DEVICE_Types sender, DeviceState state, byte[] data, IDTTransactionData card, EMV_Callback emvCallback, RETURN_CODE transactionResultCode, string IP, ident);
ipOptional: The callback function will only be applicable to the provided IP.
static void IDTechSDK.IDT_NEO2.setCommandTimeout ( int  milliseconds,
string  ident = "" 
)
static

Set Command Timeout

Sets the default timeout (in milliseconds) waiting for a blocking command response

Parameters
millisecondsTime
static void IDTechSDK.IDT_NEO2.setLongPressCallback ( longPressCallback  callback,
string  ident = "" 
)
static

Set Longpress Callback

Sets the class callback that also reports back IP device information (for network connected devices, string ident = "")

Parameters
callbackThe callback function to receive the response message from device. defined as follows. Location 0 = top left, Location 1 = top right. public delegate void longPressCallback(IDT_DEVICE_Types sender, UInt16 screenID, byte location, string IP, ident);
ipOptional: The callback function will only be applicable to the provided IP.
static bool IDTechSDK.IDT_NEO2.useSerialPort ( int  port)
static

Use Serial Port Interface

Instructs SDK to attempt to use the Serial Port for communication with IDT_NEO2 using default baud rate

Parameters
portSerial Port to use. Example COM1 = 1.
Returns
bool TRUE=successful, FALSE=failure
static bool IDTechSDK.IDT_NEO2.useSerialPort ( int  port,
int  baud 
)
static

Use Serial Port Interface with baud rate

Instructs SDK to attempt to use the Serial Port for communication with IDT_NEO2

Parameters
portSerial Port to use. Example COM1 = 1.
baudBaud rate to override default. Example 115200;
Returns
bool TRUE=successful, FALSE=failure
static bool IDTechSDK.IDT_NEO2.useSerialPortLinux ( string  path)
static

Use Serial Port Interface on Linux

Instructs SDK to attempt to use the Serial Port for communication with BTMag using default baud rate on Linux implementations

Parameters
pathPath to use. Example /dev/ttyUSB*
Returns
bool TRUE=successful, FALSE=failure
static bool IDTechSDK.IDT_NEO2.useSerialPortLinux ( string  path,
int  baud 
)
static

Use Serial Port Interface on Linux with baud rate

Instructs SDK to attempt to use the Serial Port for communication with BTPay on Linux implementations

Parameters
pathPath to use. Example /dev/ttyUSB*
baudBaud rate to override default. Example 115200;
Returns
bool TRUE=successful, FALSE=failure

Property Documentation

IDT_NEO2 IDTechSDK.IDT_NEO2.SharedController
staticget

Singleton Instance

Establishes an singleton instance of IDT_NEO2 class.

Returns
Instance of IDT_NEO2

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