Smart Card Reader SDK · PC/SC · CCID · ACS Reader Integration

Smart Card Reader SDK and Software Integration

How your application talks to an ACS smart card reader — and how BSD Infotech helps you get there.

A smart card reader is only useful once your software can talk to it. This page explains how that communication works — the PC/SC interface, CCID drivers, SDK tools and sample code — which ACS readers we supply support it, and what to check when a reader and an application do not work together. BSD Infotech supplies ACS readers and combines them with software, integration and custom application development around your process.

PC/SCUSB CCIDNFC reader SDKDESFireACS readers
Your applicationAccess control, attendance, cashless, PKI, identity
↓
PC/SC APICT-API available as a wrapper on top of PC/SC for several ACS readers
↓
Reader driverUSB CCID class driver or ACS PC/SC driver
↓
ACS reader + cardContact (ISO 7816) or contactless (ISO 14443 and others)

Talk to a Smart Card Expert

Tell us which card you use, which reader you have (or are choosing) and what your application needs to do. We will help you confirm reader, driver and SDK fit before you build.

Overview

What a Smart Card Reader SDK Contains

A smart card reader SDK (software development kit) is the set of drivers, tools, sample code and documentation a developer uses to make an application read and write cards through a reader. The ACS development kits documented on this page have followed a consistent pattern.

Drivers

PC/SC drivers for the reader, so the operating system can see it. CCID-compliant readers can also use the operating system’s standard CCID driver.

Tools and utilities

Utilities to check driver installation, send commands to cards, and learn the PC/SC API step by step.

Sample code

Code that demonstrates the basic commands used to communicate with the reader and the cards — a starting point for your own application.

Demo programs

Ready-made demos showing typical uses, such as e-purse, logical access control, and time and attendance.

Reference manuals

Reader and card reference manuals and technical specifications, including the command set your application will use.

Hardware and test cards

The legacy kits bundled readers and sample cards — for example ACOS3 microprocessor cards, MIFARE cards or SLE memory cards — so development could start immediately.

How it works

How Software Communicates with a Smart Card Reader

Your application does not talk to the card directly. It sends commands through a standard interface to the reader, which passes them to the card and returns the card’s response.

1

The application calls PC/SC

The application uses the PC/SC interface to find the connected reader and establish a connection when a card is present.

2

The driver handles the reader

A PC/SC driver — or, for CCID-compliant readers, the standard CCID driver — carries the request over USB to the reader.

3

The reader talks to the card

The reader powers the card and exchanges data with it over the contact (ISO 7816) or contactless (for example ISO 14443) interface.

4

Commands and responses

The application sends card commands and receives the card’s responses. For microprocessor cards these are command–response pairs (APDUs) defined by ISO 7816-4 and by the card’s own reference manual.

Why this matters: because the application is written against PC/SC rather than a single reader model, the same application logic can often work with more than one PC/SC-compliant reader. Card-specific commands, however, still depend on the card you use — so the card’s reference manual matters as much as the reader’s.

Standards

PC/SC, CCID and CT-API Explained

PC/SC

PC/SC is the standard interface between applications and smart card readers on a computer. Every ACS reader listed on this page with PC/SC compliance can be used by PC/SC-based applications, and ACS’s own development tools — such as the Card Tool — send commands to any PC/SC-compliant reader.

USB CCID

CCID is the USB device class for smart card readers. A CCID-compliant reader can work as a plug-and-play device: the ACR38 series, for example, is documented as eliminating the need for separate driver installation because it follows the CCID specification.

CT-API

Several ACS readers — including the ACR39U, ACR1552U, ACR1252U, ACR122U, ACR1281U-C1 and ACR38 — also support CT-API through a wrapper on top of PC/SC, for applications written against that older interface.

Contact and contactless: dual-interface readers such as the ACR1281U-C1 DualBoost II are documented as PC/SC-compliant for both the contact and contactless interfaces, and the ACR1581U exposes separate PICC (contactless), ICC (contact) and SAM interfaces that follow the PC/SC specifications.

Compatibility

Supported ACS Readers for Integration

The table summarises what BSD Infotech has published for each reader. Driver platforms are as listed on each reader’s own page; always confirm the current driver package for your operating system before deployment.

