![]() |
IDTech Windows SDK Guide
1.2.165.1
API reference for VP3300
|
Public Member Functions | |
RETURN_CODE | config_getSerialNumber (ref string response) |
RETURN_CODE | device_getFirmwareVersion (ref string response) |
RETURN_CODE | device_sendDataCommand (string cmd, bool calcLRC, ref byte[] response) |
RETURN_CODE | device_sendDataCommand_ext (string cmd, bool calcLRC, ref byte[] response, int timeout, bool noResponse) |
RETURN_CODE | msr_startMSRSwipe (int timeout) |
RETURN_CODE | msr_cancelMSRSwipe () |
RETURN_CODE | emv_cancelTransaction () |
RETURN_CODE | ctls_cancelTransaction () |
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 | device_sendPAE (string command, ref string response, int timeout, string ip="") |
RETURN_CODE | ctls_activateTransaction (int timeout, byte[] tags, bool forceOnline, bool isFastEMV=false) |
RETURN_CODE | device_startTransaction (double amount, double amtOther, int exponent, int type, int timeout, byte[] tags, bool isFastEMV=false) |
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 | emv_retrieveTerminalData (ref byte[] tlv) |
RETURN_CODE | emv_removeTerminalData () |
RETURN_CODE | emv_setApplicationData (byte[] name, 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_getTerminalMajorConfiguration (ref int configuration) |
RETURN_CODE | emv_setTerminalMajorConfiguration (int configuration) |
RETURN_CODE | emv_setTerminalData (byte[] tlv) |
RETURN_CODE | ctls_setTerminalData (byte[] tlv) |
RETURN_CODE | device_pingDevice () |
RETURN_CODE | device_buzzer () |
RETURN_CODE | device_cancelTransaction () |
RETURN_CODE | device_controlLED (byte indexLED, byte control) |
RETURN_CODE | device_controlUserInterface (byte[] values) |
RETURN_CODE | device_sendVivoCommandP2 (byte command, byte subCommand, byte[] data, ref byte[] response) |
RETURN_CODE | device_sendVivoCommandP2_ext (byte command, byte subCommand, byte[] data, ref byte[] response, int timeout, bool noResponse) |
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_getPollMode (ref byte mode) |
RETURN_CODE | device_setMerchantRecord (int index, bool enabled, string merchantID, string merchantURL) |
RETURN_CODE | device_startRKI () |
RETURN_CODE | icc_getICCReaderStatus (ref byte status) |
RETURN_CODE | icc_powerOffICC () |
RETURN_CODE | icc_powerOnICC (ref byte[] ATR) |
RETURN_CODE | icc_exchangeAPDU (string c_APDU, ref byte[] response) |
RETURN_CODE | device_enablePassThrough (bool enablePassThrough) |
string | device_getResponseCodeString (RETURN_CODE eCode) |
RETURN_CODE | device_getTransactionResults (ref IDTTransactionData results) |
RETURN_CODE | config_getDate (ref int year, ref int month, ref int day) |
RETURN_CODE | config_setDate (int year, int month, int day) |
RETURN_CODE | config_getTime (ref int hour, ref int minute) |
RETURN_CODE | config_setTime (int hour, int minute) |
Static Public Member Functions | |
static int | getCommandTimeout () |
static void | setCommandTimeout (int milliseconds) |
static void | setCallback (CallBack my_Callback) |
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_updateDeviceFirmware (byte[] firmwareData) |
Properties | |
static IDT_VP3300 | SharedController [get] |
Class for VP4800 reader
RETURN_CODE IDTechSDK.IDT_VP3300.config_getDate | ( | ref int | year, |
ref int | month, | ||
ref int | day | ||
) |
Get Date Gets the date of the Real Time Clock
year | Valid values 0 - 9999 (example 2019) |
month | Valid values 1-12 |
day | Valid values 1-31 |
RETURN_CODE IDTechSDK.IDT_VP3300.config_getSerialNumber | ( | ref string | response | ) |
Polls device for Serial Number
response | Returns Serial Number |
RETURN_CODE IDTechSDK.IDT_VP3300.config_getTime | ( | ref int | hour, |
ref int | minute | ||
) |
Get Time Gets the time of the Real Time Clock
hour | Valid values 0-23 |
minute | Valid values 0-59 |
Set Time Sets the time of the Real Time Clock
hour | Valid values 0-23 |
minute | Valid values 0-59 |
RETURN_CODE IDTechSDK.IDT_VP3300.config_setDate | ( | int | year, |
int | month, | ||
int | day | ||
) |
Set Date Sets the date of the Real Time Clock
year | Valid values 0 - 9999 (example 2019) |
month | Valid values 1-12 |
day | Valid values 1-31 |
RETURN_CODE IDTechSDK.IDT_VP3300.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.
amount | Transaction amount value (tag value 9F02) |
amtOther | Other amount value, if any (tag value 9F03) |
exponent | Number of characters after decimile point |
type | Transaction type (tag value 9C). |
timeout | Timeout value in seconds. |
tags | The other tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100 |
forceOnline | TRUE = do not allow offline approval, FALSE = allow ICC to approve offline if terminal capable |
isFastEMV | If 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 |
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)
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_cancelTransaction | ( | ) |
Cancel Transaction
Cancels the currently executing EMV or CTLS transaction.
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_getAllConfigurationGroups | ( | ref byte | response[][] | ) |
Retrieve All Configuration Groups
Returns all the Configuration Groups installed on the terminal for CTLS
response | array of CTLS groups as TLV bytes |
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_getConfigurationGroup | ( | int | group, |
ref byte[] | tlv | ||
) |
Get Configuration Group
Retrieves the Configuration for the specified Group. Group 0 = terminal settings.
group | Configuration Group |
tlv | return data |
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_removeAllCAPK | ( | ) |
Remove All Certificate Authority Public Key
Removes all the CAPK for CTLS
RETURN_CODE IDTechSDK.IDT_VP3300.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
AID | Name of ApplicationID Must be between 5 and 16 bytes |
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_removeCAPK | ( | byte[] | capk | ) |
Remove Certificate Authority Public Key
Removes the CAPK for CTLS as specified by the RID/Index
capk | 6 byte CAPK = 5 bytes RID + 1 byte INDEX |
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_removeConfigurationGroup | ( | int | group | ) |
Remove Configuration Group
Removes the Configuration as specified by the Group. Must not by group 0
group | Configuration Group |
RETURN_CODE | Return codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_BTPay::device_getResponseCodeString:() |
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_retrieveAIDList | ( | ref byte | response[][] | ) |
Retrieve AID list
Returns all the AID names and their assigned groups installed on the terminal for CTLS.
response | array of TLV data objects: FFE4 (group name) followed by 9F06 (AID), and DFEE4F (Interface 01 = CTLS, 02 = CONTACT) |
RETURN_CODE IDTechSDK.IDT_VP3300.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.
AID | Name of ApplicationID. Must be between 5 and 16 bytes |
tlv | The TLV elements of the requested AID |
RETURN_CODE IDTechSDK.IDT_VP3300.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.
capk | 6 bytes CAPK = 5 bytes RID + 1 byte Index |
key | Response 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:
|
RETURN_CODE IDTechSDK.IDT_VP3300.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.
keys | [key1][key2]...[keyn], each key 6 bytes where key = 5 bytes RID + 1 byte index |
RETURN_CODE IDTechSDK.IDT_VP3300.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).
tlv | Response returned as a TLV |
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_setApplicationData | ( | byte[] | tlv | ) |
Set Application Data by AID
Sets the Application Data for CTLS as specified by TLV data
tlv | Application 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"
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_setCAPK | ( | byte[] | key | ) |
Set Certificate Authority Public Key
Sets the CAPK for CTLS as specified by the CAKey structure
key | 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:
|
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_setConfigurationGroup | ( | byte[] | tlv | ) |
Set Configuration Group
Sets the Configuration Group for CTLS as specified by the TLV data
tlv | Configuration Group Data in TLV format The first tag of the TLV data must be the group number (FFE4). A second tag must exist |
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_setDefaultConfiguration | ( | ) |
Set Default Configuration Group
Resets the device to default CTLS configuration group settings
RETURN_CODE IDTechSDK.IDT_VP3300.ctls_setTerminalData | ( | byte[] | tlv | ) |
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.
tlv | TerminalData configuration data |
RETURN_CODE | Return codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_BTPay::device_getResponseCodeString:() |
RETURN_CODE IDTechSDK.IDT_VP3300.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.
amount | Transaction amount value (tag value 9F02) |
amtOther | Other amount value, if any (tag value 9F03) |
exponent | Number of characters after decimile point |
type | Transaction type (tag value 9C). |
timeout | Timeout value in seconds. |
tags | Any 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. |
forceOnline | TRUE = do not allow offline approval, FALSE = allow ICC to approve offline if terminal capable |
isFastEMV | If 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 |
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)
RETURN_CODE IDTechSDK.IDT_VP3300.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.
timeout | Timeout value in seconds. |
tags | The tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100 |
isFastEMV | If 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 |
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)
RETURN_CODE IDTechSDK.IDT_VP3300.device_buzzer | ( | ) |
Buzzer Device
Buzzer the reader. If success can hear one beep. Otherwise, returns timeout.
RETURN_CODE IDTechSDK.IDT_VP3300.device_cancelTransaction | ( | ) |
Cancel Transaction
Cancels the currently executing device transaction.
RETURN_CODE IDTechSDK.IDT_VP3300.device_controlLED | ( | byte | indexLED, |
byte | control | ||
) |
Control LED
Control the reader. If connected, returns success. Otherwise, returns timeout. indexLED description 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. control description 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)
RETURN_CODE IDTechSDK.IDT_VP3300.device_controlUserInterface | ( | byte[] | values | ) |
Control User Interface
Controls the User Interface: Display, Beep, LED
values | Four bytes to control the user interface Byte[0] = LCD Message Messages 00-07 are normally controlled by the reader.
|
RETURN_CODE IDTechSDK.IDT_VP3300.device_enablePassThrough | ( | bool | enablePassThrough | ) |
Enable Pass Through
Enables Pass Through Mode for direct communication with L1 interface (power on icc, send apdu, etc).
enablePassThrough | true = pass through ON, false = pass through OFF |
RETURN_CODE IDTechSDK.IDT_VP3300.device_getFirmwareVersion | ( | ref string | response | ) |
Polls device for Firmware Version
response | Response returned of Firmware Version |
RETURN_CODE IDTechSDK.IDT_VP3300.device_getPollMode | ( | ref byte | mode | ) |
Get Poll Mode
Gets the poll mode for the device.
mode | : 00h = Auto Poll (USB I/F auto set to USB/HID) 01h = Poll on Demand (USB I/F auto set to USB/HID) 02h = QuickChip (USB I/F auto set to USB KB) 03h = QuickChip (enable QuickChip for CT + MSR) 04h = QuickChip (enable QuickChip for CL + MSR) |
string IDTechSDK.IDT_VP3300.device_getResponseCodeString | ( | RETURN_CODE | eCode | ) |
Get the description of response result.
eCode | the response result. |
the | string for description of response result |
RETURN_CODE IDTechSDK.IDT_VP3300.device_getTransactionResults | ( | ref IDTTransactionData | results | ) |
Get Transaction Results Gets the transaction results when the reader is functioning in "Auto Poll" mode
results | The transaction results |
RETURN_CODE IDTechSDK.IDT_VP3300.device_pingDevice | ( | ) |
Ping Device
Pings the reader. If connected, returns success. Otherwise, returns timeout.
RETURN_CODE IDTechSDK.IDT_VP3300.device_sendDataCommand | ( | string | cmd, |
bool | calcLRC, | ||
ref byte[] | response | ||
) |
Send a data command to the device
Sends a command to the device.
cmd | String representation of command to execute |
calcLRC | If TRUE , this will wrap command with start/length/lrc/sum/end: '{STX}{Len_Low}{Len_High} data {CheckLRC} {CheckSUM} {ETX}' |
response | Response data |
RETURN_CODE IDTechSDK.IDT_VP3300.device_sendDataCommand_ext | ( | string | cmd, |
bool | calcLRC, | ||
ref byte[] | response, | ||
int | timeout, | ||
bool | noResponse | ||
) |
Send a data command to the device - extended
Sends a command to the device.
cmd | String representation of command to execute |
calcLRC | If TRUE , this will wrap command as NGA with start/length/lrc/sum/end: '{STX}{Len_Low}{Len_High} data {CheckLRC} {CheckSUM} {ETX}' |
response | Response data |
timeout | Timeout value waiting for response, in milliseconds (1000 = 1 second) |
noResponse | if TRUE, this will not wait for a response and immediately return SUCCESS |
calcITP | If TRUE , this will wrap command as ITP with start/end/lrc: '{STX} data {ETX}{CheckLRC}' |
RETURN_CODE IDTechSDK.IDT_VP3300.device_sendPAE | ( | string | command, |
ref string | response, | ||
int | timeout, | ||
string | ip = "" |
||
) |
Send Payment Application Engine Command
Executes a PAE command
command | ASCII command string, should start with "*PAE" |
response | command response |
timeout | timeout waiting for PAE response |
ip | Optional IP address when connected via TCP/IP |
RETURN_CODE IDTechSDK.IDT_VP3300.device_sendVivoCommandP2 | ( | byte | command, |
byte | subCommand, | ||
byte[] | data, | ||
ref byte[] | response | ||
) |
Send Vivo Command Protocol 2
Sends a protocol 2 command to Vivo readers (IDG/NEO)
command | Command |
subCommand | Sub-Command |
data | Data. May be null |
response | Response |
RETURN_CODE IDTechSDK.IDT_VP3300.device_sendVivoCommandP2_ext | ( | byte | command, |
byte | subCommand, | ||
byte[] | data, | ||
ref byte[] | response, | ||
int | timeout, | ||
bool | noResponse | ||
) |
Send Vivo Command Protocol 2 Extended
Sends a protocol 2 command to Vivo readers (IDG/NEO)
command | Command |
subCommand | Sub-Command |
data | Data. May be null |
response | Response |
timeout | Timeout, in milliseconds (3000 = 3 seconds) |
noResponse | TRUE = don't wait for response, FALSE = wait for response defined by timeout |
RETURN_CODE IDTechSDK.IDT_VP3300.device_setBurstMode | ( | byte | mode | ) |
Send Burst Mode
Sets the burst mode forthe device.
mode | 0 = OFF, 1 = Always On, 2 = Auto Exit |
RETURN_CODE IDTechSDK.IDT_VP3300.device_setMerchantRecord | ( | int | index, |
bool | enabled, | ||
string | merchantID, | ||
string | merchantURL | ||
) |
Set Merchant Record Sets the merchant record for ApplePay VAS
index | Merchant Record index, valid values 1-6 |
enabled | Merchant Enabled/Valid flag |
merchantID | Merchant unique identifer registered with Apple. Example com.idtechproducts.applePay |
merchantURL | Merchant URL, when applicable |
RETURN_CODE IDTechSDK.IDT_VP3300.device_setPollMode | ( | byte | mode | ) |
Set Poll Mode
Sets the poll mode for the device. Auto Poll keeps reader active, Poll On Demand only polls when requested by terminal
mode | : 00h = Auto Poll (USB I/F auto set to USB/HID) 01h = Poll on Demand (USB I/F auto set to USB/HID) 02h = QuickChip (USB I/F auto set to USB KB) 03h = QuickChip (enable QuickChip for CT + MSR) 04h = QuickChip (enable QuickChip for CL + MSR) |
RETURN_CODE IDTechSDK.IDT_VP3300.device_startRKI | ( | ) |
Start Remote Key Injection
Starts a remote key injection request with IDTech RKI servers.
RETURN_CODE IDTechSDK.IDT_VP3300.device_startTransaction | ( | double | amount, |
double | amtOther, | ||
int | exponent, | ||
int | type, | ||
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.
amount | Transaction amount value (tag value 9F02) |
amtOther | Other amount value, if any (tag value 9F03) |
exponent | Number of characters after decimile point |
type | Transaction type (tag value 9C). |
timeout | Timeout value in seconds. |
tags | Any 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. |
isFastEMV | If 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 |
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)
|
static |
Update Firmware
Updates the firmware .
firmwareData | Signed binary data of a firmware file provided by IDTech |
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:
Example code starting a firmware update
Example monitoring firmware update status / success
RETURN_CODE IDTechSDK.IDT_VP3300.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.
timeout | Timeout value in seconds. |
tags | The tags to be included in the request. Passed as TLV Data. Example, tag 9F02 with amount 0x000000000100 would be 0x9F0206000000000100 |
forceOnline | TRUE = 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 |
isFastEMV | If 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 |
|
static |
Allow fallback for EMV transactions. Default is TRUE
allow | TRUE = allow fallback, FALSE = don't allow fallback |
RETURN_CODE IDTechSDK.IDT_VP3300.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 |
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
authenticate | TRUE = auto authenticate, FALSE = manually 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
authenticate | TRUE = auto authenticate, FALSE = manually authenticate |
tags | Tags to pass during authentication stage; |
RETURN_CODE IDTechSDK.IDT_VP3300.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
type | If 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 |
selection | If 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 |
RETURN_CODE IDTechSDK.IDT_VP3300.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
MSR | Swiped track data |
RETURN_CODE IDTechSDK.IDT_VP3300.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
type | If 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 |
KSN | If 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) |
PIN | If encipherd PIN, this is encrypted PIN block. If device does not implement pairing function, this is plaintext PIN |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_cancelTransaction | ( | ) |
Cancel Transaction
Cancels the currently executing EMV or CTLS transaction.
RETURN_CODE IDTechSDK.IDT_VP3300.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.
commError | Communication 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. |
authCode | Authorization code from host. Two bytes. Example 0x3030. (Tag value 8A). Required |
iad | Issuer Authentication Data, if any. Example 0x11223344556677883030 (tag value 91). |
tlvScripts | 71/72 scripts, if any |
tlv | Additional TVL data to return with transaction results (if any) |
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_VP3300.emv_getEMVConfigurationCheckValue | ( | ref string | response | ) |
Polls device for EMV Configuration Check Value
response | Response returned of Check Value of Configuration |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_getEMVKernelCheckValue | ( | ref string | response | ) |
Polls device for EMV Kernel Check Value
response | Response returned of Check Value of Kernel |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_getEMVKernelVersion | ( | ref string | response | ) |
Polls device for EMV Kernel Version
response | Response returned of Kernel Version |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_getTerminalMajorConfiguration | ( | ref int | configuration | ) |
Get Terminal Major Configuration
Gets the Terminal Data Major Configuration setting
configuration | The configuration that is set (1-5) |
RETURN_CODE | Return codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_NEO2::device_getResponseCodeString:() |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_removeAllApplicationData | ( | ) |
Remove All Application Data
Removes all the Application Data for EMV Kernel
RETURN_CODE IDTechSDK.IDT_VP3300.emv_removeAllCAPK | ( | ) |
Remove All Certificate Authority Public Key
Removes all the CAPK for EMV Kernel
RETURN_CODE IDTechSDK.IDT_VP3300.emv_removeAllCRL | ( | ) |
Remove All Certificate Revocation List Entries
Removes all CRLEntry entries
RETURN_CODE IDTechSDK.IDT_VP3300.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
AID | Name of ApplicationID Must be between 5 and 16 bytes |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_removeCAPK | ( | byte[] | capk | ) |
Remove Certificate Authority Public Key
Removes the CAPK for EMV Kernel as specified by the RID/Index
capk | 6 byte CAPK = 5 bytes RID + 1 byte INDEX |
RETURN_CODE IDTechSDK.IDT_VP3300.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
crlList | containing 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] |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_removeTerminalData | ( | ) |
Remove Terminal Data
Removes the Terminal Data
RETURN_CODE IDTechSDK.IDT_VP3300.emv_retrieveAIDList | ( | ref byte | response[][] | ) |
Retrieve AID list
Returns all the AID names installed on the terminal for EMV Kernel.
response | array of AID name byte arrays |
RETURN_CODE IDTechSDK.IDT_VP3300.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.
AID | Name of ApplicationID. Must be between 5 and 16 bytes |
tlv | The TLV elements of the requested AID |
RETURN_CODE IDTechSDK.IDT_VP3300.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.
capk | 6 bytes CAPK = 5 bytes RID + 1 byte Index |
key | Response 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:
|
RETURN_CODE IDTechSDK.IDT_VP3300.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.
keys | [key1][key2]...[keyn], each key 6 bytes where key = 5 bytes RID + 1 byte index |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_retrieveCRLList | ( | ref byte[] | list | ) |
Retrieve the Certificate Revocation List
Returns the CRL entries on the terminal.
list | [CRL1][CRL2]...[CRLn], each CRL 9 bytes where CRL = 5 bytes RID + 1 byte index + 3 bytes serial number |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_retrieveTerminalData | ( | ref byte[] | tlv | ) |
Retrieve Terminal Data
Retrieves the Terminal Data for EMV Kernel.
tlv | Response returned as a TLV |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_retrieveTransactionResult | ( | byte[] | tags, |
ref IDTTransactionData | tlv | ||
) |
Retrieve Transaction Results
Retrieves specified EMV tags from the currently executing transaction.
tags | Tags to be retrieved. Example 0x9F028A will retrieve tags 9F02 and 8A |
tlv | All requested tags returned as unencrypted, encrypted and masked TLV data in IDDTransactionData object |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_setApplicationData | ( | byte[] | name, |
byte[] | tlv | ||
) |
Set Application Data by AID
Sets the Application Data for EMV Kernel as specified by the application name and TLV data
name | Application name, 10-32 ASCII hex characters representing 5-16 bytes Example "a0000000031010" |
tlv | Application data in TLV format |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_setCAPK | ( | byte[] | key | ) |
Set Certificate Authority Public Key
Sets the CAPK for EMV Kernel as specified by the CAKey structure
key | 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:
|
RETURN_CODE IDTechSDK.IDT_VP3300.emv_setCRL | ( | byte[] | list | ) |
Set Certificate Revocation List
Sets the CRL
list | CRL 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] |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_setTerminalData | ( | byte[] | tlv | ) |
Set Terminal Data
Sets the Terminal Data for EMV Kernel
tlv | TerminalData configuration data |
RETURN_CODE | Return codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_BTPay::device_getResponseCodeString:() |
RETURN_CODE IDTechSDK.IDT_VP3300.emv_setTerminalMajorConfiguration | ( | int | configuration | ) |
Set Terminal Major Configuration
Sets the Terminal Data Major Configuration setting
configuration | The configuration to set (1-5) |
RETURN_CODE | Return codes listed as typedef enum in IDTCommon:RETURN_CODE. Values can be parsed with IDT_BTPay::device_getResponseCodeString:() |
RETURN_CODE IDTechSDK.IDT_VP3300.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.
amount | Transaction amount value (tag value 9F02) |
amtOther | Other amount value, if any (tag value 9F03) |
exponent | Number of characters after decimile point |
type | Transaction type (tag value 9C). |
timeout | Timeout value in seconds. |
tags | Any 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. |
forceOnline | TRUE = 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 |
isFastEMV | If 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 |
|
static |
Get Command Timeout
Gets the default timeout (in milliseconds) waiting for a blocking command response
time | Time |
RETURN_CODE IDTechSDK.IDT_VP3300.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.
c_APDU | APDU data packet |
response | Unencrypted/encrypted parsed APDU response |
RETURN_CODE IDTechSDK.IDT_VP3300.icc_getICCReaderStatus | ( | ref byte | status | ) |
Get Reader Status
Returns the reader status
status | Pointer 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 |
RETURN_CODE IDTechSDK.IDT_VP3300.icc_powerOffICC | ( | ) |
Power Off ICC
Powers down the ICC
If Success, empty If Failure, ASCII encoded data of error string
RETURN_CODE IDTechSDK.IDT_VP3300.icc_powerOnICC | ( | ref byte[] | ATR | ) |
Power On ICC
Power up the currently selected microprocessor card in the ICC reader
RETURN_CODE IDTechSDK.IDT_VP3300.msr_cancelMSRSwipe | ( | ) |
Disable MSR Swipe Cancels MSR swipe request.
RETURN_CODE IDTechSDK.IDT_VP3300.msr_startMSRSwipe | ( | int | timeout | ) |
Enable MSR Swipe
Enables MSR, waiting for swipe to occur.
timeout | Swipe Timeout Value |
|
static |
SDK Version
Returns the current version of SDK
|
static |
Set Callback
Sets the class callback
|
static |
Set Callback
Sets the class callback
my_Callback | The callback function to receive the response message from device. defined as follows. public unsafe delegate void MFCCallBack(Parameters parameters); |
context | The context of the UI thread |
|
static |
Set Command Timeout
Sets the default timeout (in milliseconds) waiting for a blocking command response
milliseconds | Time |
|
staticget |
Singleton Instance
Establishes an singleton instance of IDT_VP3300 class.