Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 23 Next »

Master Terminal Config:  

#Setting 1 for 5C:

Use this terminal config to get started: (allows all msr swipes, output fallback reason is off, default transaction amount is a non-zero amount, fallback behavior on bad chip insert / no matching AID)

9F 02 06 00 00 00 00 01 00 5F 36 01 02 9F 1A 02 08 40 9F 35 01 21 9F 33 03 60 28 C8 9F 40 05 F0 00 F0 A0 01 9F 1E 08 54 65 72 6D 69 6E 61 6C 9F 15 02 12 34 9F 16 0F 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 9F 1C 08 38 37 36 35 34 33 32 31 9F 4E 22 31 30 37 32 31 20 57 61 6C 6B 65 72 20 53 74 2E 20 43 79 70 72 65 73 73 2C 20 43 41 20 2C 55 53 41 2E DF 26 01 01 DF 10 08 65 6E 66 72 65 73 7A 68 DF 11 01 00 DF 27 01 00 DF EE 15 01 01 DF EE 16 01 00 DF EE 17 01 05 DF EE 18 01 80 DF EE 1E 08 D0 9C 20 D0 C4 1E 16 00 DF EE 1F 01 80 DF EE 1B 08 30 30 30 31 35 31 30 30 DF EE 20 01 3C DF EE 21 01 0A DF EE 22 03 32 3C 3C DF EF 4B 03 7F 00 00 DF EF 62 01 00 DF EF 7D 01 03 DF EF 7E 06 50 01 50 05 50 36 DF ED 0A 01 00 DF EF 5A 62 4F 50 56 57 5A 82 84 87 8A 95 9A 9B 9C 5F 24 5F 2A 5F 30 5F 34 9F 02 9F 03 9F 06 9F 07 9F 08 9F 09 9F 11 9F 0D 9F 0E 9F 0F 9F 10 9F 12 9F 1A 9F 1E 9F 21 9F 26 9F 27 9F 33 9F 34 9F 35 9F 36 9F 37 9F 38 9F 39 9F 3C 9F 40 9F 41 9F 53 9F 6E 9F 7C 5F 20 5F 28 5F 2D 5F 56 DF EE 23 DF EE 26 FF EE 01


#Setting 2 for 5C

Use this terminal config to get started: (disalllow swipe for chip cards except on fallback, default transaction amount is a non-zero amount, fallback behavior on bad chip insert / no matching AID)

9F 02 06 00 00 00 00 01 00 5F 36 01 02 9F 1A 02 08 40 9F 35 01 21 9F 33 03 60 28 C8 9F 40 05 F0 00 F0 A0 01 9F 1E 08 54 65 72 6D 69 6E 61 6C 9F 15 02 12 34 9F 16 0F 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 9F 1C 08 38 37 36 35 34 33 32 31 9F 4E 22 31 30 37 32 31 20 57 61 6C 6B 65 72 20 53 74 2E 20 43 79 70 72 65 73 73 2C 20 43 41 20 2C 55 53 41 2E DF 26 01 01 DF 10 08 65 6E 66 72 65 73 7A 68 DF 11 01 00 DF 27 01 00 DF EE 15 01 01 DF EE 16 01 00 DF EE 17 01 05 DF EE 18 01 80 DF EE 1E 08 D0 9C 20 D0 C4 1E 16 00 DF EE 1F 01 80 DF EE 1B 08 30 30 30 31 35 31 30 30 DF EE 20 01 3C DF EE 21 01 0A DF EE 22 03 32 3C 3C DF EF 4B 03 7F 00 00 DF EF 62 01 01 DF EF 7D 01 03 DF EF 7E 06 50 01 50 05 50 36 DF EF 5A 62 4F 50 56 57 5A 82 84 87 8A 95 9A 9B 9C 5F 24 5F 2A 5F 30 5F 34 9F 02 9F 03 9F 06 9F 07 9F 08 9F 09 9F 11 9F 0D 9F 0E 9F 0F 9F 10 9F 12 9F 1A 9F 1E 9F 21 9F 26 9F 27 9F 33 9F 34 9F 35 9F 36 9F 37 9F 38 9F 39 9F 3C 9F 40 9F 41 9F 53 9F 6E 9F 7C 5F 20 5F 28 5F 2D 5F 56 DF EE 23 DF EE 26 FF EE 01


