Configure tipping at POS
On this page
Tipping lets a customer add a tip at the register. Once it is on, the POS asks for a tip before the sale completes and records the tip on the order. On most payment methods it asks straight after the operator selects Charge. Cash settles its tip first, so the keypad can ask for the order and the tip together. Turn it on for a restaurant, bar, cellar door, or any counter where customers expect to be asked.
Tipping is off unless you turn it on. Everything below is set with store variables on the Store record (s_c__Store_Variable__c), so no code change is involved.
Before you start
- You need edit access to the Store record and its Store Variables related list.
- The StoreConnect Tipping reserved product must exist, with a price book entry in the store’s price book. StoreConnect creates it during installation. If it is missing, the tip screen is silently skipped and no tip is collected. See reserved products.
- POS reads store variables on its next store sync, so plan the change for a quiet period. See manage POS data sync.
Turn on tipping
- Open the Store record and go to the Store Variables related list.
- Click New.
- Enter a Name that makes sense to your organization, such as
POS tipping. - Enter
pos.tipping.enabledin Key. Keys are case sensitive. - Enter
truein Value. Any other value leaves tipping off. - Save the record.
- Sync the register, or wait for the next store sync.
At the register, taking a manual card, bank transfer, cheque, or pay-on-account payment now opens the Add a tip screen with the default suggestions of 15%, 18%, and 20%. Cash offers the same suggestions from a + Tip button on the keypad until you change how cash asks, below.
Choose the suggested amounts
The tip screen shows a row of preset buttons, a No tip button, and a Custom tip option. Add any of these store variables to change the presets. Each one is optional and falls back to its default when it is missing or cannot be parsed.
| Key | Value | Default | What it does |
|---|---|---|---|
pos.tipping.percentages |
Comma-separated whole percentages, such as 10,15,20 |
15,18,20 |
The preset buttons on a regular payment. Each button shows the percentage and the amount it works out to. Values above 100 are ignored. |
pos.tipping.amounts |
Comma-separated amounts in the store currency, such as 1,2,3 |
1,2,3 |
The preset buttons on a small payment, where a percentage would round to an awkward figure. |
pos.tipping.amount_threshold |
A number, such as 10 |
10 |
Payments below this amount show the fixed-amount presets instead of the percentages. Set it to 0 to always show percentages. |
pos.tipping.tax_basis |
post_tax or pre_tax |
post_tax |
Whether percentage presets are worked out on the amount being paid including tax, or on the pre-tax amount. Set pre_tax where prices are shown tax-exclusive, such as the United States. The tip itself is never taxed either way. |
Presets are a percentage of the payment being taken, not of the whole order. On a split bill, each payer is asked to tip on their own share. See split payment at POS.
Choose how cash asks for its tip
Cash settles its tip before the charge, so the keypad can ask for the order and the tip together and record exactly what the customer handed over. Use pos.tipping.cash_prompt to choose how the register asks.
| Value | What the operator sees | Use it when |
|---|---|---|
on_request |
The cash keypad opens straight away with a + Tip button beside it. The Add a tip screen opens only when the operator selects that button, and it offers Keep the change as a one-tap tip once the customer’s cash has been keyed in. | Tipping is not customary, such as in Australia, and should not slow down a sale with no tip. This is the default. |
ask_first |
Every cash sale opens on Add a tip? before the keypad, with a Customer handoff button that opens a screen safe to turn toward the customer. | Tipping is expected, such as in the United States, and you want the ask on every cash sale. |
Any other value falls back to on_request. The setting changes only how the question is put: either way the keypad then asks for the order plus the tip, and a tipped cash payment must be tendered in full. See add a tip at POS.
Turn tipping off for a payment method
Every payment method that supports tipping offers it as soon as tipping is on. To stop asking on one method, add a store variable with the Key pos.payment_options.<type>.tipping_enabled and the Value false. Any other value, or no variable at all, leaves tipping on for that method.
| Payment method | <type> for the tipping key |
|---|---|
| Cash | cash |
| Card (manual) | card |
| Bank transfer | bank |
| Cheque | cheque |
| Pay on account | on_account |
:::note
For pay on account, both pos.payment_options.on_account.tipping_enabled and pos.payment_options.pay_on_account.tipping_enabled work. If both are set, the on_account key wins. Use on_account to match the enabled, label, and require_purchase_order keys for the same method. See configure POS payment methods.
:::
Which payments offer a tip
| Payment | Tip offered | Why |
|---|---|---|
| Cash, card (manual), bank transfer, cheque, pay on account | Yes, unless turned off for that method | The operator records the payment, so the POS can ask before the payment is saved. |
| Card (Tyro) and Card (Square) integrated terminals | No, in the POS | The terminal collects the tip on the device. For Square, tipping on the terminal is controlled by the payment provider’s settings. See Square payment provider. A tip taken on the terminal is still recorded on the order, even when pos.tipping.enabled is off. |
| Card (Linkly), Quest Airpay TAP, Latitude, Vii gift card | No | The card is charged before a tip could be added. |
| Voucher, account credit | No | These tenders have a fixed balance, so a tip on top could overdraw them. |
| Pay by link | No | The customer pays later, away from the register. |
| A deposit or part-payment where the rest is owed later | No | The amount due now is only part of the order. A split payment that settles the full amount is not a deposit, so each part still offers a tip. |
| Refunds | No | A tip is never refunded. |
How a tip is recorded
- The tip is added to the order as its own line on the StoreConnect Tipping product (OrderItem), with no tax. The POS shows it as a Tip line under the Order total, which stays the pre-tip amount.
- Each tip is tied to the payment it was collected with. The payment item for the tipping line is recorded at the exact tip amount, so a report on Payment Items shows which payment carried the tip. See how an order is recorded in Salesforce.
- Each payment records the staff member who took it in Salesforce User Id on the Payment (s_c__Payment__c), which is how a tip finds its owner. See record who assisted and who took payment.
- A cash tip is settled before the charge, so the recorded tender is exactly what the customer handed over. The keypad asks for the order plus the tip and refuses anything less, so a tipped cash payment is always a full tender and can never leave the order part-paid. Anything above the tipped total is returned as change. Cash rounding is worked out on the total including the tip.
- Refunding a payment that carried a tip returns the sale amount only. The tip stays on the order.
- Changing these variables affects new sales only. Tips already taken do not change.
Example
A cellar door wants tipping on cash and manual card payments with higher suggestions than the default, fixed amounts on small payments, and no tip prompt on cheques.
| Name | Key | Value |
|---|---|---|
| POS tipping | pos.tipping.enabled |
true |
| Tip percentages | pos.tipping.percentages |
18,20,22,25 |
| Tip amounts for small payments | pos.tipping.amounts |
1,3,5 |
| Small payment threshold | pos.tipping.amount_threshold |
10 |
| How cash asks | pos.tipping.cash_prompt |
ask_first |
| No tip prompt on cheque | pos.payment_options.cheque.tipping_enabled |
false |
A $145 cash payment then offers 18% $26.10, 20% $29.00, 22% $31.90, and 25% $36.25. A $8 cash payment offers $1, $3, and $5.
Once the store has synced, ring up a test item at the register and take a cash payment. The Add a tip screen appears with your presets, and after you choose one the completed order shows a Tip line and a Tip: amount under the payment.
Was this article helpful?
Thanks for your feedback! It helps us improve our docs.