{"title":"Lidando com erros","category":"default","creationDate":1560352500,"content":"<p>Para poder resolver problemas com suas solicita\u00e7\u00f5es, voc\u00ea precisa saber como a API de Terminais informa o status de processamento da sua solicita\u00e7\u00e3o. Isso \u00e9 comunicado no objeto <code>Response<\/code> da resposta da API, que possui:<\/p>\n<ul>\n<li>\n<p><code>Result<\/code>: Um dos seguintes valores:<\/p>\n<ul>\n<li><strong>Success<\/strong>: A solicita\u00e7\u00e3o foi bem-sucedida \/ a transa\u00e7\u00e3o foi aprovada.<\/li>\n<li><strong>Partial<\/strong>: O valor da transa\u00e7\u00e3o foi parcialmente aprovado.<\/li>\n<li>\n<p><strong>Failure<\/strong>: A solicita\u00e7\u00e3o ou transa\u00e7\u00e3o n\u00e3o foi bem-sucedida. Os campos <code>Response<\/code> restantes fornecem mais informa\u00e7\u00f5es sobre o erro, para permitir que voc\u00ea determine como lidar com ele.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>ErrorCondition<\/code>: Este campo \u00e9 inclu\u00eddo quando a solicita\u00e7\u00e3o ou transa\u00e7\u00e3o falha, este tamb\u00e9m indica a causa da falha.<\/p>\n<\/li>\n<li>\n<p><code>AdditionalResponse<\/code>: Mais informa\u00e7\u00f5es sobre a condi\u00e7\u00e3o de erro. Voc\u00ea receber\u00e1 pares de valores-chave codificados em formul\u00e1rio ou uma cadeia codificada em Base64 que decodifica para um objeto JSON.<\/p>\n<\/li>\n<\/ul>\n<p>Agora vamos ver o que voc\u00ea pode fazer quando:<\/p>\n<ul>\n<li>A solicita\u00e7\u00e3o falhou porque era inv\u00e1lida.<\/li>\n<li>Voc\u00ea fez uma solicita\u00e7\u00e3o de pagamento, mas n\u00e3o recebeu um resultado.<\/li>\n<li>O resultado da sua solicita\u00e7\u00e3o de pagamento indica que a transa\u00e7\u00e3o falhou.<\/li>\n<\/ul>\n<h2 id=\"invalid-message-format\">Formato de mensagem inv\u00e1lido<\/h2>\n<p>Um objeto <code>Response<\/code> com <code>Result<\/code> <strong>Failure<\/strong> e <code>ErrorCondition<\/code> <strong>MessageFormat<\/strong> indicam que houve um erro na solicita\u00e7\u00e3o que voc\u00ea enviou. Voc\u00ea dever\u00e1 prossegfuir da seguinte forma:<\/p>\n<ol>\n<li>\n<ol>\n<li>Determine o que causou o erro, com base na <code>message<\/code>, <code>warnings<\/code>, ou <code>errors<\/code> no <code>AdditionalResponse<\/code>. Por exemplo, um campo obrigat\u00f3rio ausente ou um campo inesperado.<\/li>\n<\/ol>\n<p>O exemplo a seguir \u00e9 para uma resposta indicando que o campo <code>Currency<\/code> est\u00e1 ausente na solicita\u00e7\u00e3o de pagamento:<\/p>\n<pre><code class=\"language-json\">{\n...\n   \"Response\":{\n      \"Result\":\"Failure\",\n      \"AdditionalResponse\": \"errors=At%20SaleToPOIRequest.PaymentRequest.PaymentTransaction.AmountsReq%2c%20field%20Currency%3a%20Missing\",\n      \"ErrorCondition\":\"MessageFormat\"\n   }\n...\n}<\/code><\/pre>\n<\/li>\n<li>Consulte a refer\u00eancia  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/overview\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Terminal API<\/a> se necess\u00e1rio, corrija manualmente sua solicita\u00e7\u00e3o e tente novamente.<\/li>\n<\/ol>\n<h2 id=\"invalid-json\">Formato JSON inv\u00e1lido<\/h2>\n<p>Se sua solicita\u00e7\u00e3o de API n\u00e3o contiver um objeto JSON v\u00e1lido, voc\u00ea receber\u00e1 uma resposta HTTP <code>Bad JSON<\/code> que especifica o n\u00famero da linha e uma descri\u00e7\u00e3o do problema:<\/p>\n<pre><code class=\"language-json\">[\"Bad JSON:LINE_NUMBER: DESCRIPTION\"]<\/code><\/pre>\n<ul>\n<li>Corrija manualmente o erro JSON na linha mencionada na resposta HTTP e tente novamente.<\/li>\n<\/ul>\n<h2 id=\"unavailable-service\">Servi\u00e7o indispon\u00edvel<\/h2>\n<p>Um objeto <code>Response<\/code> com <code>Result<\/code> <strong>Failure<\/strong> e <code>ErrorCondition<\/code> <strong>UnavailableService<\/strong> indica que n\u00e3o foi poss\u00edvel implementar sua solicita\u00e7\u00e3o. Proceda da seguinte forma:<\/p>\n<ol>\n<li>\n<p>Determinar o que causou o erro, com base na <code>message<\/code>, <code>warnings<\/code>, ou <code>errors<\/code> no <code>AdditionalResponse<\/code>. Por exemplo:<\/p>\n<ul>\n<li>Voc\u00ea tentou usar a funcionalidade que o terminal de pagamento n\u00e3o suporta.<\/li>\n<li>Voc\u00ea tentou usar uma <strong>ProtocolVersion<\/strong> que o terminal n\u00e3o pode gerenciar.<\/li>\n<li>Voc\u00ea tentou usar funcionalidades que n\u00e3o s\u00e3o suportadas.<\/li>\n<\/ul>\n<p>O exemplo a seguir \u00e9 para uma resposta indicando que h\u00e1 uma incompatibilidade entre as vers\u00f5es do protocolo (2.0 na solicita\u00e7\u00e3o e 3.0 no terminal):<\/p>\n<pre><code class=\"language-json\">{\n...\n   \"Response\": {\n      \"Result\": \"Failure\",\n      \"AdditionalResponse\": \"message=Sale%20Protocol%20Version%202.0%20mismatch%2c%20Version%20implemented%3a%203.0\",\n      \"ErrorCondition\": \"UnavailableService\"\n   }\n...\n}<\/code><\/pre>\n<\/li>\n<li>Dependendo da causa do erro, corrija manualmente sua solicita\u00e7\u00e3o e envie-a novamente. Por exemplo, ap\u00f3s receber a resposta de falha acima, voc\u00ea especificaria a mesma vers\u00e3o de protocolo que o terminal suporta.<\/li>\n<\/ol>\n<h2 id=\"no-result-received\">Nenhum resultado recebido<\/h2>\n<p>Recomendamos que sua integra\u00e7\u00e3o solicite automaticamente o status de uma transa\u00e7\u00e3o, sempre que falhar em receber uma resposta da transa\u00e7\u00e3o.<\/p>\n<p>As solicita\u00e7\u00f5es de pagamento expiram ap\u00f3s 120 segundos. Se voc\u00ea n\u00e3o receber uma resposta de pagamento (ou uma resposta indicando um tempo limite) ap\u00f3s 150 segundos e a conex\u00e3o de rede n\u00e3o cair, sua integra\u00e7\u00e3o dever\u00e1 solicitar automaticamente o status da transa\u00e7\u00e3o.<\/p>\n<p>Se voc\u00ea n\u00e3o receber um resultado da transa\u00e7\u00e3o, nem de forma s\u00edncrona nem ass\u00edncrona, proceda da seguinte forma:<\/p>\n<ol>\n<li>\n<p>Fa\u00e7a uma <code>TransactionStatusRequest<\/code> (consulte <a href=\"\/pt\/point-of-sale\/basic-tapi-integration\/verify-transaction-status\">Verificar status da transa\u00e7\u00e3o<\/a> para obter detalhes).<\/p>\n<\/li>\n<li>\n<p>Determine sua pr\u00f3xima a\u00e7\u00e3o com base na <code>TransactionStatusResponse.Response<\/code>:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Resposta<\/th>\n<th style=\"text-align: left;\">Descri\u00e7\u00e3o<\/th>\n<th style=\"text-align: left;\">A\u00e7\u00e3o<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>Result<\/code> <strong>Success<\/strong><\/td>\n<td style=\"text-align: left;\">A transa\u00e7\u00e3o foi processada.<\/td>\n<td style=\"text-align: left;\">Use  <code>RepeatedResponseMessageBody<\/code> para determinar como processar a transa\u00e7\u00e3o.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>ErrorCondition<\/code> <strong>InProgress<\/strong><\/td>\n<td style=\"text-align: left;\">O terminal de pagamento est\u00e1 aguardando uma resposta do cliente ou h\u00e1 um atraso no emissor do cart\u00e3o.<\/td>\n<td style=\"text-align: left;\">Continue fazendo uma solicita\u00e7\u00e3o de status de transa\u00e7\u00e3o para esta transa\u00e7\u00e3o a cada cinco segundos at\u00e9 receber uma resposta indicando que a transa\u00e7\u00e3o foi processada.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>ErrorCondition<\/code> <strong>NotFound<\/strong><\/td>\n<td style=\"text-align: left;\">Causas Poss\u00edveis: <ul><li>Os detalhes que voc\u00ea especificou na solicita\u00e7\u00e3o de status da transa\u00e7\u00e3o est\u00e3o incorretos.<\/li><li>N\u00e3o recebemos sua solicita\u00e7\u00e3o; talvez sua conex\u00e3o tenha ca\u00eddo ap\u00f3s o envio da solicita\u00e7\u00e3o.<\/li><\/ul><\/td>\n<td style=\"text-align: left;\">A\u00e7\u00f5es poss\u00edveis: <ul><li>Forne\u00e7a os detalhes da transa\u00e7\u00e3o <em>original<\/em> em <code>MessageReference<\/code> sua solicita\u00e7\u00e3o de status de transa\u00e7\u00e3o.<\/li><li>o    Repita a transa\u00e7\u00e3o <em>original<\/em>.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ol>\n<h2 id=\"declined-payment\">Pagamento recusado<\/h2>\n<p>Quando uma <a href=\"\/pt\/point-of-sale\/basic-tapi-integration\/make-a-payment\">\n  <code>PaymentRequest<\/code>\n<\/a> resulta em um objeto <code>Response<\/code> com <code>Result<\/code> <strong>Failure<\/strong> e uma das <a href=\"#error_conditions\">condi\u00e7\u00f5es de erro<\/a> listadas abaixo, a transa\u00e7\u00e3o foi recusada. O <code>AdditionalResponse<\/code> tem mais informa\u00e7\u00f5es sobre por que a transa\u00e7\u00e3o foi recusada:<\/p>\n<ul>\n<li><code>refusalReason<\/code>: Nosso mapeamento da resposta bruta que recebemos de adquirentes e emissores, para explicar por que a transa\u00e7\u00e3o falhou.<\/li>\n<li>\n<p><code>message<\/code>: Nosso mapeamento do c\u00f3digo de resposta que recebemos de adquirentes e emissores.<\/p>\n<p>Aqui est\u00e1 um exemplo de resposta de falha para um pagamento recusado:<\/p>\n<pre><code class=\"language-json\">{\n...\n   \"Response\": {\n      \"Result\": \"Failure\",\n      \"AdditionalResponse\": \"refusalReason=214%Declined%20online...&amp;message=CANCELLED...\",\n      \"ErrorCondition\": \"Refusal\"\n   }\n...\n}<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>Quando sua solicita\u00e7\u00e3o de pagamento \u00e9 recusada, voc\u00ea precisa determinar se pode tentar novamente:<\/p>\n<ol>\n<li>\n<p><a id=\"error_conditions\"><\/a>Marque a caixa <code>ErrorCondition<\/code> no <code>PaymentResponse.Response<\/code>, porque em muitos casos isso j\u00e1 indica se voc\u00ea pode tentar novamente a transa\u00e7\u00e3o.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Condi\u00e7\u00e3o de erro<\/th>\n<th style=\"text-align: left;\">Repetir?<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Aborted<\/strong><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>DeviceOut<\/strong><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>NotAllowed<\/strong><\/td>\n<td style=\"text-align: left;\"><img title=\"-x-\" alt=\"-x-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/x.png\" \/><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>UnreachableHost<\/strong><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>WrongPIN<\/strong><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Cancel<\/strong><\/td>\n<td style=\"text-align: left;\">Veja o pr\u00f3ximo passo<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>InvalidCard<\/strong><\/td>\n<td style=\"text-align: left;\">Veja o pr\u00f3ximo passo<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Refusal<\/strong><\/td>\n<td style=\"text-align: left;\">Veja o pr\u00f3ximo passo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n<p>Para as condi\u00e7\u00f5es de  <strong>Cancel<\/strong>, <strong>InvalidCard<\/strong>, e <strong>Refusal<\/strong>, verifique a <code>refusalReason<\/code> e <code>message<\/code> na <code>AdditionalResponse<\/code> conforme mostrado nas tabelas a seguir.<\/p>\n\n<div id=\"tabo8SaO\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Cancel&quot;,&quot;content&quot;:&quot;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Condi\\u00e7\\u00e3o de erro&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Motivo de recusa&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;mensagem&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Repetir?&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Cancelar&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Aprovado&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;APROVADO&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-x-\\&quot; alt=\\&quot;-x-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/x.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Cancelar&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;(todos os outros motivos de recusa)&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;(todas as outras mensagens)&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;cancel_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;InvalidCard&quot;,&quot;content&quot;:&quot;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Condi\\u00e7\\u00e3o de erro&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Motivo de recusa&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;mensagem&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Repetir?&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;InvalidCard&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Falha na autentica\\u00e7\\u00e3o dos dados do cart\\u00e3o&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;DECLINED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-x-\\&quot; alt=\\&quot;-x-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/x.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;InvalidCard&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Nenhuma conta corrente dispon\\u00edvel no cart\\u00e3o&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;NO_CHECKING_ACCOUNT_AVAILABLE_ON_CARD&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;InvalidCard&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Nenhuma conta poupan\\u00e7a dispon\\u00edvel no cart\\u00e3o&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;NO_SAVINGS_ACCOUNT_AVAILABLE_ON_CARD&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;invalidcard_1_2&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Refusal&quot;,&quot;content&quot;:&quot;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;ErrorCondition&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;refusalReason&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;message&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Retry?&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;CVC Declined&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;CVC_DECLINED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refused&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;DECLINED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Declined Non Generic&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;DECLINED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Acquirer Error&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;ERROR&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Expired Card&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;CARD_EXPIRED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Issuer Suspected Fraud&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;ISSUER_SUSPECTED_FRAUD&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-x-\\&quot; alt=\\&quot;-x-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/x.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Not enough balance&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;NOT_ENOUGH_BALANCE&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Not Submitted&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;NOT_SUBMITTED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Not supported&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;NOT_SUPPORTED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Pin tries exceeded&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;PIN_TRIES_EXCEEDED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Pin validation not possible&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;PIN_VALIDATION_NOT_POSSIBLE&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-x-\\&quot; alt=\\&quot;-x-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/x.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Restricted Card&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;RESTRICTED_CARD&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-x-\\&quot; alt=\\&quot;-x-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/x.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Withdrawal count exceeded&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;WITHDRAWAL_COUNT_EXCEEDED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Withdrawal amount exceeded&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;WITHDRAWAL_AMOUNT_EXCEEDED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Transaction Not Permitted&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;TRANSACTION_NOT_PERMITTED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Always refused&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;DECLINED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-x-\\&quot; alt=\\&quot;-x-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/x.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Amount too low to be accepted by Card Network&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;DECLINED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-x-\\&quot; alt=\\&quot;-x-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/x.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Card is blocked&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;BLOCK_CARD&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-x-\\&quot; alt=\\&quot;-x-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/x.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;declined&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;DECLINED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Timeout waiting for card after contactless fallback&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;CONTACTLESS_FALLBACK&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Card requires online pin&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;PIN_REQUIRED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Refusal&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Mobile PIN required&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;MOBILE_PIN_REQUIRED&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;refusal_2_3&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<p>Para obter mais informa\u00e7\u00f5es, consulte nossa documenta\u00e7\u00e3o de refer\u00eancia por <a href=\"\/pt\/point-of-sale\/refusal-reasons-pos\">motivos de recusa<\/a>. Se voc\u00ea ativou o recebimento do campo <code>refusalReasonRaw<\/code> no <code>AdditionalResponse<\/code>, consulte tamb\u00e9m nossa documenta\u00e7\u00e3o de refer\u00eancia para obter <a href=\"\/pt\/point-of-sale\/refusal-reasons-pos\/raw-acquirer-responses\">respostas do adquirente<\/a>.<\/p>\n<div class=\"sc-notice note\"><div>\n<p>o <code>refusalReasonRaw<\/code> fornece informa\u00e7\u00f5es adicionais. Mas se voc\u00ea basear seu c\u00f3digo nele, isso poder\u00e1 prejudicar sua integra\u00e7\u00e3o, pois os adquirentes e emissores \u00e0s vezes alteram suas respostas brutas sem notifica\u00e7\u00e3o.<\/p>\n<\/div><\/div>\n<\/li>\n<li>\n<p>Se aplic\u00e1vel, tente novamente a transa\u00e7\u00e3o.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"error-conditions\">Compara\u00e7\u00e3o de condi\u00e7\u00e3o de erro<\/h2>\n<p>The table below compares error conditions and troubleshooting steps specific to making a <code>PaymentRequest<\/code>, <code>TransactionStatusRequest<\/code>, or <code>ReversalRequest<\/code> (a <a href=\"\/pt\/point-of-sale\/basic-tapi-integration\/refund-payment#referenced-refund\">referenced refund<\/a>).<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Condi\u00e7\u00e3o de erro<\/th>\n<th style=\"text-align: left;\">PaymentRequest<\/th>\n<th style=\"text-align: left;\">TransactionStatusRequest<\/th>\n<th style=\"text-align: left;\">ReversalRequest<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Aborted\u00a0<\/td>\n<td style=\"text-align: left;\">Consulte <a href=\"#declined-payment\">Pagamento recusado<\/a><\/td>\n<td style=\"text-align: left;\"><em>n\u00e3o se aplica<\/em><\/td>\n<td style=\"text-align: left;\">Opcionalmente, tente novamente<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Cancel<\/td>\n<td style=\"text-align: left;\">Consulte <a href=\"#declined-payment\">Pagamento recusado<\/a><\/td>\n<td style=\"text-align: left;\"><em>n\u00e3o se aplica<\/em><\/td>\n<td style=\"text-align: left;\"><em>n\u00e3o se aplica<\/em><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">DeviceOut<\/td>\n<td style=\"text-align: left;\">Consulte <a href=\"#declined-payment\">Pagamento recusado<\/a><\/td>\n<td style=\"text-align: left;\">Aguarde e tente novamente<\/td>\n<td style=\"text-align: left;\">Aguarde e tente novamente<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">InProgress<\/td>\n<td style=\"text-align: left;\"><em>n\u00e3o se aplica<\/em><\/td>\n<td style=\"text-align: left;\">Consulte <a href=\"#no-result-received\">Nenhum resultado recebido<\/a><\/td>\n<td style=\"text-align: left;\"><em>n\u00e3o se aplica<\/em><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">InvalidCard<\/td>\n<td style=\"text-align: left;\">Consulte <a href=\"#declined-payment\">Pagamento recusado<\/a><\/td>\n<td style=\"text-align: left;\"><em>n\u00e3o se aplica<\/em><\/td>\n<td style=\"text-align: left;\"><em>n\u00e3o se aplica<\/em><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><a href=\"#invalid-message-format\">Formato de mensagem inv\u00e1lido<\/a><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">NotAllowed<\/td>\n<td style=\"text-align: left;\">Consulte <a href=\"#declined-payment\">Pagamento recusado<\/a><\/td>\n<td style=\"text-align: left;\">Aguarde e tente novamente<\/td>\n<td style=\"text-align: left;\">Aguarde e tente novamente ou tente um dispositivo diferente<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">NotFound<\/td>\n<td style=\"text-align: left;\">Recupera\u00e7\u00e3o manual<\/td>\n<td style=\"text-align: left;\">Consulte <a href=\"#no-result-received\">Nenhum resultado recebido<\/a><\/td>\n<td style=\"text-align: left;\">Recupera\u00e7\u00e3o manual<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Refusal<\/td>\n<td style=\"text-align: left;\">Consulte <a href=\"#declined-payment\">Pagamento recusado<\/a><\/td>\n<td style=\"text-align: left;\"><em>n\u00e3o se aplicae<\/em><\/td>\n<td style=\"text-align: left;\">Recupera\u00e7\u00e3o manual<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><a href=\"#unavailable-service\">Servi\u00e7o indispon\u00edvel<\/a><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">UnreachableHost<\/td>\n<td style=\"text-align: left;\">Consulte <a href=\"#declined-payment\">Pagamento recusado<\/a>)<\/td>\n<td style=\"text-align: left;\">Repetir<\/td>\n<td style=\"text-align: left;\">Repetir<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">WrongPIN<\/td>\n<td style=\"text-align: left;\">Consulte <a href=\"#declined-payment\">Pagamento recusado<\/a><\/td>\n<td style=\"text-align: left;\"><em>n\u00e3o se aplica<\/em><\/td>\n<td style=\"text-align: left;\"><em>n\u00e3o se aplica<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Veja tamb\u00e9m<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/point-of-sale\/refusal-reasons-pos\"\n                        target=\"_self\"\n                        >\n                    Motivos de recusa\n                <\/a><\/li><li><a href=\"\/point-of-sale\/refusal-reasons-pos\/raw-acquirer-responses\"\n                        target=\"_self\"\n                        >\n                    Respostas do adquirente\n                <\/a><\/li><li><a href=\"\/point-of-sale\/basic-tapi-integration\/verify-transaction-status\"\n                        target=\"_self\"\n                        >\n                    Verificar status da transa\u00e7\u00e3o\n                <\/a><\/li><li><a href=\"\/point-of-sale\/error-scenarios\/pos-timeouts\"\n                        target=\"_self\"\n                        >\n                    Timeouts\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/error-scenarios","articleFields":{"description":"Aprenda como resolver erros da API de terminais e como lidar com pagamentos recusados.","last_edit_on":"13-04-2020 20:54"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/error-scenarios","title":"Lidando com erros","content":"Para poder resolver problemas com suas solicita\u00e7\u00f5es, voc\u00ea precisa saber como a API de Terminais informa o status de processamento da sua solicita\u00e7\u00e3o. Isso \u00e9 comunicado no objeto Response da resposta da API, que possui:\n\n\nResult: Um dos seguintes valores:\n\nSuccess: A solicita\u00e7\u00e3o foi bem-sucedida \/ a transa\u00e7\u00e3o foi aprovada.\nPartial: O valor da transa\u00e7\u00e3o foi parcialmente aprovado.\n\nFailure: A solicita\u00e7\u00e3o ou transa\u00e7\u00e3o n\u00e3o foi bem-sucedida. Os campos Response restantes fornecem mais informa\u00e7\u00f5es sobre o erro, para permitir que voc\u00ea determine como lidar com ele.\n\n\n\n\n\nErrorCondition: Este campo \u00e9 inclu\u00eddo quando a solicita\u00e7\u00e3o ou transa\u00e7\u00e3o falha, este tamb\u00e9m indica a causa da falha.\n\n\nAdditionalResponse: Mais informa\u00e7\u00f5es sobre a condi\u00e7\u00e3o de erro. Voc\u00ea receber\u00e1 pares de valores-chave codificados em formul\u00e1rio ou uma cadeia codificada em Base64 que decodifica para um objeto JSON.\n\n\nAgora vamos ver o que voc\u00ea pode fazer quando:\n\nA solicita\u00e7\u00e3o falhou porque era inv\u00e1lida.\nVoc\u00ea fez uma solicita\u00e7\u00e3o de pagamento, mas n\u00e3o recebeu um resultado.\nO resultado da sua solicita\u00e7\u00e3o de pagamento indica que a transa\u00e7\u00e3o falhou.\n\nFormato de mensagem inv\u00e1lido\nUm objeto Response com Result Failure e ErrorCondition MessageFormat indicam que houve um erro na solicita\u00e7\u00e3o que voc\u00ea enviou. Voc\u00ea dever\u00e1 prossegfuir da seguinte forma:\n\n\n\nDetermine o que causou o erro, com base na message, warnings, ou errors no AdditionalResponse. Por exemplo, um campo obrigat\u00f3rio ausente ou um campo inesperado.\n\nO exemplo a seguir \u00e9 para uma resposta indicando que o campo Currency est\u00e1 ausente na solicita\u00e7\u00e3o de pagamento:\n{\n...\n   \"Response\":{\n      \"Result\":\"Failure\",\n      \"AdditionalResponse\": \"errors=At%20SaleToPOIRequest.PaymentRequest.PaymentTransaction.AmountsReq%2c%20field%20Currency%3a%20Missing\",\n      \"ErrorCondition\":\"MessageFormat\"\n   }\n...\n}\n\nConsulte a refer\u00eancia  Terminal API se necess\u00e1rio, corrija manualmente sua solicita\u00e7\u00e3o e tente novamente.\n\nFormato JSON inv\u00e1lido\nSe sua solicita\u00e7\u00e3o de API n\u00e3o contiver um objeto JSON v\u00e1lido, voc\u00ea receber\u00e1 uma resposta HTTP Bad JSON que especifica o n\u00famero da linha e uma descri\u00e7\u00e3o do problema:\n[\"Bad JSON:LINE_NUMBER: DESCRIPTION\"]\n\nCorrija manualmente o erro JSON na linha mencionada na resposta HTTP e tente novamente.\n\nServi\u00e7o indispon\u00edvel\nUm objeto Response com Result Failure e ErrorCondition UnavailableService indica que n\u00e3o foi poss\u00edvel implementar sua solicita\u00e7\u00e3o. Proceda da seguinte forma:\n\n\nDeterminar o que causou o erro, com base na message, warnings, ou errors no AdditionalResponse. Por exemplo:\n\nVoc\u00ea tentou usar a funcionalidade que o terminal de pagamento n\u00e3o suporta.\nVoc\u00ea tentou usar uma ProtocolVersion que o terminal n\u00e3o pode gerenciar.\nVoc\u00ea tentou usar funcionalidades que n\u00e3o s\u00e3o suportadas.\n\nO exemplo a seguir \u00e9 para uma resposta indicando que h\u00e1 uma incompatibilidade entre as vers\u00f5es do protocolo (2.0 na solicita\u00e7\u00e3o e 3.0 no terminal):\n{\n...\n   \"Response\": {\n      \"Result\": \"Failure\",\n      \"AdditionalResponse\": \"message=Sale%20Protocol%20Version%202.0%20mismatch%2c%20Version%20implemented%3a%203.0\",\n      \"ErrorCondition\": \"UnavailableService\"\n   }\n...\n}\n\nDependendo da causa do erro, corrija manualmente sua solicita\u00e7\u00e3o e envie-a novamente. Por exemplo, ap\u00f3s receber a resposta de falha acima, voc\u00ea especificaria a mesma vers\u00e3o de protocolo que o terminal suporta.\n\nNenhum resultado recebido\nRecomendamos que sua integra\u00e7\u00e3o solicite automaticamente o status de uma transa\u00e7\u00e3o, sempre que falhar em receber uma resposta da transa\u00e7\u00e3o.\nAs solicita\u00e7\u00f5es de pagamento expiram ap\u00f3s 120 segundos. Se voc\u00ea n\u00e3o receber uma resposta de pagamento (ou uma resposta indicando um tempo limite) ap\u00f3s 150 segundos e a conex\u00e3o de rede n\u00e3o cair, sua integra\u00e7\u00e3o dever\u00e1 solicitar automaticamente o status da transa\u00e7\u00e3o.\nSe voc\u00ea n\u00e3o receber um resultado da transa\u00e7\u00e3o, nem de forma s\u00edncrona nem ass\u00edncrona, proceda da seguinte forma:\n\n\nFa\u00e7a uma TransactionStatusRequest (consulte Verificar status da transa\u00e7\u00e3o para obter detalhes).\n\n\nDetermine sua pr\u00f3xima a\u00e7\u00e3o com base na TransactionStatusResponse.Response:\n\n\n\nResposta\nDescri\u00e7\u00e3o\nA\u00e7\u00e3o\n\n\n\n\nResult Success\nA transa\u00e7\u00e3o foi processada.\nUse  RepeatedResponseMessageBody para determinar como processar a transa\u00e7\u00e3o.\n\n\nErrorCondition InProgress\nO terminal de pagamento est\u00e1 aguardando uma resposta do cliente ou h\u00e1 um atraso no emissor do cart\u00e3o.\nContinue fazendo uma solicita\u00e7\u00e3o de status de transa\u00e7\u00e3o para esta transa\u00e7\u00e3o a cada cinco segundos at\u00e9 receber uma resposta indicando que a transa\u00e7\u00e3o foi processada.\n\n\nErrorCondition NotFound\nCausas Poss\u00edveis: Os detalhes que voc\u00ea especificou na solicita\u00e7\u00e3o de status da transa\u00e7\u00e3o est\u00e3o incorretos.N\u00e3o recebemos sua solicita\u00e7\u00e3o; talvez sua conex\u00e3o tenha ca\u00eddo ap\u00f3s o envio da solicita\u00e7\u00e3o.\nA\u00e7\u00f5es poss\u00edveis: Forne\u00e7a os detalhes da transa\u00e7\u00e3o original em MessageReference sua solicita\u00e7\u00e3o de status de transa\u00e7\u00e3o.o    Repita a transa\u00e7\u00e3o original.\n\n\n\n\n\nPagamento recusado\nQuando uma \n  PaymentRequest\n resulta em um objeto Response com Result Failure e uma das condi\u00e7\u00f5es de erro listadas abaixo, a transa\u00e7\u00e3o foi recusada. O AdditionalResponse tem mais informa\u00e7\u00f5es sobre por que a transa\u00e7\u00e3o foi recusada:\n\nrefusalReason: Nosso mapeamento da resposta bruta que recebemos de adquirentes e emissores, para explicar por que a transa\u00e7\u00e3o falhou.\n\nmessage: Nosso mapeamento do c\u00f3digo de resposta que recebemos de adquirentes e emissores.\nAqui est\u00e1 um exemplo de resposta de falha para um pagamento recusado:\n{\n...\n   \"Response\": {\n      \"Result\": \"Failure\",\n      \"AdditionalResponse\": \"refusalReason=214%Declined%20online...&amp;message=CANCELLED...\",\n      \"ErrorCondition\": \"Refusal\"\n   }\n...\n}\n\n\nQuando sua solicita\u00e7\u00e3o de pagamento \u00e9 recusada, voc\u00ea precisa determinar se pode tentar novamente:\n\n\nMarque a caixa ErrorCondition no PaymentResponse.Response, porque em muitos casos isso j\u00e1 indica se voc\u00ea pode tentar novamente a transa\u00e7\u00e3o.\n\n\n\nCondi\u00e7\u00e3o de erro\nRepetir?\n\n\n\n\nAborted\n\n\n\nDeviceOut\n\n\n\nNotAllowed\n\n\n\nUnreachableHost\n\n\n\nWrongPIN\n\n\n\nCancel\nVeja o pr\u00f3ximo passo\n\n\nInvalidCard\nVeja o pr\u00f3ximo passo\n\n\nRefusal\nVeja o pr\u00f3ximo passo\n\n\n\n\n\nPara as condi\u00e7\u00f5es de  Cancel, InvalidCard, e Refusal, verifique a refusalReason e message na AdditionalResponse conforme mostrado nas tabelas a seguir.\n\n\n    \n        \n        \n    \n\n\nPara obter mais informa\u00e7\u00f5es, consulte nossa documenta\u00e7\u00e3o de refer\u00eancia por motivos de recusa. Se voc\u00ea ativou o recebimento do campo refusalReasonRaw no AdditionalResponse, consulte tamb\u00e9m nossa documenta\u00e7\u00e3o de refer\u00eancia para obter respostas do adquirente.\n\no refusalReasonRaw fornece informa\u00e7\u00f5es adicionais. Mas se voc\u00ea basear seu c\u00f3digo nele, isso poder\u00e1 prejudicar sua integra\u00e7\u00e3o, pois os adquirentes e emissores \u00e0s vezes alteram suas respostas brutas sem notifica\u00e7\u00e3o.\n\n\n\nSe aplic\u00e1vel, tente novamente a transa\u00e7\u00e3o.\n\n\nCompara\u00e7\u00e3o de condi\u00e7\u00e3o de erro\nThe table below compares error conditions and troubleshooting steps specific to making a PaymentRequest, TransactionStatusRequest, or ReversalRequest (a referenced refund).\n\n\n\nCondi\u00e7\u00e3o de erro\nPaymentRequest\nTransactionStatusRequest\nReversalRequest\n\n\n\n\nAborted\u00a0\nConsulte Pagamento recusado\nn\u00e3o se aplica\nOpcionalmente, tente novamente\n\n\nCancel\nConsulte Pagamento recusado\nn\u00e3o se aplica\nn\u00e3o se aplica\n\n\nDeviceOut\nConsulte Pagamento recusado\nAguarde e tente novamente\nAguarde e tente novamente\n\n\nInProgress\nn\u00e3o se aplica\nConsulte Nenhum resultado recebido\nn\u00e3o se aplica\n\n\nInvalidCard\nConsulte Pagamento recusado\nn\u00e3o se aplica\nn\u00e3o se aplica\n\n\nFormato de mensagem inv\u00e1lido\n\n\n\n\n\nNotAllowed\nConsulte Pagamento recusado\nAguarde e tente novamente\nAguarde e tente novamente ou tente um dispositivo diferente\n\n\nNotFound\nRecupera\u00e7\u00e3o manual\nConsulte Nenhum resultado recebido\nRecupera\u00e7\u00e3o manual\n\n\nRefusal\nConsulte Pagamento recusado\nn\u00e3o se aplicae\nRecupera\u00e7\u00e3o manual\n\n\nServi\u00e7o indispon\u00edvel\n\n\n\n\n\nUnreachableHost\nConsulte Pagamento recusado)\nRepetir\nRepetir\n\n\nWrongPIN\nConsulte Pagamento recusado\nn\u00e3o se aplica\nn\u00e3o se aplica\n\n\n\nVeja tamb\u00e9m\n\n\n                    Motivos de recusa\n                \n                    Respostas do adquirente\n                \n                    Verificar status da transa\u00e7\u00e3o\n                \n                    Timeouts\n                \n","type":"page","locale":"pt","boost":18,"hierarchy":{"lvl0":"Home","lvl1":"Terminais","lvl2":"Lidando com erros"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/point-of-sale","lvl2":"\/pt\/point-of-sale\/error-scenarios"},"levels":3,"category":"In-person payments","category_color":"green","tags":["Lidando","erros"]}}
