Beginning with version 1.2.0 of the SDK, you can override certain merchant-level settings for specific transactions. These per-transaction settings give you greater control over tips, signatures, receipts, duplicate transaction logic, offline payments, payment confirmations, and other functions.
To use transaction settings, you must instantiate a subclass of
TransactionRequest (that is, a
PreAuthRequest). Transaction settings work for all subclasses of
TransactionRequest, but each may only allow the modification of some settings. Support for each setting may also be different for each SDK. Refer to the API documentation for complete details.
TipMode (TipMode enum)
tipMode setting specifies the location from which to accept the tip. You can also omit the tip. Possible values include:
The tip amount is included in the request. You must also set the
TipAmount field on the request.
Clover Flex, Clover Mini, Clover Mobile, and Clover Station
The tip screen is shown on the Clover device before payment.
Clover Flex, Clover Mini, and Clover Mobile
The tip screen is shown on the Clover device after payment.
A tip will not be requested for the payment (the tip screen is skipped during the payment flow). This setting will override the merchant setting for tips.
Clover Flex, Clover Mini, Clover Mobile, and Clover Station
This option sets the amount to use when calculating tips. This setting is useful if you want to present customers with the option to tip for a portion of the total. When the
ADD_TIP screen appears during payment, this amount is shown in the
Tip based on field.
saleRequest.TippableAmount = 2000L;
This setting enables you to override the merchant-configured signature threshold. This threshold is the minimum amount for requiring a customer signature.
For example, to require a signature for any transaction greater than $25.00, set the
saleRequest.SignatureThreshold = 2500;
To require a signature for any amount, set the
You can also set
NONE to override the signature threshold entirely so that a signature is never required.
SignatureEntryLocation (DataEntryLocation enum)
This setting enables you to override the merchant-level Signature Entry Location. The possible values are:
Takes the signature on the Clover device's screen
Takes the signature on the paper receipt
Skips the signature request for the transaction
For example, to force the Clover device to take the signature on-screen, you would use:
saleRequest.SignatureEntryLocation = DataEntryLocation.ON_SCREEN;
This setting enables you to automatically accept a signature (on screen or on paper) for the given transaction, if applicable. The override prevents the SDK from transmitting signature confirmation requests back to the calling program. The transaction continues processing as if the caller initiated an
saleRequest.AutoAcceptSignature = true;
This setting bypasses the customer-facing receipt selection screen. For example, you may want to use this setting if you plan to print receipts from a non-Clover printer:
saleRequest.DisableReceiptSelection = true;
This option bypasses logic that checks for potential duplicate transactions (payments made with the same card type and last four digits within the same hour) and asks the merchant to confirm acceptance of the payments.
Disabling duplicate checking will make your transactions faster. However, you should only implement this setting if you're willing to accept the risk associated with a potential duplicate payment.
saleRequest.DisableDuplicateChecking = true;
Offline payments are taken without a network or Wi-Fi connection. In these cases, the Clover device is unable to verify with the payment gateway that the card is both valid and has sufficient funds.
By default, Clover Station, Station 2018, Mini, Mobile, and Flex are set to take offline payments for up to seven days. Setting
true overrides the merchant setting to disallow offline payments during the seven-day period. You should only implement this setting if merchants are willing to accept the risk associated with offline payments.
Note that an offline payment will trigger a challenge and an
OnConfirmPaymentRequest() asking the merchant to confirm acceptance of the payment (and the risk associated with it):
saleRequest.AllowOfflinePayment = true;
You can also choose to confirm offline and potential duplicate payments automatically with the
AutoAcceptPaymentConfirmations Per-Transaction Setting:
This setting forces the device to take payments offline regardless of connection status:
saleRequest.ForceOfflinePayment = true;
When the value for this setting is true, offline payments will be approved without a prompt:
saleRequest.ApproveOfflinePaymentWithoutPrompt = true;
This setting enables you to automatically accept any payment confirmation requests triggered by challenges encountered at the payment gateway (for example, an offline payment or potential duplicate payment). The override prevents the SDK from transmitting payment confirmation requests back to the calling program. The transaction continues processing as if the caller initiated a
Automatically accepting payment confirmation requests will make your transactions faster. However, you should only implement this setting if you're willing to accept the risk associated with offline payments and potential duplicate payments:
saleRequest.AutoAcceptPaymentConfirmations = true;
This setting disables cashback functionality:
saleRequest.DisableCashback = true;
This setting disables automatic printing of receipts for transactions:
saleRequest.DisablePrinting = true;
This setting prevents the Clover device from restarting a transaction that times out or is declined:
saleRequest.DisableRestartTransactionOnFail = true;
This option sets the card entry methods the merchant accepts. If this parameter is null, the default values (
CARD_ENTRY_METHOD_NFC_CONTACTLESS) will be used:
saleRequest.CardEntryMethods = CloverConnector.CARD_ENTRY_METHOD_ICC_CONTACT | CloverConnector.CARD_ENTRY_METHOD_MAG_STRIPE | CloverConnector.CARD_ENTRY_METHOD_NFC_CONTACTLESS;