Skip to main content

Application Development Kit (Version 4.8)


SDI Class Reference

Last updated: 05-Mar-2025

#include <sdi_if.h>

Inheritance diagram for SDI:
Collaboration diagram for SDI:

Public Member Functions

bool  getDateTime (unsigned char *buffer)
  Read numeric date/time. More...
bool  setDateTime (const unsigned char *dateTime)
  Write numeric date/time. More...
unsigned char  getLanguage ()
  Call Sys Get Status (20-04), tag 'D6', DOL approach to read system default language. More...
bool  setLanguage (unsigned char languageId)
  Call Sys Set Status (20-09), tag 'D6', DOL approach to set system default language. More...
unsigned char  getCardDataEntryDeactivation ()
  Call Sys Get Status (20-04), tag 'D7', DOL approach to read system default card data entry deactivation value. More...
bool  setCardDataEntryDeactivation (unsigned char value)
  Call Sys Set Status (20-09), tag 'D7', DOL approach to set system default card data entry deactivation value. More...
unsigned char  getCardDataEntryMode ()
  Call Sys Get Status (20-04), tag 'D8', DOL approach to read system default card data entry mode. More...
bool  setCardDataEntryMode (unsigned char value)
  Call Sys Set Status (20-09), tag 'D8', DOL approach to set the system default card data entry mode. More...
bool  setIdleText (std::string text, bool epp=true)
  Command to set the idle text (20-13). More...
bool  showMacDesktop (bool epp=true)
  Switch from SDI to MAC Desktop (20-18). More...
int  getProperty (enum vfisysinfo::SYSPropertyInt p, bool epp=false)
  Get Integer Property by SYSINFO-ADK (20-1A, P2 = 00). More...
enum vfisysinfo::sysError  getProperty (enum vfisysinfo::SYSPropertyInt p, int &value, bool epp=false)
  Get Integer Property by SYSINFO-ADK (20-1A, P2 = 00). More...
enum vfisysinfo::sysError  setProperty (enum vfisysinfo::SYSPropertyInt p, int value, bool epp=false)
  Set Integer Property by SYSINFO-ADK (20-19, P2 = 00). More...
std::string  getProperty (enum vfisysinfo::SYSPropertyString p, bool epp=false)
  Get String Property by SYSINFO-ADK (20-1A, P2 = 01). More...
enum vfisysinfo::sysError  getProperty (enum vfisysinfo::SYSPropertyString p, std::string &value, bool epp=false)
  Get String Property by SYSINFO-ADK (20-1A, P2 = 01). More...
enum vfisysinfo::sysError  setProperty (enum vfisysinfo::SYSPropertyString p, const std::string &value, bool epp=false)
  Set String Property by SYSINFO-ADK (20-19, P2 = 01). More...
std::string  getVersionInfo (bool epp=false)
  read SDI version info via Get SDI version info (20-1C). More...
bool  checkForUpdate (unsigned char updateKind)
  Check if update available on Android platform and execute (20-1D). More...
bool  waitCardRemoval (unsigned seconds)
  Wait Card Removal (23-02). More...
int  sendWaitCardRemoval (unsigned seconds)
  Wait Card Removal (23-02), send only. More...
void  clearDataStore ()
  Clear data, especially sensitive data related to last transaction (29-03). More...
bool  vclRegistartSRED (std::vector< unsigned char > &track1, std::vector< unsigned char > &track2, std::vector< unsigned char > &track3)
  Request VCL to turn on the encryption in SRED mode (28-00). More...
bool  vclStatusRequest (std::vector< unsigned char > &vclStatus)
  Get the current status of VCL (28-01). More...
bool  vclAdvanceDDK (std::vector< unsigned char > &track1, std::vector< unsigned char > &track2, std::vector< unsigned char > &track3)
  Request VCL to turn on the encryption in SRED mode (28-02). More...
bool  vclRequestEParms (std::vector< unsigned char > &eParms)
  Get the eParms of the last encryption from VCL (28-03). More...
std::string  vclGetDiagnosticData (unsigned char format=1, unsigned char pageNumber=0)
  Get the diagnostic data from VCL (28-06, VCL: DIAG_QUERY). More...
int  vclGetKeyDerivationMode ()
  Extract key derivation mode from diagnostic data (28-07, VCL: DIAG_QUERY). More...
