EMV® Terminal Type Approval – Book C-8 – Test Cases
Extracted document text
EMVCo's index flattens the document's layout, so this text is best used for searching and comparing versions rather than reading end-to-end.
This document is large; EMVCo's index truncates its extracted text, so the excerpt below is partial.
EMV® Terminal Type Approval Book C-8 Test Cases Version 1.1c October 2025 © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page i Legal Notice This document is subject to change by EMVCo at any time. This document does not create any binding obligations upon EMVCo or any third party regarding the subject matter of this document, which obligations will exist, if at all, only to the extent set forth in separate written agreements executed by EMVCo or such third parties. In the absence of such a written agreement, no product provider, test laboratory or any other third party should rely on this document, and EMVCo shall not be liable for any such reliance. No product provider, test laboratory or other third party may refer to a product, service or facility as EMVCo approved, in form or in substance, nor otherwise state or imply that EMVCo (or any agent of EMVCo) has in whole or part approved a product provider, test laboratory or other third party or its products, services, or facilities, except to the extent and subject to the terms, conditions and restrictions expressly set forth in a written agreement with EMVCo, or in an approval letter, compliance certificate or similar document issued by EMVCo. All other references to EMVCo approval are strictly prohibited by EMVCo. Under no circumstances should EMVCo approvals, when granted, be construed to imply any endorsement or warranty regarding the security, functionality, quality, or performance of any particular product or service, and no party shall state or imply anything to the contrary. EMVCo specifically disclaims any and all representations and warranties with respect to products that have received evaluations or approvals, and to the evaluation process generally, including, without limitation, any implied warranties of merchantability, fitness for purpose or noninfringement. All warranties, rights and remedies relating to products and services that have undergone evaluation by EMVCo are provided solely by the parties selling or otherwise providing such products or services, and not by EMVCo, and EMVCo will have no liability whatsoever in connection with such products and services. This document is provided "AS IS" without warranties of any kind, and EMVCo neither assumes nor accepts any liability for any errors or omissions contained in this document. EMVCO DISCLAIMS ALL REPRESENTATIONS AND WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NONINFRINGEMENT, AS TO THIS DOCUMENT. EMVCo makes no representations or warranties with respect to intellectual property rights of any third parties in or in relation to this document. EMVCo undertakes no responsibility to determine whether any implementation of this document may violate, infringe, or otherwise exercise the patent, copyright, trademark, trade secret, know-how, or other intellectual property rights of third parties, and thus any person who implements any part of this document should consult an intellectual property attorney before any such implementation. Without limiting the foregoing, this document may provide for the use of public key encryption and other technology, which may be the subject matter of patents in several countries. Any party seeking to implement this document is solely responsible for determining whether its activities require a license to any such technology, including for patents on public key encryption technology. EMVCo shall not be liable under any theory for any party's infringement of any intellectual property rights in connection with this document. © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page ii Revision Log – 1.1c The following changes were done since the publication of version 1.1b:
• In the following Test Cases reference to ‘C8’ proprietary tag was replaced by ‘CF’: o 4M10-9081 case 5a o 4M25-9015 case 5a o 4M35-9260 case 6 o 4M55-9140 case 5a
• Editorial updates © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page iii Contents 1 Using this Manual ................................................................................................. 1 1.1 Purpose.................................................................................................. 1 1.2 Audience ................................................................................................ 1 1.3 Reference Documents............................................................................ 1 1.4 Notations................................................................................................ 2 1.5 Abbreviations ......................................................................................... 2 1.6 Terminology ........................................................................................... 3 1.7 Remarks................................................................................................. 4 1.7.1 DEK checking ........................................................................................ 4 2 Introduction .......................................................................................................... 6 2.1 Terminal Vendor Testing Process .......................................................... 6 2.2 Test Case Template Description ............................................................ 6 2.2.1 2.2.2 2.2.3 2.2.4 Overview ................................................................................................ 6 Naming convention ................................................................................ 7 Applicability Conditions .......................................................................... 8 Pass Criteria .......................................................................................... 8 2.3 Test Case execution............................................................................... 9 2.3.1 2.3.2 2.3.3 2.3.4 Debug session ....................................................................................... 9 Type Approval session ........................................................................... 9 Undisclosed Test Cases......................................................................... 9 System Test Cases ................................................................................ 9 3 Unitary Test Cases ............................................................................................. 10 4M10-0010: Initialization - Instantiate tags............................................................ 10 4M10-0011: Initialization - KernelKeyData and UN ............................................... 10 4M10-0012: Initialization - extend TLV DB with proprietary tags ........................... 11 4M10-0070: Initialization - DF Name partial match with AID ................................ 11 4M10-0071: Initialization - Parsing Select Response - TLV length ........................ 11 4M10-0072: Initialization - Parsing Select Response - Padding ............................ 12 4M10-0073: Initialization - Parsing Select Response - storing data ...................... 12 4M10-0108: Initialization - Select Response - CardQualifier.Version .................... 15 4M10-0112: Initialization - Transaction Data......................................................... 15 4M10-0113: Initialization - Initialize data objects ................................................... 16 4M10-0115: Initialization - setting Security Capability ........................................... 17 4M10-0130: Initialization - setting Language Preference ...................................... 17 4M10-2019: Initialization - ASI identification ......................................................... 18 4M10-9017: Initialization - Mandatory Configuration Data.................................... 18 4M10-9019: Initialization - invalid ASIs ................................................................. 18 4M10-9081: Initialization - Select - parsing error................................................... 19 4M10-9110: Initialization - Select - DFname or CardQualifier missing .................. 20 4M20-0310: DOL - Concatenation ........................................................................ 20 4M20-0340: DOL - Unknown tag .......................................................................... 21 4M20-0355: DOL - Tag with length=0 ................................................................... 21 4M20-0405: DOL - Known tag, missing ................................................................ 22 4M20-0410: DOL - Shorter data object length, numeric format ............................. 22 4M20-0412: DOL - Shorter data object length, other format ................................. 23 4M20-0415: DOL - Longer data object length, other format .................................. 23 4M20-0420: DOL - Longer data object length, numeric format.............................. 23 4M20-0445: DOL - Constructed tag ...................................................................... 24 © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page iv 4M20-0515: DOL - longer data object length, compressed numeric format........... 24 4M25-0122: GetPO - Response parsing - length processing ................................ 25 4M25-0123: GetPO - Response parsing - padding ............................................... 25 4M25-0124: GetPO - Response parsing - storing data ......................................... 25 4M25-0130: GetPO - No PDOL ............................................................................ 28 4M25-0224: GetPO - filling Data To Send/DataNeeded........................................ 28 4M25-2018: GetPO - card CDOL1........................................................................ 29 4M25-2090: GetPO - DET received ...................................................................... 29 4M25-9001: GetPO - L1RSP ................................................................................ 29 4M25-9015: GetPO - parsing error ....................................................................... 30 4M25-9101: GetPO - SW 9000 - Next AID selection........................................ 31 4M25-9102: GetPO - SW 9000 - Test2 AID first .............................................. 32 4M25-9130: GetPO - Template issue ................................................................... 33 4M25-9150: GetPO - AIP, AFL, CardKeyData or CDOL1 missing ........................ 33 4M25-9226: GPO - decryption failed..................................................................... 34 4M25-9227: GPO - Blinded Public Key Recovered failed ..................................... 35 4M30-0022: RRP - not supported ......................................................................... 35 4M30-0180: RRP - RRPrMeasuredTime > Minimum Time ................................... 35 4M30-2000: RRP - Thresholds ............................................................................. 36 4M30-2110: RRP - Repeat RRP........................................................................... 36 4M30-9010: RRP - L1RSP ................................................................................... 37 4M30-9120: RRP - SW 9000 ........................................................................... 38 4M30-9170: RRP - parsing error........................................................................... 39 4M30-9180: RRP - RRPrMeasuredTime < Minimum Time? ................................. 40 4M35-0241: ReadRecord - Response parsing - TLV length.................................. 40 4M35-0242: ReadRecord - Response parsing - padding ...................................... 41 4M35-0243: ReadRecord - Response parsing - storing data ................................ 41 4M35-0244: ReadRecord - Response parsing - storing data ................................ 42 4M35-1421: ReadRecord - Each entry in the AFL ................................................ 44 4M35-1422: ReadRecord - SFI range 1-10........................................................... 44 4M35-1423: ReadRecord - Card Message Counter .............................................. 45 4M35-2021: ReadRecord - setting Active AFL ...................................................... 45 4M35-2218: ReadRecord - signed record ............................................................. 45 4M35-9100: ReadRecord - SW 9000............................................................... 46 4M35-9221: ReadRecord - L1RSP ....................................................................... 47 4M35-9228: ReadRecord - template check........................................................... 48 4M35-9260: ReadRecord - parsing error .............................................................. 48 4M35-9329: ReadRecord - parsing error (detected in ReadData state) ................ 50 4M36-2021: ReadData - ReadData before Records ............................................. 51 4M36-2025: ReadData - ReadData without records ............................................. 51 4M36-2238: ReadData - ReadData after a record ................................................ 51 4M36-2380: ReadData - DET ............................................................................... 52 4M36-7080: ReadData - Message fails................................................................. 52 4M36-7250: ReadData - SW!=9000...................................................................... 52 4M36-7251: ReadData - incorrect tag................................................................... 53 4M36-7253: ReadData - parsing error .................................................................. 53 4M36-9231: ReadData - L1RSP ........................................................................... 54 4M38-1000: PTFWF - waiting for PTFWF............................................................. 54 4M38-2424: PTFWF - Data To Send after encrypted record................................. 55 4M38-2431: PTFWF - decrypted ReadData received in s24 ................................. 55 4M38-4000: PTFWF - ReadData needed ............................................................. 56 4M38-9241: PTFWF - TimeOut ............................................................................ 56 4M40-1140: Pre-GenAC checks - Floor Limit ....................................................... 56 4M40-4171: Pre-GenAC checks - AID(Terminal) != DF Name .............................. 57 © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page v 4M40-9140: Pre-GenAC checks - Amount/TransactionDate not present .............. 57 4M50-0020: TAA - TVR AND TAC-Denial = '00 00 00 00 00'................................ 58 4M50-0030: TAA - OfflineOnly reader................................................................... 58 4M50-0040: TAA - OfflineOnline reader - OnlineOnly card ................................... 59 4M50-0061: TAA - OfflineOnline reader - Offline card........................................... 59 4M50-0062: TAA - TVR AND TAC-online != '00 00 00 00 00' ............................... 60 4M50-8010: TAA - TVR AND TAC-Denial != '00 00 00 00 00'............................... 61 4M50-8050: TAA - OfflineOnly reader - OnlineOnly card ...................................... 62 4M55-0110: GenAC - CID RFU bits...................................................................... 62 4M55-1202: GenAC - Response parsing - TLV length .......................................... 62 4M55-1203: GenAC - Response parsing - padding .............................................. 63 4M55-1210: GenAC - Response parsing - unexpected items ............................... 63 4M55-9010: GenAC - L1RSP ............................................................................... 64 4M55-9100: GenAC - SW != '9000'....................................................................... 65 4M55-9120: GenAC - Response Message Data format ........................................ 66 4M55-9140: GenAC - parsing error ...................................................................... 66 4M55-9160: GenAC - Mandatory data objects ...................................................... 67 4M55-9240: GenAC - Invalid CID ......................................................................... 67 4M55-9270: GenAC - Application PAN missing .................................................... 68 4M59-1140: No local authentication - transaction without local authentication ...... 68 4M60-0180: Certificates processing - RSA exponent............................................ 69 4M60-0225: Certificates processing - Issuer Identifier .......................................... 69 4M60-0226: Certificates processing - ExpDate = CurrentDate.............................. 70 4M60-0227: Certificates processing - Length of all Moduli (RSA) ......................... 70 4M60-0248: Certificates processing - PAN (ICC RSA) ......................................... 70 4M60-0255: Certificates processing - Upper bound for size of moduli (RSA) ........ 71 4M60-0257: Certificates processing - storing keys................................................ 71 4M60-0259: Certificates processing - NIC=NI=NCA (RSA)................................... 72 4M60-0262: Certificates processing - RSA - remainder not needed ..................... 72 4M60-1030: Certificates processing - No Extended SDA Tag List ........................ 72 4M60-1031: Certificates processing - Extended SDA Tag List.............................. 73 4M60-2001: Certificates processing - last record encrypted (ECC)....................... 73 4M60-2002: Certificates processing - last record encrypted (RSA) ....................... 74 4M60-3010: Certificates processing - Revocation List .......................................... 75 4M60-3800: Certificates processing - locating ICC ECC Key................................ 75 4M60-7004: Certificates processing - various failures (ECC) ................................ 76 4M60-7005: Certificates processing - various failures (RSA) ................................ 76 4M60-7008: Certificates processing - CA public key index not known .................. 76 4M60-7011: Certificates processing - RSA certificates not enabled ...................... 77 4M60-7014: Certificates processing - Erroneous Issuer Certificate (ECC) ............ 77 4M60-7015: Certificates processing - Erroneous Issuer Certificate (RSA) ............ 78 4M60-7040: Certificates processing - Erroneous ICC Certificate Format (ECC) ... 79 4M60-7041: Certificates processing - Erroneous ICC Certificate Format (RSA) ... 80 4M60-7045: Certificates processing - ICC ECC Key not found (RSA)................... 81 4M60-7046: Certificates processing - ICC ECC Key not found (RSA)................... 81 4M60-7100: Certificates processing - Erroneous BlindingFactor........................... 81 4M61-2830: IAD MAC - copy in IAD ..................................................................... 82 4M61-9284: IAD MAC - invalid offset.................................................................... 82 4M62-7450: EDA MAC - MAC failure.................................................................... 82 4M65-2926: CVM processing - 'CV Failed' ........................................................... 83 4M65-2928: CVM processing - 'NO CVM'............................................................. 83 4M65-2930: CVM processing - 'SIGNATURE' ...................................................... 84 4M65-2932: CVM processing - 'CDCVM' .............................................................. 84 4M65-2934: CVM processing - 'N/A' ..................................................................... 84 © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page vi 4M65-2941: CVM processing - 'Not Matching' ...................................................... 85 4M65-2942: CVM processing - 'Online PIN'.......................................................... 85 4M70-2945: WriteData - positive test.................................................................... 86 4M70-7090: WriteData - SW!=9000...................................................................... 86 4M70-7301: WriteData - L1RSP ........................................................................... 86 4M80-1005: Completion - No WriteData ............................................................... 87 4M80-1021: Completion - no restart ..................................................................... 87 4M80-3010: Completion - Kernel decision ............................................................ 87 4M80-3019: Completion - Decline vs TransactionType......................................... 88 4M80-4444: Completion - DataRecord and DiscretionaryData.............................. 90 4M80-5000: Completion - Tag Mapping................................................................ 91 4MX8-0023: Stress tests - transaction types......................................................... 91 4MX8-0030: Stress tests - RFU bits...................................................................... 92 4MX8-0035: Stress tests - encrypted records ....................................................... 93 4MX8-0040: Stress test - no DE/DS ..................................................................... 93 4MX8-0200: Stress test - complex transactions #1 ............................................... 93 4MX8-0666: Stress test - complex transactions #2 ............................................... 94 4MX8-0900: Maximum Data Length ..................................................................... 94 4MX8-1000: Test with Real AIDs .......................................................................... 94 4MX8-1001: Discretionary Data............................................................................ 95 4 System Test Cases ............................................................................................. 96 4S00-0248: Certificates processing - PAN (ICC RSA) .......................................... 96 4S00-0900: Maximum Data Length ...................................................................... 96 4S00-1001: Discretionary Data............................................................................. 96 4S00-1423: ReadRecord - Card Message Counter .............................................. 97 4S00-2021: ReadData - ReadData before Records .............................................. 97 4S00-4444: Completion - DataRecord and DiscretionaryData .............................. 98 A. List of sub-cases ................................................................................................ 99 © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page vii Tables Table 1-1—Reference Documents ........................................................................................ 1 Table 1-2—Notations ............................................................................................................ 2 Table 1-3—Abreviations........................................................................................................ 2 Table 2-1—Test Case Template ........................................................................................... 6 Table 2-2—Transaction stage ID........................................................................................... 7 Table 2-3—Applicability Conditions ....................................................................................... 8 © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 1 of 123 1 Using this Manual 1.1 Purpose EMV Contactless Specifications for Payment Systems, Book C-8 – Kernel 8 Specification defines the behaviour of the Kernel used in combination with cards having a Kernel Identifier indicating Kernel 8. The present document describes a set of test cases which when applied to the Contactless Reader, are designed to determine whether the Contactless Reader meets the requirements stated in the specification. 1.2 Audience The intended audiences for this document are EMVCo recognised laboratories, Entry Point and Contactless application providers, acquiring members or merchants. Although acquiring members and merchants may reference this document, type approval testing oriented toward Entry Point and Contactless application providers. 1.3 Reference Documents Table 1-1—Reference Documents Reference Document [C8] [SB302] EMV Contactless Specifications for Payment Systems – Book C-8 - Kernel 8 Specification EMV Specification Bulletin No. 302 [SB310] EMV Specification Bulletin No. 310 [Admin] EMV Terminal Type Approval Contactless Product – Administrative Process [Book A] [Book B] EMV Contactless Specifications for Payment Systems – Book A – Architecture and General Requirements EMV Contactless Specifications for Payment Systems – Book B – Entry Point Specification Version Issue Date Version 1.1, June 2023 1st Ed, March 2024 1st Ed, March 2025 Latest applicable version Latest applicable version Latest applicable version © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 2 of 123 Reference [Book E] [ICS] [TestEnv] Document EMV Contactless Specifications for Payment Systems – Book E – Security and Key Management EMV Kernel 8 Implementation Conformance Statement EMV® Terminal Type Approval Contactless Product – Kernel 8 Testing Environment Requirements Version Issue Date Latest applicable version Latest applicable version Latest applicable version 1.4 Notations Table 1-2—Notations Term ‘0’ to ‘9’ and ‘A’ to ‘F’ Definition 16 hexadecimal digits. Values expressed in hexadecimal form are enclosed in single quotes (i.e. ‘_’). 1.5 Abbreviations Table 1-3—Abbreviations an API AUC AVN b CAkey CID GenAC GetPO hex. n Abbreviation Description Alphanumeric Application Priority Indicator Application Usage Control Application Version Number Binary Certification Authority Public Key Cryptogram Information Data Generate AC Get Processing Options Hexadecimal Numeric © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c NCA OPS PK RFU RID RRP Abbreviation RRPcEntropy RRPcEstimated RRPcMaxTime RRPcMinTime RRPrAccuracyThreshold RRPrCounter RRPrEntropy RRPrExpectedCAPDU RRPrExpectedRAPDU RRPrMeasuredTime RRPrMaxGrace RRPrMinGrace RRPrMismatchThreshold TAC TVR UIRD UN Page 3 of 123 Description Length of the Certificate Authority Public Key Modulus Outcome Parameter Set Public Key Reserved for Future Use Registered Application Provider Identifier Relay Resistance Protocol. In this document, RRP also refers to the ‘exchange relay resistance data’ APDU Device RRP Entropy Device Estimated Transmission Time For RRP R-APDU Max Time for processing RRP APDU Minimum Time for processing RRP APDU RRP Accuracy Threshold RRP Counter Terminal Relay Resistance Entropy Terminal Expected Transmission Time for RRP C-APDU Terminal Expected Transmission Time for RRP R-APDU Measured RRP Time Maximum RRP Grace Period Minimum RRP Grace Period RRP Transmission Time Mismatch Threshold Terminal Action Code Terminal Verification Results User Interface Request Data Unpredictable Number 1.6 Terminology This section explains the terms used in this document. Successfully complete: © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 4 of 123 When a Pass Criteria expects the product to successfully complete the transaction, it means the transaction should either be approved offline or sent online for authorization. Amount: This document uses several wordings as listed below:
• “Purchase Amount”: this refers to the amount entered for a purchase transaction. A cashback amount may then be entered.
• “Cashback amount”: this refers to the cashback amount
• “Transaction amount” / “Amount”: this refers to the amount entered for a generic transaction (purchase, withdrawal,…). It is assumed that no cashback amount is entered. The Test Tool Suppliers must pay attention at the following:
• The ‘9F02’ tag value is the sum of the purchase and cashback (if any) amounts
• Some Product Providers will provide a Level 3 test application that permits to enter the purchase and cashback amounts. This Level 3 application will then sum both amounts before passing the ‘9F02’ tag to the Kernel
• Some Product Providers will not provide any Level 3 test application, in which case the operator shall enter the ‘9F02’ value directly The test wording must be reviewed accordingly. Please find an example below: Please enter PURCHASE AMOUNT = 7.50 or AMOUNT AUTHORIZED = 10.00 Please enter CASHBACK AMOUNT (or AMOUNT OTHER) = 2.50 1.7 Remarks 1.7.1 DEK checking The DEK pass criteria are like “After issuance of the first ReadRecord command, the reader shall build a DEK signal including DataToSend template containing the PAN”. The pass criteria expect the Kernel to build the DEKs at the right time, as defined in the specifications. In other words, the tests will ensure the DEK value is as expected. The tests do not verify at what time the Kernel is sending the DEKs. As a consequence, the test tools shall:
• Not verify when the DEK is sent (eg: after the 1st ReadRecord command).
• Ensure the DEK value is the correct one.
• Ensure the number of DEK(s) is as expected. Note 1: Some readers may be unable to send a DEK until a R-APDU has been received. Note 2: When automation is used, the test operators must take into account that there maybe a significant communication speed difference between the APDU interface and the TEI interface. The TEI interface will use TCP-IP so the exchange will typically last 10-20ms. The APDU (NFC) interface will use the test probes and the exchanges will typically last 100-200ms. Consequently the events received by the test tool maybe in an order different from the ones sent by the Kernel. For instance, the Kernel may send CAPDU-DEK but the test tool may © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 5 of 123 receive DEK-CAPDU. This is why EMVCo recommends the Product Providers to use the PCD-bypass interface (TCP-IP) defined in [TestEnv]. © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c 2 Introduction Page 6 of 123 2.1 Terminal Vendor Testing Process The [Admin] document describes the process Kernel 8 providers must follow for their products to be approved by EMVCo. One of the steps of this process is the Terminal Contactless Products Type Approval. The objective of this process is to ensure the Kernel 8 embedded in the Contactless Reader is compliant with requirements defined in [C8]. The compliance of a Contactless Reader to the [C8] requirements is verified by executing tests specified by Tests Cases. A Test Case:
• Covers a specific objective (for example: ensure that if, in the course of normal processing, the reader recognises that data returned by the card is incorrectly formatted, then the reader terminates processing.).
• Refers to a specific requirement from the [C8] specifications.
• Defines the conditions (card & reader state) that must be met before the tests can be started.
• Defines the procedure to execute the tests.
• Defines the main criteria that allow a test to be considered as successful. 2.2 Test Case Template Description 2.2.1 Overview This paragraph describes the Test Case template used in this document. Table 2-1—Test Case Template Test Case number and name Objective Applicability References Objective of the Test Case Implementation option(s) needed to run this Test Case (absent if empty) Reference to specification section Conditions Card and reader configuration required for this Test Case Procedure Test procedure (absent if empty) Pass Criteria Main criteria for Test Case validation © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 7 of 123 Test Case number and name Note Note/comment (absent if empty) 2.2.2 Naming convention Test Cases names are structured as follow: ‘4Xbb-cccc’ (e.g.: 4M60-1016). Where:
• "4X" defines the type of Test Case: o “4M”: Unitary Test Cases o “4S”: System Test Cases o “4U”: Undisclosed Test Cases (Not present in this document, refer to section 2.3.3)
• “bb” indicates a transaction stage. Value is set to ‘00’ for all System and Undisclosed Test Cases Table 2-2 lists the transaction stage identifiers used in this document. Table 2-2—Transaction stage ID Transaction stage ID 00 10 20 25 30 35 36 38 40 50 55 59 60 61 62 65 70 Description System tests and Undisclosed tests Initialization DOLs GetPO RRP ReadRecord ReadData Waiting for PTFWF Pre-GenAC checks TAA GenAC No local authentication Certificates processing IAD MAC EDA MAC CVM processing WriteData © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 8 of 123 Transaction stage ID 80 X8 Description Completion Stress tests
• “cccc” is an arbitrary number permitting to order the Test Cases. Note: ‘9ccc’ corresponds to negative/failure tests. 2.2.3 Applicability Conditions The Applicability Conditions are detailed in the below table. Table 2-3—Applicability Conditions Transaction stage ID [DE/DS] NOT [DE/DS] Description The Test Case applies when the product implements DE/DS The Test Case applies when the product does not implement DE/DS 2.2.4 Pass Criteria The Test Case description provides the main criteria the product must meet to pass the corresponding Test Case. However, as the tests are run in black-box mode, they may fail for reasons not explicitly described in the test. For example, a test on Generate AC may fail before reaching the GenerateAC if the product does not implement the GetPO command correctly. This is particularly true as all tests verify all signals and data outputted by the kernel. Typically, the Test Tool verifies that:
• C-APDUs are issued in the correct order
• DOL values are correctly populated
• DEK values are correctly populated
• the MSG signal is correctly populated
• the OUT signal is correctly populated (e.g all bits of the TVR are verified) A consequence of this is that the debugging of the very first test will take time as the Test Tool will fail until the product implements the main sections of [C8] correctly. EMVCo recommends starting with the test 4M80-4444 which is considered as a ‘nominal’ test. © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 9 of 123 2.3 Test Case execution. 2.3.1 Debug session As mentioned above, the test 4M80-4444 may be a good start when initiating the debugging of a product. This test is using ECC certificates. The test 4M60-0227 is another nominal test. It implements RSA certificates. 2.3.2 Type Approval session During a Type Approval session, the laboratory will order the tests by test configuration to reduce the number of reconfiguration of the Product. 2.3.3 Undisclosed Test Cases Undisclosed Test Cases are not public and shall not be performed during Debug session. During the Type Approval session, Testing Laboratories shall not provide details of these Undisclosed Test Cases (e.g. logs) to Product Providers. However the Testing Laboratories are allowed to communicate the ‘derivated tests’ that are mentioned in the Test Case note field. 2.3.4 System Test Cases System Test Cases are performed without TEI Interface and with Test Tool NFC Probe (PCDbypass Interface must not be used). As a consequence:
• The Configuration and transaction related data shall be loaded manually. These data shall be provided by the Test Tool before each test. Default transaction related data are: o Transaction Currency Code= ‘0978’ o Transaction Currency Exponent = ‘02’ o Transaction Type = ‘00’ o Amount, Authorised = ‘000000001500’ o Transaction Date = Testing date o Transaction Time = Testing Time
• Some Acceptance Criteria must be validated by the Operator, the Operator shall follow the instructions provided by the Test Tool. © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c 3 Unitary Test Cases Page 10 of 123 4M10-0010: Initialization - Instantiate tags Objective To ensure the reader correctly instantiates the known tags. References KS.1 Conditions Test the tags that have not been tested already: - AcquirerIdentifier '9F01' (K) - MerchantCategoryCode '9F15' (K) - MerchantID '9F16' (K) - Merchant Name and Location '9F4E' (K) - TerminalID '9F1C' (K) - Track1DD '9F1F' (K/RA) - Track2DD '9F20' (K/RA) - Transaction Currency Expo '5F36' (K/ACT) - Terminal Risk Management Data '9F1D' (K) Pass Criteria For all cases, the reader shall return the correct values in the PDOL and CDOL1. 4M10-0011: Initialization - KernelKeyData and UN Objective References To ensure the reader correctly initializes the KernelKeyData and UN tags. s1.13,s2.7 PDOL and CDOL request UN - transaction#1 is performed and leads to StartB (after GenAC) - transaction#2a is performed and leads to StartC (GPO SW) - transaction#2b is performed and leads to termination (GPO: AIP missing) - transaction#3 is performed and leads to completion - no RRP Conditions Reader is powered off and on - transaction#4 is performed and leads to StartB (after GenAC) - transaction#5 is performed and leads to completion - 2 RRP exchanges Reader is powered off and on - transaction#6a is performed and leads to StartC (GPO SW) - transaction#6b is performed and leads to termination (GPO: AIP missing) - transaction#7 is performed and leads to completion - 3 RRP exchanges © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 11 of 123 Pass Criteria For all cases, the reader shall provide different value for the KernelKeyData tag. UN(s) shall be different at each transaction UN shall have the same value in GenAC and DataRecord. Transaction#3 UN must be the same in the GetPO and GenAC (since RRP not performed) When applicable: - UN must be different in the GetPO and the first RRP command - UN must be different in each RRP command - UN must be the same in the last (or single) RRP command and GenAC 4M10-0012: Initialization - extend TLV DB with proprietary tags Objective References To ensure the reader correctly extends the TLV database with proprietary tags, if any. To ensure the reader include empty proprietary tags in DiscretionaryData. KS.1 Conditions TLV DB includes proprietary tags Pass Criteria For all cases, the reader shall return the correct values in the PDOL and CDOL1. 4M10-0070: Initialization - DF Name partial match with AID Objective To ensure terminal continues the transaction as expected when the DF Name return on final Select is longer than AID(Terminal) but DF Name begins with the AID. References s202122232425.16-TRUE, s202122232425.17 Conditions The Length of the DF Name returned in Final Select is higher than the AID length. DF Name begins with the AID (partial match) Pass Criteria transaction must successfully complete. 4M10-0071: Initialization - Parsing Select Response - TLV length Objective References Conditions To ensure the reader correctly manages the TLV length when parsing the Select AID response. s1.5, s1.6-TRUE Case 1: FCI Template ('6F') length and FCI Proprietary Template ('A5') length are coded on 1 byte. Primitive data object lengths are coded on 1 byte. Case 2: FCI Template ('6F') length is coded on 1 byte. Primitive data object lengths are coded on 2 bytes. Case 3: FCI Template ('6F') length is coded on 2 bytes while the data length is less than 128. Primitive data object lengths are coded on 1 byte. © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 12 of 123 Case 4: FCI Template ('6F') length is coded on 2 bytes while the data length is more than 128. Primitive data object lengths are coded on 2 bytes. Case 5: FCI Proprietary ('A5') Template length is coded on 1 byte. Primitive data object lengths are coded on 2 bytes. Case 6: FCI Proprietary ('A5') Template length is coded on 2 bytes while the data length is less than 128. Primitive data object lengths are coded on 1 byte. Case 7: FCI Proprietary ('A5') Template length is coded on 2 bytes while the data length is more than 128. Primitive data object lengths are coded on 2 bytes. Pass Criteria In all cases the transaction must successfully complete. 4M10-0072: Initialization - Parsing Select Response - Padding Objective To ensure the reader ignores any '00' padding before, between or after TLV-coded data objects. References s1.5, s1.6-TRUE Conditions Case 1: the template contains DFName and FCI Proprietary Template with a '0000' padding in between. Case 2: the template contains API and LanguagePreference with a '00' padding of 50 bytes after the two objects. Case 3: the template contains '0000' padding between tags inside the 'BF0C' template Pass Criteria In all cases the EMV transaction must successfully complete. 4M10-0073: Initialization - Parsing Select Response - storing data Objective References To ensure the reader stores recognized data objects (Known and update conditions include RA Signal) and ignores the unrecognized ones. To ensure the reader disregards known card returned tags not having RA update conditions and the unknown tags. s1.5, s1.6-TRUE FCI of ADF contains all mandatory tags: DFName ('6F84'), PDOL ('6FA59F38') and CardQualifier ('6FA5BF0C9F2C'). The PDOL includes all the data objects (except '9F38' itself) listed in the related cases below. Conditions Case 0: (no optional tags): FCI of ADF contains no optional data objects (tested in 4M804444). Case1: AFL is returned in Select command instead of GPO command. Case 2a: (all optional tags, min length): FCI of ADF contains all optional data objects: ApplicationLabel ('50'), API ('87'), LanguagePreference ('5F 2D'), PDOL ('9F38'), ICTI ('9F © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 13 of 123 11'), ApplicationPreferredName ('9F 12') and FCI issuer DiscretionaryData ('BF0C') containing: ASRPD ('9F0A' with value '0095 01 AF'), IIN and IINextended. Variable length data items have the minimum length (except '9F38'). Case 2b: (all optional tags, max length): Same as 2a, optional data items have the maximum length (except ASRPD that may keep the same value as in case 2a). Case 3: same as case 2b plus the following EMV proprietary data objects not present in TLV database(i.e.: IsKnown=False) are returned : - IBAN ('5F53') is returned above the 'A5' template - Bank Identifier Code ('5F54') is returned in 'A5' before the 'BF0C' template - IssuerCountryCode - alpha 2 ('5F55') is returned in 'BF0C' - IssuerCountryCode - alpha 3 ('5F56') is returned in 'BF0C' Case 4 : - the proprietary tag '9F05' is present in the TLV empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=True ie: upd=K/RA). This tag is returned in 'BF0C'. - The tag '9F38' is returned in the template 'A5' but after the 'BF0C'. Case 5:Proprietary tag 'DFED08', Private Class, not present in TLV database(i.e.: IsKnown=False). This tag is returned in 'BF0C' with 3 bytes length '82 00 0x' and any value. Case 6: - Card returns CardQualifier in template A5 instead of BF0C - Card returns DFname (extended) in A5 instead of 6F - Card returns AppLabel in 6F instead of A5 - BF0C not returned Case 7: Proprietary tag '81' is present in the TLV database (i.e.: IsKnown=True, IsPresent=True, IsEmpty=True ie: upd=K (not RA)). This tag is returned in 'BF0C' with different value. Case 8: Proprietary tag 'C8', Private Class, upd=K/RA, empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=True: upd=K/RA ). This tag is returned in 'BF0C'with any value. Case 9: Known tag '9F8221',not proprietary tag, upd=K (not RA), not present in TLV database Case 10: Known tag '9F4E', not proprietary tag, upd=K (not RA), empty in TLV database Case 11: Known tag '9F40',not proprietary tag, upd=K (not RA) is present in the TLV database not empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=False ie: upd=K (not RA)). This tag is returned in 'BF0C' with different value and incorrect Length. Case 12: Known tag'CE', proprietary tag ,privateClass, not RA, not empty in TLV database Case 13: Proprietary tag '81' is present in the TLV database not empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=False ie: upd=K (not RA)). This tag is returned in 'BF0C' with different value and incorrect Length. Case 14: Proprietary tag '9F04' is present in the TLV database not empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=False ie: upd=K/ACT/DET (not RA)). This tag is returned in 'BF0C' with different value and incorrect Length. © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 14 of 123 Case 15: Proprietary tag '9F04' is present in the TLV database not empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=False ie: upd=K/ACT/DET (not RA)). This tag is returned in 'BF0C' with same value. Case 16: Proprietary tag '9F04' is present in the TLV database not empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=False ie: upd=K/ACT/DET (not RA)). This tag is returned in 'BF0C' with different value and correct Length. Case 17: Known tag '9F02',not proprietary tag, upd=K/ACT/DET (not RA) is present in the TLV database not empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=False ie: upd=K/ACT/DET (not RA)). This tag is returned in 'BF0C' with different value and incorrect Length. Case 18: Known tag '9F02',not proprietary tag, upd=K/ACT/DET (not RA) is present in the TLV database not empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=False ie: upd=K/ACT/DET (not RA)). This tag is returned in 'BF0C' with different value and correct Length. Case 19: Known tag '9F40',not proprietary tag, upd=K (not RA) is present in the TLV database not empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=False ie: upd=K (not RA)). This tag is returned in 'BF0C' with different value . Case 20: UnKnown tag 'D8',Private Class (i.e.: IsKnown=False, IsPresent=False). This tag is returned in 'BF0C' . Case 21: Proprietary tag'9F08', upd=K/RA, not empty in TLV database (i.e.: IsKnown=True, IsPresent=True, IsEmpty=False ie: upd=K/RA). This tag is returned in 'BF0C' with different value. Case 22: Proprietary tag'C4', Private Class, upd=K/ACT/DET, empty in TLV database (i.e.: IsKnown=True, IsPresent=True, IsEmpty=True ie: upd=K/ACT/DET (not RA)). This tag is returned in 'A5' with maximum correct length. Case 23: Proprietary tag 'C6', Private Class, upd=K/DET, empty in TLV database (i.e.: IsKnown=True, IsPresent=True, IsEmpty=True ie: upd=K/DET (not RA)). This tag is returned in 'A5' . Case 24: Proprietary tag 'C5', Private Class, upd=K/ACT, not empty (updated in ACT) (i.e.: IsKnown=True, IsPresent=True, IsEmpty=False ie: upd=K/ACT (not RA)). This tag is returned in '6F' with incorrect length . Case 25: Proprietary tag '5F19', upd=K/ACT/RA, not empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=True ie: upd=K/ACT/RA ). This tag is returned in '6F' with correct length . Case 26: Proprietary tag 'C9', Private Class, , with update condition K/ACT/DET/RA, not empty (updated in ACT) (i.e.: IsKnown=True, IsPresent=True, IsEmpty=False and update conditions include RA Signal). This tag is returned in '6F' with correct length and same that value than in ACT . The transaction must successfully complete. Pass Criteria Cases 2a, 2b, 4, 8, 25 and 26: The PDOL populated data includes value returned in Select response for the recognized tags . Others Cases: The reader must ignore the values of unrecognized tags returned by the card in Select response, these values are not stored in TLV Database. The PDOL shall be correctly populated. © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 15 of 123 4M10-0108: Initialization - Select Response - CardQualifier.Version Objective To ensure the reader accepts CardQualifier. Version greater than 0. References s1.8-TRUE Conditions Case 0: CardQualifier.Version = '02' (already tested by default) Case 1: CardQualifier.Version = '01' Case 2: CardQualifier.Version = '03' Case 3: CardQualifier.Version = '10' Case 4: CardQualifier.Version = 'FE' Pass Criteria The transaction must successfully complete. 4M10-0112: Initialization - Transaction Data Objective To ensure the reader correctly adds the transaction data to the TLV database. Applicability Cases 01b: [DE/DS] Cases 01a: NOT([DE/DS]) References s1.12 Case 1a (known + upd=ACT, no DEDS): The ACT signal contains the tags with update condition "/ACT/": - AccountType - Amount* - AmountOther* - TransactionCurrencyCode* - TransactionCurrencyExponent - TransactionDate* - TransactionTime - TransactionType* Conditions Case 1b (known + upd=ACT, DEDS): samse as 1a, plus the ACT signal contains the DE/DS tags with update condition "/ACT/": - DataEnvelopeToWrite** - PTFWF - TagsToRead**: non empty in the TLV database, provided in the ACT with different value (empty) Case 2 (proprietary, present,not Empty upd=K/ACT): '9F04' is present in TLV DB not empty, '9F04' is provided in ACT with different Value. Case 3 (present, upd=ACT): '9F02' present in TLV DB, '9F02' is provided in ACT Case 5 (Proprietary Tag, PrivateClass, not present): The ACT signal contains the following unknown tag: C4 © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 16 of 123 Case 6 (Proprietary, present, upd=K/RA): '9F05' is present in TLV DB empty, it is provided in ACT Case 7 (known, not present, upd!=ACT): PAN is provided in ACT Case 8 (known, present, upd!=ACT): The ACT signal contains the following tag: '9F06 05 1122334455'. Case 9 (Proprietary Tag, present, Empty, K/ACT): '9F28' is provided in ACT Transaction must complete successfully. Case 1a: The reader does not send any DEK with 9F0A since the Tags2Read value is modified (to '9F2C') in the ACT signal. A DEK shall be sent with '9F2C' value. Pass Criteria Cases 1a and 1b: Reader must provide the correct values in PDOL Cases 2, 3 and 9: the reader must store the value provided in ACT Note Cases 5 to 8: reader must provide zero value in PDOL *: already tested by default (value verified in DataRecord) **: already tested 4M10-0113: Initialization - Initialize data objects Objective To ensure the reader correctly initializes data objects when FCI parsing is correct. Applicability Cases 02: [DE/DS] Cases 01: NOT([DE/DS]) References s1.13 Conditions Procedure Pass Criteria PDOL requests: CVMResults, TVR, TerminalCapabilities, RelayResistanceTimeExcess, KernelQualifier, ReadDataStatus, WriteDataStatus, DataNeeded. - transaction#1 is performed and leads to completion - transaction#2 is performed and leads to StartB (after GenAC) - transaction#3a is performed and leads to StartC (GPO SW) - transaction#3b is performed and leads to termination (GPO: AIP missing) - transaction#4 is performed and leads to completion - no RRP Reader is powered off and on - transaction#5 is performed and leads to decline - transaction#6 is performed and leads to StartB (after GenAC) - transaction#7 is performed and leads to completion - 3 RRP exchanges - transaction#8 is performed and leads to completion - 1 RRP exchange The following values must be returned by the reader during the GetPO command: - CVMResults indicates '000000' - TVR indicates '0000000080' - TerminalCapabilities byte 1 = CardDataInputCapability - TerminalCapabilities byte 2 indicates '00' © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c - TerminalCapabilities byte 3 = SecurityCapability - RelayResistanceTimeExcess = '0000' - KernelQualifier bytes 1-2= '0180' or '0100' (case 2) Page 17 of 123 4M10-0115: Initialization - setting Security Capability Objective To ensure the reader correctly initializes Security Capability in Terminal Capabilities. References s1.13 Conditions Pass Criteria 2 transactions are performed, the security capability ('9F820A') is part of the PDOL. - transaction#1 is performed with Security Capability set to '10' - transaction#2 is performed with Security Capability set to '20' The transaction must successfully complete.The reader shall return the correct values in the PDOL Related Data. 4M10-0130: Initialization - setting Language Preference Objective References To ensure the reader correctly initializes OPS, UIRD1, UIRD2 and ErrorIndication as per KS.2. To ensure the reader correctly sets (and pads if necessary) the Language Preference in UIRD1 and UIRD2. To ensure the reader correctly behaves when SupportForFieldOffDetection is set. To ensure the reader correctly behaves when restart is requested. s1.10, s1.11, s2930.3, s2930.4, s2930.5, s2930.6, s2930.7, s2930.8 SupportForFieldOffDetection is set. RestartIndicator.restartRequested = RESTART. Several values are tested for RestartIndicator.alternateInterface. Conditions Case 1: Language Preference length is 2 - 'Message Identifier' in RestartIndicator = '00000000' Case 2: Language Preference length is 2 - 'Message Identifier' in RestartIndicator = '00100001' (TRY AGAIN) Case 3: Language Preference length is 2 - 'Message Identifier' in RestartIndicator = '00011000' (TRY ANOTHER INTERFACE) Case 4: Language Preference length is 2 - 'Message Identifier' in RestartIndicator = '00100000' (SEE PHONE) Case 5: Language Preference length is 2 - 'Message Identifier' in RestartIndicator = '00011011' (RFU) Case 6: Language Preference length is 2 - 'Message Identifier' in RestartIndicator = '11111111' (RFU) © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 18 of 123 Pass Criteria Case 7: Language Preference length is 2 - 'Message Identifier' in RestartIndicator = '10000000' (RFU) Case 8: Language Preference length is 8 - 'Message Identifier' in RestartIndicator = '00000000' Case 9: Language Preference is absent Language Preference is correctly set in UIRD1 and UIRD2 In UIRD1 and UIRD2, 'MessageID' is set to: - 'Try Again' (cases 1, 5, 6, 7, 8, 9) - 'Message ID' in Restart Indicator' (cases 2, 3, 4) 4M10-2019: Initialization - ASI identification Objective To ensure the reader correctly identifies the SC ASI. To ensure the reader correctly sets the 'SC ASI' and 'C ASI List' in Kernel Qualifier. References C.101-FALSE, C.10, s2.6 Conditions Pass Criteria SC ASI returned by card in CardQualifier: Case 0: '00FFFF' (already tested) Case 1: '018800' - ECC Case 2: '880001' - ECC, RSA not supported Case 3: 'FFFF00' - RSA Transaction must complete successfully. The reader must correctly sets the 'SC ASI' (to '00') and 'C ASI List' in Kernel Qualifier. 4M10-9017: Initialization - Mandatory Configuration Data Objective To ensure the reader stops the transaction when Mandatory Configuration data object is empty or not present or with incorrect length. References KS3, KS.4-FALSE, KS.5, KS.6 Conditions Case 1: Mandatory Data Objects are not present Case 2: Mandatory Data Objects are empty Case 3: Mandatory Data Objects lengths are incorrect Pass Criteria The reader must stop the transaction and select the next AID in the candidate list. 4M10-9019: Initialization - invalid ASIs Objective References To ensure the reader terminates when the card does not support ASI '00'. C.101-FALSE, C.10, s2.6 © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Conditions SC ASI returned by card in CardQualifier: Case 1: '0188FF' Case 2: '01FFFF' RSA not supported Case 3: '880102' Case 4: '200102' Pass Criteria Transaction must terminate. Page 19 of 123 4M10-9081: Initialization - Select - parsing error Objective References To ensure the reader stops the transaction when the response message of the Final Select command is not correctly formatted (i.e.: data is absent from the response, parsing is not as per the encoding rules, tag already present in the TLV database with different value, tag not present in the TLV database but update conditions do not include RA, length is not in the specified range). s1.7, s1.14 The card returns several valid combinations in the PPSE response. SW12 in Final Select response is '9000'. Case 1: Final Select response does not include any data, only SW12='9000' Conditions Final Select response includes the following formatting errors: Case 2: the length value indicated in the template '6F' is greater than the actual data length Case 3: the following additional data is returned: 'DF 00' (tag indicates subsequent byte and subsequent byte is not greater than zero, plus length is absent.) Case 4: the following additional data is returned: 'DF01 02 03' (length is erroneous) Case 5a: the proprietary tag 'CF' is present in the TLV database. This tag is returned in the Final Select response with length lower than expected length range(with any value). Case 5b: the proprietary tag 'C8' is present in the TLV database. This tag is returned in the Final Select response with length higher than expected length range(with any value). Case 6: '87' is returned in 'A5' with a value of 2 bytes (instead of 1) Case 8: '84' is returned twice, with different values Case 9: AIP is returned empty Case 10: DFname is returned empty Case 11: CardQualifier is returned empty Case 16: Application Label ('50') length is 17 bytes Case 17: Application Preferred Name ('9F12') length is 17 bytes Case 18: DFName ('84') length is 17 bytes Case 19: Language Preference ('5F2D') length is 1 bytes Case 20: primitive tag is returned without length Case 21: Card Qualifier ('9F2C')length is 8 bytes Case 22: Issuer Identification Number Extended ('9F0C') length is 2 bytes case 23: Language Preference ('5F2D') length is empty © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 20 of 123 Case 24: Tag with Tag field length greater than 3 Bytes is returned (9FFF8F01) in 'A5' Pass Criteria The reader must stop the transaction upon reception of the erroneous Final Select response. The reader must build an OUT signal. In OUTOPS, - 'Start' must indicate "C" - 'Status' must indicate "SELECT NEXT" In OUTDiscretionaryDataErrorIndication, 'L2' must indicate 'PARSING ERROR' (or also 'CARD DATA MISSING' for case 1). The reader shall select the next application in the candidate list. 4M10-9110: Initialization - Select - DFname or CardQualifier missing Objective To ensure the reader stops the transaction when DFname or CardQualifier are empty. References s1.8-FALSE, s1.9, s1.14 Conditions Pass Criteria Case 1: DFname is absent Case 2a: CardQualifier is absent Case 2b: BF0C is empty Case 2c: BF0C is absent Case 3: CardQualifier.Version = '00' The reader must stop the transaction upon reception of the erroneous SelectADF response, and select the next AID in the candidate list. 4M20-0310: DOL - Concatenation Objective References Conditions To ensure the reader concatenates a list of data elements in the sequence in which the corresponding data objects appear in the DOL. To ensure the reader correctly provides the Terminal Risk Management Data object ('9F1D') when requested in a DOL. To ensure the reader correctly builds the DOL when a tag is requested on more than 128 bytes (length>=80). To ensure the reader correctly builds the GPO command when template '83' is more than 128 bytes long. s2.15-TRUE,s2.16,s2.17,"DOL Handling" The DOL contains the tags of several data objects which are known to the reader. Include 1-byte and 2-bytes and 3-bytes tags. Terminal Risk Management Data object value is different for Test1 and Test2 AIDs. Perform a test for each of the following DOLs: - PDOL © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 21 of 123 - CDOL1 Pass Criteria Case 1: Test1 AID Case 2: Test2 AID Case 3: Test1 AID ,PDOL data > 128 Case 4: DOL requests a tag on 129 bytes Case5: long PDOL (PDOL='9F66049F02069F03069F1A0295055F2A029A039C019F37049F4E149F2B089E40') Case6: CashBack transaction with long PDOL (PDOL='9F66049F02069F03069F1A0295055F2A029A039C019F37049F4E149F2B089E40') Within the data field of a command message containing the DOL-related data, the reader orders the data elements in the sequence in which the corresponding data objects appear in the DOL. Case 3: the template tag '83' has a length coded on 2 bytes 4M20-0340: DOL - Unknown tag Objective References Conditions To ensure the reader provides a data element with the length specified and a value of all hexadecimal zeroes if the tag of any data object identified in the DOL is unknown to the reader. "DOL Handling" The DOL requests tags that are unknown to the reader: - EMV tag - C2 tag returned in Select (eg: 9F5E) - C2 tag returned in Record (eg: 8E) - 3-byte private class tag Pass Criteria Perform a test for each of the following DOLs: - PDOL - CDOL1 The reader shall provide the DOL with portion of the DOL field representing the Data Object filled with hexadecimal zeroes (portion has the same length as the Data Object in DOL). 4M20-0355: DOL - Tag with length=0 Objective References Conditions To ensure that, if the tag of any data object identified in the DOL has a length field coded '00' then the reader considers the tag as not present in the DOL. "DOL Handling" The DOL includes a tag with length field coded '00'. The tag is known to the reader. Perform a test for each of the following DOLs: © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 22 of 123 Pass Criteria - PDOL - CDOL1 The reader shall not send any value in the DOL for the data object having the length field coded '00' in the DOL request. 4M20-0405: DOL - Known tag, missing Objective To ensure that, if the tag of any data object identified in the DOL is known to the reader and the optional static data object requested in the DOL is absent, then the reader provides a data element with the length specified and a value of all hexadecimal zeroes. References "DOL Handling" Conditions Pass Criteria Note The DOL contains a tag which is known to the reader but is absent from the card The DOL contains a tag which is known to the reader but is absent from the reader. The tag update conditions include DET Perform a test for each of the following DOLs: - PDOL - CDOL1* The reader shall provide a data element with the length specified and a value of all hexadecimal zeroes. *: when the kernel implements DE/DS, the missing DOL items are added to DataNeeded. However the configuration data (PTFWF is absent) are such that the DEK is not sent and the GenAC command is built as defined in the pass criteria. 4M20-0410: DOL - Shorter data object length, numeric format Objective To ensure that, if the length specified in the DOL entry is less than the length of the actual data object, the reader truncates the leftmost bytes of the data element if the data object has numeric (n) format. References "DOL Handling" Conditions Case1: The DOL contains a data objects which haves numeric format and a length shorter than actual Data Object Length. Case2: The DOL contains proprietary tag present in TLV database which has numeric format and a length shorter than actual Data Object Length. Pass Criteria For each case Perform a test is performed for each of the following DOLs: - PDOL - CDOL1 All Cases: The reader shall provide the DOL with portion of the DOL field representing the Data Object correctly truncated (portion has the same length as the Data Object in DOL). © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 23 of 123 4M20-0412: DOL - Shorter data object length, other format Objective To ensure that, if the length specified in the DOL entry is less than the length of the actual data object, the reader truncates the rightmost bytes of the data for any format other than numeric. References "DOL Handling" Conditions Pass Criteria Case1: The DOL contains a data objects which has have a format other than numeric (b, an, ans, cn) and a length shorter than actual Data Object Length. Case2: The DOL contains proprietary tag present in TLV database which has a format other than numeric (b, an, ans, cn) and a length shorter than actual Data Object Length. Perform a test for each of the following DOLs: - PDOL - CDOL1 The reader shall provide the DOL with portion of the DOL field representing the Data Object correctly truncated (portion has the same length as the Data Object in DOL). 4M20-0415: DOL - Longer data object length, other format Objective To ensure that, if the length specified is greater than the actual data, the reader pads the actual data with trailing hexadecimal zeroes for any other format than numeric or compressed numeric. References "DOL Handling" Conditions Pass Criteria Case 1: The DOL contains a data objects which has a format other than numeric or compressed numeric and a length longer than actual Data Object Length. Case 2: The DOL contains proprietary tags present in TLV database which has a format other than numeric or compressed numeric and a length longer than actual Data Object Length. Perform a test for each of the following DOLs: - PDOL - CDOL1 All Cases: The reader shall provide the DOL with portion of the DOL field representing the Data Object correctly padded with trailing hexadecimal zeroes (portion has the same length as the Data Object in DOL). 4M20-0420: DOL - Longer data object length, numeric format Objective References To ensure that, if the length specified is greater than the actual data, the reader pads the actual data with leading hexadecimal zeroes if the data has numeric format. "DOL Handling" © 2023-2025 EMVCo, LLC. All rights reserved. Reproduction, distribution and other use of this document is permitted only pursuant to the applicable agreement between the user and EMVCo found at www.emvco.com. EMV® is a registered trademark or trademark of EMVCo, LLC in the United States and other countries.
EMV® Terminal Type Approval Book C-8 Test Cases v1.1c Page 24 of 123 Conditions Pass Criteria Case 1: The DOL of the card contains a data object which has numeric format and a length longer than actual Data Object Length. Case 2: The DOL of the card contains a proprietary tag present in TLV database which has numeric format and a length longer than actual Data Object Length. Perform a test for each of the following DOLs: - PDOL - CDOL1 All Cases: The reader shall provide the DOL with portion of the DOL field representing the Data Object correctly padded with leading hexadecimal zeroes (portion has the same length as the Data Object in DOL) 4M20-0445: DOL - Constructed tag Objective To verify that