EMV® Terminal Type Approval – Book C-8 – Test Cases

v1.2a Test Cases & Test Environments
Contactless Acceptance Device

countries. EMV® Terminal Type Approval Book C-8 Test Cases Version 1.2a August 2026 EMV® Terminal Type Approval Book C-8 Test Cases v1.2a Page i

countries.

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 non- infringement. 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 NON - INFRINGEMENT, 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. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a

countries. Revision Log – 1.2a The following changes were done since the publication of version 1.1c:

  • Test Case updates: o 4M10-0073: new subcase 27 o 4M10-0108 removed o 4M10-0073: new subcase 10 o 4M10-9110: new subcases 4, 5, 6 and 7 o 4M40-9140: subcase 5 removed
  • New Test Case 4M60-0228 o 4M60-1031: subcases A|01b, A|02a, B|01b and B|02b removed o 4M60-7040: new subcases 4g, 4h and 4i
  • New Test Case 4MX8-0050
  • Removal of System Test Cases.
  • Various updates and improvements. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a countries. 1. 1. 1. 1. 1. 1. 1. 1.7. 2. 2. 2.2. 2.2. 2.2. 2.2.

2.3 Test Case execution

2.3. 2.3. 2.3. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a

countries. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a Page v

countries. 4M60-7040: Certificates processing

  • Erroneous ICC Certificate Format (ECC)... 77 4M60-7041: Certificates processing
  • Erroneous ICC Certificate Format (RSA)... EMV® Terminal Type Approval Book C-8 Test Cases v1.2a countries. A. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a countries. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. 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 Version Issue Date [C8] EMV Contactless Specifications for Payment Systems – Book C-8 - Kernel 8 Specification Version 1.2, June 2026 [Admin] EMV Terminal Type Approval Contactless Product – Administrative Process Latest applicable version [Book A] EMV Contactless Specifications for Payment Systems – Book A – Architecture and General Requirements Latest applicable version [Book B] EMV Contactless Specifications for Payment Systems – Book B – Entry Point Specification Latest applicable version [Book E] EMV Contactless Specifications for Payment Systems – Book E – Security and Key Management Latest applicable version [ICS] EMV Kernel 8 Implementation Conformance Statement Latest applicable version EMV® Terminal Type Approval Book C-8 Test Cases v1.2a

of 121

countries. Reference Document Version Issue Date [TestEnv] EMV® Terminal Type Approval Contactless Product – Kernel 8 Testing Environment Requirements Latest applicable version 1.4 Notations Table 1-2—Notations Term Definition ‘0’ to ‘9’ and ‘A’ to ‘F’ 16 hexadecimal digits. Values expressed in hexadecimal form are enclosed in single quotes (i.e. ‘_’).

1.5 Abbreviations Table 1-3—Abbreviations Abbreviation Description an Alphanumeric API Application Priority Indicator AUC Application Usage Control AVN Application Version Number b Binary CAkey Certification Authority Public Key CID Cryptogram Information Data GenAC Generate AC GetPO Get Processing Options hex. Hexadecimal n Numeric NCA Length of the Certificate Authority Public Key Modulus OPS Outcome Parameter Set PK Public Key RFU Reserved for Future Use EMV® Terminal Type Approval Book C-8 Test Cases v1.2a

of 121

countries. Abbreviation

Description

RID Registered Application Provider Identifier RRP Relay Resistance Protocol. In this document, RRP also refers to the ‘exchange relay resistance data’ APDU RRPcEntropy Device RRP Entropy RRPcEstimated Device Estimated Transmission Time For RRP R-APDU RRPcMaxTime Max Time for processing RRP APDU RRPcMinTime Minimum Time for processing RRP APDU RRPrAccuracyThreshold RRP Accuracy Threshold RRPrCounter RRP Counter RRPrEntropy Terminal Relay Resistance Entropy RRPrExpectedCAPDU Terminal Expected Transmission Time for RRP C-APDU RRPrExpectedRAPDU Terminal Expected Transmission Time for RRP R-APDU RRPrMeasuredTime Measured RRP Time RRPrMaxGrace Maximum RRP Grace Period RRPrMinGrace Minimum RRP Grace Period RRPrMismatchThreshold RRP Transmission Time Mismatch Threshold TAC Terminal Action Code TVR Terminal Verification Results UIRD User Interface Request Data UN Unpredictable Number 1.6 Terminology This section explains the terms used in this document. Successfully complete: 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 EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries.
  • “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 receive DEK-CAPDU. This is why EMVCo recommends the Product Providers to use the PCD-bypass interface (TCP-IP) defined in [TestEnv]. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. 2 Introduction 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. Note: In case of discrepancy between test described in the present document and the machine readable implemented in Test Tools, the machine readable test (not public) remains the reference.

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 Objective of the Test Case

Applicability

Implementation option(s) needed to run this Test Case

References

Reference to specification section Conditions Card and reader configuration required for this Test Case EMV® Terminal Type Approval Book C-8 Test Cases v1.2a

of 121

