> 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/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md).

# crdsync.h

[Macros](#define-members) | [Typedefs](#typedef-members) | [Functions](#func-members)

[Go to the source code of this file.](/adk-5.0-programmers-guide/crdsync_8h_source.md)

|         |                                                                                                                |
| ------- | -------------------------------------------------------------------------------------------------------------- |
| Macros  |                                                                                                                |
| #define | [CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf)   0                                                     |
|         | <p>Operation was successful. <a href="#a9e601169c9ae8fcf306f0640d1fc79bf">More...</a><br></p>                  |
| #define | [CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65)   1                                                     |
|         | <p>Operation failed. <a href="#a438c2eefe1adbe5b412a561ca7003f65">More...</a><br></p>                          |
| #define | [CRDSYNC\_Error\_Power\_Action](#a36be0541d706234898ff7a226df06d3c)   2                                        |
|         | <p>Power-Up operation failed. <a href="#a36be0541d706234898ff7a226df06d3c">More...</a><br></p>                 |
| #define | [CRDSYNC\_Error\_Not\_Supported](#a9ad14b772af28822cf3007a004028f84)   3                                       |
|         | <p>Synchronous card type not supported. <a href="#a9ad14b772af28822cf3007a004028f84">More...</a><br></p>       |
| #define | [CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d)   4                                             |
|         | <p>A function parameter is invalid. <a href="#a18ce9d5f234d75e198c6a6c694e5109d">More...</a><br></p>           |
| #define | [CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c)   5                                             |
|         | <p>Communication error with synchronous card. <a href="#a7be5ace5182e07f48c854c2d792efb4c">More...</a><br></p> |
| #define | [CRDSYNC\_Error\_Mem\_Protected](#a8279589bd954c9541310ecf07530e03a)   6                                       |
|         | <p>SLE Memory protected. <a href="#a8279589bd954c9541310ecf07530e03a">More...</a><br></p>                      |
| #define | [CRDSYNC\_Error\_PSC\_Required](#a4398c6dd2a7cd44a64fd80865cd12efb)   7                                        |
|         | <p>PSC Validation Required. <a href="#a4398c6dd2a7cd44a64fd80865cd12efb">More...</a><br></p>                   |
| #define | [CRDSYNC\_Error\_PSC](#a36b31958b780b18b1381358cb08f6079)   8                                                  |
|         | <p>PSC Validation Failed. <a href="#a36b31958b780b18b1381358cb08f6079">More...</a><br></p>                     |
| #define | [CRDSYNC\_CARDTYPE\_AT24C01SC](#a0498c6b5a79796abfb55dc0b9b2037c2)   1                                         |
|         | <p>Atmel AT24C01SC. <a href="#a0498c6b5a79796abfb55dc0b9b2037c2">More...</a><br></p>                           |
| #define | [CRDSYNC\_CARDTYPE\_AT24C02SC](#a0275ae827d5612fc02a2390754ab1ce6)   2                                         |
|         | <p>Atmel AT24C02SC. <a href="#a0275ae827d5612fc02a2390754ab1ce6">More...</a><br></p>                           |
| #define | [CRDSYNC\_CARDTYPE\_AT24C04SC](#aedf79d2acabae0e89c9f627faeed61e2)   3                                         |
|         | <p>Atmel AT24C04SC. <a href="#aedf79d2acabae0e89c9f627faeed61e2">More...</a><br></p>                           |
| #define | [CRDSYNC\_CARDTYPE\_AT24C08SC](#abc73a9cc90b40c139244436baefd48b7)   4                                         |
|         | <p>Atmel AT24C08SC. <a href="#abc73a9cc90b40c139244436baefd48b7">More...</a><br></p>                           |
| #define | [CRDSYNC\_CARDTYPE\_AT24C16SC](#a101ac06486cf501d08af0213a9f91674)   5                                         |
|         | <p>Atmel AT24C16SC. <a href="#a101ac06486cf501d08af0213a9f91674">More...</a><br></p>                           |
| #define | [CRDSYNC\_CARDTYPE\_ST14C02SC](#a80ebd75ac4813946bf8dec804f90078a)   6                                         |
|         | <p>STMicro ST14C02SC. <a href="#a80ebd75ac4813946bf8dec804f90078a">More...</a><br></p>                         |
| #define | [CRDSYNC\_CARDTYPE\_AT24C32SC](#a61b592579b3b6cf111114ba5a84a2a3b)   7                                         |
|         | <p>Atmel AT24C32SC. <a href="#a61b592579b3b6cf111114ba5a84a2a3b">More...</a><br></p>                           |
| #define | [CRDSYNC\_CARDTYPE\_AT24C64SC](#a094e8a68eba25d222082c97981d70ed7)   8                                         |
|         | <p>Atmel AT24C64SC. <a href="#a094e8a68eba25d222082c97981d70ed7">More...</a><br></p>                           |
| #define | [CRDSYNC\_CARDTYPE\_SLE4418](#ad5812d694bd9e08939f6097b9da33bfd)   9                                           |
|         | <p>Siemens SLE4418. <a href="#ad5812d694bd9e08939f6097b9da33bfd">More...</a><br></p>                           |
| #define | [CRDSYNC\_CARDTYPE\_SLE4428](#a4ca8213e6acb777ca491b936b14684e3)   10                                          |
|         | <p>Siemens SLE4428. <a href="#a4ca8213e6acb777ca491b936b14684e3">More...</a><br></p>                           |
| #define | [CRDSYNC\_CARDTYPE\_SLE4432](#a60f7b1166993324b8adfd3297c400f2a)   11                                          |
|         | <p>Siemens SLE4432. <a href="#a60f7b1166993324b8adfd3297c400f2a">More...</a><br></p>                           |
| #define | [CRDSYNC\_CARDTYPE\_SLE4442](#ace0f6eb7b9fc63e0f37634f89945322e)   12                                          |
|         | <p>Siemens SLE4442. <a href="#ace0f6eb7b9fc63e0f37634f89945322e">More...</a><br></p>                           |
| #define | [CRDSYNC\_CARDTYPE\_AT24C128SC](#afc98db73875c13859903cb976ae37883)   13                                       |
|         | <p>Atmel AT24C128SC. <a href="#afc98db73875c13859903cb976ae37883">More...</a><br></p>                          |
| #define | [CRDSYNC\_CARDTYPE\_AT24C256SC](#acc68fe707fe903d871e1b3e422a35a30)   14                                       |
|         | <p>Atmel AT24C256SC. <a href="#acc68fe707fe903d871e1b3e422a35a30">More...</a><br></p>                          |

|                 |                                                                                                    |
| --------------- | -------------------------------------------------------------------------------------------------- |
| Typedefs        |                                                                                                    |
| typedef int     | [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301)                                                 |
|                 | <p>Response code type definition. <a href="#af21f57a16d031a8c4583bf2a77834301">More...</a><br></p> |
| typedef void(\* | [CRDSYNC\_TraceCallback](#a5509d72b001f4754e45644e8f09dbb42)) (const char \*str, void \*data)      |

|                                                    |                                                                                                                                                                                                                                                                                            |
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Functions                                          |                                                                                                                                                                                                                                                                                            |
| void                                               | [crdSync\_Version](#aad6e42b9b4a77a320b963da0d9ebd455) (char \*version, unsigned char len)                                                                                                                                                                                                 |
| void                                               | [crdSync\_SetTraceCallback](#a3d9902893c6348c09d6d70f20b0a13b2) ([CRDSYNC\_TraceCallback](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync__client_8h.md#a5509d72b001f4754e45644e8f09dbb42) cbf, void \*cb\_data) |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_Open](#af2e8b408142c3fdf772936352aaec87a) (unsigned Options)                                                                                                                                                                                                                     |
|                                                    | <p>Open the synchronous card driver<br>. <a href="#af2e8b408142c3fdf772936352aaec87a">More...</a><br></p>                                                                                                                                                                                  |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_Close](#a6f7218a5eddce4c7a642d1c020192934) (unsigned Options)                                                                                                                                                                                                                    |
|                                                    | <p>Close the synchronous card driver<br>. <a href="#a6f7218a5eddce4c7a642d1c020192934">More...</a><br></p>                                                                                                                                                                                 |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_IsCardPresent](#a0337406ca951ed912c718448567f0c86) ()                                                                                                                                                                                                                            |
|                                                    | <p>Check if a card is inserted in the full-sized card reader.<br>. <a href="#a0337406ca951ed912c718448567f0c86">More...</a><br></p>                                                                                                                                                        |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_PowerUp](#a54f538cdfe50976653de0ed7550a716b) (int CardType, unsigned char AtrBuf\[], unsigned char \*AtrLen)                                                                                                                                                                     |
|                                                    | <p>Power up the synchronous card<br>. <a href="#a54f538cdfe50976653de0ed7550a716b">More...</a><br></p>                                                                                                                                                                                     |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_PowerDown](#aa210b9d21f89580090da29bf7b9de69d) ()                                                                                                                                                                                                                                |
|                                                    | <p>Power down the synchronous card<br>. <a href="#aa210b9d21f89580090da29bf7b9de69d">More...</a><br></p>                                                                                                                                                                                   |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_ReadData](#afbd3dd4039b9bf6429ed7ea88d90826d) (int MemoryAddress, unsigned char RxBuf\[], unsigned short RxLen)                                                                                                                                                                  |
|                                                    | <p>Read data from the synchronous card<br>. <a href="#afbd3dd4039b9bf6429ed7ea88d90826d">More...</a><br></p>                                                                                                                                                                               |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_WriteData](#a74d8a2a3fedd23009bdbb24d34883b86) (int MemoryAddress, const unsigned char TxBuf\[], unsigned short TxLen)                                                                                                                                                           |
|                                                    | <p>Write data to the synchronous card<br>. <a href="#a74d8a2a3fedd23009bdbb24d34883b86">More...</a><br></p>                                                                                                                                                                                |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_PresentSecretCode](#a0956e82cc1a12c4f1b9f27b6dd2d576c) (const unsigned char PinCode\[], unsigned short nSize)                                                                                                                                                                    |
|                                                    | <p>Present Secret code to the synchronous card<br>. <a href="#a0956e82cc1a12c4f1b9f27b6dd2d576c">More...</a><br></p>                                                                                                                                                                       |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_ReadSecurityMem](#ad3eccb6485c7583082120d95981a6a38) (unsigned char RxBuff\[], unsigned char \*BufLen)                                                                                                                                                                           |
|                                                    | <p>Read Security Memory from synchronous card<br>. <a href="#ad3eccb6485c7583082120d95981a6a38">More...</a><br></p>                                                                                                                                                                        |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_WriteSecurityMem](#aa41d492f0275f153748ef692748b1f8c) (const unsigned char TxBuf\[], unsigned short TxLen)                                                                                                                                                                       |
|                                                    | <p>Update PIN Code (PSC) in synchronous card<br>. <a href="#aa41d492f0275f153748ef692748b1f8c">More...</a><br></p>                                                                                                                                                                         |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_ReadProtectionMem](#a89f8fa5cd76e3b6c9a86f57281339f32) (unsigned char RxBuf\[])                                                                                                                                                                                                  |
|                                                    | <p>SLE4442: Read Protection Memory from synchronous card<br>. <a href="#a89f8fa5cd76e3b6c9a86f57281339f32">More...</a><br></p>                                                                                                                                                             |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_WriteProtectionMem](#a3e651310d7f0502e94062bffdadf102e) (unsigned short MemoryAddress, const unsigned char TxBuf\[], unsigned short TxLen)                                                                                                                                       |
|                                                    | <p>SLE4442: Write Protection Memory<br>. <a href="#a3e651310d7f0502e94062bffdadf102e">More...</a><br></p>                                                                                                                                                                                  |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_ReadWithProtectionBit](#aa7f47bb821fe3ca17f13e5db732f8aed) (int MemoryAddress, unsigned char RxBuf\[], unsigned short RxLen)                                                                                                                                                     |
|                                                    | <p>SLE4428: Read data with protection bit<br>. <a href="#aa7f47bb821fe3ca17f13e5db732f8aed">More...</a><br></p>                                                                                                                                                                            |
| [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_WriteWithProtectionBit](#a5d10ad831fab9466b20dd3ae4dccaa0e) (int MemoryAddress, unsigned char TxBuf\[], unsigned short TxLen)                                                                                                                                                    |
|                                                    | <p>SLE4428: Write data with protection bit<br>. <a href="#a5d10ad831fab9466b20dd3ae4dccaa0e">More...</a><br></p>                                                                                                                                                                           |

### MacroDefinition Documentation <a href="#macro-definition-documentation" id="macro-definition-documentation"></a>

### CRDSYNC\_CARDTYPE\_AT24C01SC <a href="#a0498c6b5a79796abfb55dc0b9b2037c2" id="a0498c6b5a79796abfb55dc0b9b2037c2"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C01SC   1

Atmel AT24C01SC.

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a7).

### CRDSYNC\_CARDTYPE\_AT24C02SC <a href="#a0275ae827d5612fc02a2390754ab1ce6" id="a0275ae827d5612fc02a2390754ab1ce6"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C02SC   2

Atmel AT24C02SC.

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a8).

### CRDSYNC\_CARDTYPE\_AT24C04SC <a href="#aedf79d2acabae0e89c9f627faeed61e2" id="aedf79d2acabae0e89c9f627faeed61e2"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C04SC   3

Atmel AT24C04SC.

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a9).

### CRDSYNC\_CARDTYPE\_AT24C08SC <a href="#abc73a9cc90b40c139244436baefd48b7" id="abc73a9cc90b40c139244436baefd48b7"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C08SC   4

Atmel AT24C08SC.

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a10).

### CRDSYNC\_CARDTYPE\_AT24C128SC <a href="#afc98db73875c13859903cb976ae37883" id="afc98db73875c13859903cb976ae37883"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C128SC   13

Atmel AT24C128SC.

### CRDSYNC\_CARDTYPE\_AT24C16SC <a href="#a101ac06486cf501d08af0213a9f91674" id="a101ac06486cf501d08af0213a9f91674"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C16SC   5

Atmel AT24C16SC.

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a11).

### CRDSYNC\_CARDTYPE\_AT24C256SC <a href="#acc68fe707fe903d871e1b3e422a35a30" id="acc68fe707fe903d871e1b3e422a35a30"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C256SC   14

Atmel AT24C256SC.

### CRDSYNC\_CARDTYPE\_AT24C32SC <a href="#a61b592579b3b6cf111114ba5a84a2a3b" id="a61b592579b3b6cf111114ba5a84a2a3b"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C32SC   7

Atmel AT24C32SC.

### CRDSYNC\_CARDTYPE\_AT24C64SC <a href="#a094e8a68eba25d222082c97981d70ed7" id="a094e8a68eba25d222082c97981d70ed7"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C64SC   8

Atmel AT24C64SC.

### CRDSYNC\_CARDTYPE\_SLE4418 <a href="#ad5812d694bd9e08939f6097b9da33bfd" id="ad5812d694bd9e08939f6097b9da33bfd"></a>

\#define CRDSYNC\_CARDTYPE\_SLE4418   9

Siemens SLE4418.

### CRDSYNC\_CARDTYPE\_SLE4428 <a href="#a4ca8213e6acb777ca491b936b14684e3" id="a4ca8213e6acb777ca491b936b14684e3"></a>

\#define CRDSYNC\_CARDTYPE\_SLE4428   10

Siemens SLE4428.

### CRDSYNC\_CARDTYPE\_SLE4432 <a href="#a60f7b1166993324b8adfd3297c400f2a" id="a60f7b1166993324b8adfd3297c400f2a"></a>

\#define CRDSYNC\_CARDTYPE\_SLE4432   11

Siemens SLE4432.

### CRDSYNC\_CARDTYPE\_SLE4442 <a href="#ace0f6eb7b9fc63e0f37634f89945322e" id="ace0f6eb7b9fc63e0f37634f89945322e"></a>

\#define CRDSYNC\_CARDTYPE\_SLE4442   12

Siemens SLE4442.

### CRDSYNC\_CARDTYPE\_ST14C02SC <a href="#a80ebd75ac4813946bf8dec804f90078a" id="a80ebd75ac4813946bf8dec804f90078a"></a>

\#define CRDSYNC\_CARDTYPE\_ST14C02SC   6

STMicro ST14C02SC.

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a12).