bool  vclOverrideMessageQuery (std::vector< unsigned char > &track1, std::vector< unsigned char > &track2, std::vector< unsigned char > &track3)
  VCL Override Message Query (28-08). More...
bool  vclKsnRequest (std::string &ksn)
  VCL KSN Request (28-09). More...
bool  vclKmailinRequest ()
  VCL KMAILIN Request (28-0A). More...
libsdi::SDI_SW12  pluginCommand (const unsigned char plugin, const unsigned char cmd, const std::vector< unsigned char > &data, std::vector< unsigned char > &response)
  Send a plugin specific command (26-<plugin id>, P2 = <command id>). More...
bool  setManualPAN (const std::vector< unsigned char > &pan)
  PAN injection after manual card data entry on application's side for ISO-0 PIN block. More...
bool  setManualPAN (const std::string &pan)
  PAN injection after manual card data entry on application's side for ISO-0 PIN block. More...
libsdi::SDI_SW12  performValidationChecks (std::vector< MatchingRecord > &records, const std::vector< unsigned char > &currentDate, const unsigned char options=0, const std::vector< unsigned char > IIN=std::vector< unsigned char >())
  Perform the validation checks for the current card using the validation table (cardranges.json) stored on the device (29-05). More...
libsdi::SDI_SW12  getValidationInfo (std::string &info)
  Perform the get validation info command to get the header information of the validation table file (cardranges.json) stored on the device (29-06). More...
libsdi::SDI_SW12  sysUploadStart (const std::string &filename, SYSUploadType type, bool epp=false)
  Start upload of a software package or a configuration file to the SDI Server (20-14). More...
libsdi::SDI_SW12  sysUploadTransfer (const std::vector< unsigned char > &packet, unsigned packet_no, bool epp=false)
  Transfer data packet to the SDI Server (20-15). More...
libsdi::SDI_SW12  sysUploadFinalize (const std::vector< unsigned char > *md5=NULL, const std::vector< unsigned char > *mac=NULL, bool epp=false)
  Start upload of a software package or a configuration file to the SDI Server (20-16). More...
bool  sysShutdown (bool epp=false)
  Execute a system shutdown, (20-17, P2 = 00). More...
bool  sysReboot (bool epp=false)
  Execute a system reboot, (20-17, P2 = 01). More...
bool  sysSleep (bool epp=false)
  Execute a system sleep, (20-17, P2 = 02). Not supported on Android. More...
bool  sysHybernate (bool epp=false)
  Execute a system hybernate, (20-17, P2 = 03). Not supported on Android. More...
bool  installSponsorCert (const std::vector< unsigned char > &cert)
  Check and Install a Sponsor Certificate (20-1B). More...
bool  getLastInstallError (std::string &json, std::string &bundle, std::string &package, bool epp=false)
  Get last installation error from secure installer (20-1E). More...
void  externalButton (void)
  Send External Button command '20 20' always with P2 = 1 (suppress response) to inform the SDI-Server in Headless Mode that the external button is pressed. More...
bool  enableEpp (int &status)
  Enables a connected EPP (20-21, P2 = 00). More...
bool  disableEpp (int &status)
  Disables a connected EPP (20-21, P2 = 01). More...
bool  factoryReset ()
  This command resets SDI server to factory defaults (20-22) More...
bool  readCertificate (const std::string &name, std::vector< unsigned char > &certificate)
  Read Keystore Certificate (20-23) More...
bool  setUseCurrencyAbbreviation (const unsigned char *currency, bool useAbbreviation)
  Make SDI use ISO-4217 instead of using a symbol like $ or € More...
bool  setUseCurrencyAbbreviation (unsigned currency, bool useAbbreviation)
  Make SDI use ISO-4217 instead of using a symbol like $ or € More...
bool  msrSwitchLeds (int led1, int led2, int led3, int duration)
bool  msrSetSensitivty (unsigned char level, bool epp=false)
  Set MSR sensitivity level. More...
enum vfiprt::PrtError  setPrinterProperty (enum vfiprt::PrtPropertyInt p, int value)
  Set Integer Printer Property by GUIPRT ADK (25-00, P2 = 00). More...
