user comes to pay the meal with card, assuming it’s $100, and tips $20, so it’s expected to pay $120 in total;
for some waiter’s mis-operation on system (such as, mis-input the amount on screen), only $110 is charged by card through reader sdk, $10 is missing;
then the waiter noticed this mis-operation but user already left the restaurant, then waiter still charges the missing tips $10 in some way with user absent.
for 1., i guess it’s just a typical reader payment flow, but we are not sure what would be the best practice to achieve 3., to charge the missing $10.
we have checked the delay capture flow in reader sdk, but it looks the payment amount can’t be changed in the transaction API. (we thought we could create a delay capture payment with $110 at above 1., then update the amount as $120 at above 3. and complete it, just like the payment API).
Currently editing a captured amount isn’t currently possible. The only way you’ll be able charge the additional $10 is to use card on file. This would show as a new charge on the customers card which could cause confusion and potentially lead to an increase in disputes.
we also noticed the function Sign and Tip, and Bulk Settlement on square app (Use Sign and Tip on Printed Receipts | Square Support Center - US), which can set or change tips after customers tapped their cards with reader and got the printed receipts, that’s very similar to our expected scenario, may i know whether we can implement it in our application with square http API and reader sdk (or any other hardware sdk)?
Currently, with Reader SDK the ability to change the authorized amount and capture the funds isn’t available. Also the sign an tip feature in our first party POS isn’t available with Reader SDK.
except reader sdk, may i know whether there is any other hardware sdk that we can use to implement the sign and tip feature by ourselves?
the expectation is that we can use that hardward sdk (or together with some Square http API) to support card payment, and then update the tip amount according to user’s choice on the printed receipt.
this is a common payment scenario in restaurant in US, currently we are just not sure how to implement it with square sdk and APIs instead of square app
Currently, the only Terminal API is the only API that connects with our hardware that supports this checkout flow. You can take a Terminal API payment with autocomplete set to false. Then with the Payments API you can UpdatePayment to adjust the amount for the tip.
some follow-up question about this topic,
regarding the delay capture of reader sdk, we noticed below comment from doc, while we also noticed the transaction APIs can’t set tips on the delayed capture transaction as well, so does it mean the delay capture transaction doesn’t support tips?
Setting delayCapture to true skips the receipt, tipping, and signature screens and the following parameters are ignored: tipSettings , skipReceipt , and collectSignature .
That’s correct. At this time Reader SDK delay capture doesn’t support tips. We’re constantly working to improve our features based on feedback like this, so I’ll be sure to share your request to the API product team.