{"title":"Log in and log out","category":"default","creationDate":1779706500,"content":"<p>If you want to use Terminal API requests to retrieve transaction totals of a terminal or reconcile balance mismatches, you must first make a Terminal API request to log in to the terminal.<\/p>\n<p>This login request can additionally mark events like a change of operator or the start of a new shift, so that you can get the totals by operator or shift.<\/p>\n<p>The login request does not authenticate the operator.<\/p>\n<h2>Requirements<\/h2>\n<p>Before you begin, take into account the following requirements.<\/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\/design-your-integration\/terminal-api\">Terminal API<\/a> integration with payment terminals.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"login-request\">Log in to the terminal<\/h2>\n<ol>\n<li>\n<p>Make a <a href=\"\/point-of-sale\/design-your-integration\/terminal-api\">Terminal API<\/a> login request, specifying:<\/p>\n<ul>\n<li>\n<p>The standard <a href=\"\/point-of-sale\/design-your-integration\/terminal-api#request-message-header\">\n  <code>SaleToPOIRequest.MessageHeader<\/code>\n<\/a> object, with <code>MessageClass<\/code> set to <strong>Service<\/strong> and <code>MessageCategory<\/code> set to <strong>Login<\/strong>.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>ProtocolVersion<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><strong>3.0<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageClass<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>Service<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageCategory<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>Login<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageType<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>Request<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>ServiceID<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (<code>POIID<\/code>) being used.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>SaleID<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Your unique ID for the POS system component to send this request from.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>POIID<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The unique ID of the terminal to send this request to. Format: <em>[device model]-[serial number]<\/em>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n<p>The  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/login\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">LoginRequest<\/a> object, with:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">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;\"><code>DateTime<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The date and time in UTC format.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>SaleSoftware<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">An object with the manufacturer, application name, software version, and certification code of the sale system.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>OperatorLanguage<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The language of the operator in two-character <a href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639_language_codes\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">ISO 639-1<\/a> format. For example, <span translate=\"no\"><strong>en<\/strong><\/span> for English.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>OperatorID<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">Your identification of the operator.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>SaleTerminalData.TotalsGroupID<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">Your identification of a group of transactions, for reconciliation purposes.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>ShiftNumber<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">Your identification of the shift.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"''\" :id=\"'log-in-and-log-out_0'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{  \\n   \\\"SaleToPOIRequest\\\":{  \\n      \\\"MessageHeader\\\":{  \\n         \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n         \\\"MessageClass\\\":\\\"Service\\\",\\n         \\\"MessageCategory\\\":\\\"Login\\\",\\n         \\\"MessageType\\\":\\\"Request\\\",\\n         \\\"ServiceID\\\":\\\"0403105031\\\",\\n         \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n         \\\"POIID\\\":\\\"P400Plus-275008565\\\"\\n      },\\n      \\\"LoginRequest\\\":{  \\n         \\\"DateTime\\\":\\\"2018-04-03T08:50:31+00:00\\\",\\n         \\\"SaleSoftware\\\":{  \\n            \\\"ManufacturerID\\\":\\\"Adyen\\\",\\n            \\\"ApplicationName\\\":\\\"TestScripts\\\",\\n            \\\"SoftwareVersion\\\":\\\"1.0\\\",\\n            \\\"CertificationCode\\\":\\\"\\\"\\n         },\\n         \\\"SaleTerminalData\\\":{  \\n            \\\"TotalsGroupID\\\":\\\"GroupA\\\"\\n         },\\n         \\\"OperatorLanguage\\\":\\\"en\\\",\\n         \\\"OperatorID\\\":\\\"John\\\"\\n      }\\n   }\\n}\"},{\"language\":\"java\",\"tabTitle\":\"Java\",\"content\":\"String serviceID = \\\"YOUR_UNIQUE_ATTEMPT_ID\\\";\\nString saleID = \\\"YOUR_CASH_REGISTER_ID\\\";\\nString POIID = \\\"YOUR_TERMINAL_ID\\\";\\n\\nSaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nmessageHeader.setProtocolVersion(\\\"3.0\\\");\\nmessageHeader.setMessageClass( MessageClassType.SERVICE );\\nmessageHeader.setMessageCategory( MessageCategoryType.LOGIN );\\nmessageHeader.setMessageType( MessageType.REQUEST );\\nmessageHeader.setServiceID(serviceID);\\nmessageHeader.setSaleID(saleID);\\nmessageHeader.setPOIID(POIID);\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nLoginRequest loginRequest = new LoginRequest();\\nloginRequest.setDateTime(\\\"2018-04-03T08:50:31+00:00\\\");\\nSaleSoftware saleSoftware = new SaleSoftware();\\nsaleSoftware.setManufacturerID(\\\"Adyen\\\");\\nsaleSoftware.setApplicationName(\\\"TestScripts\\\");\\nsaleSoftware.setSoftwareVersion(\\\"1.0\\\");\\nsaleSoftware.setCertificationCode(\\\"\\\");\\nloginRequest.setSaleSoftware(saleSoftware);\\n\\nSaleTerminalData saleTerminalData = new SaleTerminalData();\\nsaleTerminalData.setTotalsGroupID(\\\"GroupA\\\");\\nloginRequest.setSaleTerminalData(saleTerminalData);\\nloginRequest.setOperatorLanguage(\\\"en\\\");\\nloginRequest.setOperatorID(\\\"John\\\");\\nsaleToPOIRequest.setLoginRequest(loginRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>In the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/login#responses-200-Response\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">LoginResponse<\/a>, check the following:<\/p>\n<ul>\n<li><code>Response.Result<\/code>: <span translate=\"no\"><strong>Success<\/strong><\/span> indicates that you logged in to the terminal.<\/li>\n<li><code>POIStatus<\/code>: Indicates if the terminal is ready for use.<\/li>\n<\/ul>\n<pre><code class=\"language-json\">{\n  \"SaleToPOIResponse\":{\n     \"LoginResponse\":{\n        \"POISystemData\":{\n           \"POISoftware\":{\n              \"CertificationCode\":\"\",\n              \"SoftwareVersion\":\"adyen_423314\",\n              \"ManufacturerID\":\"Adyen\",\n              \"ApplicationName\":\"Nexo\"\n           },\n           \"DateTime\":\"2018-04-03T08:50:23.000Z\",\n           \"POIStatus\":{\n              \"CommunicationOKFlag\":true,\n              \"GlobalStatus\":\"OK\"\n           }\n        },\n        \"Response\":{\n           \"Result\":\"Success\"\n        }\n     },\n     \"MessageHeader\":{\n        \"ProtocolVersion\":\"3.0\",\n        \"SaleID\":\"POSSystemID12345\",\n        \"MessageClass\":\"Service\",\n        \"MessageCategory\":\"Login\",\n        \"ServiceID\":\"0403105031\",\n        \"POIID\":\"P400Plus-275008565\",\n        \"MessageType\":\"Response\"\n     }\n  }\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>After logging in, the terminal saves the provided values. The values remain in effect until a new login request is processed for the same terminal, or until you log out from this terminal.<\/p>\n<h2 id=\"logout-request\">Log out from the terminal<\/h2>\n<ol>\n<li>\n<p>Make a <a href=\"\/point-of-sale\/design-your-integration\/terminal-api\">Terminal API<\/a> logout request, specifying:<\/p>\n<ul>\n<li>\n<p>The standard <a href=\"\/point-of-sale\/design-your-integration\/terminal-api#request-message-header\">\n  <code>SaleToPOIRequest.MessageHeader<\/code>\n<\/a> object, with <code>MessageClass<\/code> set to <strong>Service<\/strong> and <code>MessageCategory<\/code> set to <strong>Logout<\/strong>.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>ProtocolVersion<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><strong>3.0<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageClass<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>Service<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageCategory<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>Logout<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageType<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>Request<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>ServiceID<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (<code>POIID<\/code>) being used.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>SaleID<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Your unique ID for the POS system component to send this request from.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>POIID<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The unique ID of the terminal to send this request to. Format: <em>[device model]-[serial number]<\/em>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n<p>An empty  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/logout\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">LogoutRequest<\/a> object.<\/p>\n<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"''\" :id=\"'log-in-and-log-out_1'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n   \\\"SaleToPOIRequest\\\":{\\n      \\\"MessageHeader\\\":{\\n         \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n         \\\"MessageClass\\\":\\\"Service\\\",\\n         \\\"MessageCategory\\\":\\\"Logout\\\",\\n         \\\"MessageType\\\":\\\"Request\\\",\\n         \\\"ServiceID\\\":\\\"0403105613\\\",\\n         \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n         \\\"POIID\\\":\\\"P400Plus-275008565\\\"\\n      },\\n      \\\"LogoutRequest\\\":{\\n\\n      }\\n   }\\n}\"},{\"language\":\"java\",\"tabTitle\":\"Java\",\"content\":\"String serviceID = \\\"YOUR_UNIQUE_ATTEMPT_ID\\\";\\nString saleID = \\\"YOUR_CASH_REGISTER_ID\\\";\\nString POIID = \\\"YOUR_TERMINAL_ID\\\";\\n\\nSaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nmessageHeader.setProtocolVersion(\\\"3.0\\\");\\nmessageHeader.setMessageClass( MessageClassType.SERVICE );\\nmessageHeader.setMessageCategory( MessageCategoryType.LOGOUT );\\nmessageHeader.setMessageType( MessageType.REQUEST );\\nmessageHeader.setServiceID(serviceID);\\nmessageHeader.setSaleID(saleID);\\nmessageHeader.setPOIID(POIID);\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nLogoutRequest logoutRequest = new LogoutRequest();\\nsaleToPOIRequest.setLogoutRequest(logoutRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>In the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/logout#responses-200-Response\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">LogoutResponse<\/a>, check the following:<\/p>\n<ul>\n<li><code>Response.Result<\/code>: <span translate=\"no\"><strong>Success<\/strong><\/span> indicates that you logged out from the terminal.<\/li>\n<\/ul>\n<pre><code class=\"language-json\">{\n  \"SaleToPOIResponse\":{\n     \"LogoutResponse\":{\n        \"Response\":{\n           \"Result\":\"Success\"\n        }\n     },\n     \"MessageHeader\":{\n        \"ProtocolVersion\":\"3.0\",\n        \"SaleID\":\"POSSystemID12345\",\n        \"MessageClass\":\"Service\",\n        \"MessageCategory\":\"Logout\",\n        \"ServiceID\":\"0403105613\",\n        \"POIID\":\"P400Plus-275008565\",\n        \"MessageType\":\"Response\"\n     }\n  }\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<h2>See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/point-of-sale\/reconciling-totals\/retrieve-totals-from-the-terminal\"\n                        target=\"_self\"\n                        >\n                    Retrieve totals from a terminal\n                <\/a><\/li><li><a href=\"\/point-of-sale\/reconciling-totals\/reconcile-a-balance-mismatch\"\n                        target=\"_self\"\n                        >\n                    Reconcile a balance mismatch\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/point-of-sale\/reconciling-totals\/log-in-and-log-out","articleFields":{"description":"Log in your terminal and begin processing payments. Log out of your terminal\u00a0when changing operator, or at the end of a shift.","id":"36196842","type":"page","_expandable":{"operations":""},"status":"current","last_edit_on":"20-08-2019 11:45"},"algolia":{"url":"https:\/\/docs.adyen.com\/point-of-sale\/reconciling-totals\/log-in-and-log-out","title":"Log in and log out","content":"If you want to use Terminal API requests to retrieve transaction totals of a terminal or reconcile balance mismatches, you must first make a Terminal API request to log in to the terminal.\nThis login request can additionally mark events like a change of operator or the start of a new shift, so that you can get the totals by operator or shift.\nThe login request does not authenticate the operator.\nRequirements\nBefore you begin, take into account the following requirements.\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nA Terminal API integration with payment terminals.\n\n\n\nLog in to the terminal\n\n\nMake a Terminal API login request, specifying:\n\n\nThe standard \n  SaleToPOIRequest.MessageHeader\n object, with MessageClass set to Service and MessageCategory set to Login.\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nProtocolVersion\n\n3.0\n\n\nMessageClass\n\nService\n\n\nMessageCategory\n\nLogin\n\n\nMessageType\n\nRequest\n\n\nServiceID\n\nYour unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (POIID) being used.\n\n\nSaleID\n\nYour unique ID for the POS system component to send this request from.\n\n\nPOIID\n\nThe unique ID of the terminal to send this request to. Format: [device model]-[serial number].\n\n\n\n\n\nThe  LoginRequest object, with:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nDateTime\n\nThe date and time in UTC format.\n\n\nSaleSoftware\n\nAn object with the manufacturer, application name, software version, and certification code of the sale system.\n\n\nOperatorLanguage\n\nThe language of the operator in two-character ISO 639-1 format. For example, en for English.\n\n\nOperatorID\n\nYour identification of the operator.\n\n\nSaleTerminalData.TotalsGroupID\n\nYour identification of a group of transactions, for reconciliation purposes.\n\n\nShiftNumber\n\nYour identification of the shift.\n\n\n\n\n\n\n\n\n\n\nIn the  LoginResponse, check the following:\n\nResponse.Result: Success indicates that you logged in to the terminal.\nPOIStatus: Indicates if the terminal is ready for use.\n\n{\n  \"SaleToPOIResponse\":{\n     \"LoginResponse\":{\n        \"POISystemData\":{\n           \"POISoftware\":{\n              \"CertificationCode\":\"\",\n              \"SoftwareVersion\":\"adyen_423314\",\n              \"ManufacturerID\":\"Adyen\",\n              \"ApplicationName\":\"Nexo\"\n           },\n           \"DateTime\":\"2018-04-03T08:50:23.000Z\",\n           \"POIStatus\":{\n              \"CommunicationOKFlag\":true,\n              \"GlobalStatus\":\"OK\"\n           }\n        },\n        \"Response\":{\n           \"Result\":\"Success\"\n        }\n     },\n     \"MessageHeader\":{\n        \"ProtocolVersion\":\"3.0\",\n        \"SaleID\":\"POSSystemID12345\",\n        \"MessageClass\":\"Service\",\n        \"MessageCategory\":\"Login\",\n        \"ServiceID\":\"0403105031\",\n        \"POIID\":\"P400Plus-275008565\",\n        \"MessageType\":\"Response\"\n     }\n  }\n}\n\n\nAfter logging in, the terminal saves the provided values. The values remain in effect until a new login request is processed for the same terminal, or until you log out from this terminal.\nLog out from the terminal\n\n\nMake a Terminal API logout request, specifying:\n\n\nThe standard \n  SaleToPOIRequest.MessageHeader\n object, with MessageClass set to Service and MessageCategory set to Logout.\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nProtocolVersion\n\n3.0\n\n\nMessageClass\n\nService\n\n\nMessageCategory\n\nLogout\n\n\nMessageType\n\nRequest\n\n\nServiceID\n\nYour unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (POIID) being used.\n\n\nSaleID\n\nYour unique ID for the POS system component to send this request from.\n\n\nPOIID\n\nThe unique ID of the terminal to send this request to. Format: [device model]-[serial number].\n\n\n\n\n\nAn empty  LogoutRequest object.\n\n\n\n\n\n\n\nIn the  LogoutResponse, check the following:\n\nResponse.Result: Success indicates that you logged out from the terminal.\n\n{\n  \"SaleToPOIResponse\":{\n     \"LogoutResponse\":{\n        \"Response\":{\n           \"Result\":\"Success\"\n        }\n     },\n     \"MessageHeader\":{\n        \"ProtocolVersion\":\"3.0\",\n        \"SaleID\":\"POSSystemID12345\",\n        \"MessageClass\":\"Service\",\n        \"MessageCategory\":\"Logout\",\n        \"ServiceID\":\"0403105613\",\n        \"POIID\":\"P400Plus-275008565\",\n        \"MessageType\":\"Response\"\n     }\n  }\n}\n\n\nSee also\n\n\n                    Retrieve totals from a terminal\n                \n                    Reconcile a balance mismatch\n                \n","type":"page","locale":"en","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"In-person payments","lvl2":"Reconciling totals","lvl3":"Log in and log out"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/","lvl1":"https:\/\/docs.adyen.com\/point-of-sale","lvl2":"https:\/\/docs.adyen.com\/point-of-sale\/reconciling-totals","lvl3":"\/point-of-sale\/reconciling-totals\/log-in-and-log-out"},"levels":4,"category":"In-person payments","category_color":"green","tags":[]},"articleFiles":{"log-in-and-log-out_0.json":"<p alt=\"\">log-in-and-log-out_0.json<\/p>","log-in-and-log-out_1.json":"<p alt=\"\">log-in-and-log-out_1.json<\/p>"}}
