IDTech Windows SDK Guide  1.2.177.4
API reference for NEO2
IDTechSDK.IDT_NEO2 Class Reference

Public Member Functions

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_getBatteryVoltage (ref string voltage)
 
RETURN_CODE config_getSerialNumber (ref string response, string ip="")
 
RETURN_CODE device_terminalInfo (ref byte[] tlv)
 
RETURN_CODE config_setWhiteList (byte[] data, string ip="")
 
RETURN_CODE config_setTrackFormat (byte option, string ip="")
 
RETURN_CODE config_getTrackFormat (ref byte option, string ip="")
 
RETURN_CODE config_setMasking (byte prePAN, byte postPAN, byte asciiMask, byte hexMask, bool maskExp, string ip="")
 
RETURN_CODE config_getMasking (ref byte prePAN, ref byte postPAN, ref byte asciiMask, ref byte hexMask, ref bool maskExp, string ip="")
 
RETURN_CODE config_getWhiteList (ref Dictionary< string, string > data, string ip="")
 
RETURN_CODE config_getWiFiMACAddress (ref byte[] address, string ip="")
 
RETURN_CODE config_getBLEMACAddress (ref byte[] address, string ip="")
 
RETURN_CODE config_getEthernetMACAddress (ref byte[] address, string ip="")
 
RETURN_CODE config_getNetworkConfiguration (ref bool isStatic, ref string address, ref string subnet, ref string gateway, ref string dns)
 
RETURN_CODE device_getDeviceTime (ref DateTime time, string ip="")
 
RETURN_CODE config_setBluetoothParameters (string name, string oldPW, string newPW)
 
RETURN_CODE config_setSwipeandDone (byte swipeVal, byte doneVal, byte delay)
 
RETURN_CODE config_getSwipeandDone (ref byte swipeVal, ref byte doneVal, ref byte delay)
 
RETURN_CODE device_disBlueLED ()
 
RETURN_CODE device_enaBlueLED (byte[] dataCmd)
 
RETURN_CODE device_onYellowLED ()
 
RETURN_CODE device_offYellowLED ()
 
RETURN_CODE device_buzzerOnOff ()
 
RETURN_CODE device_getLightSensorVal (ref UInt16 lightVal, string ip="")
 
RETURN_CODE device_setSelfCheckTime (byte hour, byte minutes, string ip="")
 
RETURN_CODE device_logRead (DeviceLogCallback callback, string ip="")
 
RETURN_CODE device_logClear (string ip="")
 
RETURN_CODE device_logEnable (bool enable, string ip="")
 
RETURN_CODE device_extendedErrorCondition (bool enable, string ip="")
 
RETURN_CODE device_getSelfCheckTime (ref byte hour, ref byte minutes, string ip="")
 
RETURN_CODE config_setNetworkConfiguration (bool isStatic, string address, string subnet, string gateway, string dns)
 
RETURN_CODE config_setWifiConfig (string mode, string ssid, string password, string ip, string netMask, string gateway)
 
RETURN_CODE config_getWifiConfig (ref byte mode, ref string ssid, ref string password, ref string ip, ref string netMask, ref string gateway)
 
RETURN_CODE device_getFirmwareVersion (ref string response, string ip="")
 
RETURN_CODE device_getBootloaderVersion (ref string response, string ip="")
 
RETURN_CODE config_setWirelessWorkMode (string mode)
 
RETURN_CODE config_getWirelessWorkMode (ref byte mode)
 
RETURN_CODE device_getRT1050FirmwareVersion (ref string response, string ip="")
 
RETURN_CODE device_sendPAE (string command, ref string response, int timeout, string ip="")
 
RETURN_CODE device_setTransArmorEncryption (byte[] cert)
 
RETURN_CODE device_getTransArmorID (ref string TID)
 
RETURN_CODE device_setTransArmorID (string TID)
 
RETURN_CODE device_retrieveAIDList (ref byte[][] response)
 
RETURN_CODE device_rebootDevice (string ip="")
 
RETURN_CODE device_sendDataCommand (string cmd, bool calcLRC, ref byte[] response, string ip="")
 
RETURN_CODE device_sendDataCommand_ext (string cmd, bool calcLRC, ref byte[] response, int timeout, bool noResponse, string ip="")
 
RETURN_CODE msr_setMSRTrack (int val, string ip)
 
RETURN_CODE msr_getMSRTrack (ref int val, string ip)
 
RETURN_CODE msr_startMSRSwipe (int timeout, string ip="")
 
RETURN_CODE msr_startMSRSwipe (int timeout, string ip, SwipeCallback swipeCallback, TimeoutCallback timeoutCallback, FailureCallback failureCallback)
 
RETURN_CODE msr_cancelMSRSwipe (string ip="")
 
RETURN_CODE emv_cancelTransaction ()
 
RETURN_CODE ctls_cancelTransaction (string ip="")
 
RETURN_CODE emv_startTransaction (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, bool forceOnline, bool isFastEMV=false)
 
RETURN_CODE emv_activateTransaction (int timeout, byte[] tags, bool forceOnline, bool isFastEMV=false)
 
RETURN_CODE emv_authenticateTransaction (byte[] updatedTLV)
 
RETURN_CODE ctls_startTransaction (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, bool forceOnline, bool isFastEMV=false)
 
RETURN_CODE ctls_activateTransaction (int timeout, byte[] tags, bool forceOnline, bool isFastEMV=false)
 
RETURN_CODE ctls_updateBalance (byte statusCode, byte[] authCode, byte[] date, byte[] time)
 
RETURN_CODE device_startTransaction (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, bool isFastEMV=false, string ip="")
 
RETURN_CODE device_activateTransaction (int timeout, byte[] tags, bool isFastEMV=false)
 
RETURN_CODE emv_completeTransaction (bool commError, byte[] authCode, byte[] iad, byte[] tlvScripts, byte[] tlv)
 
RETURN_CODE emv_callbackResponseLCD (EMV_LCD_DISPLAY_MODE type, byte selection)
 
RETURN_CODE emv_callbackResponsePIN (EMV_PIN_MODE type, byte[] KSN, byte[] PIN)
 
RETURN_CODE emv_callbackResponseMSR (byte[] MSR)
 
RETURN_CODE emv_getEMVKernelCheckValue (ref string response)
 
RETURN_CODE emv_getEMVConfigurationCheckValue (ref string response)
 
RETURN_CODE emv_getEMVKernelVersion (ref string response)
 
RETURN_CODE emv_retrieveTransactionResult (byte[] tags, ref IDTTransactionData tlv)
 
RETURN_CODE emv_removeApplicationData (byte[] AID)
 
RETURN_CODE ctls_removeApplicationData (byte[] AID)
 
RETURN_CODE emv_removeAllApplicationData ()
 
RETURN_CODE emv_removeCAPK (byte[] capk)
 
RETURN_CODE ctls_removeCAPK (byte[] capk)
 
RETURN_CODE emv_removeAllCAPK ()
 
RETURN_CODE ctls_removeAllCAPK ()
 
RETURN_CODE emv_removeCRL (byte[] crlList)
 
RETURN_CODE emv_removeAllCRL ()
 
RETURN_CODE emv_retrieveApplicationData (byte[] AID, ref byte[] tlv)
 
RETURN_CODE ctls_retrieveApplicationData (byte[] AID, ref byte[] tlv)
 
RETURN_CODE emv_retrieveAIDList (ref byte[][] response)
 
RETURN_CODE ctls_retrieveAIDList (ref byte[][] response)
 
RETURN_CODE emv_retrieveCAPK (byte[] capk, ref byte[] key)
 
RETURN_CODE ctls_retrieveCAPK (byte[] capk, ref byte[] key)
 
