> 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__sdiemvctls.md).

# EMV contactless interface

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

|                 |                                                                                           |
| --------------- | ----------------------------------------------------------------------------------------- |
| Data Structures |                                                                                           |
| struct          | [SDIClient::CTLSCandidateData](#structvfisdi_1_1_s_d_i_client_1_1_c_t_l_s_candidate_data) |

|           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Functions |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| int       | [emvCtlsInit](#ga5d0d1ee0476110319706f7476480d31c) (int aidCount=0, unsigned options=0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| int       | [emvCtlsExit](#ga85aeca6437d27dca9eb0b6b6a1172d30) (unsigned options=0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| int       | [emvCtlsSetTermData](#gab27565ffa61750c9ac8b8cca545c2a9b) (const [EMVConf](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_conf.md) \&emv)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| int       | [emvCtlsGetTermData](#gaf98a186dddd05201e43fb0367a502970) ([EMVConf](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_conf.md) \&emv)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| int       | [emvCtlsSetAppData](#gaa238762d5bd0c85c0a50b95678b8fb72) (unsigned kernel\_id, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&aid, const [EMVConf](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_conf.md) \&emv)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| int       | [emvCtlsClearAppData](#ga9b0b06aff8b4da1a78862aebf314bb19) (unsigned kernel\_id, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&aid)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| int       | [emvCtlsClearAllAppData](#gac5b5a74d96f17842be87224b05e44848) ()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| int       | [emvCtlsSetTempAppData](#gacb9c40d93e7d5b69dfca505bfcfe5977) (unsigned kernel\_id, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&aid, const [EMVConf](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_conf.md) \&emv)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| int       | [emvCtlsGetAppData](#ga7d2ce83ac34e16de199bb35aad617aad) (unsigned kernel\_id, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&aid, [EMVConf](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_conf.md) \&emv)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| int       | [emvCtlsGetAppData](#ga42bb5335d41a03e5a0ab10ce578dacee) (bool first, [EMVConf](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_conf.md) \&emv)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| int       | [emvCtlsSetCAPKey](#gaf12ec57b22c2213232f119406a195858) (const [Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_array.md)< 5 > \&rid, unsigned char index, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&key, unsigned char exp, const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&hash=[bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5)(), const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&revocationlist=[bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5)())               |
| int       | [emvCtlsClearCAPKey](#ga40d2eb0dc5204e9cc36e1d3d01d9e60b) (const [Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_array.md)< 5 > \&rid, unsigned char index)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| int       | [emvCtlsClearAllCAPKey](#ga502ed08108d6332d81363fc91751c058) ()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| int       | [emvCtlsGetCAPKeys](#ga8abad069d0a36ab402c44fa40a95e070) (std::vector< [CAPKeyInfo](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#structvfisdi_1_1_s_d_i_client_1_1_c_a_p_key_info) > \&keys)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| int       | [emvCtlsApplyConfig](#gabe7c2da50e7c99edd0be362edc318f1f) (unsigned options=7)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| int       | [emvCtlsAddVirtualMapEntry](#ga9c9f0007a51a4e293e8f9111ad770eee) (int transaction, int currency, unsigned char vterminal)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| int       | [emvCtlsClearVirtualMap](#ga272423d3c7d96317935bf6776ede13cc) ()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| int       | [emvCtlsSetupTransaction](#ga4f0949a8e60a80d1fe89ebfdd0e6229c) ([EMVTxn](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_txn.md) \&out, [EMVTransaction](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a36a1ebacbf82d10a5db76377f8e225fd) type, const [BCD](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_b_c_d.md)< 6 > amount, const [Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_array.md)< 3 > \&date, const [Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_array.md)< 3 > \&time, const [BCD](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_b_c_d.md)< 4 > \&counter, const [EMVTxn](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_txn.md) \&optional=[EMVTxn](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_txn.md)()) |
| int       | [emvCtlsContinueOffline](#ga3d7af5b1abb9e82528090ea0b97af2a8) ([EMVTxn](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_txn.md) \&out, unsigned options=0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| int       | [emvCtlsContinueOnline](#gae66d22e73cdca107e0ee26f75001909d) ([EMVTxn](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_txn.md) \&out, bool onlineResult, const [Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_array.md)< 2 > \&authResp=[Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_array.md)< 2 >(), const [EMVTxn](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_txn.md) \&optional=[EMVTxn](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/structvfisdi_1_1_e_m_v_txn.md)())                                                                                                                                                                                                                                                                                                                                                                             |
| int       | [emvCtlsEndTransaction](#ga89c6ff048d7205fd370105d28c7aa281) (unsigned options=0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| int       | [emvCtlsGetCandidateData](#ga7aefe56baf8b79b66daa8ca540c18be1) (std::vector< [CTLSCandidateData](#structvfisdi_1_1_s_d_i_client_1_1_c_t_l_s_candidate_data) > \&out)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| int       | [emvCtlsBreak](#ga78bc595e2e18a724bcd058293f20f42a) ()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| int       | [emvCtlsSmartReset](#gab1319402726475d6fd9dfe3985d9f61b) (unsigned char readeropt=0, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \*atr=0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| int       | [emvCtlsSmartPowerOff](#gaa7ec430ad86d4cf17bfcd83d65223e58) (unsigned char options)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| int       | [emvCtlsCardRemoval](#ga2f3d0a09fde2adb4976b4de20b4960eb) (unsigned timeout\_ms)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| int       | [emvCtlsTransparentCommand](#ga9d60e92ebb64869001ae8775d3bba79f) (const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&in, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&out)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| int       | [emvCtlsTransparentSend](#gad766e0414731ba8f65bb1893791ad088) (const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&in)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| int       | [emvCtlsTransparentReceive](#ga1624472f128b5045a8d9d5f8483b4c50) ([bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&out)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| int       | [emvCtlsLEDMode](#ga63fc14bc59b3426b8a6e4dcd7a100c96) (unsigned char mode)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| int       | [emvCtlsLED](#gad24435024b28327d135c061151db741a) (int led, unsigned char state)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| int       | [emvCtlsSendReceive](#gac36d7c68fabaf8225c6acade1f4bfb1f) (const [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&in, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&out)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |

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

***

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

### vfisdi::SDIClient::CTLSCandidateData <a href="#structvfisdi_1_1_s_d_i_client_1_1_c_t_l_s_candidate_data" id="structvfisdi_1_1_s_d_i_client_1_1_c_t_l_s_candidate_data"></a>

struct vfisdi::SDIClient::CTLSCandidateData

EMV CTLS candidate data

|                                                                                                                                                          |              |                 |
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | --------------- |
| Data Fields                                                                                                                                              |              |                 |
| unsigned char                                                                                                                                            | aidLen       | (9F06)          |
| unsigned char                                                                                                                                            | api          | <p>(87)<br></p> |
| string                                                                                                                                                   | bic          | (5F54)          |
| unsigned char                                                                                                                                            | country2\[2] | (5F55)          |
| unsigned char                                                                                                                                            | country3\[3] | (5F56)          |
| [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) | discData     | (73)            |
| string                                                                                                                                                   | iban         | (5F53)          |
| unsigned char                                                                                                                                            | iin\[4]      | <p>(42)<br></p> |
| [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) | selData      | (9F0A)          |

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

### emvCtlsAddVirtualMapEntry() <a href="#ga9c9f0007a51a4e293e8f9111ad770eee" id="ga9c9f0007a51a4e293e8f9111ad770eee"></a>

int emvCtlsAddVirtualMapEntry

Add an entry to the CT virtual map. If an entry in the virtual map matches the transaction and currency, switch to the virtual terminal *vterminal*. Use -1 as wildcard for *transaction* or *currency* to match all. (40-06)

**Parameters**

\[in] **transaction** transaction type (EMVTransaction) or -1 \[in] **currency** currency (Currency) or -1 \[in] **vterminal** virtual terminal number to switch to in case of a match

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsApplyConfig() <a href="#gabe7c2da50e7c99edd0be362edc318f1f" id="gabe7c2da50e7c99edd0be362edc318f1f"></a>

int emvCtlsApplyConfig

Store configuration (40-04)

**Parameters**

\[in] **options** options bit mask:1: Apply application data if something changed since last configuration2: Apply terminal data if something changed since last configuration4: Apply CAP key data if something changed since last configuration8: Apply all configuration data even in case nothing changed

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsBreak() <a href="#ga78bc595e2e18a724bcd058293f20f42a" id="ga78bc595e2e18a724bcd058293f20f42a"></a>

int emvCtlsBreak

Universal CTLS break command (40-20)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsCardRemoval() <a href="#ga2f3d0a09fde2adb4976b4de20b4960eb" id="ga2f3d0a09fde2adb4976b4de20b4960eb"></a>

int emvCtlsCardRemoval

wait until contactless card removed or timeout (42-0A)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsClearAllAppData() <a href="#gac5b5a74d96f17842be87224b05e44848" id="gac5b5a74d96f17842be87224b05e44848"></a>

int emvCtlsClearAllAppData

clear all EMV CTLS application data (40-02)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsClearAllCAPKey() <a href="#ga502ed08108d6332d81363fc91751c058" id="ga502ed08108d6332d81363fc91751c058"></a>

int emvCtlsClearAllCAPKey

clear all EMV CTLS CAP keys (40-03)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsClearAppData() <a href="#ga9b0b06aff8b4da1a78862aebf314bb19" id="ga9b0b06aff8b4da1a78862aebf314bb19"></a>

int emvCtlsClearAppData

clear EMV CTLS application data (40-02)

**Parameters**

\[in] **kernel\_id** ID of contactless kernel \[in] **aid** AID that is to be configured

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsClearCAPKey() <a href="#ga40d2eb0dc5204e9cc36e1d3d01d9e60b" id="ga40d2eb0dc5204e9cc36e1d3d01d9e60b"></a>

int emvCtlsClearCAPKey

clear EMV CTLS CAP key (40-03)

**Parameters**

\[in] **rid** key register identifier \[in] **index** key index

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsClearVirtualMap() <a href="#ga272423d3c7d96317935bf6776ede13cc" id="ga272423d3c7d96317935bf6776ede13cc"></a>

int emvCtlsClearVirtualMap

remove all entries from virtual map (40-06)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsContinueOffline() <a href="#ga3d7af5b1abb9e82528090ea0b97af2a8" id="ga3d7af5b1abb9e82528090ea0b97af2a8"></a>

int emvCtlsContinueOffline

CTLS EMV transaction (offline part ... including 1st cryptogram, depends on CTLS scheme) (40-11)

**Parameters**

\[out] **out** transaction result data \[in] **options** input parameter for special use case (see EMVContinueOfflineOptions)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsContinueOnline() <a href="#gae66d22e73cdca107e0ee26f75001909d" id="gae66d22e73cdca107e0ee26f75001909d"></a>

int emvCtlsContinueOnline

continue online EMV CTLS transaction (40-12)

**Parameters**

\[out] **out** transaction result data \[in] **onlineResult** online result (DF50) \[in] **authResp** authorization response code from the host, ignored if onlineResult==false (8A) \[in] **optional** optional transaction parameters

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsEndTransaction() <a href="#ga89c6ff048d7205fd370105d28c7aa281" id="ga89c6ff048d7205fd370105d28c7aa281"></a>

int emvCtlsEndTransaction

End transaction (40-15)

**Parameters**

\[in] **options** options (see EMVEndOptions)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsExit() <a href="#ga85aeca6437d27dca9eb0b6b6a1172d30" id="ga85aeca6437d27dca9eb0b6b6a1172d30"></a>

int emvCtlsExit

exit EMV CTLS framework (40-00)

**Parameters**

\[in] **options** EMV options

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

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

int emvCtlsGetAppData

get EMV CTLS application data of first / next AID (40-02)

**Parameters**

\[in] **first** if true get data of first AID, if false get data of next AID \[out] **emv** EMV application data

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsGetAppData()\[2/2] <a href="#ga7d2ce83ac34e16de199bb35aad617aad" id="ga7d2ce83ac34e16de199bb35aad617aad"></a>

int emvCtlsGetAppData

get EMV CTLS application data (40-02)

**Parameters**

\[in] **kernel\_id** ID of contactless kernel \[in] **aid** AID \[out] **emv** EMV application data

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsGetCandidateData() <a href="#ga7aefe56baf8b79b66daa8ca540c18be1" id="ga7aefe56baf8b79b66daa8ca540c18be1"></a>

int emvCtlsGetCandidateData

get additional candidate information for reducing, resorting or displaying the mutual candidate list. (40-16)

**Parameters**

\[out] **out** transaction result data

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsGetCAPKeys() <a href="#ga8abad069d0a36ab402c44fa40a95e070" id="ga8abad069d0a36ab402c44fa40a95e070"></a>

int emvCtlsGetCAPKeys

read EMV CTLS CAP key information (40-03)

**Parameters**

\[out] **keys** key information

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsGetTermData() <a href="#gaf98a186dddd05201e43fb0367a502970" id="gaf98a186dddd05201e43fb0367a502970"></a>

int emvCtlsGetTermData

get EMV CTLS terminal data (40-01)

**Parameters**

\[out] **emv** EMV settings

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsInit() <a href="#ga5d0d1ee0476110319706f7476480d31c" id="ga5d0d1ee0476110319706f7476480d31c"></a>

int emvCtlsInit

initialize EMV CTLS framework (40-00)

**Parameters**

\[in] **aidCount** number of AIDs \[in] **options** EMV options (see EMVOptions)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

{% hint style="info" %}
The EMV callback function must have been set before invoking this function
{% endhint %}

### emvCtlsLED() <a href="#gad24435024b28327d135c061151db741a" id="gad24435024b28327d135c061151db741a"></a>

int emvCtlsLED

switch LEDs (43-03)

**Parameters**

\[in] **led** bit mask of LEDs to be switched, bit 0 represents LED 0, bit 1 represents LED 1, and so on. \[in] **state** 0: off, 1: on, 2: blinking (only LED 0)

#### Returns

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

### emvCtlsLEDMode() <a href="#ga63fc14bc59b3426b8a6e4dcd7a100c96" id="ga63fc14bc59b3426b8a6e4dcd7a100c96"></a>

int emvCtlsLEDMode

Set mode of LED control (43-04)

**Parameters**

\[in] **mode** LED mode control (see EMVLEDMode)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsSendReceive() <a href="#gac36d7c68fabaf8225c6acade1f4bfb1f" id="gac36d7c68fabaf8225c6acade1f4bfb1f"></a>

int emvCtlsSendReceive

send EMV command and receive result

**Parameters**

\[in] **in** EMV command (DF01) \[out] **out** EMV result (DF01)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsSetAppData() <a href="#gaa238762d5bd0c85c0a50b95678b8fb72" id="gaa238762d5bd0c85c0a50b95678b8fb72"></a>

int emvCtlsSetAppData

set EMV CTLS application data (40-02)

**Parameters**

\[in] **kernel\_id** ID of contactless kernel \[in] **aid** AID that is to be configured \[in] **emv** EMV application data

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsSetCAPKey() <a href="#gaf12ec57b22c2213232f119406a195858" id="gaf12ec57b22c2213232f119406a195858"></a>

int emvCtlsSetCAPKey

set EMV CTLS CAP key

**Parameters**

\[in] **rid** key register identifier \[in] **index** key index \[in] **key** key data \[in] **exp** key exponent, use 1 for 63357 \[in] **hash** if not empty 20 bytes hash \[in] **revocationlist** if not empty key revocation list, each entry has 3 bytes serial number

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsSetTempAppData() <a href="#gacb9c40d93e7d5b69dfca505bfcfe5977" id="gacb9c40d93e7d5b69dfca505bfcfe5977"></a>

int emvCtlsSetTempAppData

set EMV CTLS application data for current transaction (40-02)

**Parameters**

\[in] **kernel\_id** ID of contactless kernel \[in] **aid** AID that is to be configured \[in] **emv** EMV application data

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsSetTermData() <a href="#gab27565ffa61750c9ac8b8cca545c2a9b" id="gab27565ffa61750c9ac8b8cca545c2a9b"></a>

int emvCtlsSetTermData

set EMV CTLS terminal data (40-01)

**Parameters**

\[in] **emv** EMV settings

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsSetupTransaction() <a href="#ga4f0949a8e60a80d1fe89ebfdd0e6229c" id="ga4f0949a8e60a80d1fe89ebfdd0e6229c"></a>

int emvCtlsSetupTransaction

setup EMV CTLS transaction (40-10)

**Parameters**

\[in] **type** transaction type (9C) \[in] **amount** transaction amount (9F02) \[in] **date** transaction date (YYMMDD) (9A) \[in] **time** transaction time (HHMMSS) (9F21) \[in] **counter** transaction sequence counter (9F41) \[in] **optional** optional transaction parameters \[out] **out** transaction result data

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsSmartPowerOff() <a href="#gaa7ec430ad86d4cf17bfcd83d65223e58" id="gaa7ec430ad86d4cf17bfcd83d65223e58"></a>

int emvCtlsSmartPowerOff

deactivate chip card. (42-04)

**Parameters**

\[in] **options** reader options (see EMVCtReaderOptions)

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsSmartReset() <a href="#gab1319402726475d6fd9dfe3985d9f61b" id="gab1319402726475d6fd9dfe3985d9f61b"></a>

int emvCtlsSmartReset

Detect if card is present in the RF field (read ATR) (42-02)

**Parameters**

\[in] **readeropt** reader options (see EMVCtlsReaderOptions) \[out] **atr** if not NULL, the ATR is returned here

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsTransparentCommand() <a href="#ga9d60e92ebb64869001ae8775d3bba79f" id="ga9d60e92ebb64869001ae8775d3bba79f"></a>

int emvCtlsTransparentCommand

Transparently send a command to the reader and receive it's response (42-07) only supported for VFI reader.

**Parameters**

\[in] **in** reader command \[out] **out** reader response

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsTransparentReceive() <a href="#ga1624472f128b5045a8d9d5f8483b4c50" id="ga1624472f128b5045a8d9d5f8483b4c50"></a>

int emvCtlsTransparentReceive

Transparent VFI reader access: Receive a response (42-09) only supported for VFI reader.

**Parameters**

\[out] **out** reader response

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)

### emvCtlsTransparentSend() <a href="#gad766e0414731ba8f65bb1893791ad088" id="gad766e0414731ba8f65bb1893791ad088"></a>

int emvCtlsTransparentSend

Transparently send a command to the reader (42-08) only supported for VFI reader.

**Parameters**

\[in] **in** reader command

#### Returns

SDI error code ([Result](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a28287671eaf7406afd604bd055ba4066)) (<=0) or SDI EMV status code ([EMVStatus](/adk-5.0-programmers-guide/readme/namespaces/namespacevfisdi.md#a904e5abfa09e53cda6dd4c6ba5fa5b02)) (>0)


---

# 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__sdiemvctls.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.