countries. Test Case number and name Procedure Test procedure (absent if empty) Pass Criteria Main criteria for Test Case validation 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 “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 Undisclosed Test Cases Table 2-2 lists the transaction stage identifiers used in this document. Table 2-2—Transaction stage ID Transaction stage ID Description 00 Undisclosed tests 10 Initialization 20 DOLs 25 GetPO 30 RRP 35 ReadRecord 36 ReadData 38 Waiting for PTFWF 40 Pre-GenAC checks 50 TAA 55 GenAC 59 No local authentication 60 Certificates processing 61 IAD MAC 62 EDA MAC 65 CVM processing 70 WriteData EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. Transaction stage ID Description 80 Completion X8 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 Description [DE/DS] The Test Case applies when the product implements DE/DS NOT [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. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries.

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 reconfigurations of the Product.

2.3.3 Undisclosed Test Cases Undisclosed Test Cases are not public

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. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a

of 121

countries. 3 Unitary Test Cases 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 To ensure the reader correctly initializes the KernelKeyData and UN tags. References s1.13,s2.7 Conditions 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 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 Pass Criteria For all cases, the reader shall provide different value for the KernelKeyData tag. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. 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 To ensure the reader correctly extends the TLV database with proprietary tags, if any. To ensure the reader include empty proprietary tags in DiscretionaryData. References 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 To ensure the reader correctly manages the TLV length when parsing the Select AID response. References s1.5, s1.6-TRUE Conditions 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. 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. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. 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 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. References s1.5, s1.6-TRUE Conditions 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. Case 0: (no optional tags): FCI of ADF contains no optional data objects (tested in 4M80- 4444). 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 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'). EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. 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. 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. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. 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. Case 27: The proprietary tag '9F05' is present in the TLV database empty (i.e.: IsKnown=True, IsPresent=True, IsEmpty=True ie: upd=K/RA). This tag is returned in Constructed data object 'BF0D' in 'BF0C'. Pass Criteria The transaction must successfully complete. 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. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. 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 Conditions 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* 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 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 Case 10 Proprietary tag with update condition K/ACT, empty in TLV database is provided in ACT signal with incorrect length Pass Criteria 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. Cases 1a and 1b: Reader must provide the correct values in PDOL Cases 2, 3, 9: the reader must store the value provided in ACT EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. Cases 5, 6, 7, 8, 10: reader must provide zero value in PDOL Note *: 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 PDOL requests: CVMResults, TVR, TerminalCapabilities, RelayResistanceTimeExcess, KernelQualifier, ReadDataStatus, WriteDataStatus, DataNeeded. Procedure - 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 Pass Criteria 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'
  • TerminalCapabilities byte 3 = SecurityCapability
  • RelayResistanceTimeExcess = '0000'
  • KernelQualifier bytes 1-2= '0180' or '0100' (case 2) 4M10-0115: Initialization - setting Security Capability Objective To ensure the reader correctly initializes Security Capability in Terminal Capabilities. References s1.13 Conditions 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' EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. Pass Criteria The transaction must successfully complete.The reader shall return the correct values in the PDOL Related Data. 4M10-0130: Initialization - setting Language Preference Objective 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. References s1.10, s1.11, s2930.3, s2930.4, s2930.5, s2930.6, s2930.7, s2930.8 Conditions SupportForFieldOffDetection is set. RestartIndicator.restartRequested = RESTART. Several values are tested for RestartIndicator.alternateInterface. 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) 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 Pass Criteria 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. EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. References C.101-FALSE, C.10, s2.6 Conditions 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 Pass Criteria 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 To ensure the reader terminates when the card does not support ASI '00'. References C.101-FALSE, C.10, s2.6 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. 4M10-9081: Initialization
  • Select - parsing error Objective 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). References s1.7, s1.14 EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. Conditions 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' 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 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 or version in Card Qualifier different from '02' Objective To ensure the reader stops the transaction when DFname or CardQualifier are empty. References s1.8-FALSE, s1.9, s1.14 EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. Conditions 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' Case 4: CardQualifier.Version = '01' Case 5: CardQualifier.Version = '03' Case 6: CardQualifier.Version = '10' Case 7: CardQualifier.Version = 'FE' Pass Criteria 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 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. References s2.15-TRUE,s2.16,s2.17,"DOL Handling" Conditions 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
  • CDOL1 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') Pass Criteria 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 EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. 4M20-0340: DOL
  • Unknown tag Objective 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. References "DOL Handling" Conditions 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 Perform a test for each of the following DOLs:
  • PDOL
  • CDOL1 Pass Criteria 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 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. References "DOL Handling" Conditions 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:
  • PDOL
  • CDOL1 Pass Criteria 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 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 EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. Perform a test for each of the following DOLs:
  • PDOL
  • CDOL1* Pass Criteria The reader shall provide a data element with the length specified and a value of all hexadecimal zeroes. Note *: 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. For each case Perform a test is performed for each of the following DOLs:
  • PDOL
  • CDOL1 Pass Criteria 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). 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 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 Pass Criteria 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). EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. 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 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 Pass Criteria 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 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. References "DOL Handling" Conditions 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 Pass Criteria 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 whenever the tag of any data object identified in the DOL represents a constructed data object, the reader provides a data element with the length specified and a value of all hexadecimal zeroes. References "DOL Handling" EMV® Terminal Type Approval Book C-8 Test Cases v1.2a of 121 countries. Conditions The DOL of the card contains a constructed Data Object. Perform a test for each of the following DOLs:
  • PDOL
  • CDOL1 Pass Criteria 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-0515: DOL - longer data object length, compressed numeric format Objective To ensure that, if the length specified is greater than the actual data, the reader pads the actual data with trailing hexadecimal FF's if the data has compressed numeric (cn) format. References "DOL Handling" Conditions Case 1: The DOL of the card contains a data object which has compressed numeric format and a length longer than actual Data Object Length (AIDtest1). Case 2: Same than Case 1 with AIDtest2. Case 3: The DOL of the card contains a p

Shown in part. Read the original for the full text.