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

Public Member Functions

RETURN_CODE device_controlLED (byte indexLED, byte control, string ident="")
 
RETURN_CODE device_retrieveAIDList (ref byte[][] response, string ident="")
 
RETURN_CODE device_sendDataCommand (string cmd, bool calcLRC, ref byte[] response, string ident="")
 
RETURN_CODE config_setBaudRate (int baud, string ident="")
 
RETURN_CODE device_sendDataCommand_ext (string cmd, bool calcLRC, ref byte[] response, int timeout, bool noResponse, string ident="")
 
RETURN_CODE device_getFirmwareVersion (ref string response, string ident="")
 
RETURN_CODE device_getMerchantRecord (int index, ref byte[] record, string ident="")
 
RETURN_CODE device_getTransactionResults (ref IDTTransactionData results, string ident="")
 
RETURN_CODE config_getSerialNumber (ref string response, string ident="")
 
RETURN_CODE device_pingDevice (string ident="")
 
RETURN_CODE device_controlUserInterface (byte[] values, string ident="")
 
RETURN_CODE device_sendVivoCommandP2 (byte command, byte subCommand, byte[] data, ref byte[] response, string ident="")
 
RETURN_CODE device_sendVivoCommandP2_ext (byte command, byte subCommand, byte[] data, ref byte[] response, int timeout, bool noResponse, string ident="")
 
RETURN_CODE ctls_retrieveAIDList (ref byte[][] response, string ident="")
 
RETURN_CODE ctls_getAllConfigurationGroups (ref byte[][] response, string ident="")
 
RETURN_CODE ctls_retrieveApplicationData (byte[] AID, ref byte[] tlv, string ident="")
 
RETURN_CODE ctls_removeApplicationData (byte[] AID, string ident="")
 
RETURN_CODE ctls_setApplicationData (byte[] tlv, string ident="")
 
RETURN_CODE ctls_setDefaultConfiguration (string ident="")
 
RETURN_CODE ctls_setConfigurationGroup (byte[] tlv, string ident="")
 
RETURN_CODE device_sendPAE (string command, ref string response, int timeout, string ident="")
 
RETURN_CODE ctls_retrieveTerminalData (ref byte[] tlv, string ident="")
 
RETURN_CODE ctls_setTerminalData (byte[] tlv, string ident="")
 
RETURN_CODE ctls_trySetTerminalData (byte[] tlv, ref byte[] rejectedTLV, ref byte[] convertedTLV, string ident="")
 
RETURN_CODE ctls_getConfigurationGroup (int group, ref byte[] tlv, string ident="")
 
RETURN_CODE ctls_removeConfigurationGroup (int group, string ident="")
 
RETURN_CODE ctls_setCAPK (byte[] key, string ident="")
 
RETURN_CODE ctls_retrieveCAPK (byte[] capk, ref byte[] key, string ident="")
 
RETURN_CODE ctls_removeCAPK (byte[] capk, string ident="")
 
RETURN_CODE ctls_removeAllCAPK (string ident="")
 
RETURN_CODE ctls_retrieveCAPKList (ref byte[] keys, string ident="")
 
RETURN_CODE ctls_startTransaction (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, bool isFastEMV=false, string ident="")
 
RETURN_CODE ctls_activateTransaction (int timeout, byte[] tags, bool isFastEMV=false, string ident="")
 
RETURN_CODE emv_startTransaction (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, bool forceOnline, byte[] returnTags, bool isFastEMV=false, string ident="")
 
RETURN_CODE emv_activateTransaction (int timeout, byte[] tags, bool forceOnline, byte[] returnTags, bool isFastEMV=false, string ident="")
 
RETURN_CODE device_startTransaction (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, bool isFastEMV=false, string ident="")
 
RETURN_CODE device_activateTransaction (int timeout, byte[] tags, bool isFastEMV=false, string ident="")
 
RETURN_CODE emv_completeTransaction (bool commError, byte[] authCode, byte[] iad, byte[] tlvScripts, byte[] tlv, string ident="")
 
RETURN_CODE ctls_cancelTransaction (string ident="")
 
RETURN_CODE device_setBurstMode (byte mode, string ident="")
 
RETURN_CODE device_setMerchantRecord (int index, bool enabled, string merchantID, string merchantURL, string ident="")
 
RETURN_CODE device_setPollMode (byte mode, string ident="")
 
RETURN_CODE device_startRKI (string ident="")
 
RETURN_CODE msr_startMSRSwipe (int timeout, string ident="")
 
RETURN_CODE msr_cancelMSRSwipe (string ident="")
 