### CRDSYNC\_Error\_BadParam <a href="#a18ce9d5f234d75e198c6a6c694e5109d" id="a18ce9d5f234d75e198c6a6c694e5109d"></a>

\#define CRDSYNC\_Error\_BadParam   4

A function parameter is invalid.

### CRDSYNC\_Error\_Mem\_Protected <a href="#a8279589bd954c9541310ecf07530e03a" id="a8279589bd954c9541310ecf07530e03a"></a>

\#define CRDSYNC\_Error\_Mem\_Protected   6

SLE Memory protected.

### CRDSYNC\_Error\_Not\_Supported <a href="#a9ad14b772af28822cf3007a004028f84" id="a9ad14b772af28822cf3007a004028f84"></a>

\#define CRDSYNC\_Error\_Not\_Supported   3

Synchronous card type not supported.

### CRDSYNC\_Error\_Power\_Action <a href="#a36be0541d706234898ff7a226df06d3c" id="a36be0541d706234898ff7a226df06d3c"></a>

\#define CRDSYNC\_Error\_Power\_Action   2

Power-Up operation failed.

### CRDSYNC\_Error\_Protocol <a href="#a7be5ace5182e07f48c854c2d792efb4c" id="a7be5ace5182e07f48c854c2d792efb4c"></a>

