{"title":"Create a flow","category":"default","creationDate":1672059480,"content":"<p>You can create a flow that spans multiple requests, including input, display, and payment requests. To do so, you send an admin request to start a session. The terminal shows the waiting screen after every input, display, and payment request until you end the session. This solves the issue that customers may think something is wrong if they provide input and then do not see anything happening on the terminal. The waiting screen is shown for a set amount of time, or until the next request is sent to the terminal.<\/p>\n<p>This is useful for payment flows where someone needs to interact with a terminal, like <a href=\"\/pt\/point-of-sale\/pay-at-x\">Pay at Table<\/a>. It shows that the POS system is not unresponsive, it is just busy doing something that takes a bit of time.<\/p>\n<h2 id=\"admin-request-flow\">How it works<\/h2>\n<p>You need to send two separate admin requests to mark the start and the end of a session. All requests in between belong to a single session.<\/p>\n<p>To include multiple requests in one session:<\/p>\n<ol>\n<li>\n<p>Before you send the first request, <a href=\"#start-session\">send an admin request to start the session<\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"#send-input-requests\">Send multiple requests, including input, display, and payment requests<\/a>.<br \/>\nWhen you send an input request, after the user provides input on the terminal, the waiting screen shows for the set amount of time. With display and payment requests, after showing your data on the screen, the waiting screen shows. If you send another request before the waiting screen expires, the waiting screen disappears.<\/p>\n<p><img alt=\"WaitingScreen\" src=\"\/images\/e\/b\/f\/b\/8\/ebfb86f145b0c725da846274851b65b12678b80e-screen-enwaitingscreen.png\" \/><\/p>\n<\/li>\n<li>\n<p>After the last request, <a href=\"#end-session\">send an admin request to end the session<\/a>.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"start-session\">Step 1: Start the session<\/h2>\n<ol>\n<li>\n<p>Create a JSON object with the following data elements:<\/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>Session<\/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;\">An object with: <ul><li markdown=\"1\"><code>ID<\/code>: the unique reference of the session.<\/li> <li markdown=\"1\"><code>Type<\/code>: set the value to <span translate=\"no\"><strong>Begin<\/strong><\/span> to start the session.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>Operation<\/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;\">An object with: <ul><li markdown=\"1\"><code>Type<\/code>: the type of request after which the waiting screen shows: <span translate=\"no\"><strong>InputRequest<\/strong><\/span>, <span translate=\"no\"><strong>DisplayRequest<\/strong><\/span>, and <span translate=\"no\"><strong>Payment<\/strong><\/span> .<\/li><li markdown=\"1\"><code>Variant<\/code>: <span translate=\"no\"><strong>WaitingScreen<\/strong><\/span>.<\/li><li markdown=\"1\"><code>UserInterfaceData.WaitingScreenTimeoutMs<\/code>: how long the waiting screen is shown on the terminal display, in milliseconds.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Data elements in JSON format'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"Session\\\": {\\n        \\\"Id\\\": 12345,\\n        \\\"Type\\\": \\\"Begin\\\"\\n    },\\n    \\\"Operation\\\": [\\n        {\\n            \\\"Type\\\": \\\"InputRequest\\\",\\n            \\\"Variant\\\": \\\"WaitingScreen\\\",\\n            \\\"UserInterfaceData\\\": {\\n                \\\"WaitingScreenTimeoutMs\\\": 15000\\n            }\\n        },\\n        {\\n            \\\"Type\\\": \\\"DisplayRequest\\\",\\n            \\\"Variant\\\": \\\"WaitingScreen\\\",\\n            \\\"UserInterfaceData\\\": {\\n                \\\"WaitingScreenTimeoutMs\\\": 10000\\n            }\\n        }\\n    ]\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"notices green\">\n<p>For now, the <code>Operation.Variant<\/code> can only have <span translate=\"no\"><strong>WaitingScreen<\/strong><\/span> as value. This shows the waiting screen animation on the terminal after every request until you end the session.<\/p>\n<\/div>\n<\/li>\n<li>\n<p>Encode the JSON object to Base64.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Base64 encoded message'\" :id=\"''\" :code-data='[{\"language\":\"raw\",\"tabTitle\":\"\",\"content\":\"ewogICAgIlNlc3Npb24iOiB7CiAgICAgICAgIklkIjogMTIzNDUsCiAgICAgICAgIlR5cGUiOiAiQmVnaW4iLAogICAgfSwKICAgICJPcGVyYXRpb24iOiBbCiAgICAgICAgewogICAgICAgICAgICAiVHlwZSI6ICJJbnB1dFJlcXVlc3QiLAogICAgICAgICAgICAiVmFyaWFudCI6ICJXYWl0aW5nU2NyZWVuIiwKICAgICAgICAgICAgIlVzZXJJbnRlcmZhY2VEYXRhIjogewogICAgICAgICAgICAgICAgIldhaXRpbmdTY3JlZW5UaW1lb3V0TXMiOiAxNTAwMAogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJUeXBlIjogIkRpc3BsYXlSZXF1ZXN0IiwKICAgICAgICAgICAgIlZhcmlhbnQiOiAiV2FpdGluZ1NjcmVlbiIsCiAgICAgICAgICAgICJVc2VySW50ZXJmYWNlRGF0YSI6IHsKICAgICAgICAgICAgICAgICJXYWl0aW5nU2NyZWVuVGltZW91dE1zIjogMTAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIF0KfQ==\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Make a <a href=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api\">Terminal API<\/a> admin request, specifying:<\/p>\n<ul>\n<li>\n<p>The standard <a href=\"\/pt\/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>Admin<\/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>Admin<\/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<\/ul>\n<ul>\n<li>The  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/admin\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AdminRequest<\/a> object, including:\n<ul>\n<li><code>ServiceIdentification<\/code>: The Base64-encoded JSON object to begin the session.<\/li>\n<\/ul><\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Admin request - start session'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"SaleToPOIRequest\\\": {\\n      \\\"MessageHeader\\\": {\\n         \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n         \\\"MessageClass\\\": \\\"Service\\\",\\n         \\\"MessageCategory\\\": \\\"Admin\\\",\\n         \\\"MessageType\\\": \\\"Request\\\",\\n         \\\"ServiceID\\\": \\\"POSSystemID12345\\\",\\n         \\\"SaleID\\\": \\\"S00101\\\",\\n         \\\"POIID\\\": \\\"V400m-324688179\\\"\\n      },\\n      \\\"AdminRequest\\\": {\\n         \\\"ServiceIdentification\\\": \\\"ewogICAiU2Vzc2lvbiI6ewogICAgICAiSWQiOjEyMzQ1LAogICAgICAiVHlwZSI6IkJlZ2luIgogICB9LAogICAiT3BlcmF0aW9uIjpbCiAgICAgIHsKICAgICAgICAgIlR5cGUiOiJJbnB1dFJlcXVlc3QiLAogICAgICAgICAiVmFyaWFudCI6IldhaXRpbmdTY3JlZW4iLAogICAgICAgICAiVXNlckludGVyZmFjZURhdGEiOnsKICAgICAgICAgICAgIldhaXRpbmdTY3JlZW5UaW1lb3V0TXMiOjE1MDAwCiAgICAgICAgIH0KICAgICAgfQogICBdCn0=\\\"\\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>Check that the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/admin#responses-200-Response\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AdminResponse<\/a> shows <code>Response.Result<\/code> <span translate=\"no\"><strong>Success<\/strong><\/span>.<br \/>\n<a id=\"admin-response\"><\/a><\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Admin request - response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"SaleToPOIResponse\\\": {\\n        \\\"AdminResponse\\\": {\\n            \\\"Response\\\": {\\n                \\\"Result\\\": \\\"Success\\\"\\n            }\\n        },\\n        \\\"MessageHeader\\\": {\\n            \\\"MessageCategory\\\": \\\"Admin\\\",\\n            \\\"MessageClass\\\": \\\"Service\\\",\\n            \\\"MessageType\\\": \\\"Response\\\",\\n            \\\"POIID\\\": \\\"V400m-324688179\\\",\\n            \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n            \\\"SaleID\\\": \\\"POSSystemID12345\\\",\\n            \\\"ServiceID\\\": \\\"S00101\\\"\\n        }\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>\n<h2 id=\"send-input-requests\">Step 2: Send requests<\/h2>\n<ol>\n<li>Start sending the requests that you specified in the <code>operation.type<\/code>, including <a href=\"\/pt\/point-of-sale\/shopper-engagement\/shopper-input\">input<\/a>, <a href=\"\/pt\/point-of-sale\/shopper-engagement\/display-data\">display<\/a>, and <a href=\"\/pt\/point-of-sale\/basic-tapi-integration\/make-a-payment\">payment<\/a> requests.<\/li>\n<li>After every request sent, the screen shows the waiting screen for the amount of time specified in milliseconds in <code>UserInterfaceData.WaitingScreenTimeoutMs<\/code>.<\/li>\n<li>Every new request interrupts the waiting screen.<\/li>\n<\/ol>\n<h2 id=\"end-session\">Step 3: End the session<\/h2>\n<ol>\n<li>\n<p>Create a JSON object with the following data elements:<\/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>ServiceIdentification.Session<\/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;\">An object with: <ul><li markdown=\"1\"><code>Id<\/code>: the unique reference of the session. This must be the same <code>Id<\/code> as in the start session <code>AdminRequest<\/code>).<\/li> <li markdown=\"1\"><code>Type<\/code>: set the value to <span translate=\"no\"><strong>End<\/strong><\/span>.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Data elements in JSON format'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"Session\\\": {\\n        \\\"Id\\\": 12345,\\n        \\\"Type\\\": \\\"End\\\"\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Encode the JSON object to Base64.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Base64 encoded message'\" :id=\"''\" :code-data='[{\"language\":\"raw\",\"tabTitle\":\"\",\"content\":\"ewogICAgIlNlc3Npb24iOiB7CiAgICAgICAgIklkIjogMTIzNDUsCiAgICAgICAgIlR5cGUiOiAiRW5kIgogICB9Cn0=\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Make a <a href=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api\">Terminal API<\/a> admin request like you did in <a href=\"#admin-response\">Step 1<\/a>, including:<\/p>\n<ul>\n<li>The  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/admin\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AdminRequest<\/a> object with:\n<ul>\n<li><code>ServiceIdentification<\/code>: The Base64-encoded JSON object to end the session.<\/li>\n<\/ul><\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Admin request - end session'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"SaleToPOIRequest\\\":{\\n      \\\"MessageHeader\\\":{\\n         \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n         \\\"MessageClass\\\": \\\"Service\\\",\\n         \\\"MessageCategory\\\": \\\"Admin\\\",\\n         \\\"MessageType\\\": \\\"Request\\\",\\n         \\\"ServiceID\\\": \\\"S00101\\\",\\n         \\\"SaleID\\\": \\\"POSSystemID12345\\\",\\n         \\\"POIID\\\": \\\"V400m-324688179\\\"\\n      },\\n      \\\"AdminRequest\\\":{\\n         \\\"ServiceIdentification\\\": \\\"ewogICAgIlNlc3Npb24iOiB7CiAgICAgICAgIklkIjogMTIzNDUsCiAgICAgICAgIlR5cGUiOiAiRW5kIgogICB9Cn0=\\\"\\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>Check that the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/admin#responses-200-Response\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AdminResponse<\/a> shows <code>Response.Result<\/code> <span translate=\"no\"><strong>Success<\/strong><\/span> (see <a href=\"#admin-response\">Step 1<\/a>).<\/p>\n<\/li>\n<\/ol>\n<p>You can send an admin request to end the session while the waiting screen is still on the display. This does not interrupt the waiting screen like other requests.<br \/>\nAfter the session ends, the waiting screen no longer shows after sent input, display, or payment requests.<\/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\/shopper-engagement\/shopper-input\"\n                        target=\"_self\"\n                        >\n                    Get input on the terminal\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/shopper-engagement\/create-session","articleFields":{"description":"Create a session that spans multiple requests.","feedback_component":true,"last_edit_on":"27-12-2022 10:00"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/shopper-engagement\/create-session","title":"Create a flow","content":"You can create a flow that spans multiple requests, including input, display, and payment requests. To do so, you send an admin request to start a session. The terminal shows the waiting screen after every input, display, and payment request until you end the session. This solves the issue that customers may think something is wrong if they provide input and then do not see anything happening on the terminal. The waiting screen is shown for a set amount of time, or until the next request is sent to the terminal.\nThis is useful for payment flows where someone needs to interact with a terminal, like Pay at Table. It shows that the POS system is not unresponsive, it is just busy doing something that takes a bit of time.\nHow it works\nYou need to send two separate admin requests to mark the start and the end of a session. All requests in between belong to a single session.\nTo include multiple requests in one session:\n\n\nBefore you send the first request, send an admin request to start the session.\n\n\nSend multiple requests, including input, display, and payment requests.\nWhen you send an input request, after the user provides input on the terminal, the waiting screen shows for the set amount of time. With display and payment requests, after showing your data on the screen, the waiting screen shows. If you send another request before the waiting screen expires, the waiting screen disappears.\n\n\n\nAfter the last request, send an admin request to end the session.\n\n\nStep 1: Start the session\n\n\nCreate a JSON object with the following data elements:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nSession\n\nAn object with: ID: the unique reference of the session. Type: set the value to Begin to start the session.\n\n\nOperation\n\nAn object with: Type: the type of request after which the waiting screen shows: InputRequest, DisplayRequest, and Payment .Variant: WaitingScreen.UserInterfaceData.WaitingScreenTimeoutMs: how long the waiting screen is shown on the terminal display, in milliseconds.\n\n\n\n\n\n\n\nFor now, the Operation.Variant can only have WaitingScreen as value. This shows the waiting screen animation on the terminal after every request until you end the session.\n\n\n\nEncode the JSON object to Base64.\n\n\n\n\n\nMake a Terminal API admin request, specifying:\n\n\nThe standard \n  SaleToPOIRequest.MessageHeader\n object, with MessageClass set to Service and MessageCategory set to Admin.\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nProtocolVersion\n\n3.0\n\n\nMessageClass\n\nService\n\n\nMessageCategory\n\nAdmin\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\n\nThe  AdminRequest object, including:\n\nServiceIdentification: The Base64-encoded JSON object to begin the session.\n\n\n\n\n\n\n\nCheck that the  AdminResponse shows Response.Result Success.\n\n\n\n\n\n\nStep 2: Send requests\n\nStart sending the requests that you specified in the operation.type, including input, display, and payment requests.\nAfter every request sent, the screen shows the waiting screen for the amount of time specified in milliseconds in UserInterfaceData.WaitingScreenTimeoutMs.\nEvery new request interrupts the waiting screen.\n\nStep 3: End the session\n\n\nCreate a JSON object with the following data elements:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nServiceIdentification.Session\n\nAn object with: Id: the unique reference of the session. This must be the same Id as in the start session AdminRequest). Type: set the value to End.\n\n\n\n\n\n\n\n\nEncode the JSON object to Base64.\n\n\n\n\n\nMake a Terminal API admin request like you did in Step 1, including:\n\nThe  AdminRequest object with:\n\nServiceIdentification: The Base64-encoded JSON object to end the session.\n\n\n\n\n\n\n\nCheck that the  AdminResponse shows Response.Result Success (see Step 1).\n\n\nYou can send an admin request to end the session while the waiting screen is still on the display. This does not interrupt the waiting screen like other requests.\nAfter the session ends, the waiting screen no longer shows after sent input, display, or payment requests.\nSee also\n\n\n                    Get input on the terminal\n                \n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Terminais","lvl2":"Shopper engagement","lvl3":"Create a flow"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/point-of-sale","lvl2":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/shopper-engagement","lvl3":"\/pt\/point-of-sale\/shopper-engagement\/create-session"},"levels":4,"category":"In-person payments","category_color":"green","tags":["Create"]},"articleFiles":{"screen-EN_WaitingScreen.png":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/images\/1\/a\/c\/2\/2\/1ac22b0e24df1d5cd5d388ac6419cdaad34e5af6-screen-enwaitingscreen.png\" \/>","screen-EN_WaitingScreen.svg":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/03.point-of-sale\/41.shopper-engagement\/01.create-session\/screen-EN_WaitingScreen.svg\" \/>"}}