RETURN_CODE device_getRKIStatus (bool isProd, bool isMultiKey, ref string status, ref Dictionary< string, RKI_KEY_TYPE > keys, string ident="")
 
RETURN_CODE device_getAnyRKIStatus (bool isMultiKey, ref string status, ref Dictionary< string, RKI_KEY_TYPE > keys, string ident="")
 
RETURN_CODE device_updateFirmwareFromZip (byte[] zipfile, string ident="", bool isForeground=false)
 
RETURN_CODE device_sendConfigurationFromZip (byte[] zip, string filename, VC_OPERATION_TYPE type, bool matchFW, string ident="", bool isForeground=false)
 
RETURN_CODE device_sendConfiguration (string filename, VC_OPERATION_TYPE type, bool matchFW, string ident="", bool isForeground=false)
 
RETURN_CODE device_readConfigurationToMemory (string memo, Configs.InstallRules rules, List< Configs.DeviceCommand > cmds, string ident="", bool isForeground=false)
 
RETURN_CODE device_getConfigurationFromMemory (ref string json, string ident="")
 
RETURN_CODE device_RemoteKeyInjection (RKI_KEY_TYPE type, string keyName, string ident="", bool performOnForeground=false)
 

Static Public Member Functions

static bool useSerialPort (int port)
 
static bool useSerialPort (int port, int baud)
 
static bool useSerialPortLinux (string path)
 
static bool useSerialPortLinux (string path, int baud)
 
static void initSC ()
 
static void setCallback (CallBack my_Callback)
 
static void setCallback (IntPtr my_Callback, SynchronizationContext context)
 
static String SDK_Version ()
 
static RETURN_CODE device_updateDeviceFirmware (byte[] firmwareData, string ident="")
 
static void lcd_retrieveMessage (DisplayMessages.DISPLAY_MESSAGE_LANGUAGE lang, DisplayMessages.DISPLAY_MESSAGE_IDENTIFIER id, ref string line1, ref string line2)
 

Properties

static IDT_VendIII SharedController [get]
 

Member Function Documentation

RETURN_CODE IDTechSDK.IDT_VendIII.config_getSerialNumber ( ref string  response,
string  ident = "" 
)

Polls device for Serial Number

Parameters
responseReturns Serial Number
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_VendIII.config_setBaudRate ( int  baud,
string  ident = "" 
)

Set Baud Rate

Sets the buad rate for RS-232 communication.

Parameters
baud
  • 4 = 9600
  • 6 = 19200
  • 7 = 38400
  • 8 = 57600
  • 9 = 115200
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_VendIII.ctls_activateTransaction ( int  timeout,
byte[]  tags,
bool  isFastEMV = false,
string  ident = "" 
)

Start CTLS Transaction Request

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02, string ident = "")
amtOtherOther amount value, if any (tag value 9F03, string ident = "")
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsThe tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100
isFastEMVIf TRUE, it will populate the IDTTransactionData.fastEMV with ASCII data similar to IDTech FastEMV KB output, after performing an auto-authenticate and auto-complete with ResultCode = Could Not Contact Host
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

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

  • Byte 1 = RFU
  • Byte 2 = Terminal Type
  • - Bit 8 = VAS Support (1=on, 0 = off, string ident = "")
  • - Bit 7 = Touch ID Required (1=on, 0 = off, string ident = "")
  • - Bit 6 = RFU
  • - Bit 5 = RFU
  • - Bit 1,2,3,4
  • - - 0 = Payment Terminal
  • - - 1 = Transit Terminal
  • - - 2 = Access Terminal
  • - - 3 = Wireless Handoff Terminal
  • - - 4 = App Handoff Terminal
  • - - 15 = Other Terminal
  • Byte 3 = RFU
  • Byte 4 = Terminal Mode
  • - 0 = ApplePay VAS OR ApplePay
  • - 1 = ApplePay VAS AND ApplePay
  • - 2 = ApplePay VAS ONLY
  • - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional, string ident = "") DF01 = 1 byte = ApplePay VAS Protocol. (optional, string ident = "")
  • - Bit 1 : 1 = URL VAS, 0 = Full VAS
  • - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
  • - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
  • - Bit 4-8 : RFU
RETURN_CODE IDTechSDK.IDT_VendIII.ctls_cancelTransaction ( string  ident = "")

Cancel EMV Transaction

Cancels the currently executing EMV transaction.

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

Retrieve All Configuration Groups

Returns all the Configuration Groups installed on the terminal for CTLS

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

Get Configuration Group

Retrieves the Configuration for the specified Group.

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

Remove All Certificate Authority Public Key

Removes all the CAPK for CTLS

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

