--- title: "Tipping from the terminal" description: "Implement tipping where the customer adds a tip on the payment terminal." url: "https://docs.adyen.com/point-of-sale/tipping/tipping-from-terminal" source_url: "https://docs.adyen.com/point-of-sale/tipping/tipping-from-terminal.md" canonical: "https://docs.adyen.com/point-of-sale/tipping/tipping-from-terminal" last_modified: "2026-05-19T17:06:00+02:00" language: "en" --- # Tipping from the terminal Implement tipping where the customer adds a tip on the payment terminal. [View source](/point-of-sale/tipping/tipping-from-terminal.md) This page describes how to set up and use tipping options for your customers on Adyen payment terminals. Depending on what is customary in your region, there are various ways to let the payment terminal ask your customers to add a tip: * [Ask for a tip amount](#direct-tipping): the customer chooses a predefined tipping option on the display or enters a custom tip amount (or chooses to skip giving a tip). * [Ask for a total amount](#indirect-tipping): if the customer wants to give a tip, they enter a total amount that is higher than the original purchase amount. This is customary in Nordic countries/regions. The [payment request](#payment-tipping-terminal) to trigger tipping, is the same in both cases. ## Requirements Before you begin, take into account the following requirements, limitations, and preparations. | Requirement | Description | | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Integration type** | [Terminal API](/point-of-sale/design-your-integration/terminal-api) integration with Adyen-provided payment terminals. | | **Webhooks** | Set up [standard webhooks](/development-resources/webhooks/) and optionally [display notifications](/point-of-sale/design-your-integration/notifications/display-notifications) to keep your staff informed. | | **Hardware** | All terminal models are supported, except unattended terminals. | | **Setup steps** | Before you begin:- If you want to prompt for a tip [after card entry](#tipping-options-after) instead of before, ask our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) to enable that, and to enable single tap. - If you want to prompt for a [total amount](#indirect-tipping) instead of a tip amount, ask our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) to enable that. | ## Ask for a tip amount You can [configure tipping](#define-tipping-options) options either from the Customer Area or with the Management API. Customers can then choose one of the predefined tipping options or enter a custom tip amount. Asking for a tip can appear before or after the customer enters their card. The default is tipping before card entry. ### Before card entry The terminal shows the purchase amount plus the tipping prompt or options you configured, and waits for the customer to respond. Then the terminal asks the customer to present their card and, if required, complete the payment by providing their PIN or signature.\ No configuration from our side is needed for this. To ask for a tip before card entry: 1. [Configure tipping options](#define-tipping-options) in your Customer Area or with Management API. 2. [Make payment requests](#payment-tipping-terminal) using the tender option **AskGratuity**. ### After card entry The terminal shows the purchase amount and asks the customer to present their card. Then the terminal shows the tipping prompt or options you configured, and waits for the customer to respond. If required, the terminal asks the customer to complete the payment by providing their PIN or signature. To ask for a tip after card entry: 1. Contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) and ask them to: * Enable tipping options after card entry. * Optionally, enable single tap. For contactless transactions, this ensures the terminal does not ask the customer to tap their card again after selecting a tip. 2. [Configure tipping options](#define-tipping-options) in your Customer Area or with Management API. 3. [Make payment requests](#payment-tipping-terminal) using the tender option **AskGratuity**. ### Configure tipping options It is possible to ask for a tip without tipping options. The payment terminal then shows a prompt to enter a tip plus an option for not giving a tip. To give a tip, the customer enters the amount and confirms. To make tipping easier for your customers, you can define tipping options that your customer can select on the terminal. The options can be any combination of percentages, calculated amounts, and a custom amount. You can configure the terminal to show only the percentage, the percentage and the calculated total amount together and only the fixed tip amount. | | | | | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Tipping without options: ![](/images/f/1/5/7/7/f1577eef16227d16757763dbb22fbaaba0c8a3e6-screen-entipping-enter-tip-amount.png "Tipping prompt") | Tipping with percentage options: ![](/images/c/2/6/e/b/c26ebd9fac46aa2761e05ce06deb6ff4240b294b-screen-entipping-predefined-options-portrait.png "Tipping options") | Percentage and calculated tip amounts: ![](/images/5/7/e/8/7/57e87d103ad8f491db83d39be546782dace453df-screen-entipping-percentage-and-totals.png "Both predefined tipping options") | You can configure tipping either from your Customer Area or by using the Management API. ### Tab: Customer Area To configure asking for a tip amount from your Customer Area: 1. Log in to your [Customer Area](https://ca-test.adyen.com/). 2. Optionally, switch to the merchant account, store, or terminal that you want to configure tipping for. 3. Go to **In-person payments** > **Terminal settings**. 4. Go to **Payment features** > **Tipping**. 5. At **Enable tipping**, select **Enabled**. 6. Select the **Currency** that the settings should apply to. 7. Decide if you want to let shopper enter a tip or show one of the predefined options. 8. If you want to let shopper enter a tip, at **Type of tipping**, select **Shopper enters tip amount** to show the screen for tipping without options. 9. If you want to show one of the predefined options: 1. At **Type of tipping**, select **Shopper selects a predefined option** to show the screen with predefined tipping options. 2. Define the options: * You can define different options for different currencies, except at store or terminal level where only one currency applies. * Per currency, you can define a maximum of four options. We automatically add an option for not giving a tip. * An option can be for a specific **amount**, for a **percentage** of the purchase, or for a **custom** tip (this leads the customer to a screen where they can enter a tip amount). * Optionally, enable **Show calculated percentage amount** to show the amount associated with the **percentage** tipping options. 10. If applicable, select **Add another currency**, select a currency, and configure tipping for that currency. 11. Select **Save**. You can configure your POS app to [override the tipping settings](/point-of-sale/tipping/tipping-from-terminal/override-tipping-configuration) that you have defined in your Customer Area. ### Tab: API To configure tipping with Management API: 1. Make a PATCH request to the `/terminalSettings` endpoint for the company account, merchant account, store, or terminal, specifying the `gratuities` object. Use one of the following endpoints: * [/companies/{companyId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/patch/companies/\(companyId\)/terminalSettings) * [/merchants/{merchantId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/patch/merchants/\(merchantId\)/terminalSettings) * [/stores/{storeId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/patch/stores/\(storeId\)/terminalSettings) * [/terminals/{terminalId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/patch/terminals/\(terminalId\)/terminalSettings) In the request body, specify a [gratuities](https://docs.adyen.com/api-explorer/Management/latest/patch/companies/\(companyId\)/terminalSettings#request-gratuities) object with the following parameters: | Parameter | Required | Type | Description | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [currency](https://docs.adyen.com/api-explorer/Management/latest/patch/companies/\(companyId\)/terminalSettings#request-gratuities-currency) | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | string | The currency that the tipping settings apply to. | | [usePredefinedTipEntries](https://docs.adyen.com/api-explorer/Management/latest/patch/companies/\(companyId\)/terminalSettings#request-gratuities-usePredefinedTipEntries) | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | boolean | Indicates whether the terminal shows a prompt to enter a tip (false), or predefined tipping options to choose from (true). | | [predefinedTipEntries](https://docs.adyen.com/api-explorer/Management/latest/patch/companies/\(companyId\)/terminalSettings#request-gratuities-predefinedTipEntries) | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | array \[string] | Tipping options the shopper can choose from if `usePredefinedTipEntries` is **true**. The maximum number of predefined options is four, or three plus the option to enter a custom tip. The options can be a mix of:- A percentage of the transaction amount. Example: 5% - A tip amount in minor units. Example: 500 for a EUR 5 tip. | | [allowCustomAmount](https://docs.adyen.com/api-explorer/Management/latest/patch/companies/\(companyId\)/terminalSettings#request-gratuities-allowCustomAmount) | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | boolean | Indicates whether one of the predefined tipping options is to let the shopper enter a custom tip. If **true**, only three of the other options defined in `predefinedTipEntries` are shown. | **Configure tipping with Management API** #### curl ```bash curl "https://management-test.adyen.com/v3/terminals/{terminalId}/terminalSettings" \ -H 'X-API-key: ADYEN_API_KEY' \ -H 'Content-Type: application/json' \ -X PATCH \ -d '{ "gratuities":[ { "currency":"EUR", "predefinedTipEntries":[ "10%", "15%", "20%" ], "usePredefinedTipEntries":true, "allowCustomAmount":true } ] }' ``` #### Java ```java // Adyen Java API Library v40.0.0 import com.adyen.Client; import com.adyen.enums.Environment; import com.adyen.model.management.*; import java.time.OffsetDateTime; import java.util.*; import com.adyen.service.management.*; Client client = new Client("ADYEN_API_KEY", Environment.TEST); // Create the request object(s) Gratuity gratuity1 = new Gratuity() .predefinedTipEntries(Arrays.asList("10%", "15%", "20%")) .allowCustomAmount(true) .usePredefinedTipEntries(true) .currency("EUR"); TerminalSettings terminalSettings = new TerminalSettings() .gratuities(Arrays.asList(gratuity1)); // Send the request TerminalSettingsTerminalLevelApi service = new TerminalSettingsTerminalLevelApi(client); TerminalSettings response = service.updateTerminalSettings("terminalId", terminalSettings, null); ``` #### PHP ```php setXApiKey("ADYEN_API_KEY"); $client->setEnvironment(Environment::TEST); // Create the request object(s) $gratuity1 = new Gratuity(); $gratuity1 ->setPredefinedTipEntries(array("10%", "15%", "20%")) ->setAllowCustomAmount(true) ->setUsePredefinedTipEntries(true) ->setCurrency("EUR"); $terminalSettings = new TerminalSettings(); $terminalSettings ->setGratuities(array($gratuity1)); // Send the request $service = new TerminalSettingsTerminalLevelApi($client); $response = $service->updateTerminalSettings('terminalId', $terminalSettings); ``` #### C\# ```cs // Adyen .NET API Library v32.2.1 using Adyen; using Environment = Adyen.Model.Environment; using Adyen.Model; using Adyen.Model.Management; using Adyen.Service.Management; var config = new Config() { XApiKey = "ADYEN_API_KEY", Environment = Environment.Test }; var client = new Client(config); // Create the request object(s) Gratuity gratuity1 = new Gratuity { PredefinedTipEntries = { "10%", "15%", "20%" }, AllowCustomAmount = true, UsePredefinedTipEntries = true, Currency = "EUR" }; TerminalSettings terminalSettings = new TerminalSettings { Gratuities = new List{ gratuity1 } }; // Send the request var service = new TerminalSettingsTerminalLevelService(client); var response = service.UpdateTerminalSettings("terminalId", terminalSettings); ``` #### NodeJS (JavaScript) ```js // Adyen Node API Library v30.0.0 const { Client, ManagementAPI } = require('@adyen/api-library'); const config = new Config({ apiKey: "ADYEN_API_KEY", environment: EnvironmentEnum.TEST }); const client = new Client(config); // Create the request object(s) const terminalSettings = { gratuities: [ { currency: "EUR", predefinedTipEntries: [ "10%", "15%", "20%" ], usePredefinedTipEntries: true, allowCustomAmount: true } ] } // Send the request const managementAPI = new ManagementAPI(client); const response = managementAPI.TerminalSettingsTerminalLevelApi.updateTerminalSettings("terminalId", terminalSettings); ``` #### Go ```go // Adyen Go API Library v21.1.0 import ( "context" "github.com/adyen/adyen-go-api-library/v21/src/common" "github.com/adyen/adyen-go-api-library/v21/src/adyen" "github.com/adyen/adyen-go-api-library/v21/src/management" ) client := adyen.NewClient(&common.Config{ ApiKey: "ADYEN_API_KEY", Environment: common.TestEnv, }) // Create the request object(s) gratuity1 := management.Gratuity{ PredefinedTipEntries: []string{ "10%", "15%", "20%", }, AllowCustomAmount: common.PtrBool(true), UsePredefinedTipEntries: common.PtrBool(true), Currency: common.PtrString("EUR"), } terminalSettings := management.TerminalSettings{ Gratuities: []management.Gratuity{ gratuity1, }, } // Send the request service := client.Management() req := service.TerminalSettingsTerminalLevelApi.UpdateTerminalSettingsInput("terminalId").TerminalSettings(terminalSettings) res, httpRes, err := service.TerminalSettingsTerminalLevelApi.UpdateTerminalSettings(context.Background(), req) ``` #### Python ```py # Adyen Python API Library v14.0.0 import Adyen adyen = Adyen.Adyen() adyen.client.xapikey = "ADYEN_API_KEY" adyen.client.platform = "test" # The environment to use library in. # Create the request object(s) json_request = { "gratuities": [ { "currency": "EUR", "predefinedTipEntries": [ "10%", "15%", "20%" ], "usePredefinedTipEntries": True, "allowCustomAmount": True } ] } # Send the request result = adyen.management.terminal_settings_terminal_level_api.update_terminal_settings(request=json_request, terminalId="terminalId") ``` #### Ruby ```rb # Adyen Ruby API Library v11.0.0 require "adyen-ruby-api-library" adyen = Adyen::Client.new adyen.api_key = 'ADYEN_API_KEY' adyen.env = :test # Set to "live" for live environment # Create the request object(s) request_body = { :gratuities => [ { :currency => 'EUR', :predefinedTipEntries => [ '10%', '15%', '20%' ], :usePredefinedTipEntries => true, :allowCustomAmount => true } ] } # Send the request result = adyen.management.terminal_settings_terminal_level_api.update_terminal_settings(request_body, 'terminalId') ``` #### NodeJS (TypeScript) ```ts // Adyen Node API Library v30.0.0 import { Client, ManagementAPI, Types } from "@adyen/api-library"; const config = new Config({ apiKey: "ADYEN_API_KEY", environment: EnvironmentEnum.TEST }); const client = new Client(config); // Create the request object(s) const gratuity1: Types.management.Gratuity = { predefinedTipEntries: ["10%", "15%", "20%"], allowCustomAmount: true, usePredefinedTipEntries: true, currency: "EUR" }; const terminalSettings: Types.management.TerminalSettings = { gratuities: [gratuity1] }; // Send the request const managementAPI = new ManagementAPI(client); const response = managementAPI.TerminalSettingsTerminalLevelApi.updateTerminalSettings("terminalId", terminalSettings); ``` 2. The response returns all settings that your API credential has access to, including the ones that you defined in the request. ## Ask for a total amount The terminal shows the original purchase amount and a prompt to enter the total amount. This must at least be equal to the original amount. By entering a higher total amount, the customer adds a tip. After the customer enters the total amount, the terminal asks the customer to present their card and, if required, complete the payment by providing their PIN or signature. To use tipping by asking for a total amount: 1. Contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) to enable tipping by asking for a total amount. 2. [Make payment requests](#payment-tipping-terminal) using the tender option **AskGratuity**. For currencies that in practice do not use decimals in transactions (like SEK), we make sure the tipping screen doesn't show decimals. | | | | ------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | Total tipping for currency with decimals: ![](/images/e/4/f/b/6/e4fb6546e85446c233d9aa6ba1443fca7b55c70d-screen-entipping-enter-total-amount.png) | Total tipping for currency without decimals: ![](/images/f/e/e/5/7/fee576367ad82b16dbe1b304b0683b97024006c2-screen-entipping-enter-total-amount-sek.png) | ## Make a payment To trigger the payment terminal to ask the customer for a tip amount or a total amount, you need to make a payment request with the **AskGratuity** [tender option](/point-of-sale/add-data/tender-options). 1. [Make a payment request](/point-of-sale/basic-tapi-integration/make-a-payment#make-a-payment), specifying: * The standard [`SaleToPOIRequest.MessageHeader` ](/point-of-sale/design-your-integration/terminal-api#request-message-header)object, with `MessageClass` set to **Service** and `MessageCategory` set to **Payment**. | Parameter | Required | Description | | ----------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ProtocolVersion` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | **3.0** | | `MessageClass` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | **Service** | | `MessageCategory` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | **Payment** | | `MessageType` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | **Request** | | `ServiceID` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (`POIID`) being used. | | `SaleID` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Your unique ID for the POS system component to send this request from. | | `POIID` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The unique ID of the terminal to send this request to. Format: *\[device model]-\[serial number]*. | - The [PaymentRequest](https://docs.adyen.com/api-explorer/terminal-api/latest/post/payment) object with: | Parameter | Description | | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | `SaleData.SaleToAcquirerData` | The **AskGratuity** tender option that triggers the terminal to start the tipping flow\.See the [instructions below](#sale-to-acquirer-data). | | `PaymentTransaction.AmountsReq` | An object with:- `Currency`: The transaction [currency](/development-resources/currency-codes). - `RequestedAmount`: The purchase amount, with decimals. | In `SaleData.SaleToAcquirerData`, specify the tender option in one of the following formats:\ []() * Option 1: a JSON object converted to a Base64 encoded string.\ Encode `{"tenderOption": "AskGratuity"}` to Base64, and pass the resulting string:\ `"SaleToAcquirerData": "eyJ0ZW5kZXJPcHRpb24iOiAiQXNrR3JhdHVpdHkifQ=="` * Option 2: a key-value pair:\ `"SaleToAcquirerData": "tenderOption=AskGratuity"` The format that you use here, will also be the format of the `AdditionalResponse` that you receive. If there are more tender options (for example **ReceiptHandler** ) or other data elements that you need to pass in the `SaleToAcquirerData` field, see [Add information to a payment](/point-of-sale/add-data). The example below shows how to show tipping options and initiate a transaction of **EUR 142.50**. **Payment request with tipping** ```json { "SaleToPOIRequest":{ "MessageHeader":{ "ProtocolVersion":"3.0", "MessageClass":"Service", "MessageCategory":"Payment", "MessageType":"Request", "SaleID":"POSSystemID12345", "ServiceID":"0207111104", "POIID":"P400Plus-275688710" }, "PaymentRequest":{ "SaleData":{ "SaleTransactionID":{ "TransactionID":"27908", "TimeStamp":"2019-12-17T10:11:03.000Z" }, "SaleToAcquirerData": "tenderOption=AskGratuity,ReceiptHandler" }, "PaymentTransaction":{ "AmountsReq":{ "Currency":"EUR", "RequestedAmount":142.50 } } } } } ``` When the customer has responded, the payment terminal sends the request for the original purchase amount plus the tip amount to the Adyen payments platform. If successful, the terminal shows the payment is approved. 2. In the [PaymentResponse](https://docs.adyen.com/api-explorer/terminal-api/latest/post/payment#responses-200) note the following: * `PaymentReceipt`: receipt data with the original purchase amount, the gratuity amount, and the total amount. If the customer didn't add a tip, the gratuity amount is not included. * `PaymentResult.AmountsResp`: * `TipAmount`: the amount of the tip. If the customer didn't add a tip, this field is not included. * `AuthorizedAmount`: the total authorized amount of the transaction, consisting of the original purchase amount plus the tip amount. * `Currency`: currency of the payment. * `Response.AdditionalResponse`: additional transaction data. Depending on the format you used in the request, you receive either a string of form-encoded key-value pairs or a Base64 string that you need to decode to get a JSON object. This includes: * `posadditionalamounts.originalAmountValue`: the original purchase amount in [minor units](/development-resources/currency-codes). * `posAmountGratuityValue`: the tip amount in minor units. * `authorisedAmountValue`: the total authorized amount in minor units. The example below shows the response for a transaction of **EUR 142.50** with a 10% tip added. **Payment response with tip added** ```json { "SaleToPOIResponse": { "PaymentResponse": { "POIData": { "POITransactionID": { "TimeStamp": "2019-12-17T10:11:12.000Z", "TransactionID": "8ha5001575467786000.NC6HT9CRT65ZGN82" } {...}, "SaleData": {...}, "PaymentReceipt": [...], "PaymentResult": { "AuthenticationMethod": [...], "OnlineFlag": true, "PaymentAcquirerData": {...}, "PaymentInstrumentData": {...}, "AmountsResp": { "TipAmount": 14.25, "AuthorizedAmount": 156.75, "Currency": "EUR" } }, "Response": { "Result": "Success", "AdditionalResponse": "...posadditionalamounts.originalAmountValue=14250&...posAmountGratuityValue=1425&gratuityAmount=1425&...authorisedAmountValue=15675...&posAuthAmountValue=15675&posadditionalamounts.gratuityAmount=1425" } }, "MessageHeader": {...} } } ``` ## Keep your staff informed with display notifications While your customer is interacting with the terminal, you can keep your staff informed of the tip amount by showing progress messages in your POS app. These messages are delivered using *display notifications*, which are webhooks that are sent to an endpoint that you specify. For information on how to set up and use display notifications, see our [display notifications documentation](/point-of-sale/design-your-integration/notifications/display-notifications). ## Add tip amounts to reporting The [Settlement details report](/reporting/settlement-reconciliation/transaction-level/settlement-details-report/#generate-and-download-reports) is an overview of payments details that have been settled and paid out to you by Adyen, and the cost of each transaction. When you generate a Settlement details report, you can include an overview of tips by adding the **gratuity amount** column to your report in your [Customer Area](https://ca-test.adyen.com/). For more information on how to add the **gratuity amount** column to your report, see [Configure report columns](/reporting/settlement-reconciliation/transaction-level/settlement-details-report/#configure-report-columns). ## High tip warning screen When tipping from a terminal, it can happen that customers accidentally enter a tip amount that is too high. To prevent making a payment with incorrect amounts, the terminal can show a warning screen if the tip amount is higher than a certain percentage of the original purchase amount.\ For example, you can set the warning screen threshold to 50% of the original purchase amount. If the original amount is EUR 100.00 and the customer enters a tip of EUR 50.00 or more, the terminal shows the warning screen. The customer can then confirm the amount or go back to the previous screen. When enabled, the warning screen works with both methods of tipping from the terminal (asking for a tip amount, and asking for a total amount). This feature is available on standalone terminals as well as terminals integrated with a POS system. To show the high tip warning screen: 1. Enable tipping by asking for a [tip amount](#direct-tipping) or [total amount](#indirect-tipping). 2. Ask our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) to enable the warning screen for tips that are higher than the percentage you want of the original purchase amount. 3. [Make payment requests](#payment-tipping-terminal) using the tender option **AskGratuity**. ## See also * [Make a payment](/point-of-sale/basic-tapi-integration/make-a-payment) * [Override configured tipping options](/point-of-sale/tipping/tipping-from-terminal/override-tipping-configuration) * [Tender options](/point-of-sale/add-data/tender-options) * [Settlement details report](/reporting/settlement-reconciliation/transaction-level/settlement-details-report/)