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

# PIN entry interface

[Functions](#func-members)

|           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Functions |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| int       | [pedGetPIN](#gab8571dbdf371d728c742476ba7de0c1d) (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) >(), bool bypass=false, int timeout=300, int navigator\_mode=0, int min\_digits=4, int max\_digits=12, [Language](/s-adk-5.1-programmers-guide/readme/namespaces/namespacevfisdi.md#a315ca917ad583797f709ea477dd28705) lang=[LANGUAGE\_NO\_LANGUAGE](/s-adk-5.1-programmers-guide/readme/namespaces/namespacevfisdi.md#a315ca917ad583797f709ea477dd28705aabdfcddde54087079139e916b59fe058))                                                                                                                                                                                                                                                                                                                                                                                                         |
| int       | [pedGetPIN](#ga78cb1f9e229489cf6c0ec6125d007350) (unsigned pin\_options, const [BCD](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_b_c_d.md)< 6 > amount=0, int currency=-1, const char \*applabel=0, const char \*headline=0, unsigned pwd\_char=0, 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) >(), unsigned bypass=[BYPASS\_DISABLED](/s-adk-5.1-programmers-guide/readme/namespaces/namespacevfisdi.md#a7f70949d162e40270307b2aaf481e2b2ac8b620f3612cc9f6539913ac47545459), int timeout=300, int interchar\_timeout=0, int min\_digits=4, int max\_digits=12, [Language](/s-adk-5.1-programmers-guide/readme/namespaces/namespacevfisdi.md#a315ca917ad583797f709ea477dd28705) lang=[LANGUAGE\_NO\_LANGUAGE](/s-adk-5.1-programmers-guide/readme/namespaces/namespacevfisdi.md#a315ca917ad583797f709ea477dd28705aabdfcddde54087079139e916b59fe058)) |
| int       | [pedGetPIN](#ga26465b44cdf38744f40c11cdda463e16) (unsigned pin\_options, const [BCD](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.1_staging/classvfisdi_1_1_b_c_d.md)< 6 > amount, int currency, const char \*applabel, const char \*headline, unsigned pwd\_char, 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, unsigned bypass, int timeout, int interchar\_timeout, int min\_digits, int max\_digits, [Language](/s-adk-5.1-programmers-guide/readme/namespaces/namespacevfisdi.md#a315ca917ad583797f709ea477dd28705) lang, unsigned char \*bypass\_key)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| int       | [pedGetPIN](#gac3ae9329871381b96ffe300f58d54bf7) (bool bypass=false, int timeout=300, int min\_digits=4, int max\_digits=12, [Language](/s-adk-5.1-programmers-guide/readme/namespaces/namespacevfisdi.md#a315ca917ad583797f709ea477dd28705) lang=[LANGUAGE\_NO\_LANGUAGE](/s-adk-5.1-programmers-guide/readme/namespaces/namespacevfisdi.md#a315ca917ad583797f709ea477dd28705aabdfcddde54087079139e916b59fe058))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| int       | [pedSetPINTimeout](#gae0e5bc21aac331f55db87f5c8c32b779) (unsigned short timeout\_sec)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| void      | [pedConfirmKey](#ga9b28c032314828db9f193eea6092001e) ()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| int       | [pedStartPIN](#ga8f85134183cb72f71870c6cf81a6f85e) (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 bypass\_key=0, int navigator\_mode=0, int minlen=4, int maxlen=12, bool clear\_all=false, bool auto\_enter=false)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| int       | [pedPollPIN](#ga47195163ef92790cfbaafaa129f02279) ([PINStatus](/s-adk-5.1-programmers-guide/readme/namespaces/namespacevfisdi.md#a7cb4a518b7083f951a212048cbf2db08) \&pin, int \&digits, int \&status)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| int       | [pedStopPIN](#ga2ce1660af41bbb184509a29064ef5231) ()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| int       | [pedSetPINInputParameter](#ga17e126450dd93ce68a12128c361141ea) (bool clear\_all)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| int       | [pedSetPINInputParameter](#gaeed75236f49331fc270e3dfe04fe3f73) (unsigned pin\_options, const char \*headline=0, unsigned pwd\_char=0, unsigned bypass=[BYPASS\_DISABLED](/s-adk-5.1-programmers-guide/readme/namespaces/namespacevfisdi.md#a7f70949d162e40270307b2aaf481e2b2ac8b620f3612cc9f6539913ac47545459), int interchar\_timeout=0, int min\_digits=4, int max\_digits=12, int dest=1)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |

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

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

### pedConfirmKey() <a href="#ga9b28c032314828db9f193eea6092001e" id="ga9b28c032314828db9f193eea6092001e"></a>

void pedConfirmKey

confirm the selected key in Navigator mode 2 (20-20)

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

int pedGetPIN

inline

PIN entry using keypad, PIN status updates trigger invocation of the status callback set using [setStatusCallback()](/s-adk-5.1-programmers-guide/readme/modules/group__sdicallback.md#ga823e5713481277604b8e8740b7908953) (22-01)

**Parameters**

\[in] **bypass** true if bypass is enabled, else false \[in] **timeout** timeout in seconds \[in] **min\_digits** minimum number of PIN digits \[in] **max\_digits** maximum number of PIN digits \[in] **lang** language, default is current terminal/transaction language

#### Returns

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

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

int pedGetPIN

PIN entry, PIN status updates trigger invocation of the status callback set using [setStatusCallback()](/s-adk-5.1-programmers-guide/readme/modules/group__sdicallback.md#ga823e5713481277604b8e8740b7908953) (22-01)

**Parameters**

\[in] **btn** position and size of touch buttons \[in] **bypass** true if bypass is enabled, else false \[in] **timeout** timeout in seconds \[in] **navigator\_mode** navigator mode: 0 (disabled), 1 (mode 1) or 2 (mode 2) \[in] **min\_digits** minimum number of PIN digits \[in] **max\_digits** maximum number of PIN digits \[in] **lang** language, default is current terminal/transaction language

#### Returns

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

{% hint style="info" %}
In case of bypass ERR\_PED\_BYPASS is returned.
{% endhint %}

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

int pedGetPIN

PIN entry, PIN status updates trigger invocation of the status callback set using [setStatusCallback()](/s-adk-5.1-programmers-guide/readme/modules/group__sdicallback.md#ga823e5713481277604b8e8740b7908953) (22-01)

**Parameters**

\[in] **pin\_options** PIN entry options (PINEntryOptions) \[in] **amount** payment amount (only displayed if also a valid currency is provided) \[in] **currency** currency (Currency) or -1 \[in] **applabel** application label for display or NULL \[in] **headline** headline for display or NULL \[in] **pwd\_char** unicode password character code (0: default character) \[in] **btn** position and size of touch buttons \[in] **bypass** true if bypass is enabled, else false \[in] **timeout** timeout in seconds \[in] **interchar\_timeout** inter character timeout in milliseconds (0: disabled) \[in] **min\_digits** minimum number of PIN digits \[in] **max\_digits** maximum number of PIN digits \[in] **lang** language, default is current terminal/transaction language \[out] **bypass\_key** if not NULL PIN bypassed: Enter code key (ASCII 13), Backspace code key (ASCII 8)

#### Returns

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

{% hint style="info" %}
In case of bypass ERR\_PED\_BYPASS is returned.
{% endhint %}

### pedGetPIN()\[4/4] <a href="#ga78cb1f9e229489cf6c0ec6125d007350" id="ga78cb1f9e229489cf6c0ec6125d007350"></a>

int pedGetPIN

PIN entry, PIN status updates trigger invocation of the status callback set using [setStatusCallback()](/s-adk-5.1-programmers-guide/readme/modules/group__sdicallback.md#ga823e5713481277604b8e8740b7908953) (22-01)

**Parameters**

\[in] **pin\_options** PIN entry options (PINEntryOptions) \[in] **amount** payment amount (only displayed if also a valid currency is provided) \[in] **currency** currency (Currency) or -1 \[in] **applabel** application label for display or NULL \[in] **headline** headline for display or NULL \[in] **pwd\_char** unicode password character code (0: default character) \[in] **btn** position and size of touch buttons \[in] **bypass** true if bypass is enabled, else false \[in] **timeout** timeout in seconds \[in] **interchar\_timeout** inter character timeout in milliseconds (0: disabled) \[in] **min\_digits** minimum number of PIN digits \[in] **max\_digits** maximum number of PIN digits \[in] **lang** language, default is current terminal/transaction language

#### Returns

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

{% hint style="info" %}
In case of bypass ERR\_PED\_BYPASS is returned.
{% endhint %}

### pedPollPIN() <a href="#ga47195163ef92790cfbaafaa129f02279" id="ga47195163ef92790cfbaafaa129f02279"></a>

int pedPollPIN

poll PIN entry status (22-04)

**Parameters**

\[out] **pin** PINSTATUS\_COLLECTING while PIN is entered, PINSTATUS\_OK, PINSTATUS\_CANCELLED, PINSTATUS\_BYPASS, PINSTATUS\_TIMEOUT or PINSTATUS\_ERROR when done \[out] **digits** number of digits entered or 0xFC for bypass, 0xFD for cancel, 0xFE for timeout or 0xFF for error \[out] **status** additional status information (e.g. for Navigator)

#### Returns

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

Status information:

| Status | Description                |
| ------ | -------------------------- |
| 0x00   | no key entered or selected |
| 0x01   | digit entered              |
| 0x08   | backspace entered          |
| 0x0D   | OK entered                 |
| 0x1B   | cancel enterd              |
| 0xD1   | numeric key selected       |
| 0xD2   | cancel selected            |
| 0xD3   | backspace selected         |
| 0xDE   | OK selected                |
| 0xDF   | multiple touches           |
| 0xF8   | underflow                  |
| 0xF9   | overflow                   |

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

int pedSetPINInputParameter

Configure input parameter for PIN entry (22-06)

**Parameters**

\[in] **clear\_all** if true backspace clears all digits instead of only last one

#### Returns

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

### pedSetPINInputParameter()\[2/2] <a href="#gaeed75236f49331fc270e3dfe04fe3f73" id="gaeed75236f49331fc270e3dfe04fe3f73"></a>

int pedSetPINInputParameter

Configure input parameter for PIN entry (22-06)

**Parameters**

\[in] **pin\_options** PIN entry options (PINEntryOptions) \[in] **headline** headline for display or NULL \[in] **pwd\_char** unicode password character code (0: default character) \[in] **bypass** true if bypass is enabled, else false \[in] **interchar\_timeout** inter character timeout in milliseconds (0: disabled) \[in] **min\_digits** minimum number of PIN digits \[in] **max\_digits** maximum number of PIN digits \[in] **dest** destination: countertop=1, EPP=2 (DFA150)

#### Returns

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

{% hint style="info" %}
In case of bypass ERR\_PED\_BYPASS is returned.
{% endhint %}

### pedSetPINTimeout() <a href="#gae0e5bc21aac331f55db87f5c8c32b779" id="gae0e5bc21aac331f55db87f5c8c32b779"></a>

int pedSetPINTimeout

configure PIN timeout for pedGetPIN (22-02)

**Parameters**

\[in] **timeout\_sec** timeout in seconds

#### Returns

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

### pedStartPIN() <a href="#ga8f85134183cb72f71870c6cf81a6f85e" id="ga8f85134183cb72f71870c6cf81a6f85e"></a>

int pedStartPIN

start PIN entry (22-03)

**Parameters**

\[in] **btn** position and size of touch buttons \[in] **bypass\_key** 0: no bypass, ASCII code of bypass key, add ASCII+256 to activate direct bypass \[in] **navigator\_mode** navigator mode: 0 (disabled), 1 (mode 1) or 2 (mode 2) \[in] **minlen** minimum PIN length \[in] **maxlen** maximum PIN length \[in] **clear\_all** if true backspace clears all digits instead of only last one \[in] **auto\_enter** if true automatically confirm PIN if maxlen has been reached

#### Returns

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

### pedStopPIN() <a href="#ga2ce1660af41bbb184509a29064ef5231" id="ga2ce1660af41bbb184509a29064ef5231"></a>

int pedStopPIN

Stop PIN entry and release resources, cancel PIN entry if required. (22-05)

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