enum vfiprt::PrtError  setPrinterProperty (enum vfiprt::PrtPropertyString p, const std::string &value)
  Set String Printer Property by GUIPRT ADK (25-00, P2 = 01). More...
enum vfiprt::PrtError  getPrinterProperty (enum vfiprt::PrtPropertyInt p, int &value)
  Get Integer Printer Property by GUIPRT ADK (25-01, P2 = 00). More...
enum vfiprt::PrtError  getPrinterProperty (enum vfiprt::PrtPropertyString p, std::string &value)
  Get String Printer Property by GUIPRT ADK (25-01, P2 = 01). More...
enum vfiprt::PrtError  printHtml (const std::string &html, bool landscape=false)
  Perform the Print HTML command (25-02). More...
enum vfiprt::PrtError  printBitmap (const int width, const int height, const std::vector< unsigned char > &data)
  Perform the Print Bitmap command (25-04). More...
- Public Member Functions inherited from SdiBase
  SdiBase ()
enum SDI_SW12  getSdiSw12 ()
int  getAdditionalResultValue ()
  Access Additional Result Value if returned in SDI response. More...
SDICLIENT_ERROR  getClientError ()
  Access client side error codes. More...
enum SDI_SW12  receiveSW12 ()
  Receive SDI server response with no data. More...
void  clear ()
  clear result data obtained from SDI communication More...
void  importResults (const SdiBase &intermediate)
  set result data obtained from intermediate SDI communication More...

Additional Inherited Members

- Protected Member Functions inherited from SdiBase
void  setSdiSw12 (enum SDI_SW12 s)
void  setClientError (int libsdiprotocol_result)
- Protected Attributes inherited from SdiBase
unsigned short  sw12
int  additionalResultValue
SDICLIENT_ERROR  clientErr

Member Function Documentation

◆ checkForUpdate()

bool checkForUpdate ( unsigned char  updateKind )

Check if update available on Android platform and execute (20-1D).

