{"title":"Aquisi\u00e7\u00e3o de cart\u00e3o","category":"default","creationDate":1776961627,"content":"<p>A aquisi\u00e7\u00e3o do cart\u00e3o permite recuperar informa\u00e7\u00f5es do cart\u00e3o e do cliente antes de criar uma solicita\u00e7\u00e3o de pagamento. Existem v\u00e1rias situa\u00e7\u00f5es em que isso pode ser ben\u00e9fico, por exemplo:<\/p>\n<ul>\n<li>Reconhecendo o cart\u00e3o ou o cliente com base no  <strong>alias do cart\u00e3o<\/strong> ou na <strong>refer\u00eancia do cliente<\/strong> que voc\u00ea recebe na resposta. Voc\u00ea pode personalizar a experi\u00eancia de compra ou obter informa\u00e7\u00f5es atrav\u00e9s da an\u00e1lise de dados. Consulte <a href=\"\/pt\/point-of-sale\/shopper-recognition\">Reconhecimento de clientes<\/a> para obter mais informa\u00e7\u00f5es.<\/li>\n<li>Realizando uma verifica\u00e7\u00e3o de elegibilidade para <a href=\"\/pt\/point-of-sale\/tax-free-shopping\">compras isentas de impostos<\/a>.<\/li>\n<\/ul>\n<h2>Como funciona<\/h2>\n<p>Antes de acionar um pagamento:<\/p>\n<ol>\n<li>Voc\u00ea faz uma solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o (consulte a <a href=\"#card-acquisition-request\">Etapa 1<\/a>). Voc\u00ea pode incluir o valor a pagar nesta solicita\u00e7\u00e3o.<\/li>\n<li>O terminal de pagamento solicita que o cliente apresente seu cart\u00e3o.\n<div class=\"sc-notice note\"><div>\n<p>Para uma transa\u00e7\u00e3o com chip de contato, o cliente n\u00e3o deve remover o cart\u00e3o do terminal.<\/p>\n<\/div><\/div><\/li>\n<li>Voc\u00ea aplica sua l\u00f3gica de neg\u00f3cios ap\u00f3s receber a resposta de aquisi\u00e7\u00e3o do cart\u00e3o. Por exemplo:\n<ul>\n<li>Voc\u00ea pode usar o pa\u00eds do emissor e o cart\u00e3o BIN na resposta para determinar se \u00e9 permitido fazer compras isentas de impostos.<\/li>\n<li>Voc\u00ea pode verificar se esse cliente \u00e9 reconhecido. Se n\u00e3o, voc\u00ea pode fazer uma solicita\u00e7\u00e3o de entrada para solicitar que eles se inscrevam no seu programa de fidelidade. Se sim, voc\u00ea pode verificar se eles se qualificam para um desconto, presente ou oferta especial.<\/li>\n<\/ul><\/li>\n<li>Voc\u00ea faz uma solicita\u00e7\u00e3o de pagamento que inclui a  <code>TransactionID<\/code> a partir da aquisi\u00e7\u00e3o do cart\u00e3o (consulte a <a href=\"#continue-with-payment\">Etapa 2<\/a>). Dependendo da sua l\u00f3gica de neg\u00f3cios, pode ser necess\u00e1rio incluir campos espec\u00edficos nesta solicita\u00e7\u00e3o ou alterar o valor. Para o cliente, a aquisi\u00e7\u00e3o do cart\u00e3o e o pagamento subsequente parecer\u00e3o uma \u00fanica a\u00e7\u00e3o.<\/li>\n<li>O terminal mostra o valor a ser pago e o pagamento \u00e9 conclu\u00eddo.\n<div class=\"sc-notice info\"><div>\n<p>Se o valor da solicita\u00e7\u00e3o de pagamento for igual ao valor da solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o, um cliente que use um cart\u00e3o que realizada transa\u00e7\u00f5es sem contato precisar\u00e1 tocar no cart\u00e3o apenas uma vez. Caso contr\u00e1rio, eles precisar\u00e3o tocar duas vezes no cart\u00e3o: uma para os detalhes do cart\u00e3o e outra para o pagamento.<\/p>\n<\/div><\/div><\/li>\n<\/ol>\n<p>Voc\u00ea tamb\u00e9m pode <a href=\"#cancel-card-acquisition\">cancelar a aquisi\u00e7\u00e3o do cart\u00e3o<\/a> em vez de continuar com um pagamento. Voc\u00ea faria isso, por exemplo, se os dados recuperados do cart\u00e3o n\u00e3o se qualificarem para uma transa\u00e7\u00e3o.<\/p>\n<h2>Antes de voc\u00ea come\u00e7ar<\/h2>\n<p>Antes de iniciar a aquisi\u00e7\u00e3o do cart\u00e3o:<\/p>\n<ol>\n<li>Verifique se voc\u00ea criou uma integra\u00e7\u00e3o que pode <a href=\"\/pt\/point-of-sale\/basic-tapi-integration\/make-a-payment\">efetuar um pagamento<\/a>.<\/li>\n<li>Em sua <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>, v\u00e1 para <strong>Developers<\/strong> &gt; <strong>Additional data<\/strong>, selecione os dados necess\u00e1rios para o seu caso de uso. Por exemplo, detalhes recorrentes para reconhecimento do cliente. A API de terminais retorna esses dados no <code>AdditionalResponse<\/code>.<\/li>\n<\/ol>\n<h2 id=\"card-acquisition-request\">Etapa 1: Adquirir detalhes do cart\u00e3o<\/h2>\n<p>Para recuperar detalhes do cart\u00e3o e do cliente antes de efetuar um pagamento:<\/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><code>MessageHeader<\/code>: Segue a estrutura 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>, que incluem:<\/p>\n<ul>\n<li><code>ProtocolVersion<\/code>: <strong>3.0<\/strong><\/li>\n<li><code>MessageClass<\/code>: <strong>Service<\/strong><\/li>\n<li><code>MessageCategory<\/code>: <strong>CardAcquisition<\/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 esta 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 pedido ser\u00e1 roteado.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/cardacquisition\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CardAcquisitionRequest<\/a>: O corpo da solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o, que inclui:<\/p>\n<ul>\n<li><code>SaleData.SaleTransactionID.TransactionID<\/code>: Sua refer\u00eancia exclusiva para esta solicita\u00e7\u00e3o.<\/li>\n<li><code>SaleData.SaleTransactionID.TimeStamp<\/code>: Data e hora da solicita\u00e7\u00e3o, no <a href=\"https:\/\/en.wikipedia.org\/wiki\/ISO_8601#Coordinated_Universal_Time_(UTC)\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">formato UTC<\/a>.<\/li>\n<li><code>SaleData.TokenRequestedType<\/code> <div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;warning&quot;>\n        Optional\n    <\/tag>\n<\/div>\n: <strong>Customer<\/strong>. Isso retorna o alias do cart\u00e3o no campo <code>TokenValue<\/code> da resposta. Se voc\u00ea n\u00e3o incluir o campo <code>TokenRequestedType<\/code>, o alias do cart\u00e3o ser\u00e1 retornado apenas no <code>AdditionalResponse<\/code>, e voc\u00ea precisar\u00e1 decodific\u00e1-lo para obter o alias do cart\u00e3o.<\/li>\n<li><code>CardAcquisitionTransaction<\/code>: Este objeto est\u00e1 vazio ou cont\u00e9m:\n<ul>\n<li><code>TotalAmount<\/code>: Valor da transa\u00e7\u00e3o.<br \/>\nSe o valor for o mesmo da solicita\u00e7\u00e3o de pagamento subsequente, uma transa\u00e7\u00e3o sem contato n\u00e3o exigir\u00e1 tocar novamente no cart\u00e3o para o pagamento<br \/>\nVoc\u00ea pode alterar o valor posteriormente (na solicita\u00e7\u00e3o de pagamento) com base nas informa\u00e7\u00f5es da caixa registradora, por exemplo, para dar um desconto de fidelidade. Se voc\u00ea espera que o valor mude na maioria dos casos, por exemplo, se voc\u00ea fizer uma aquisi\u00e7\u00e3o de cart\u00e3o assim que o primeiro item for digitalizado, poder\u00e1 optar por omitir o campo <code>TotalAmount<\/code>.<\/li>\n<\/ul><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"''\" :id=\"'card-acquisition'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n    \\\"SaleToPOIRequest\\\":{\\n        \\\"MessageHeader\\\":{\\n            \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n            \\\"MessageClass\\\":\\\"Service\\\",\\n            \\\"MessageCategory\\\":\\\"CardAcquisition\\\",\\n            \\\"MessageType\\\":\\\"Request\\\",\\n            \\\"ServiceID\\\":\\\"282\\\",\\n            \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n            \\\"POIID\\\":\\\"V400m-346403161\\\"\\n        },\\n        \\\"CardAcquisitionRequest\\\":{\\n            \\\"SaleData\\\":{\\n                \\\"SaleTransactionID\\\":{\\n                    \\\"TransactionID\\\":\\\"369\\\",\\n                    \\\"TimeStamp\\\":\\\"2021-03-05T12:22:57.449Z\\\"\\n                },\\n                \\\"{hint:Optional, returns the card alias in TokenValue}TokenRequestedType{\\\/hint}\\\":\\\"Customer\\\"\\n            },\\n            \\\"CardAcquisitionTransaction\\\":{\\n                \\\"{hint:Optional}TotalAmount{\\\/hint}\\\":16.98\\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\\\";\\nString transactionID = \\\"YOUR_UNIQUE_TRANSACTION_ID\\\";\\n\\nSaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nmessageHeader.setProtocolVersion(\\\"3.0\\\");\\nmessageHeader.setMessageClass( MessageClassType.SERVICE );\\nmessageHeader.setMessageCategory( MessageCategoryType.CARD_ACQUISITION );\\nmessageHeader.setMessageType( MessageType.REQUEST );\\nmessageHeader.setServiceID(serviceID);\\nmessageHeader.setSaleID(saleID);\\nmessageHeader.setPOIID(POIID);\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nCardAcquisitionRequest cardAcquisitionRequest = new CardAcquisitionRequest();\\nSaleData saleData = new SaleData();\\nTransactionIdentification saleTransactionID = new TransactionIdentification();\\nsaleTransactionID.setTransactionID(transactionID);\\nsaleTransactionID.setTimeStamp(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));\\nsaleData.setSaleTransactionID(saleTransactionID);\\nsaleData.setTokenRequestedType( TokenRequestedType.CUSTOMER );\\ncardAcquisitionRequest.setSaleData(saleData);\\n\\nCardAcquisitionTransaction cardAcquisitionTransaction = new CardAcquisitionTransaction();\\ncardAcquisitionTransaction.setTotalAmount( BigDecimal.valueOf(16.98) );\\ncardAcquisitionRequest.setCardAcquisitionTransaction(cardAcquisitionTransaction);\\nsaleToPOIRequest.setCardAcquisitionRequest(cardAcquisitionRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>No <code>CardAcquisitionResponse<\/code>, observe o seguinte:<\/p>\n<ul>\n<li><code>POIData.POITransactionID<\/code>: O <code>TimeStamp<\/code> e <code>TransactionID<\/code> desta solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o. Voc\u00ea precisar\u00e1 desses dados posteriormente quando continuar com um pagamento.<\/li>\n<li><code>PaymentInstrumentData.CardData<\/code>: As informa\u00e7\u00f5es do cart\u00e3o, que est\u00e3o dispon\u00edveis no pr\u00f3prio cart\u00e3o. No m\u00ednimo, incluindo o PAN mascarado e a data de validade. Se voc\u00ea especificou um <code>TokenRequestedType<\/code> do <strong>Cliente<\/strong> no seu pedido, este tamb\u00e9m inclui:\n<ul>\n<li><code>PaymentToken.TokenValue<\/code>: O alias do cart\u00e3o.<\/li>\n<\/ul><\/li>\n<li><code>Response.AdditionalResponse<\/code>: Uma sequ\u00eancia base64. Quando decodificado, este \u00e9 um objeto JSON com dados adicionais que voc\u00ea pode precisar em sua l\u00f3gica de neg\u00f3cios, incluindo:\n<ul>\n<li><code>alias<\/code>: O alias do cart\u00e3o.<\/li>\n<li><code>cardIssuerCountryId<\/code> e <code>cardBin<\/code>: dados necess\u00e1rios para determinar a elegibilidade para compras isentas de impostos.<\/li>\n<li><code>shopperReference<\/code> e <code>shopperEmail<\/code>: Se inclu\u00eddo, isso significa que voc\u00ea j\u00e1 <a href=\"\/pt\/point-of-sale\/shopper-recognition#create-shopper\">criou um perfil para esse cliente<\/a> no seu banco de dados.<\/li>\n<\/ul><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2 id=\"continue-with-payment\">Etapa 2: continue com o pagamento<\/h2>\n<p>Depois de aplicar sua l\u00f3gica comercial, voc\u00ea estar\u00e1 pronto para acompanhar a aquisi\u00e7\u00e3o do cart\u00e3o com uma solicita\u00e7\u00e3o de pagamento:<\/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><code>MessageHeader<\/code>: Segue a estrutura 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>, que incluem:<\/p>\n<ul>\n<li><code>ProtocolVersion<\/code>: <strong>3.0<\/strong><\/li>\n<li><code>MessageClass<\/code>: <strong>Service<\/strong><\/li>\n<li><code>MessageCategory<\/code>: <strong>Payment<\/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 esta 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. Esse deve ser o mesmo terminal de pagamento para o qual voc\u00ea direcionou a solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o do cart\u00e3o.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>PaymentRequest<\/code>: O corpo da solicita\u00e7\u00e3o da solicita\u00e7\u00e3o de pagamento deve incluir:<\/p>\n<ul>\n<li><code>SaleData.SaleTransactionID.TransactionID<\/code>: Sua refer\u00eancia exclusiva para esta solicita\u00e7\u00e3o de pagamento.<\/li>\n<li><code>SaleData.SaleTransactionID.TimeStamp<\/code>: Data e hora da solicita\u00e7\u00e3o de pagamento, no <a href=\"https:\/\/en.wikipedia.org\/wiki\/ISO_8601#Coordinated_Universal_Time_(UTC)\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">formato UTC<\/a>.<\/li>\n<li><code>SaleData.SaleToAcquirerData<\/code>: Pode ser necess\u00e1rio especificar as <a href=\"\/pt\/point-of-sale\/tender-options\">tender options<\/a> ou <a href=\"\/pt\/point-of-sale\/pass-additional-data\">dados adicionais<\/a> aqui, dependendo da l\u00f3gica de neg\u00f3cios. Por exemplo, <strong>taxfree.indicator=true<\/strong> para compras isentas de impostos no fluxo de reembolso r\u00e1pido ou dados de reconhecimento do cliente.<\/li>\n<li><code>PaymentTransaction.AmountsReq.Currency<\/code>: A <a href=\"\/pt\/development-resources\/currency-codes\">moeda<\/a> da transa\u00e7\u00e3o.<\/li>\n<li><code>PaymentTransaction.AmountsReq.RequestedAmount<\/code>: O valor da transa\u00e7\u00e3o.<\/li>\n<li>\n<p><code>PaymentData.CardAcquisitionReference<\/code>: A <code>Timestamp<\/code> e <code>TransactionID<\/code> da solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o do cart\u00e3o. Voc\u00ea recebeu esses dados no objeto <code>POIData.POITransactionID<\/code> da <code>CardAcquisitionResponse<\/code>.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"''\" :id=\"'card-acq-payment'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n   \\\"SaleToPOIRequest\\\":{\\n      \\\"MessageHeader\\\":{\\n         \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n         \\\"MessageClass\\\":\\\"Service\\\",\\n         \\\"MessageCategory\\\":\\\"Payment\\\",\\n         \\\"MessageType\\\":\\\"Request\\\",\\n         \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n         \\\"ServiceID\\\":\\\"2020711110\\\",\\n         \\\"POIID\\\":\\\"V400m-346403161\\\"\\n      },\\n      \\\"PaymentRequest\\\":{\\n         \\\"SaleData\\\":{\\n            \\\"SaleTransactionID\\\":{\\n               \\\"TransactionID\\\":\\\"899\\\",\\n               \\\"TimeStamp\\\":\\\"2021-03-05T12:23:44.684Z\\\"\\n            }\\n         },\\n         \\\"PaymentTransaction\\\":{\\n            \\\"AmountsReq\\\":{\\n               \\\"Currency\\\":\\\"EUR\\\",\\n               \\\"RequestedAmount\\\":16.98\\n            }\\n         },\\n         \\\"PaymentData\\\":{\\n            \\\"CardAcquisitionReference\\\":{\\n               \\\"{hint:From the POITransactionID of the card acquisition}TimeStamp{\\\/hint}\\\":\\\"2021-03-05T12:22:59.000Z\\\",\\n               \\\"{hint:From the POITransactionID of the card acquisition}TransactionID{\\\/hint}\\\":\\\"8ha5001614946979000\\\"\\n            }\\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\\\";\\nString transactionID = \\\"YOUR_UNIQUE_TRANSACTION_ID\\\";\\n\\nSaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nmessageHeader.setProtocolVersion(\\\"3.0\\\");\\nmessageHeader.setMessageClass( MessageClassType.SERVICE );\\nmessageHeader.setMessageCategory( MessageCategoryType.PAYMENT );\\nmessageHeader.setMessageType( MessageType.REQUEST );\\nmessageHeader.setServiceID(serviceID);\\nmessageHeader.setSaleID(saleID);\\nmessageHeader.setPOIID(POIID);\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nPaymentRequest paymentRequest = new PaymentRequest();\\nSaleData saleData = new SaleData();\\nTransactionIdentification saleTransactionID = new TransactionIdentification();\\nsaleTransactionID.setTransactionID(transactionID);\\nsaleTransactionID.setTimeStamp(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));\\nsaleData.setSaleTransactionID(saleTransactionID);\\npaymentRequest.setSaleData(saleData);\\n\\nPaymentTransaction paymentTransaction = new PaymentTransaction();\\nAmountsReq amountsReq = new AmountsReq();\\namountsReq.setCurrency(\\\"EUR\\\");\\namountsReq.setRequestedAmount( BigDecimal.valueOf(16.98) );\\npaymentTransaction.setAmountsReq(amountsReq);\\npaymentRequest.setPaymentTransaction(paymentTransaction);\\n\\nPaymentData paymentData = new PaymentData();\\nTransactionIdentification cardAcquisitionReference = new TransactionIdentification();\\ncardAcquisitionReference.setTransactionID(transactionID);\\ncardAcquisitionReference.setTimeStamp(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));\\npaymentData.setCardAcquisitionReference(cardAcquisitionReference);\\npaymentRequest.setPaymentData(paymentData);\\nsaleToPOIRequest.setPaymentRequest(paymentRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Na <code>PaymentResponse<\/code> note o seguinte:<\/p>\n<ul>\n<li><code>PaymentInstrumentData.CardData<\/code>: Os mesmos detalhes do cart\u00e3o que voc\u00ea recebeu no <code>CardAcquisitionResponse<\/code>.<\/li>\n<li><code>Response.AdditionalResponse<\/code>: Uma sequ\u00eancia base64. Quando decodificado, este \u00e9 um objeto JSON com dados adicionais, incluindo:\n<ul>\n<li><code>alias<\/code>: O alias do cart\u00e3o.<\/li>\n<\/ul><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2 id=\"cancel-card-acquisition\">Cancelando a aquisi\u00e7\u00e3o do cart\u00e3o<\/h2>\n<p>Se o <code>CardData<\/code> que voc\u00ea obtiver na <code>CardAcquisitionResponse<\/code> indica que o cart\u00e3o n\u00e3o pode ser usado para o pagamento subsequente, voc\u00ea pode cancelar a aquisi\u00e7\u00e3o do cart\u00e3o com <code>EnableServiceRequest<\/code>:<\/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><code>MessageHeader<\/code>: Segue a estrutura 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>, que incluem:<\/p>\n<ul>\n<li><code>ProtocolVersion<\/code>: <strong>3.0<\/strong><\/li>\n<li><code>MessageClass<\/code>: <strong>Service<\/strong><\/li>\n<li><code>MessageCategory<\/code>: <strong>EnableService<\/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 esta 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 pedido ser\u00e1 roteado.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/enableservice\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">EnableServiceRequest<\/a>:<\/p>\n<ul>\n<li><code>TransactionAction<\/code>: <strong>AbortTransaction<\/strong>. Isso cancela a transa\u00e7\u00e3o atual.<\/li>\n<li>\n<p><code>DisplayOutput<\/code>: Objeto opcional para exibir uma mensagem no terminal. \u00c9 o mesmo que o objeto <code>DisplayOutput<\/code> em uma <a href=\"\/pt\/point-of-sale\/shopper-engagement\/display-data\/display-receipt\/\">solicita\u00e7\u00e3o de exibi\u00e7\u00e3o<\/a>.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"''\" :id=\"'enable-service-abort'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n   \\\"SaleToPOIRequest\\\":{\\n      \\\"MessageHeader\\\":{\\n         \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n         \\\"MessageClass\\\":\\\"Service\\\",\\n         \\\"MessageCategory\\\":\\\"EnableService\\\",\\n         \\\"MessageType\\\":\\\"Request\\\",\\n         \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n         \\\"ServiceID\\\":\\\"3020711110\\\",\\n         \\\"POIID\\\":\\\"V400m-346403161\\\"\\n      },\\n      \\\"EnableServiceRequest\\\":{\\n         \\\"TransactionAction\\\":\\\"AbortTransaction\\\"\\n      }\\n   }\\n}\"},{\"language\":\"java\",\"tabTitle\":\"Java\",\"content\":\"String serviceID = \\\"YOUR_UNIQUE_ATTEMPT_ID\\\";\\nString saleID = \\\"YOUR_CASH_REGISTER_ID\\\";\\nString POIID = \\\"YOUR_TERMINAL_ID\\\";\\n\\nSaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nmessageHeader.setProtocolVersion(\\\"3.0\\\");\\nmessageHeader.setMessageClass( MessageClassType.SERVICE );\\nmessageHeader.setMessageCategory( MessageCategoryType.ENABLE_SERVICE );\\nmessageHeader.setMessageType( MessageType.REQUEST );\\nmessageHeader.setServiceID(serviceID);\\nmessageHeader.setSaleID(saleID);\\nmessageHeader.setPOIID(POIID);\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nEnableServiceRequest enableServiceRequest = new EnableServiceRequest();\\nenableServiceRequest.setTransactionAction( TransactionActionType.ABORT_TRANSACTION );\\nsaleToPOIRequest.setEnableServiceRequest(enableServiceRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>Se a aquisi\u00e7\u00e3o do cart\u00e3o for cancelada com sucesso, voc\u00ea receber\u00e1 uma <code>EnableServiceResponse<\/code> que cont\u00e9m:<\/p>\n<ul>\n<li>\n<p><code>Response.Result<\/code>: <strong>Success<\/strong><\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Continue conforme aplic\u00e1vel, por exemplo, com uma nova solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o ou uma solicita\u00e7\u00e3o de pagamento.<\/p>\n<\/li>\n<\/ol>\n<h2>Pr\u00f3ximos passos<\/h2>\n<div class=\"next-steps\" id=\"next-steps\" >\n<a href=\"\/point-of-sale\/shopper-recognition\" class=\"next-steps__step\" style=\"width:29%;\" target=\"_self\"><p class=\"next-steps__body\"><div style=\"text-align: center;\"><h6 class=\"next-steps__title\">Reconhecimento do cliente<\/h6><p>Obtenha informa\u00e7\u00f5es e personalize a jornada do cliente.<\/p><\/div><\/p><\/a><a href=\"\/point-of-sale\/shopper-engagement\/shopper-input\" class=\"next-steps__step\" style=\"width:29%;\" target=\"_self\"><p class=\"next-steps__body\"><div style=\"text-align: center;\"><h6 class=\"next-steps__title\">Coletar inputs<\/h6><p>Use o terminal de pagamento para obter informa\u00e7\u00f5es de seus clientes.<\/p><\/div><\/p><\/a><a href=\"\/point-of-sale\/capturing-payments\/delayed-capture\" class=\"next-steps__step\" style=\"width:29%;\" target=\"_self\"><p class=\"next-steps__body\"><div style=\"text-align: center;\"><h6 class=\"next-steps__title\">Captura com atraso<\/h6><p>Aprenda a usar um atraso de captura para pagamentos no terminal.<\/p><\/div><\/p><\/a><\/div>\n\n<h2 id=\"see-also\">Veja tamb\u00e9m<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/point-of-sale\/tax-free-shopping\"\n                        target=\"_self\"\n                        >\n                    Compras isentas de impostos\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/card-acquisition","articleFields":{"description":"Recupere informa\u00e7\u00f5es do cart\u00e3o e do cliente antes de efetuar um pagamento.","id":"42828987","type":"page","_expandable":{"operations":""},"status":"current","last_edit_on":"03-06-2020 16:23"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/card-acquisition","title":"Aquisi\u00e7\u00e3o de cart\u00e3o","content":"A aquisi\u00e7\u00e3o do cart\u00e3o permite recuperar informa\u00e7\u00f5es do cart\u00e3o e do cliente antes de criar uma solicita\u00e7\u00e3o de pagamento. Existem v\u00e1rias situa\u00e7\u00f5es em que isso pode ser ben\u00e9fico, por exemplo:\n\nReconhecendo o cart\u00e3o ou o cliente com base no  alias do cart\u00e3o ou na refer\u00eancia do cliente que voc\u00ea recebe na resposta. Voc\u00ea pode personalizar a experi\u00eancia de compra ou obter informa\u00e7\u00f5es atrav\u00e9s da an\u00e1lise de dados. Consulte Reconhecimento de clientes para obter mais informa\u00e7\u00f5es.\nRealizando uma verifica\u00e7\u00e3o de elegibilidade para compras isentas de impostos.\n\nComo funciona\nAntes de acionar um pagamento:\n\nVoc\u00ea faz uma solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o (consulte a Etapa 1). Voc\u00ea pode incluir o valor a pagar nesta solicita\u00e7\u00e3o.\nO terminal de pagamento solicita que o cliente apresente seu cart\u00e3o.\n\nPara uma transa\u00e7\u00e3o com chip de contato, o cliente n\u00e3o deve remover o cart\u00e3o do terminal.\n\nVoc\u00ea aplica sua l\u00f3gica de neg\u00f3cios ap\u00f3s receber a resposta de aquisi\u00e7\u00e3o do cart\u00e3o. Por exemplo:\n\nVoc\u00ea pode usar o pa\u00eds do emissor e o cart\u00e3o BIN na resposta para determinar se \u00e9 permitido fazer compras isentas de impostos.\nVoc\u00ea pode verificar se esse cliente \u00e9 reconhecido. Se n\u00e3o, voc\u00ea pode fazer uma solicita\u00e7\u00e3o de entrada para solicitar que eles se inscrevam no seu programa de fidelidade. Se sim, voc\u00ea pode verificar se eles se qualificam para um desconto, presente ou oferta especial.\n\nVoc\u00ea faz uma solicita\u00e7\u00e3o de pagamento que inclui a  TransactionID a partir da aquisi\u00e7\u00e3o do cart\u00e3o (consulte a Etapa 2). Dependendo da sua l\u00f3gica de neg\u00f3cios, pode ser necess\u00e1rio incluir campos espec\u00edficos nesta solicita\u00e7\u00e3o ou alterar o valor. Para o cliente, a aquisi\u00e7\u00e3o do cart\u00e3o e o pagamento subsequente parecer\u00e3o uma \u00fanica a\u00e7\u00e3o.\nO terminal mostra o valor a ser pago e o pagamento \u00e9 conclu\u00eddo.\n\nSe o valor da solicita\u00e7\u00e3o de pagamento for igual ao valor da solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o, um cliente que use um cart\u00e3o que realizada transa\u00e7\u00f5es sem contato precisar\u00e1 tocar no cart\u00e3o apenas uma vez. Caso contr\u00e1rio, eles precisar\u00e3o tocar duas vezes no cart\u00e3o: uma para os detalhes do cart\u00e3o e outra para o pagamento.\n\n\nVoc\u00ea tamb\u00e9m pode cancelar a aquisi\u00e7\u00e3o do cart\u00e3o em vez de continuar com um pagamento. Voc\u00ea faria isso, por exemplo, se os dados recuperados do cart\u00e3o n\u00e3o se qualificarem para uma transa\u00e7\u00e3o.\nAntes de voc\u00ea come\u00e7ar\nAntes de iniciar a aquisi\u00e7\u00e3o do cart\u00e3o:\n\nVerifique se voc\u00ea criou uma integra\u00e7\u00e3o que pode efetuar um pagamento.\nEm sua Customer Area, v\u00e1 para Developers &gt; Additional data, selecione os dados necess\u00e1rios para o seu caso de uso. Por exemplo, detalhes recorrentes para reconhecimento do cliente. A API de terminais retorna esses dados no AdditionalResponse.\n\nEtapa 1: Adquirir detalhes do cart\u00e3o\nPara recuperar detalhes do cart\u00e3o e do cliente antes de efetuar um pagamento:\n\n\nFa\u00e7a uma solicita\u00e7\u00e3o POST para um endpoint da API de terminais, especificando:\n\n\nMessageHeader: Segue a estrutura da MessageHeader padr\u00e3o, explicada nos fundamentos da API de terminais, que incluem:\n\nProtocolVersion: 3.0\nMessageClass: Service\nMessageCategory: CardAcquisition\nMessageType: Request\nSaleID: Seu ID exclusivo para a caixa registradora..\nServiceID: Seu ID exclusivo para esta 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 pedido ser\u00e1 roteado.\n\n\n\n\n\n CardAcquisitionRequest: O corpo da solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o, que inclui:\n\nSaleData.SaleTransactionID.TransactionID: Sua refer\u00eancia exclusiva para esta solicita\u00e7\u00e3o.\nSaleData.SaleTransactionID.TimeStamp: Data e hora da solicita\u00e7\u00e3o, no formato UTC.\nSaleData.TokenRequestedType \n    \n        Optional\n    \n\n: Customer. Isso retorna o alias do cart\u00e3o no campo TokenValue da resposta. Se voc\u00ea n\u00e3o incluir o campo TokenRequestedType, o alias do cart\u00e3o ser\u00e1 retornado apenas no AdditionalResponse, e voc\u00ea precisar\u00e1 decodific\u00e1-lo para obter o alias do cart\u00e3o.\nCardAcquisitionTransaction: Este objeto est\u00e1 vazio ou cont\u00e9m:\n\nTotalAmount: Valor da transa\u00e7\u00e3o.\nSe o valor for o mesmo da solicita\u00e7\u00e3o de pagamento subsequente, uma transa\u00e7\u00e3o sem contato n\u00e3o exigir\u00e1 tocar novamente no cart\u00e3o para o pagamento\nVoc\u00ea pode alterar o valor posteriormente (na solicita\u00e7\u00e3o de pagamento) com base nas informa\u00e7\u00f5es da caixa registradora, por exemplo, para dar um desconto de fidelidade. Se voc\u00ea espera que o valor mude na maioria dos casos, por exemplo, se voc\u00ea fizer uma aquisi\u00e7\u00e3o de cart\u00e3o assim que o primeiro item for digitalizado, poder\u00e1 optar por omitir o campo TotalAmount.\n\n\n\n\n\n\n\n\n\nNo CardAcquisitionResponse, observe o seguinte:\n\nPOIData.POITransactionID: O TimeStamp e TransactionID desta solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o. Voc\u00ea precisar\u00e1 desses dados posteriormente quando continuar com um pagamento.\nPaymentInstrumentData.CardData: As informa\u00e7\u00f5es do cart\u00e3o, que est\u00e3o dispon\u00edveis no pr\u00f3prio cart\u00e3o. No m\u00ednimo, incluindo o PAN mascarado e a data de validade. Se voc\u00ea especificou um TokenRequestedType do Cliente no seu pedido, este tamb\u00e9m inclui:\n\nPaymentToken.TokenValue: O alias do cart\u00e3o.\n\nResponse.AdditionalResponse: Uma sequ\u00eancia base64. Quando decodificado, este \u00e9 um objeto JSON com dados adicionais que voc\u00ea pode precisar em sua l\u00f3gica de neg\u00f3cios, incluindo:\n\nalias: O alias do cart\u00e3o.\ncardIssuerCountryId e cardBin: dados necess\u00e1rios para determinar a elegibilidade para compras isentas de impostos.\nshopperReference e shopperEmail: Se inclu\u00eddo, isso significa que voc\u00ea j\u00e1 criou um perfil para esse cliente no seu banco de dados.\n\n\n\n\nEtapa 2: continue com o pagamento\nDepois de aplicar sua l\u00f3gica comercial, voc\u00ea estar\u00e1 pronto para acompanhar a aquisi\u00e7\u00e3o do cart\u00e3o com uma solicita\u00e7\u00e3o de pagamento:\n\n\nFa\u00e7a uma solicita\u00e7\u00e3o POST para um endpoint da API de terminais, especificando:\n\n\nMessageHeader: Segue a estrutura da MessageHeader padr\u00e3o, explicada nos fundamentos da API de terminais, que incluem:\n\nProtocolVersion: 3.0\nMessageClass: Service\nMessageCategory: Payment\nMessageType: Request\nSaleID: Seu ID exclusivo para a caixa registradora..\nServiceID: Seu ID exclusivo para esta 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. Esse deve ser o mesmo terminal de pagamento para o qual voc\u00ea direcionou a solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o do cart\u00e3o.\n\n\n\n\n\nPaymentRequest: O corpo da solicita\u00e7\u00e3o da solicita\u00e7\u00e3o de pagamento deve incluir:\n\nSaleData.SaleTransactionID.TransactionID: Sua refer\u00eancia exclusiva para esta solicita\u00e7\u00e3o de pagamento.\nSaleData.SaleTransactionID.TimeStamp: Data e hora da solicita\u00e7\u00e3o de pagamento, no formato UTC.\nSaleData.SaleToAcquirerData: Pode ser necess\u00e1rio especificar as tender options ou dados adicionais aqui, dependendo da l\u00f3gica de neg\u00f3cios. Por exemplo, taxfree.indicator=true para compras isentas de impostos no fluxo de reembolso r\u00e1pido ou dados de reconhecimento do cliente.\nPaymentTransaction.AmountsReq.Currency: A moeda da transa\u00e7\u00e3o.\nPaymentTransaction.AmountsReq.RequestedAmount: O valor da transa\u00e7\u00e3o.\n\nPaymentData.CardAcquisitionReference: A Timestamp e TransactionID da solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o do cart\u00e3o. Voc\u00ea recebeu esses dados no objeto POIData.POITransactionID da CardAcquisitionResponse.\n\n\n\n\n\n\n\n\n\n\nNa PaymentResponse note o seguinte:\n\nPaymentInstrumentData.CardData: Os mesmos detalhes do cart\u00e3o que voc\u00ea recebeu no CardAcquisitionResponse.\nResponse.AdditionalResponse: Uma sequ\u00eancia base64. Quando decodificado, este \u00e9 um objeto JSON com dados adicionais, incluindo:\n\nalias: O alias do cart\u00e3o.\n\n\n\n\nCancelando a aquisi\u00e7\u00e3o do cart\u00e3o\nSe o CardData que voc\u00ea obtiver na CardAcquisitionResponse indica que o cart\u00e3o n\u00e3o pode ser usado para o pagamento subsequente, voc\u00ea pode cancelar a aquisi\u00e7\u00e3o do cart\u00e3o com EnableServiceRequest:\n\n\nFa\u00e7a uma solicita\u00e7\u00e3o POST para um endpoint da API de terminais, especificando:\n\n\nMessageHeader: Segue a estrutura da MessageHeader padr\u00e3o, explicada nos fundamentos da API de terminais, que incluem:\n\nProtocolVersion: 3.0\nMessageClass: Service\nMessageCategory: EnableService\nMessageType: Request\nSaleID: Seu ID exclusivo para a caixa registradora.\nServiceID: Seu ID exclusivo para esta 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 pedido ser\u00e1 roteado.\n\n\n\n\n\n EnableServiceRequest:\n\nTransactionAction: AbortTransaction. Isso cancela a transa\u00e7\u00e3o atual.\n\nDisplayOutput: Objeto opcional para exibir uma mensagem no terminal. \u00c9 o mesmo que o objeto DisplayOutput em uma solicita\u00e7\u00e3o de exibi\u00e7\u00e3o.\n\n\n\n\n\n\n\n\nSe a aquisi\u00e7\u00e3o do cart\u00e3o for cancelada com sucesso, voc\u00ea receber\u00e1 uma EnableServiceResponse que cont\u00e9m:\n\n\nResponse.Result: Success\n\n\n\n\n\nContinue conforme aplic\u00e1vel, por exemplo, com uma nova solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o ou uma solicita\u00e7\u00e3o de pagamento.\n\n\nPr\u00f3ximos passos\n\nReconhecimento do clienteObtenha informa\u00e7\u00f5es e personalize a jornada do cliente.Coletar inputsUse o terminal de pagamento para obter informa\u00e7\u00f5es de seus clientes.Captura com atrasoAprenda a usar um atraso de captura para pagamentos no terminal.\n\nVeja tamb\u00e9m\n\n\n                    Compras isentas de impostos\n                \n","type":"page","locale":"pt","boost":18,"hierarchy":{"lvl0":"Home","lvl1":"Terminais","lvl2":"Aquisi\u00e7\u00e3o de cart\u00e3o"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/point-of-sale","lvl2":"\/pt\/point-of-sale\/card-acquisition"},"levels":3,"category":"In-person payments","category_color":"green","tags":["Aquisi\u00e7\u00e3o","cart\u00e3o"]},"articleFiles":{"2nd-tap.png":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/03.point-of-sale\/33.card-acquisition\/2nd-tap.png\" \/>","card-acq-payment-response.json":"<p alt=\"\">card-acq-payment-response.json<\/p>","card-acq-payment.json":"<p alt=\"\">card-acq-payment.json<\/p>","card-acquisition-response.json":"<p alt=\"\">card-acquisition-response.json<\/p>","card-acquisition.json":"<p alt=\"\">card-acquisition.json<\/p>","enable-service-abort-response.json":"<p alt=\"\">enable-service-abort-response.json<\/p>","enable-service-abort.json":"<p alt=\"\">enable-service-abort.json<\/p>"}}