Master List of Available Custom Configs:  

TagDefinitionDescription / Usage
DFED0AOutputs Fallback Reason0: Switch is off, does not output fallback reason. 1: Switch is on, does output fallback reason




















How do I configure Augusta QC KB?  

How Do I Enable Quick Chip for KeyBoard Emulation on the Augusta?


How does the Augusta QC KB behave on a successful swipe, bad swipe, bad dip, successful dip, fallback swipe, etc?  

Proposed behavior implementation is here: Add user feedback (LEDs and Beeps )for any card interaction

Current behavior is not documented.


Terminal entry mode (9F39) is returning the incorrect value. How come? How do I resolve this?  

We can modify this in our terminal configs - IDTECH defined tag DFEE17 to set the value of 9F39.

In your current terminal configs (example below), change the value of DFEE17 from 7 -> 5. 
This tag was set to 7 in our default example as we have the same EMV L2 kernel being used across our contact/contactless family.

5F 36 01 02 9F 1A 02 08 40 9F 35 01 21 9F 33 03 60 28 C8 9F 40 05 F0 00 F0 A0 01 9F 1E 08 54 65 72 6D 69 6E 61 6C 9F 15 02 12 34 9F 16 0F 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 9F 1C 08 38 37 36 35 34 33 32 31 9F 4E 22 31 30 37 32 31 20 57 61 6C 6B 65 72 20 53 74 2E 20 43 79 70 72 65 73 73 2C 20 43 41 20 2C 55 53 41 2E DF 26 01 01 DF 10 08 65 6E 66 72 65 73 7A 68 DF 11 01 00 DF 27 01 00 DF EE 15 01 01 DF EE 16 01 00 DF EE 17 01 05 DF EE 18 01 80 DF EE 1E 08 D0 9C 20 D0 C4 1E 16 00 DF EE 1F 01 80 DF EE 1B 08 30 30 30 31 35 31 30 30 DF EE 20 01 3C DF EE 21 01 0A DF EE 22 03 32 3C 3C DF EF 4B 03 7F 00 00 DF EF 62 01 01 DF EF 7D 01 03 DF EF 7E 06 50 01 50 05 50 36 DF EF 5A 62 4F 50 56 57 5A 82 84 87 8A 95 9A 9B 9C 5F 24 5F 2A 5F 30 5F 34 9F 02 9F 03 9F 06 9F 07 9F 08 9F 09 9F 11 9F 0D 9F 0E 9F 0F 9F 10 9F 12 9F 1A 9F 1E 9F 21 9F 26 9F 27 9F 33 9F 34 9F 35 9F 36 9F 37 9F 38 9F 39 9F 3C 9F 40 9F 41 9F 53 9F 6E 9F 7C 5F 20 5F 28 5F 2D 5F 56 DF EE 23 DF EE 26 FF EE 01

To modify this, just pull up your existing terminal configurations and edit the value of DFEE17.
That should cause all your transactions to be flagged correctly as 5 rather than 7.


9F02 is returning the wrong amount / 0. What should I do?  

9F02 is set to 00 00 00 00 00 00 by default. You can add this to your terminal configs to update the default amount to a non-zero amount, or the amount that you need.

Add this to your terminal config: So you can add this to your terminal config for ($1): 9F02 06 0000000000100


This output tag value is not documented in the documentation!  

Our documentation needs to be updated to clearly reflect all possible scenarios, and error codes. This is a work in progress as we are working on getting this product EMV L3 certified, as well as preparing a small booklet.

Current behavior is not documented.

ToDo: DFEF65 (output mute)


What are all these proprietary tags? Where do I find more information about these?  

Proprietary tags are documented in ID TECH document 800000503-001, the TLV Tag Reference Guide.



I want particular tags to show up in the Augusta QC KB output. How do I go about doing this?  


IDTECH has defined tag DFEF5A to allow you to control which TLVs are returned during a transaction. Use this custom tag to specify the tags you want returned. You can read or write this tag when you read or write Terminal Settings. For example, consider the Terminal Settings block shown below.

