Stripe · Códigos de recusa
O que significa o erro Stripe card_declined?
Verificado em
O código de erro Stripe card_declined significa que o cartão foi recusado. É o erro abrangente para toda recusa de cartão: a Stripe adiciona um atributo decline_code que fornece o motivo, como insufficient_funds ou do_not_honor. Quando nenhum decline_code retorna, o banco não deu motivo. O comprador deve tentar outro cartão ou entrar em contato com seu banco; a loja deve ler o decline_code antes de decidir por uma nova tentativa.
- Tipo
- Código de erro que engloba toda recusa de cartão
- Quem recusou
- Geralmente o banco do cartão; veja decline_code
- Nova tentativa
- Depende do decline_code
- Ação do comprador
- Tentar outro cartão ou entrar em contato com o banco
- Ação do lojista
- Consultar o decline_code para ver o motivo real
- Renovação PlatformDTC
- Sem decline_code: uma nova tentativa 48–72 horas depois (Smart retry)
O que a PlatformDTC faz
Quando apenas card_declined retorna, o checkout da PlatformDTC adiciona "Seu cartão foi recusado. Tente outro cartão ou entre em contato com seu banco." e, se a loja tiver pagamentos com cartão PayPal como backup, oferece uma segunda tentativa lá. Com Smart retry ativado, uma renovação com card_declined e sem decline_code é tentada novamente uma vez, 48–72 horas depois; uma segunda recusa pede ao cliente um novo método de pagamento.
Por que acontece
Sempre que um pagamento com cartão é recusado, a Stripe retorna card_declined. O motivo específico viaja separadamente no decline_code, que pode ser qualquer coisa, desde um CVC errado até um cartão perdido.
Se nenhum decline_code estiver presente, o banco recusou sem dar um motivo.
O que o comprador pode fazer
Verifique os detalhes do cartão, depois tente novamente ou use outro cartão. Se o cartão continuar falhando, ligue para seu banco: os bancos explicam as recusas apenas ao titular do cartão.
O que a loja pode fazer
Mostre uma mensagem clara e métodos de pagamento alternativos. Em relatórios, agrupe as falhas por decline_code em vez de por card_declined, ou toda falha parecerá a mesma.
Para desenvolvedores
error.code = card_declined; the reason is in error.decline_code (also last_payment_error.decline_code on the PaymentIntent). Also read charge.outcome.advice_code and network_decline_code. Armazenar apenas card_declined perde as informações necessárias para escolher entre uma nova tentativa, uma solicitação de atualização de cartão e uma parada.
Perguntas frequentes
- Qual é a diferença entre card_declined e um código de recusa?
- card_declined é o código de erro para qualquer recusa de cartão. O código de recusa, no atributo decline_code, explica o porquê.
- Devo tentar novamente um erro card_declined?
- Olhe o decline_code primeiro. Alguns motivos se resolvem com o tempo, outros significam que o cartão nunca funcionará. Sem um decline_code, uma nova tentativa espaçada é razoável.
Fontes
- Códigos de erro — Stripe
- Códigos de recusa Stripe — Stripe
- Recusas de cartão — Stripe
Relacionado
- generic_decline — Recusado por um motivo desconhecido, ou bloqueado pelo Stripe Radar ou Adaptive Acceptance.
- do_not_honor — O banco recusou o cartão sem dizer o porquê.
- insufficient_funds — O cartão não tem dinheiro ou crédito suficiente para este pagamento.
- call_issuer — O banco recusou sem um motivo e quer que o titular do cartão entre em contato com ele.
- payment_intent_authentication_failure — O cartão falhou na verificação de autenticação do banco (como 3-D Secure).
- authentication_required — O banco quer que o titular do cartão verifique o pagamento, geralmente com 3D Secure.
- authentication_not_handled — A verificação foi exigida, o comprador a pulou, e o banco recusou novamente.
- approve_with_id — O banco não conseguiu autorizar o pagamento como enviado; mais uma tentativa pode funcionar.