\#define CRDSYNC\_Error\_Protocol   5

Communication error with synchronous card.

### CRDSYNC\_Error\_PSC <a href="#a36b31958b780b18b1381358cb08f6079" id="a36b31958b780b18b1381358cb08f6079"></a>

\#define CRDSYNC\_Error\_PSC   8

PSC Validation Failed.

### CRDSYNC\_Error\_PSC\_Required <a href="#a4398c6dd2a7cd44a64fd80865cd12efb" id="a4398c6dd2a7cd44a64fd80865cd12efb"></a>

\#define CRDSYNC\_Error\_PSC\_Required   7

PSC Validation Required.

### CRDSYNC\_Failure <a href="#a438c2eefe1adbe5b412a561ca7003f65" id="a438c2eefe1adbe5b412a561ca7003f65"></a>

\#define CRDSYNC\_Failure   1

Operation failed.

### CRDSYNC\_Success <a href="#a9e601169c9ae8fcf306f0640d1fc79bf" id="a9e601169c9ae8fcf306f0640d1fc79bf"></a>

\#define CRDSYNC\_Success   0

Operation was successful.

### TypedefDocumentation <a href="#typedef-documentation" id="typedef-documentation"></a>

### CRDSYNC\_RET <a href="#af21f57a16d031a8c4583bf2a77834301" id="af21f57a16d031a8c4583bf2a77834301"></a>