5F3601029F1A0208409F3501219F33036028C89F4005F000F0A0019F1E085465726D696E616C9F150212349F160F3030303030303030303030303030309F1C0838373635343332319F4E2231303732312057616C6B65722053742E20437970726573732C204341202C5553412EDF260101DF1008656E667265737A68DF110100DF270100DFEE150101DFEE160100DFEE170107DFEE180180DFEE1E08D09C20D0C41E1600DFEE1F0180DFEE1B083030303135313030DFEE20013CDFEE21010ADFEE2203323C3CDFEF4B037F0000DFEF620101DFEF7D0103DFEF7E06500150055036DFEF5A624F5056575A8284878A959A9B9C5F245F2A5F305F349F029F039F069F079F089F099F119F0D9F0E9F0F9F109F129F1A9F1E9F219F269F279F339F349F359F369F379F389F399F3C9F409F419F539F6E9F7C5F205F285F2D5F56DFEE23DFEE26FFEE01


As you can see in the large blob of text - DFEF5A is there! How do I use it?

DFEF5A is a TLV that defines ALL the output tags for the Augusta. The default value of DFEF5A is what comes out of the Augusta QC KB on an insert when this value has not been defined.

In the example above - following TLV structure, we have DFEF5A 62 XXXX .. etc. 62 defines the length of the tag names. 

You can see tag 4F, 50, 56, 57... in this example. Here is where you can customize all the output tags you might need for your certification / operational use cases!

In the example above, the total length of the tags sum up to 62 hex nibbles.


For another example - let's say we only wanted 9F1E output in the return tags.


We'd do the following for our terminal config:

5F3601029F1A0208409F3501219F33036028C89F4005F000F0A0019F1E085465726D696E616C9F150212349F160F3030303030303030303030303030309F1C0838373635343332319F4E2231303732312057616C6B65722053742E20437970726573732C204341202C5553412EDF260101DF1008656E667265737A68DF110100DF270100DFEE150101DFEE160100DFEE170107DFEE180180DFEE1E08D09C20D0C41E1600DFEE1F0180DFEE1B083030303135313030DFEE20013CDFEE21010ADFEE2203323C3CDFEF4B037F0000DFEF620101DFEF7D0103DFEF7E06500150055036DFEF5A029F1E


Our output from the Augusta QC KB would now only have 9F1E.


I need a custom set of TLVs to be output as part of every Quick Chip transaction. Can I have IDTECH create a custom part number reader, with my custom tags, to save me time, or can I order this custom configuration from distribution?  

Either way is possible. However,  your sales rep will have to work with you to ensure that we understand exactly what your requirements are.

This will need to go through our internal CPR process, to be qualified by our sales, operations, and engineering departments, before there is a specific part number you can order – a process that may take upwards of a month.

