{"title":"Retrieve totals from the terminal","category":"default","creationDate":1779620071,"content":"<p>Using a Terminal API request, your POS app can retrieve totals from a payment terminal without starting a new reconciliation period. The result includes the total value and number of transactions by payment instrument type (such as card) and transaction type (such as credit or debit). You can filter and group the results on aspects like operator or shift number.<\/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=\"gettotalsrequest\">Get the totals of a terminal<\/h2>\n<ol>\n<li>\n<p><a href=\"\/point-of-sale\/reconciling-totals\/log-in-and-log-out\">Log in to the terminal<\/a>.<\/p>\n<\/li>\n<li>\n<p>Make a <a href=\"\/point-of-sale\/design-your-integration\/terminal-api\">Terminal API<\/a> get totals 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 <span translate=\"no\"><strong>Service<\/strong><\/span> and <code>MessageCategory<\/code> set to <span translate=\"no\"><strong>GetTotals<\/strong><\/span>.<\/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>GetTotals<\/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\/gettotals\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GetTotalsRequest<\/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>TotalDetails<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">Group the results by terminal (POIID), sale system, operator, shift number, or totals group.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>TotalFilter<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">Limit the results to the specified terminal (POIID), sale system, operator, shift number, or totals group.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n<p>Select the tabs to see some example requests.<\/p>\n\n<div id=\"tabmAjGU\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Totals for a terminal&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;Returns the totals for the specified terminal.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;&#039;\\&quot; :id=\\&quot;&#039;retrieve-totals-from-the-terminal_0&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;JSON\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n   \\\\\\&quot;SaleToPOIRequest\\\\\\&quot;:{\\\\n      \\\\\\&quot;MessageHeader\\\\\\&quot;:{\\\\n         \\\\\\&quot;ProtocolVersion\\\\\\&quot;:\\\\\\&quot;3.0\\\\\\&quot;,\\\\n         \\\\\\&quot;MessageClass\\\\\\&quot;:\\\\\\&quot;Service\\\\\\&quot;,\\\\n         \\\\\\&quot;MessageCategory\\\\\\&quot;:\\\\\\&quot;GetTotals\\\\\\&quot;,\\\\n         \\\\\\&quot;MessageType\\\\\\&quot;:\\\\\\&quot;Request\\\\\\&quot;,\\\\n         \\\\\\&quot;ServiceID\\\\\\&quot;:\\\\\\&quot;0518144235\\\\\\&quot;,\\\\n         \\\\\\&quot;SaleID\\\\\\&quot;:\\\\\\&quot;CashRegB3\\\\\\&quot;,\\\\n         \\\\\\&quot;POIID\\\\\\&quot;:\\\\\\&quot;P400Plus-275008565\\\\\\&quot;\\\\n      },\\\\n      \\\\\\&quot;GetTotalsRequest\\\\\\&quot;:{\\\\n         \\\\\\&quot;TotalFilter\\\\\\&quot;:{\\\\n            \\\\\\&quot;POIID\\\\\\&quot;:\\\\\\&quot;P400Plus-275008565\\\\\\&quot;\\\\n         }\\\\n      }\\\\n   }\\\\n}\\&quot;},{\\&quot;language\\&quot;:\\&quot;java\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;Java\\&quot;,\\&quot;content\\&quot;:\\&quot;String serviceID = \\\\\\&quot;YOUR_UNIQUE_ATTEMPT_ID\\\\\\&quot;;\\\\nString saleID = \\\\\\&quot;YOUR_CASH_REGISTER_ID\\\\\\&quot;;\\\\nString POIID = \\\\\\&quot;YOUR_TERMINAL_ID\\\\\\&quot;;\\\\n\\\\nSaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\\\nMessageHeader messageHeader = new MessageHeader();\\\\nmessageHeader.setProtocolVersion(\\\\\\&quot;3.0\\\\\\&quot;);\\\\nmessageHeader.setMessageClass( MessageClassType.SERVICE );\\\\nmessageHeader.setMessageCategory( MessageCategoryType.GET_TOTALS );\\\\nmessageHeader.setMessageType( MessageType.REQUEST );\\\\nmessageHeader.setServiceID(serviceID);\\\\nmessageHeader.setSaleID(saleID);\\\\nmessageHeader.setPOIID(POIID);\\\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\\\n\\\\nGetTotalsRequest getTotalsRequest = new GetTotalsRequest();\\\\nTotalFilter totalFilter = new TotalFilter();\\\\ntotalFilter.setPOIID(POIID);\\\\ngetTotalsRequest.setTotalFilter(totalFilter);\\\\nsaleToPOIRequest.setGetTotalsRequest(getTotalsRequest);\\\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\\&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&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Totals for a group&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;Returns the totals for a specific group of totals for the specified terminal.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;&#039;\\&quot; :id=\\&quot;&#039;retrieve-totals-from-the-terminal_1&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;JSON\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n  \\\\\\&quot;SaleToPOIRequest\\\\\\&quot;: {\\\\n    \\\\\\&quot;MessageHeader\\\\\\&quot;: {\\\\n      \\\\\\&quot;ProtocolVersion\\\\\\&quot;: \\\\\\&quot;3.0\\\\\\&quot;,\\\\n      \\\\\\&quot;MessageClass\\\\\\&quot;: \\\\\\&quot;Service\\\\\\&quot;,\\\\n      \\\\\\&quot;MessageCategory\\\\\\&quot;: \\\\\\&quot;GetTotals\\\\\\&quot;,\\\\n      \\\\\\&quot;MessageType\\\\\\&quot;: \\\\\\&quot;Request\\\\\\&quot;,\\\\n      \\\\\\&quot;ServiceID\\\\\\&quot;: \\\\\\&quot;0821163913\\\\\\&quot;,\\\\n      \\\\\\&quot;SaleID\\\\\\&quot;: \\\\\\&quot;CashRegB3\\\\\\&quot;,\\\\n      \\\\\\&quot;POIID\\\\\\&quot;: \\\\\\&quot;P400Plus-275008565\\\\\\&quot;\\\\n    },\\\\n    \\\\\\&quot;GetTotalsRequest\\\\\\&quot;: {\\\\n      \\\\\\&quot;TotalFilter\\\\\\&quot;: {\\\\n        \\\\\\&quot;POIID\\\\\\&quot;: \\\\\\&quot;P400Plus-275008565\\\\\\&quot;,\\\\n        \\\\\\&quot;TotalsGroupID\\\\\\&quot;: \\\\\\&quot;GroupA\\\\\\&quot;\\\\n      }\\\\n    }\\\\n  }\\\\n}\\&quot;},{\\&quot;language\\&quot;:\\&quot;java\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;Java\\&quot;,\\&quot;content\\&quot;:\\&quot;String serviceID = \\\\\\&quot;YOUR_UNIQUE_ATTEMPT_ID\\\\\\&quot;;\\\\nString saleID = \\\\\\&quot;YOUR_CASH_REGISTER_ID\\\\\\&quot;;\\\\nString POIID = \\\\\\&quot;YOUR_TERMINAL_ID\\\\\\&quot;;\\\\n\\\\nSaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\\\nMessageHeader messageHeader = new MessageHeader();\\\\nmessageHeader.setProtocolVersion(\\\\\\&quot;3.0\\\\\\&quot;);\\\\nmessageHeader.setMessageClass( MessageClassType.SERVICE );\\\\nmessageHeader.setMessageCategory( MessageCategoryType.GET_TOTALS );\\\\nmessageHeader.setMessageType( MessageType.REQUEST );\\\\nmessageHeader.setServiceID(serviceID);\\\\nmessageHeader.setSaleID(saleID);\\\\nmessageHeader.setPOIID(POIID);\\\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\\\n\\\\nGetTotalsRequest getTotalsRequest = new GetTotalsRequest();\\\\nTotalFilter totalFilter = new TotalFilter();\\\\ntotalFilter.setPOIID(POIID);\\\\ntotalFilter.setTotalsGroupID(\\\\\\&quot;GroupA\\\\\\&quot;);\\\\ngetTotalsRequest.setTotalFilter(totalFilter);\\\\nsaleToPOIRequest.setGetTotalsRequest(getTotalsRequest);\\\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\\&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&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Grouped by operator&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;Returns a list of totals for the specified terminal, grouped by operator.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;&#039;\\&quot; :id=\\&quot;&#039;retrieve-totals-from-the-terminal_2&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;JSON\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n  \\\\\\&quot;SaleToPOIRequest\\\\\\&quot;: {\\\\n    \\\\\\&quot;MessageHeader\\\\\\&quot;: {\\\\n      \\\\\\&quot;ProtocolVersion\\\\\\&quot;: \\\\\\&quot;3.0\\\\\\&quot;,\\\\n      \\\\\\&quot;MessageClass\\\\\\&quot;: \\\\\\&quot;Service\\\\\\&quot;,\\\\n      \\\\\\&quot;MessageCategory\\\\\\&quot;: \\\\\\&quot;GetTotals\\\\\\&quot;,\\\\n      \\\\\\&quot;MessageType\\\\\\&quot;: \\\\\\&quot;Request\\\\\\&quot;,\\\\n      \\\\\\&quot;ServiceID\\\\\\&quot;: \\\\\\&quot;0821164804\\\\\\&quot;,\\\\n      \\\\\\&quot;SaleID\\\\\\&quot;: \\\\\\&quot;CashRegB3\\\\\\&quot;,\\\\n      \\\\\\&quot;POIID\\\\\\&quot;: \\\\\\&quot;P400Plus-275008565\\\\\\&quot;\\\\n    },\\\\n    \\\\\\&quot;GetTotalsRequest\\\\\\&quot;: {\\\\n      \\\\\\&quot;TotalFilter\\\\\\&quot;: {\\\\n        \\\\\\&quot;POIID\\\\\\&quot;: \\\\\\&quot;P400Plus-275008565\\\\\\&quot;\\\\n      },\\\\n      \\\\\\&quot;TotalDetails\\\\\\&quot;: [\\\\n        \\\\\\&quot;OperatorID\\\\\\&quot;\\\\n      ]\\\\n    }\\\\n  }\\\\n}\\&quot;},{\\&quot;language\\&quot;:\\&quot;java\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;Java\\&quot;,\\&quot;content\\&quot;:\\&quot;String serviceID = \\\\\\&quot;YOUR_UNIQUE_ATTEMPT_ID\\\\\\&quot;;\\\\nString saleID = \\\\\\&quot;YOUR_CASH_REGISTER_ID\\\\\\&quot;;\\\\nString POIID = \\\\\\&quot;YOUR_TERMINAL_ID\\\\\\&quot;;\\\\n\\\\nSaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\\\nMessageHeader messageHeader = new MessageHeader();\\\\nmessageHeader.setProtocolVersion(\\\\\\&quot;3.0\\\\\\&quot;);\\\\nmessageHeader.setMessageClass( MessageClassType.SERVICE );\\\\nmessageHeader.setMessageCategory( MessageCategoryType.GET_TOTALS );\\\\nmessageHeader.setMessageType( MessageType.REQUEST );\\\\nmessageHeader.setServiceID(serviceID);\\\\nmessageHeader.setSaleID(saleID);\\\\nmessageHeader.setPOIID(POIID);\\\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\\\n\\\\nGetTotalsRequest getTotalsRequest = new GetTotalsRequest();\\\\nTotalFilter totalFilter = new TotalFilter();\\\\ntotalFilter.setPOIID(POIID);\\\\ngetTotalsRequest.setTotalFilter(totalFilter);\\\\ngetTotalsRequest.getTotalDetails().add( TotalDetailsType.OPERATORID );\\\\nsaleToPOIRequest.setGetTotalsRequest(getTotalsRequest);\\\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\\&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&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\n<\/li>\n<li>\n<p>In the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/gettotals#responses-200-Response\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GetTotalsResponse<\/a>, check the <code>TransactionTotals<\/code> object.<\/p>\n<p>The following example is the response for a request that asked for the totals of a terminal and group of totals.<\/p>\n<pre><code class=\"language-json\">{\n  \"SaleToPOIResponse\":{\n     \"MessageHeader\":{\n        \"ProtocolVersion\":\"3.0\",\n        \"SaleID\":\"CashRegB3\",\n        \"MessageClass\":\"Service\",\n        \"MessageCategory\":\"GetTotals\",\n        \"ServiceID\":\"0518144235\",\n        \"POIID\":\"P400Plus-275008565\",\n        \"MessageType\":\"Response\"\n     },\n     \"GetTotalsResponse\":{\n        \"POIReconciliationID\":\"1000\",\n        \"Response\":{\n           \"Result\":\"Success\"\n        },\n        \"TransactionTotals\":[\n           {\n              \"SaleID\":\"CashRegB3\",\n              \"PaymentInstrumentType\":\"StoredValue\",\n              \"PaymentCurrency\":\"EUR\",\n              \"PaymentTotals\":[\n                 {\n                    \"TransactionType\":\"Debit\",\n                    \"TransactionCount\":1,\n                    \"TransactionAmount\":100.99\n                 }\n              ],\n              \"OperatorID\":\"\",\n              \"CardBrand\":\"SVS\",\n              \"TotalsGroupID\":\"GroupA\",\n              \"ShiftNumber\":\"\"\n           },\n           {\n              \"SaleID\":\"CashRegB3\",\n              \"PaymentInstrumentType\":\"Card\",\n              \"PaymentCurrency\":\"EUR\",\n              \"PaymentTotals\":[\n                 {\n                    \"TransactionType\":\"Debit\",\n                    \"TransactionCount\":51,\n                    \"TransactionAmount\":1841.52\n                 }\n              ],\n              \"OperatorID\":\"\",\n              \"CardBrand\":\"mc\",\n              \"TotalsGroupID\":\"GroupA\",\n              \"ShiftNumber\":\"\"\n           }\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\/log-in-and-log-out\"\n                        target=\"_self\"\n                        >\n                    Log in and log out on 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\/retrieve-totals-from-the-terminal","articleFields":{"description":"Return payment totals from a terminal and filter for totals by group or operator.","id":"42829675","type":"page","_expandable":{"operations":""},"status":"current","last_edit_on":"20-08-2019 11:48"},"algolia":{"url":"https:\/\/docs.adyen.com\/point-of-sale\/reconciling-totals\/retrieve-totals-from-the-terminal","title":"Retrieve totals from the terminal","content":"Using a Terminal API request, your POS app can retrieve totals from a payment terminal without starting a new reconciliation period. The result includes the total value and number of transactions by payment instrument type (such as card) and transaction type (such as credit or debit). You can filter and group the results on aspects like operator or shift number.\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\nGet the totals of a terminal\n\n\nLog in to the terminal.\n\n\nMake a Terminal API get totals request, specifying:\n\n\nThe standard \n  SaleToPOIRequest.MessageHeader\n object, with MessageClass set to Service and MessageCategory set to GetTotals.\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nProtocolVersion\n\n3.0\n\n\nMessageClass\n\nService\n\n\nMessageCategory\n\nGetTotals\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  GetTotalsRequest object with:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nTotalDetails\n\nGroup the results by terminal (POIID), sale system, operator, shift number, or totals group.\n\n\nTotalFilter\n\nLimit the results to the specified terminal (POIID), sale system, operator, shift number, or totals group.\n\n\n\n\n\nSelect the tabs to see some example requests.\n\n\n    \n        \n        \n    \n\n\n\n\nIn the  GetTotalsResponse, check the TransactionTotals object.\nThe following example is the response for a request that asked for the totals of a terminal and group of totals.\n{\n  \"SaleToPOIResponse\":{\n     \"MessageHeader\":{\n        \"ProtocolVersion\":\"3.0\",\n        \"SaleID\":\"CashRegB3\",\n        \"MessageClass\":\"Service\",\n        \"MessageCategory\":\"GetTotals\",\n        \"ServiceID\":\"0518144235\",\n        \"POIID\":\"P400Plus-275008565\",\n        \"MessageType\":\"Response\"\n     },\n     \"GetTotalsResponse\":{\n        \"POIReconciliationID\":\"1000\",\n        \"Response\":{\n           \"Result\":\"Success\"\n        },\n        \"TransactionTotals\":[\n           {\n              \"SaleID\":\"CashRegB3\",\n              \"PaymentInstrumentType\":\"StoredValue\",\n              \"PaymentCurrency\":\"EUR\",\n              \"PaymentTotals\":[\n                 {\n                    \"TransactionType\":\"Debit\",\n                    \"TransactionCount\":1,\n                    \"TransactionAmount\":100.99\n                 }\n              ],\n              \"OperatorID\":\"\",\n              \"CardBrand\":\"SVS\",\n              \"TotalsGroupID\":\"GroupA\",\n              \"ShiftNumber\":\"\"\n           },\n           {\n              \"SaleID\":\"CashRegB3\",\n              \"PaymentInstrumentType\":\"Card\",\n              \"PaymentCurrency\":\"EUR\",\n              \"PaymentTotals\":[\n                 {\n                    \"TransactionType\":\"Debit\",\n                    \"TransactionCount\":51,\n                    \"TransactionAmount\":1841.52\n                 }\n              ],\n              \"OperatorID\":\"\",\n              \"CardBrand\":\"mc\",\n              \"TotalsGroupID\":\"GroupA\",\n              \"ShiftNumber\":\"\"\n           }\n        ]\n     }\n  }\n\n\nSee also\n\n\n                    Log in and log out on 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":"Retrieve totals from 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\/reconciling-totals","lvl3":"\/point-of-sale\/reconciling-totals\/retrieve-totals-from-the-terminal"},"levels":4,"category":"In-person payments","category_color":"green","tags":["Retrieve","totals","terminal"]},"articleFiles":{"retrieve-totals-from-the-terminal_0.json":"<p alt=\"\">retrieve-totals-from-the-terminal_0.json<\/p>","retrieve-totals-from-the-terminal_1.json":"<p alt=\"\">retrieve-totals-from-the-terminal_1.json<\/p>","retrieve-totals-from-the-terminal_2.json":"<p alt=\"\">retrieve-totals-from-the-terminal_2.json<\/p>"}}
