Implement contactless payments
Overview
The NFC Wallet SDK supports multiple contactless payment payment experience on Android:
Single-tap: Only one tap is required to handle the transaction with point-of-sale (POS) terminal with or without end user authentication.
Two-tap End users needs 2 taps with POS to handle transaction, the first tap to open the digital wallet application to required end user authentication.
Manual mode: The end user opens your digital wallet application and starts a payment from the in-app UI.
Choose the experience that matches your digital wallet application UX.
Android settings
Android settings can affect the payment experience. Check these settings before you start:
Check that your digital wallet application is the default payment application. This is required for single-tap and two-tap payments.
Check whether Android allows the foreground application to override the default payment application. This can affect manual mode payment experience.
User experience
Single-tap
With single-tap experience end user brings the device close to a POS terminal only one time to perform the contacless transaction with or without a pre-authentication.
With authentication
In this experience end user needs to unlock the device using a CDCVM method (biometric or keyguard) before the tap.
The tap must be performed within a configured validity period after authentication to unlock device.
See keyValidityPeriod in Configure payment behavior.
See Activate pre-entry to support this payment experience.
Without authentication
End users doesn't need to authenticate to perform the single-tap transaction in the following case:
Low value transaction (LVT)
Transaction below a amount and for a dedicated currency.
Transit transaction
Transaction without authentication to allow a frictionless payment experience at transit gate.
See Configure CDCVM experiences for more details.
Two-tap
With two-tap experience end user brings the device close to a POS terminal, the OS launches the default digital wallet application to request end user authentication. Once authenticated the end-user could be perform the transaction by executing the 2nd tap.
The 2nd tap must be performed within a configured validity period after authentication.
See keyValidityPeriod in Configure payment behavior.
As an option end user could select the card to pay before the 2nd tap.
Manual mode
In this experience, the end user starts the payment from within your digital wallet application. You implement the UI and the action that triggers the payment flow.
Implementation guides
After you choose the contactless payment experience for your digital wallet application, implement contactless payment in this order:
Implement HCE service Implement the Android HCE service used for contactless payments.
Implement contactless payment callbacks Handle NFC Wallet SDK callbacks during a contactless payment.
Consider application start Ensure your digital wallet application is ready when a payment starts.
Support manual mode Add app-side support for manual mode payments.
Perform CDCVM verification Verify CDCVM and handle fallback when required.
Display transaction context Show transaction details to the end user.
Configure CDCVM experiences Enable single-tap without authentication for LVT and/or transit transaction.
Last updated
Was this helpful?