> For the complete documentation index, see [llms.txt](https://sandbox-docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/readme/modules/group__sdidata.md).

# Data interface

[Data Structures](#nested-classes) | [Functions](#func-members)

|                 |                                                                           |
| --------------- | ------------------------------------------------------------------------- |
| Data Structures |                                                                           |
| struct          | [SDIClient::PlaceHolder](#structvfisdi_1_1_s_d_i_client_1_1_place_holder) |
| struct          | [SDIClient::Matching](#structvfisdi_1_1_s_d_i_client_1_1_matching)        |

|           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Functions |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| int       | [dataGetEncData](#ga813d7fedf922c7951b19a9a6fdb2fd88) (unsigned handle, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&taglist, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&appdata, unsigned options, bool useStoredTX, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&out, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*iv=0, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*ksn=0)                                                                |
| int       | [dataGetEncData](#ga74cc79cb0a1b2ea695b3a0586871aa2d) (unsigned handle, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&taglist, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&appdata, unsigned options, bool useStoredTX, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&out, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*iv, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*ksn, bool incrementKSN, unsigned keysetID=0, unsigned masterKeysetID=0) |
| int       | [dataGetEncMsgData](#ga324bf519eb120e81b5077c1c0172766b) (unsigned handle, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&msgtemplate, const std::vector< [PlaceHolder](#structvfisdi_1_1_s_d_i_client_1_1_place_holder) > \&placeholder, bool useStoredTX, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&out, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*iv=0, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*ksn=0)                                                                                                                                                  |
| int       | [dataGetEncMsgData](#gac30545f8a9195769f65fd4ec25cc333c) (unsigned handle, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&msgtemplate, const std::vector< [PlaceHolder](#structvfisdi_1_1_s_d_i_client_1_1_place_holder) > \&placeholder, bool useStoredTX, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&out, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*iv, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*ksn, bool incrementKSN, unsigned keysetID=0, unsigned masterKeysetID=0)                                                                                   |
| int       | [dataFetchTxnTags](#gaf256c50646cbcf1b70a58200d4b1b9ca) (const std::vector< unsigned > \&taglist, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&out, unsigned char mode=0, bool cleartext\_date=false)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| int       | [dataFetchTxnTags](#ga9acbbd4302cbf4267f71e086f0a56128) (const std::vector< unsigned > \&taglist, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&out, unsigned char mode, bool cleartext\_date, unsigned options)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| int       | [dataClearDataStore](#ga1b5cc34ed0f55220536c998e0c62ecbb) ()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| int       | [dataGetMsgSignature](#ga8291925fbde8e8f922860f33853dbeee) (unsigned handle, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&msgtemplate, const std::vector< [PlaceHolder](#structvfisdi_1_1_s_d_i_client_1_1_place_holder) > \&placeholder, bool useStoredTX, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&out, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*iv=0, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*ksn=0)                                                                                                                                                |
| int       | [dataGetMsgSignature](#gadf11aa6f505b091c986e050e6ee066bd) (unsigned handle, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&msgtemplate, const std::vector< [PlaceHolder](#structvfisdi_1_1_s_d_i_client_1_1_place_holder) > \&placeholder, bool useStoredTX, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&out, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*iv, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*ksn, bool incrementKSN, unsigned keysetID=0, unsigned masterKeysetID=0)                                                                                 |
| int       | [dataPerformValidationChecks](#gaead51427c138526d80b25c6fd02752c6) (const [Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_array.md)< 3 > \&date, [Matching](#structvfisdi_1_1_s_d_i_client_1_1_matching) \&match, std::vector< [Matching](#structvfisdi_1_1_s_d_i_client_1_1_matching) > \*additional=0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| int       | [dataPerformValidationChecks](#ga12fc3569f275c9430156069c0b08677e) (const [Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_array.md)< 3 > \&date, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&iin, [Matching](#structvfisdi_1_1_s_d_i_client_1_1_matching) \&match, std::vector< [Matching](#structvfisdi_1_1_s_d_i_client_1_1_matching) > \*additional=0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| int       | [dataGetValidationInfo](#gae50b2968049b499ce55b7227c0602857) (std::string \&out)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| int       | [dataGetEncTxnData](#ga45075f087fd2f85908653f8226074c91) (const std::vector< unsigned > \&taglist, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&encrypted)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| int       | [dataSetEncTxnData](#ga01f90cbfe9791b31756c26a3025b6d9d) (const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&encrypted)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| int       | [dataEndEncTxnData](#gaf159af0b9e2c4bf00124ff3d56cfe126) ()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| int       | [dataGetEmvInfo](#gab10031b5d21dc71c8661d0c5796e1225) ([EMVConf](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_conf.md) \&emv)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |

### DetailedDescription <a href="#detailed-description" id="detailed-description"></a>

***

### DataStructure Documentation <a href="#data-structure-documentation" id="data-structure-documentation"></a>

### vfisdi::SDIClient::PlaceHolder <a href="#structvfisdi_1_1_s_d_i_client_1_1_place_holder" id="structvfisdi_1_1_s_d_i_client_1_1_place_holder"></a>

struct vfisdi::SDIClient::PlaceHolder

Placeholder data

|                                                                                                                                                          |         |                                                                                                                                |
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Data Fields                                                                                                                                              |         |                                                                                                                                |
| [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) | appdata | application data                                                                                                               |
| unsigned                                                                                                                                                 | options | data options ([DataOption](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a7fee88318f15e2a1c4a8d13aa0de5e7f)) |
| [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) | taglist | tag list (DOL)                                                                                                                 |

### vfisdi::SDIClient::Matching <a href="#structvfisdi_1_1_s_d_i_client_1_1_matching" id="structvfisdi_1_1_s_d_i_client_1_1_matching"></a>

struct vfisdi::SDIClient::Matching

matching record

|               |                 |                                     |
| ------------- | --------------- | ----------------------------------- |
| Data Fields   |                 |                                     |
| unsigned char | activationCheck | result of activation check (DFA132) |
| unsigned char | expirationCheck | result of expiration check (DFA12D) |
| unsigned char | luhnCheck       | result of luhn check (DFA12E)       |
| string        | record          | matching record data (DFA12C)       |

### FunctionDocumentation <a href="#function-documentation" id="function-documentation"></a>

### dataClearDataStore() <a href="#ga1b5cc34ed0f55220536c998e0c62ecbb" id="ga1b5cc34ed0f55220536c998e0c62ecbb"></a>

int dataClearDataStore

clear data store (29-03)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataEndEncTxnData() <a href="#gaf159af0b9e2c4bf00124ff3d56cfe126" id="gaf159af0b9e2c4bf00124ff3d56cfe126"></a>

int dataEndEncTxnData

Finish encrypted transaction data procedure inside the SDI-Server. (29-09)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataFetchTxnTags()\[1/2] <a href="#ga9acbbd4302cbf4267f71e086f0a56128" id="ga9acbbd4302cbf4267f71e086f0a56128"></a>

int dataFetchTxnTags

fetch non-sensitive transaction data from SDI server (29-02)

**Parameters**

\[in] **taglist** list of tags to extract \[out] **out** fetched tags with information \[in] **mode** fetch mode: 0: sensitive tags are not returned (default) 1: sensitive tags are returned with zero length, 2: sensitive tags are returned with correct length but overwritten with 0xff \[in] **cleartext\_date** request expiration date (5F24) encrypted if false (default) or in clear if true \[in] **options** data options (DFA13A) 0: default 1: Use EMV\_ADK\_FETCHTAGS\_GET\_DATA option (for CT only)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataFetchTxnTags()\[2/2] <a href="#gaf256c50646cbcf1b70a58200d4b1b9ca" id="gaf256c50646cbcf1b70a58200d4b1b9ca"></a>

int dataFetchTxnTags

fetch non-sensitive transaction data from SDI server (29-02)

**Parameters**

\[in] **taglist** list of tags to extract \[out] **out** fetched tags with information \[in] **mode** fetch mode: 0 sensitive tags are not returned, 1: sensitive tags are returned with zero length, 2: sensitive tags are returned with correct length but overwritten with 0xff \[in] **cleartext\_date** request expiration date (5F24) encrypted if false or in clear if true

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataGetEmvInfo() <a href="#gab10031b5d21dc71c8661d0c5796e1225" id="gab10031b5d21dc71c8661d0c5796e1225"></a>

int dataGetEmvInfo

Get EMV data from SDI EMV information cache (29-0A)

**Parameters**

\[out] **emv** EMV information

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataGetEncData()\[1/2] <a href="#ga74cc79cb0a1b2ea695b3a0586871aa2d" id="ga74cc79cb0a1b2ea695b3a0586871aa2d"></a>

int dataGetEncData

Encrypt card holder sensitive data. The command parses the input data (tag list and application data) and fetches the card holder sensitive data from SDI server or ADK-EMV. The response is considered with options for truncation/padding and returns the result as encrypted BERTLV buffer. (29-01)

**Parameters**

\[in] **handle** crypto handle \[in] **taglist** tag list consisting of tag-length pairs \[in] **appdata** application data \[in] **options** data options (DataOption) \[in] **useStoredTX** \[out] **out** encrypted block containing the result of tags with card holder sensitive data \[in,out] **iv** if not NULL optional initialization vector \[out] **ksn** if not NULL key serial number \[in] **incrementKSN** increment KSN with encryption (default: false) \[in] **keysetID** keyset ID (1,2,3,...), 0: use default \[in] **masterKeysetID** master keyset ID (1,2,3,...), 0: use default

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

{% hint style="info" %}
incrementKSN may be ignored by ADKSEC depending on host configuration
{% endhint %}

{% hint style="info" %}
masterKeysetID is only relevant for Android. When used keysetID must be provided, too.
{% endhint %}

### dataGetEncData()\[2/2] <a href="#ga813d7fedf922c7951b19a9a6fdb2fd88" id="ga813d7fedf922c7951b19a9a6fdb2fd88"></a>

int dataGetEncData

Encrypt card holder sensitive data. The command parses the input data (tag list and application data) and fetches the card holder sensitive data from SDI server or ADK-EMV. The response is considered with options for truncation/padding and returns the result as encrypted BERTLV buffer. (29-01)

**Parameters**

\[in] **handle** crypto handle \[in] **taglist** tag list consisting of tag-length pairs \[in] **appdata** application data \[in] **options** data options (DataOption) \[in] **useStoredTX** \[out] **out** encrypted block containing the result of tags with card holder sensitive data \[in,out] **iv** if not NULL optional initialization vector \[out] **ksn** if not NULL key serial number

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataGetEncMsgData()\[1/2] <a href="#gac30545f8a9195769f65fd4ec25cc333c" id="gac30545f8a9195769f65fd4ec25cc333c"></a>

int dataGetEncMsgData

Encrypt complete host messages that fills sensitive data elements into placeholders. The command parses the input data (tag list and application data) and fetches the card holder sensitive data from SDI server or ADK-EMV. The response is considered with options for truncation/padding and returns the encrypted message. (29-01)

**Parameters**

\[in] **handle** crypto handle \[in] **msgtemplate** message template including placeholders for sensitive data elements \[in] **placeholder** placeholder data \[in] **useStoredTX** \[out] **out** encrypted block containing the result of tags with card holder sensitive data \[in,out] **iv** if not NULL optional initialization vector \[out] **ksn** if not NULL key serial number \[in] **incrementKSN** increment KSN with encryption (default: false) \[in] **keysetID** keyset ID (1,2,3,...), 0: use default \[in] **masterKeysetID** master keyset ID (1,2,3,...), 0: use default

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

{% hint style="info" %}
incrementKSN may be ignored by ADKSEC depending on host configuration
{% endhint %}

{% hint style="info" %}
masterKeysetID is only relevant for Android. When used keysetID must be provided, too.
{% endhint %}

### dataGetEncMsgData()\[2/2] <a href="#ga324bf519eb120e81b5077c1c0172766b" id="ga324bf519eb120e81b5077c1c0172766b"></a>

int dataGetEncMsgData

Encrypt complete host messages that fills sensitive data elements into placeholders. The command parses the input data (tag list and application data) and fetches the card holder sensitive data from SDI server or ADK-EMV. The response is considered with options for truncation/padding and returns the encrypted message. (29-01)

**Parameters**

\[in] **handle** crypto handle \[in] **msgtemplate** message template including placeholders for sensitive data elements \[in] **placeholder** placeholder data \[in] **useStoredTX** \[out] **out** encrypted block containing the result of tags with card holder sensitive data \[in,out] **iv** if not NULL optional initialization vector \[out] **ksn** if not NULL key serial number

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataGetEncTxnData() <a href="#ga45075f087fd2f85908653f8226074c91" id="ga45075f087fd2f85908653f8226074c91"></a>

int dataGetEncTxnData

Get encrypted transaction data for later use (e.g. offline transaction handling). Data needs to be sent back to SDI-Server with command dataSetEncTxnData (29-07)

**Parameters**

\[in] **taglist** tag list containing all requested data elements. \[out] **encrypted** encrypted data block containing the requested tags with transaction data

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataGetMsgSignature()\[1/2] <a href="#gadf11aa6f505b091c986e050e6ee066bd" id="gadf11aa6f505b091c986e050e6ee066bd"></a>

int dataGetMsgSignature

Fill sensitive data elements into the placeholders and calculates a signature for the complete host messages. (29-04)

**Parameters**

\[in] **handle** crypto handle \[in] **msgtemplate** message template including placeholders for sensitive data elements (DFA126) \[in] **placeholder** placeholder data \[in] **useStoredTX** \[out] **out** signature \[in,out] **iv** if not NULL optional initialization vector \[out] **ksn** if not NULL key serial number \[in] **incrementKSN** increment KSN with encryption (default: false) \[in] **keysetID** keyset ID (1,2,3,...), 0: use default \[in] **masterKeysetID** master keyset ID (1,2,3,...), 0: use default

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

{% hint style="info" %}
incrementKSN may be ignored by ADKSEC depending on host configuration
{% endhint %}

{% hint style="info" %}
masterKeysetID is only relevant for Android. When used keysetID must be provided, too.
{% endhint %}

### dataGetMsgSignature()\[2/2] <a href="#ga8291925fbde8e8f922860f33853dbeee" id="ga8291925fbde8e8f922860f33853dbeee"></a>

int dataGetMsgSignature

Fill sensitive data elements into the placeholders and calculates a signature for the complete host messages. (29-04)

**Parameters**

\[in] **handle** crypto handle \[in] **msgtemplate** message template including placeholders for sensitive data elements (DFA126) \[in] **placeholder** placeholder data \[in] **useStoredTX** \[out] **out** signature \[in,out] **iv** if not NULL optional initialization vector \[out] **ksn** if not NULL key serial number

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataGetValidationInfo() <a href="#gae50b2968049b499ce55b7227c0602857" id="gae50b2968049b499ce55b7227c0602857"></a>

int dataGetValidationInfo

Get the header information of the validation table file. (29-06)

**Parameters**

\[out] **out** validation table information

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataPerformValidationChecks()\[1/2] <a href="#ga12fc3569f275c9430156069c0b08677e" id="ga12fc3569f275c9430156069c0b08677e"></a>

int dataPerformValidationChecks

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

**Parameters**

\[in] **date** date (DDMMYY) \[in] **iin** if not empty Issuer Identification Number (IIN) to be used as alternative for the PAN to find the best match \[out] **match** \[out] **additional** if not NULL additional matches are returned here

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataPerformValidationChecks()\[2/2] <a href="#gaead51427c138526d80b25c6fd02752c6" id="gaead51427c138526d80b25c6fd02752c6"></a>

int dataPerformValidationChecks

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

**Parameters**

\[in] **date** date (DDMMYY) \[out] **match** \[out] **additional** if not NULL additional matches are returned here

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))

### dataSetEncTxnData() <a href="#ga01f90cbfe9791b31756c26a3025b6d9d" id="ga01f90cbfe9791b31756c26a3025b6d9d"></a>

int dataSetEncTxnData

Set encrypted transaction data (29-08)

**Parameters**

\[in] **encrypted** encrypted data block containing the requested tags with transaction data

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066))


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/readme/modules/group__sdidata.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
