{"title":"Coletar informa\u00e7\u00f5es","category":"default","creationDate":1776961627,"content":"<p>Al\u00e9m de efetuar pagamentos, os terminais da Adyen podem solicitar informa\u00e7\u00f5es ao seu cliente ou equipe. Isso permite que voc\u00ea colete o endere\u00e7o de e-mail do cliente, por exemplo, ou realize uma pesquisa. O fluxo de comunica\u00e7\u00e3o \u00e9 entre sua caixa registradora e o terminal e n\u00e3o envolve o back-end da Adyen. Voc\u00ea precisa processar a informa\u00e7\u00e3o coletada com sua pr\u00f3pria l\u00f3gica de neg\u00f3cios.<\/p>\n<p>Existem v\u00e1rios tipos de <code>InputRequest<\/code>:<\/p>\n<ul>\n<li><a href=\"#confirmation\">Confirma\u00e7\u00e3o<\/a> - Mostre algumas informa\u00e7\u00f5es e pe\u00e7a ao cliente para confirmar se concorda.<\/li>\n<li><a href=\"#signature\">Assinatura<\/a> - Mostre algumas informa\u00e7\u00f5es e pe\u00e7a ao cliente que confirme fornecendo sua assinatura.<\/li>\n<li><a href=\"#survey-input\">Menu<\/a> - Mostre uma pergunta de m\u00faltipla escolha e deixe o usu\u00e1rio selecionar uma das respostas. Voc\u00ea pode usar isso para pesquisas do NPS, listas de pedidos e outros.<\/li>\n<li><a href=\"#numeric-input\">Num\u00e9rico<\/a> - Voc\u00ea normalmente usa isso para pedir ao cliente o n\u00famero de telefone. Outro exemplo \u00e9 um fluxo de pagamento na mesa em que voc\u00ea solicita \u00e0 sua equipe o n\u00famero da mesa.<\/li>\n<li><a href=\"#text-input\">Texto<\/a> - Voc\u00ea normalmente usa isso para pedir ao cliente o endere\u00e7o de e-mail.<\/li>\n<\/ul>\n<p>Para cada tipo de entrada, fornecemos elementos predefinidos para exibi\u00e7\u00e3o no visor do terminal e campos que voc\u00ea precisa preencher com seu pr\u00f3prio texto. O usu\u00e1rio digita uma resposta na tela ou nos bot\u00f5es do teclado do terminal<\/p>\n<div class=\"sc-notice note\"><div>\n<p>Voc\u00ea n\u00e3o pode solicitar informa\u00e7\u00f5es de clientes em terminais que n\u00e3o oferecem suporte \u00e0 API de Terminais ou em terminais que suportam apenas um subconjunto da API de Terminais.<\/p>\n<\/div><\/div>\n<h2 id=\"collect-shopper-input\">Coletar informa\u00e7\u00f5es do usu\u00e1rio<\/h2>\n<p>Esse \u00e9 o procedimento geral para fazer uma pergunta ao cliente ou sua equipe e coletar a resposta. Consulte os tipos de entrada para detalhes espec\u00edficos.<\/p>\n<ol>\n<li>\n<p>Fa\u00e7a uma solicita\u00e7\u00e3o POST para um <a href=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api#endpoints\">endpoint da API de terminais<\/a>, especificando:<\/p>\n<ul>\n<li>\n<p>Objeto <code>MessageHeader<\/code>: Segue a estrutra da <code>MessageHeader<\/code> padr\u00e3o, explicada nos <a href=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api#request-message-header\">fundamentos da API de terminais<\/a>:<\/p>\n<ul>\n<li><code>ProtocolVersion<\/code>: <strong>3.0<\/strong><\/li>\n<li><code>MessageClass<\/code>: <strong>Device<\/strong><\/li>\n<li><code>MessageCategory<\/code>: <strong>Input<\/strong><\/li>\n<li><code>MessageType<\/code>: <strong>Request<\/strong><\/li>\n<li><code>SaleID<\/code>: Seu ID exclusivo para a caixa registradora.<\/li>\n<li><code>ServiceID<\/code>: Seu ID exclusivo para a tentativa de transa\u00e7\u00e3o, consistindo em 1 a 10 caracteres alfanum\u00e9ricos. Esse valor precisa ser exclusivo nas \u00faltimas 48 horas.<\/li>\n<li>\n<p><code>POIID<\/code>: ID exclusivo do terminal. Isso indica para qual terminal o pagamento ser\u00e1 roteado.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>InputRequest.DisplayOutput<\/code>: Esta parte do corpo da solicita\u00e7\u00e3o define o que \u00e9 mostrado no terminal:<\/p>\n<ul>\n<li>\n<p><code>Device<\/code>: <strong>CustomerDisplay<\/strong><\/p>\n<\/li>\n<li>\n<p><code>InfoQualify<\/code>: <strong>Display<\/strong><\/p>\n<\/li>\n<li>\n<p><code>OutputContent.OutputFormat<\/code>: <strong>Text<\/strong>.<\/p>\n<\/li>\n<li>\n<p><code>OutputContent.PredefinedContent.ReferenceID<\/code>: TO conjunto de elementos predefinidos que voc\u00ea deseja usar:<\/p>\n<ul>\n<li><a href=\"#confirmation\">GetConfirmation<\/a>: elementos predefinidos para solicitar confirma\u00e7\u00e3o.<\/li>\n<li><a href=\"#signature\">GetSignature<\/a>: elementos predefinidos para solicitar uma assinatura.<\/li>\n<li><a href=\"#survey-input\">MenuButtons<\/a>: elementos predefinidos para permitir que o usu\u00e1rio selecione uma resposta.<\/li>\n<li><a href=\"#numeric-input\">GetDigit<\/a>: elementos predefinidos para solicitar uma informa\u00e7\u00e3o num\u00e9rica.<\/li>\n<li>\n<p><a href=\"#text-input\">GetText<\/a>: elementos predefinidos para solicitar uma informa\u00e7\u00e3o de texto.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>OutputContent.OutputText<\/code>: Uma matriz de um ou mais campos <code>Text<\/code> contendo seu pr\u00f3prio texto para mostrar no terminal. Consulte os tipos de entrada abaixo para aprender como usar esses campos.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>InputRequest.InputData<\/code>: Esta parte do corpo da solicita\u00e7\u00e3o lida com a informa\u00e7\u00e3o do usu\u00e1rio:<\/p>\n<ul>\n<li>\n<p><code>Device<\/code>: <strong>CustomerInput<\/strong>.<\/p>\n<\/li>\n<li>\n<p><code>InfoQualify<\/code>: <strong>Input<\/strong>.<\/p>\n<\/li>\n<li>\n<p><code>InputCommand<\/code>: Comando para lidar com o tipo de informa\u00e7\u00e3o do usu\u00e1rio:<\/p>\n<ul>\n<li><a href=\"#confirmation\">GetConfirmation<\/a>: solicite confirma\u00e7\u00e3o ou assinatura.<\/li>\n<li><a href=\"#survey-input\">GetMenuEntry<\/a>: pe\u00e7a para selecionar uma resposta para uma pergunta de m\u00faltipla escolha.<\/li>\n<li><a href=\"#numeric-input\">DigitString<\/a>: solicita informa\u00e7\u00e3o num\u00e9rica.<\/li>\n<li>\n<p><a href=\"#text-input\">TextString<\/a>: solicita informa\u00e7\u00e3o de texto.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>MaxInputTime<\/code>: Tempo limite em segundos. Este \u00e9 o tempo que o usu\u00e1rio obt\u00e9m para concluir sua resposta.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>O exemplo a seguir mostra os campos comuns para todos os tipos de informa\u00e7\u00e3o.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"''\" :id=\"'shopper-input_0'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n     \\\"SaleToPOIRequest\\\": {\\n       \\\"MessageHeader\\\": {\\n         \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n         \\\"MessageClass\\\": \\\"Device\\\",\\n         \\\"MessageCategory\\\": \\\"Input\\\",\\n         \\\"MessageType\\\": \\\"Request\\\",\\n         \\\"ServiceID\\\": \\\"0207111104\\\",\\n         \\\"SaleID\\\": \\\"POSSystemID12345\\\",\\n         \\\"POIID\\\": \\\"V400m-324688179\\\"\\n       },\\n       \\\"InputRequest\\\": {\\n         \\\"DisplayOutput\\\": {\\n           \\\"Device\\\": \\\"CustomerDisplay\\\",\\n           \\\"InfoQualify\\\": \\\"Display\\\",\\n           \\\"OutputContent\\\": {\\n             \\\"OutputFormat\\\": \\\"Text\\\",\\n             \\\"PredefinedContent\\\": {\\n               \\\"ReferenceID\\\": \\\"PREDEFINED_ELEMENTS_ID\\\"\\n             },\\n             \\\"OutputText\\\": [\\n               {\\\"Text\\\": \\\"Your own text\\\"}\\n             ]\\n           }\\n         },\\n         \\\"InputData\\\": {\\n           \\\"Device\\\": \\\"CustomerInput\\\",\\n           \\\"InfoQualify\\\": \\\"Input\\\",\\n           \\\"InputCommand\\\": \\\"INPUT_TYPE\\\",\\n           \\\"MaxInputTime\\\": 30\\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.DEVICE );\\nmessageHeader.setMessageCategory( MessageCategoryType.INPUT );\\nmessageHeader.setMessageType( MessageType.REQUEST );\\nmessageHeader.setServiceID(serviceID);\\nmessageHeader.setSaleID(saleID);\\nmessageHeader.setPOIID(POIID);\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nInputRequest inputRequest = new InputRequest();\\nDisplayOutput displayOutput = new DisplayOutput();\\ndisplayOutput.setDevice( DeviceType.CUSTOMER_DISPLAY );\\ndisplayOutput.setInfoQualify( InfoQualifyType.DISPLAY );\\nOutputContent outputContent = new OutputContent();\\noutputContent.setOutputFormat( OutputFormatType.TEXT );\\nPredefinedContent predefinedContent = new PredefinedContent();\\npredefinedContent.setReferenceID(\\\"PREDEFINED_ELEMENTS_ID\\\");\\noutputContent.setPredefinedContent(predefinedContent);\\n\\nOutputText outputText = new OutputText();\\noutputText.setText(\\\"Your own text\\\");\\noutputContent.getOutputText().add(outputText);\\ndisplayOutput.setOutputContent(outputContent);\\ninputRequest.setDisplayOutput(displayOutput);\\n\\nInputData inputData = new InputData();\\ninputData.setDevice( DeviceType.CUSTOMER_INPUT );\\ninputData.setInfoQualify( InfoQualifyType.INPUT );\\ninputData.setInputCommand( InputCommandType.INPUT_TYPE );\\ninputData.setMaxInputTime( BigInteger.valueOf(30) );\\ninputRequest.setInputData(inputData);\\nsaleToPOIRequest.setInputRequest(inputRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"sc-notice info\"><div>\n<p>Alguns tipos de informa\u00e7\u00f5es requerem campos adicionais ou valores espec\u00edficos. Consulte os tipos de entrada abaixo.<\/p>\n<\/div><\/div>\n<\/li>\n<li>\n<p>Aguarde o usu\u00e1rio fornecer a informa\u00e7\u00e3o solicitada usando os bot\u00f5es na tela ou o teclado do terminal.<\/p>\n<div class=\"sc-notice note\"><div>\n<p>A informa\u00e7\u00e3o fornecida pelo cliente ou sua equipe n\u00e3o \u00e9 validada em um formato.<\/p>\n<\/div><\/div>\n<p>Na resposta, o <code>InputResult<\/code> mostra se o usu\u00e1rio concordou ou discordou, forneceu uma assinatura, selecionou uma resposta para a pergunta de m\u00faltipla escolha, inseriu n\u00fameros ou texto ou recusou-se a fornecer informa\u00e7\u00f5es.<br \/>\nSe o pedido expirar, a resposta conter\u00e1 um <a href=\"\/pt\/point-of-sale\/design-your-integration\/notifications\/event-notifications\">\n  <code>EventNotification<\/code>\n<\/a> com os <code>EventDetails<\/code>: <strong>message=Did+not+receive+a+response+from+the+POI.<\/strong><\/p>\n<\/li>\n<li>\n<p>Passe os dados relevantes do <code>InputResult<\/code> para o seu sistema para valida\u00e7\u00e3o e uso posterior.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"confirmation\">Confirma\u00e7\u00e3o<\/h2>\n<p>Em um <code>InputRequest<\/code> solicitando que o cliente confirme alguma informa\u00e7\u00e3o, \u00e9 necess\u00e1rio especificar os campos comuns para <a href=\"#collect-shopper-input\">coletar as informa\u00e7\u00f5es do usu\u00e1rio<\/a>, bem como os seguintes valores e campos espec\u00edficos:<\/p>\n<ul>\n<li>\n<p><code>DisplayOutput.OutputContent.PredefinedContent.ReferenceID<\/code>: <strong>GetConfirmation<\/strong>.<\/p>\n<\/li>\n<li>\n<p><code>DisplayOutput.OutputContent.OutputText<\/code>: Uma matriz de quatro campos <code>Text<\/code> contendo seu pr\u00f3prio texto para mostrar no terminal.<\/p>\n<ol>\n<li>O primeiro campo <code>Text<\/code> \u00e9 o t\u00edtulo.<\/li>\n<li>O segundo campo <code>Text<\/code> representa um texto adicional que pode ser longo e \u00e9 rol\u00e1vel.<\/li>\n<li>O terceiro campo <code>Text<\/code> \u00e9 o t\u00edtulo do bot\u00e3o 'decline' \u00e0 esquerda.<\/li>\n<li>\n<p>O quarto campo <code>Text<\/code> \u00e9 o t\u00edtulo do bot\u00e3o 'agree' \u00e0 direita.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><code>InputData.InputCommand<\/code>: <strong>GetConfirmation<\/strong><\/p>\n<\/li>\n<\/ul>\n<p>O exemplo a seguir pede ao cliente para confirmar que concorda.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"'shopper-input_1'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n    \\\"SaleToPOIRequest\\\":{\\n        \\\"MessageHeader\\\":{\\n            \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n            \\\"MessageClass\\\":\\\"Device\\\",\\n            \\\"MessageCategory\\\":\\\"Input\\\",\\n            \\\"MessageType\\\":\\\"Request\\\",\\n            \\\"ServiceID\\\":\\\"0207111104\\\",\\n            \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n            \\\"POIID\\\":\\\"V400m-324688179\\\"\\n        },\\n        \\\"InputRequest\\\":{\\n            \\\"DisplayOutput\\\":{\\n                \\\"Device\\\":\\\"CustomerDisplay\\\",\\n                \\\"InfoQualify\\\":\\\"Display\\\",\\n                \\\"OutputContent\\\":{\\n                    \\\"OutputFormat\\\":\\\"Text\\\",\\n                    \\\"PredefinedContent\\\":{\\n                        \\\"ReferenceID\\\":\\\"GetConfirmation\\\"\\n                    },\\n                    \\\"OutputText\\\":[\\n                        {\\n                            \\\"Text\\\":\\\"Terms &amp; Conditions\\\"\\n                        },\\n                        {\\n                            \\\"Text\\\":\\\"Do you accept our Terms and Conditions? The full text is available on our website.\\\"\\n                        },\\n                        {\\n                            \\\"Text\\\":\\\"Decline\\\"\\n                        },\\n                        {\\n                            \\\"Text\\\":\\\"Agree\\\"\\n                        }\\n                    ]\\n                }\\n            },\\n            \\\"InputData\\\":{\\n                \\\"Device\\\":\\\"CustomerInput\\\",\\n                \\\"InfoQualify\\\":\\\"Input\\\",\\n                \\\"InputCommand\\\":\\\"GetConfirmation\\\",\\n                \\\"MaxInputTime\\\":30\\n            }\\n        }\\n    }\\n}\"},{\"language\":\"java\",\"tabTitle\":\"Java\",\"content\":\"SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nInputRequest inputRequest = new InputRequest();\\nDisplayOutput displayOutput = new DisplayOutput();\\ndisplayOutput.setDevice( DeviceType.CUSTOMER_DISPLAY );\\ndisplayOutput.setInfoQualify( InfoQualifyType.DISPLAY );\\nOutputContent outputContent = new OutputContent();\\noutputContent.setOutputFormat( OutputFormatType.TEXT );\\nPredefinedContent predefinedContent = new PredefinedContent();\\npredefinedContent.setReferenceID(\\\"GetConfirmation\\\");\\noutputContent.setPredefinedContent(predefinedContent);\\n\\nOutputText title = new OutputText();\\ntitle.setText(\\\"Terms &amp; Conditions\\\");\\nOutputText additionalText = new OutputText();\\nadditionalText.setText(\\\"Do you accept our Terms and Conditions? The full text is available on our website.\\\");\\nOutputText declineAnswer = new OutputText();\\ndeclineAnswer.setText(\\\"Decline\\\");\\nOutputText agreeAnswer = new OutputText();\\nagreeAnswer.setText(\\\"Agree\\\");\\noutputContent.getOutputText().add(title);\\noutputContent.getOutputText().add(additionalText);\\noutputContent.getOutputText().add(declineAnswer);\\noutputContent.getOutputText().add(agreeAnswer);\\ndisplayOutput.setOutputContent(outputContent);\\ninputRequest.setDisplayOutput(displayOutput);\\n\\nInputData inputData = new InputData();\\ninputData.setDevice( DeviceType.CUSTOMER_INPUT );\\ninputData.setInfoQualify( InfoQualifyType.INPUT );\\ninputData.setInputCommand( InputCommandType.GET_CONFIRMATION );\\ninputData.setMaxInputTime( BigInteger.valueOf(30) );\\ninputRequest.setInputData(inputData);\\nsaleToPOIRequest.setInputRequest(inputRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"sc-notice info\"><div>\n<p>Para obter uma lista completa dos campos que voc\u00ea pode passar em uma solicita\u00e7\u00e3o de informa\u00e7\u00e3o de confirma\u00e7\u00e3o, consulte a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/input\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">InputRequest<\/a>.<\/p>\n<\/div><\/div>\n<p>Na resposta, <code>ConfirmedFlag<\/code>: <strong>true<\/strong> indica que o cliente tocou no bot\u00e3o 'agree' \u00e0 direita ou pressionou <strong><img alt=\"\" src=\"\/images\/e\/1\/f\/d\/f\/e1fdf2ab953d26666e876b743ce54acaa22e7206-confirm2x.png\" \/><\/strong> para confirmar o seu acordo.  <code>ConfirmedFlag<\/code>: <strong>false<\/strong> significa que o cliente tocou no bot\u00e3o 'decline' \u00e0 esquerda ou pressionou <strong><img alt=\"\" src=\"\/images\/6\/2\/0\/e\/0\/620e0c5c343676dd2b947bbdb1573f7eebc3caf7-cancel2x.png\" \/><\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Exemplo de resposta quando o cliente faz a confirma\u00e7\u00e3o'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"SaleToPOIResponse\\\": {\\n    \\\"InputResponse\\\": {\\n      \\\"InputResult\\\": {\\n        \\\"Device\\\": \\\"CustomerInput\\\",\\n        \\\"InfoQualify\\\": \\\"Input\\\",\\n        \\\"Response\\\": {\\n          \\\"Result\\\": \\\"Success\\\",\\n          \\\"AdditionalResponse\\\": \\\"responseData=%7b%20%22unique_id%22%3a%20%22001560867383%22%20%7d\\\"\\n        },\\n        \\\"Input\\\": {\\n          \\\"ConfirmedFlag\\\": true,\\n          \\\"InputCommand\\\": \\\"GetConfirmation\\\"\\n        }\\n      },\\n      \\\"OutputResult\\\": {\\n        \\\"Device\\\": \\\"CustomerDisplay\\\",\\n        \\\"InfoQualify\\\": \\\"Display\\\",\\n        \\\"Response\\\": {\\n          \\\"Result\\\": \\\"Success\\\"\\n        }\\n      }\\n    },\\n    \\\"MessageHeader\\\": {\\n      \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n      \\\"SaleID\\\": \\\"POSSystemID12345\\\",\\n      \\\"MessageClass\\\": \\\"Device\\\",\\n      \\\"MessageCategory\\\": \\\"Input\\\",\\n      \\\"ServiceID\\\": \\\"0207111104\\\",\\n      \\\"POIID\\\": \\\"V400m-324688179\\\",\\n      \\\"MessageType\\\": \\\"Response\\\"\\n    }\\n  }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"sc-notice info\"><div>\n<p>Para obter uma lista completa dos campos que voc\u00ea pode receber em uma resposta de informa\u00e7\u00e3o de confirma\u00e7\u00e3o, consulte a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/input#responses-200\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">InputResponse<\/a>.<\/p>\n<\/div><\/div>\n<h2 id=\"signature\">Assinatura<\/h2>\n<p>Em um <code>InputRequest<\/code> solicitando que o cliente assine algo e confirme, \u00e9 necess\u00e1rio especificar os campos comuns para <a href=\"#collect-shopper-input\">coletar a informa\u00e7\u00e3o do cliente<\/a> bem como os seguintes valores e campos espec\u00edficos:<\/p>\n<ul>\n<li>\n<p><code>DisplayOutput.OutputContent.PredefinedContent.ReferenceID<\/code>: <strong>GetSignature<\/strong>. Al\u00e9m do texto que voc\u00ea especificar, o terminal mostrar\u00e1 uma caixa de entrada para o cliente desenhar sua assinatura.<\/p>\n<\/li>\n<li>\n<p><code>DisplayOutput.OutputContent.OutputText<\/code>: An array of four <code>Text<\/code> fields containing your own text to show on the terminal.<\/p>\n<ol>\n<li>O primeiro campo <code>Text<\/code> \u00e9 o t\u00edtulo.<\/li>\n<li>O segundo campo <code>Text<\/code> cont\u00e9m informa\u00e7\u00f5es adicionais.<\/li>\n<li>O terceiro campo <code>Text<\/code> \u00e9 o t\u00edtulo do bot\u00e3o 'decline' \u00e0 esquerda.<\/li>\n<li>\n<p>O quarto campo <code>Text<\/code> \u00e9 o t\u00edtulo do bot\u00e3o 'agree' \u00e0 direita.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><code>InputData.InputCommand<\/code>: <strong>GetConfirmation<\/strong><\/p>\n<\/li>\n<\/ul>\n<p>O exemplo a seguir solicita a assinatura do cliente.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"'shopper-input_2'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n    \\\"SaleToPOIRequest\\\":{\\n        \\\"MessageHeader\\\":{\\n            \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n            \\\"MessageClass\\\":\\\"Device\\\",\\n            \\\"MessageCategory\\\":\\\"Input\\\",\\n            \\\"MessageType\\\":\\\"Request\\\",\\n            \\\"ServiceID\\\":\\\"0207111104\\\",\\n            \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n            \\\"POIID\\\":\\\"V400m-324688179\\\"\\n        },\\n        \\\"InputRequest\\\":{\\n            \\\"DisplayOutput\\\":{\\n                \\\"Device\\\":\\\"CustomerDisplay\\\",\\n                \\\"InfoQualify\\\":\\\"Display\\\",\\n                \\\"OutputContent\\\":{\\n                    \\\"OutputFormat\\\":\\\"Text\\\",\\n                    \\\"PredefinedContent\\\":{\\n                        \\\"ReferenceID\\\":\\\"GetSignature\\\"\\n                    },\\n                    \\\"OutputText\\\":[\\n                        {\\n                            \\\"Text\\\":\\\"Please sign\\\"\\n                        },\\n                        {\\n                            \\\"Text\\\":\\\"Do you accept the Delivery Waver form?\\\"\\n                        }\\n                    ]\\n                }\\n            },\\n            \\\"InputData\\\":{\\n                \\\"Device\\\":\\\"CustomerInput\\\",\\n                \\\"InfoQualify\\\":\\\"Input\\\",\\n                \\\"InputCommand\\\":\\\"GetConfirmation\\\",\\n                \\\"MaxInputTime\\\":30\\n            }\\n        }\\n    }\\n}\"},{\"language\":\"java\",\"tabTitle\":\"Java\",\"content\":\"SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nInputRequest inputRequest = new InputRequest();\\nDisplayOutput displayOutput = new DisplayOutput();\\ndisplayOutput.setDevice( DeviceType.CUSTOMER_DISPLAY );\\ndisplayOutput.setInfoQualify( InfoQualifyType.DISPLAY );\\nOutputContent outputContent = new OutputContent();\\noutputContent.setOutputFormat( OutputFormatType.TEXT );\\nPredefinedContent predefinedContent = new PredefinedContent();\\npredefinedContent.setReferenceID(\\\"GetSignature\\\");\\noutputContent.setPredefinedContent(predefinedContent);\\n\\nOutputText title = new OutputText();\\ntitle.setText(\\\"Please sign\\\");\\nOutputText additionalText = new OutputText();\\nadditionalText.setText(\\\"Do you accept the Delivery Waver form?\\\");\\noutputContent.getOutputText().add(title);\\noutputContent.getOutputText().add(additionalText);\\noutputContent.getOutputText().add(declineAnswer);\\noutputContent.getOutputText().add(agreeAnswer);\\ndisplayOutput.setOutputContent(outputContent);\\ninputRequest.setDisplayOutput(displayOutput);\\n\\nInputData inputData = new InputData();\\ninputData.setDevice( DeviceType.CUSTOMER_INPUT );\\ninputData.setInfoQualify( InfoQualifyType.INPUT );\\ninputData.setInputCommand( InputCommandType.GET_CONFIRMATION );\\ninputData.setMaxInputTime( BigInteger.valueOf(30) );\\ninputRequest.setInputData(inputData);\\nsaleToPOIRequest.setInputRequest(inputRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"sc-notice info\"><div>\n<p>Para obter uma lista completa dos campos que voc\u00ea pode transmitir em uma solicita\u00e7\u00e3o de entrada de assinatura, consulte a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/input\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">InputRequest<\/a>.<\/p>\n<\/div><\/div>\n<p>Na resposta, o  <code>AdditionalResponse<\/code> cont\u00e9m a assinatura fornecida pelo cliente. <code>ConfirmedFlag<\/code>: <strong>true<\/strong> indica que o cliente tocou no bot\u00e3o 'agree' \u00e0 direita ou pressionou <strong><img alt=\"\" src=\"\/images\/e\/1\/f\/d\/f\/e1fdf2ab953d26666e876b743ce54acaa22e7206-confirm2x.png\" \/><\/strong> para confirmar o acordo. <code>ConfirmedFlag<\/code>: <strong>false<\/strong> significa que o cliente tocou no bot\u00e3o 'decline' \u00e0 esquerda ou pressionou <strong><img alt=\"\" src=\"\/images\/6\/2\/0\/e\/0\/620e0c5c343676dd2b947bbdb1573f7eebc3caf7-cancel2x.png\" \/><\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'\nExemplo de resposta quando o cliente forneceu uma assinatura'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"SaleToPOIResponse\\\": {\\n    \\\"InputResponse\\\": {\\n      \\\"InputResult\\\": {\\n        \\\"Device\\\": \\\"CustomerInput\\\",\\n        \\\"InfoQualify\\\": \\\"Input\\\",\\n        \\\"Response\\\": {\\n          \\\"Result\\\": \\\"Success\\\",\\n          \\\"AdditionalResponse\\\": \\\"responseData=%7b%20%22unique_id%22%3a%20%22001560864516%22%2c%20%22signature%22%3a%20%7b%20%22data%22%3a%20%5b%20%7b%20%22x%22%3a%20%2249%22%2c%20%22y...signature_format%22%3a%20%22raw%22%20%7d%20%7d\\\"\\n        },\\n        \\\"Input\\\": {\\n          \\\"ConfirmedFlag\\\": true,\\n          \\\"InputCommand\\\": \\\"GetConfirmation\\\"\\n        }\\n      },\\n      \\\"OutputResult\\\": {\\n        \\\"Device\\\": \\\"CustomerDisplay\\\",\\n        \\\"InfoQualify\\\": \\\"Display\\\",\\n        \\\"Response\\\": {\\n          \\\"Result\\\": \\\"Success\\\"\\n        }\\n      }\\n    },\\n    \\\"MessageHeader\\\": {\\n      \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n      \\\"SaleID\\\": \\\"POSSystemID12345\\\",\\n      \\\"MessageClass\\\": \\\"Device\\\",\\n      \\\"MessageCategory\\\": \\\"Input\\\",\\n      \\\"ServiceID\\\": \\\"0207111104\\\",\\n      \\\"POIID\\\": \\\"V400m-324688179\\\",\\n      \\\"MessageType\\\": \\\"Response\\\"\\n    }\\n  }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"sc-notice info\"><div>\n<p>Para obter uma lista completa dos campos que voc\u00ea pode receber em uma resposta de entrada de assinatura, consulte a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/input#responses-200\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">InputResponse<\/a>.<\/p>\n<\/div><\/div>\n<h2 id=\"survey-input\">Sele\u00e7\u00e3o de menu<\/h2>\n<p>Em um <code>InputRequest<\/code> solicitando ao cliente que responda a uma pergunta de m\u00faltipla escolha, \u00e9 necess\u00e1rio especificar os campos comuns para <a href=\"#collect-shopper-input\">coletar informa\u00e7\u00f5es do cliente<\/a> bem como os seguintes valores e campos espec\u00edficos:<\/p>\n<ul>\n<li>\n<p><code>DisplayOutput.OutputContent.PredefinedContent.ReferenceID<\/code>: <strong>MenuButtons<\/strong>. O terminal mostra as respostas para escolher como uma lista rol\u00e1vel de caixas que o usu\u00e1rio pode tocar para selecionar.<\/p>\n<\/li>\n<li>\n<p><code>DisplayOutput.OutputContent.OutputText<\/code>: Uma matriz de apenas um campo <code>Text<\/code> contendo seu pr\u00f3prio texto para mostrar no terminal. Use isso para especificar a pergunta.<\/p>\n<\/li>\n<li>\n<p><code>MenuEntry<\/code>: Uma matriz de at\u00e9 15 itens representando as respostas para voc\u00ea escolher. Cada resposta tem:<\/p>\n<ul>\n<li><code>OutputFormat<\/code>: <strong>Text<\/strong><\/li>\n<li>\n<p><code>OutputText<\/code>: uma matriz de tr\u00eas campos <code>Text<\/code> com seu pr\u00f3prio texto que juntos formam a resposta.<br \/>\nO primeiro campo <code>Text<\/code> ser\u00e1 exibido em negrito. Use uma sequ\u00eancia vazia para os campos <code>Text<\/code> n\u00e3o utilizados.<br \/>\nPor exemplo, voc\u00ea pode escrever uma resposta abreviada no primeiro campo, a resposta longa no segundo campo e n\u00e3o usar o terceiro campo. Ou voc\u00ea pode usar os tr\u00eas campos para o nome, descri\u00e7\u00e3o e r\u00f3tulo do artigo.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>InputData.InputCommand<\/code>: <strong>GetMenuEntry<\/strong><\/p>\n<\/li>\n<\/ul>\n<p>O exemplo a seguir solicita que o cliente responda a uma pergunta da pesquisa.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"'shopper-input_3'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n    \\\"SaleToPOIRequest\\\":{\\n        \\\"MessageHeader\\\":{\\n            \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n            \\\"MessageClass\\\":\\\"Device\\\",\\n            \\\"MessageCategory\\\":\\\"Input\\\",\\n            \\\"MessageType\\\":\\\"Request\\\",\\n            \\\"ServiceID\\\":\\\"0207111104\\\",\\n            \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n            \\\"POIID\\\":\\\"V400m-324688179\\\"\\n        },\\n        \\\"InputRequest\\\":{\\n            \\\"DisplayOutput\\\":{\\n                \\\"Device\\\":\\\"CustomerDisplay\\\",\\n                \\\"InfoQualify\\\":\\\"Display\\\",\\n                \\\"OutputContent\\\":{\\n                    \\\"OutputFormat\\\":\\\"Text\\\",\\n                    \\\"PredefinedContent\\\":{\\n                        \\\"ReferenceID\\\":\\\"MenuButtons\\\"\\n                    },\\n                    \\\"OutputText\\\":[\\n                        {\\n                            \\\"Text\\\":\\\"How was your visit?\\\"\\n                        }\\n                    ]\\n                },\\n                \\\"MenuEntry\\\":[\\n                    {\\n                        \\\"OutputFormat\\\":\\\"Text\\\",\\n                        \\\"OutputText\\\":[\\n                            {\\n                                \\\"Text\\\":\\\"Excellent\\\"\\n                            },\\n                            {\\n                                \\\"Text\\\":\\\"Do not change a thing\\\"\\n                            },\\n                            {\\n                                \\\"Text\\\":\\\"\\\"\\n                            }\\n                        ]\\n                    },\\n                    {\\n                        \\\"OutputFormat\\\":\\\"Text\\\",\\n                        \\\"OutputText\\\":[\\n                            {\\n                                \\\"Text\\\":\\\"Great\\\"\\n                            },\\n                            {\\n                                \\\"Text\\\":\\\"Would surely come again\\\"\\n                            },\\n                            {\\n                                \\\"Text\\\":\\\"\\\"\\n                            }\\n                        ]\\n                    },\\n                    {\\n                        \\\"OutputFormat\\\":\\\"Text\\\",\\n                        \\\"OutputText\\\":[\\n                            {\\n                                \\\"Text\\\":\\\"Good\\\"\\n                            },\\n                            {\\n                                \\\"Text\\\":\\\"What I expected\\\"\\n                            },\\n                            {\\n                                \\\"Text\\\":\\\"\\\"\\n                            }\\n                        ]\\n                    },\\n                    {\\n                        \\\"OutputFormat\\\":\\\"Text\\\",\\n                        \\\"OutputText\\\":[\\n                            {\\n                                \\\"Text\\\":\\\"Mweh\\\"\\n                            },\\n                            {\\n                                \\\"Text\\\":\\\"Could have been better\\\"\\n                            },\\n                            {\\n                                \\\"Text\\\":\\\"\\\"\\n                            }\\n                        ]\\n                    },\\n                    {\\n                        \\\"OutputFormat\\\":\\\"Text\\\",\\n                        \\\"OutputText\\\":[\\n                            {\\n                                \\\"Text\\\":\\\"Terrible\\\"\\n                            },\\n                            {\\n                                \\\"Text\\\":\\\"Will never go here again\\\"\\n                            },\\n                            {\\n                                \\\"Text\\\":\\\"\\\"\\n                            }\\n                        ]\\n                    }\\n                ]\\n            },\\n            \\\"InputData\\\":{\\n                \\\"Device\\\":\\\"CustomerInput\\\",\\n                \\\"InfoQualify\\\":\\\"Input\\\",\\n                \\\"InputCommand\\\":\\\"GetMenuEntry\\\",\\n                \\\"MaxInputTime\\\":120\\n            }\\n        }\\n    }\\n}\"},{\"language\":\"java\",\"tabTitle\":\"Java\",\"content\":\"SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nInputRequest inputRequest = new InputRequest();\\nDisplayOutput displayOutput = new DisplayOutput();\\ndisplayOutput.setDevice( DeviceType.CUSTOMER_DISPLAY );\\ndisplayOutput.setInfoQualify( InfoQualifyType.DISPLAY );\\nOutputContent outputContent = new OutputContent();\\noutputContent.setOutputFormat( OutputFormatType.TEXT );\\nPredefinedContent predefinedContent = new PredefinedContent();\\npredefinedContent.setReferenceID(\\\"MenuButtons\\\");\\noutputContent.setPredefinedContent(predefinedContent);\\n\\nOutputText outputText = new OutputText();\\noutputText.setText(\\\"How was your visit?\\\");\\noutputContent.getOutputText().add(outputText);\\ndisplayOutput.setOutputContent(outputContent);\\n\\nMenuEntry menuEntry1 = new MenuEntry();\\nmenuEntry1.setOutputFormat( OutputFormatType.TEXT );\\nOutputText option1Line1 = new OutputText();\\noption1Line1.setText(\\\"Excellent\\\");\\nOutputText option1Line2 = new OutputText();\\noption1Line2.setText(\\\"Do not change a thing\\\");\\nOutputText option1Line3 = new OutputText();\\noption1Line3.setText(\\\"\\\");\\nmenuEntry1.getOutputText().add(option1Line1);\\nmenuEntry1.getOutputText().add(option1Line2);\\nmenuEntry1.getOutputText().add(option1Line3);\\ndisplayOutput.getMenuEntry().add(menuEntry1);\\n\\nMenuEntry menuEntry2 = new MenuEntry();\\nmenuEntry2.setOutputFormat( OutputFormatType.TEXT );\\nOutputText option2Line1 = new OutputText();\\noption2Line1.setText(\\\"Great\\\");\\nOutputText option2Line2 = new OutputText();\\noption2Line2.setText(\\\"Would surely come again\\\");\\nOutputText option2Line3 = new OutputText();\\noption2Line3.setText(\\\"\\\");\\nmenuEntry2.getOutputText().add(option2Line1);\\nmenuEntry2.getOutputText().add(option2Line2);\\nmenuEntry2.getOutputText().add(option2Line3);\\ndisplayOutput.getMenuEntry().add(menuEntry2);\\n\\nMenuEntry menuEntry3 = new MenuEntry();\\nmenuEntry3.setOutputFormat( OutputFormatType.TEXT );\\nOutputText option3Line1 = new OutputText();\\noption3Line1.setText(\\\"Good\\\");\\nOutputText option3Line2 = new OutputText();\\noption3Line2.setText(\\\"What I expected\\\");\\nOutputText option3Line3 = new OutputText();\\noption3Line3.setText(\\\"\\\");\\nmenuEntry3.getOutputText().add(option3Line1);\\nmenuEntry3.getOutputText().add(option3Line2);\\nmenuEntry3.getOutputText().add(option3Line3);\\ndisplayOutput.getMenuEntry().add(menuEntry3);\\n\\nMenuEntry menuEntry4 = new MenuEntry();\\nmenuEntry4.setOutputFormat( OutputFormatType.TEXT );\\nOutputText option4Line1 = new OutputText();\\noption4Line1.setText(\\\"Mweh\\\");\\nOutputText option4Line2 = new OutputText();\\noption4Line2.setText(\\\"Could have been better\\\");\\nOutputText option4Line3 = new OutputText();\\noption4Line3.setText(\\\"\\\");\\nmenuEntry4.getOutputText().add(option4Line1);\\nmenuEntry4.getOutputText().add(option4Line2);\\nmenuEntry4.getOutputText().add(option4Line3);\\ndisplayOutput.getMenuEntry().add(menuEntry4);\\n\\nMenuEntry menuEntry5 = new MenuEntry();\\nmenuEntry5.setOutputFormat( OutputFormatType.TEXT );\\nOutputText option5Line1 = new OutputText();\\noption5Line1.setText(\\\"Terrible\\\");\\nOutputText option5Line2 = new OutputText();\\noption5Line2.setText(\\\"Will never go here again\\\");\\nOutputText option5Line3 = new OutputText();\\noption5Line3.setText(\\\"\\\");\\nmenuEntry5.getOutputText().add(option5Line1);\\nmenuEntry5.getOutputText().add(option5Line2);\\nmenuEntry5.getOutputText().add(option5Line3);\\ndisplayOutput.getMenuEntry().add(menuEntry5);\\n\\ninputRequest.setDisplayOutput(displayOutput);\\n\\nInputData inputData = new InputData();\\ninputData.setDevice( DeviceType.CUSTOMER_INPUT );\\ninputData.setInfoQualify( InfoQualifyType.INPUT );\\ninputData.setInputCommand( InputCommandType.GET_MENU_ENTRY );\\ninputData.setMaxInputTime( BigInteger.valueOf(120) );\\ninputRequest.setInputData(inputData);\\nsaleToPOIRequest.setInputRequest(inputRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"sc-notice info\"><div>\n<p>Para obter uma lista completa dos campos que voc\u00ea pode passar em uma solicita\u00e7\u00e3o de informa\u00e7\u00e3o pelo menu, consulte a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/input\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">InputRequest<\/a>.<\/p>\n<\/div><\/div>\n<p>Na resposta, a matriz <code>MenuEntryNumber<\/code> indica a resposta que o usu\u00e1rio selecionou. Por exemplo, se a terceira resposta foi selecionada, o terceiro item na matriz \u00e9 <code>1<\/code> e todos os outros itens da matriz s\u00e3o <code>0<\/code>.<br \/>\nSe o usu\u00e1rio se recusou a responder (pressionado <strong><img alt=\"\" src=\"\/images\/6\/2\/0\/e\/0\/620e0c5c343676dd2b947bbdb1573f7eebc3caf7-cancel2x.png\" \/><\/strong>), o <code>InputResult<\/code> possui uma <code>Response.Result<\/code>: <strong>Failure<\/strong> e <code>Response.ErrorCondition<\/code>: <strong>Cancel<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Exemplo de resposta quando o cliente selecionou uma op\u00e7\u00e3o de resposta'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"SaleToPOIResponse\\\": {\\n    \\\"InputResponse\\\": {\\n      \\\"InputResult\\\": {\\n        \\\"Device\\\": \\\"CustomerInput\\\",\\n        \\\"InfoQualify\\\": \\\"Input\\\",\\n        \\\"Response\\\": {\\n          \\\"Result\\\": \\\"Success\\\",\\n          \\\"AdditionalResponse\\\": \\\"responseData=%7b%20%22unique_id%22%3a%20%22001560869035%22%20%7d\\\"\\n        },\\n        \\\"Input\\\": {\\n          \\\"MenuEntryNumber\\\": [\\n            0,\\n            0,\\n            1,\\n            0,\\n            0\\n          ],\\n          \\\"InputCommand\\\": \\\"GetMenuEntry\\\"\\n        }\\n      },\\n      \\\"OutputResult\\\": {\\n        \\\"Device\\\": \\\"CustomerDisplay\\\",\\n        \\\"InfoQualify\\\": \\\"Display\\\",\\n        \\\"Response\\\": {\\n          \\\"Result\\\": \\\"Success\\\"\\n        }\\n      }\\n    },\\n    \\\"MessageHeader\\\": {\\n      \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n      \\\"SaleID\\\": \\\"POSSystemID12345\\\",\\n      \\\"MessageClass\\\": \\\"Device\\\",\\n      \\\"MessageCategory\\\": \\\"Input\\\",\\n      \\\"ServiceID\\\": \\\"0207111104\\\",\\n      \\\"POIID\\\": \\\"V400m-324688179\\\",\\n      \\\"MessageType\\\": \\\"Response\\\"\\n    }\\n  }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"sc-notice info\"><div>\n<p>Para obter uma lista completa dos campos que voc\u00ea pode receber em uma resposta de entrada de pesquisa, consulte a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/input#responses-200\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">InputResponse<\/a>.<\/p>\n<\/div><\/div>\n<h2 id=\"numeric-input\">Entrada num\u00e9rica<\/h2>\n<p>Em uma <code>InputRequest<\/code> solicitando que o cliente insira numerais, \u00e9 necess\u00e1rio especificar os campos comuns para <a href=\"#collect-shopper-input\">coletar informa\u00e7\u00f5es do cliente<\/a> bem como os seguintes valores e campos espec\u00edficos:<\/p>\n<ul>\n<li><code>DisplayOutput.OutputContent.PredefinedContent.ReferenceID<\/code>: <strong>GetDigit<\/strong>. Al\u00e9m do texto que voc\u00ea especificar, o terminal mostrar\u00e1 uma instru\u00e7\u00e3o sobre como confirmar a informa\u00e7\u00e3o.<\/li>\n<li><code>DisplayOutput.OutputContent.OutputText<\/code>: Uma matriz de apenas um campo <code>Text<\/code> contendo seu pr\u00f3prio texto para mostrar no terminal.<\/li>\n<li><code>InputData.InputCommand<\/code>: <strong>DigitString<\/strong><\/li>\n<li><code>InputData.DefaultInputString<\/code>: Espa\u00e7o reservado para a caixa de entrada, para que o usu\u00e1rio saiba qual formato de informa\u00e7\u00e3o voc\u00ea est\u00e1 esperando.<\/li>\n<\/ul>\n<p>O exemplo a seguir mostra uma solicita\u00e7\u00e3o de n\u00famero de telefone ao cliente.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"'shopper-input_4'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n    \\\"SaleToPOIRequest\\\":{\\n        \\\"MessageHeader\\\":{\\n            \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n            \\\"MessageClass\\\":\\\"Device\\\",\\n            \\\"MessageCategory\\\":\\\"Input\\\",\\n            \\\"MessageType\\\":\\\"Request\\\",\\n            \\\"ServiceID\\\":\\\"040\\\",\\n            \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n            \\\"POIID\\\":\\\"V400m-324688179\\\"\\n        },\\n        \\\"InputRequest\\\":{\\n            \\\"DisplayOutput\\\":{\\n                \\\"Device\\\":\\\"CustomerDisplay\\\",\\n                \\\"InfoQualify\\\":\\\"Display\\\",\\n                \\\"OutputContent\\\":{\\n                    \\\"OutputFormat\\\":\\\"Text\\\",\\n                    \\\"PredefinedContent\\\":{\\n                        \\\"ReferenceID\\\":\\\"GetDigit\\\"\\n                    },\\n                    \\\"OutputText\\\":[\\n                        {\\n                            \\\"Text\\\":\\\"Your phone number:\\\"\\n                        }\\n                    ]\\n                }\\n            },\\n            \\\"InputData\\\":{\\n                \\\"Device\\\":\\\"CustomerInput\\\",\\n                \\\"InfoQualify\\\":\\\"Input\\\",\\n                \\\"InputCommand\\\":\\\"DigitString\\\",\\n                \\\"MaxInputTime\\\":30,\\n                \\\"DefaultInputString\\\":\\\"0612345678\\\"\\n            }\\n        }\\n    }\\n}\"},{\"language\":\"java\",\"tabTitle\":\"Java\",\"content\":\"SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nInputRequest inputRequest = new InputRequest();\\nDisplayOutput displayOutput = new DisplayOutput();\\ndisplayOutput.setDevice( DeviceType.CUSTOMER_DISPLAY );\\ndisplayOutput.setInfoQualify( InfoQualifyType.DISPLAY );\\nOutputContent outputContent = new OutputContent();\\noutputContent.setOutputFormat( OutputFormatType.TEXT );\\nPredefinedContent predefinedContent = new PredefinedContent();\\npredefinedContent.setReferenceID(\\\"GetDigit\\\");\\noutputContent.setPredefinedContent(predefinedContent);\\n\\nOutputText outputText = new OutputText();\\noutputText.setText(\\\"Your phone number:\\\");\\noutputContent.getOutputText().add(outputText);\\ndisplayOutput.setOutputContent(outputContent);\\ninputRequest.setDisplayOutput(displayOutput);\\n\\nInputData inputData = new InputData();\\ninputData.setDevice( DeviceType.CUSTOMER_INPUT );\\ninputData.setInfoQualify( InfoQualifyType.INPUT );\\ninputData.setInputCommand( InputCommandType.DIGIT_STRING );\\ninputData.setMaxInputTime( BigInteger.valueOf(30) );\\ninputData.setDefaultInputString(\\\"0612345678\\\");\\ninputRequest.setInputData(inputData);\\nsaleToPOIRequest.setInputRequest(inputRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"sc-notice info\"><div>\n<p>Para obter uma lista completa dos campos que voc\u00ea pode passar em uma solicita\u00e7\u00e3o de informa\u00e7\u00e3o num\u00e9rica, consulte a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/input\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">InputRequest<\/a>.<\/p>\n<\/div><\/div>\n<p>Na resposta, o campo <code>DigitInput<\/code> cont\u00e9m os numerais que o usu\u00e1rio digitou. Se o usu\u00e1rio se recusou a forncer a informa\u00e7\u00e3o (pressionando <strong><img alt=\"\" src=\"\/images\/6\/2\/0\/e\/0\/620e0c5c343676dd2b947bbdb1573f7eebc3caf7-cancel2x.png\" \/><\/strong>), o <code>InputResult<\/code> possui <code>Response.Result<\/code>: <strong>Failure<\/strong>, <code>Response.ErrorCondition<\/code>: <strong>Cancel<\/strong>, e um campo <code>DigitInput<\/code> vazio.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Exemplo de resposta quando o cliente digita um n\u00famero de telefone'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"SaleToPOIResponse\\\": {\\n    \\\"InputResponse\\\": {\\n      \\\"InputResult\\\": {\\n        \\\"Device\\\": \\\"CustomerInput\\\",\\n        \\\"InfoQualify\\\": \\\"Input\\\",\\n        \\\"Response\\\": {\\n          \\\"Result\\\": \\\"Success\\\",\\n          \\\"AdditionalResponse\\\": \\\"responseData=%7b%20%22unique_id%22%3a%20%22001560761701%22%20%7d\\\"\\n        },\\n        \\\"Input\\\": {\\n          \\\"DigitInput\\\": \\\"0687164125\\\",\\n          \\\"InputCommand\\\": \\\"DigitString\\\"\\n        }\\n      },\\n      \\\"OutputResult\\\": {\\n        \\\"Device\\\": \\\"CustomerDisplay\\\",\\n        \\\"InfoQualify\\\": \\\"Display\\\",\\n        \\\"Response\\\": {\\n          \\\"Result\\\": \\\"Success\\\"\\n         }\\n      }\\n    },\\n    \\\"MessageHeader\\\": {\\n      \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n      \\\"SaleID\\\": \\\"POSSystemID12345\\\",\\n      \\\"MessageClass\\\": \\\"Device\\\",\\n      \\\"MessageCategory\\\": \\\"Input\\\",\\n      \\\"ServiceID\\\": \\\"0207111104\\\",\\n      \\\"POIID\\\": \\\"V400m-324688179\\\",\\n      \\\"MessageType\\\": \\\"Response\\\"\\n    }\\n  }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"sc-notice info\"><div>\n<p>Para obter uma lista completa dos campos que voc\u00ea pode receber em uma resposta de informa\u00e7\u00e3o num\u00e9rica, consulte a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/input#responses-200\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">InputResponse<\/a>.<\/p>\n<\/div><\/div>\n<h2 id=\"text-input\">Entrada de texto<\/h2>\n<p>Em uma <code>InputRequest<\/code> solicitando que o usu\u00e1rio insira texto, \u00e9 necess\u00e1rio especificar os campos comuns para <a href=\"#collect-shopper-input\">coletar informa\u00e7\u00f5es do cliente<\/a>, bem como os seguintes valores e campos espec\u00edficos:<\/p>\n<ul>\n<li><code>DisplayOutput.OutputContent.PredefinedContent.ReferenceID<\/code>: <strong>GetText<\/strong>. Al\u00e9m do texto que voc\u00ea especificar, o terminal mostrar\u00e1 uma instru\u00e7\u00e3o sobre como confirmar a informa\u00e7\u00e3o.<\/li>\n<li><code>DisplayOutput.OutputContent.OutputText<\/code>: Uma matriz de apenas um campo <code>Text<\/code> contendo seu pr\u00f3prio texto para mostrar no terminal.<\/li>\n<li><code>InputData.InputCommand<\/code>: <strong>TextString<\/strong><\/li>\n<li><code>InputData.DefaultInputString<\/code>: Espa\u00e7o reservado para texto da caixa de entrada, para que o usu\u00e1rio saiba qual formato de informa\u00e7\u00e3o voc\u00ea est\u00e1 esperando<\/li>\n<\/ul>\n<p>O exemplo a seguir solicita ao cliente seu endere\u00e7o de e-mail<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"'shopper-input_5'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n    \\\"SaleToPOIRequest\\\":{\\n        \\\"MessageHeader\\\":{\\n            \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n            \\\"MessageClass\\\":\\\"Device\\\",\\n            \\\"MessageCategory\\\":\\\"Input\\\",\\n            \\\"MessageType\\\":\\\"Request\\\",\\n            \\\"ServiceID\\\":\\\"040\\\",\\n            \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n            \\\"POIID\\\":\\\"V400m-324688179\\\"\\n        },\\n        \\\"InputRequest\\\":{\\n            \\\"DisplayOutput\\\":{\\n                \\\"Device\\\":\\\"CustomerDisplay\\\",\\n                \\\"InfoQualify\\\":\\\"Display\\\",\\n                \\\"OutputContent\\\":{\\n                    \\\"OutputFormat\\\":\\\"Text\\\",\\n                    \\\"PredefinedContent\\\":{\\n                        \\\"ReferenceID\\\":\\\"GetText\\\"\\n                    },\\n                    \\\"OutputText\\\":[\\n                        {\\n                            \\\"Text\\\":\\\"Your email address:\\\"\\n                        }\\n                    ]\\n                }\\n            },\\n            \\\"InputData\\\":{\\n                \\\"Device\\\":\\\"CustomerInput\\\",\\n                \\\"InfoQualify\\\":\\\"Input\\\",\\n                \\\"InputCommand\\\":\\\"TextString\\\",\\n                \\\"MaxInputTime\\\":120,\\n                \\\"DefaultInputString\\\":\\\"name@domain.com\\\"\\n            }\\n        }\\n    }\\n}\"},{\"language\":\"java\",\"tabTitle\":\"Java\",\"content\":\"SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nInputRequest inputRequest = new InputRequest();\\nDisplayOutput displayOutput = new DisplayOutput();\\ndisplayOutput.setDevice( DeviceType.CUSTOMER_DISPLAY );\\ndisplayOutput.setInfoQualify( InfoQualifyType.DISPLAY );\\nOutputContent outputContent = new OutputContent();\\noutputContent.setOutputFormat( OutputFormatType.TEXT );\\nPredefinedContent predefinedContent = new PredefinedContent();\\npredefinedContent.setReferenceID(\\\"GetText\\\");\\noutputContent.setPredefinedContent(predefinedContent);\\n\\nOutputText outputText = new OutputText();\\noutputText.setText(\\\"Your email address:);\\noutputContent.getOutputText().add(outputText);\\ndisplayOutput.setOutputContent(outputContent);\\ninputRequest.setDisplayOutput(displayOutput);\\n\\nInputData inputData = new InputData();\\ninputData.setDevice( DeviceType.CUSTOMER_INPUT );\\ninputData.setInfoQualify( InfoQualifyType.INPUT );\\ninputData.setInputCommand( InputCommandType.TEXT_STRING );\\ninputData.setMaxInputTime( BigInteger.valueOf(120) );\\ninputData.setDefaultInputString(\\\"name@domain.com\\\");\\ninputRequest.setInputData(inputData);\\nsaleToPOIRequest.setInputRequest(inputRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"sc-notice info\"><div>\n<p>Para obter uma lista completa dos campos que voc\u00ea pode passar em uma solicita\u00e7\u00e3o de informa\u00e7\u00e3o de texto, consulte a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/input\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">InputRequest<\/a>.<\/p>\n<\/div><\/div>\n<p>Na resposta, o campo <code>TextInput<\/code> field contains the text that the user entered. Se o usu\u00e1rio se negou a fornecer a informa\u00e7\u00e3o (pressionado <strong><img alt=\"\" src=\"\/images\/6\/2\/0\/e\/0\/620e0c5c343676dd2b947bbdb1573f7eebc3caf7-cancel2x.png\" \/><\/strong>), o <code>InputResult<\/code> possui <code>Response.Result<\/code>: <strong>Failure<\/strong>, <code>Response.ErrorCondition<\/code>: <strong>Cancel<\/strong>, e um campo <code>TextInput<\/code> vazio.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Exemplo de resposta para quando o cliente inseriu um endere\u00e7o de e-mail'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"SaleToPOIResponse\\\": {\\n    \\\"InputResponse\\\": {\\n      \\\"InputResult\\\": {\\n        \\\"Device\\\": \\\"CustomerInput\\\",\\n        \\\"InfoQualify\\\": \\\"Input\\\",\\n        \\\"Response\\\": {\\n          \\\"Result\\\": \\\"Success\\\",\\n          \\\"AdditionalResponse\\\": \\\"responseData=%7b%20%22unique_id%22%3a%20%22001560763410%22%20%7d\\\"\\n        },\\n        \\\"Input\\\": {\\n          \\\"TextInput\\\": \\\"resultingemail@example.com\\\",\\n          \\\"InputCommand\\\": \\\"TextString\\\"\\n        }\\n      },\\n      \\\"OutputResult\\\": {\\n        \\\"Device\\\": \\\"CustomerDisplay\\\",\\n        \\\"InfoQualify\\\": \\\"Display\\\",\\n        \\\"Response\\\": {\\n          \\\"Result\\\": \\\"Success\\\"\\n        }\\n      }\\n    },\\n    \\\"MessageHeader\\\": {\\n      \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n      \\\"SaleID\\\": \\\"POSSystemID12345\\\",\\n      \\\"MessageClass\\\": \\\"Device\\\",\\n      \\\"MessageCategory\\\": \\\"Input\\\",\\n      \\\"ServiceID\\\": \\\"0207111104\\\",\\n      \\\"POIID\\\": \\\"V400m-324688179\\\",\\n      \\\"MessageType\\\": \\\"Response\\\"\\n    }\\n  }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div class=\"sc-notice info\"><div>\n<p>Para obter uma lista completa dos campos que voc\u00ea pode receber em uma resposta de informa\u00e7\u00e3o de texto, consulte a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/input#responses-200\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">InputResponse<\/a><\/p>\n<\/div><\/div>","url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/shopper-engagement\/shopper-input","articleFields":{"description":"Aprenda a usar o terminal para coletar informa\u00e7\u00f5es de seus clientes ou equipe.","last_edit_on":"14-05-2020 17:08"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/shopper-engagement\/shopper-input","title":"Coletar informa\u00e7\u00f5es","content":"Al\u00e9m de efetuar pagamentos, os terminais da Adyen podem solicitar informa\u00e7\u00f5es ao seu cliente ou equipe. Isso permite que voc\u00ea colete o endere\u00e7o de e-mail do cliente, por exemplo, ou realize uma pesquisa. O fluxo de comunica\u00e7\u00e3o \u00e9 entre sua caixa registradora e o terminal e n\u00e3o envolve o back-end da Adyen. Voc\u00ea precisa processar a informa\u00e7\u00e3o coletada com sua pr\u00f3pria l\u00f3gica de neg\u00f3cios.\nExistem v\u00e1rios tipos de InputRequest:\n\nConfirma\u00e7\u00e3o - Mostre algumas informa\u00e7\u00f5es e pe\u00e7a ao cliente para confirmar se concorda.\nAssinatura - Mostre algumas informa\u00e7\u00f5es e pe\u00e7a ao cliente que confirme fornecendo sua assinatura.\nMenu - Mostre uma pergunta de m\u00faltipla escolha e deixe o usu\u00e1rio selecionar uma das respostas. Voc\u00ea pode usar isso para pesquisas do NPS, listas de pedidos e outros.\nNum\u00e9rico - Voc\u00ea normalmente usa isso para pedir ao cliente o n\u00famero de telefone. Outro exemplo \u00e9 um fluxo de pagamento na mesa em que voc\u00ea solicita \u00e0 sua equipe o n\u00famero da mesa.\nTexto - Voc\u00ea normalmente usa isso para pedir ao cliente o endere\u00e7o de e-mail.\n\nPara cada tipo de entrada, fornecemos elementos predefinidos para exibi\u00e7\u00e3o no visor do terminal e campos que voc\u00ea precisa preencher com seu pr\u00f3prio texto. O usu\u00e1rio digita uma resposta na tela ou nos bot\u00f5es do teclado do terminal\n\nVoc\u00ea n\u00e3o pode solicitar informa\u00e7\u00f5es de clientes em terminais que n\u00e3o oferecem suporte \u00e0 API de Terminais ou em terminais que suportam apenas um subconjunto da API de Terminais.\n\nColetar informa\u00e7\u00f5es do usu\u00e1rio\nEsse \u00e9 o procedimento geral para fazer uma pergunta ao cliente ou sua equipe e coletar a resposta. Consulte os tipos de entrada para detalhes espec\u00edficos.\n\n\nFa\u00e7a uma solicita\u00e7\u00e3o POST para um endpoint da API de terminais, especificando:\n\n\nObjeto MessageHeader: Segue a estrutra da MessageHeader padr\u00e3o, explicada nos fundamentos da API de terminais:\n\nProtocolVersion: 3.0\nMessageClass: Device\nMessageCategory: Input\nMessageType: Request\nSaleID: Seu ID exclusivo para a caixa registradora.\nServiceID: Seu ID exclusivo para a tentativa de transa\u00e7\u00e3o, consistindo em 1 a 10 caracteres alfanum\u00e9ricos. Esse valor precisa ser exclusivo nas \u00faltimas 48 horas.\n\nPOIID: ID exclusivo do terminal. Isso indica para qual terminal o pagamento ser\u00e1 roteado.\n\n\n\n\n\nInputRequest.DisplayOutput: Esta parte do corpo da solicita\u00e7\u00e3o define o que \u00e9 mostrado no terminal:\n\n\nDevice: CustomerDisplay\n\n\nInfoQualify: Display\n\n\nOutputContent.OutputFormat: Text.\n\n\nOutputContent.PredefinedContent.ReferenceID: TO conjunto de elementos predefinidos que voc\u00ea deseja usar:\n\nGetConfirmation: elementos predefinidos para solicitar confirma\u00e7\u00e3o.\nGetSignature: elementos predefinidos para solicitar uma assinatura.\nMenuButtons: elementos predefinidos para permitir que o usu\u00e1rio selecione uma resposta.\nGetDigit: elementos predefinidos para solicitar uma informa\u00e7\u00e3o num\u00e9rica.\n\nGetText: elementos predefinidos para solicitar uma informa\u00e7\u00e3o de texto.\n\n\n\n\n\nOutputContent.OutputText: Uma matriz de um ou mais campos Text contendo seu pr\u00f3prio texto para mostrar no terminal. Consulte os tipos de entrada abaixo para aprender como usar esses campos.\n\n\n\n\n\nInputRequest.InputData: Esta parte do corpo da solicita\u00e7\u00e3o lida com a informa\u00e7\u00e3o do usu\u00e1rio:\n\n\nDevice: CustomerInput.\n\n\nInfoQualify: Input.\n\n\nInputCommand: Comando para lidar com o tipo de informa\u00e7\u00e3o do usu\u00e1rio:\n\nGetConfirmation: solicite confirma\u00e7\u00e3o ou assinatura.\nGetMenuEntry: pe\u00e7a para selecionar uma resposta para uma pergunta de m\u00faltipla escolha.\nDigitString: solicita informa\u00e7\u00e3o num\u00e9rica.\n\nTextString: solicita informa\u00e7\u00e3o de texto.\n\n\n\n\n\nMaxInputTime: Tempo limite em segundos. Este \u00e9 o tempo que o usu\u00e1rio obt\u00e9m para concluir sua resposta.\n\n\n\n\nO exemplo a seguir mostra os campos comuns para todos os tipos de informa\u00e7\u00e3o.\n\n\n\n\nAlguns tipos de informa\u00e7\u00f5es requerem campos adicionais ou valores espec\u00edficos. Consulte os tipos de entrada abaixo.\n\n\n\nAguarde o usu\u00e1rio fornecer a informa\u00e7\u00e3o solicitada usando os bot\u00f5es na tela ou o teclado do terminal.\n\nA informa\u00e7\u00e3o fornecida pelo cliente ou sua equipe n\u00e3o \u00e9 validada em um formato.\n\nNa resposta, o InputResult mostra se o usu\u00e1rio concordou ou discordou, forneceu uma assinatura, selecionou uma resposta para a pergunta de m\u00faltipla escolha, inseriu n\u00fameros ou texto ou recusou-se a fornecer informa\u00e7\u00f5es.\nSe o pedido expirar, a resposta conter\u00e1 um \n  EventNotification\n com os EventDetails: message=Did+not+receive+a+response+from+the+POI.\n\n\nPasse os dados relevantes do InputResult para o seu sistema para valida\u00e7\u00e3o e uso posterior.\n\n\nConfirma\u00e7\u00e3o\nEm um InputRequest solicitando que o cliente confirme alguma informa\u00e7\u00e3o, \u00e9 necess\u00e1rio especificar os campos comuns para coletar as informa\u00e7\u00f5es do usu\u00e1rio, bem como os seguintes valores e campos espec\u00edficos:\n\n\nDisplayOutput.OutputContent.PredefinedContent.ReferenceID: GetConfirmation.\n\n\nDisplayOutput.OutputContent.OutputText: Uma matriz de quatro campos Text contendo seu pr\u00f3prio texto para mostrar no terminal.\n\nO primeiro campo Text \u00e9 o t\u00edtulo.\nO segundo campo Text representa um texto adicional que pode ser longo e \u00e9 rol\u00e1vel.\nO terceiro campo Text \u00e9 o t\u00edtulo do bot\u00e3o 'decline' \u00e0 esquerda.\n\nO quarto campo Text \u00e9 o t\u00edtulo do bot\u00e3o 'agree' \u00e0 direita.\n\n\n\n\n\nInputData.InputCommand: GetConfirmation\n\n\nO exemplo a seguir pede ao cliente para confirmar que concorda.\n\n    \n\n\nPara obter uma lista completa dos campos que voc\u00ea pode passar em uma solicita\u00e7\u00e3o de informa\u00e7\u00e3o de confirma\u00e7\u00e3o, consulte a  InputRequest.\n\nNa resposta, ConfirmedFlag: true indica que o cliente tocou no bot\u00e3o 'agree' \u00e0 direita ou pressionou  para confirmar o seu acordo.  ConfirmedFlag: false significa que o cliente tocou no bot\u00e3o 'decline' \u00e0 esquerda ou pressionou .\n\n    \n\n\nPara obter uma lista completa dos campos que voc\u00ea pode receber em uma resposta de informa\u00e7\u00e3o de confirma\u00e7\u00e3o, consulte a  InputResponse.\n\nAssinatura\nEm um InputRequest solicitando que o cliente assine algo e confirme, \u00e9 necess\u00e1rio especificar os campos comuns para coletar a informa\u00e7\u00e3o do cliente bem como os seguintes valores e campos espec\u00edficos:\n\n\nDisplayOutput.OutputContent.PredefinedContent.ReferenceID: GetSignature. Al\u00e9m do texto que voc\u00ea especificar, o terminal mostrar\u00e1 uma caixa de entrada para o cliente desenhar sua assinatura.\n\n\nDisplayOutput.OutputContent.OutputText: An array of four Text fields containing your own text to show on the terminal.\n\nO primeiro campo Text \u00e9 o t\u00edtulo.\nO segundo campo Text cont\u00e9m informa\u00e7\u00f5es adicionais.\nO terceiro campo Text \u00e9 o t\u00edtulo do bot\u00e3o 'decline' \u00e0 esquerda.\n\nO quarto campo Text \u00e9 o t\u00edtulo do bot\u00e3o 'agree' \u00e0 direita.\n\n\n\n\n\nInputData.InputCommand: GetConfirmation\n\n\nO exemplo a seguir solicita a assinatura do cliente.\n\n    \n\n\nPara obter uma lista completa dos campos que voc\u00ea pode transmitir em uma solicita\u00e7\u00e3o de entrada de assinatura, consulte a  InputRequest.\n\nNa resposta, o  AdditionalResponse cont\u00e9m a assinatura fornecida pelo cliente. ConfirmedFlag: true indica que o cliente tocou no bot\u00e3o 'agree' \u00e0 direita ou pressionou  para confirmar o acordo. ConfirmedFlag: false significa que o cliente tocou no bot\u00e3o 'decline' \u00e0 esquerda ou pressionou .\n\n    \n\n\nPara obter uma lista completa dos campos que voc\u00ea pode receber em uma resposta de entrada de assinatura, consulte a  InputResponse.\n\nSele\u00e7\u00e3o de menu\nEm um InputRequest solicitando ao cliente que responda a uma pergunta de m\u00faltipla escolha, \u00e9 necess\u00e1rio especificar os campos comuns para coletar informa\u00e7\u00f5es do cliente bem como os seguintes valores e campos espec\u00edficos:\n\n\nDisplayOutput.OutputContent.PredefinedContent.ReferenceID: MenuButtons. O terminal mostra as respostas para escolher como uma lista rol\u00e1vel de caixas que o usu\u00e1rio pode tocar para selecionar.\n\n\nDisplayOutput.OutputContent.OutputText: Uma matriz de apenas um campo Text contendo seu pr\u00f3prio texto para mostrar no terminal. Use isso para especificar a pergunta.\n\n\nMenuEntry: Uma matriz de at\u00e9 15 itens representando as respostas para voc\u00ea escolher. Cada resposta tem:\n\nOutputFormat: Text\n\nOutputText: uma matriz de tr\u00eas campos Text com seu pr\u00f3prio texto que juntos formam a resposta.\nO primeiro campo Text ser\u00e1 exibido em negrito. Use uma sequ\u00eancia vazia para os campos Text n\u00e3o utilizados.\nPor exemplo, voc\u00ea pode escrever uma resposta abreviada no primeiro campo, a resposta longa no segundo campo e n\u00e3o usar o terceiro campo. Ou voc\u00ea pode usar os tr\u00eas campos para o nome, descri\u00e7\u00e3o e r\u00f3tulo do artigo.\n\n\n\n\n\nInputData.InputCommand: GetMenuEntry\n\n\nO exemplo a seguir solicita que o cliente responda a uma pergunta da pesquisa.\n\n    \n\n\nPara obter uma lista completa dos campos que voc\u00ea pode passar em uma solicita\u00e7\u00e3o de informa\u00e7\u00e3o pelo menu, consulte a  InputRequest.\n\nNa resposta, a matriz MenuEntryNumber indica a resposta que o usu\u00e1rio selecionou. Por exemplo, se a terceira resposta foi selecionada, o terceiro item na matriz \u00e9 1 e todos os outros itens da matriz s\u00e3o 0.\nSe o usu\u00e1rio se recusou a responder (pressionado ), o InputResult possui uma Response.Result: Failure e Response.ErrorCondition: Cancel.\n\n    \n\n\nPara obter uma lista completa dos campos que voc\u00ea pode receber em uma resposta de entrada de pesquisa, consulte a  InputResponse.\n\nEntrada num\u00e9rica\nEm uma InputRequest solicitando que o cliente insira numerais, \u00e9 necess\u00e1rio especificar os campos comuns para coletar informa\u00e7\u00f5es do cliente bem como os seguintes valores e campos espec\u00edficos:\n\nDisplayOutput.OutputContent.PredefinedContent.ReferenceID: GetDigit. Al\u00e9m do texto que voc\u00ea especificar, o terminal mostrar\u00e1 uma instru\u00e7\u00e3o sobre como confirmar a informa\u00e7\u00e3o.\nDisplayOutput.OutputContent.OutputText: Uma matriz de apenas um campo Text contendo seu pr\u00f3prio texto para mostrar no terminal.\nInputData.InputCommand: DigitString\nInputData.DefaultInputString: Espa\u00e7o reservado para a caixa de entrada, para que o usu\u00e1rio saiba qual formato de informa\u00e7\u00e3o voc\u00ea est\u00e1 esperando.\n\nO exemplo a seguir mostra uma solicita\u00e7\u00e3o de n\u00famero de telefone ao cliente.\n\n    \n\n\nPara obter uma lista completa dos campos que voc\u00ea pode passar em uma solicita\u00e7\u00e3o de informa\u00e7\u00e3o num\u00e9rica, consulte a  InputRequest.\n\nNa resposta, o campo DigitInput cont\u00e9m os numerais que o usu\u00e1rio digitou. Se o usu\u00e1rio se recusou a forncer a informa\u00e7\u00e3o (pressionando ), o InputResult possui Response.Result: Failure, Response.ErrorCondition: Cancel, e um campo DigitInput vazio.\n\n    \n\n\nPara obter uma lista completa dos campos que voc\u00ea pode receber em uma resposta de informa\u00e7\u00e3o num\u00e9rica, consulte a  InputResponse.\n\nEntrada de texto\nEm uma InputRequest solicitando que o usu\u00e1rio insira texto, \u00e9 necess\u00e1rio especificar os campos comuns para coletar informa\u00e7\u00f5es do cliente, bem como os seguintes valores e campos espec\u00edficos:\n\nDisplayOutput.OutputContent.PredefinedContent.ReferenceID: GetText. Al\u00e9m do texto que voc\u00ea especificar, o terminal mostrar\u00e1 uma instru\u00e7\u00e3o sobre como confirmar a informa\u00e7\u00e3o.\nDisplayOutput.OutputContent.OutputText: Uma matriz de apenas um campo Text contendo seu pr\u00f3prio texto para mostrar no terminal.\nInputData.InputCommand: TextString\nInputData.DefaultInputString: Espa\u00e7o reservado para texto da caixa de entrada, para que o usu\u00e1rio saiba qual formato de informa\u00e7\u00e3o voc\u00ea est\u00e1 esperando\n\nO exemplo a seguir solicita ao cliente seu endere\u00e7o de e-mail\n\n    \n\n\nPara obter uma lista completa dos campos que voc\u00ea pode passar em uma solicita\u00e7\u00e3o de informa\u00e7\u00e3o de texto, consulte a  InputRequest.\n\nNa resposta, o campo TextInput field contains the text that the user entered. Se o usu\u00e1rio se negou a fornecer a informa\u00e7\u00e3o (pressionado ), o InputResult possui Response.Result: Failure, Response.ErrorCondition: Cancel, e um campo TextInput vazio.\n\n    \n\n\nPara obter uma lista completa dos campos que voc\u00ea pode receber em uma resposta de informa\u00e7\u00e3o de texto, consulte a  InputResponse\n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Terminais","lvl2":"Shopper engagement","lvl3":"Coletar informa\u00e7\u00f5es"},"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\/shopper-input"},"levels":4,"category":"In-person payments","category_color":"green","tags":["Coletar","informa\u00e7\u00f5es"]},"articleFiles":{"shopper-input_0.json":"<p alt=\"\">shopper-input_0.json<\/p>","shopper-input_1.json":"<p alt=\"\">shopper-input_1.json<\/p>","shopper-input_2.json":"<p alt=\"\">shopper-input_2.json<\/p>","shopper-input_3.json":"<p alt=\"\">shopper-input_3.json<\/p>","shopper-input_4.json":"<p alt=\"\">shopper-input_4.json<\/p>","shopper-input_5.json":"<p alt=\"\">shopper-input_5.json<\/p>"}}
