Stripe · Códigos de recusa
O que significa o código de recusa Stripe authentication_required?
Verificado em
Stripe retorna authentication_required quando o banco do cartão recusa um pagamento porque precisa que o titular do cartão o verifique, geralmente através do 3D Secure. Não é uma recusa do próprio cartão. Quando o comprador está no checkout, os formulários de pagamento do Stripe normalmente abrem a etapa de verificação do banco para que ele possa aprovar e tentar novamente. Para pagamentos feitos sem o cliente presente, como uma renovação de assinatura, a loja tem que trazer o cliente de volta para confirmar o pagamento.
- Tipo
- Autenticação necessária (recusa suave)
- Quem recusou
- O banco do cartão
- Tentar novamente
- Somente depois que o titular do cartão completar a verificação do banco
- Ação do comprador
- Aprovar o pagamento na etapa de verificação do banco ou no aplicativo do banco
- Ação do lojista
- Pedir ao cliente para voltar e confirmar; não reenviar a mesma cobrança às cegas
O que a PlatformDTC faz
No checkout, PlatformDTC adiciona a dica "Seu banco exige autenticação. Por favor, tente novamente e complete a verificação." e mantém o pagamento no mesmo processador para 3D Secure, nunca o movendo para um processador de backup. Em renovações, no cronograma fixo ou com Smart retry, não é tentado novamente às cegas: é mantido como vencido e o cliente recebe um e-mail de "ação necessária" pedindo para confirmar o pagamento com seu banco.
Por que acontece
Bancos pedem verificação extra quando querem que o titular do cartão confirme um pagamento, e Stripe observa que empresas afetadas por regulamentações como Strong Customer Authentication verão pagamentos que exigem autenticação.
Stripe observa um caso incomum: se o banco retornar este código mesmo depois que o comprador completou a verificação, somente o banco pode explicar o porquê, então o cliente precisa contatá-lo.
O que o comprador pode fazer
Tente o pagamento novamente e complete a tela de verificação ou a solicitação de aprovação no seu aplicativo do banco. Se o banco continuar recusando depois que você verificou, ligue para o número no verso do cartão.
O que a loja pode fazer
Para assinaturas e outros pagamentos feitos enquanto o cliente está ausente, envie um e-mail ao cliente com um link para confirmar o pagamento. Tentar novamente a mesma cobrança sem eles não pode ter sucesso, porque ninguém está lá para responder ao desafio do banco.
Para desenvolvedores
O código chega como decline_code no last_payment_error do PaymentIntent. Fora da sessão, confirme o PaymentIntent em sessão com o cliente para que o Stripe possa executar o fluxo 3D Secure. Códigos Stripe relacionados: authentication_not_handled (o cliente pulou a etapa necessária) e o erro da API payment_intent_authentication_failure (verificação falhou).
Perguntas frequentes
- authentication_required é uma recusa forte?
- Não. O cartão ainda pode ser usado. O banco só quer que o titular do cartão confirme este pagamento, então ele é aprovado assim que eles completam a verificação.
- Por que as renovações de assinatura recebem authentication_required?
- As renovações são executadas sem o cliente presente, então a etapa de verificação do banco não pode ser exibida. O cliente tem que retornar e confirmar o pagamento, razão pela qual as lojas enviam um link de confirmação por e-mail em vez de tentar novamente.
- O cliente verificou mas ainda recebeu authentication_required. Por quê?
- Stripe diz que se o banco retornar este código apesar de um pagamento verificado com sucesso, o cliente precisa contatar o emissor do cartão para mais informações.
Fontes
- Códigos de recusa Stripe — Stripe
- Recusas de cartão e novas tentativas — Stripe
Relacionado
- authentication_not_handled — A verificação foi exigida, o comprador a pulou, e o banco recusou novamente.
- payment_intent_authentication_failure — O cartão falhou na verificação de autenticação do banco (como 3-D Secure).
- mobile_device_authentication_required — O pagamento precisa de autenticação; o cliente deve tocar o telefone novamente.
- approve_with_id — O banco não conseguiu autorizar o pagamento como enviado; mais uma tentativa pode funcionar.
- call_issuer — O banco recusou sem um motivo e quer que o titular do cartão entre em contato com ele.
- card_not_supported — O cartão não pode ser usado para este tipo de compra.
- card_velocity_exceeded — O saldo, limite de crédito ou limite de valor do cartão foi atingido.
- currency_not_supported — O cartão não pode ser cobrado na moeda do pagamento.