Remove Application Data by AID

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

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

Remove Certificate Authority Public Key

Removes the CAPK as specified by the RID/Index

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

Remove Configuration Group

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

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

Retrieve AID list

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

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

Retrieve Application Data by AID

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

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

Retrieve Certificate Authority Public Key

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

Parameters
capk6 bytes CAPK = 5 bytes RID + 1 byte Index
keyResponse returned as a CAKey format: [5 bytes RID][1 byte Index][1 byte Hash Algorithm][1 byte Encryption Algorithm][20 bytes HashValue][4 bytes Public Key Exponent][2 bytes Modulus Length][Variable bytes Modulus] Where:
  • Hash Algorithm: The only algorithm supported is SHA-1.The value is set to 0x01
  • Encryption Algorithm: The encryption algorithm in which this key is used. Currently support only one type: RSA. The value is set to 0x01.
  • HashValue: Which is calculated using SHA-1 over the following fields: RID & Index & Modulus & Exponent
  • Public Key Exponent: Actually, the real length of the exponent is either one byte or 3 bytes. It can have two values: 3 (Format is 0x00 00 00 03), or 65537 (Format is 0x00 01 00 01, string ident = "")
  • Modulus Length: LenL LenH Indicated the length of the next field.
  • Modulus: This is the modulus field of the public key. Its length is specified in the field above.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_VendIII.ctls_retrieveCAPKList ( ref byte[]  keys,
string  ident = "" 
)

Retrieve the Certificate Authority Public Key list

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

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

Retrieve Terminal Data

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

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

Set Application Data by AID

Sets the Application Data for CTLS as specified by TLV data

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

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

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

Set Certificate Authority Public Key

Sets the CAPK for CTLS as specified by the CAKey structure

Parameters
keyCAKey format: [5 bytes RID][1 byte Index][1 byte Hash Algorithm][1 byte Encryption Algorithm][20 bytes HashValue][4 bytes Public Key Exponent][2 bytes Modulus Length][Variable bytes Modulus] Where:
  • Hash Algorithm: The only algorithm supported is SHA-1.The value is set to 0x01
  • Encryption Algorithm: The encryption algorithm in which this key is used. Currently support only one type: RSA. The value is set to 0x01.
  • HashValue: Which is calculated using SHA-1 over the following fields: RID & Index & Modulus & Exponent
  • Public Key Exponent: Actually, the real length of the exponent is either one byte or 3 bytes. It can have two values: 3 (Format is 0x00 00 00 03), or 65537 (Format is 0x00 01 00 01, string ident = "")
  • Modulus Length: LenL LenH Indicated the length of the next field.
  • Modulus: This is the modulus field of the public key. Its length is specified in the field above.
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()
RETURN_CODE IDTechSDK.IDT_VendIII.ctls_setConfigurationGroup ( byte[]  tlv,
string  ident = "" 
)

Set Configuration Group

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

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

Set Default Configuration Group

Resets the device to default CTLS configuration group settings

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

Set Terminal Data

Sets the Terminal Data for CTLS as specified by the TLV. The first TLV must be Configuration Group Number (Tag FFE4). The terminal global data is group 0, so the first TLV would be FFE40100. 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_BTPay::device_getResponseCodeString:( string ident = "")
RETURN_CODE IDTechSDK.IDT_VendIII.ctls_startTransaction ( double  amount,
double  amtOther,
int  exponent,
int  type,
int  timeout,
byte[]  tags,
bool  isFastEMV = false,
string  ident = "" 
)

Start CTLS Transaction Request

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02, string ident = "")
amtOtherOther amount value, if any (tag value 9F03, string ident = "")
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
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString()

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

  • Byte 1 = RFU
  • Byte 2 = Terminal Type
  • - Bit 8 = VAS Support (1=on, 0 = off, string ident = "")
  • - Bit 7 = Touch ID Required (1=on, 0 = off, string ident = "")
  • - Bit 6 = RFU
  • - Bit 5 = RFU
  • - Bit 1,2,3,4
  • - - 0 = Payment Terminal
  • - - 1 = Transit Terminal
  • - - 2 = Access Terminal
  • - - 3 = Wireless Handoff Terminal
  • - - 4 = App Handoff Terminal
  • - - 15 = Other Terminal
  • Byte 3 = RFU
  • Byte 4 = Terminal Mode
  • - 0 = ApplePay VAS OR ApplePay
  • - 1 = ApplePay VAS AND ApplePay
  • - 2 = ApplePay VAS ONLY
  • - 3 = ApplePay ONLY 9F2B = 5 bytes = ApplePay VAS Filter. Each byte filters for that specific merchant index (optional, string ident = "") DF01 = 1 byte = ApplePay VAS Protocol. (optional, string ident = "")
  • - Bit 1 : 1 = URL VAS, 0 = Full VAS
  • - Bit 2 : 1 = VAS Beeps, 0 = No VAS Beeps
  • - Bit 3 : 1 = Silent Comm Error, 2 = EMEA Comm Error
  • - Bit 4-8 : RFU
