---
title: "Configure tipping at POS"
source: https://support.storeconnect.com/articles/configure-pos-tipping
type: article
format: markdown
site: StoreConnect Support — product and developer documentation for StoreConnect
site_index: https://storeconnect.com/llms.txt
docs_index: https://support.storeconnect.com/llms.txt
note: Append .md to any page or article URL on this site to get its Markdown form.
---
# Configure tipping at POS

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](reserved-products).
- POS reads store variables on its next store sync, so plan the change for a quiet period. See [manage POS data sync](manage-pos-data-sync).

## Turn on tipping

1.  Open the **Store** record and go to the **Store Variables** related list.
2.  Click **New**.
3.  Enter a **Name** that makes sense to your organization, such as `POS tipping`.
4.  Enter `pos.tipping.enabled` in **Key**. Keys are case sensitive.
5.  Enter `true` in **Value**. Any other value leaves tipping off.
6.  Save the record.
7.  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](split-payments).

## 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](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](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](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](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](pos-staff-attribution).
- 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.

---

## Follow StoreConnect

- [Email Newsletter](https://storeconnect.com/c/lp-newsletter)
- [LinkedIn Newsletter](https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7444956928444862464)
- [YouTube](https://www.youtube.com/channel/UCngKdP2x8l1wcbAKW3tvU8g)
- [LinkedIn](https://www.linkedin.com/company/storeconnect)
- [X / Twitter](https://x.com/storeconnecthq)

## Popular Links

- [Partners](https://storeconnect.com/partners)
- [Become a Partner](https://storeconnect.com/become-a-partner)
- [News](https://storeconnect.com/articles/news)
- [Events](https://storeconnect.com/articles/events)
- [Feature Comparison](https://storeconnect.com/how-we-compare)
- [Download a free trial](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FMkeKUAT)
- [Book a Demo](https://storeconnect.com/contact)

## Documentation

- [Help documentation](https://support.storeconnect.com/help-documentation)
- [AI agents](https://support.storeconnect.com/ai)
- [Videos & tutorials](https://support.storeconnect.com/videos-tutorials)
- [Developer reference](https://support.storeconnect.com/developer-reference)
- [Release notes](https://support.storeconnect.com/release-notes)
- [Troubleshooting](https://support.storeconnect.com/troubleshooting)
- [Trust Center](https://trust.getstoreconnect.com/)
- [Status Page](https://status.storeconnect.com/)

## Contact

- info@getstoreconnect.com
- US +1 415 745 3230
- AUS +61 2 8365 2308

100 S Ashley Dr, Suite 600-2461
Tampa FL 33602-600 USA

Level 22, Sydney Place
180 George Street
Sydney, NSW, 2000, AUS

## Machine-readable

- [Site index for agents](https://storeconnect.com/llms.txt): curated map of the StoreConnect site in llms.txt format
- [Documentation index for agents](https://support.storeconnect.com/llms.txt): full technical and product documentation map

Every page and article on this site has a Markdown rendering: append `.md` to its URL.

Continue in Markdown: [Help documentation](https://support.storeconnect.com/help-documentation.md) · [Developer reference](https://support.storeconnect.com/developer-reference.md) · [Videos & tutorials](https://support.storeconnect.com/videos-tutorials.md) · [Release notes](https://support.storeconnect.com/release-notes.md)

---

StoreConnect Support — https://support.storeconnect.com/articles/configure-pos-tipping