ReaderTypePC/SC and CCIDDriver platforms listedNotes
ACR39U-U1USB contactPC/SC, USB CCID; CT-API via wrapperWindows, Linux, macOS, Solaris, Android (3.1 and above)EMV Level 1 (contact); ACR39U-UF Android setup guide
ACR40UUSB contact (Type-A / Type-C)PC/SC, USB CCIDWindows, Linux, macOS, iOS, iPadOS, Android, SolarisFirmware upgradable
ACR1552UUSB NFC contactlessPC/SC, USB CCID; CT-API via wrapperWindows, Linux, macOS, Android, iOS/iPadOS (16 or above)ACS ACR1552U SDK: PC/SC sample code, Windows 10 and 11 (see NFC reader SDK)
ACR1252UUSB NFC contactlessPC/SC, CCID; CT-API via wrapperWindows, Linux, macOS, Android (3.1 and later)NFC Forum certified
ACR1581UDual interface (DualBoost III)PC/SC, USB CCIDWindows, Linux, macOS, Android, iOS/iPadOS (16 or above)SAM slot; ISO 14443, ISO 15693, MIFARE, FeliCa
ACR1281U-C1Dual interface (DualBoost II)PC/SC (contact and contactless), CCID; CT-API via wrapperWindows, Mac, Linux, Android (3.1 and above)DualBoost II SDK page
ACR122UUSB NFC contactlessPC/SC, CCID; CT-API via wrapperWindows XP to Windows 11 (ACS driver 4.2.8.0), Windows CE, macOS, Linux, Android (3.1 and above)End of life per ACS, in regular supply at BSD; ACR122U SDK page
ACR1281U-C8USB contactless (ISO 14443 A/B, MIFARE)Not stated on its product page — confirmWindows (legacy versions) and LinuxEnd of life per ACS
ACR1255U-J1Bluetooth and USB NFCNot yet published by BSD — confirmNot yet published by BSD — confirmConfirm before ordering for integration
ACR38USB contactPC/SC, CCID; CT-API via wrapperSee product pageNo longer available from BSD Infotech; replaced by the ACR39U and ACR40U

End-of-life status is taken from ACS’s own product pages, as recorded on our Smart Card and RFID Readers page. Blank or “confirm” entries mean BSD Infotech has not published that information for the model — they are not assumed.

NFC readers

NFC Reader SDK: ACR1552U, ACR122U and ACR1252U

ACS NFC readers are PC/SC readers, so the same programming approach works across them. What changes is the reader’s own SDK and its reader-specific commands.

ACR1552U SDK

Per ACS: an ACR1552U reader with test cards (MIFARE 1K, ACOS3 contactless, ACOS6-SAM), QuickView, Script Tool, Smart Card and Reader Tool with NFC and NDEF tools, and PC/SC sample code in Java, Visual Basic, C# and C++. SDK operating systems: Windows 10 and 11.

ACR122U SDK

Sample code in Java, Delphi, Visual Basic, Visual C++ and C#. The ACR122U is end of life at ACS but in regular supply at BSD Infotech; ACS’s current Windows driver lists Windows 10 and 11. Moving to the ACR1552U? See ACR122U vs ACR1552U for developers.

ACR1252U

PC/SC and CCID compliant, with CT-API through a wrapper. Applications written against PC/SC talk to it the same way; ACS names MIFARE DESFire among its supported cards.

Common NFC programming tasks

  • Read a card or tag UID, for attendance, access or membership lookups
  • Read and write NFC tags (NDEF records such as URLs or text)
  • Authenticate and read or write MIFARE Classic blocks
  • Send ISO 14443-4 commands to microprocessor cards such as MIFARE DESFire

All of these go through PC/SC as APDUs. Each reader’s ACS reference manual documents its commands. Compare readers on the NFC and contactless readers page.

MIFARE DESFire

DESFire Application Development

A MIFARE DESFire (EV1, EV2, EV3) card holds its own applications, files and keys. The reader only carries commands; the work is in the software that sets up and uses the card.

1

Design the card layout

Which applications and files go on the card, and which keys protect them.

2

Provisioning software

A tool that prepares new cards: creates the applications and files, sets the keys and writes the initial data.

3

Reading and use

The application at the counter, gate or PC authenticates to the card and reads or updates its data.

4

Key handling

Keys are kept in the software or in a SAM in the reader’s SAM slot, depending on the security the project needs.

Readers: ACS names MIFARE DESFire for the ACR1252U and ACR1581U. For the ACR1552U, ACS lists ISO 14443-4 cards and MIFARE without naming DESFire separately; test your cards first.

