# Collect tips

Learn about the different ways you can collect tips from customers.

Use Terminal to collect tips from your customer before or after authorizing a payment. You can collect voluntary tips in two ways:

- [On-receipt tipping](https://docs.stripe.com/terminal/features/collecting-tips/on-receipt.md): Tips are collected when the payment is captured. This method is most commonly used when collecting tips on printed paper receipts.
- [On-reader tipping](https://docs.stripe.com/terminal/features/collecting-tips/on-reader.md): The card reader suggests tips to customers before collecting payment.

For mandatory tips, you must include the tip amount in the original `PaymentIntent` [amount](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount). You can’t use on-receipt or on-reader tipping.

## On-receipt versus on-reader tipping

The table below outlines some differences between on-receipt tipping and on-reader tipping.

|  | On-reader tipping | On-receipt tipping |
| --- | --- | --- |
| Country | BBPOS WisePad 3:
Available in: AU, CA, FR, DE, IE, NL, NZ, SG, GB
Stripe Reader S700/S710 and BBPOS WisePOS E:
Available in: US, CA, GB, IE, SG, AU, NZ, FR, DE, NL, BE, AT, ES, DK, SE, NO, CH, IT, LU, PT, FI, MY, CZ, PL, JP, BG, HR, CY, EE, GI, HU, LV, LI, LT, MT, RO, SK, SI, MX | US |
| Reader | [BBPOS WisePad 3](https://docs.stripe.com/terminal/payments/setup-reader/bbpos-wisepad3.md)

[BBPOS WisePOS E](https://docs.stripe.com/terminal/payments/setup-reader/bbpos-wisepos-e.md)

[Stripe Reader S700/S710](https://docs.stripe.com/terminal/readers/stripe-reader-s700-s710.md) | Any |
| Integrations/SDKs | BBPOS WisePad 3:

- Android SDK
- iOS SDK
- React Native SDK

BBPOS WisePOS E and Stripe Reader S700/S710:

- [All SDKs, server-driven](https://docs.stripe.com/terminal/payments/setup-reader.md#capabilities) | [All SDKs, server-driven](https://docs.stripe.com/terminal/payments/setup-reader.md#capabilities) |
| Merchant category | Any | Restricted |
| Card brand | Any | Visa, Mastercard, American Express, Discover |
| Tipping limit | [Maximum charge amount](https://docs.stripe.com/currencies.md#minimum-and-maximum-charge-amounts) for the total amount inclusive of the tip, which is eight or nine digits depending on the currency | [Maximum charge amount](https://docs.stripe.com/currencies.md#minimum-and-maximum-charge-amounts) for the total amount inclusive of the tip |
| Customer experience | Tips suggested on the reader | Tips set with custom integration on the point of sale or on a paper receipt |
| Capture method | Works with both `capture_method=automatic` and `capture_method=manual`. The tip is collected before payment, so the total amount (including the tip) is known at authorization time. | Requires [manual capture](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md) (`capture_method=manual`). The tip is added after authorization through [overcapture](https://docs.stripe.com/terminal/features/collecting-tips/on-receipt.md). |
| Customer credit card statement | Shows the payment amount inclusive of the tip, without waiting for settlement | Shows an initial pending authorization that’s later updated to reflect the initial amount inclusive of the tip |

## How tips are displayed on-receipt or on-reader 

On-receipt and on-reader tipping use the [PaymentIntents](https://docs.stripe.com/api/payment_intents.md) API and work with all [Terminal SDKs](https://docs.stripe.com/terminal/payments/setup-integration.md).

> Choose only one tipping method per `PaymentIntent`. If you use on-reader tipping, you can’t use the same `PaymentIntent` for on-receipt tipping.

The table below summarizes the specific API behavior.

|  | On-reader tipping | On-receipt tipping |
| --- | --- | --- |
| Tips in the API request | The reader automatically adds the customer-selected tip when processing a payment. | You add the tip amount and pass the total [amount_to_capture](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-amount_to_capture) when [capturing a PaymentIntent](https://docs.stripe.com/api/payment_intents/capture.md). The `amount_to_capture` field is inclusive of the tip. |
| Tips and API response amount | The [amount_details](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_details) object appears in the API response when processing a payment. The tip amount is returned in the `amount_details` object. | Tips aren’t directly represented but can be derived from the [Charge](https://docs.stripe.com/api/charges/object.md) object. The `amount` in the `PaymentIntent` capture response is inclusive of the tip. |
| Tips in the underlying `Charge` object | Tips aren’t directly represented in the `Charge` object.

After capture, the fields below all show the same value inclusive of the tip.

- [amount](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-amount)
- [amount_authorized](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card_present-amount_authorized)
- [amount_captured](https://docs.stripe.com/api/charges/object.md#charge_object-amount_captured) | Tips can be derived from the `Charge` object. You can derive the tip by subtracting `amount_authorized` from `amount`.

- `amount_authorized` is the original authorized amount exclusive of the tip.
- `amount_captured` and `amount` are the same and both are inclusive of the tip. |
