Tip Adjust
Tip Adjust enables you to offer your US-based restaurants a
traditional, receipt-based tipping workflow for both magstripe and EMV
transactions. Contact your account manager to activate this feature.
The waiter takes the payment card from the
guest back 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 their
payment card together with the printed receipts from the waiter and can fill in
the desired Tip and/or Total Amounts on the merchant receipt at their discretion.
If required, the customer also provides their signature. After the guest has left,
the waiter collects the receipt and stores it for later Tip Adjust.
To
perform a
CHARGE
that can be Tip Adjusted later on, 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;}]; // Start the transaction as usual via [MPTransactionProvider startTransactionWithParameters:]
Make
sure to always provide printed
merchant and shopper receipts and print the lines for Tip and Total
Amount if
printTipLine
equals YES
.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 tip.
To implement Tip
Adjust, your POS System needs to allow the waiter to first relocate 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:To find out whether the Tip Adjust was successful, check forMPTransactionParameters *tp = [MPTransactionParameters tipAdjustForTransactionIdentifier:transactionIdentifier optionals: ^(id<MPTransactionParametersTipAdjustOptionals> _Nonnull optionals) {[optionals setAmount:[NSDecimalNumber decimalNumberWithString:@"2.00"] currency:MPCurrencyUSD];}]; // Pass the parameters to [MPTransactionProvider amendTransactionWithParameters:]
MPTransactionProcessDetailsStateApproved
in the
completed
block.Implementation
Considerations
- 20% Adjust Limit:As per card scheme rules you can 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 that you 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 for Alipay
Tip Adjust enables you to offer your US-based restaurants a traditional,
receipt-based tipping workflow for both magstripe and EMV transactions. Contact
your account manager to activate this feature.
Run Charge and Provide Printed Receipt
The waiter takes the payment card from the guest back 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 back the payment card together with the printed receipts from
the waiter and can fill in the desired Tip and / or Total Amounts at their
discretion. If required, the customer also provides their signature. After the
guest has left, the waiter collects the receipt and stores it for later Tip
Adjust.
To perform a
CHARGE
that can be Tip Adjusted later on, 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(); // Start the transaction as usual via TransactionProvider.startTransaction()
Make sure to always provide printed merchant and shopper receipts and especially ensure to print the
lines for Tip and Total Amount if
isTipLineRequired()
equals
true
.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 tip.
To implement Tip Adjust, your POS System needs to allow the waiter to first
re-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:TransactionParameters transactionParameters = new TransactionParameters.Builder() .adjustTip(transaction, new BigDecimal("2.00"), io.mpos.transactions.Currency.USD) .build(); // Pass the parameters to TransactionProvider.amendTransaction()
Check for
TransactionProcessDetailsState.APPROVED
in
onCompleted
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().