NewNo plan feeNo plan fee. Just 2.9% + $0.30 per card sale, and signing up is free.Try now →

Códigos de recusa

Códigos de recusa Stripe: o que cada um significa e como resolver

Verificado em

Os códigos de recusa Stripe informam por que um pagamento com cartão falhou na Stripe. Alguns vêm do banco do cartão, como `insufficient_funds` ou `expired_card`; alguns vêm da própria Stripe, como `fraudulent` ou `merchant_blacklist`. A Stripe os retorna como o `decline_code` em um erro `card_declined`. Cada página abaixo explica um código, diz se uma nova tentativa pode funcionar sob as regras da rede de cartões e mostra o que o checkout e as renovações de assinatura da PlatformDTC fazem com ele.

CódigoSignificado
authentication_requiredO banco quer que o titular do cartão verifique o pagamento, geralmente com 3D Secure.
authentication_not_handledA verificação foi exigida, o comprador a pulou, e o banco recusou novamente.
approve_with_idO banco não conseguiu autorizar o pagamento como enviado; mais uma tentativa pode funcionar.
call_issuerO banco recusou sem um motivo e quer que o titular do cartão entre em contato com ele.
card_not_supportedO cartão não pode ser usado para este tipo de compra.
card_velocity_exceededO saldo, limite de crédito ou limite de valor do cartão foi atingido.
currency_not_supportedO cartão não pode ser cobrado na moeda do pagamento.
do_not_honorO banco recusou o cartão sem dizer o porquê.
do_not_try_againCódigo obsoleto: recusado por um motivo desconhecido; não cobre este cartão novamente.
duplicate_transactionUm pagamento idêntico no mesmo cartão foi enviado momentos atrás.
expired_cardO cartão está com a data de validade vencida.
fraudulentAs verificações de fraude da Stripe suspeitaram que o pagamento era fraudulento e o bloquearam.
generic_declineRecusado por um motivo desconhecido, ou bloqueado pelo Stripe Radar ou Adaptive Acceptance.
incorrect_addressO endereço de cobrança inserido não corresponde aos registros do banco.
incorrect_cvcO código de segurança do cartão (CVC) está incorreto.
incorrect_numberO número do cartão inserido está incorreto.
incorrect_pinO PIN digitado em um leitor de cartão está errado.
incorrect_zipO código postal de cobrança não corresponde aos registros do banco.
insufficient_fundsO cartão não tem dinheiro ou crédito suficiente para este pagamento.
invalid_accountO cartão ou a conta vinculada a ele não é mais válido.
invalid_amountO valor do pagamento é inválido ou acima do que o cartão permite.
invalid_cvcO código de segurança do cartão (CVC) está incorreto.
invalid_expiry_monthO mês de validade do cartão é inválido.
invalid_expiry_yearO ano de validade do cartão é inválido.
invalid_numberO número do cartão está incorreto.
invalid_pinO PIN digitado está incorreto.
issuer_not_availableO banco do cartão não pôde ser contatado, então o pagamento nunca foi autorizado.
lost_cardO cartão foi reportado como perdido. Não pode ser usado; o comprador precisa de outro cartão.
merchant_blacklistO pagamento correspondeu a uma entrada na própria lista de bloqueio do Stripe da loja.
new_account_information_availableO cartão ou sua conta é inválido; o banco pode ter detalhes mais recentes para ele.
no_action_takenO cartão foi recusado por um motivo que o banco não compartilhou.
not_permittedO banco diz que este pagamento não é permitido neste cartão.
offline_pin_requiredSomente presencialmente: o cartão precisa ser inserido e um PIN digitado.
online_or_offline_pin_requiredSomente presencialmente: o cartão precisa de um PIN, por PIN Online ou chip e PIN.
pickup_cardO cartão não pode ser usado para este pagamento; ele pode ter sido reportado como perdido ou roubado.
pin_try_exceededMuitas tentativas de PIN incorretas; o cliente deve usar outro cartão ou método.
processing_errorOcorreu um erro ao processar o cartão. Geralmente temporário.
reenter_transactionO banco não conseguiu processar o pagamento por um motivo desconhecido; tente novamente.
restricted_cardO cartão não pode ser usado para este pagamento; pode ter sido reportado como perdido ou roubado.
revocation_of_all_authorizationsO banco recusou; tipicamente o titular do cartão parou todos os pagamentos futuros.
revocation_of_authorizationO banco recusou; tipicamente o titular do cartão revogou os pagamentos para esta loja.
security_violationO banco recusou por um motivo que não compartilhou; frequentemente uma regra de segurança.
service_not_allowedO cartão foi recusado por um motivo que o banco não informou.
stolen_cardO cartão foi denunciado como roubado. Ele não pode ser usado novamente.
stop_payment_orderO banco recusou; o nome do código aponta para uma ordem de suspensão de pagamento no cartão.
testmode_declineUm número de cartão de teste da Stripe foi usado em um pagamento real.
transaction_not_allowedO banco recusou; o cartão não permite este tipo de transação.
try_again_laterCódigo obsoleto: o banco recusou por um motivo desconhecido; tente novamente mais tarde.
withdrawal_count_limit_exceededO cliente excedeu o saldo ou limite de crédito disponível no cartão.
mobile_device_authentication_requiredO pagamento precisa de autenticação; o cliente deve tocar o telefone novamente.
card_declinedCódigo de erro da Stripe para qualquer cartão recusado; o decline_code diz o porquê.
payment_intent_authentication_failureO cartão falhou na verificação de autenticação do banco (como 3-D Secure).