typedef int \[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301)

Response code type definition.

### CRDSYNC\_TraceCallback <a href="#a5509d72b001f4754e45644e8f09dbb42" id="a5509d72b001f4754e45644e8f09dbb42"></a>

typedef void(\\\* CRDSYNC\_TraceCallback) (const char \\\*str, void \\\*data)

Type of function that is called for traces, see [crdSync\_SetTraceCallback()](#a3d9902893c6348c09d6d70f20b0a13b2);

**Parameters**

\[in] **str** : Trace message. \[in] **data** : Data pointer provided by the application.

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

### crdSync\_Close() <a href="#a6f7218a5eddce4c7a642d1c020192934" id="a6f7218a5eddce4c7a642d1c020192934"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_Close

Close the synchronous card driver .

**Parameters**

\[in] **Options** - Reserved for future use

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Synchronous card driver closed.

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error, synchronous card driver is not opened.

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a16).

### crdSync\_IsCardPresent() <a href="#a0337406ca951ed912c718448567f0c86" id="a0337406ca951ed912c718448567f0c86"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_IsCardPresent

Check if a card is inserted in the full-sized card reader. .

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - A card is inserted.

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - No card inserted.

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a5).

### crdSync\_Open() <a href="#af2e8b408142c3fdf772936352aaec87a" id="af2e8b408142c3fdf772936352aaec87a"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_Open

