{"title":"Standalone setup","category":"default","creationDate":1741161720,"content":"<p>One of the steps in the <a href=\"\/point-of-sale\/standalone\/standalone-build\/standalone-checklist\">integration checklist<\/a> is to set up your test standalone terminals. This involves making your test terminals ready for standalone use, optionally configuring a refund passcode and tipping feature. There are two ways to do these tasks:<\/p>\n<ul>\n<li>From your Customer Area<\/li>\n<li>Using API calls<\/li>\n<\/ul>\n<h2>Requirements<\/h2>\n<p>Before you begin, take into account the following requirements and preparations.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Requirement<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Integration type<\/strong><\/td>\n<td style=\"text-align: left;\"><a href=\"\/point-of-sale\/standalone\/\">Standalone<\/a> .<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/development-resources\/api-credentials\">API credentials<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">To set up your terminal using API calls, you must have an API credential with an API key and the following <a href=\"\/development-resources\/api-credentials#api-permissions\">roles<\/a>: <ul><li markdown=\"1\">Management API\u2014Terminal settings read and write<\/li> <li markdown=\"1\">Management API\u2014Terminal Advanced settings read and write<\/li><\/ul> <br>If in addition to a standalone solution, you also have a Terminal API integration with <a href=\"\/point-of-sale\/design-your-integration\/choose-your-architecture#cloud-communications\">cloud-based communications<\/a>, you can use the existing API key that you use for Terminal API requests.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/account\/user-roles\">Customer Area roles<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">To set up your terminal from the Customer Area, you need the following <a href=\"\/account\/user-roles#pos\">roles<\/a>: <ul><li markdown=\"1\">Merchant POS Terminal Management role<\/li><li markdown=\"1\">Merchant POS Terminal View role<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Limitations<\/strong><\/td>\n<td style=\"text-align: left;\">Note the following: <ul><li markdown=\"1\">In Quebec, Canada, your tipping configuration needs to <a href=\"#configure-tipping-quebec\">comply with local regulations<\/a>.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Hardware<\/strong><\/td>\n<td style=\"text-align: left;\">A <a href=\"\/point-of-sale\/what-we-support\/select-your-terminals\/?integration%5B0%5D=standalone\">standalone payment terminal<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">When <a href=\"\/point-of-sale\/standalone\/standalone-build\/go-live-standalone\">going live<\/a>, you need to set up your live standalone terminals in the same way as you did for your test terminals.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Set up standalone<\/h2>\n<p>You can make your terminals ready for standalone use in your Customer Area or using an API call.<\/p>\n\n<div id=\"tab54e2I\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Customer Area&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;To set up the standalone feature in your Customer Area:&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;Log in to your &lt;a href=\\&quot;https:\\\/\\\/ca-test.adyen.com\\\/\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Customer Area&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Go to &lt;strong&gt;In-person payments&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Terminal settings&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Integrations&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Under &lt;strong&gt;Standalone&lt;\\\/strong&gt;, do the following:&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;Select &lt;strong&gt;Enabled&lt;\\\/strong&gt;.&lt;\\\/li&gt;\\n&lt;li&gt;Under &lt;strong&gt;Standalone currency&lt;\\\/strong&gt;, select a currency for standalone transactions.&lt;\\\/li&gt;\\n&lt;li&gt;Under &lt;strong&gt;Show start button&lt;\\\/strong&gt;, select &lt;strong&gt;Enabled&lt;\\\/strong&gt;. When the Start button is &lt;strong&gt;Disabled&lt;\\\/strong&gt;, you start a transaction by selecting the &lt;strong&gt;Confirm&lt;\\\/strong&gt; key &lt;strong&gt;&lt;img alt=\\&quot;\\&quot; src=\\&quot;\\\/images\\\/a\\\/7\\\/c\\\/a\\\/0\\\/a7ca05ddf357b9a7e6c3959d2d868d4a73848ab6-confirm2x.png\\&quot; \\\/&gt;&lt;\\\/strong&gt; on the keypad.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;em&gt;Optional.&lt;\\\/em&gt; Under &lt;strong&gt;Merchant reference&lt;\\\/strong&gt;, enter a custom reference to be sent with every transaction. Using variables, you can make this merchant reference unique for every transaction. You can then use the unique reference to reconcile transactions.&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;div class=\\&quot;notices blue\\&quot;&gt;\\n&lt;p&gt;To get the list of allowed variables that you can use to create unique merchant references, in your Customer Area, select the info icon next to the &lt;strong&gt;Merchant reference&lt;\\\/strong&gt; field.&lt;\\\/p&gt;\\n&lt;\\\/div&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Select &lt;strong&gt;Save&lt;\\\/strong&gt;.&lt;br \\\/&gt;\\nThe terminal downloads the new configuration when it makes a maintenance call to our systems. This happens automatically every 180 minutes. The changes then take effect when the terminal restarts. This happens automatically at the restart hour, which is usually set to 6:00 AM.&lt;\\\/p&gt;\\n&lt;p&gt;To switch to the new settings immediately, update the configuration on your terminal manually:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;\\n&lt;p&gt;Go to &lt;strong&gt;Settings&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Configuration&lt;\\\/strong&gt;, enter your &lt;a href=\\&quot;\\\/point-of-sale\\\/menu-access\\\/#manage-passcodes\\&quot;&gt;Admin &amp;amp; Settings passcode&lt;\\\/a&gt; and select &lt;strong&gt;Update&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;For &lt;em&gt;non-Android terminals&lt;\\\/em&gt; that use the &lt;a href=\\&quot;\\\/point-of-sale\\\/menu-access#old-menu-structure\\&quot;&gt;old menu structure&lt;\\\/a&gt;: go to the &lt;a href=\\&quot;\\\/point-of-sale\\\/pos-troubleshooting\\\/terminal-turns-on\\\/admin-pin#open-admin-menu\\&quot;&gt;Admin menu&lt;\\\/a&gt; and select &lt;strong&gt;Config&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Update&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;p&gt;The terminal downloads the updated configuration and then restarts.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;&lt;em&gt;Optional&lt;\\\/em&gt;. Contact our &lt;a href=\\&quot;https:\\\/\\\/ca-test.adyen.com\\\/ca\\\/ca\\\/contactUs\\\/support.shtml?form=other\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Support Team&lt;\\\/a&gt; if you want to enable:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;Prompting your staff to manually enter a transaction reference for refunds and MOTO transactions.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;a href=\\&quot;\\\/point-of-sale\\\/standalone\\\/standalone-use\\\/#tipping-standalone\\&quot;&gt;Tipping&lt;\\\/a&gt;.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;a href=\\&quot;\\\/point-of-sale\\\/standalone\\\/standalone-use#refund\\&quot;&gt;Referenced refunds&lt;\\\/a&gt;. You can also enable the &lt;a href=\\&quot;#refund-passcode\\&quot;&gt;Refunds passcode&lt;\\\/a&gt;.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&quot;,&quot;altTitle&quot;:&quot;ca&quot;,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;ca&quot;},{&quot;title&quot;:&quot;API&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;You can use Management API to set up the standalone feature for all terminals under your company account, merchant account, or a store. You can also set up standalone for individual terminals, for example if you need to use standalone as a &lt;a href=\\&quot;\\\/point-of-sale\\\/standalone\\\/#fallback\\&quot;&gt;fallback&lt;\\\/a&gt; on select terminals at your store.&lt;\\\/p&gt;\\n&lt;p&gt;To set up the standalone feature with an API call:&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;Make a PATCH request to the &lt;code&gt;\\\/terminalSettings&lt;\\\/code&gt; endpoint for the company account, merchant account, store, or terminal, specifying the &lt;code&gt;standalone&lt;\\\/code&gt; settings.&lt;\\\/p&gt;\\n&lt;p&gt;Use one of the following endpoints:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/companies\\\/{companyId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/merchants\\\/(merchantId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/merchants\\\/{merchantId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/stores\\\/(storeId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/stores\\\/{storeId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/terminals\\\/(terminalId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/terminals\\\/{terminalId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;p&gt;In the request body, specify a  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-standalone\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;standalone&lt;\\\/a&gt; object with the following parameters:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Parameter&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Required&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Type&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-standalone-enableStandalone\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;enableStandalone&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;boolean&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Set to &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;true&lt;\\\/strong&gt;&lt;\\\/span&gt; to enable standalone.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-standalone-currencyCode\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;currencyCode&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;string&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;The default currency of the standalone payment terminal as a three-digit &lt;a href=\\&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/ISO_4217\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;ISO 4217&lt;\\\/a&gt; currency code.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Set up standalone &#039;\\&quot; :id=\\&quot;&#039;terminalsettings-request-2353060713&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/management-test.adyen.com\\\\\\\/v3\\\\\\\/terminals\\\\\\\/{terminalId}\\\\\\\/terminalSettings \\\\\\\\\\\\n-H &#039;x-API-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-X PATCH \\\\\\\\\\\\n-d &#039;{\\\\n   \\\\&amp;quot;standalone\\\\&amp;quot; : {\\\\n       \\\\&amp;quot;enableStandalone\\\\&amp;quot;: true,\\\\n       \\\\&amp;quot;currencyCode\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n   }\\\\n}&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v40.0.0\\\\nimport com.adyen.Client;\\\\nimport com.adyen.enums.Environment;\\\\nimport com.adyen.model.management.*;\\\\nimport java.time.OffsetDateTime;\\\\nimport java.util.*;\\\\nimport com.adyen.service.management.*;\\\\n\\\\nClient client = new Client(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nStandalone standalone = new Standalone()\\\\n  .enableStandalone(true)\\\\n  .currencyCode(\\\\&amp;quot;EUR\\\\&amp;quot;);\\\\n\\\\nTerminalSettings terminalSettings = new TerminalSettings()\\\\n  .standalone(standalone);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nTerminalSettingsTerminalLevelApi service = new TerminalSettingsTerminalLevelApi(client);\\\\nTerminalSettings response = service.updateTerminalSettings(\\\\&amp;quot;terminalId\\\\&amp;quot;, terminalSettings, null);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;&amp;lt;?php\\\\n\\\\\\\/\\\\\\\/ Adyen PHP API Library v28.3.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Management\\\\\\\\Standalone;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Management\\\\\\\\TerminalSettings;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Management\\\\\\\\TerminalSettingsTerminalLevelApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$standalone = new Standalone();\\\\n$standalone\\\\n  -&amp;gt;setEnableStandalone(true)\\\\n  -&amp;gt;setCurrencyCode(\\\\&amp;quot;EUR\\\\&amp;quot;);\\\\n\\\\n$terminalSettings = new TerminalSettings();\\\\n$terminalSettings\\\\n  -&amp;gt;setStandalone($standalone);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new TerminalSettingsTerminalLevelApi($client);\\\\n$response = $service-&amp;gt;updateTerminalSettings(&#039;terminalId&#039;, $terminalSettings);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .NET API Library v32.2.1\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Model;\\\\nusing Adyen.Model.Management;\\\\nusing Adyen.Service.Management;\\\\n\\\\nvar config = new Config()\\\\n{\\\\n    XApiKey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nStandalone standalone = new Standalone\\\\n{\\\\n  EnableStandalone = true,\\\\n  CurrencyCode = \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n};\\\\n\\\\nTerminalSettings terminalSettings = new TerminalSettings\\\\n{\\\\n  Standalone = standalone\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new TerminalSettingsTerminalLevelService(client);\\\\nvar response = service.UpdateTerminalSettings(\\\\&amp;quot;terminalId\\\\&amp;quot;, terminalSettings);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v30.0.0\\\\nconst { Client, ManagementAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst terminalSettings = {\\\\n  standalone: {\\\\n    enableStandalone: true,\\\\n    currencyCode: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n  }\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst managementAPI = new ManagementAPI(client);\\\\nconst response = managementAPI.TerminalSettingsTerminalLevelApi.updateTerminalSettings(\\\\&amp;quot;terminalId\\\\&amp;quot;, terminalSettings);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v21.1.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/management\\\\&amp;quot;\\\\n)\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nstandalone := management.Standalone{\\\\n  EnableStandalone: common.PtrBool(true),\\\\n  CurrencyCode: common.PtrString(\\\\&amp;quot;EUR\\\\&amp;quot;),\\\\n}\\\\n\\\\nterminalSettings := management.TerminalSettings{\\\\n  Standalone: &amp;amp;standalone,\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Management()\\\\nreq := service.TerminalSettingsTerminalLevelApi.UpdateTerminalSettingsInput(\\\\&amp;quot;terminalId\\\\&amp;quot;).TerminalSettings(terminalSettings)\\\\nres, httpRes, err := service.TerminalSettingsTerminalLevelApi.UpdateTerminalSettings(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v14.0.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;standalone\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;enableStandalone\\\\&amp;quot;: True,\\\\n    \\\\&amp;quot;currencyCode\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n  }\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.management.terminal_settings_terminal_level_api.update_terminal_settings(request=json_request, terminalId=\\\\&amp;quot;terminalId\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v11.0.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :standalone =&amp;gt; {\\\\n    :enableStandalone =&amp;gt; true,\\\\n    :currencyCode =&amp;gt; &#039;EUR&#039;\\\\n  }\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.management.terminal_settings_terminal_level_api.update_terminal_settings(request_body, &#039;terminalId&#039;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v30.0.0\\\\nimport { Client, ManagementAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst standalone: Types.management.Standalone = {\\\\n  enableStandalone: true,\\\\n  currencyCode: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n};\\\\n\\\\nconst terminalSettings: Types.management.TerminalSettings = {\\\\n  standalone: standalone\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst managementAPI = new ManagementAPI(client);\\\\nconst response = managementAPI.TerminalSettingsTerminalLevelApi.updateTerminalSettings(\\\\&amp;quot;terminalId\\\\&amp;quot;, terminalSettings);&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;In the response, note that this contains all settings that your API credential has access to, including the &lt;code&gt;enableStandalone&lt;\\\/code&gt; value you set in the request.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Set up standalone response&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n    \\\\\\&quot;cardholderReceipt\\\\\\&quot;: {\\\\n        \\\\\\&quot;headerForAuthorizedReceipt\\\\\\&quot;: \\\\\\&quot;header1,header2,filler\\\\\\&quot;\\\\n    },\\\\n    \\\\\\&quot;gratuities\\\\\\&quot;: [],\\\\n    \\\\\\&quot;nexo\\\\\\&quot;: {\\\\n        \\\\\\&quot;encryptionKey\\\\\\&quot;: {\\\\n            \\\\\\&quot;identifier\\\\\\&quot;: \\\\\\&quot;KEY_IDENTIFIER\\\\\\&quot;,\\\\n            \\\\\\&quot;passphrase\\\\\\&quot;: \\\\\\&quot;KEY_PASSPHRASE\\\\\\&quot;,\\\\n            \\\\\\&quot;version\\\\\\&quot;: 2\\\\n        },\\\\n        \\\\\\&quot;eventUrls\\\\\\&quot;: {\\\\n            \\\\\\&quot;eventPublicUrls\\\\\\&quot;: [\\\\n                {\\\\n                    \\\\\\&quot;password\\\\\\&quot;: \\\\\\&quot;notification\\\\\\&quot;,\\\\n                    \\\\\\&quot;url\\\\\\&quot;: \\\\\\&quot;...\\\\\\&quot;,\\\\n                    \\\\\\&quot;username\\\\\\&quot;: \\\\\\&quot;adyen\\\\\\&quot;\\\\n                }\\\\n            ]\\\\n        },\\\\n        \\\\\\&quot;nexoEventUrls\\\\\\&quot;: [\\\\n            \\\\\\&quot;...\\\\\\&quot;\\\\n        ]\\\\n    },\\\\n    \\\\\\&quot;opi\\\\\\&quot;: {\\\\n        \\\\\\&quot;enablePayAtTable\\\\\\&quot;: false,\\\\n        \\\\\\&quot;payAtTableStoreNumber\\\\\\&quot;: \\\\\\&quot;1111\\\\\\&quot;,\\\\n        \\\\\\&quot;payAtTableURL\\\\\\&quot;: \\\\\\&quot;...\\\\\\&quot;\\\\n    },\\\\n    \\\\\\&quot;receiptPrinting\\\\\\&quot;: {},\\\\n    \\\\\\&quot;signature\\\\\\&quot;: {\\\\n        \\\\\\&quot;askSignatureOnScreen\\\\\\&quot;: true,\\\\n        \\\\\\&quot;skipSignature\\\\\\&quot;: true\\\\n    },\\\\n    \\\\\\&quot;timeouts\\\\\\&quot;: {\\\\n        \\\\\\&quot;fromActiveToSleep\\\\\\&quot;: 30\\\\n    },\\\\n    \\\\\\&quot;offlineProcessing\\\\\\&quot;: {\\\\n        \\\\\\&quot;chipFloorLimit\\\\\\&quot;: 0\\\\n    },\\\\n    \\\\\\&quot;passcodes\\\\\\&quot;: {\\\\n        \\\\\\&quot;adminMenuPin\\\\\\&quot;: \\\\\\&quot;1111\\\\\\&quot;,\\\\n        \\\\\\&quot;txMenuPin\\\\\\&quot;: \\\\\\&quot;1111\\\\\\&quot;,\\\\n        \\\\\\&quot;refundPin\\\\\\&quot;: \\\\\\&quot;111111\\\\\\&quot;,\\\\n        \\\\\\&quot;screenLockPin\\\\\\&quot;: \\\\\\&quot;1111\\\\\\&quot;\\\\n    },\\\\n    \\\\\\&quot;standalone\\\\\\&quot;: {\\\\n        \\\\\\&quot;enableStandalone\\\\\\&quot;: true,\\\\n        \\\\\\&quot;currencyCode\\\\\\&quot;: \\\\\\&quot;EUR\\\\\\&quot;\\\\n    }\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&quot;,&quot;altTitle&quot;:&quot;api&quot;,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;api&quot;}]\"\n            :should-update-when-url-changes='true'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2 id=\"configure-tipping\">Configure tipping<\/h2>\n<p>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.<\/p>\n<p>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.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\"><\/th>\n<th style=\"text-align: left;\"><\/th>\n<th style=\"text-align: left;\"><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Tipping without options: <br> <img title=\"Tipping prompt\" alt=\"\" src=\"\/images\/f\/1\/5\/7\/7\/f1577eef16227d16757763dbb22fbaaba0c8a3e6-screen-entipping-enter-tip-amount.png\" \/><\/td>\n<td style=\"text-align: left;\">Tipping with percentage options: <br> <img title=\"Tipping options\" alt=\"\" src=\"\/images\/c\/2\/6\/e\/b\/c26ebd9fac46aa2761e05ce06deb6ff4240b294b-screen-entipping-predefined-options-portrait.png\" \/><\/td>\n<td style=\"text-align: left;\">Percentage and calculated tip amounts: <br> <img title=\"Both predefined tipping options\" alt=\"\" src=\"\/images\/5\/7\/e\/8\/7\/57e87d103ad8f491db83d39be546782dace453df-screen-entipping-percentage-and-totals.png\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>You can configure tipping either from your Customer Area or by using the Management API.<\/p>\n\n<div id=\"tabI4TSu\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Customer Area&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;To configure asking for a tip amount from your Customer Area:&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;Log in to your &lt;a href=\\&quot;https:\\\/\\\/ca-test.adyen.com\\\/\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Customer Area&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Optionally, switch to the merchant account, store, or terminal that you want to configure tipping for.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Go to &lt;strong&gt;In-person payments&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Terminal settings&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Go to &lt;strong&gt;Payment features&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Tipping&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;At &lt;strong&gt;Enable tipping&lt;\\\/strong&gt;, select &lt;strong&gt;Enabled&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Select the &lt;strong&gt;Currency&lt;\\\/strong&gt; that the settings should apply to.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Decide if you want to let shopper enter a tip or show one of the predefined options.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;If you want to let shopper enter a tip, at &lt;strong&gt;Type of tipping&lt;\\\/strong&gt;, select &lt;strong&gt;Shopper enters tip amount&lt;\\\/strong&gt; to show the screen for tipping without options.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;If you want to show one of the predefined options:&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;At &lt;strong&gt;Type of tipping&lt;\\\/strong&gt;, select &lt;strong&gt;Shopper selects a predefined option&lt;\\\/strong&gt; to show the screen with predefined tipping options.&lt;\\\/li&gt;\\n&lt;li&gt;Define the options:\\n&lt;ul&gt;\\n&lt;li&gt;You can define different options for different currencies, except at store or terminal level where only one currency applies.&lt;\\\/li&gt;\\n&lt;li&gt;Per currency, you can define a maximum of four options. We automatically add an option for not giving a tip.&lt;\\\/li&gt;\\n&lt;li&gt;An option can be for a specific &lt;strong&gt;amount&lt;\\\/strong&gt;, for a &lt;strong&gt;percentage&lt;\\\/strong&gt; of the purchase, or for a &lt;strong&gt;custom&lt;\\\/strong&gt; tip (this leads the customer to a screen where they can enter a tip amount).&lt;\\\/li&gt;\\n&lt;li&gt;Optionally, enable &lt;strong&gt;Show calculated percentage amount&lt;\\\/strong&gt; to show the amount associated with the &lt;strong&gt;percentage&lt;\\\/strong&gt; tipping options.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;If applicable, select &lt;strong&gt;Add another currency&lt;\\\/strong&gt;, select a currency, and configure tipping for that currency.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;At &lt;strong&gt;Enable standalone tipping&lt;\\\/strong&gt; select &lt;strong&gt;Enabled&lt;\\\/strong&gt; if it fits your use case.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Select &lt;strong&gt;Save&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;p&gt;You can configure your POS app to &lt;a href=\\&quot;\\\/point-of-sale\\\/tipping\\\/tipping-from-terminal\\\/override-tipping-configuration\\&quot;&gt;override the tipping settings&lt;\\\/a&gt; that you have defined in your Customer Area.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:&quot;ca&quot;,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;ca&quot;},{&quot;title&quot;:&quot;API&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;To configure tipping with Management API:&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;Make a PATCH request to the &lt;code&gt;\\\/terminalSettings&lt;\\\/code&gt; endpoint for the company account, merchant account, store, or terminal, specifying the &lt;code&gt;standalone&lt;\\\/code&gt; and &lt;code&gt;gratuities&lt;\\\/code&gt; settings.&lt;\\\/p&gt;\\n&lt;p&gt;Use one of the following endpoints:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/companies\\\/{companyId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/merchants\\\/(merchantId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/merchants\\\/{merchantId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/stores\\\/(storeId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/stores\\\/{storeId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/terminals\\\/(terminalId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/terminals\\\/{terminalId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;p&gt;In the request body, specify a  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-standalone\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;standalone&lt;\\\/a&gt; object and a  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-gratuities\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;gratuities&lt;\\\/a&gt; object:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;\\n&lt;p&gt;In the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-standalone\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;standalone&lt;\\\/a&gt; object, include the following parameter:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Parameter&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: center;\\&quot;&gt;Required&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Type&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-standalone-enableGratuities\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;enableGratuities&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;boolean&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Set to &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;true&lt;\\\/strong&gt;&lt;\\\/span&gt; to enable tipping.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;In the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-gratuities\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;gratuities&lt;\\\/a&gt; object, include the following parameters:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Parameter&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: center;\\&quot;&gt;Required&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Type&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-gratuities-currency\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;currency&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;string&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;The currency that the tipping settings apply to.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-gratuities-usePredefinedTipEntries\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;usePredefinedTipEntries&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;boolean&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Indicates whether the terminal shows a prompt to enter a tip (false), or predefined tipping options to choose from (true).&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-gratuities-predefinedTipEntries\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;predefinedTipEntries&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;array [string]&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Tipping options the shopper can choose from if &lt;code&gt;usePredefinedTipEntries&lt;\\\/code&gt; is &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;true&lt;\\\/strong&gt;&lt;\\\/span&gt;. 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: &lt;ul&gt;&lt;li markdown=\\&quot;1\\&quot;&gt;A percentage of the transaction amount. Example: 5%&lt;\\\/li&gt; &lt;li markdown=\\&quot;1\\&quot;&gt;A tip amount in minor units. Example: 500 for a EUR 5 tip.&lt;\\\/li&gt;&lt;\\\/ul&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-gratuities-allowCustomAmount\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;allowCustomAmount&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;boolean&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Indicates whether one of the predefined tipping options is to let the shopper enter a custom tip. If &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;true&lt;\\\/strong&gt;&lt;\\\/span&gt;, only three of the other options defined in &lt;code&gt;predefinedTipEntries&lt;\\\/code&gt; are shown.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Configure tipping for standalone &#039;\\&quot; :id=\\&quot;&#039;configure-tipping&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl \\\\&amp;quot;https:\\\\\\\/\\\\\\\/management-test.adyen.com\\\\\\\/v3\\\\\\\/terminals\\\\\\\/{terminalId}\\\\\\\/terminalSettings\\\\&amp;quot; \\\\\\\\\\\\n-H &#039;X-API-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;Content-Type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-X PATCH \\\\\\\\\\\\n-d &#039;{\\\\n       \\\\&amp;quot;standalone\\\\&amp;quot;:{\\\\n          \\\\&amp;quot;enableGratuities\\\\&amp;quot;:true\\\\n       },\\\\n       \\\\&amp;quot;gratuities\\\\&amp;quot;:[\\\\n          {\\\\n             \\\\&amp;quot;currency\\\\&amp;quot;:\\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n             \\\\&amp;quot;predefinedTipEntries\\\\&amp;quot;:[\\\\n                \\\\&amp;quot;10%\\\\&amp;quot;,\\\\n                \\\\&amp;quot;15%\\\\&amp;quot;,\\\\n                \\\\&amp;quot;20%\\\\&amp;quot;\\\\n             ],\\\\n             \\\\&amp;quot;usePredefinedTipEntries\\\\&amp;quot;:true,\\\\n             \\\\&amp;quot;allowCustomAmount\\\\&amp;quot;:true\\\\n          }\\\\n       ]\\\\n    }&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v40.0.0\\\\nimport com.adyen.Client;\\\\nimport com.adyen.enums.Environment;\\\\nimport com.adyen.model.management.*;\\\\nimport java.time.OffsetDateTime;\\\\nimport java.util.*;\\\\nimport com.adyen.service.management.*;\\\\n\\\\nClient client = new Client(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nStandalone standalone = new Standalone()\\\\n  .enableGratuities(true);\\\\n\\\\nGratuity gratuity1 = new Gratuity()\\\\n  .predefinedTipEntries(Arrays.asList(\\\\&amp;quot;10%\\\\&amp;quot;, \\\\&amp;quot;15%\\\\&amp;quot;, \\\\&amp;quot;20%\\\\&amp;quot;))\\\\n  .allowCustomAmount(true)\\\\n  .usePredefinedTipEntries(true)\\\\n  .currency(\\\\&amp;quot;EUR\\\\&amp;quot;);\\\\n\\\\nTerminalSettings terminalSettings = new TerminalSettings()\\\\n  .standalone(standalone)\\\\n  .gratuities(Arrays.asList(gratuity1));\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nTerminalSettingsTerminalLevelApi service = new TerminalSettingsTerminalLevelApi(client);\\\\nTerminalSettings response = service.updateTerminalSettings(\\\\&amp;quot;terminalId\\\\&amp;quot;, terminalSettings, null);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;&amp;lt;?php\\\\n\\\\\\\/\\\\\\\/ Adyen PHP API Library v28.3.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Management\\\\\\\\Standalone;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Management\\\\\\\\Gratuity;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Management\\\\\\\\TerminalSettings;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Management\\\\\\\\TerminalSettingsTerminalLevelApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$standalone = new Standalone();\\\\n$standalone\\\\n  -&amp;gt;setEnableGratuities(true);\\\\n\\\\n$gratuity1 = new Gratuity();\\\\n$gratuity1\\\\n  -&amp;gt;setPredefinedTipEntries(array(\\\\&amp;quot;10%\\\\&amp;quot;, \\\\&amp;quot;15%\\\\&amp;quot;, \\\\&amp;quot;20%\\\\&amp;quot;))\\\\n  -&amp;gt;setAllowCustomAmount(true)\\\\n  -&amp;gt;setUsePredefinedTipEntries(true)\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;EUR\\\\&amp;quot;);\\\\n\\\\n$terminalSettings = new TerminalSettings();\\\\n$terminalSettings\\\\n  -&amp;gt;setStandalone($standalone)\\\\n  -&amp;gt;setGratuities(array($gratuity1));\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new TerminalSettingsTerminalLevelApi($client);\\\\n$response = $service-&amp;gt;updateTerminalSettings(&#039;terminalId&#039;, $terminalSettings);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .NET API Library v32.2.1\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Model;\\\\nusing Adyen.Model.Management;\\\\nusing Adyen.Service.Management;\\\\n\\\\nvar config = new Config()\\\\n{\\\\n    XApiKey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nStandalone standalone = new Standalone\\\\n{\\\\n  EnableGratuities = true\\\\n};\\\\n\\\\nGratuity gratuity1 = new Gratuity\\\\n{\\\\n  PredefinedTipEntries = { \\\\&amp;quot;10%\\\\&amp;quot;, \\\\&amp;quot;15%\\\\&amp;quot;, \\\\&amp;quot;20%\\\\&amp;quot; },\\\\n  AllowCustomAmount = true,\\\\n  UsePredefinedTipEntries = true,\\\\n  Currency = \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n};\\\\n\\\\nTerminalSettings terminalSettings = new TerminalSettings\\\\n{\\\\n  Standalone = standalone,\\\\n  Gratuities = new List&amp;lt;Gratuity&amp;gt;{ gratuity1 }\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new TerminalSettingsTerminalLevelService(client);\\\\nvar response = service.UpdateTerminalSettings(\\\\&amp;quot;terminalId\\\\&amp;quot;, terminalSettings);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v30.0.0\\\\nconst { Client, ManagementAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst terminalSettings = {\\\\n  standalone: {\\\\n    enableGratuities: true\\\\n  },\\\\n  gratuities: [ {\\\\n    currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n    predefinedTipEntries: [ \\\\&amp;quot;10%\\\\&amp;quot;, \\\\&amp;quot;15%\\\\&amp;quot;, \\\\&amp;quot;20%\\\\&amp;quot; ],\\\\n    usePredefinedTipEntries: true,\\\\n    allowCustomAmount: true\\\\n  } ]\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst managementAPI = new ManagementAPI(client);\\\\nconst response = managementAPI.TerminalSettingsTerminalLevelApi.updateTerminalSettings(\\\\&amp;quot;terminalId\\\\&amp;quot;, terminalSettings);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v21.1.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/management\\\\&amp;quot;\\\\n)\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nstandalone := management.Standalone{\\\\n  EnableGratuities: common.PtrBool(true),\\\\n}\\\\n\\\\ngratuity1 := management.Gratuity{\\\\n  PredefinedTipEntries: []string{\\\\n    \\\\&amp;quot;10%\\\\&amp;quot;, \\\\&amp;quot;15%\\\\&amp;quot;, \\\\&amp;quot;20%\\\\&amp;quot;,\\\\n  },\\\\n  AllowCustomAmount: common.PtrBool(true),\\\\n  UsePredefinedTipEntries: common.PtrBool(true),\\\\n  Currency: common.PtrString(\\\\&amp;quot;EUR\\\\&amp;quot;),\\\\n}\\\\n\\\\nterminalSettings := management.TerminalSettings{\\\\n  Standalone: &amp;amp;standalone,\\\\n  Gratuities: []management.Gratuity{\\\\n      gratuity1,\\\\n  },\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Management()\\\\nreq := service.TerminalSettingsTerminalLevelApi.UpdateTerminalSettingsInput(\\\\&amp;quot;terminalId\\\\&amp;quot;).TerminalSettings(terminalSettings)\\\\nres, httpRes, err := service.TerminalSettingsTerminalLevelApi.UpdateTerminalSettings(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v14.0.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;standalone\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;enableGratuities\\\\&amp;quot;: True\\\\n  },\\\\n  \\\\&amp;quot;gratuities\\\\&amp;quot;: [ {\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n    \\\\&amp;quot;predefinedTipEntries\\\\&amp;quot;: [ \\\\&amp;quot;10%\\\\&amp;quot;, \\\\&amp;quot;15%\\\\&amp;quot;, \\\\&amp;quot;20%\\\\&amp;quot; ],\\\\n    \\\\&amp;quot;usePredefinedTipEntries\\\\&amp;quot;: True,\\\\n    \\\\&amp;quot;allowCustomAmount\\\\&amp;quot;: True\\\\n  } ]\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.management.terminal_settings_terminal_level_api.update_terminal_settings(request=json_request, terminalId=\\\\&amp;quot;terminalId\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v11.0.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :standalone =&amp;gt; {\\\\n    :enableGratuities =&amp;gt; true\\\\n  },\\\\n  :gratuities =&amp;gt; [ {\\\\n    :currency =&amp;gt; &#039;EUR&#039;,\\\\n    :predefinedTipEntries =&amp;gt; [ &#039;10%&#039;, &#039;15%&#039;, &#039;20%&#039; ],\\\\n    :usePredefinedTipEntries =&amp;gt; true,\\\\n    :allowCustomAmount =&amp;gt; true\\\\n  } ]\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.management.terminal_settings_terminal_level_api.update_terminal_settings(request_body, &#039;terminalId&#039;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v30.0.0\\\\nimport { Client, ManagementAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst standalone: Types.management.Standalone = {\\\\n  enableGratuities: true\\\\n};\\\\n\\\\nconst gratuity1: Types.management.Gratuity = {\\\\n  predefinedTipEntries: [\\\\&amp;quot;10%\\\\&amp;quot;, \\\\&amp;quot;15%\\\\&amp;quot;, \\\\&amp;quot;20%\\\\&amp;quot;],\\\\n  allowCustomAmount: true,\\\\n  usePredefinedTipEntries: true,\\\\n  currency: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n};\\\\n\\\\nconst terminalSettings: Types.management.TerminalSettings = {\\\\n  standalone: standalone,\\\\n  gratuities: [gratuity1]\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst managementAPI = new ManagementAPI(client);\\\\nconst response = managementAPI.TerminalSettingsTerminalLevelApi.updateTerminalSettings(\\\\&amp;quot;terminalId\\\\&amp;quot;, terminalSettings);&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;The response returns all settings that your API credential has access to, including the ones that you defined in the request.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&quot;,&quot;altTitle&quot;:&quot;api&quot;,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;api&quot;}]\"\n            :should-update-when-url-changes='true'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h3 id=\"configure-tipping-quebec\">Configure compliant tipping in Quebec, Canada<\/h3>\n<p>A <a href=\"https:\/\/www.assnat.qc.ca\/en\/travaux-parlementaires\/projets-loi\/projet-loi-72-43-1.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">regulation in Quebec, Canada<\/a> requires tips to be calculated on pre-tax amounts. To facilitate compliance with this regulation, we recommend choosing one of the following tipping options:<\/p>\n<ul>\n<li>The terminal asks the shopper to enter the tip manually.<\/li>\n<li>The terminal shows predefined tipping options for specific <span translate=\"no\"><strong>CAD<\/strong><\/span> amounts and the option to enter a custom tip amount.<\/li>\n<\/ul>\n<p>To configure tipping option to facilitate compliance with regulations in Quebec, Canada:<\/p>\n<ol>\n<li>Decide what method you want to use: let the shopper enter a tip, or show predefined fixed amounts.<\/li>\n<li>Set up tipping in the same way as described under <a href=\"#configure-tipping\">configure tipping<\/a>, but:\n\n<div id=\"tabvdu6I\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Let shopper enter a tipp&quot;,&quot;content&quot;:&quot;&lt;\\\/li&gt;\\n&lt;li&gt;Select &lt;strong&gt;CAD&lt;\\\/strong&gt; as &lt;strong&gt;Currency&lt;\\\/strong&gt;.&lt;\\\/li&gt;\\n&lt;li&gt;At &lt;strong&gt;Type of tipping&lt;\\\/strong&gt;, select &lt;strong&gt;Shopper enters tip amount&lt;\\\/strong&gt; to show the screen for tipping without options.\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Show predefined fixed amounts&quot;,&quot;content&quot;:&quot;&lt;\\\/li&gt;\\n&lt;li&gt;Select &lt;strong&gt;CAD&lt;\\\/strong&gt; as &lt;strong&gt;Currency&lt;\\\/strong&gt;.&lt;\\\/li&gt;\\n&lt;li&gt;At &lt;strong&gt;Type of tipping&lt;\\\/strong&gt;, select &lt;strong&gt;Shopper selects a predefined option&lt;\\\/strong&gt; to show the screen for tipping with predefined options.&lt;\\\/li&gt;\\n&lt;li&gt;Define the options for a specific &lt;strong&gt;Amount&lt;\\\/strong&gt;.\\n&lt;div class=\\&quot;notices yellow\\&quot;&gt;\\n&lt;p&gt;Do not use &lt;strong&gt;Percentage&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/div&gt;&lt;\\\/li&gt;\\n&lt;li&gt;Select  &lt;strong&gt;Allow custom amount&lt;\\\/strong&gt;.\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n<\/li>\n<li>At <strong>Enable standalone tipping<\/strong> select <strong>Enabled<\/strong>.<\/li>\n<li>Select <strong>Save<\/strong>.<\/li>\n<\/ol>\n<h2 id=\"refund-passcode\">Configure refund passcode<\/h2>\n<p>Because making refunds on standalone payment terminals is risky, you can enable a 6-digit passcode needed to initiate refunds. You set up the <strong>Refunds<\/strong> passcode in addition to the <strong>Transactions<\/strong> passcode, which means that you need to enter both to initiate a refund.<\/p>\n<p>You can configure this in your Customer Area or using an API call.<\/p>\n\n<div id=\"tabVfEsQ\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Customer Area&quot;,&quot;content&quot;:&quot;\\n&lt;ol&gt;\\n&lt;li&gt;In your &lt;a href=\\&quot;https:\\\/\\\/ca-test.adyen.com\\\/\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Customer Area&lt;\\\/a&gt;, go to &lt;strong&gt;In-person payments&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Terminal settings&lt;\\\/strong&gt; or select a specific terminal by serial number.\\n&lt;div class=\\&quot;sc-notice info\\&quot;&gt;&lt;div&gt;\\n&lt;p&gt;You can find the serial number in the Device info on the terminal.&lt;br \\\/&gt;\\nRefer to the &lt;a href=\\&quot;\\\/point-of-sale\\\/pos-troubleshooting\\\/getting-started-with-your-terminal\\&quot;&gt;manual for your terminal model&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&lt;\\\/div&gt;&lt;\\\/div&gt;&lt;\\\/li&gt;\\n&lt;li&gt;Select &lt;strong&gt;Passcodes&lt;\\\/strong&gt;.&lt;\\\/li&gt;\\n&lt;li&gt;To view the passcode, under &lt;strong&gt;Terminal passcodes&lt;\\\/strong&gt;, select &lt;strong&gt;Decrypted&lt;\\\/strong&gt;.&lt;\\\/li&gt;\\n&lt;li&gt;Under &lt;strong&gt;Refunds&lt;\\\/strong&gt;, select the view icon &lt;i class=\\&quot;adl-icon-hide\\&quot;&gt;&lt;\\\/i&gt; to show the passcode, and pencil icon &lt;i class=\\&quot;adl-icon-edit\\&quot;&gt;&lt;\\\/i&gt; to enable editing.&lt;\\\/li&gt;\\n&lt;li&gt;Under &lt;strong&gt;Refunds&lt;\\\/strong&gt;, enter and retype the new value.&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Select &lt;strong&gt;Save&lt;\\\/strong&gt;.&lt;br \\\/&gt;\\nThe terminal downloads the new configuration when it makes a maintenance call to our systems. This happens automatically every 180 minutes. The changes then take effect when the terminal restarts. This happens automatically at the restart hour, which is usually set to 6:00 AM.&lt;\\\/p&gt;\\n&lt;p&gt;To switch to the new settings immediately, update the configuration on your terminal manually:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;\\n&lt;p&gt;Go to &lt;strong&gt;Settings&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Configuration&lt;\\\/strong&gt;, enter your &lt;a href=\\&quot;\\\/point-of-sale\\\/menu-access\\\/#manage-passcodes\\&quot;&gt;Admin &amp;amp; Settings passcode&lt;\\\/a&gt; and select &lt;strong&gt;Update&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;For &lt;em&gt;non-Android terminals&lt;\\\/em&gt; that use the &lt;a href=\\&quot;\\\/point-of-sale\\\/menu-access#old-menu-structure\\&quot;&gt;old menu structure&lt;\\\/a&gt;: go to the &lt;a href=\\&quot;\\\/point-of-sale\\\/pos-troubleshooting\\\/terminal-turns-on\\\/admin-pin#open-admin-menu\\&quot;&gt;Admin menu&lt;\\\/a&gt; and select &lt;strong&gt;Config&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Update&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;p&gt;The terminal downloads the updated configuration and then restarts.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&quot;,&quot;altTitle&quot;:&quot;ca&quot;,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;ca&quot;},{&quot;title&quot;:&quot;API&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;You can use Management API to configure the refund passcode for all terminals under your company account, merchant account, or a store, or for individual terminals.&lt;\\\/p&gt;\\n&lt;p&gt;To configure the refund passcode:&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;Make a PATCH request to the &lt;code&gt;\\\/terminalSettings&lt;\\\/code&gt; endpoint for the company account, merchant account, store, or terminal, specifying the &lt;code&gt;passcode&lt;\\\/code&gt; settings.&lt;\\\/p&gt;\\n&lt;p&gt;Use one of the following endpoints:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/companies\\\/{companyId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/merchants\\\/(merchantId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/merchants\\\/{merchantId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/stores\\\/(storeId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/stores\\\/{storeId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/terminals\\\/(terminalId)\\\/terminalSettings\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/terminals\\\/{terminalId}\\\/terminalSettings&lt;\\\/a&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;p&gt;In the body of the request, specify a  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-passcodes\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;passcodes&lt;\\\/a&gt; object with the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Management\\\/latest\\\/patch\\\/companies\\\/(companyId)\\\/terminalSettings#request-passcodes-refundPin\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;refundPin&lt;\\\/a&gt; parameter:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Configure refund passcode &#039;\\&quot; :id=\\&quot;&#039;terminalsettings-request-2924817659&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/management-test.adyen.com\\\\\\\/v3\\\\\\\/companies\\\\\\\/{companyId}\\\\\\\/terminalSettings \\\\\\\\\\\\n-H &#039;x-API-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-X PATCH \\\\\\\\\\\\n-d &#039;{\\\\n   \\\\&amp;quot;passcodes\\\\&amp;quot; : {\\\\n       \\\\&amp;quot;refundPin\\\\&amp;quot;: \\\\&amp;quot;123456\\\\&amp;quot;\\\\n   }\\\\n}&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v40.0.0\\\\nimport com.adyen.Client;\\\\nimport com.adyen.enums.Environment;\\\\nimport com.adyen.model.management.*;\\\\nimport java.time.OffsetDateTime;\\\\nimport java.util.*;\\\\nimport com.adyen.service.management.*;\\\\n\\\\nClient client = new Client(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nPasscodes passcodes = new Passcodes()\\\\n  .refundPin(\\\\&amp;quot;123456\\\\&amp;quot;);\\\\n\\\\nTerminalSettings terminalSettings = new TerminalSettings()\\\\n  .passcodes(passcodes);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nTerminalSettingsCompanyLevelApi service = new TerminalSettingsCompanyLevelApi(client);\\\\nTerminalSettings response = service.updateTerminalSettings(\\\\&amp;quot;companyId\\\\&amp;quot;, terminalSettings, null);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;&amp;lt;?php\\\\n\\\\\\\/\\\\\\\/ Adyen PHP API Library v28.3.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Management\\\\\\\\Passcodes;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Management\\\\\\\\TerminalSettings;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Management\\\\\\\\TerminalSettingsCompanyLevelApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$passcodes = new Passcodes();\\\\n$passcodes\\\\n  -&amp;gt;setRefundPin(\\\\&amp;quot;123456\\\\&amp;quot;);\\\\n\\\\n$terminalSettings = new TerminalSettings();\\\\n$terminalSettings\\\\n  -&amp;gt;setPasscodes($passcodes);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new TerminalSettingsCompanyLevelApi($client);\\\\n$response = $service-&amp;gt;updateTerminalSettings(&#039;companyId&#039;, $terminalSettings);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .NET API Library v32.2.1\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Model;\\\\nusing Adyen.Model.Management;\\\\nusing Adyen.Service.Management;\\\\n\\\\nvar config = new Config()\\\\n{\\\\n    XApiKey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nPasscodes passcodes = new Passcodes\\\\n{\\\\n  RefundPin = \\\\&amp;quot;123456\\\\&amp;quot;\\\\n};\\\\n\\\\nTerminalSettings terminalSettings = new TerminalSettings\\\\n{\\\\n  Passcodes = passcodes\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new TerminalSettingsCompanyLevelService(client);\\\\nvar response = service.UpdateTerminalSettings(\\\\&amp;quot;companyId\\\\&amp;quot;, terminalSettings);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v30.0.0\\\\nconst { Client, ManagementAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst terminalSettings = {\\\\n  passcodes: {\\\\n    refundPin: \\\\&amp;quot;123456\\\\&amp;quot;\\\\n  }\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst managementAPI = new ManagementAPI(client);\\\\nconst response = managementAPI.TerminalSettingsCompanyLevelApi.updateTerminalSettings(\\\\&amp;quot;companyId\\\\&amp;quot;, terminalSettings);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v21.1.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/management\\\\&amp;quot;\\\\n)\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\npasscodes := management.Passcodes{\\\\n  RefundPin: common.PtrString(\\\\&amp;quot;123456\\\\&amp;quot;),\\\\n}\\\\n\\\\nterminalSettings := management.TerminalSettings{\\\\n  Passcodes: &amp;amp;passcodes,\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Management()\\\\nreq := service.TerminalSettingsCompanyLevelApi.UpdateTerminalSettingsInput(\\\\&amp;quot;companyId\\\\&amp;quot;).TerminalSettings(terminalSettings)\\\\nres, httpRes, err := service.TerminalSettingsCompanyLevelApi.UpdateTerminalSettings(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v14.0.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;passcodes\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;refundPin\\\\&amp;quot;: \\\\&amp;quot;123456\\\\&amp;quot;\\\\n  }\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.management.terminal_settings_company_level_api.update_terminal_settings(request=json_request, companyId=\\\\&amp;quot;companyId\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v11.0.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :passcodes =&amp;gt; {\\\\n    :refundPin =&amp;gt; &#039;123456&#039;\\\\n  }\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.management.terminal_settings_company_level_api.update_terminal_settings(request_body, &#039;companyId&#039;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v30.0.0\\\\nimport { Client, ManagementAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst passcodes: Types.management.Passcodes = {\\\\n  refundPin: \\\\&amp;quot;123456\\\\&amp;quot;\\\\n};\\\\n\\\\nconst terminalSettings: Types.management.TerminalSettings = {\\\\n  passcodes: passcodes\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst managementAPI = new ManagementAPI(client);\\\\nconst response = managementAPI.TerminalSettingsCompanyLevelApi.updateTerminalSettings(\\\\&amp;quot;companyId\\\\&amp;quot;, terminalSettings);&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;The response returns all settings that your API credential has access to, including the &lt;code&gt;passcodes&lt;\\\/code&gt; object you set in the request.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&quot;,&quot;altTitle&quot;:&quot;api&quot;,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;api&quot;}]\"\n            :should-update-when-url-changes='true'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2>Payment facilitators<\/h2>\n<p>If you are a <a href=\"\/get-started-with-adyen\/adyen-glossary#payment-facilitator-payfac\" target=\"_blank\">payment facilitator<\/a>, card schemes require you to provide certain data about your sub-merchant with each transaction. That is because your sub-merchant is considered the Merchant of Record when you facilitate a transaction.<\/p>\n<p>Adyen automatically adds certain sub-merchant data to transactions that you facilitate. To supply the remaining data, you must <a href=\"\/point-of-sale\/payment-facilitators\">add that data to the configuration of the sub-merchant's store<\/a>.<\/p>\n<h2>Testing<\/h2>\n<p>For information on how you can make test payments and refunds, see <a href=\"\/point-of-sale\/testing-pos-payments\">testing your integration<\/a>.<\/p>\n<p>Any test transactions you make, will appear in your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>, under <strong>Transactions<\/strong> &gt; <strong>Payments<\/strong>.<\/p>\n<h2>See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/point-of-sale\/standalone\/standalone-use\"\n                        target=\"_self\"\n                        >\n                    Use a standalone terminal\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/point-of-sale\/standalone\/standalone-build\/set-up-standalone","articleFields":{"description":"Make your terminals ready for use as standalone devices.","parameters":{"standalone":"true"},"process":{"markdown":true,"twig":false},"twig_first":true,"never_cache_twig":true,"feedback_component":true,"filters_component":false,"decision_tree":"[]","page_id":"74738dbb-3daa-43be-93e0-122dc5f20bde","last_edit_on":"21-05-2025 16:12"},"algolia":{"url":"https:\/\/docs.adyen.com\/point-of-sale\/standalone\/standalone-build\/set-up-standalone","title":"Standalone setup","content":"One of the steps in the integration checklist is to set up your test standalone terminals. This involves making your test terminals ready for standalone use, optionally configuring a refund passcode and tipping feature. There are two ways to do these tasks:\n\nFrom your Customer Area\nUsing API calls\n\nRequirements\nBefore you begin, take into account the following requirements and preparations.\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nStandalone .\n\n\nAPI credentials\nTo set up your terminal using API calls, you must have an API credential with an API key and the following roles: Management API\u2014Terminal settings read and write Management API\u2014Terminal Advanced settings read and write If in addition to a standalone solution, you also have a Terminal API integration with cloud-based communications, you can use the existing API key that you use for Terminal API requests.\n\n\nCustomer Area roles\nTo set up your terminal from the Customer Area, you need the following roles: Merchant POS Terminal Management roleMerchant POS Terminal View role\n\n\nLimitations\nNote the following: In Quebec, Canada, your tipping configuration needs to comply with local regulations.\n\n\nHardware\nA standalone payment terminal.\n\n\nSetup steps\nWhen going live, you need to set up your live standalone terminals in the same way as you did for your test terminals.\n\n\n\nSet up standalone\nYou can make your terminals ready for standalone use in your Customer Area or using an API call.\n\n\n    \n        \n        \n    \n\n\nConfigure tipping\nIt 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.\nTo 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.\n\n\n\n\n\n\n\n\n\n\nTipping without options:  \nTipping with percentage options:  \nPercentage and calculated tip amounts:  \n\n\n\nYou can configure tipping either from your Customer Area or by using the Management API.\n\n\n    \n        \n        \n    \n\n\nConfigure compliant tipping in Quebec, Canada\nA regulation in Quebec, Canada requires tips to be calculated on pre-tax amounts. To facilitate compliance with this regulation, we recommend choosing one of the following tipping options:\n\nThe terminal asks the shopper to enter the tip manually.\nThe terminal shows predefined tipping options for specific CAD amounts and the option to enter a custom tip amount.\n\nTo configure tipping option to facilitate compliance with regulations in Quebec, Canada:\n\nDecide what method you want to use: let the shopper enter a tip, or show predefined fixed amounts.\nSet up tipping in the same way as described under configure tipping, but:\n\n\n    \n        \n        \n    \n\n\nAt Enable standalone tipping select Enabled.\nSelect Save.\n\nConfigure refund passcode\nBecause making refunds on standalone payment terminals is risky, you can enable a 6-digit passcode needed to initiate refunds. You set up the Refunds passcode in addition to the Transactions passcode, which means that you need to enter both to initiate a refund.\nYou can configure this in your Customer Area or using an API call.\n\n\n    \n        \n        \n    \n\n\nPayment facilitators\nIf you are a payment facilitator, card schemes require you to provide certain data about your sub-merchant with each transaction. That is because your sub-merchant is considered the Merchant of Record when you facilitate a transaction.\nAdyen automatically adds certain sub-merchant data to transactions that you facilitate. To supply the remaining data, you must add that data to the configuration of the sub-merchant's store.\nTesting\nFor information on how you can make test payments and refunds, see testing your integration.\nAny test transactions you make, will appear in your Customer Area, under Transactions &gt; Payments.\nSee also\n\n\n                    Use a standalone terminal\n                \n","type":"page","locale":"en","boost":16,"hierarchy":{"lvl0":"Home","lvl1":"In-person payments","lvl2":"Standalone solution","lvl3":"Build a standalone solution","lvl4":"Standalone setup"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/","lvl1":"https:\/\/docs.adyen.com\/point-of-sale","lvl2":"https:\/\/docs.adyen.com\/point-of-sale\/standalone","lvl3":"https:\/\/docs.adyen.com\/point-of-sale\/standalone\/standalone-build","lvl4":"\/point-of-sale\/standalone\/standalone-build\/set-up-standalone"},"levels":5,"category":"In-person payments","category_color":"green","tags":["Standalone","setup"]},"articleFiles":{"configure-tipping.js":"<p alt=\"\">configure-tipping.js<\/p>","terminalsettings-request-2353060713.js":"<p alt=\"\">terminalsettings-request-2353060713.js<\/p>","terminalsettings-request-2924817659.js":"<p alt=\"\">terminalsettings-request-2924817659.js<\/p>"}}