Parameters
[in] updateKind e.g. 6 for SDI user config. See SDI server documentation.
Returns
true for success (SW12 = '9000'

◆ clearDataStore()

void clearDataStore ( )

Clear data, especially sensitive data related to last transaction (29-03).

◆ disableEpp()

bool disableEpp ( int &  status )

Disables a connected EPP (20-21, P2 = 01).

Parameters
[out] status connection states in case of error. Possible values are: 0 -> EPP is disconnected 1 -> EPP Sponsor Id mismatch 2 -> EPP Exchange of certificates failed 3 -> EPP EMV configuration problem 4 -> EPP NFC configuration problem 5 -> EPP SDI configuration problem
Returns
true for success

◆ enableEpp()

bool enableEpp ( int &  status )

Enables a connected EPP (20-21, P2 = 00).

Parameters
[out] status connection states in case of error. Possible values are: 0 -> EPP is disconnected 1 -> EPP Sponsor Id mismatch 2 -> EPP Exchange of certificates failed 3 -> EPP EMV configuration problem 4 -> EPP NFC configuration problem 5 -> EPP SDI configuration problem
Returns
true for success

◆ externalButton()

void externalButton ( void  )

Send External Button command '20 20' always with P2 = 1 (suppress response) to inform the SDI-Server in Headless Mode that the external button is pressed.

◆ factoryReset()

bool factoryReset ( )

This command resets SDI server to factory defaults (20-22)

Returns
true for success

◆ getCardDataEntryDeactivation()

unsigned char getCardDataEntryDeactivation ( )

Call Sys Get Status (20-04), tag 'D7', DOL approach to read system default card data entry deactivation value.

Returns
default card data entry deactivation value current command execution

0 perform all input

1 skip card verification code

2 skip expiration and verification code

4 just enter CVV after card data read from mag. stripe

0xff error, use getSdiSw12() for further analysis

◆ getCardDataEntryMode()

unsigned char getCardDataEntryMode ( )

Call Sys Get Status (20-04), tag 'D8', DOL approach to read system default card data entry mode.

Returns
card data entry mode

0: Card Data Entry performed on one screen

1: Card Data Entry performed on separate screens

0xff an error occurred, use getSdiSw12() for further analysis

◆ getDateTime()

bool getDateTime ( unsigned char *  buffer )

Read numeric date/time.

Call Sys Get Status (20-04), tag 'D0', DOL approach. This is an alternative to getProperty(vfisysinfo::SYS_PROP_RTC) which returns a string. NOTE: In contrast to SDI serial interface format is numeric (7 bytes BCD).

Parameters
[out] buffer for date/time n14 (length 7, 'yyyymmddHHMMSS')
Returns
true in case of success

◆ getLanguage()

unsigned char getLanguage ( )

Call Sys Get Status (20-04), tag 'D6', DOL approach to read system default language.

Returns
languageId %SDI language code further analysis, 0xFF in case of error.

◆ getLastInstallError()

bool getLastInstallError ( std::string &  json,
std::string &  bundle,
std::string &  package,
bool  epp = false 
)

Get last installation error from secure installer (20-1E).

Parameters
[out] json new API output in JSON format.
[out] bundle old API output - name of failed bundle
[out] package old API output - name of failed package
[in] epp true if value shall be read from external PIN pad
Returns
true for success

◆ getPrinterProperty() [1/2]

enum vfiprt::PrtError getPrinterProperty ( enum vfiprt::PrtPropertyInt  p,
int &  value 
)

Get Integer Printer Property by GUIPRT ADK (25-01, P2 = 00).

In case of error vfiprt::PRT_FAIL is returned and the details can be analyzed by calling SdiBase::getSdiSw12 and SdiBase::getAddtionalResultValue().

Parameters
[in] p integer property identifier
[out] value the value of that integer property
Returns
value returned by GUIPRT ADK, vfiprt::PRT_FAIL in case of error

◆ getPrinterProperty() [2/2]

enum vfiprt::PrtError getPrinterProperty ( enum vfiprt::PrtPropertyString  p,
std::string &  value 
)

Get String Printer Property by GUIPRT ADK (25-01, P2 = 01).

In case of error vfiprt::PRT_FAIL is returned and the details can be analyzed by calling SdiBase::getSdiSw12 and SdiBase::getAddtionalResultValue().

Parameters
[in] p string property identifier
[out] value the value of that string property
Returns
value returned by GUIPRT ADK, vfiprt::PRT_FAIL in case of error

◆ getProperty() [1/4]

int getProperty ( enum vfisysinfo::SYSPropertyInt  p,
bool  epp = false 
)

Get Integer Property by SYSINFO-ADK (20-1A, P2 = 00).

If 0 is returned, call SdiBase::getSdiSw12() to check if an error has occurred. If applicable call SdiBase::getAdditionalResultValue() to read the error raised by SYSINFO ADK.

Parameters
[in] p integer property identifier
[in] epp true if value shall be read from external PIN pad
Returns
property value, 0 in case of failure

◆ getProperty() [2/4]

enum vfisysinfo::sysError getProperty ( enum vfisysinfo::SYSPropertyInt  p,
int &  value,
bool  epp = false 
)

Get Integer Property by SYSINFO-ADK (20-1A, P2 = 00).

In case of error vfisysinfo::SYS_ERR_FAIL is returned and the details can be analyzed by calling SdiBase::getSdiSw12 and SdiBase::getAddtionalResultValue().

Parameters
[in] p integer property identifier
[out] value the value of that integer property
[in] epp true if value shall be read from external PIN pad
Returns
value returned by SYSINFO ADK, vfisysinfo::SYS_ERR_FAIL in case of error

◆ getProperty() [3/4]

std::string getProperty ( enum vfisysinfo::SYSPropertyString  p,
bool  epp = false 
)

Get String Property by SYSINFO-ADK (20-1A, P2 = 01).

If empty string is returned, call SdiBase::getSdiSw12() to check if an error has occurred. If applicable call SdiBase::getAdditionalResultValue() to read the error raised by SYSINFO ADK.

Parameters
[in] p string property identifier
[in] epp true if value shall be read from external PIN pad
Returns
property value, empty string in case of failure

◆ getProperty() [4/4]

enum vfisysinfo::sysError getProperty ( enum vfisysinfo::SYSPropertyString  p,
std::string &  value,
bool  epp = false 
)

Get String Property by SYSINFO-ADK (20-1A, P2 = 01).

In case of error vfisysinfo::SYS_ERR_FAIL is returned and the details can be analyzed by calling SdiBase::getSdiSw12 and SdiBase::getAddtionalResultValue().

Parameters
[in] p string property identifier
[out] value the value of that string property
[in] epp true if value shall be read from external PIN pad
Returns
value returned by SYSINFO ADK, vfisysinfo::SYS_ERR_FAIL in case of error

◆ getValidationInfo()

libsdi::SDI_SW12 getValidationInfo ( std::string &  info )

Perform the get validation info command to get the header information of the validation table file (cardranges.json) stored on the device (29-06).

Parameters
[out] info json string containing the details section of the validation table file
Returns
SW12 returned by the SDI Server

◆ getVersionInfo()

std::string getVersionInfo ( bool  epp = false )

read SDI version info via Get SDI version info (20-1C).

Parameters
[in] epp true if value shall be read from external PIN pad
Returns
versions a single string "<component A>:<version A>;<component B>:version b>;..."

◆ installSponsorCert()

bool installSponsorCert ( const std::vector< unsigned char > &  cert )

Check and Install a Sponsor Certificate (20-1B).

Parameters
[in] cert sponsor certification DER-encoded X.509 certificate
Returns
true for succcess

◆ msrSetSensitivty()

bool msrSetSensitivty ( unsigned char  level,
bool  epp = false 
)

Set MSR sensitivity level.

Parameters
[in] level sensitivity level (DFA039)
[in] epp command destination (DFA150), optional, default false

◆ msrSwitchLeds()

bool msrSwitchLeds ( int  led1,
int  led2,
int  led3,
int  duration 
)

Set LED states, see MSR_SwitchLeds()

Parameters
[in] led1 LED 1 state
[in] led2 LED 2 state
[in] led3 LED 3 state
[in] duration Lighting duration in seconds. if > 0 all LEDs are switched off after this time.

◆ performValidationChecks()

libsdi::SDI_SW12 performValidationChecks ( std::vector< MatchingRecord > &  records,
const std::vector< unsigned char > &  currentDate,
const unsigned char  options = 0,
const std::vector< unsigned char >  IIN = std::vectorunsigned char >() 
)

Perform the validation checks for the current card using the validation table (cardranges.json) stored on the device (29-05).

Parameters
[out] records complete matching table record, first entry in the vector is the best matching record
[in] currentDate date (DDMMYY) against which the card is to be checked
[in] options option to return all matching card ranges, 0 to return only the best match, 1 to return all matches
[in] IIN Issuer Identification Number (IIN), this will be used as alternative for the PAN to find the best match
Returns
SW12 returned by the SDI Server

◆ pluginCommand()

libsdi::SDI_SW12 pluginCommand ( const unsigned char  plugin,
const unsigned char  cmd,
const std::vector< unsigned char > &  data,
std::vector< unsigned char > &  response 
)

Send a plugin specific command (26-<plugin id>, P2 = <command id>).

Parameters
[in] plugin id of the plugin which is supposed to execute the command (INS)
[in] cmd plugin's command id (P2)
[in] data command data
[out] response entire SDI server response starting with SDI status word, followed by response data from the plugin at offset 2
Returns
SDI response status word (SW12)

◆ printBitmap()

enum vfiprt::PrtError printBitmap ( const int  width,
const int  height,
const std::vector< unsigned char > &  data 
)

Perform the Print Bitmap command (25-04).

Parameters
[in] width bitmap width in pixel
[in] height bitmap height in pixel
[in] data bitmap raw data
Returns
value returned by GUIPRT ADK, vfiprt::PRT_FAIL in case of error

◆ printHtml()

enum vfiprt::PrtError printHtml ( const std::string &  html,
bool  landscape = false 
)

Perform the Print HTML command (25-02).

Parameters
[in] html html string containing the text to print
[in] landscape enable landscape printing. default is false
Returns
value returned by GUIPRT ADK, vfiprt::PRT_FAIL in case of error

◆ readCertificate()

bool readCertificate ( const std::string &  name,
std::vector< unsigned char > &  certificate 
)

Read Keystore Certificate (20-23)

Parameters
[in] name certificate reference name (DFA500)
[out] certificate target buffer for placing the certification in DER format

◆ sendWaitCardRemoval()

int sendWaitCardRemoval ( unsigned  seconds )

Wait Card Removal (23-02), send only.

Send command Wait Card Removal. To be used with the data available callback. Once data is available call receiveSW12() to get the result.

Parameters
[in] seconds wait time in seconds
Returns
return result of SDI_Send()

◆ setCardDataEntryDeactivation()

bool setCardDataEntryDeactivation ( unsigned char  value )

Call Sys Set Status (20-09), tag 'D7', DOL approach to set system default card data entry deactivation value.

Parameters
[in] value temporary Card Entry Value deactivation during the current command execution

0 perform all input

1 skip card verification code

2 skip expiration and verification code

4 just enter CVV after card data read from mag. stripe
Returns
true for success

◆ setCardDataEntryMode()

bool setCardDataEntryMode ( unsigned char  value )

Call Sys Set Status (20-09), tag 'D8', DOL approach to set the system default card data entry mode.

Parameters
[in] value Card Data Entry mode

0: Card Data Entry performed on one screen

1: Card Data Entry performed on separate screens
Returns
true for success

◆ setDateTime()

bool setDateTime ( const unsigned char *  dateTime )

Write numeric date/time.

Call Sys Set Status (20-09), tag 'D0', DOL approach. This is an alternative to setProperty(vfisysinfo::SYS_PROP_RTC) which returns a string. NOTE: In contrast to SDI serial interface format is numeric (7 bytes BCD).

Parameters
[in] dateTime for date/time n14 (length 7, 'yyyymmddHHMMSS')
Returns
true in case of success

◆ setIdleText()

bool setIdleText ( std::string  text,
bool  epp = true 
)

Command to set the idle text (20-13).

Parameters
[in] text idle text UTF-8 format, empty for deletion
[in] epp true if value shall be read from external PIN pad
Returns
true for succcess

◆ setLanguage()

bool setLanguage ( unsigned char  languageId )

Call Sys Set Status (20-09), tag 'D6', DOL approach to set system default language.

Parameters
[in] languageId %SDI language code
Returns
true for success

◆ setManualPAN() [1/2]

bool setManualPAN ( const std::string &  pan )

PAN injection after manual card data entry on application's side for ISO-0 PIN block.

  
This command will fail if VOS3-CARDS plugin is not loaded.
Parameters
[in] pan PAN from manual card data input (n ..19)
Returns
true for success

◆ setManualPAN() [2/2]

bool setManualPAN ( const std::vector< unsigned char > &  pan )

PAN injection after manual card data entry on application's side for ISO-0 PIN block.

  
This command will fail if VOS3-CARDS plugin is not loaded.
Parameters
[in] pan PAN from manual card data input (cn ..19, ..10 bytes)
Returns
true for success

◆ setPrinterProperty() [1/2]

enum vfiprt::PrtError setPrinterProperty ( enum vfiprt::PrtPropertyInt  p,
int  value 
)

Set Integer Printer Property by GUIPRT ADK (25-00, P2 = 00).

In case of error vfiprt::PRT_FAIL is returned and the details can be analyzed by calling SdiBase::getSdiSw12 and SdiBase::getAddtionalResultValue().

Parameters
[in] p integer property identifier
[in] value the value of that integer property
Returns
value returned by GUIPRT ADK, vfiprt::PRT_FAIL in case of error

◆ setPrinterProperty() [2/2]

enum vfiprt::PrtError setPrinterProperty ( enum vfiprt::PrtPropertyString  p,
const std::string &  value 
)

Set String Printer Property by GUIPRT ADK (25-00, P2 = 01).

In case of error vfiprt::PRT_FAIL is returned and the details can be analyzed by calling SdiBase::getSdiSw12 and SdiBase::getAddtionalResultValue().

Parameters
[in] p string property identifier
[in] value the value of that string property
Returns
value returned by GUIPRT ADK, vfiprt::PRT_FAIL in case of error

◆ setProperty() [1/2]

enum vfisysinfo::sysError setProperty ( enum vfisysinfo::SYSPropertyInt  p,
int  value,
bool  epp = false 
)

Set Integer Property by SYSINFO-ADK (20-19, P2 = 00).

In case of error vfisysinfo::SYS_ERR_FAIL is returned and the details can be analyzed by calling SdiBase::getSdiSw12 and SdiBase::getAddtionalResultValue().

Parameters
[in] p integer property identifier
[in] value the value of that integer property
[in] epp true if value shall be read from external PIN pad
Returns
value returned by SYSINFO ADK, vfisysinfo::SYS_ERR_FAIL in case of error

◆ setProperty() [2/2]

enum vfisysinfo::sysError setProperty ( enum vfisysinfo::SYSPropertyString  p,
const std::string &  value,
bool  epp = false 
)

Set String Property by SYSINFO-ADK (20-19, P2 = 01).

In case of error vfisysinfo::SYS_ERR_FAIL is returned and the details can be analyzed by calling SdiBase::getSdiSw12 and SdiBase::getAddtionalResultValue().

Parameters
[in] p string property identifier
[in] value the value of that string property
[in] epp true if value shall be read from external PIN pad
Returns
value returned by SYSINFO ADK, vfisysinfo::SYS_ERR_FAIL in case of error

◆ setUseCurrencyAbbreviation() [1/2]

bool setUseCurrencyAbbreviation ( const unsigned char *  currency,
bool  useAbbreviation 
)

Make SDI use ISO-4217 instead of using a symbol like $ or €

Parameters
[in] currency BCD encoded currency code (ISO-4217) to be configured (5F2A)
[in] useAbbreviation true: Use ISO-4217 (3 letters), false: Use symbol (default)

◆ setUseCurrencyAbbreviation() [2/2]

bool setUseCurrencyAbbreviation ( unsigned  currency,
bool  useAbbreviation 
)

Make SDI use ISO-4217 instead of using a symbol like $ or €

Parameters
[in] currency binary currency (ISO-4217) to be configured. Conversion to BCD is applied (5F2A).
[in] useAbbreviation true: Use ISO-4217 (3 letters), false: Use symbol (default)

◆ showMacDesktop()

bool showMacDesktop ( bool  epp = true )

Switch from SDI to MAC Desktop (20-18).

SDI is still running in background.

Parameters
[in] epp true if value shall be read from external PIN pad
Returns
true for succcess

◆ sysHybernate()

bool sysHybernate ( bool  epp = false )

Execute a system hybernate, (20-17, P2 = 03). Not supported on Android.

Parameters
[in] epp command destination, false for Countertop, true for EPP
Returns
true for succcess

◆ sysReboot()

bool sysReboot ( bool  epp = false )

Execute a system reboot, (20-17, P2 = 01).

Parameters
[in] epp command destination, false for Countertop, true for EPP
Returns
true for succcess

◆ sysShutdown()

bool sysShutdown ( bool  epp = false )

Execute a system shutdown, (20-17, P2 = 00).

Parameters
[in] epp command destination, false for Countertop, true for EPP
Returns
true for succcess

◆ sysSleep()

bool sysSleep ( bool  epp = false )

Execute a system sleep, (20-17, P2 = 02). Not supported on Android.

Parameters
[in] epp command destination, false for Countertop, true for EPP
Returns
true for succcess

◆ sysUploadFinalize()

libsdi::SDI_SW12 sysUploadFinalize ( const std::vector< unsigned char > *  md5 = NULL,
const std::vector< unsigned char > *  mac = NULL,
bool  epp = false 
)

Start upload of a software package or a configuration file to the SDI Server (20-16).

  
For Upload type SYS_UPLOAD_SOFTWARE_UPDATE a post installation action might be available and can be accessed with getAdditionalResultValue().
Parameters
[in] md5 MD5 check sum
[in] mac MAC of the configuration file
[in] epp upload destination, false for Countertop (default), true for EPP
Returns
SW12 returned by the SDI Server

◆ sysUploadStart()

libsdi::SDI_SW12 sysUploadStart ( const std::string &  filename,
SYSUploadType  type,
bool  epp = false 
)

Start upload of a software package or a configuration file to the SDI Server (20-14).

Parameters
[in] filename filename including extension, mandatory in case of Software Update, not needed for configuration upload
[in] type configuration type
[in] epp upload destination, false for Countertop, true for EPP
Returns
SW12 returned by the SDI Server

◆ sysUploadTransfer()

libsdi::SDI_SW12 sysUploadTransfer ( const std::vector< unsigned char > &  packet,
unsigned  packet_no,
bool  epp = false 
)

Transfer data packet to the SDI Server (20-15).

Parameters
[in] packet record data, size is limited to maximum message size of the underlying transport layer
[in] packet_no packet number, first packet should be number 1
[in] epp upload destination, false for Countertop, true for EPP
Returns
SW12 returned by the SDI Server

◆ vclAdvanceDDK()

bool vclAdvanceDDK ( std::vector< unsigned char > &  track1,
std::vector< unsigned char > &  track2,
std::vector< unsigned char > &  track3 
)

Request VCL to turn on the encryption in SRED mode (28-02).

For the case of error getSdiSw12() or getAdditionalResultValue() might contain further information.

Parameters
[out] track1 - track 1 data returned from VCL, hexadecimal
[out] track2 - track 2 data returned from VCL, hexadecimal
[out] track3 - track 3 data returned from VCL, hexadecimal
Returns
true in case of success

◆ vclGetDiagnosticData()

std::string vclGetDiagnosticData ( unsigned char  format = 1,
unsigned char  pageNumber = 0 
)

Get the diagnostic data from VCL (28-06, VCL: DIAG_QUERY).

The diagnostic query result will be forwarded by the SDI-Server as obtained from VCL. Further processing is up to the payment application. Additional parameters can be the output format as well as the requested page number.

Parameters
[in] format output format, 1: verbose, 2: concise, 4:XML
[in] pageNumber page number 0..127
Returns
diagnostic data

◆ vclGetKeyDerivationMode()

int vclGetKeyDerivationMode ( )

Extract key derivation mode from diagnostic data (28-07, VCL: DIAG_QUERY).

Returns
key derivation mode: 0: shared key, 1: unique key, -1: error (call getSdiSw12) for closer analysis)