Quais códigos de recusa Stripe podem ser tentados novamente

A Stripe classifica muitas recusas como genéricas, então o motivo exato é frequentemente incerto. Como regra geral, códigos de fundos, limite e temporários podem ser resolvidos mais tarde; detalhes de cartão incorretos exigem que o comprador os insira novamente; cartões perdidos, roubados, fechados, restritos e expirados precisam de um cartão diferente.

A Stripe também retorna um código de conselho com algumas recusas: `do_not_try_again` significa não usar o cartão novamente para aquele pagamento, `try_again_later` significa que uma nova tentativa é permitida, e `confirm_card_data` significa que alguns detalhes do cartão estão incorretos. A Stripe recomenda no máximo oito novas tentativas para uma cobrança que permite novas tentativas.

No cronograma fixo padrão (novas tentativas com 1, 3, 5 e 7 dias de intervalo), as recusas nos dois últimos grupos também param na primeira falha: o cartão não é tentado novamente, a assinatura fica em atraso e o cliente recebe o e-mail de atualização de cartão ou confirmação de pagamento. Apenas os outros grupos são tentados novamente nesse cronograma.

GrupoCódigos de exemploO que acontece
Fundos insuficientesinsufficient_fundsTentado novamente na provável data de pagamento do cliente, ou 2, 5, 8, 13 e 18 dias após a primeira recusa: até 6 tentativas (7 no PayPal, 2 em um cartão pré-pago)
Temporárioprocessing_error, issuer_not_available, try_again_later, card_velocity_exceeded, card_decline_rate_limit_exceededTentado novamente 2, 5 e 8 dias após a primeira recusa: até 4 tentativas
Nenhum motivo fornecidodo_not_honor, generic_decline, call_issuer, approve_with_id, no_action_taken, duplicate_transactionUma nova tentativa 48 a 72 horas depois, então o cliente é solicitado a usar um novo cartão
Confirmação bancária necessáriaauthentication_required, authentication_not_handled, mobile_device_authentication_requiredNenhuma nova tentativa cega; o cliente é solicitado a confirmar o pagamento com seu banco
Cartão não pode ser usadolost_card, stolen_card, expired_card, incorrect_number, incorrect_zip, restricted_card, pin_try_exceeded, do_not_try_againNunca tentado novamente; o cliente recebe um link de um clique para atualizar o cartão
Como a PlatformDTC classifica os códigos de recusa Stripe para renovações de assinatura com Smart retry ativado

O que a PlatformDTC faz no checkout

O comprador vê a mensagem de recusa da Stripe, mais uma dica simples para os códigos comuns, como "Seu cartão tem fundos insuficientes. Tente outro cartão." e uma opção para tentar outro cartão imediatamente. Para `lost_card`, `stolen_card`, `pickup_card`, `fraudulent` e `merchant_blacklist`, a dica é sempre a genérica "Seu cartão foi recusado. Tente outro cartão ou entre em contato com seu banco.", para que o comprador nunca seja informado de que um cartão foi relatado como perdido ou roubado ou sinalizado.

Se a loja escolheu pagamentos com cartão PayPal como seu backup, uma recusa bancária sem motivo duradouro, como `do_not_honor` ou `processing_error`, pode ser tentada novamente através do PayPal, onde o comprador insere o cartão novamente. Recusas por fundos, 3-D Secure, detalhes incorretos, cartão inválido e fraude nunca são movidas para o backup.

Perguntas frequentes

Onde encontro o código de recusa para um pagamento Stripe?
No Painel Stripe, abra o pagamento falho: o motivo da recusa é mostrado com uma breve solução sugerida. Na API, é o `decline_code` no `last_payment_error` do `PaymentIntent`, e o `outcome` da cobrança também contém o motivo, um código de conselho e, quando a rede enviou um, o código de recusa bruto da rede.
Qual é o código de recusa Stripe mais comum?
A Stripe diz que os bancos de cartão categorizam a maioria das recusas como genéricas (`generic_decline`), o que deixa o motivo exato incerto. Se as informações do cartão estiverem corretas, a Stripe aconselha pedir ao cliente para entrar em contato com o banco do seu cartão para saber por que o pagamento foi recusado.
Quantas vezes posso tentar novamente um pagamento Stripe recusado?
A Stripe recomenda um máximo de oito novas tentativas para cobranças que permitem novas tentativas, e alerta que tentativas extras podem parecer fraude para os bancos de cartão. A Visa permite até 20 tentativas em 30 dias em recusas que podem ser tentadas novamente e nenhuma após uma recusa de Categoria 1, como um cartão perdido ou roubado.
Devo informar ao comprador o motivo exato da recusa?
Para a maioria dos códigos, sim: um motivo simples como um cartão expirado ou um código de segurança incorreto os ajuda a resolver. Para `fraudulent`, `lost_card`, `stolen_card` e `merchant_blacklist`, a Stripe diz para não fornecer detalhes e mostrar a recusa da mesma forma que `generic_decline`.

Fontes

Biblioteca de pagamentos