BSD Infotech: we can evaluate and undertake DESFire application development for your project, such as provisioning and reading software, subject to the selected card, reader, SDK/documentation and security architecture. We have DESFire-capable readers and DESFire cards for evaluation and testing. See DESFire application development.

Index

All ACS SDK Pages

Several of these kits are for readers that are now end of life per ACS. Confirm current availability with BSD Infotech before ordering.

Developer tools

SDK Tools and Utilities

These tools appear across the ACS development kits documented on this page. Exact tool sets differ from kit to kit.

Card Tool / PC/SC CardTool

Tests the protocol transfer between the reader and the PC, and lets you send commands directly to a PC/SC-compliant reader and card.

PC/SC Learning Tool

Shows a step-by-step procedure for using the PC/SC API, and which parameters to use at each step.

QuickView

Checks that the reader’s driver is installed correctly — a useful first step when a reader is not detected.

Script Commander / Scripting Tool

Sends a predefined sequence of smart card commands to a CPU (microprocessor) card, for repeatable testing.

Reader-specific tools

For example, the ACR120 Tool (reader settings, communication speed, card data), EasyKey (MIFARE security settings) and NFC Reader Tool (reader and card commands).

Card personalisation tools

For example, FormatACOS (initialise ACOS3 cards) and the ACOS5 Initialization, Clear Card and Admin tools for cryptographic cards.

Workflow

Smart Card Development Workflow

A practical sequence for integrating an ACS reader into your own application.

1

Choose the card

Contact microprocessor, memory, MIFARE, NFC or other contactless card. The card decides the command set your application will use.

2

Match the reader

Pick a reader that supports that card type and your operating system — see the compatibility table above.

3

Install and verify

Install the PC/SC driver (or rely on CCID plug-and-play) and confirm the reader is detected, for example with QuickView.

4

Test commands

Send commands to a test card with the Card Tool or a scripting tool before writing code.

5

Build the application

Start from the SDK’s sample code and the card’s reference manual; call the reader through PC/SC.

6

Test and deploy

Test with the real cards and every target machine, then roll out with the matching driver package.

Integration

Application and Custom Software Integration

Some teams want only the reader and the SDK. Others want the reader working inside a finished application. BSD Infotech supplies ACS readers and combines reader supply with software, integration and custom application development around your process — readers integrated with your software, database and hardware.

  • Reader selection for your card type, interface and operating system
  • Driver and PC/SC setup guidance
  • Integration of the reader into your existing software
  • Custom application development around smart card workflows
  • Bulk and project supply of readers and cards
Typical applications documented for the ACS readers and kits on this page include access control, time and attendance, e-purse and stored value, PKI and digital signature, payment, ticketing and identity verification.

Integration scope, timelines and costs depend on your application and are confirmed after we understand your requirement.

Beyond the SDK

Need More Than an SDK?

Some customers need only the reader and its SDK. Others want the reader working inside their existing software, or a complete application: card issuance, attendance, access, cashless, membership or a DESFire project. BSD Infotech can evaluate the reader, card, SDK and operating system for your requirement and develop or integrate the software. Compatibility is confirmed for each project; not every reader, card or operating system supports every function.

Reference

Legacy ACS Development Kits

These ACS development kits have been documented on this page for many years. They remain a useful reference for what an SDK includes, but several of the bundled readers are now end of life per ACS and the operating-system lists reflect the era of each kit. Confirm availability and current driver support with BSD Infotech before ordering.

ACS ACR38 smart card reader development kit
Contact

ACR38 Development Kit

Built around

The ACR38 series of USB readers — PC/SC and EMV Level 1 compliant, supporting ISO 7816 microprocessor cards and popular memory cards.

Kit contents

ACR38U and ACR38T readers, an ABR08 balance reader, ACOS3 microprocessor cards (full-size and SIM-sized plug-in) and SLE memory cards, plus a development CD.

CD

Demo programs (e-purse, logical access control), PC/SC CardTool, PC/SC Learning Tool, QuickView, Script Commander, sample code and reference manuals.

Sample code languages

MS Visual Basic .NET, Visual C#, Visual C++ (including x64 variants), Visual Basic 6.0, Java and Turbo Delphi 2006.

Documented OS

Windows 2000, XP, Vista, 7 (32- and 64-bit).

See also ACR38 CCID SDK and the ACR38 reader.