◆ vclKmailinRequest()

bool vclKmailinRequest ( )

VCL KMAILIN Request (28-0A).

Use getAdditionalResultValue() or getSdiSw12() in case of failure.

Returns
true in case of success

◆ vclKsnRequest()

bool vclKsnRequest ( std::string &  ksn )

VCL KSN Request (28-09).

For the case of error getSdiSw12() or getAdditionalResultValue() might contain further information.

Parameters
[out] ksn KSN in format ans
Returns
true in case of success

◆ vclOverrideMessageQuery()

bool vclOverrideMessageQuery ( std::vector< unsigned char > &  track1,
std::vector< unsigned char > &  track2,
std::vector< unsigned char > &  track3 
)

VCL Override Message Query (28-08).

For the case of error getSdiSw12() or getAdditionalResultValue() might contain further information.

Parameters
[out] track1 - track 1 data returned from VCL, hexadecimal
[out] track2 - track 2 data returned from VCL, hexadecimal
[out] track3 - track 3 data returned from VCL, hexadecimal
Returns
true in case of success

◆ vclRegistartSRED()

bool vclRegistartSRED ( std::vector< unsigned char > &  track1,
std::vector< unsigned char > &  track2,
std::vector< unsigned char > &  track3 
)

Request VCL to turn on the encryption in SRED mode (28-00).

