> 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/sdi__nfc_8h_source.md).

# sdi\_nfc.h

[Go to the documentation of this file.](/s-adk-5.1-programmers-guide/readme/files/dir_fd97ec13bcecf864d0a2538bcb52d927/dir_64d02063c70c5c9b1f1dea0f7cacc02a/sdi__nfc_8h.md)

```cpp
 1 #ifndef CLIENT_SDI_NFC_H_
 2 #define CLIENT_SDI_NFC_H_
 3 
 4 #include <stddef.h>
 5 #include <stdlib.h>
 6 #include <nfc/NFC_Interface.h>
 7 #include <nfc/NFC_Client.h>
 8 
 9 namespace libsdi
 10 {
 11 
 24 CL_STATUS NFC_Client_Init(CONNECTION_TYPE type);
 25 
 30 CL_STATUS NFC_Client_Init_CheckVer(CONNECTION_TYPE type, int maj, int min, int bld);
 31 
 36 CL_STATUS NFC_SerialOpen(void);
 37 
 42 CL_STATUS NFC_SerialClose(void);
 43 
 47 ResponseCodes NFC_Ping(rawData *output);
 48 
 56 ResponseCodes NFC_Get_Version(rawData *output);
 57 
 63 ResponseCodes NFC_Config_Init(void);
 64 
 70 ResponseCodes NFC_Set_Callback_Function(rawData* id, NfcCallbackFunction *callbackFunction );
 71 
 76 ResponseCodes NFC_Callback_Test(void); // unsupported
 77 
 85 ResponseCodes NFC_PT_Open();
 86 
 94 ResponseCodes NFC_PT_Close();
 95 
 103 ResponseCodes NFC_PT_FieldOn();
 104 
 112 ResponseCodes NFC_PT_FieldOff();
 113 
 121 ResponseCodes NFC_PT_Polling(pollReq* inPollReq, pollRes* outPollRes);
 122 
 130 ResponseCodes NFC_PT_PollingFull(pollReq* inPollReq, pollResFull* outPollRes);
 131 
 139 ResponseCodes NFC_PT_PollingABF(pollABFParams* inPollReq, pollABFRes* outPollRes);
 140 
 145 void NFC_Free_Poll_Data(pollRes *outPollRes);
 146 
 151 void NFC_Free_Poll_Data_Full(pollResFull *outPollRes);
 152 
 160 ResponseCodes NFC_PT_Cancel_Polling(void); // unsupported for instance
 161 
 171 ResponseCodes NFC_PT_Activation(NFC_CARD_TYPE cardtype, rawData* rd_activationData);
 172 
 178 ResponseCodes NFC_PT_FtechBaud(NFC_F_BAUD baud);
 179 
 185 ResponseCodes NFC_PT_TxRx(NFC_CARD_TYPE cardtype, rawData* inBuff, rawData* outBuff); // unsupported
 186 
 200 ResponseCodes NFC_PT_Adv_TxRx(TX_RX_PARAM* comParams, rawData* in_buff, rawData* out_buff);
 201 
 209 ResponseCodes NFC_Mifare_Authenticate(unsigned char blockNumber, MIFARE_KEY_TYPE keyType, rawData* Key);
 210 
 219 ResponseCodes NFC_Mifare_Read (I_MIFARE_CARD_TYPE m_cardType, unsigned int StartBlockNum, unsigned int blockAmount, rawData* out_buff);
 220 
 229 ResponseCodes NFC_Mifare_Write(I_MIFARE_CARD_TYPE m_cardType, unsigned int StartBlockNum, unsigned int blockAmount, rawData* in_buff);
 230 
 237 ResponseCodes NFC_Mifare_Increment(unsigned int blockNum, int amount);
 238 
 245 ResponseCodes NFC_Mifare_Decrement(unsigned int blockNum, int amount);
 246 
 253 ResponseCodes NFC_Mifare_Increment_Only(unsigned int blockNum, int amount);
 254 
 261 ResponseCodes NFC_Mifare_Decrement_Only(unsigned int blockNum, int amount);
 262 
 268 ResponseCodes NFC_Mifare_Transfer(unsigned int blockNum);
 269 
 275 ResponseCodes NFC_Mifare_Restore(unsigned int blockNum);
 276 
 283 ResponseCodes NFC_Felica_Exchange(felicaTxData* in_buff, felicaRxData* out_buff);
 284 
 292 ResponseCodes NFC_Felica_Polling(unsigned int pollTimeout ,felicaPolling* inData , felicaPollingOutput* outData);
 293 
 301 ResponseCodes NFC_APDU_Exchange(apduTxData* txData, apduRxData* rxData); // unsupported
 302 
 311 ResponseCodes NFC_Target_Action(NFC_TARGET_ACTION action, unsigned int timeout,
 312  rawData* rd_inData, rawData* rd_outData);
 313 
 321 ResponseCodes NFC_Create_Ndef(NFC_NDEF_TYPES type, rawData* rd_inData, rawData* rd_outData);
 322 
 329 VasStatus NFC_Terminal_Config(rawData *input, rawData *output);
 330 
 339 VasStatus NFC_TERMINAL_ReadConfig(rawData* id, rawData *output);
 340 
 347 VasStatus NFC_VAS_ReadConfig(rawData* id, rawData *output);
 348 
 356 VasStatus NFC_VAS_Activate(rawData* id,rawData *input, rawData *output);
 357 
 365 VasStatus NFC_VAS_Cancel(void);
 366 
 374 VasStatus NFC_VAS_UpdateConfig(rawData* id, rawData *input, rawData *output);
 375 
 381 VasStatus NFC_VAS_CancelConfig(rawData* id);
 382 
 392 VasStatus NFC_VAS_PreLoad(rawData* id, rawData *input, rawData *output);
 393 
 400 VasStatus NFC_VAS_CancelPreLoad(rawData* id);
 401 
 409 VasStatus NFC_VAS_Decrypt(rawData* id, rawData *input, rawData *output);
 410 
 416 VasStatus NFC_VAS_Action(rawData* id, int action,rawData* inData, rawData* outBuff);
 417 
 418 } // namespace libsdi
 419 
 420 
 421 // By default extern "C" NFC API is supported for migration. If this is
 422 // not required or if there are conflicts set SDI_NFC_NAMEPACE_ONLY to
 423 // have only the C++ variant in name space libsdi.
 424 #ifndef SDI_NFC_NAMESPACE_ONLY // enable if applicable
 425 
 426 #define NFC_Client_Init libsdi::NFC_Client_Init
 427 #define NFC_Client_Init_CheckVer libsdi::NFC_Client_Init_CheckVer
 428 #define NFC_SerialOpen libsdi::NFC_SerialOpen
 429 #define NFC_SerialClose libsdi::NFC_SerialClose
 430 
 431 #define NFC_Ping libsdi::NFC_Ping
 432 #define NFC_Get_Version libsdi::NFC_Get_Version
 433 #define NFC_Config_Init libsdi::NFC_Config_Init
 434 #define NFC_Set_Callback_Function libsdi::NFC_Set_Callback_Function
 435 #define NFC_Callback_Test libsdi::NFC_Callback_Test
 436 
 437 #define NFC_PT_Open libsdi::NFC_PT_Open
 438 #define NFC_PT_Close libsdi::NFC_PT_Close
 439 #define NFC_PT_FieldOn libsdi::NFC_PT_FieldOn
 440 #define NFC_PT_FieldOff libsdi::NFC_PT_FieldOff
 441 #define NFC_PT_Polling libsdi::NFC_PT_Polling
 442 #define NFC_PT_PollingFull libsdi::NFC_PT_PollingFull
 443 #define NFC_Free_Poll_Data libsdi::NFC_Free_Poll_Data
 444 #define NFC_Free_Poll_Data_Full libsdi::NFC_Free_Poll_Data_Full
 445 #define NFC_PT_Cancel_Polling libsdi::NFC_PT_Cancel_Polling
 446 #define NFC_PT_Activation libsdi::NFC_PT_Activation
 447 #define NFC_PT_FtechBaud libsdi::NFC_PT_FtechBaud
 448 #define NFC_PT_TxRx libsdi::NFC_PT_TxRx
 449 #define NFC_PT_Adv_TxRx libsdi::NFC_PT_Adv_TxRx
 450 
 451 #define NFC_Mifare_Authenticate libsdi::NFC_Mifare_Authenticate
 452 #define NFC_Mifare_Read libsdi::NFC_Mifare_Read
 453 #define NFC_Mifare_Write libsdi::NFC_Mifare_Write
 454 #define NFC_Mifare_Increment libsdi::NFC_Mifare_Increment
 455 #define NFC_Mifare_Decrement libsdi::NFC_Mifare_Decrement
 456 #define NFC_Mifare_Increment_Only libsdi::NFC_Mifare_Increment_Only
 457 #define NFC_Mifare_Decrement_Only libsdi::NFC_Mifare_Decrement_Only
 458 #define NFC_Mifare_Transfer libsdi::NFC_Mifare_Transfer
 459 #define NFC_Mifare_Restore libsdi::NFC_Mifare_Restore
 460 
 461 #define NFC_Felica_Exchange libsdi::NFC_Felica_Exchange
 462 #define NFC_Felica_Polling libsdi::NFC_Felica_Polling
 463 #define NFC_APDU_Exchange libsdi::NFC_APDU_Exchange
 464 #define NFC_PT_PollingABF libsdi::NFC_PT_PollingABF
 465 
 466 #define NFC_Target_Action libsdi::NFC_Target_Action
 467 #define NFC_Create_Ndef libsdi::NFC_Create_Ndef
 468 
 469 #define NFC_Terminal_Config libsdi::NFC_Terminal_Config
 470 #define NFC_TERMINAL_ReadConfig libsdi::NFC_TERMINAL_ReadConfig
 471 #define NFC_VAS_ReadConfig libsdi::NFC_VAS_ReadConfig
 472 #define NFC_VAS_Activate libsdi::NFC_VAS_Activate
 473 #define NFC_VAS_Cancel libsdi::NFC_VAS_Cancel
 474 #define NFC_VAS_UpdateConfig libsdi::NFC_VAS_UpdateConfig
 475 #define NFC_VAS_CancelConfig libsdi::NFC_VAS_CancelConfig
 476 #define NFC_VAS_PreLoad libsdi::NFC_VAS_PreLoad
 477 #define NFC_VAS_CancelPreLoad libsdi::NFC_VAS_CancelPreLoad
 478 #define NFC_VAS_Decrypt libsdi::NFC_VAS_Decrypt
 479 #define NFC_VAS_Action libsdi::NFC_VAS_Action
 480 
 481 #endif // SDI_NFC_NAMESPACE_ONLY
 482 #endif // CLIENT_SDI_NFC_H_
```


---

# 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/sdi__nfc_8h_source.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.
