# EMV Application Selection Process
When cardholder interaction is required for application/acquirer selection or cardholder confirmation, the Reader must pause the transaction and return control to the Payment Application by sending the response to the Start Transaction with callback as onAppSelectionRequired. In addition to this the response data should include a list of applications that need to be displayed for the cardholder to select one application. In addition, for multi-acquirer setups, the data for each application must also contain a list of associated acquirers from which the user will be required to pick one acquirer.
During a CT EMV Transaction, at least one response with Status set to "Application Selection Required" MUST be sent in the transaction flow, even if there is only one AID in the candidate list and Cardholder Confirmation is not required for this AID. In this case the Poynt will not present the AID to the user for selection but will auto-select this AID after applying the necessary rules on how the given card should be processed (Credit or Debit, DCC enabled or not, etc.). If cardholder confirmation is required, then the Poynt will follow the normal EMV rules on how to handle the AID.
During a CL EMV Transaction, at least one response with Status set to "Application Selection Required" MUST be sent in the transaction flow, even if there is only one AID in the candidate list. In this case Poynt will not present the AID to the user for selection but will auto-select this AID after applying the necessary processing rules.
During a CL EMV Transaction, when the Reader sends this response, it must include the POS Entry Mode (Tag 9F39) data item in the response data in addition to the other data items to indicate that this is a Contactless transaction.
# For Contact (CT) Cards
This parameter indicates whether the Reader should ALWAYS send an Application Selection Required response to Poynt or only send it intelligently when needed.
Tag: 1F8164 Format: b1
Applies to CT Only
Presence: Optional
Default Value: 00 (If Tag is missing)
Possible Values:
01: The Reader should always send App Selection
Required request to the Terminal and not auto-select
an AID when it can (such as when there is a single
AID in the candidate list and no cardholder
confirmation is required).
00: The Reader should send an Application Selection
Required request to the Terminal intelligently only
when needed i.e.
(a) If a selection is to be made from multiple AIDs or
(b) There is a single AID for which cardholder confirmation is required.
It should not send an Application Selection Required request to the Terminal if there is a single application in the candidate list and no cardholder confirmation is required (i.e. the Reader should auto-select the AID in this case).
# For Contactless (CL) Cards
In case of Contactless cards, Payment Application on Android side could request Card Reader to invoke a special flow that allows Payment Application to prioritize and select the Application after enforcing certain business rules.
The following configuration tag could be sent by the Payment Application either as part of StartTransaction request or pre-set as part of the Card Reader EMV Configuration parameters.
Tag: 1F8207 Format: b
Applies to: CL Only
Presence: Optional
If this data item is missing, then no special flows will be used.
The data is encoded as follows.
Bit 0: Android App Selection
Value = 0: Disabled
When disabled, the Reader will perform CL App
Selection as per the CL EMV L2 requirements.
This is the preferred setting to comply with L2
certifications.
Value = 1: Enabled
When Android App Selection is enabled,
the Reader will allow the Android Terminal to
select an application and will not select the
highest priority application itself.
This setting allows the Android to support
features such as allowing the Android Terminal
to decide whether to treat an AID as a credit or
debit AID, support Common Debit AIDs as
higher priority apps, etc.
Note: Enabling this feature will violate the CL
EMV Level 2 Requirements.
Refer to the following appendices for more details.
CL EMV Special Flow (Multi-Acquirer)
CL EMV Special Flow (Normal)
CL CUP QPS Special Flow
Bit 1: Single Tap App Selection
Value = 0: Double-Tap App Selection
This requires the card to be removed to allow
user interaction to assist in the selection process
after PPSE and before final selection. The card
must be re-presented before final selection can
be attempted.
Note: Enabling this feature will violate the CL
EMV Level 2 Requirements.
Value = 1: Single-Tap App Selection
The Reader will allow the Android Terminal to
do App Selection in a single card presentment
i.e. it will not enforce card removal or double-
tap. This can be used when the Android auto-
selects the AID.
Note: Enabling this feature will violate the CL
EMV Level 2 Requirements.
Bit 2: Always Send App Selection Required for CL
This parameter indicates whether the Reader
should ALWAYS send an Application Selection
Required Status to the Terminal or only send it
intelligently when needed. This only applies to CL
Transactions.
Value = 0: Intelligently Send App Sel Required
for CL (Default if Tag is missing).
The Reader should send an Application
Selection Required request to the Terminal for
CL intelligently and only when needed i.e. If a
selection is to be made from multiple CL AIDs.
It should not send an Application Selection
Required request to the Terminal if there is a
single application in the candidate list (i.e. the
Reader should auto-select the AID in this case).
Value = 1: Always Send App Sel Required for CL.
The Reader should always send App Selection
Required request to the Terminal for CL and not
auto-select a CL AID when it can (such as
when there is a single AID in the candidate list.
Note: Bit 2 must be set to 1 if Android App
Selection is being used to allow Android to
perform any special processing based on
the AID selected, such as for CL CUP QPS
Special Flow.
Bits 3-7: RFU. These bits must be set to zero.