RETURN_CODE IDTechSDK.IDT_VendIII.ctls_trySetTerminalData ( byte[]  tlv,
ref byte[]  rejectedTLV,
ref byte[]  convertedTLV,
string  ident = "" 
)

Try to Set CTLS Terminal Data

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

Parameters
tlvTerminalData TLV Data
rejectedTLVContains the tags (if any) that were rejected by the firmware
convertedTLVContains the tags (if any) that were converted and accepted by the firmware
identOptional identifier
Return values
RETURN_CODEReturn codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_BTPay::device_getResponseCodeString:()
RETURN_CODE IDTechSDK.IDT_VendIII.device_activateTransaction ( int  timeout,
byte[]  tags,
bool  isFastEMV = false,
string  ident = "" 
)

Start a Transaction Request

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 Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F369f9F37
isFastEMVIf TRUE, it will populate the IDTTransactionData.fastEMV with ASCII data similar to IDTech FastEMV KB output, after performing an auto-authenticate and auto-complete with ResultCode = Could Not Contact Host
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_VendIII.device_controlLED ( byte  indexLED,
byte  control,
string  ident = "" 
)

Control LED

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

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

Control User Interface

Controls the User Interface: Display, Beep, LED

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

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

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

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

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

Polls device for Firmware Version

Parameters
responseResponse returned of Firmware Version
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_VendIII.device_getMerchantRecord ( int  index,
ref byte[]  record,
string  ident = "" 
)

Get Merchant Record Gets the merchant record for ApplePay VAS

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

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

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

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

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

Ping Device

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

Parameters
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_VendIII.device_readConfigurationToMemory ( string  memo,
Configs.InstallRules  rules,
List< Configs.DeviceCommand >  cmds,
string  ident = "",
bool  isForeground = false 
)

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

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

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

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

Remote Key Injection Performs a remote key injection for the device

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

Retrieve AID list

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

Parameters
responsearray of TLV data objects: FFE4 (group name) followed by 9F06 (AID), and DFEE4F (Interface 01 = CTLS, 02 = CONTACT, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_VendIII.device_sendConfiguration ( string  filename,
VC_OPERATION_TYPE  type,
bool  matchFW,
string  ident = "",
bool  isForeground = false 
)

Send Configuration Executes a ViVOconfig update or verify to a device

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

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

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

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

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

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

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

Send a data command to the device

Sends a command to the device.

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

Send a data command to the device - extended

Sends a command to the device.

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

Send Payment Application Engine Command

Executes a PAE command

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

Send Vivo Command Protocol 2

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

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

Send Vivo Command Protocol 2 Extended

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

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

Send Burst Mode

Sets the burst mode forthe device.

Parameters
mode0 = OFF, 1 = Always On, 2 = Auto Exit
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString( string ident = "")
RETURN_CODE IDTechSDK.IDT_VendIII.device_setMerchantRecord ( int  index,
bool  enabled,
string  merchantID,
string  merchantURL,
string  ident = "" 
)

Set Merchant Record Sets the merchant record for ApplePay VAS

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

Send Poll Mode

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

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

Start Remote Key Injection

Starts a remote key injection request with IDTech RKI servers.

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

Start a Transaction Request

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02, string ident = "")
amtOtherOther amount value, if any (tag value 9F03, string ident = "")
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. Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F369f9F37
isFastEMVIf TRUE, it will populate the IDTTransactionData.fastEMV with ASCII data similar to IDTech FastEMV KB output, after performing an auto-authenticate and auto-complete with ResultCode = Could Not Contact Host
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
static RETURN_CODE IDTechSDK.IDT_VendIII.device_updateDeviceFirmware ( byte[]  firmwareData,
string  ident = "" 
)
static

Update Firmware

Updates the firmware .

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

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

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

Example code starting a firmware update

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

Example monitoring firmware update status / success

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

Update Firmware From Zip

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

Parameters
zipfileZip file containing on or more firmware update files and a .json configuration file
identDevice ID to send command to. If not specified, current SDK default device will be used.
isForegroundIf TRUE, will block program until firmware update complete. Otherwise, FALSE performs FW update on background.
Returns
RETURN_CODE: Values can be parsed with errorCode.getErrorString(string ident = "")
RETURN_CODE IDTechSDK.IDT_VendIII.emv_activateTransaction ( int  timeout,
byte[]  tags,
bool  forceOnline,
byte[]  returnTags,
bool  isFastEMV = false,
string  ident = "" 
)