RETURN_CODE emv_retrieveCAPKList (ref byte[] keys)
 
RETURN_CODE ctls_retrieveCAPKList (ref byte[] keys)
 
RETURN_CODE emv_retrieveCRLList (ref byte[] list)
 
RETURN_CODE ctls_retrieveTerminalData (ref byte[] tlv)
 
RETURN_CODE device_retrieveTerminalData (ref byte[] tlv)
 
RETURN_CODE emv_retrieveTerminalData (ref byte[] tlv)
 
RETURN_CODE emv_removeTerminalData ()
 
RETURN_CODE emv_setApplicationData (byte[] name, byte[] tlv)
 
RETURN_CODE emv_setApplicationData (byte[] tlv)
 
RETURN_CODE ctls_setApplicationData (byte[] tlv)
 
RETURN_CODE ctls_setDefaultConfiguration ()
 
RETURN_CODE ctls_setConfigurationGroup (byte[] tlv)
 
RETURN_CODE emv_setCAPK (byte[] key)
 
RETURN_CODE ctls_setCAPK (byte[] key)
 
RETURN_CODE emv_setCRL (byte[] list)
 
RETURN_CODE emv_setTerminalData (byte[] tlv)
 
RETURN_CODE ctls_setTerminalData (byte[] tlv)
 
RETURN_CODE device_setTerminalData (byte[] tlv)
 
RETURN_CODE device_sendVivoCommandP3 (byte command, byte subCommand, byte[] data, ref byte[] response, string ip="")
 
RETURN_CODE device_sendVivoCommandP3_ext (byte command, byte subCommand, byte[] data, ref byte[] response, int timeout, bool noResponse, string ip="")
 
RETURN_CODE device_sendVivoCommandP4 (byte command, byte subCommand, byte[] data, ref byte[] response, string ip="")
 
RETURN_CODE device_sendVivoCommandP4_ext (byte command, byte subCommand, byte[] data, ref byte[] response, int timeout, bool noResponse, string ip="")
 
RETURN_CODE emv_setTerminalMajorConfiguration (int configuration)
 
RETURN_CODE emv_getTerminalMajorConfiguration (ref int configuration)
 
RETURN_CODE device_lowPowerMode (bool stopMode, bool wakeOnTrans)
 
RETURN_CODE device_pingDevice (string ip="")
 
RETURN_CODE device_buzzer ()
 
RETURN_CODE device_cancelTransaction ()
 
RETURN_CODE device_resetTransaction ()
 
RETURN_CODE device_controlLED (byte indexLED, byte control, string ip="")
 
RETURN_CODE device_getProductType (ref byte[] type)
 
RETURN_CODE device_getProcessorType (ref byte[] type)
 
RETURN_CODE getHardwareInfor (ref string ascii)
 
RETURN_CODE getUIDofMCU (ref string uid)
 
RETURN_CODE getModuleVer (ref string moduleVer)
 
RETURN_CODE getUsbBootLoader (ref string bootLoader)
 
RETURN_CODE getRemoteKeyInjectionTO (ref int timeout)
 
RETURN_CODE getCashTranRiskPara (ref byte[] tlv)
 
RETURN_CODE getDrlReaderRiskPara (byte index, ref byte[] tlv)
 
RETURN_CODE getMsrSecurePar (bool b0, bool b1, bool b2, bool b3, ref byte[] tlv)
 
RETURN_CODE getWhiteList (ref byte[] list)
 
RETURN_CODE emv_resetConfigurationGroup (int group)
 
RETURN_CODE device_getMerchantRecord (int index, ref byte[] record)
 
RETURN_CODE device_resetConfigurationGroup (int group)
 
RETURN_CODE ctls_resetConfigurationGroup (int group)
 
RETURN_CODE device_controlUserInterface (byte[] values)
 
RETURN_CODE device_sendVivoCommandP2 (byte command, byte subCommand, byte[] data, ref byte[] response, string ip="")
 
RETURN_CODE device_sendVivoCommandP2_ext (byte command, byte subCommand, byte[] data, ref byte[] response, int timeout, bool noResponse, string ip="")
 
RETURN_CODE device_SymmetricRKI (int type, string ip="")
 
RETURN_CODE ctls_getConfigurationGroup (int group, ref byte[] tlv)
 
RETURN_CODE ctls_removeConfigurationGroup (int group)
 
RETURN_CODE ctls_getAllConfigurationGroups (ref byte[][] response)
 
RETURN_CODE device_setBurstMode (byte mode)
 
RETURN_CODE device_setPollMode (byte mode)
 
RETURN_CODE device_setMerchantRecord (int index, bool enabled, string merchantID, string merchantURL)
 
RETURN_CODE device_startRKI (bool isTest, string ip="")
 
RETURN_CODE device_updateFirmwareType (string path, FIRMWARE_TYPE type, FirmwareUpdateCallback callback, string ip)
 
RETURN_CODE device_updateFirmwareIP (string path, int type, FirmwareUpdateCallback callback, string ip)
 
RETURN_CODE icc_getICCReaderStatus (ref byte status)
 
RETURN_CODE icc_powerOffICC ()
 
RETURN_CODE icc_powerOnICC (ref byte[] ATR, byte interfaces)
 
RETURN_CODE icc_exchangeAPDU (string c_APDU, ref byte[] response)
 
RETURN_CODE lcd_displayMessage (int lineNumber, string message)
 
RETURN_CODE lcd_clearAllLines ()
 
RETURN_CODE lcd_showScreen (string screenName, string ip="")
 
RETURN_CODE lcd_createScreen (string screenName, ref UInt16 screenID, string ip="")
 
RETURN_CODE lcd_cloneScreen (string screenName, string cloneName, ref UInt16 cloneID, string ip="")
 
RETURN_CODE lcd_destroyScreen (string screenName, string ip="")
 
RETURN_CODE lcd_getActiveScreen (ref string screenName, string ip="")
 
RETURN_CODE lcd_getButtonEvent (ref UInt16 screenID, ref UInt16 objectID, ref string screenName, ref string objectName, ref bool isLongPress, string ip="")
 
RETURN_CODE lcd_addButton (string screenName, string buttonName, byte type, byte alignment, UInt16 xCord, UInt16 yCord, string label, ref lcdItem returnItem, buttonCallback callback, string ip="")
 
RETURN_CODE lcd_addEthernet (string screenName, string objectName, byte alignment, UInt16 xCord, UInt16 yCord, ref lcdItem returnItem, string ip)
 
RETURN_CODE lcd_addLED (string screenName, string objectName, byte alignment, UInt16 xCord, UInt16 yCord, ref lcdItem returnItem, byte[] LED, string ip="")
 
RETURN_CODE lcd_addImage (string screenName, string objectName, byte alignment, UInt16 xCord, UInt16 yCord, string filename, ref lcdItem returnItem, string ip="")
 
void lcd_setButtonCallback (string screenName, string buttonName, buttonCallback callback, string ip)
 
void lcd_setPinInputCallback (SwipeCallback callback, string ip="")
 
RETURN_CODE device_enterStandbyMode (string ip="")
 
void lcd_setPinSwipeCallback (SwipeCallback callback, string ip="")
 
void lcd_setPinFailureCallback (FailureCallback callback, string ip="")
 
void lcd_setPinTimeoutCallback (TimeoutCallback callback, string ip="")
 
void lcd_setPinCancelPromptCallback (CancelPromptCallback callback, string ip="")
 
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 ip="")
 
RETURN_CODE lcd_updateLabel (string screenName, string objectName, string label, string ip="")
 
RETURN_CODE lcd_updateColor (string screenName, string objectName, byte[] color, string ip="")
 
