Start Transaction
StartTransaction
Parameters startTransaction(Parameters)
Call startTransaction()
to initiate a transaction. This can be used to start a Sale, Refund or Account Verification transaction. The request accepts various parameters including amount, transaction type, unique reference, whether to enable/disable gratuity and currency.
When the startTransaction()
method is successful, asynchronous updates are provided in the following callbacks; transactionUpdate
, userNotification
, applicationSelection
, signatureVerification
, and transactionFinished
.
Transaction POI - Tap to Pay
Using the ParameterKeys.TransactionPOI parameter allows you to dictate whether the transaction is run on an external device or as a Tap to Pay transaction.
When a single POI is Configured (either PaymentDevice or TapToMobile), it will be automatically selected when starting a transaction.
When both payment types are configured the payment device will be used by default unless the TransactionPOI parameter explicitly specifies Tap to Pay.
Please note that Tap to Pay transactions are currently online only as an auto confirmed sale. Therefore the following is not supported when running a Tap to Pay Transaction:
TransactionType
Refund
AccountVerification
DelayOnlineProcessing
TRUE
PANKeyEntry
TRUE
TippingType
OnDeviceTipping
EndOfDayTipping
BothTipping
AutoConfirm
FALSE
Although TippingType
is not supported, tipping is still supported for Tap to Pay Transactions. To add tipping, pass TipAmount
into StartTransaction. To enable it contact your Account Manager.
Android-Specific Transaction Requirements
RequestActivityListener for Tap to Pay
To perform a transaction using Tap to Pay on Android, an activity is required to be passed into the Payment Device SDK. This allows the SDK to access NFC permissions to prompt and perform a card read.
Please also note that before initiating a transaction using Tap to Pay, make sure the Request Activity Callback has been implemented. For detailed information on RequestActivity methods and implementation, see the Transaction Events page.

To enable contactless payments with Tap to Pay, the integrating application must:
- Register a RequestActivityListener before calling
startTransaction()
- This is necessary because the SDK needs an Activity to handle the NFC prompt for card reads
- Respond to activity requests - When the SDK requires an Activity, it triggers
RequestActivityListener.onRequestActivity
- The application must respond by calling
continueRequestedActivity()
with an appropriate Activity
- The application must respond by calling
- Keep activity active - The provided Activity must remain in the foreground and active until a
CardTapped
transaction update is received- If the Activity is destroyed or moved to the background too soon, the transaction may fail
New Parameter for Tap to Pay
For Tap to Pay transactions, you can use the optional TransactionPOI
parameter to specify which payment method to use when multiple POIs are configured:
Parameter | Value | Description |
---|---|---|
ParameterKeys.TransactionPOI | ParameterValues.TapToMobile | Optional - Explicitly specifies use of Tap to Pay functionality |
Transaction Termination
During a Tap to Pay transaction, terminateTransaction()
can be called between the transaction updates CardEntryPrompted
and CardTapped
.
If the transaction update CardTapped
has been received before terminateTransaction()
is called and the result of the transaction when it has finished is Approved, then voidTransaction()
can be used to cancel the transaction.
Updated 1 day ago