{"title":"Board the terminal","category":"default","creationDate":1559311680,"content":"<p>To make a terminal ready to accept payments, it needs to be assigned to your store, and then boarded. Often the terminal is <a href=\"\/point-of-sale\/managing-terminals\/assign-terminals\">already assigned to your store<\/a> and all you need to do is confirm. But it is also possible that you need to <a href=\"#store_list\">select your store<\/a> from a list on the terminal display.<\/p>\n<p>If you have a large number of stores, you can enable your store staff to initiate the boarding process with a <a href=\"#board-with-otp\">one-time password<\/a> (OTP).<\/p>\n<p>The boarding process can take up to 30 minutes.<\/p>\n<h2>Requirements<\/h2>\n<p>Before you begin, take into account the following requirements, limitations, 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 <a href=\"\/point-of-sale\/basic-tapi-integration\/\">Terminal API integration<\/a> with payment terminals, or a <a href=\"\/point-of-sale\/standalone\">standalone solution<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/development-resources\/api-credentials\/roles\/\">API credential roles<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">To use <a href=\"#board-with-otp\">boarding with a one-time password<\/a>, you need an API credential with an API key and the following roles:<ul><li markdown=\"1\"><strong>Management API \u2014 Terminal actions read<\/strong><\/li> <li markdown=\"1\"><strong>Management API - Reassign terminal to an entity<\/strong><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Limitations<\/strong><\/td>\n<td style=\"text-align: left;\">Take into account the following limitations: <ul><li markdown=\"1\">A terminal will not be able to board unless the merchant account or store has at least one payment method configured.<\/li><li markdown=\"1\">Boarding with a one-time password is only possible with integrated terminals on software version 1.94 or later.<\/li><li markdown=\"1\">Standalone terminals can only be boarded <a href=\"#manually-board-your-terminal\">manually<\/a>.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">Before you begin: <ul><li markdown=\"1\">To enable boarding with a one-time password, contact your Account Manager or our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a>. If you want your logo to show on the one-time password screen, ask them to configure it.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"manually-board-your-terminal\">Manually board your terminal<\/h2>\n<p>To manually board a terminal, choose the procedure for the terminal type below that applies to your use case.  <\/p>\n<h3>Non-Android terminals<\/h3>\n<ol>\n<li>\n<p>Switch on the terminal. During startup, the display turns on and off a few times.<\/p>\n<\/li>\n<li>\n<p>If the display shows <strong>Configure network<\/strong>, <a href=\"\/point-of-sale\/pos-troubleshooting\/connecting-your-terminal-to-the-internet\">connect the terminal to the internet<\/a>.<\/p>\n<\/li>\n<li>\n<p>On the terminal, select <strong>Board the terminal<\/strong>.<\/p>\n<\/li>\n<li>\n<p>Follow the instructions for your situation:<\/p>\n<table>\n<thead>\n<tr>\n<th>Situation<\/th>\n<th>Instructions<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>The <b>Board the terminal<\/b> button doesn't show.<\/td>\n<td>The terminal is boarded already. If you recently reassigned the terminal to a different store, wait until the next synchronization with the Adyen platform (on average every three hours) and try again.<\/td>\n<\/tr>\n<tr>\n<td>The display shows a list of stores. <a id=\"store_list\"><\/a><\/td>\n<td><ol><li markdown=\"1\">Find your store; you can <b>Search by city<\/b> and\/or scroll the list.<\/li><li markdown=\"1\">Select your store.<\/li><li markdown=\"1\">Select <b>Confirm<\/b>.<\/li><\/ol><\/td>\n<\/tr>\n<tr>\n<td>The display shows one store.<\/td>\n<td>Select <b>Confirm<\/b> to accept the store that the terminal was assigned to. <p>If this is not the correct store, reassign the terminal in the Customer Area and try again.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ol>\n<p>The terminal reboots one or more times. Your terminal is now boarded and ready to process payments.<\/p>\n<h3>Android terminals<\/h3>\n<ol>\n<li>\n<p>Switch on the terminal. During startup, the display turns on and off a few times.<\/p>\n<\/li>\n<li>\n<p>Select your preferred <strong>Language<\/strong> from the drop-down list. <\/p>\n<\/li>\n<li>\n<p>If the display shows <strong>Setup Wi-Fi<\/strong>, <a href=\"\/point-of-sale\/pos-troubleshooting\/connecting-your-terminal-to-the-internet\">connect the terminal to the internet<\/a>.<\/p>\n<\/li>\n<li>\n<p>Follow the instructions for your situation:<\/p>\n<table>\n<thead>\n<tr>\n<th>Situation<\/th>\n<th>Instructions<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>The display shows one store.<\/td>\n<td>Select <b>Confirm<\/b> to accept the store that the terminal was assigned to, or select the pencil icon <i class=\"adl-icon-edit\"><\/i> and chose a store from the list on the display. <p>If this is not the correct store, and there is no pencil icon <i class=\"adl-icon-edit\"><\/i>, reassign the terminal in the Customer Area and try again.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ol>\n<p>The terminal reboots one or more times. Your terminal is now boarded and ready to process payments.<\/p>\n<h2 id=\"board-with-otp\">Board your terminal with a one-time password<\/h2>\n<p>You can use the one-time password (OTP) to board payment terminals that are still in the inventory at the company or merchant level. This is convenient if you have a large number of stores and do not want to assign terminals in your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a> before shipping them. It removes the risk of assigning a terminal to the wrong store, because the terminals are boarded on the spot.<\/p>\n<p>Because boarding with a one-time password consists of several Management API calls, you need to implement logic in your system to trigger these calls. For example, when your store personnel scans the barcode on the terminal screen, your system gets the ID of the terminal and assigns the terminal to the correct store.<\/p>\n<h3>How it works<\/h3>\n<p>The one-time password boarding flow is as follows:<\/p>\n<ol>\n<li>Store staff turns on the payment terminal and connects the terminal to the network.<\/li>\n<li>Store staff scans the barcode on the terminal screen or enters the terminal's one-time password.<\/li>\n<li>You make an API call with the one-time password to get the ID of the terminal.<\/li>\n<li>You make an API call to assign the terminal with that ID to the store.<\/li>\n<li>After being assigned, the terminal downloads the configuration and is ready to process transactions.<\/li>\n<\/ol>\n<h3>Board the terminal<\/h3>\n<p>To board your terminal with a one-time password:<\/p>\n<ol>\n<li>\n<p>Make a GET  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Management\/latest\/get\/terminals\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/terminals<\/a> request, specifying the following query parameter to get a list of terminals associated with the one-time password:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Query parameter<\/th>\n<th style=\"text-align: left;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Management\/latest\/get\/terminals#query-otpQuery\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">otpQuery<\/a><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">Set this to the one-time password. The call will return one or more terminals associated with the specified one-time password. If this query parameter is used, other query parameters are ignored.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Get the terminal associated with the one-time password'\" :id=\"'get-the-terminal-associated-with-the-one-time-password-3468877398'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl  https:\\\/\\\/management-test.adyen.com\\\/v3\\\/terminals?otpQuery={ONE_TIME_PASSWORD} \\\\\\n-H 'x-API-key: ADYEN_API_KEY' \\\\\\n-X GET&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.service.management.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\\/\\\/ Make the request\\nTerminalsTerminalLevelApi service = new TerminalsTerminalLevelApi(client);\\nListTerminalsResponse response = service.listTerminals(\\&quot;String\\&quot;, \\&quot;String\\&quot;, \\&quot;String\\&quot;, \\&quot;String\\&quot;, \\&quot;String\\&quot;, \\&quot;String\\&quot;, 1, 1, null);&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Service\\\\Management\\\\TerminalsTerminalLevelApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n$requestOptions['queryParams'] = array('searchQuery' =&gt; 'string', 'otpQuery' =&gt; 'string', 'countries' =&gt; 'string', 'merchantIds' =&gt; 'string', 'storeIds' =&gt; 'string', 'brandModels' =&gt; 'string', 'pageNumber' =&gt; 'integer', 'pageSize' =&gt; 'integer');\\n\\n\\\/\\\/ Make the request\\n$service = new TerminalsTerminalLevelApi($client);\\n$response = $service-&gt;listTerminals($requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.3.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Service.Management;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Make the request\\nvar service = new TerminalsTerminalLevelService(client);\\nvar response = service.ListTerminals(searchQuery: \\&quot;string\\&quot;, otpQuery: \\&quot;string\\&quot;, countries: \\&quot;string\\&quot;, merchantIds: \\&quot;string\\&quot;, storeIds: \\&quot;string\\&quot;, brandModels: \\&quot;string\\&quot;, pageNumber: 1, pageSize: 1);&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, ManagementAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Make the request\\nconst managementAPI = new ManagementAPI(client);\\nconst response = managementAPI.TerminalsTerminalLevelApi.listTerminals(\\&quot;string\\&quot;, \\&quot;string\\&quot;, \\&quot;string\\&quot;, \\&quot;string\\&quot;, \\&quot;string\\&quot;, \\&quot;string\\&quot;, 1, 1);&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.2.0\\nimport (\\n\\t\\&quot;context\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/management\\&quot;\\n)\\n\\nclient := adyen.NewClient(&amp;common.Config{\\n    ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Make the request\\nservice := client.Management()\\nreq := service.TerminalsTerminalLevelApi.ListTerminalsInput()\\nreq = req.SearchQuery(\\&quot;string\\&quot;).OtpQuery(\\&quot;string\\&quot;).Countries(\\&quot;string\\&quot;).MerchantIds(\\&quot;string\\&quot;).StoreIds(\\&quot;string\\&quot;).BrandModels(\\&quot;string\\&quot;).PageNumber(1).PageSize(1)res, httpRes, err := service.TerminalsTerminalLevelApi.ListTerminals(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\nquery_parameters = {\\n  \\&quot;searchQuery\\&quot; : \\&quot;string\\&quot;,\\n  \\&quot;otpQuery\\&quot; : \\&quot;string\\&quot;,\\n  \\&quot;countries\\&quot; : \\&quot;string\\&quot;,\\n  \\&quot;merchantIds\\&quot; : \\&quot;string\\&quot;,\\n  \\&quot;storeIds\\&quot; : \\&quot;string\\&quot;,\\n  \\&quot;brandModels\\&quot; : \\&quot;string\\&quot;,\\n  \\&quot;pageNumber\\&quot; : \\&quot;integer\\&quot;,\\n  \\&quot;pageSize\\&quot; : \\&quot;integer\\&quot;\\n}\\n\\nresult = adyen.management.terminals_terminal_level_api.list_terminals(query_parameters=query_parameters)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.2.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\nquery_params = {\\n  :searchQuery =&gt; 'string',\\n  :otpQuery =&gt; 'string',\\n  :countries =&gt; 'string',\\n  :merchantIds =&gt; 'string',\\n  :storeIds =&gt; 'string',\\n  :brandModels =&gt; 'string',\\n  :pageNumber =&gt; 'integer',\\n  :pageSize =&gt; 'integer'\\n}\\n\\nresult = adyen.management.terminals_terminal_level_api.list_terminals(query_params: query_params)&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, ManagementAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Make the request\\nconst managementAPI = new ManagementAPI(client);\\nconst response = managementAPI.TerminalsTerminalLevelApi.listTerminals(\\&quot;string\\&quot;, \\&quot;string\\&quot;, \\&quot;string\\&quot;, \\&quot;string\\&quot;, \\&quot;string\\&quot;, \\&quot;string\\&quot;, 1, 1);&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>From the <code>data<\/code> array in the response, get the <code>id<\/code> of the payment terminal that is associated with the one-time password. You will need this ID to assign the terminal.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Details of the terminal associated with the one-time password'\" :id=\"''\" :code-data='[{\"language\":\"bash\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"_links\\\": {...},\\n    \\\"itemsTotal\\\": 1,\\n    \\\"pagesTotal\\\": 1,\\n    \\\"data\\\": [\\n        {\\n            \\\"id\\\": \\\"AMS1-000158204503066\\\",\\n            \\\"status\\\": \\\"onlineToday\\\",\\n            \\\"assigned\\\": false,\\n            \\\"companyAccount\\\": \\\"YOUR_TEST_COMPANY\\\",\\n            \\\"deviceModel\\\": \\\"AMS1\\\",\\n            \\\"serialNumber\\\": \\\"000158204503066\\\",\\n            \\\"firmwareVersion\\\": \\\"Castles_Android 1.94.4\\\",\\n            \\\"iccid\\\": \\\"6006491286999921374\\\",\\n            \\\"lastActivityDateTime\\\": \\\"2023-09-13T14:46:34+02:00\\\",\\n            \\\"lastTransactionDateTime\\\": \\\"2023-09-04T13:04:21+02:00\\\",\\n            \\\"wifiIp\\\": \\\"198.51.100.1\\\",\\n            \\\"wifiMac\\\": \\\"C4:6E:00:16:A1:01\\\"\\n        }\\n    ]\\n }\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Management\/latest\/post\/terminals\/(terminalId)\/reassign\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/terminals\/{terminalId}\/reassign<\/a> request using the <code>id<\/code> of the terminal in the URL, to <a href=\"\/point-of-sale\/automating-terminal-management\/assign-terminals-api#assign-terminals\">assign the terminal<\/a> to your store. The terminal automatically boards to the store that you specified in the assignment request.<\/p>\n<p>For this call, you need to know the <a href=\"\/point-of-sale\/automating-terminal-management\/assign-terminals-api#get-stores\">unique identifier<\/a> of the store that you want to assign the terminal to.<\/p>\n<\/li>\n<li>\n<p>The terminal automatically downloads the configuration.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"reassign-with-otp\">Reassign boarded terminals with a one-time password<\/h2>\n<p>If you have a terminal that was already boarded to a store with a one-time password, and now you want to use it for a different store, you must reassign the terminal. Otherwise, the terminal continues processing payments over the old store.<\/p>\n<p>To reassign and re-board terminals with a one-time password:<\/p>\n<ol>\n<li>On the terminal, store staff selects <strong>Settings<\/strong> &gt; <strong>Configuration<\/strong> &gt; <strong>Reassign device<\/strong>.<\/li>\n<li>Store staff scans the barcode that appears on the terminal screen, or enters the one-time password of the terminal.<\/li>\n<li>Using the logic that you implemented, your system makes an API call with the one-time password to get the ID of the terminal, and an API call to reassing the terminal.<\/li>\n<li>The terminal reboots and is assigned to the new store.<\/li>\n<\/ol>\n<div class=\"notices green\">\n<p>If you have <a href=\"\/point-of-sale\/diagnostics\/check-cloud-connection\/#check-cloud-on-terminal\">WebSockets<\/a> disabled, the reassignment can take up to three hours.<\/p>\n<\/div>\n<h2 id=\"see-also\">See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/point-of-sale\/managing-terminals\/assign-terminals\"\n                        target=\"_self\"\n                        >\n                    Assign terminals in the Customer Area\n                <\/a><\/li><li><a href=\"\/point-of-sale\/automating-terminal-management\/assign-terminals-api\"\n                        target=\"_self\"\n                        >\n                    Assign terminals using API requests\n                <\/a><\/li><li><a href=\"\/point-of-sale\/pos-troubleshooting\"\n                        target=\"_self\"\n                        >\n                    Troubleshooting terminals\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/point-of-sale\/managing-terminals\/board-terminal","articleFields":{"description":"Register your payment terminal with Adyen."},"algolia":{"url":"https:\/\/docs.adyen.com\/point-of-sale\/managing-terminals\/board-terminal","title":"Board the terminal","content":"To make a terminal ready to accept payments, it needs to be assigned to your store, and then boarded. Often the terminal is already assigned to your store and all you need to do is confirm. But it is also possible that you need to select your store from a list on the terminal display.\nIf you have a large number of stores, you can enable your store staff to initiate the boarding process with a one-time password (OTP).\nThe boarding process can take up to 30 minutes.\nRequirements\nBefore you begin, take into account the following requirements, limitations, and preparations.\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nA Terminal API integration with payment terminals, or a standalone solution.\n\n\nAPI credential roles\nTo use boarding with a one-time password, you need an API credential with an API key and the following roles:Management API \u2014 Terminal actions read Management API - Reassign terminal to an entity\n\n\nLimitations\nTake into account the following limitations: A terminal will not be able to board unless the merchant account or store has at least one payment method configured.Boarding with a one-time password is only possible with integrated terminals on software version 1.94 or later.Standalone terminals can only be boarded manually.\n\n\nSetup steps\nBefore you begin: To enable boarding with a one-time password, contact your Account Manager or our Support Team. If you want your logo to show on the one-time password screen, ask them to configure it.\n\n\n\nManually board your terminal\nTo manually board a terminal, choose the procedure for the terminal type below that applies to your use case.  \nNon-Android terminals\n\n\nSwitch on the terminal. During startup, the display turns on and off a few times.\n\n\nIf the display shows Configure network, connect the terminal to the internet.\n\n\nOn the terminal, select Board the terminal.\n\n\nFollow the instructions for your situation:\n\n\n\nSituation\nInstructions\n\n\n\n\nThe Board the terminal button doesn't show.\nThe terminal is boarded already. If you recently reassigned the terminal to a different store, wait until the next synchronization with the Adyen platform (on average every three hours) and try again.\n\n\nThe display shows a list of stores. \nFind your store; you can Search by city and\/or scroll the list.Select your store.Select Confirm.\n\n\nThe display shows one store.\nSelect Confirm to accept the store that the terminal was assigned to. If this is not the correct store, reassign the terminal in the Customer Area and try again.\n\n\n\n\n\nThe terminal reboots one or more times. Your terminal is now boarded and ready to process payments.\nAndroid terminals\n\n\nSwitch on the terminal. During startup, the display turns on and off a few times.\n\n\nSelect your preferred Language from the drop-down list. \n\n\nIf the display shows Setup Wi-Fi, connect the terminal to the internet.\n\n\nFollow the instructions for your situation:\n\n\n\nSituation\nInstructions\n\n\n\n\nThe display shows one store.\nSelect Confirm to accept the store that the terminal was assigned to, or select the pencil icon  and chose a store from the list on the display. If this is not the correct store, and there is no pencil icon , reassign the terminal in the Customer Area and try again.\n\n\n\n\n\nThe terminal reboots one or more times. Your terminal is now boarded and ready to process payments.\nBoard your terminal with a one-time password\nYou can use the one-time password (OTP) to board payment terminals that are still in the inventory at the company or merchant level. This is convenient if you have a large number of stores and do not want to assign terminals in your Customer Area before shipping them. It removes the risk of assigning a terminal to the wrong store, because the terminals are boarded on the spot.\nBecause boarding with a one-time password consists of several Management API calls, you need to implement logic in your system to trigger these calls. For example, when your store personnel scans the barcode on the terminal screen, your system gets the ID of the terminal and assigns the terminal to the correct store.\nHow it works\nThe one-time password boarding flow is as follows:\n\nStore staff turns on the payment terminal and connects the terminal to the network.\nStore staff scans the barcode on the terminal screen or enters the terminal's one-time password.\nYou make an API call with the one-time password to get the ID of the terminal.\nYou make an API call to assign the terminal with that ID to the store.\nAfter being assigned, the terminal downloads the configuration and is ready to process transactions.\n\nBoard the terminal\nTo board your terminal with a one-time password:\n\n\nMake a GET  \/terminals request, specifying the following query parameter to get a list of terminals associated with the one-time password:\n\n\n\nQuery parameter\nRequired\nDescription\n\n\n\n\n otpQuery\n\nSet this to the one-time password. The call will return one or more terminals associated with the specified one-time password. If this query parameter is used, other query parameters are ignored.\n\n\n\n\n\n\n\n\nFrom the data array in the response, get the id of the payment terminal that is associated with the one-time password. You will need this ID to assign the terminal.\n\n\n\n\n\nMake a POST  \/terminals\/{terminalId}\/reassign request using the id of the terminal in the URL, to assign the terminal to your store. The terminal automatically boards to the store that you specified in the assignment request.\nFor this call, you need to know the unique identifier of the store that you want to assign the terminal to.\n\n\nThe terminal automatically downloads the configuration.\n\n\nReassign boarded terminals with a one-time password\nIf you have a terminal that was already boarded to a store with a one-time password, and now you want to use it for a different store, you must reassign the terminal. Otherwise, the terminal continues processing payments over the old store.\nTo reassign and re-board terminals with a one-time password:\n\nOn the terminal, store staff selects Settings &gt; Configuration &gt; Reassign device.\nStore staff scans the barcode that appears on the terminal screen, or enters the one-time password of the terminal.\nUsing the logic that you implemented, your system makes an API call with the one-time password to get the ID of the terminal, and an API call to reassing the terminal.\nThe terminal reboots and is assigned to the new store.\n\n\nIf you have WebSockets disabled, the reassignment can take up to three hours.\n\nSee also\n\n\n                    Assign terminals in the Customer Area\n                \n                    Assign terminals using API requests\n                \n                    Troubleshooting terminals\n                \n","type":"page","locale":"en","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"In-person payments","lvl2":"Manage your terminal fleet","lvl3":"Board the terminal"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/","lvl1":"https:\/\/docs.adyen.com\/point-of-sale","lvl2":"https:\/\/docs.adyen.com\/point-of-sale\/managing-terminals","lvl3":"\/point-of-sale\/managing-terminals\/board-terminal"},"levels":4,"category":"In-person payments","category_color":"green","tags":["Board","terminal"]},"articleFiles":{"get-the-terminal-associated-with-the-one-time-password-3468877398.js":"<p alt=\"\">get-the-terminal-associated-with-the-one-time-password-3468877398.js<\/p>"}}