Open the synchronous card driver .

**Parameters**

\[in] **Options** - Reserved for future use

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Synchronous card driver opened.

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error, synchronous card driver is already opened.

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a4).

### crdSync\_PowerDown() <a href="#aa210b9d21f89580090da29bf7b9de69d" id="aa210b9d21f89580090da29bf7b9de69d"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_PowerDown

Power down the synchronous card .

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Card powered down successfully.

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error powering down card - not powered up.

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a15).

### crdSync\_PowerUp() <a href="#a54f538cdfe50976653de0ed7550a716b" id="a54f538cdfe50976653de0ed7550a716b"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_PowerUp

Power up the synchronous card .

**Parameters**

\[in] **CardType** - Synchronous card type, see Synchronous Card Types \[in,out] **AtrBuf** - Pointer to buffer to hold any response from the card (optional) \[in,out] **AtrLen** - Pointer to 8-bit variable to hold length of card response (optional)

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - No card

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error, driver not opened or card not inserted

[CRDSYNC\_Error\_Power\_Action](#a36be0541d706234898ff7a226df06d3c) - Error, unable to power up card

[CRDSYNC\_Error\_Not\_Supported](#a9ad14b772af28822cf3007a004028f84) - Invalid CardType

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a6).

### crdSync\_PresentSecretCode() <a href="#a0956e82cc1a12c4f1b9f27b6dd2d576c" id="a0956e82cc1a12c4f1b9f27b6dd2d576c"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_PresentSecretCode

Present Secret code to the synchronous card .

**Parameters**

\[in] **PinCode** - Pointer to buffer where Pin Code is stored \[in] **nSize** - PinCode size (e.g. 2 for SLE4428, 3 for SLE4442)

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, nSize is wrong, or PinCode is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

### crdSync\_ReadData() <a href="#afbd3dd4039b9bf6429ed7ea88d90826d" id="afbd3dd4039b9bf6429ed7ea88d90826d"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_ReadData

Read data from the synchronous card .

**Parameters**

\[in] **MemoryAddress** - memory address where to start reading from if -1, start at current location \[in,out] **RxBuf** - Pointer to buffer where read data is stored Must be large enough to hold 'RxLen' bytes \[in] **RxLen** - Number of bytes to read from card

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, RxLen is zero, or RxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card - wrong CardType

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a14).