RETURN_CODE lcd_updatePosition (string screenName, string objectName, byte alignment, UInt16 new_xCord, UInt16 new_yCord, string ip="")
 
RETURN_CODE lcd_removeItem (string screenName, string objectName, string ip="")
 
RETURN_CODE lcd_storeScreenInfo (string ip="")
 
RETURN_CODE lcd_loadScreenInfo (string ip="")
 
RETURN_CODE lcd_clearScreenInfo (string ip="")
 
RETURN_CODE lcd_getAllScreens (ref byte screenNumbers, ref Dictionary< UInt16, string > returnScreens, string ip="")
 
RETURN_CODE lcd_getAllObjects (string screenName, ref byte objectNumbers, ref Dictionary< UInt16, string > returnObjects, string ip="")
 
RETURN_CODE lcd_queryScreenbyName (string screenName, ref byte result, string ip="")
 
RETURN_CODE lcd_queryObjectbyName (string objectName, ref byte objectNumbers, ref List< string > returnItems, string ip="")
 
RETURN_CODE lcd_queryScreenbyID (UInt16 screenID, ref byte result, ref string screenName, string ip="")
 
RETURN_CODE lcd_queryObjectbyID (UInt16 objectID, ref byte objectNumbers, ref List< string > returnItems, string ip="")
 
RETURN_CODE lcd_setBacklight (byte backlightVal, string ip="")
 
RETURN_CODE device_enablePassThrough (bool enablePassThrough)
 
RETURN_CODE device_enableL100PassThrough (bool enablePassThrough)
 
string device_getResponseCodeString (RETURN_CODE eCode)
 
RETURN_CODE device_getTransactionResults (ref IDTTransactionData results)
 
RETURN_CODE pin_getFunctionKey (int timeout, string ip="")
 
RETURN_CODE pin_getFunctionKey (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 ip="")
 
RETURN_CODE pin_capturePin (int timeout, int type, string PAN, int minPIN, int maxPIN, string message, string ip, SwipeCallback inputCallback, FailureCallback failureCallback, TimeoutCallback timeoutCallback, CancelPromptCallback cancelPromptCallback)
 
RETURN_CODE pin_sendBeep (string ip="")
 
RETURN_CODE pin_getPanEntry (bool csc, bool expDate, bool ADR, bool ZIP, bool mod10, UInt16 timeout, bool encPANOnly=false, string ip="")
 
RETURN_CODE pin_getPanEntry (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)
 
RETURN_CODE pin_promptForInput (int messageID, short timeout, string ip, 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 ip="")
 
RETURN_CODE pin_promptForNumericKeyWithSwipe (short timeout, byte function, int minLen, int maxLen, string line1, string line2, byte[] signature, string ip, 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 ip="")
 
RETURN_CODE pin_promptForAmount (int timeout, int minLen, int maxLen, string message, byte[] signature, string ip, SwipeCallback inputCallback, FailureCallback failureCallback, TimeoutCallback timeoutCallback, CancelPromptCallback cancelPromptCallback)
 
RETURN_CODE pin_cancelPINEntry (string ip="")
 
void device_listenForNotifications (bool enable, string ip="")
 
RETURN_CODE device_deleteDirectory (string filename, string ip="")
 
RETURN_CODE device_listDirectory (string directoryName, bool recursive, bool onSD, ref string directory, string ip="")
 
RETURN_CODE device_transferFile (string fileName, byte[] file, string ip="")
 
RETURN_CODE device_deleteFile (string filename, string ip="")
 
RETURN_CODE felica_authentication (byte[] key, string ip="")
 
RETURN_CODE felica_readWithMac (int numBlocks, byte[] blockList, ref byte[] blocks, string ip="")
 
RETURN_CODE felica_writeWithMac (int blockNumber, byte[] data, string ip="")
 
RETURN_CODE felica_read (byte[] serviceCode, int numBlocks, byte[] blockList, ref byte[] blocks, string ip="")
 
RETURN_CODE felica_write (byte[] serviceCode, int blockCount, byte[] blockList, byte[] data, ref byte[] statusFlag, string ip="")
 
RETURN_CODE ctls_nfcCommand (byte[] nfcCmdPkt, ref byte[] response, string ip="")
 
RETURN_CODE felica_requestService (byte[] nodeCode, ref byte[] response, string ip="")
 
RETURN_CODE lcd_startScreenSaver (string name, string ip="")
 
RETURN_CODE lcd_playAudio (string name, int type, string ip="")
 
RETURN_CODE lcd_stopAudio (string ip="")
 
RETURN_CODE lcd_startScanQR (ushort timeout, string ip="")
 
RETURN_CODE lcd_stopScanQR (string ip="")
 
RETURN_CODE lcd_startCameraCapture (ushort timeout, string ip="")
 
RETURN_CODE lcd_stopCameraCapture (string ip="")
 

Static Public Member Functions

static bool useSerialPort (int port)
 
static bool useSerialPort (int port, int baud)
 
static int getCommandTimeout ()
 
static void setCommandTimeout (int milliseconds)
 
static void hasUI (bool val)
 
static bool ip_switchToSocket (string IP)
 
static bool closeSocket (string IP)
 
static List< string > ip_getSocketList ()
 
static string getlastErrorString (string ip="")
 
static bool ip_isConnected (string ip, int attempts=1, bool isSecure=false)
 
static bool useUSB ()
 
static void setCallback (CallBack my_Callback)
 
static void setLongPressCallback (longPressCallback callback, string ip="")
 
static void setCallbackIP (CallBackIP my_Callback, string ip="")
 
static void setCallback (IntPtr my_Callback, SynchronizationContext context)
 
static String SDK_Version ()
 
static void emv_autoAuthenticate (bool authenticate)
 
static void emv_autoAuthenticate (bool authenticate, byte[] tags)
 
static void emv_allowFallback (bool allow)
 
static RETURN_CODE device_updateFirmwareType (FIRMWARE_TYPE type, byte[] firmwareData, string ip="")
 
static RETURN_CODE device_updateDeviceFirmware (byte[] firmwareData)
 
static RETURN_CODE device_wakeDevice (string macAddress="", string ipAddress="")
 
static RETURN_CODE lcd_clearDisplay ()
 
static void lcd_retrieveMessage (DisplayMessages.DISPLAY_MESSAGE_LANGUAGE lang, DisplayMessages.DISPLAY_MESSAGE_IDENTIFIER id, ref string line1, ref string line2)
 

Static Public Attributes

static bool bypassUSBCheck = false
 

Properties

static IDT_NEO2 SharedController [get]
 

Detailed Description

Class for VP6300 reader

Member Function Documentation

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_getBLEMACAddress ( ref byte[]  address,
string  ip = "" 
)

Get Device BLE MAC Address

Parameters
address6-byte MAC Address
ipOptional: The callback function will only be applicable to the provided IP.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getEthernetMACAddress ( ref byte[]  address,
string  ip = "" 
)

Get Device Ethernet MAC Address

Parameters
address6-byte MAC Address
ipOptional: The callback function will only be applicable to the provided IP.
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  ip = "" 
)

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 (*) 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.
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 
)

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"
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getSerialNumber ( ref string  response,
string  ip = "" 
)

Polls device for Serial Number

Parameters
responseReturns Serial Number
ipOptional: The callback function will only be applicable to the provided IP.
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 
)

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
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getTrackFormat ( ref byte  option,
string  ip = "" 
)

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.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getWhiteList ( ref Dictionary< string, string >  data,
string  ip = "" 
)

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.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getWifiConfig ( ref byte  mode,
ref string  ssid,
ref string  password,
ref string  ip,
ref string  netMask,
ref string  gateway 
)

Get Wifi Configuration