The process can be made simpler by creating your own configurator tool (using ID TECH's freely available Universal SDK) to scale your production pipeline and also afford you much more control in the long run.



I swiped a card on the Augusta QC KB, and I'm getting no response from the reader. Why?  

Couple of reasons why this behavior could be happening.

Scenario A:  

Provided you set your terminal configurations for DFEF61 to 1, default behavior for swiping a chip card is no output (regardless of card brand).

If the card does not have a chip on it, the reader should allow the swipe. 

Scenario B:

MSR Auto Mode needs to be enabled. This can be done with the Universal Demo utility or by issuing a low level command to the device. 

Scenario C:

Your device is in USB HID mode. If you are expected output as if you typed on a keyboard, your device needs to be in USB-KB mode for it to function as so, along with being set to Auto Mode.

In USB HID mode, you would 'start MSR' and get a response back with data. 

Scenario D:

You have an Augusta S device with no key injected. A SRED product (denoted by 'S') for the Augusta will not function properly until the device has a DEK injected (data encryption key). 

Scenario E:

DF EF 62 is either not set, or set to 0



How do I allow fallback when the device is missing an AID, or has no matching AID, or if the card fails to read?  

The followings tags and implementation are heavily covered in this document: Product Integration Topic: Augusta QuickChip KeyBoard fallback behavior

At a high level, you need to specify the following terminal configurations:

  • DF EF 62 01 01
  • DF EF 7D 01 03
  • DF EF 7E 06 50 01 50 05 50 36

Current behavior is not documented.



If the card fails to read (bad ICC card), what does the device do? How do I allow a swipe (with same chip card) as a backup method?  

On the first bad insert, the Augusta is allowing a swipe OR another insert. (provided your terminal configurations are set up correctly according to the above question)


We validated this behavior is acceptable (AMEX / MasterCard had to weigh in) as the original intent behind an older test case / requirement was that the device had to prompt for 3 times before fallback to MSR.
They mentioned that it was more of a way to get people to try to insert cards rather than swiping as they were accustomed to.

So to answer your question - the device will allow a swipe or insert the first 3 times. On the last time, the transaction will terminate.
For the status codes, we return F2 22 on the 3rd try so your application can return a different code.

Current behavior is not documented.



The length of the fallback output doesn't match up with BER-TLV standard?  

Due to the Augusta returning ASCII embedded in the return MSR data (as how our other readers function), we had to figure out the best way to move forwards.

The length you see is a character count rather than the actual length, including a carriage return. I performed a bit of a proof below on this guide - Product Integration Topic: Augusta QuickChip KeyBoard fallback behavior

Current behavior is not documented.


How do I parse out DFEE23 when it is returned in a fallback swipe?  

For the chip error swipe and the candidate list swipe, you want to just look for the data contained between the start sentinel '02' to the end '03'. 
The way to properly parse DFEE23 following BER-TLV format-

If you see a 80, that denotes the length. (in hex, which is ~128 in decimal)
Anything above 80 (ex: 81 or 82) denotes how many additional nibbles need to be read for the length.


82 (80 + 2) indicates how many bytes after it are used for the length.


Chip Error fallback swipe:

9F390180DFEE238201F9 - 01 F9 is length, which is 505. 

If you look at the MSR payload, the length is 01 ed, which is 493.


Empty candidate list swipe:

9F390180DFEE2381DF - DF is length, which is 223. 

MSR payload indicates that the length is 00 d3, which is 211.


For your use case - if you see 80 (or lower), that is your length.

If you see 81, the next byte is your length. 

If you see 82, the next 2 bytes is your length.

If you see 83, the next 3 bytes is your length.


For example:

For your empty candidate list swipe example, DFEE23 length was 81 DF - DF evaluates to 223 (in decimal). We read 1 additional nibble.
For the chip error swipe, DFEE23 was 82 01 F9 - 01 F9 evaluates to 505 (in decimal). We read 2 additional nibbles.



I'm seeing a '80' come back as the value of 9F39. What does that mean?  

'80' is Fallback to Magnetic Stripe. 

Other values of 9F39 can be found here: What are the 'PAN Entry Modes' of tag 9F39?



I'd like to configure my device to support a carriage return on both swipe and dip. How do I do that?   

First, read this: I'm using Keyboard Quick Chip and the reader isn't sending a carriage return, pressing the enter key, after card presentation. Can the reader do this?


Enable ICC and Swipe Carriage return in USB KB: (send these data commands WITHOUT the nga option checked in the demo)

0206007253012a010d06fe03 // ICC Carriage return
0253d302010d038f // MSR Carriage return

After both commands have been run with the older version of the demo, do a swipe and an insert to verify the behavior.

Current behavior is not documented, and has issues.



I'm seeing only HEX data or I'm only seeing HEX + ASCII data in my MSR swipes and fallback swipes. What is going on?  

If the masked data for any of the tracks is enabled, the data will be returned in HEX + ASCII format (the masked portions will be denoted by the * character)
Typically, you might need the masked data to display on a terminal.
You can enable this or disable this using our Universal Demo Utility:
Enabling the masked tracks will display track data like this:
02A401801F372700A39B%*6011********0005^DEBIT/IMAGE 01^********************?;6011********0005=********************?9DCC2A12D995730759E0E2B8AC7D967A760601CC4193FD4D740CF86880EB93CE486085859530BBB775AFC4FA275271AB447768CD97EBE88E415B97E18448562B118B091111DF5490DECBCFCB1A8906C11CBE5D40A0F875D4F9E58403C9C4A5DA00000000000000000000000000000000000000000000000000000000000000000000000000000000363235543730303135346299490000000000003A6D4703
Disabling the masked tracks will display track data like this: (without the masked portions)
02CE00801D370000A089B8FA611F97EE301D99DC1C54E3DE5C47F1FC8F181DEBA1BED1D4552263EA52A4751FBF871A34249F046D66870C16D9640F7614BBBCEB6E400000000000000000000000000000000000000000363235543730303135346299490000000000003B01FD03



Last Updated:  



  • No labels