### crdSync\_ReadProtectionMem() <a href="#a89f8fa5cd76e3b6c9a86f57281339f32" id="a89f8fa5cd76e3b6c9a86f57281339f32"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_ReadProtectionMem

SLE4442: Read Protection Memory from synchronous card .

**Parameters**

\[out] **RxBuf** - Pointer to 4-byte-buffer where protection memory shall be stored

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, RxBuf is NULL

### crdSync\_ReadSecurityMem() <a href="#ad3eccb6485c7583082120d95981a6a38" id="ad3eccb6485c7583082120d95981a6a38"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_ReadSecurityMem

Read Security Memory from synchronous card .

Without a preceding successful [crdSync\_PresentSecretCode()](#a0956e82cc1a12c4f1b9f27b6dd2d576c) only the first byte is read. This represents the Error Counter (EC). Each set bit shows a remaining PSC entry try. Max. PSC entry tries: 8 for SLE4428, 3 for SLE 4442. With a preceding successful [crdSync\_PresentSecretCode()](#a0956e82cc1a12c4f1b9f27b6dd2d576c) additionally the PSC is read.

**Parameters**

\[out] **RxBuff** - Pointer to buffer where security memory has to be stored \[in,out] **BufLen** - security memory length returned

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, TxLen is zero, or TxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

### crdSync\_ReadWithProtectionBit() <a href="#aa7f47bb821fe3ca17f13e5db732f8aed" id="aa7f47bb821fe3ca17f13e5db732f8aed"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_ReadWithProtectionBit

SLE4428: Read data with protection bit .

Read `RxLen` data bytes + 1 byte protection bit per data byte

**Parameters**

\[in] **MemoryAddress** - memory address where to start reading from if -1, start at current location \[out] **RxBuf** - Pointer to buffer where the read data (incl. protection bits) has to be stored Must be large enough to hold 2\*RxLen bytes \[in] **RxLen** - Number of bytes to read if 0, operation effectively sets the current address

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter (e.g. RxLen != 0 && RxBuf == NULL)

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

### crdSync\_SetTraceCallback() <a href="#a3d9902893c6348c09d6d70f20b0a13b2" id="a3d9902893c6348c09d6d70f20b0a13b2"></a>

void crdSync\_SetTraceCallback

Set callback function for trace output.

**Parameters**

\[in] **cbf** : Callback function for trace messages, may be NULL. \[in] **cb\_data** : Data pointer that is passed on to the callback function cbf, may be NULL.

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a2).