Return all the network configurations.

Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getWiFiMACAddress ( ref byte[]  address,
string  ip = "" 
)

Get Device WiFi MAC Address

Parameters
address6-byte MAC Address
ipOptional: The callback function will only be applicable to the provided IP.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_getWirelessWorkMode ( ref byte  mode)

Get Wireless Work Mode

Return Wireless Work Mode.

Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setBluetoothParameters ( string  name,
string  oldPW,
string  newPW 
)

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"
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  ip = "" 
)

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 (*) 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.
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 
)

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"
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setSwipeandDone ( byte  swipeVal,
byte  doneVal,
byte  delay 
)

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
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setTrackFormat ( byte  option,
string  ip = "" 
)

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.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setWhiteList ( byte[]  data,
string  ip = "" 
)

Set White List

Parameters
dataThe signed white list data
ipOptional: The callback function will only be applicable to the provided IP.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setWifiConfig ( string  mode,
string  ssid,
string  password,
string  ip,
string  netMask,
string  gateway 
)

Set Wifi Configuration

Set wifi configuration. Configuration will be saved in flash.

Parameters
modeWiFi work mode 30h – Set NULL Mode, WiFi RF will be disabled 31h - Set Station Mode Default) 32h – Set SoftAP Mode 33h – 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.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.config_setWirelessWorkMode ( string  mode)

Set Wireless Work Mode

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

Parameters
modeWireless work mode 30h – Set Wi-Fi TCP Server Mode 31h - Set Wi-Fi SSL Server Mode 32h – Set BLE Server Mode
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_activateTransaction ( int  timeout,
byte[]  tags,
bool  forceOnline,
bool  isFastEMV = false 
)

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
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) 9F26 = four bytes = ApplePay Terminal Capabilities Information (required)

  • Byte 1 = RFU
  • Byte 2 = Terminal Type
  • - Bit 8 = VAS Support (1=on, 0 = off)
  • - Bit 7 = Touch ID Required (1=on, 0 = off)
  • - 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) DF01 = 1 byte = ApplePay VAS Protocol. (optional)
  • - 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  ip = "")

Cancel Transaction

Cancels the currently executing EMV or CTLS transaction.

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_getAllConfigurationGroups ( ref byte  response[][])

Retrieve All Configuration Groups

Returns all the Configuration Groups installed on the terminal for CTLS

Parameters
responsearray of CTLS groups as TLV bytes
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_getConfigurationGroup ( int  group,
ref byte[]  tlv 
)

Get Configuration Group

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

Parameters
groupConfiguration Group
tlvreturn data
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_nfcCommand ( byte[]  nfcCmdPkt,
ref byte[]  response,
string  ip = "" 
)

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)
  • 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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_removeAllCAPK ( )

Remove All Certificate Authority Public Key

Removes all the CAPK for CTLS

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_removeApplicationData ( byte[]  AID)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_removeCAPK ( byte[]  capk)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_removeConfigurationGroup ( int  group)

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:()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_resetConfigurationGroup ( int  group)

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:()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_retrieveAIDList ( ref byte  response[][])

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_retrieveApplicationData ( byte[]  AID,
ref byte[]  tlv 
)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_retrieveCAPK ( byte[]  capk,
ref byte[]  key 
)

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)
  • Modulus Length: LenL LenH Indicated the length of the next field.
  • Modulus: This is the modulus field of the public key. Its length is specified in the field above.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_retrieveCAPKList ( ref byte[]  keys)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_retrieveTerminalData ( ref byte[]  tlv)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_setApplicationData ( byte[]  tlv)

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)
  • DFEE4F = Interface Support. 01 = CTLS, 02 = Contact. If missing, defaults to CTLS
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_setCAPK ( byte[]  key)

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)
  • Modulus Length: LenL LenH Indicated the length of the next field.
  • Modulus: This is the modulus field of the public key. Its length is specified in the field above.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_setConfigurationGroup ( byte[]  tlv)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_setDefaultConfiguration ( )

Set Default Configuration Group

Resets the device to default CTLS configuration group settings

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_setTerminalData ( byte[]  tlv)

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:()
RETURN_CODE IDTechSDK.IDT_NEO2.ctls_startTransaction ( double  amount,
double  amtOther,
int  exponent,
int  type,
int  timeout,
byte[]  tags,
bool  forceOnline,
bool  isFastEMV = false 
)

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)
amtOtherOther amount value, if any (tag value 9F03)
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
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) 9F26 = four bytes = ApplePay Terminal Capabilities Information (required)

  • Byte 1 = RFU
  • Byte 2 = Terminal Type
  • - Bit 8 = VAS Support (1=on, 0 = off)
  • - Bit 7 = Touch ID Required (1=on, 0 = off)
  • - 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) DF01 = 1 byte = ApplePay VAS Protocol. (optional)
  • - 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_updateBalance ( byte  statusCode,
byte[]  authCode,
byte[]  date,
byte[]  time 
)

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)
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).
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_activateTransaction ( int  timeout,
byte[]  tags,
bool  isFastEMV = false 
)

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
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) 9F26 = four bytes = ApplePay Terminal Capabilities Information (required)

  • Byte 1 = RFU
  • Byte 2 = Terminal Type
  • - Bit 8 = VAS Support (1=on, 0 = off)
  • - Bit 7 = Touch ID Required (1=on, 0 = off)
  • - 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) DF01 = 1 byte = ApplePay VAS Protocol. (optional)
  • - 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 ( )

Buzzer Device

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

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_buzzerOnOff ( )

Buzzer On/Off

Cause the buzzer to beep once.

Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_cancelTransaction ( )

Cancel Transaction

Cancels the currently executing device transaction.

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_controlLED ( byte  indexLED,
byte  control,
string  ip = "" 
)

Control LED

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

Parameters
indexLEDdescription as follows: 00h: LED 0 (Power LED) 01h: LED 1 02h: LED 2 03h: LED 3 10h: Single Tri-Color LED (Unipay III used) 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) 01h: LED On (LED 0~4) 02h: Green Color (Tri-Color LED) 03h: Red Color (Tri-Color LED) 04h: Amber Color(Tri-Color LED)
ipOptional: The callback function will only be applicable to the provided IP.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_controlUserInterface ( byte[]  values)

Control User Interface

Controls the User Interface: Display, Beep, LED

Parameters
valuesFour bytes to control the user interface Byte[0] = LCD Message Messages 00-07 are normally controlled by the reader.
  • 00h: Idle Message (Welcome)
  • 01h: Present card (Please Present Card)
  • 02h: Time Out or Transaction cancel (No Card)
  • 03h: Transaction between reader and card is in the middle (Processing...)
  • 04h: Transaction Pass (Thank You)
  • 05h: Transaction Fail (Fail)
  • 06h: Amount (Amount $ 0.00 Tap Card)
  • 07h: Balance or Offline Available funds (Balance $ 0.00) Messages 08-0B are controlled by the terminal
  • 08h: Insert or Swipe card (Use Chip & PIN)
  • 09h: Try Again(Tap Again)
  • 0Ah: Tells the customer to present only one card (Present 1 card only)
  • 0Bh: Tells the customer to wait for authentication/authorization (Wait)
  • FFh: indicates the command is setting the LED/Buzzer only. Byte[1] = Beep Indicator
  • 00h: No beep
  • 01h: Single beep
  • 02h: Double beep
  • 03h: Three short beeps
  • 04h: Four short beeps
  • 05h: One long beep of 200 ms
  • 06h: One long beep of 400 ms
  • 07h: One long beep of 600 ms
  • 08h: One long beep of 800 ms Byte[2] = LED Number
  • 00h: LED 0 (Power LED) 01h: LED 1
  • 02h: LED 2
  • 03h: LED 3
  • FFh: All LEDs Byte[3] = LED Status
  • 00h: LED Off
  • 01h: LED On
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_deleteDirectory ( string  filename,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_deleteFile ( string  filename,
string  ip = "" 
)

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 (/).
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_disBlueLED ( )

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.

Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_enableL100PassThrough ( bool  enablePassThrough)

Enable L100 Pass Through

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

Parameters
enablePassThroughtrue = pass through ON, false = pass through OFF
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_enablePassThrough ( bool  enablePassThrough)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_enaBlueLED ( byte[]  dataCmd)

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) Byte 0 = Cycles (0 = Cycle once 1 = Repeat) 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) If cycle equals 1, more pairs would be after Byte 3.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_enterStandbyMode ( string  ip = "")