ACS ACR120 contactless reader USB development kit
Contactless

ACR120 USB SDK

Built around

The ACR120 contactless reader (MIFARE and ISO 14443 cards) and the ACR38DT DualKey, which accesses SIM-sized dual-interface “combi” cards through its contactless interface.

Kit contents

ACR120 reader, ACR38DT DualKey, MIFARE 1K cards, a combi card and a development CD.

CD

Multi-application demo (parking, train ticket, vending, weighing and loyalty stored value), time and attendance demo, ACR120 Tool, QuickView, sample code, reference manuals and technical specifications.

Sample code languages

Visual Basic, Visual C++, Borland Delphi, VB.NET and C#.

Documented OS

Windows 98, 2000, XP, Vista (including XP and Vista x64).

ACR120 is end of life per ACS. See the ACR120 page and the ACR1281U-C8.

ACS AET62 NFC reader with fingerprint sensor development kit
NFC + fingerprint

AET62 SDK

Built around

The AET62 NFC contactless reader with swipe fingerprint sensor, for adding fingerprint authentication to smart card applications without in-depth biometrics knowledge.

Kit contents

AET62 reader, MIFARE 4K cards and a development CD.

CD

Biometric and BioBanking demos, EasyKey, NFC Reader Tool, QuickView, sample code, reference manuals and technical specifications.

Sample code languages

Java, MS Visual Basic 6.0, Visual Basic .NET 2008, Visual C# .NET 2008, Visual C++ 6.0 (including x64 variants) and Turbo Delphi.

Documented OS

Windows XP, Vista, 7 (32- and 64-bit).

See the AET62 SDK page.

ACS AET63 BioTRUSTKey development kit
Contact + fingerprint

AET63 BioTRUSTKey SDK

Built around

The AET63 BioTRUSTKey, combining a smart card reader and fingerprint sensor.

Kit contents

AET63 BioTRUSTKey, ACOS3 microprocessor cards and a development CD.

CD

Application, BioBanking and functional demos, PC/SC CardTool, FormatACOS and TFM EEPROM Loader, QuickView, sample code and reference manuals.

Sample code languages

Borland Delphi 7.0, MS Visual Basic 6.0 and MS Visual C++ 6.0.

Documented OS

Windows 98, ME, 2000, XP (including XP x64); drivers also listed for Linux kernels below 2.6.

See the AET63 SDK page.

ACS ACR100 SIMFlash CCID development kit
SIM-sized + flash

ACR100 SIMFlash (CCID) SDK

Built around

The ACR100 SIM-sized USB reader with on-board flash memory that acts as a normal flash drive, PC/SC and EMV Level 1 compliant.

Kit contents

ACR100 SIMFlash (CCID) reader, ACOS3 SIM-sized cards and an SDK CD.

CD

Demo program, Card Tool, PC/SC Learning Tool, QuickView, Scripting Tool, sample code, freeware flash partitioning tools and user manuals.

Sample code languages

MS Visual Basic .NET, Visual C#, Visual C++ (including x64 variants), Visual Basic 6.0, Java and Turbo Delphi 2006.

Documented OS

Windows 2000, XP, Vista, 7 (32- and 64-bit).

ACR100 is end of life per ACS. See the ACR100 SDK page.

ACS ACOS5 cryptographic smart card development kit
Cryptographic / PKI

ACOS5 Cryptographic Card SDK

Built around

ACOS5 cryptographic cards (ISO 7816-1/2/3/4/8/9, RSA public-key operations, 32 KB EEPROM) for PKI, digital signature and Windows logon applications, developed over PKCS#11 or CSP.

Kit contents

ACR38 and ACR38T readers, ACOS5 cards (full-size and SIM-sized) and a CryptoMate USB PKI token.

CD

ACOS5 Initialization, Clear Card and Admin tools (certificate, data object and secret key management), Card Tool, QuickView, PC/SC Learning Tool, CSP and PKCS#11 middleware, ACR38/ACR38T and CryptoMate drivers, sample code and manuals.

Sample code

ACOS5 card commands, DES/3DES and RSA operations, CSP, PKCS and secure messaging — in Borland Delphi, Java, MS Visual Basic 6.0, Visual Basic .NET, Visual C# and Visual C++ 6.0.

Documented OS

Windows XP, Vista, 7 (32- and 64-bit) and Linux.

See the ACOS5 SDK page.