### crdSync\_Version() <a href="#aad6e42b9b4a77a320b963da0d9ebd455" id="aad6e42b9b4a77a320b963da0d9ebd455"></a>

void crdSync\_Version

Get Version of library

**Parameters**

\[in,out] **version** in: Buffer for version info, out: C-String with library name and version \[in] **len** Allocated size of version

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a3).

### crdSync\_WriteData() <a href="#a74d8a2a3fedd23009bdbb24d34883b86" id="a74d8a2a3fedd23009bdbb24d34883b86"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_WriteData

Write data to the synchronous card .

{% hint style="info" %}
For SLE4428 and SLE4442 a preceding successful [crdSync\_PresentSecretCode()](#a0956e82cc1a12c4f1b9f27b6dd2d576c) is needed.
{% endhint %}

\*\*Parameters\*\*

\[in] **MemoryAddress** - memory address where to start reading from \[in] **TxBuf** - Pointer to buffer where data to write is stored \[in] **TxLen** - Number of bytes to write to the card

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, TxLen is zero, or TxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card - wrong CardType

#### Examples

[crdsync-demo.cpp](/adk-5.0-programmers-guide/readme/examples/crdsync-demo_8cpp-example.md#a13).

### crdSync\_WriteProtectionMem() <a href="#a3e651310d7f0502e94062bffdadf102e" id="a3e651310d7f0502e94062bffdadf102e"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_WriteProtectionMem

SLE4442: Write Protection Memory .

{% hint style="info" %}
The data must have been already stored on the card by means of [crdSync\_WriteData()](#a74d8a2a3fedd23009bdbb24d34883b86). The contents of `TxBuf` is compared with the data on the card. Only in case of match the protection bits are set.
{% endhint %}

\*\*Parameters\*\*

\[in] **MemoryAddress** - memory address where to start writing if -1, start at current location \[in] **TxBuf** - Pointer to buffer where the source data is stored \[in] **TxLen** - Number of bytes of source data

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, TxLen is zero, or TxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

### crdSync\_WriteSecurityMem() <a href="#aa41d492f0275f153748ef692748b1f8c" id="aa41d492f0275f153748ef692748b1f8c"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_WriteSecurityMem

Update PIN Code (PSC) in synchronous card .

{% hint style="info" %}
A preceding successful [crdSync\_PresentSecretCode()](#a0956e82cc1a12c4f1b9f27b6dd2d576c) is needed.
{% endhint %}

\*\*Parameters\*\*

\[in] **TxBuf** - Pointer to buffer where PSC data is stored \[in] **TxLen** - Number of bytes to write to the card (e.g. 2 for SLE4428, 3 for SLE4442)

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, TxLen is zero, or TxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

### crdSync\_WriteWithProtectionBit() <a href="#a5d10ad831fab9466b20dd3ae4dccaa0e" id="a5d10ad831fab9466b20dd3ae4dccaa0e"></a>

\[CRDSYNC\_RET]\(#af21f57a16d031a8c4583bf2a77834301) crdSync\_WriteWithProtectionBit

SLE4428: Write data with protection bit .

{% hint style="info" %}
The data must have been already stored on the card by means of [crdSync\_WriteData()](#a74d8a2a3fedd23009bdbb24d34883b86). The contents of `TxBuf` is compared with the data on the card. Only in case of match the protection bits are set.
{% endhint %}

\*\*Parameters\*\*

\[in] **MemoryAddress** - memory address where to start writing if -1, start at current location \[in] **TxBuf** - Pointer to buffer where the source data is stored \[in] **TxLen** - Number of bytes of source data

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, RxLen is zero, or RxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

[CRDSYNC\_Error\_Not\_Supported](#a9ad14b772af28822cf3007a004028f84) - Bad Card Type


---

# 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/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.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.
