FAQ: QuickChip Keyboard (QCKB) Implementation & Integration
Overview
This FAQ explains what QuickChip Keyboard is, how it is implemented, and provides several certification-related scenarios.
This is intended for more technical related folks.
For more information, consult our support team at support@idtechproducts.com
What is QC KB?
QC KB means Quickchip keyboard emulation, which allows a traditional POS that uses keyboard input to be compatible with ID TECH's device offerings that can output both magstripe and EMV-compliant data as keyboard strokes. This is typically used in conjunction with a VPOS (virtual POS). These types of POS usually exist in the form of a web page served from a web browser.
Why QC KB?
QC KB reduces the amount of complexity required for integration and the time required for certification. The solution complexity and time complexity drop, and the user experience and setup is easier.
What products support QC KB today?
As of June 10, 2026, Augusta and VP3300 devices support QC KB: quickchip keyboard emulation. This is similar to Auto mode in VP3350 and Fast EMV in VP5300.
What happens when a user swipes an ICC card?
In the case that an EMV (ICC) card is swiped, we recommend addressing the scenario in the following way:
When reader receives the MSR data (but does not yet display it), the Virtual Terminal would have to look through the returned data for an ICC flag (which will be either 0 or 1). This is reflected in Bit 5 of Field 8 of the Enhanced Encrypted MSR data. If the bit is set, indicating that the card has a chip, the Virtual Terminal application would stop at that point (before any more of the data is processed and/or sent) and display a message to the user indicating that they should use the ICC slot instead.
Implementation-wise, the Virtual Terminal Application would first need be able to differentiate between MSR or EMV tag data (they are formatted very differently). Then should the incoming data be MSR data, the Terminal application would look for the status flag to see whether ICC is supported on the card or not, and then make the decision.
How can the user make a choice or select the appropriate application to handle the card?
The user won't be able choose which input method to use, as this decision is handled by the device kernel. At a high level, the card and the terminal each go down their priority lists and the terminate the transaction if the reader doesn’t support the appropriate application. For example, there is no option for a customer to choose which supported CVMs to use. The card brands determine which CVMs to attempt, the order to attempt them, and if the reader should attempt to use any additional (remaining CVMs) if the current CVM is not supported or fails. This process only sets bits in the TVR to indicate pass/failure.
Note that in general, the ID TECH implementation of Quick Chip and M/Chip Fast for Augusta in keyboard mode is based on the card reader using what we call Terminal Configuration 5C (See this article for info about terminal configurations). This configuration is for scenarios with no special user interaction. When user interaction is required (such as for configuration 2C, also supported in Augusta, but not in keyboard mode), you need to set the configuration manually (in the SDK Demo app) or programmatically using the SDK, and then implement the Quick Chip choreography yourself in USB HID mode.
How will a terminal deal with combo cards (containing credit AID + debit pair)? How does the data coming from the reader trigger this type of user interaction (to select credit/debit)?
Terminal setting 5C, which we use for KB QC, defers to the card's highest priority. As Augusta and VP3300 do not support PIN entry, if the card's highest priority is Debit, the kernel instead selects the next possible priority-- Credit-- and proceed onward with that.
When the Augusta is in Keyboard Quick Chip mode, there won't need to be a trigger for user interaction as the choice is made by the Augusta's kernel before the data is output to, for example, a Virtual Terminal Application. There is no easy, built-in way to support PIN debit with Augusta. Other products can handle PIN debit more conveniently.
What are the supported AIDs for the device? What is actually going on in the background?
There is no concept of “supported AIDs” as far as the device kernel is concerned. An AID file is just a configuration or data file with a file name representing an AID name (either partially or a full match) and data that overrides or adds to terminal datafor that transaction. Our kernel supports up to 16 of these files.
The kernel doesn’t review or make decisions on any AID file, nor does it have any mechanism to know if an AID file is meant for debit, credit, or some other function.
After the device loads the highest priority AID, it has the CVM list for that application. After CVM is complete, the TVR (Terminal Verification Results) will have the outcome, if CMV passed/failed and which CVM this happened on. These results are compared to the Terminal Action Codes to determine if the terminal should decline or approve offline (assuming an offline capable terminal) or go online for host approval. Most of the time, the card provides "go online" advice.
What if the card requires cardholder confirmation?
Any card transaction requiring cardholder confirmation is terminated by the device kernel while the Augusta is in QC KB mode.
Quick Chip KB cannot support cards under Durbin requirements, and the user needs to use another card that does not require cardholder confirmation.
However, Quick Chip (the specification) can allow for card holder confirmation. In that case, it’s not as quick, as you need to wait for the confirmation, but it is not prevented. It is similar to CVMs. You can have Quick Chip and support offline PIN. Many of these "alternative scenarios" will need to be implemented yourself, with Augusta in USB HID mode. Out of the box, Augusta in keyboard mode does not support any interruption in the Quick Chip EMV sequence. The entire sequence, from ATR to Gen AC, runs uninterrupted. There is no way to pause it and then start up again.
Our implementation of Quick Chip with Augusta in KB mode is a "No CVM" configuration.
To support Quick Chip WITH card holder confirmation, customers can use Augusta in HID mode with configuration 2C. This allows cardholder interaction (Language, what application to pick [Credit or Debit, Common AID or Card brand AID for Debit], …) when needed.
At a high level, if you require cardholder confirmation you will need to write your own implementation of Quick Chip from the application layer, which all of ID Tech's devices with our L2 Common Kernel do support in configuration 2C.
Still editing this. This is the first draft.
@Kas Thomas (Deactivated) can you give this a read through and see if there's any sensitive information / incorrect information?
Intention would be to post this to KB
cc @Miles Bonner (Deactivated) and @IT-ADMIN G (Deactivated)