Enter Standby Mode

Puts unit into low power stand by mode

Parameters
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_extendedErrorCondition ( bool  enable,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_getBatteryVoltage ( ref string  voltage)

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()
RETURN_CODE IDTechSDK.IDT_NEO2.device_getBootloaderVersion ( ref string  response,
string  ip = "" 
)

Polls device for Bootloader Version

Parameters
responseResponse returned of Bootloader Version
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_getDeviceTime ( ref DateTime  time,
string  ip = "" 
)

Get Device Time

Parameters
timeDevice Time
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_getFirmwareVersion ( ref string  response,
string  ip = "" 
)

Polls device for Firmware Version

Parameters
responseResponse returned of Firmware Version
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_getLightSensorVal ( ref UInt16  lightVal,
string  ip = "" 
)

Get Light Sensor Value

Parameters
lightValValue of the light sensor
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_getMerchantRecord ( int  index,
ref byte[]  record 
)

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) Byte 2 - 33 = Merchant Protocol Hash-256 value Byte 34 = Length of Merchant URL Bytes 35 - 99 = URL
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_getProcessorType ( ref byte[]  type)

Get Processor Type Returns a processor type TLV

Parameters
typeprocessor type

RETURN_CODE: Values can be parsed with errorCode.getErrorString()

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)

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

Parameters
typeproduct type

RETURN_CODE: Values can be parsed with errorCode.getErrorString()

Product Type | Description

42 37 00 | ViVOpay 5000 43 33 00 | ViVOpay 4500 43 35 00 | ViVOpay Vend 43 36 00 | Vendi (NEO) 43 37 00 | ViVOpay Kiosk1 (ATM1) 43 38 00 | Kiosk2 43 39 00 | Kiosk3 (NEO) 55 31 00 | UniPay 1.5 (NEO) 55 33 00 | UniPay III (NEO) 55 33 31 | VP3300, VP3300 OEM (NEO) (iBase/Cake same code) 55 33 32 | VP3300E(NEO) 55 33 33 | VP3300C(NEO) 55 33 34 | BTPay Mini (NEO) (UniPayIII + BLE) 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

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_getRT1050FirmwareVersion ( ref string  response,
string  ip = "" 
)

Get RT1050 Firmware Version

Parameters
responseResponse returned of Firmware Version
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_getSelfCheckTime ( ref byte  hour,
ref byte  minutes,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_getTransactionResults ( ref IDTTransactionData  results)

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

Parameters
resultsThe transaction results
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)

Get TransArmor ID

Parameters
TIDTransArmor ID
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_listDirectory ( string  directoryName,
bool  recursive,
bool  onSD,
ref string  directory,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
void IDTechSDK.IDT_NEO2.device_listenForNotifications ( bool  enable,
string  ip = "" 
)

Listen for Notifications

Instructs SDK to listen for unsolicited data

Parameters
enableTRUE = Listen, FALSE = Don't Listen
RETURN_CODE IDTechSDK.IDT_NEO2.device_logClear ( string  ip = "")

Clear Log

Instructs device to delete all log data

Parameters
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_logEnable ( bool  enable,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_logRead ( DeviceLogCallback  callback,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_lowPowerMode ( bool  stopMode,
bool  wakeOnTrans 
)

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)
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:()
RETURN_CODE IDTechSDK.IDT_NEO2.device_offYellowLED ( )

Turn Off Yellow LED

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

Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_onYellowLED ( )

Turn On Yellow LED

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

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

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.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_rebootDevice ( string  ip = "")

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_resetConfigurationGroup ( int  group)

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:()
RETURN_CODE IDTechSDK.IDT_NEO2.device_resetTransaction ( )

Reset Transaction

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

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_retrieveAIDList ( ref byte  response[][])

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_retrieveTerminalData ( ref byte[]  tlv)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendDataCommand ( string  cmd,
bool  calcLRC,
ref byte[]  response,
string  ip = "" 
)

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
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  ip = "" 
)

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)
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
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  ip = "" 
)

Send Payment Application Engine Command

Executes a PAE command

Parameters
commandASCII command string, should start with "*PAE"
responsecommand response
timeouttimeout waiting for PAE response
ipOptional IP address when connected via TCP/IP
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP2 ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
string  ip = "" 
)

Send Vivo Command Protocol 2

Sends a protocol 2 command to Vivo readers (IDG/NEO)

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
ipOptional IP
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP2_ext ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
int  timeout,
bool  noResponse,
string  ip = "" 
)

Send Vivo Command Protocol 2 Extended

Sends a protocol 2 command to Vivo readers (IDG/NEO)

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
timeoutTimeout, in milliseconds (3000 = 3 seconds)
noResponseTRUE = don't wait for response, FALSE = wait for response defined by timeout
ipOptional IP
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP3 ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
string  ip = "" 
)

Send Vivo Command Protocol 3

Sends a protocol 3 command to Vivo readers (IDG/NEO)

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
ipOptional IP
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP3_ext ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
int  timeout,
bool  noResponse,
string  ip = "" 
)

Send Vivo Command Protocol 3 Extended

Sends a protocol 3 command to Vivo readers (IDG/NEO)

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
timeoutTimeout, in milliseconds (3000 = 3 seconds)
noResponseTRUE = don't wait for response, FALSE = wait for response defined by timeout
ipOptional IP
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP4 ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
string  ip = "" 
)

Send Vivo Command Protocol 4

Sends a protocol 4 command to Vivo readers (IDG/NEO)

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
ipOptional IP
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_sendVivoCommandP4_ext ( byte  command,
byte  subCommand,
byte[]  data,
ref byte[]  response,
int  timeout,
bool  noResponse,
string  ip = "" 
)

Send Vivo Command Protocol 4 Extended

Sends a protocol 4 command to Vivo readers (IDG/NEO)

Parameters
commandCommand
subCommandSub-Command
dataData. May be null
responseResponse
timeoutTimeout, in milliseconds (3000 = 3 seconds)
noResponseTRUE = don't wait for response, FALSE = wait for response defined by timeout
ipOptional IP
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_setBurstMode ( byte  mode)

Send Burst Mode

Sets the burst mode forthe device.

Parameters
mode0 = OFF, 1 = Always On, 2 = Auto Exit
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_setMerchantRecord ( int  index,
bool  enabled,
string  merchantID,
string  merchantURL 
)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_setPollMode ( byte  mode)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_setSelfCheckTime ( byte  hour,
byte  minutes,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_setTerminalData ( byte[]  tlv)

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:()
RETURN_CODE IDTechSDK.IDT_NEO2.device_setTransArmorEncryption ( byte[]  cert)

Set TransArmor Encryption

Parameters
certCertificate in PEM format
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_setTransArmorID ( string  TID)

Set TransArmor ID

Parameters
TIDTransArmor ID
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.device_startRKI ( bool  isTest,
string  ip = "" 
)

Start Remote Key Injection

Starts a remote key injection request with IDTech RKI servers.

Parameters
isTestTRUE = Demo Device, FALSE = Production Device
ipOptional IP address
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  ip = "" 
)

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)
amtOtherOther amount value, if any (tag value 9F03)
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
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) 9F26 = four bytes = ApplePay Terminal Capabilities Information (required)

  • Byte 1 = RFU
  • Byte 2 = Terminal Type
  • - Bit 8 = VAS Support (1=on, 0 = off)
  • - Bit 7 = Touch ID Required (1=on, 0 = off)
  • - 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) DF01 = 1 byte = ApplePay VAS Protocol. (optional)
  • - 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_SymmetricRKI ( int  type,
string  ip = "" 
)

