Collect on-reader tips
With on-reader tipping, you can display suggested tip amounts on the reader before the customer presents their payment method. The reader shows the customer three suggestions based on the tipping option that you set up. The reader automatically shows a tipping selection screen on every call to collect a payment. When you confirm the payment, the PaymentIntent is confirmed for an amount inclusive of the selected tip.
Payment screen
Tipping selection screen (percentage)
Total screen
Approved screen
Availability
Readers: Stripe Reader the related setting/the related setting, the related setting WisePOS E, the related setting WisePad 3
Enable and customize on-reader tipping
Use a Configuration object or the Dashboard to set the tipping configuration for your reader:
- Suggest smart tips—The reader dynamically shows three percentages or amounts, depending on the size of the pre-tip amount.
- Suggest percentages—The reader displays three percentage-based tip amounts.
- Suggest amounts—The reader displays three tip amounts.
To use the on-reader tipping feature on your the related setting WisePad 3, you must use one of the following Terminal SDK versions:
- Android SDK 2.8.1 or greater
- iOS SDK 2.16.1 or greater
You can suggest three tip percentages or three tip amounts on the reader. The reader dynamically displays either of these smart tips, depending on a pre-tip amount threshold. Create or update a Configuration object as follows. By default, the percentage-based tips are calculated post-tax. To suggest pre-tax tips, you can specify an alternative tip-eligible amount.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
With the above example, the reader dynamically chooses what to suggest:
- If the pre-tip amount is below the smart _ tip _ threshold (10 USD), the reader shows three buttons suggesting 1 USD, 2 USD, or 3 USD tips from top to bottom.
- If the pre-tip amount is at the smart _ tip _ threshold (10 USD) or above, the reader shows three buttons suggesting tips that are 15%, 20%, or 25% of the pre-tip total from top to bottom.
If specifying more than one currency in your Configuration object, you must provide the same configuration keys for each currency. In other words, if you only specify percentages for USD, you can’t specify fixed_amounts or smart_tip_threshold for any other currencies.
After you create a Configuration object with your tipping configuration, you can assign the configuration to your account or a location. the related setting WisePad 3 readers receive new or updated configurations when they connect to your POS application. the related setting WisePOS E readers can take up to 5 minutes to receive new or updated configurations.
Collect payment
For on-reader tipping, follow the instructions for collecting payments.
When you collect a payment method, your customer sees a tip selection screen on the reader that prompts them to select a tip before asking for their payment method.
Depending on your tipping configuration, the customer can choose a suggested tip, specify a custom tip, or leave no tip.
After the customer makes their selection, the reader waits for them to present a card.
When you process the payment, the reader adds the selected tip. If the payment is successful, the amount in the PaymentIntent and Charge updates to include the tip amount.
Before a PaymentIntent confirmation, the tip amount returns in the amount_tip field but not in the amount. After PaymentIntent confirmation, the amount_tip field is set to zero, the amount includes the tip amount, and the tip amount returns in the amount_details object:
| Scenario | amount_details.tip.amount return value |
|---|---|
| On-reader tipping is disabled | null |
| On-reader tipping is enabled, no tip selected | 0 |
| On-reader tipping is enabled, tip amount selected | The amount selected |
Customers won’t see a tipping selection screen in these cases:
- The Configuration object is missing a tipping configuration.
- You enabled skipTipping in your tipping configuration.
- The reader is in an unsupported country.
- A tipping configuration can’t be applied to the current payment currency. For example, if the payment is in EUR but the Configuration object only specifies a tipping configuration for USD.
When testing payments with the Stripe reader, the total amount (inclusive of any tip) might trigger decline responses depending on the decimal value of the total amount.
Skip tipping
You can ignore the tipping configuration, which allows you to hide the tip selection screen on your reader when collecting payments.
You can hide the tip selection screen for individual transactions or temporarily for all transactions, which allows your customers to go directly to the card presentment screen.
For example, your restaurant might want to accept tips on the reader for takeout orders, but only allow on-receipt tips for dine-in customers.
Use one of the following options to enable bypassing the tip selection screen:
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Tip-eligible amounts
When collecting a payment, you can set a tip-eligible amount that’s different from the pre-tip amount. Setting a tip-eligible amount changes the value that percentage-based tips are calculated from. The customer is also shown the tip-eligible amount alongside the pre-tip amount on the tip selection screen.
You can use this setting for businesses that provide services in addition to selling goods. For example, a salon that sells haircuts and bottles of shampoo might want their customer to know that they calculate percentage-based tips on haircuts only.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
The above example sets a tip-eligible amount based on the currency of the payment. For a payment in USD, the tip-eligible amount is 15 USD.
The value of eligible_amount must be 0 or higher. If eligible_amount is equal to 0, tipping is skipped regardless of the value of skip_tipping. If eligible_amount is equal to the PaymentIntent amount, eligible_amount is ignored and the tip is calculated based on the specified amount.
Common mistake
Setting a tip-eligible amount that’s greater than 0 while attempting to skip tipping results in an error.
