Tip Adjust
Tip Adjust enables you to offer your US-based restaurants a traditional, receipt-based tipping workflow for both magstripe and EMV transactions. To activate this feature, contact your account manager.
Run Charge and Provide Printed Receipt
The waiter takes the guest's payment card to the POS system and runs a
CHARGE
transaction for the invoice amount (excluding any tips). Your POS system then prints merchant and shopper receipts that include lines for Tip and Total Amount.The guest receives the payment card together with the printed receipts from the waiter and can fill in the desired Tip / Total Amounts at their discretion. If required, the customer also provides their signature. After the guest leaves, the waiter collects the receipt and stores it for later Tip Adjust.
To perform a
CHARGE
that can be tip adjusted later, modify the MPTransactionParameters
to include the tipAdjustable = YES
property for the initial transaction: MPTransactionParameters *tp = [MPTransactionParameters chargeWithAmount:[NSDecimalNumber decimalNumberWithString:@"10.00"] currency:MPCurrencyUSD optionals: ^(id<MPTransactionParametersOptionals> _Nonnull optionals) { optionals.subject = @"Bouquet of Flowers"; optionals.customIdentifier = @"yourReferenceForTheTransaction"; optionals.tipAdjustable = YES; }]; // Show view controller...
Make sure to always:
- IfprintTipLineequalsYES, print the lines for Tip and Total Amount.
Performing Tip Adjust
At the end of the shift or business day, the waiter can perform the Tip Adjust on the respective transactions. It is not required to perform a zero-amount adjust for transactions without a tip.
To implement Tip Adjust, your POS system must enable users to locate the transaction (e.g. by entering a POS-provided invoice number printed on the payment receipt), and then to specify the Tip Amount as written down by the guest.
To perform a Tip Adjust, you create
MPTransactionParameters
that contain the transactionIdentifier
of the transaction that should be adjusted and the Tip Amount (not the Total Amount) that should be added: MPTransactionParameters *tp = [MPTransactionParameters tipAdjustForTransactionIdentifier:transactionIdentifier optionals: ^(id<MPTransactionParametersTipAdjustOptionals> _Nonnull optionals) {[optionals setAmount:[NSDecimalNumber decimalNumberWithString:@"2.00"] currency:MPCurrencyUSD];}]; // Show view controller...
Check for
MPUTransactionResultApproved
in the completed
block to find out whether the Tip Adjust was successful.Implementation Considerations
- 20% Adjust Limit:As per card scheme rules you are allowed to perform a Tip Adjust for up to 20% of the original invoice amount. Higher amounts will be rejected.
- Printed Receipts:The Tip Adjust workflow is based on printed merchant and shopper receipts, so make sure your POS System implements them.
- Invoice Number:In order to make it easy for the waiter to retrieve transactions for Tip Adjust, we strongly recommend to print a short, POS-provided invoice number on each receipt. Your POS System should then store thetransactionIdentifieras part of your invoice data.
- 24 Hour Time Limit:It is possible to run a Tip Adjust up to 24 hours after the initialCHARGE. You can determine this also programmatically via theMPTransactionobject by checking forMPTransactionTipAdjustStatusAdjustableas thetransaction.details.tipAdjustStatus.
Tip Adjust
Tip Adjust enables you to offer your US-based restaurants a traditional, receipt-based tipping workflow for both magstripe and EMV transactions. To activate this feature, contact your account manager.
Run Charge and Provide Printed Receipt
The waiter takes the guest's payment card to the POS system and runs a
CHARGE
transaction for the invoice amount (excluding tip). Your POS system then prints merchant and shopper receipts that include lines for Tip and Total Amount.The guest receives the payment card with the printed receipts from the waiter and can fill in the desired Tip / Total Amounts at their discretion. If required, the customer also provides their signature. After the guest leaves, the waiter collects the receipt and stores it for later Tip Adjust.
To perform a
CHARGE
that can be Tip Adjusted later, modify the TransactionParameters
to include tipAdjustable(true)
for the initial transaction:
TransactionParameters transactionParameters = new TransactionParameters.Builder() .charge(new BigDecimal("10.00"), io.mpos.transactions.Currency.USD) .subject("Bouquet of Flowers") .customIdentifier("yourReferenceForTheTransaction") .tipAdjustable(true) .build(); Intent intent = ui.createTransactionIntent(transactionParameters); startActivityForResult(intent, MposUi.REQUEST_CODE_PAYMENT);
onActivityResult()
will be the same as for a normal CHARGE
transaction.
Make sure to always:
- IfisTipLineRequired()equalstrue, print the lines for Tip and Total Amounts.
Performing Tip Adjust
At the end of the shift or business day, the waiter can perform the Tip Adjust on the respective transactions. It is not required to perform a zero-amount adjust for transactions without a tip.
To implement Tip Adjust, your POS system must enable users to locate the transaction (e.g. by entering a POS-provided invoice number printed on the payment receipt) and then to specify the Tip Amount as written down by the guest.
To perform a Tip Adjust, you create
TransactionParameters
that contain the transactionIdentifier
of the transaction that should be adjusted and the Tip Amount (not the Total Amount) that should be added: Check for
RESULT_CODE_APPROVED
in onActivityResult
to find out whether the Tip Adjust was successful.Implementation Considerations
- 20% Adjust Limit:As per card scheme rules you are allowed to perform a Tip Adjust for up to 20% of the original invoice amount. Higher amounts will be rejected.
- Printed Receipts:The Tip Adjust workflow is based on printed merchant and shopper receipts, so make sure your POS System implements them.
- Invoice Number:In order to make it easy for the waiter to retrieve transactions for Tip Adjust, we strongly recommend to print a short, POS-provided invoice number on each receipt. Your POS System should then store thetransactionIdentifieras part of your invoice data.
- 24 Hour Time Limit:It is possible to run a Tip Adjust up to 24 hours after the initialCHARGE. You can determine this also programmatically via theTransactionobject by checking forADJUSTABLEas thetransaction.getDetails().getTipAdjustStatus().