Start Remote Key Injection

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

Parameters
type0 = Type A Demo 1 = Type A Production 2 = Type B Demo 3 = Type B Production
ipOptional IP address
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_terminalInfo ( ref byte[]  tlv)

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)
  • 0x0A Last Tap (CL) UTC/RTC
  • 0x0B Lifetime Total Tap (CL)
  • 0x0C Reboot Count
  • 0x0D Device Uptime since Last Reboot
  • 0x0E Device Lifetime Uptime
  • 0x0F Tamper Status
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.device_transferFile ( string  fileName,
byte[]  file,
string  ip = "" 
)

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.
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
static RETURN_CODE IDTechSDK.IDT_NEO2.device_updateDeviceFirmware ( byte[]  firmwareData)
static

Update K81 Firmware

Updates the firmware .

Parameters
firmwareDataSigned binary data of a firmware file provided by IDTech
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

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)
  • 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();
diag.Filter = "NGA FW Files|*.fm";
if (diag.ShowDialog() == DialogResult.OK)
{
byte[] file = File.ReadAllBytes(diag.FileName);
RETURN_CODE rt = IDT_Device.SharedController.device_updateDeviceFirmware(file);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
//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)
{
switch (state)
{
case DeviceState.FirmwareUpdate:
switch (transactionResultCode)
{
case RETURN_CODE.RETURN_CODE_FW_STARTING_UPDATE:
SetOutputText("Starting Firmware Update\n");
break;
case RETURN_CODE.RETURN_CODE_DO_SUCCESS:
SetOutputText("Firmware Update Successful\n");
break;
case RETURN_CODE.RETURN_CODE_APPLYING_FIRMWARE_UPDATE:
SetOutputText("Applying Firmware Update....\n");
break;
case RETURN_CODE.RETURN_CODE_ENTERING_BOOTLOADER_MODE:
SetOutputText("Entering Bootloader Mode....\n");
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");
break;
default:
SetOutputText("Firmware Update Error Code: " + "0x" + String.Format("{0:X}", (ushort)transactionResultCode) + ": " + IDTechSDK.errorCode.getErrorString(transactionResultCode) + "\r\n");
break;
}
break;
}
}
RETURN_CODE IDTechSDK.IDT_NEO2.device_updateFirmwareIP ( string  path,
int  type,
FirmwareUpdateCallback  callback,
string  ip 
)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

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)
  • 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();
diag.Filter = "FW Files|*.fm";
if (diag.ShowDialog() == DialogResult.OK)
{
RETURN_CODE rt = IDT_Device.SharedController.device_updateFirmwareIP(diag.FileName,0,callback,"10.12.34.96");
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
//Was a success
}
else
{
//Error starting firmware download
}
}

Example monitoring firmware update status / success

private void callback( byte[] data, RETURN_CODE transactionResultCode, string IP)
{
switch (transactionResultCode)
{
case RETURN_CODE.RETURN_CODE_FW_STARTING_UPDATE:
SetOutputText("Starting Firmware Update\n");
break;
case RETURN_CODE.RETURN_CODE_DO_SUCCESS:
SetOutputText("Firmware Update Successful\n");
break;
case RETURN_CODE.RETURN_CODE_APPLYING_FIRMWARE_UPDATE:
SetOutputText("Applying Firmware Update....\n");
break;
case RETURN_CODE.RETURN_CODE_ENTERING_BOOTLOADER_MODE:
SetOutputText("Entering Bootloader Mode....\n");
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");
break;
default:
SetOutputText("Firmware Update Error Code: " + "0x" + String.Format("{0:X}", (ushort)transactionResultCode) + ": " + IDTechSDK.errorCode.getErrorString(transactionResultCode) + "\r\n");
break;
}
static RETURN_CODE IDTechSDK.IDT_NEO2.device_updateFirmwareType ( FIRMWARE_TYPE  type,
byte[]  firmwareData,
string  ip = "" 
)
static

Update App Firmware

Updates the firmware

Parameters
typeFIRMWARE_TYPE. It can be Bootloader A, Bootloader B, 1050, K81, or Kernels 0-11.
firmwareDataSigned binary data of a firmware file provided by IDTech
ipOptional ip address of device
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

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)
  • 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();
diag.Filter = "NGA FW Files|*.fm";
if (diag.ShowDialog() == DialogResult.OK)
{
byte[] file = File.ReadAllBytes(diag.FileName);
RETURN_CODE rt = IDT_Device.SharedController.device_updateFirmware(FIRMWARE_TYPE.FIRMWARE_TYPE_1050, file);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
//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)
{
switch (state)
{
case DeviceState.FirmwareUpdate:
switch (transactionResultCode)
{
case RETURN_CODE.RETURN_CODE_FW_STARTING_UPDATE:
SetOutputText("Starting Firmware Update\n");
break;
case RETURN_CODE.RETURN_CODE_DO_SUCCESS:
SetOutputText("Firmware Update Successful\n");
break;
case RETURN_CODE.RETURN_CODE_APPLYING_FIRMWARE_UPDATE:
SetOutputText("Applying Firmware Update....\n");
break;
case RETURN_CODE.RETURN_CODE_ENTERING_BOOTLOADER_MODE:
SetOutputText("Entering Bootloader Mode....\n");
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");
break;
default:
SetOutputText("Firmware Update Error Code: " + "0x" + String.Format("{0:X}", (ushort)transactionResultCode) + ": " + IDTechSDK.errorCode.getErrorString(transactionResultCode) + "\r\n");
break;
}
break;
}
}
RETURN_CODE IDTechSDK.IDT_NEO2.device_updateFirmwareType ( string  path,
FIRMWARE_TYPE  type,
FirmwareUpdateCallback  callback,
string  ip 
)

Update Firmware

Updates the firmware over IP .

Parameters
pathLocal filepath to the signed binary data of a firmware file provided by IDTech
typeFIRMWARE_TYPE
callbackCallback to receive the status updates
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

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)
  • 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();
diag.Filter = "FW Files|*.fm";
if (diag.ShowDialog() == DialogResult.OK)
{
RETURN_CODE rt = IDT_Device.SharedController.device_updateFirmwareIP(diag.FileName,0,callback,"10.12.34.96");
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
//Was a success
}
else
{
//Error starting firmware download
}
}

Example monitoring firmware update status / success

private void callback( byte[] data, RETURN_CODE transactionResultCode, string IP)
{
switch (transactionResultCode)
{
case RETURN_CODE.RETURN_CODE_FW_STARTING_UPDATE:
SetOutputText("Starting Firmware Update\n");
break;
case RETURN_CODE.RETURN_CODE_DO_SUCCESS:
SetOutputText("Firmware Update Successful\n");
break;
case RETURN_CODE.RETURN_CODE_APPLYING_FIRMWARE_UPDATE:
SetOutputText("Applying Firmware Update....\n");
break;
case RETURN_CODE.RETURN_CODE_ENTERING_BOOTLOADER_MODE:
SetOutputText("Entering Bootloader Mode....\n");
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");
break;
default:
SetOutputText("Firmware Update Error Code: " + "0x" + String.Format("{0:X}", (ushort)transactionResultCode) + ": " + IDTechSDK.errorCode.getErrorString(transactionResultCode) + "\r\n");
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) 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
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 
)

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
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
static void IDTechSDK.IDT_NEO2.emv_allowFallback ( bool  allow)
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)

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

  @return RETURN_CODE:  Values can be parsed with device_getResponseCodeString 