For the case of error getSdiSw12() or getAdditionalResultValue() might contain further information.

Parameters
[out] track1 - track 1 data returned from VCL, hexadecimal
[out] track2 - track 2 data returned from VCL, hexadecimal
[out] track3 - track 3 data returned from VCL, hexadecimal
Returns
true in case of success

◆ vclRequestEParms()

bool vclRequestEParms ( std::vector< unsigned char > &  eParms )

Get the eParms of the last encryption from VCL (28-03).

This command should be used by the payment application if eParms is activated only. The eParms will be forwarded from the SDI-Server as obtained from VCL. Further processing is up to the payment application. In case of error call getSdiSw12() or getAdditionalResultValue() for more information.

Parameters
[out] eParms VCL eParms
Returns
true in case of success

◆ vclStatusRequest()

bool vclStatusRequest ( std::vector< unsigned char > &  vclStatus )

Get the current status of VCL (28-01).

In case of error call getSdiSw12() to get the error reason.

Parameters
[out] vclStatus VCL status
Returns
true if status has been received from SDI server

◆ waitCardRemoval()

bool waitCardRemoval ( unsigned  seconds )

Wait Card Removal (23-02).

Parameters
[in] seconds wait time in seconds
Returns
true if card is absent

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

Need help?

Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

Not yet a Verifone customer?

We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

Verifone logo