> 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/s-adk-5.1-programmers-guide/readme/modules/group__sdimsr.md).

# MSR interface

[Functions](#func-members)

|           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Functions |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| int       | [msrRead](#gabdbafaf4249f4fb374be7d7f01e98b3b) ([bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&pan, std::string \&name, std::string \&service, std::string \&track2, int timeout\_sec)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| int       | [msrRead](#ga11a801de57b1d8aca486f9080bf12687) ([bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&pan, std::string \&name, std::string \&service, std::string \&track2, [Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/structvfisdi_1_1_array.md)< 3 > \&track\_status, int timeout\_sec)                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| int       | [msrRead](#gad11aef1f67eef218f267d2698e72c9c4) ([bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&pan, std::string \&name, std::string \&service, std::string \&track2, [Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/structvfisdi_1_1_array.md)< 3 > \&track\_status, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&card\_token, int timeout\_sec, int removal\_timeout\_ms=-1)                                                                                                                                                                                                                                           |
| int       | [msrRead](#ga496e30db16843ea2d904676816530c9d) ([bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&pan, std::string \&name, std::string \&service, std::string \&track2, [Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/structvfisdi_1_1_array.md)< 3 > \&track\_status, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&card\_token, std::vector< [PluginResult](/s-adk-5.1-programmers-guide/readme/modules/group__sdicrd.md#structvfisdi_1_1_s_d_i_client_1_1_plugin_result) > \&plugin\_result, int timeout\_sec, int removal\_timeout\_ms=-1)                                                                             |
| int       | [msrRead](#ga6410a972989772d341f0ce0c6be51349) ([bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&pan, std::string \&name, std::string \&service, std::string \&track1, std::string \&track2, [Array](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/structvfisdi_1_1_array.md)< 3 > \&track\_status, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&card\_token, std::vector< [PluginResult](/s-adk-5.1-programmers-guide/readme/modules/group__sdicrd.md#structvfisdi_1_1_s_d_i_client_1_1_plugin_result) > \&plugin\_result, int timeout\_sec, int removal\_timeout\_ms=-1)                                                       |
| int       | [msrCardDataEntry](#ga536aaf0bbc6c7b4640891698305828e0) (std::string \&out, const std::vector< [TouchButton](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#structvfisdi_1_1_s_d_i_client_1_1_touch_button) > \&btn=std::vector< [TouchButton](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#structvfisdi_1_1_s_d_i_client_1_1_touch_button) >())                                                                                                                                                                                                                                                                                                                                                                                                              |
| int       | [msrCardDataEntry](#ga629bbde0dafeb1ae091f4e803ec26060) (std::string \&out, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&card\_token, unsigned flags, const std::string \&format=std::string(), const std::vector< [TouchButton](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#structvfisdi_1_1_s_d_i_client_1_1_touch_button) > \&btn=std::vector< [TouchButton](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#structvfisdi_1_1_s_d_i_client_1_1_touch_button) >())                                                                                                                                                                            |
| int       | [msrCardDataEntry](#gafcb2779afee393b54acf2bf026f6ae06) (std::string \&out, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&card\_token, std::vector< [PluginResult](/s-adk-5.1-programmers-guide/readme/modules/group__sdicrd.md#structvfisdi_1_1_s_d_i_client_1_1_plugin_result) > \&plugin\_result, unsigned flags, const std::string \&format=std::string(), const std::vector< [TouchButton](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#structvfisdi_1_1_s_d_i_client_1_1_touch_button) > \&btn=std::vector< [TouchButton](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#structvfisdi_1_1_s_d_i_client_1_1_touch_button) >())              |
| int       | [msrCardDataEntry](#gaff624dc3d51ebf509d640ccb61ae6f26) (std::string \&out, [bytevector](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#a64b5be62be31dcda165d2c6c3c262fb5) \&card\_token, std::vector< [PluginResult](/s-adk-5.1-programmers-guide/readme/modules/group__sdicrd.md#structvfisdi_1_1_s_d_i_client_1_1_plugin_result) > \&plugin\_result, unsigned flags, int timeout, const std::string \&format=std::string(), const std::vector< [TouchButton](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#structvfisdi_1_1_s_d_i_client_1_1_touch_button) > \&btn=std::vector< [TouchButton](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_s_d_i_client.md#structvfisdi_1_1_s_d_i_client_1_1_touch_button) >()) |
| int       | [msrSetOptions](#ga390211192723333a89d150e364df5c5b) (unsigned options)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| int       | [msrLED](#gae45526e394f86bca38f676c11af31ea7) (unsigned led1, unsigned led2, unsigned led3, unsigned timeout=0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| int       | [msrSetSensitivity](#ga182c41bec04e552a5ced7d070295700f) (unsigned char sensitivity, int dest=1)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |

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

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

### msrCardDataEntry()\[1/4] <a href="#gafcb2779afee393b54acf2bf026f6ae06" id="gafcb2779afee393b54acf2bf026f6ae06"></a>

int msrCardDataEntry

manual card data entry (21-02)

**Parameters**

\[out] **out** obfuscated PAN \[out] **card\_token** unique card token \[out] **plugin\_result** array containing plugin results (DFA101/FFA107) \[in] **flags** card entry flags (MSRDataEntryFlags) \[in] **format** optional alternate input format string \[in] **btn** position and size of touch buttons

#### Returns

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

### msrCardDataEntry()\[2/4] <a href="#gaff624dc3d51ebf509d640ccb61ae6f26" id="gaff624dc3d51ebf509d640ccb61ae6f26"></a>

int msrCardDataEntry

manual card data entry (21-02)

**Parameters**

\[out] **out** obfuscated PAN \[out] **card\_token** unique card token \[out] **plugin\_result** array containing plugin results (DFA101/FFA107) \[in] **flags** card entry flags (MSRDataEntryFlags) \[in] **timeout** timeout in seconds (<0 to use default) \[in] **format** optional alternate input format string \[in] **btn** position and size of touch buttons

#### Returns

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

### msrCardDataEntry()\[3/4] <a href="#ga629bbde0dafeb1ae091f4e803ec26060" id="ga629bbde0dafeb1ae091f4e803ec26060"></a>

int msrCardDataEntry

manual card data entry (21-02)

**Parameters**

\[out] **out** obfuscated PAN \[out] **card\_token** unique card token \[in] **flags** card entry flags (MSRDataEntryFlags) \[in] **format** optional alternate input format string \[in] **btn** position and size of touch buttons

#### Returns

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

### msrCardDataEntry()\[4/4] <a href="#ga536aaf0bbc6c7b4640891698305828e0" id="ga536aaf0bbc6c7b4640891698305828e0"></a>

int msrCardDataEntry

manual card data entry (21-02)

**Parameters**

\[out] **out** obfuscated PAN \[in] **btn** position and size of touch buttons

#### Returns

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

### msrLED() <a href="#gae45526e394f86bca38f676c11af31ea7" id="gae45526e394f86bca38f676c11af31ea7"></a>

int msrLED

switch the MSR LEDs (21-04)

**Parameters**

\[in] **led1** bit mask for state of led 1 (MSRLEDState) \[in] **led2** bit mask for state of led 2 (MSRLEDState) \[in] **led3** bit mask for state of led 3 (MSRLEDState) \[in] **timeout** if >0 all LEDs are switched off after this time in seconds)

#### Returns

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

### msrRead()\[1/5] <a href="#ga6410a972989772d341f0ce0c6be51349" id="ga6410a972989772d341f0ce0c6be51349"></a>

int msrRead

read msr (21-01)

**Parameters**

\[out] **pan** obfuscated PAN \[out] **name** card holder name \[out] **service** service code \[out] **track1** obfuscated track 1 data (DFA040) \[out] **track2** obfuscated track 2 data \[out] **track\_status** track status (MSRTrackStatus, one byte per track, in the order track3, track2, track1!) \[out] **card\_token** unique card token \[out] **plugin\_result** array containing plugin results (DFA101/FFA107) \[in] **timeout\_sec** timeout in seconds (0..128) \[in] **removal\_timeout\_ms** optional card removal timeout in milliseconds for reading MSR data. Set to -1 if unused. (DFA153)

#### Returns

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

### msrRead()\[2/5] <a href="#gad11aef1f67eef218f267d2698e72c9c4" id="gad11aef1f67eef218f267d2698e72c9c4"></a>

int msrRead

read msr (21-01)

**Parameters**

\[out] **pan** obfuscated PAN \[out] **name** card holder name \[out] **service** service code \[out] **track2** obfuscated track 2 data \[out] **track\_status** track status (MSRTrackStatus, one byte per track, in the order track3, track2, track1!) \[out] **card\_token** unique card token \[in] **timeout\_sec** timeout in seconds (0..128) \[in] **removal\_timeout\_ms** optional card removal timeout in milliseconds for reading MSR data. Set to -1 if unused. (DFA153)

#### Returns

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

### msrRead()\[3/5] <a href="#ga496e30db16843ea2d904676816530c9d" id="ga496e30db16843ea2d904676816530c9d"></a>

int msrRead

read msr (21-01)

**Parameters**

\[out] **pan** PAN \[out] **name** card holder name \[out] **service** service code \[out] **track2** track 2 data \[out] **track\_status** track status (MSRTrackStatus, one byte per track, in the order track3, track2, track1!) \[out] **card\_token** unique card token \[out] **plugin\_result** array containing plugin results (DFA101/FFA107) \[in] **timeout\_sec** timeout in seconds (0..128) \[in] **removal\_timeout\_ms** optional card removal timeout in milliseconds for reading MSR data. Set to -1 if unused. (DFA153)

#### Returns

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

### msrRead()\[4/5] <a href="#ga11a801de57b1d8aca486f9080bf12687" id="ga11a801de57b1d8aca486f9080bf12687"></a>

int msrRead

read msr (21-01)

**Parameters**

\[out] **pan** obfuscated PAN \[out] **name** card holder name \[out] **service** service code \[out] **track2** obfuscated track 2 data \[out] **track\_status** track status (MSRTrackStatus, one byte per track, in the order track3, track2, track1!) \[in] **timeout\_sec** timeout in seconds (0..128)

#### Returns

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

### msrRead()\[5/5] <a href="#gabdbafaf4249f4fb374be7d7f01e98b3b" id="gabdbafaf4249f4fb374be7d7f01e98b3b"></a>

int msrRead

read msr (21-01)

**Parameters**

\[out] **pan** obfuscated PAN \[out] **name** card holder name \[out] **service** service code \[out] **track2** obfuscated track 2 data \[in] **timeout\_sec** timeout in seconds (0..128)

#### Returns

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

### msrSetOptions() <a href="#ga390211192723333a89d150e364df5c5b" id="ga390211192723333a89d150e364df5c5b"></a>

int msrSetOptions

set MSR options. For details see [MSR\_SetOptions()](/s-adk-5.1-programmers-guide/readme/files/dir_b259c67979486db4cd1816234700c14a/dir_699851f087f6e6136e28f04fc8a16e7d/msr_8h.md#ac3c6f568aa57690a8b369936fc362c2a) in ADK-MSR (21-03)

**Parameters**

\[in] **options** (MSROptions)

#### Returns

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

### msrSetSensitivity() <a href="#ga182c41bec04e552a5ced7d070295700f" id="ga182c41bec04e552a5ced7d070295700f"></a>

int msrSetSensitivity

set the MSR sensitivity level for the magnetic head for subsequent read operations. Basically, it is recommended to use default MSR sensitivity to get best MSR reading results. Once MSR Set Sensitivity is used with another value than the default, it is recommended to recover default sensitivity as soon as possible. (21-05)

**Parameters**

\[in] **sensitivity** sensitivity level in the range 20..200 or 0 to reset to default setting.Values >100 will increase MSR sensitivity and amplify signals.Values <100 will decrease MSR sensitivity and damp signals.Value 100 means no amplification/damping. \[in] **dest** destination: countertop=1, EPP=2

#### Returns

SDI error code ([Result](/s-adk-5.1-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/s-adk-5.1-programmers-guide/readme/modules/group__sdimsr.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.