static void IDTechSDK.IDT_NEO2.emv_autoAuthenticate ( bool  authenticate)
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_autoAuthenticate ( bool  authenticate,
byte[]  tags 
)
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_callbackResponseLCD ( EMV_LCD_DISPLAY_MODE  type,
byte  selection 
)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_callbackResponseMSR ( byte[]  MSR)

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

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)
PINIf encipherd PIN, this is encrypted PIN block. If device does not implement pairing function, this is plaintext PIN
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_cancelTransaction ( )

Cancel Transaction

Cancels the currently executing EMV or CTLS transaction.

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 
)

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 (if any)
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_getEMVConfigurationCheckValue ( ref string  response)

Polls device for EMV Configuration Check Value

Parameters
responseResponse returned of Check Value of Configuration
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_getEMVKernelCheckValue ( ref string  response)

Polls device for EMV Kernel Check Value

Parameters
responseResponse returned of Check Value of Kernel
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_getEMVKernelVersion ( ref string  response)

Polls device for EMV Kernel Version

Parameters
responseResponse returned of Kernel Version
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_getTerminalMajorConfiguration ( ref int  configuration)

Get Terminal Major Configuration

Gets the Terminal Data Major Configuration setting

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

Remove All Application Data

Removes all the Application Data for EMV Kernel

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeAllCAPK ( )

Remove All Certificate Authority Public Key

Removes all the CAPK for EMV Kernel

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeAllCRL ( )

Remove All Certificate Revocation List Entries

Removes all CRLEntry entries

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeApplicationData ( byte[]  AID)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeCAPK ( byte[]  capk)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeCRL ( byte[]  crlList)

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]
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_removeTerminalData ( )

Remove Terminal Data

Removes the Terminal Data

Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_resetConfigurationGroup ( int  group)

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:()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveAIDList ( ref byte  response[][])

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveApplicationData ( byte[]  AID,
ref byte[]  tlv 
)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveCAPK ( byte[]  capk,
ref byte[]  key 
)

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)
  • Modulus Length: LenL LenH Indicated the length of the next field.
  • Modulus: This is the modulus field of the public key. Its length is specified in the field above.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveCAPKList ( ref byte[]  keys)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveCRLList ( ref byte[]  list)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveTerminalData ( ref byte[]  tlv)

Retrieve Terminal Data

Retrieves the Terminal Data for EMV Kernel.

Parameters
tlvResponse returned as a TLV
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_retrieveTransactionResult ( byte[]  tags,
ref IDTTransactionData  tlv 
)

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
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setApplicationData ( byte[]  name,
byte[]  tlv 
)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setApplicationData ( byte[]  tlv)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setCAPK ( byte[]  key)

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)
  • Modulus Length: LenL LenH Indicated the length of the next field.
  • Modulus: This is the modulus field of the public key. Its length is specified in the field above.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setCRL ( byte[]  list)

Set Certificate Revocation List

Sets the CRL

Parameters
listCRL Entries containing the RID, Index, and serial numbers to set [CRL1][CRL2]...[CRLn] where each [CRL] is 9 bytes: [5 bytes RID][1 byte CAPK Index][3 bytes serial number]
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setTerminalData ( byte[]  tlv)

Set Terminal Data

Sets the Terminal Data for EMV Kernel

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:()
RETURN_CODE IDTechSDK.IDT_NEO2.emv_setTerminalMajorConfiguration ( int  configuration)

Set Terminal Major Configuration

Sets the Terminal Data Major Configuration setting

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

Start EMV Transaction Request

Authorizes the EMV transaction for an ICC card

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02)
amtOtherOther amount value, if any (tag value 9F03)
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
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.felica_authentication ( byte[]  key,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.felica_read ( byte[]  serviceCode,
int  numBlocks,
byte[]  blockList,
ref byte[]  blocks,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.felica_readWithMac ( int  numBlocks,
byte[]  blockList,
ref byte[]  blocks,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.felica_requestService ( byte[]  nodeCode,
ref byte[]  response,
string  ip = "" 
)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.felica_write ( byte[]  serviceCode,
int  blockCount,
byte[]  blockList,
byte[]  data,
ref byte[]  statusFlag,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.felica_writeWithMac ( int  blockNumber,
byte[]  data,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.getCashTranRiskPara ( ref byte[]  tlv)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
static int IDTechSDK.IDT_NEO2.getCommandTimeout ( )
static

Get Command Timeout

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

Return values
timeTime
RETURN_CODE IDTechSDK.IDT_NEO2.getDrlReaderRiskPara ( byte  index,
ref byte[]  tlv 
)

Get DRL Reader Risk Parameters Get the Index, Application Program ID, and reader risk parameters for the DRL settings.

Parameters
indexDRL index (01-04)
tlvTLV Data Objects
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.getHardwareInfor ( ref string  ascii)

Get Hardware Information

Parameters
asciithe ascii charactor

RETURN_CODE: Values can be parsed with errorCode.getErrorString()

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

static string IDTechSDK.IDT_NEO2.getlastErrorString ( string  ip = "")
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.getModuleVer ( ref string  moduleVer)

Get Module Version Information Get the 16 byte UID of MCU

Parameters
uidstring UID
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.getMsrSecurePar ( bool  b0,
bool  b1,
bool  b2,
bool  b3,
ref byte[]  tlv 
)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.getRemoteKeyInjectionTO ( ref int  timeout)

Get Remote Key Injection Timeout

Parameters
timeoutTimeout is in seconds, value scope is [120, 3600]
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.getUIDofMCU ( ref string  uid)

Get UID of MCU

Parameters
moduleVermodule version information
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.getUsbBootLoader ( ref string  bootLoader)

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

Parameters
bootLoaderUSB boot loader information
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.getWhiteList ( ref byte[]  list)

Get White List Retrieve the White List

Parameters
listthe white list
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.icc_exchangeAPDU ( string  c_APDU,
ref byte[]  response 
)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.icc_getICCReaderStatus ( ref byte  status)

Get Reader Status

Returns the reader status

Parameters
statusPointer that will return with the ICCReaderStatus results. bit 0: 0 = ICC Power Not Ready, 1 = ICC Powered bit 1: 0 = Card not seated, 1 = card seated
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.icc_powerOffICC ( )

Power Off ICC

Powers down the ICC

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

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

RETURN_CODE IDTechSDK.IDT_NEO2.icc_powerOnICC ( ref byte[]  ATR,
byte  interfaces 
)

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) 0x22h = SAM2 (SRED version only) For other devices interfaces euquals to 0s
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
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

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)
  • 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)

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  ip = "" 
)

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

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)
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  ip = "" 
)

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)
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  ip = "" 
)

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)
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  ip = "" 
)

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)
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 ( )

Clear LCD Display

Clears all lines of the LCD Display.

Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
static RETURN_CODE IDTechSDK.IDT_NEO2.lcd_clearDisplay ( )
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

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_clearScreenInfo ( string  ip = "")

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)
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  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_createScreen ( string  screenName,
ref UInt16  screenID,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_destroyScreen ( string  screenName,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_displayMessage ( int  lineNumber,
string  message 
)

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)
messageMessage to display
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_getActiveScreen ( ref string  screenName,
string  ip = "" 
)

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)
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  ip = "" 
)

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)
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  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_getButtonEvent ( ref UInt16  screenID,
ref UInt16  objectID,
ref string  screenName,
ref string  objectName,
ref bool  isLongPress,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_loadScreenInfo ( string  ip = "")

Load Screen Info

Load all current screen information from RAM to flash

Parameters
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_playAudio ( string  name,
int  type,
string  ip = "" 
)

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
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  ip = "" 
)

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)
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  ip = "" 
)

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)
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  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_queryScreenbyName ( string  screenName,
ref byte  result,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_removeItem ( string  screenName,
string  objectName,
string  ip = "" 
)

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)
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
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_setBacklight ( byte  backlightVal,
string  ip = "" 
)

