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.

The activity must adhere to the EMVCo Contactless Symbol and supported Card Brand images requirements. See the Contactless Symbol Reproduction Requirements section for details.

To enable contactless payments with Tap to Pay, the integrating application must:

  1. Register a RequestActivityListener before calling startTransaction()
    • This is necessary because the SDK needs an Activity to handle the NFC prompt for card reads
  2. 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
  3. 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:

ParameterValueDescription
ParameterKeys.TransactionPOIParameterValues.TapToMobileOptional - 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.


What’s Next