Start EMV Transaction Request

Authorizes the EMV transaction for an ICC card

The tags will be returned in the callback routine.

Parameters
timeoutTimeout value in seconds.
tagsThe tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100
forceOnlineTRUE = do not allow offline approval, FALSE = allow ICC to approve offline if terminal capable Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F369f9F37
isFastEMVIf TRUE, it will populate the IDTTransactionData.fastEMV with ASCII data similar to IDTech FastEMV KB output, after performing an auto-authenticate and auto-complete with ResultCode = Could Not Contact Host
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_VendIII.emv_completeTransaction ( bool  commError,
byte[]  authCode,
byte[]  iad,
byte[]  tlvScripts,
byte[]  tlv,
string  ident = "" 
)

Complete EMV Transaction Request

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

The tags will be returned in the callback routine.

Parameters
commErrorCommunication error with host. Set to TRUE if host was unreachable, or FALSE if host response received. If Communication error, authCode, iad, tlvScripts can be null.
authCodeAuthorization code from host. Two bytes. Example 0x3030. (Tag value 8A). Required
iadIssuer Authentication Data, if any. Example 0x11223344556677883030 (tag value 91).
tlvScripts71/72 scripts, if any
tlvAdditional TVL data to return with transaction results (if any, string ident = "")
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
RETURN_CODE IDTechSDK.IDT_VendIII.emv_startTransaction ( double  amount,
double  amtOther,
int  exponent,
int  type,
int  timeout,
byte[]  tags,
bool  forceOnline,
byte[]  returnTags,
bool  isFastEMV = false,
string  ident = "" 
)

Start EMV Transaction Request

Authorizes the EMV transaction for an ICC card

The tags will be returned in the callback routine.

Parameters
amountTransaction amount value (tag value 9F02, string ident = "")
amtOtherOther amount value, if any (tag value 9F03, string ident = "")
typeTransaction type (tag value 9C).
timeoutTimeout value in seconds.
tagsAny other tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100 If tags 9F02 (amount),9F03 (other amount), or 9C (transaction type) are included, they will take priority over these values supplied as individual parameters to this method.
forceOnlineTRUE = do not allow offline approval, FALSE = allow ICC to approve offline if terminal capable Note: To request tags to be included in default response, use tag DFEE1A, and specify tag list. Example four tags 9F02, 9F36, 95, 9F37 to be included in response = DFEE1A079F029F369f9F37
isFastEMVIf TRUE, it will populate the IDTTransactionData.fastEMV with ASCII data similar to IDTech FastEMV KB output, after performing an auto-authenticate and auto-complete with ResultCode = Could Not Contact Host
identDevice ID to send command to. If not specified, current SDK default device will be used.
Returns
RETURN_CODE: Values can be parsed with device_getResponseCodeString
static void IDTechSDK.IDT_VendIII.lcd_retrieveMessage ( DisplayMessages.DISPLAY_MESSAGE_LANGUAGE  lang,
DisplayMessages.DISPLAY_MESSAGE_IDENTIFIER  id,
ref string  line1,
ref string  line2 
)
static

Retrieve LCD Message

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

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

Disable MSR Swipe Cancels MSR swipe request.

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

Enable MSR Swipe

Enables MSR, waiting for swipe to occur. Allows track selection. Returns IDTMSRData instance to deviceDelegate::swipeMSRData:( string ident = "")

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

SDK Version

  • All Devices

Returns the current version of SDK

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

Set Callback

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

Set Callback

Sets the class callback

Parameters
my_CallbackThe callback function to receive the response message from device. defined as follows. public unsafe delegate void MFCCallBack(Parameters parameters, ident);
contextThe context of the UI thread
static bool IDTechSDK.IDT_VendIII.useSerialPort ( int  port)
static

Use Serial Port Interface

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

Parameters
portSerial Port to use. Example COM1 = 1.
Returns
bool TRUE=successful, FALSE=failure
static bool IDTechSDK.IDT_VendIII.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_VendIII

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_VendIII.useSerialPortLinux ( string  path)
static

Use Serial Port Interface on Linux

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

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

Use Serial Port Interface on Linux with baud rate

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

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

Property Documentation

IDT_VendIII IDTechSDK.IDT_VendIII.SharedController
staticget

Singleton Instance

Establishes an singleton instance of IDT_VendIII class.

Returns
Instance of IDT_VendIII

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