performTransaction

Performs crucial EMV transaction steps including Offline Data Authentication (ODA), Cardholder Verification Method (CVM) processing, Terminal Risk Management, and the 1st Generate Application Cryptogram (AC).

The sequence of operations typically includes:

  1. Offline Data Authentication (ODA): Verifies the authenticity of the card data using Static Data Authentication (SDA), Dynamic Data Authentication (DDA), or Combined DDA/Application Cryptogram Generation (CDA), depending on the card and terminal capabilities.

  2. Cardholder Verification (CVM): Processes the CVM list from the card to determine how the cardholder should be verified (e.g., PIN, signature, no CVM required). This may involve invoking display callbacks for PIN entry.

  3. Terminal Risk Management: Performs checks based on terminal settings and transaction data (e.g., transaction amount, floor limits) to assess risk.

  4. 1st Generate AC: The card generates the first Application Cryptogram (ARQC, TC, or AAC) based on the outcome of the preceding steps. This cryptogram is essential for online authorization or offline transaction approval/declination.

It is mandatory to have successfully completed the startTransaction and performFinalSelection (for contact cards) steps before calling this function.

Return

A TypeOutputPerformTransaction object containing the results of this processing stage, including the generated cryptogram (if applicable) and other status indicators. The specific contents will depend on the transaction flow and card type.

Parameters

tInputTransaction

An object of type TypeInputPerformTransaction containing necessary input data for this stage of the transaction, such as the transaction amount and other relevant EMV tags.

Throws

if an unrecoverable error occurs during ODA, CVM, risk management, or 1st gen AC