Other SDK reference pages: ACOS6, ACOS7 and ACOS10, ACR122S, ACR33U-A1, ACR83 and ACR89U-A2.

Troubleshooting

Compatibility and Troubleshooting

Reader not detected

  • Confirm the driver is installed — QuickView checks this on ACS kits
  • For CCID readers, try the operating system’s built-in CCID driver before installing anything else
  • Reconnect the reader to a different USB port and retest

Card not responding

  • Check the reader supports that card type — contact vs contactless, and which contactless standard
  • Test the card with the Card Tool before debugging your code
  • Use the command set from the card’s own reference manual

Operating system mismatch

  • Check the reader’s listed driver platforms in the table above
  • Legacy kits document old Windows versions only — do not assume they cover your OS
  • For Android with the ACR39U-UF, follow our setup guide

Older readers and kits

  • Several legacy readers are end of life per ACS
  • Replacement readers may need different card handling — retest before switching
  • Ask BSD Infotech for a suitable current reader for your application
FAQ

Frequently Asked Questions

A smart card reader SDK (software development kit) is the set of drivers, tools, sample code, demo programs and reference manuals a developer uses to make an application communicate with cards through a reader. ACS development kits have also bundled readers and test cards.
The application calls the PC/SC interface, the PC/SC or USB CCID driver carries the request to the reader, and the reader exchanges commands and responses with the card over its contact or contactless interface.
PC/SC is the standard interface between applications and smart card readers on a computer. Applications written against PC/SC can work with PC/SC-compliant readers, and ACS’s Card Tool can send commands to any PC/SC-compliant reader.
PC/SC is the application-side interface; CCID is the USB device class for smart card readers. A CCID-compliant reader can work as a plug-and-play device using a standard CCID driver, while applications still talk to it through PC/SC.
BSD Infotech’s published information lists PC/SC support for the ACR39U-U1, ACR40U, ACR1552U, ACR1252U, ACR1581U, ACR1281U-C1, ACR122U and ACR38. PC/SC support is not yet published on this site for the ACR1255U-J1 or stated on the ACR1281U-C8 page, so confirm those before ordering.
Several do. The ACR39U, ACR1552U, ACR1252U, ACR122U, ACR1281U-C1 and ACR38 support CT-API through a wrapper on top of PC/SC.
It depends on the reader. For example, the ACR39U-U1 lists Windows, Linux, macOS, Solaris and Android drivers, and the ACR1581U lists Windows, Linux, macOS, Android and iOS/iPadOS 16 or above. Check each reader’s page and confirm the current driver package for your OS.
They are legacy kits kept as reference. Several bundled readers, including the ACR120 and ACR100, are end of life per ACS, and their operating-system lists reflect older Windows versions. Contact BSD Infotech to confirm availability and a suitable current reader.
The legacy kits documented here included sample code in languages such as MS Visual Basic 6.0 and .NET, Visual C#, Visual C++, Java and Delphi. The exact list differs by kit, so check the individual kit before relying on it.
Yes. ACS offers an ACR1552U SDK with test cards, tools and PC/SC sample code in Java, Visual Basic, C# and C++ for Windows 10 and 11, and the ACR122U SDK has sample code in Java, Delphi, Visual Basic, Visual C++ and C#. Both readers also work with standard PC/SC code.
BSD Infotech can evaluate and undertake DESFire application development, such as provisioning and reading software, and test it with your cards. Scope and feasibility depend on the card, reader, SDK/documentation and security architecture, and are confirmed per project. ACS names MIFARE DESFire for the ACR1252U and ACR1581U readers; the ACR1552U lists ISO 14443-4 cards and MIFARE, so test your cards first.
Confirm the driver is installed (ACS’s QuickView utility checks this), try the operating system’s built-in CCID driver for CCID readers, reconnect to a different USB port, and confirm the reader’s listed driver platforms include your operating system.
Yes. BSD Infotech combines ACS reader supply with software, integration and custom application development, integrating readers with your software, database and hardware. Scope is confirmed after we understand your requirement.

Ready to Integrate a Smart Card Reader?

Tell us your card, reader, operating system and what your application needs to do. We will help you confirm the right reader and driver, and discuss integration or custom development.

Sales

Email: info@bsdinfotech.com

Need a quote or advice on Smart Card Reader SDK and Software Integration?

Tell us your requirement. BSD Infotech can recommend the right hardware and software, and quote for the complete solution.