Set Backlight

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

Parameters
backlightValBacklight percent value to be sat
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
void IDTechSDK.IDT_NEO2.lcd_setButtonCallback ( string  screenName,
string  buttonName,
buttonCallback  callback,
string  ip 
)

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)

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  ip = "" 
)

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)

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

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

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)

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

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

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)

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

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

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)

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

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

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)

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

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

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_startCameraCapture ( ushort  timeout,
string  ip = "" 
)

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)
ipOptional IP Address
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_startScanQR ( ushort  timeout,
string  ip = "" 
)

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
iptimeout Timeout value. Minimum is 30 seconds (values under 30 seconds will default to 30 seconds)
ipOptional IP Address
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_startScreenSaver ( string  name,
string  ip = "" 
)

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
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_stopAudio ( string  ip = "")

Stop Audio

This command stop playing audio started with lcd_playAudio.

Parameters
ipOptional IP Address
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_stopCameraCapture ( string  ip = "")

Stop Camera Capture

This command will stop the camera that started with lcd_startCameraCapture

Parameters
ipOptional IP Address
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_stopScanQR ( string  ip = "")

Stop QR Scanning

This command will stop QR scanning that started with lcd_startScanQR

Parameters
ipOptional IP Address
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_storeScreenInfo ( string  ip = "")

Store Screen Info

Store all current screen information from RAM to flash

Parameters
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_updateColor ( string  screenName,
string  objectName,
byte[]  color,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.lcd_updateLabel ( string  screenName,
string  objectName,
string  label,
string  ip = "" 
)

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)
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  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.msr_cancelMSRSwipe ( string  ip = "")

Disable MSR Swipe Cancels MSR swipe request.

Parameters
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.msr_getMSRTrack ( ref int  val,
string  ip 
)

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
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.msr_setMSRTrack ( int  val,
string  ip 
)

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
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.msr_startMSRSwipe ( int  timeout,
string  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.msr_startMSRSwipe ( int  timeout,
string  ip,
SwipeCallback  swipeCallback,
TimeoutCallback  timeoutCallback,
FailureCallback  failureCallback 
)

Enable MSR Swipe

Enables MSR, waiting for swipe to occur.

Parameters
timeoutSwipe Timeout Value
ipIP address to execute command on (for IP connected devices)
swipeCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData transactionData)
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode)
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.pin_cancelPINEntry ( string  ip = "")

Cancel PIN Entry

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

Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.pin_capturePin ( int  timeout,
int  type,
string  PAN,
int  minPIN,
int  maxPIN,
string  message,
string  ip = "" 
)

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)
  • 01h = DUKPT to encrypt PIN, Internal PAN (from MSR)
  • 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)
minPINMinimum PIN Length
maxPINMaximum PIN Length
messageLCD Message
ipOptional: IP address to execute command on (for IP connected devices) 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()
RETURN_CODE IDTechSDK.IDT_NEO2.pin_capturePin ( int  timeout,
int  type,
string  PAN,
int  minPIN,
int  maxPIN,
string  message,
string  ip,
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)
  • 01h = DUKPT to encrypt PIN, Internal PAN (from MSR)
  • 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)
minPINMinimum PIN Length
maxPINMaximum PIN Length
messageLCD Message
ipIP address to execute command on (for IP connected devices) 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);
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode)
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress)
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.pin_getFunctionKey ( int  timeout,
string  ip = "" 
)

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.

Parameters
timeoutTimeout, in seconds. Value of 0 will use system timeout, if any
ipOptional: IP address to execute command on (for IP connected devices)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()g
RETURN_CODE IDTechSDK.IDT_NEO2.pin_getFunctionKey ( 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.

Parameters
timeoutTimeout, in seconds. Value of 0 will use system timeout, if any
ipIP address to execute command on (for IP connected devices)
inputCallbackRedirects the input from main callback to InputCallback(string ipAddress, IDTTranasctionData input);
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode)
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress)
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress)
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  ip = "" 
)

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)
swipeCallbackOptional: Redirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData transactionData)
timeoutCallbackOptional: Redirects the input from main callback to TimeoutCallback(string ipAddress)
cancelPromptCallbackOptional: Redirects the input from main callback to CancelPromptCallback(string ipAddress)
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_NEO2.pin_getPanEntry ( 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)
swipeCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData transactionData)
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress)
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress)
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  ip = "" 
)

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.pin_promptForAmount ( int  timeout,
int  minLen,
int  maxLen,
string  message,
byte[]  signature,
string  ip,
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
ipIP address to execute command on (for IP connected devices)
inputCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData input);
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode)
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress)
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.pin_promptForInput ( int  messageID,
short  timeout,
string  ip = null 
)

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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.pin_promptForInput ( int  messageID,
short  timeout,
string  ip,
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
ipIP address to execute command on (for IP connected devices)
inputCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData input);
swipeCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData transactionData)
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode)
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress)
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.pin_promptForNumericKeyWithSwipe ( short  timeout,
byte  function,
int  minLen,
int  maxLen,
string  line1,
string  line2,
byte[]  signature,
string  ip = "" 
)

Capture Numeric Input

Parameters
timeoutTimeout, in seconds. Value of 0 will use system timeout, if any
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)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.pin_promptForNumericKeyWithSwipe ( short  timeout,
byte  function,
int  minLen,
int  maxLen,
string  line1,
string  line2,
byte[]  signature,
string  ip,
SwipeCallback  inputCallback,
SwipeCallback  swipeCallback,
FailureCallback  failureCallback,
TimeoutCallback  timeoutCallback,
CancelPromptCallback  cancelPromptCallback 
)

Capture Numeric Input

Parameters
timeoutTimeout, in seconds. Value of 0 will use system timeout, if any
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
ip: IP address to execute command on (for IP connected devices)
inputCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData input);
swipeCallbackRedirects the input from main callback to SwipeCallback(string ipAddress, IDTTransactionData transactionData)
failureCallbackRedirects the input from main callback to FailureCallback(string ipAddress, RETURN_CODE errorCode)
timeoutCallbackRedirects the input from main callback to TimeoutCallback(string ipAddress)p
cancelPromptCallbackRedirects the input from main callback to CancelPromptCallback(string ipAddress)
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_NEO2.pin_sendBeep ( string  ip = "")

Send Beep

Executes a beep request.

Parameters
ipOptional: IP address to execute command on (for IP connected devices)
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);
contextThe context of the UI thread
static void IDTechSDK.IDT_NEO2.setCallbackIP ( CallBackIP  my_Callback,
string  ip = "" 
)
static

Set Callback with IP

Sets the class callback that also reports back IP device information (for network connected devices)

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);
ipOptional: The callback function will only be applicable to the provided IP.
static void IDTechSDK.IDT_NEO2.setCommandTimeout ( int  milliseconds)
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  ip = "" 
)
static

Set Longpress Callback

Sets the class callback that also reports back IP device information (for network connected devices)

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);
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.useUSB ( )
static

Use USB Interface

Instructs SDK to attempt to use USB for communication with IDT_NEO2

Return values
successReturns TRUE if connection successful, otherwise returens false

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: