Cartão recusado ou pagamento não concluído no checkout da Whizi

Resposta rápida

Se seu cartão foi realmente recusado no checkout da Whizi, a recusa veio do seu banco através da Stripe, não da Whizi, então a solução é usar outro cartão ou ligar para o banco. A Whizi não mostra nenhuma mensagem de cartão recusado no checkout, então um texto com a linguagem da Whizi em um erro de checkout significa que não foi uma recusa.

A resposta rápida

Se seu cartão foi realmente recusado, a recusa veio do seu banco através da Stripe, não da Whizi, então a solução é usar outro cartão ou ligar para o banco. Por que os bancos bloqueiam pagamentos de assinatura de IA em primeiro lugar, e como identificar qual das seis causas você encontrou, está em pagar por IA quando seu cartão é recusado. A Whizi não mostra nenhuma mensagem de cartão recusado no checkout. Os dados do cartão são inseridos na página de checkout hospedada pela Stripe, que fica fora do código da Whizi, então a resposta do banco vai para a Stripe e nunca chega até a Whizi.

Então, se você viu um erro com a linguagem da Whizi, não foi uma recusa. Foi uma das strings abaixo, e cada uma tem uma causa diferente e uma solução diferente.

As três mais fáceis de confundir com uma recusa:

O que você viuO que significaO que fazer
This card has already used its intro trials, so this starts at the full price of seguido de um preçoEsse cartão já usou o teste introdutório de 7 dias quatro vezes, o limite por cartãoNão há nada de errado com o cartão. Pague o valor cheio exibido, ou use um cartão que ainda tenha testes disponíveis
Pricing is temporarily unavailable.A Whizi não conseguiu ler a tabela de preços da StripeEspere e tente novamente mais tarde. Nada do seu lado resolve isso
Failed to create Stripe checkout session.A chamada do checkout falhou e o backend não enviou mensagemTente novamente uma vez. Se persistir, contate o suporte

Todo erro que o backend da Whizi retorna no checkout

Esses vêm do servidor, então chegam com um status HTTP e um código de erro que o suporte pode cruzar em um rastro de rede. Todo corpo de erro do backend é um JSON no formato {"error": {"code": "...", "message": "..."}}, então o código fica ao lado da mensagem. As linhas abaixo estão ordenadas pelo status HTTP.

MensagemHTTPCódigoDisparado quando
A plan and billing cycle are required.400invalid_checkout_requestO corpo do checkout não pôde ser interpretado
Invalid plan or billing cycle.400invalid_plan_or_cycleO plano ou o ciclo não correspondem a um preço conhecido na Stripe
No subscription item found for the active subscription.400subscription_item_missingUma troca de plano no local rodou contra uma assinatura sem item nela
The supplied discount must be an active 100% promotion code or coupon ID.400invalid_discountO código informado não é um código de promoção ou cupom ativo de 100 por cento
Temporary email addresses are not allowed. Please use a permanent email address.400disposable_email_blockedO e-mail da conta logada está na lista de domínios descartáveis
User not found.404not_foundA rota de checkout não conseguiu ler sua linha de usuário
Pricing is temporarily unavailable.503pricing_unavailableA tabela de preços localizada não pôde ser lida da Stripe

O que fazer com cada uma. Um cartão que já usou seus testes introdutórios não é recusado, e tem sua própria seção abaixo. Pricing is temporarily unavailable. é do lado do servidor: HTTP 503, retornado quando a tabela de preços localizada não pode ser lida da Stripe, e não existe nenhuma configuração na sua conta que mude isso. Failed to create Stripe checkout session. não é uma mensagem do servidor, por isso não indica um motivo: é o texto de reserva do próprio site, mostrado quando a chamada de checkout falha e o backend não envia mensagem. Ambos os casos são de esperar e tentar de novo.

A plan and billing cycle are required. e Invalid plan or billing cycle. significam que a requisição não trazia um plano que o servidor reconhece, então comece de novo pela página de preços e escolha lá o plano e a opção mensal ou anual, em vez de reutilizar um link de checkout antigo ou editado.

User not found. significa que sua sessão aponta para uma linha de usuário que o servidor não consegue ler. Saia da conta, entre novamente, depois inicie o checkout de novo.

No subscription item found for the active subscription. acontece durante uma troca de plano, não em uma primeira compra, e não é algo que se resolve pela interface. Contate o suporte.

Erros que o site mostra antes mesmo do checkout abrir

Esses vêm do navegador, não do servidor, então não têm código HTTP. Todos significam a mesma coisa, em linhas gerais: algo falhou enquanto a Whizi preparava sua conta para a transferência à Stripe, então nenhuma cobrança chegou a ser tentada.

MensagemDisparado quando
Failed to create Stripe checkout session.A chamada de checkout falhou e o backend não enviou mensagem
Could not open checkout. Please try again.A chamada de checkout do modal de upgrade falhou sem mensagem
Authentication failed. Please sign in again.A busca do token não retornou nada antes do checkout
Failed to save user before checkout.A chamada de salvar o usuário antes do checkout não deu certo
Could not prepare your account for checkout.A página de preços não conseguiu salvar o usuário antes do checkout
Missing user or Stripe customer details.O id do usuário estava ausente no momento do checkout
Checkout response did not include a Stripe URL.O checkout teve sucesso, mas não retornou uma URL nem um id de assinatura
Something went wrong while starting your trial. Please try again.A falha genérica de início de teste na página de preços

Para qualquer item desta lista, saia da conta, entre novamente e inicie o checkout de novo pela página de preços. Isso resolve os casos em que a busca do token não retornou nada antes do checkout, que é o que Authentication failed. Please sign in again. relata.

Checkout response did not include a Stripe URL. é a exceção: significa que a chamada teve sucesso. Antes de tentar pagar de novo, abra as configurações da sua conta e verifique se já existe uma assinatura ali.

Mais duas aparecem nas páginas de login e cadastro quando você escolhe um plano primeiro e se autentica depois: Signed in, but checkout could not start. Please choose your plan again. e Your account was created, but checkout could not start. Please sign in and choose your plan again. As duas significam que a parte da conta funcionou e só a transferência falhou. Sua conta existe. Vá até a página de preços e escolha o plano de novo.

Uma última causa de falha misteriosa: tentar o checkout muitas vezes seguidas pode acionar o limitador de taxa, que retorna HTTP 429 e Too many requests. Please wait and try again. Toda requisição na conta, seja qual for a rota, conta contra um teto de 30 por minuto. Espere um minuto em vez de clicar de novo.

Quando um cartão já usou seus testes introdutórios

Cada cartão pode usar o teste introdutório de 7 dias até quatro vezes. A contagem segue a impressão digital do cartão em vez da conta, então abrir uma conta nova com o mesmo cartão não zera o contador.

Quando um cartão atinge esse limite, o checkout não é recusado. Ele abre no valor cheio do plano escolhido, e a página da Stripe informa isso acima do botão de pagamento: This card has already used its intro trials, so this starts at the full price of seguido do preço do plano. Pagar ali inicia o plano de imediato, sem semana de teste.

Não é uma recusa, e nenhuma nova tentativa muda isso, porque a contagem já está registrada no cartão. Para um cartão que ainda tem testes disponíveis, o teste introdutório custa $0.99 no Starter, $1.99 no Pro e $4.99 no Powerhouse em dólares americanos.

Suas duas opções: pague o valor cheio exibido, ou pague com um cartão que ainda não usou seus testes.

Os preços dos planos, os termos do teste e o que acontece na conversão estão todos em cobrança, testes e como cancelar.

O pagamento foi feito, mas a conta ainda está no plano gratuito

Um cartão cobrado mais uma conta que ainda se comporta como gratuita é um sintoma diferente do checkout falhando, e tem sua própria página.

Leia você pagou, mas os recursos do plano continuam bloqueados para as strings que aparecem nesse estado, a verificação que mostra qual conta detém a assinatura, e o que enviar para o suporte.

O que a Whizi não consegue te dizer

Três lacunas, para você não perder tempo procurando respostas que não existem.

A Whizi nunca vê por que seu banco recusou um cartão, porque essa troca acontece na página de checkout hospedada pela Stripe, fora do código da Whizi. Então uma recusa no checkout não deixa nenhum motivo guardado na sua conta, nenhum botão de tentar de novo, e nada para a Whizi sobrepor. O motivo fica com o seu banco.

Uma renovação que falha é diferente, e a Whizi avisa sobre isso. Você recebe um e-mail nomeando o plano, o valor e, quando a Stripe guarda um, o motivo dado pelo banco, e um banner vermelho no topo do chat oferece atualizar o cartão ou continuar em um plano mais barato pelo preço dele. Assinaturas compradas no aplicativo iOS ou Android renovam pela Apple ou pelo Google, que tratam suas próprias falhas de pagamento.

A cobrança da Whizi passa pela Stripe, então quais cartões podem pagar de fato é decidido lá, não na Whizi. Um cartão russo ou iraniano não consegue concluir o cadastro. Ucrânia, Cazaquistão, Turquia, Indonésia e Índia funcionam de ponta a ponta.

Lista de verificação
  • Uma recusa de cartão de verdade vem do seu banco através da Stripe, não da Whizi
  • No checkout, a Whizi não tem mensagem de cartão recusado nem motivo de recusa para mostrar
  • Um texto com a linguagem da Whizi no erro significa que não foi uma recusa
  • Erros de sessão se resolvem saindo da conta e entrando de novo, depois tentando pela página de preços
  • Pricing is temporarily unavailable é do lado do servidor: espere, não tente repetidamente
  • Um cartão pode usar até quatro testes introdutórios, depois o checkout cobra o valor cheio em vez de recusar
  • Cobrado mas ainda no plano gratuito é um sintoma diferente, coberto em subscription-not-active

Perguntas frequentes

Por que a Whizi diz que meu pagamento falhou, mas meu banco não mostra nenhuma tentativa?

Porque a string que você viu foi gerada pelo site antes mesmo de a Stripe ser acionada, então nenhuma cobrança foi tentada. A forma rápida de diferenciar isso de uma recusa real do backend: uma recusa do backend chega como JSON com um código de erro, como pricing_unavailable ou invalid_plan_or_cycle, e mostra um status HTTP em um rastro de rede. Uma string do lado do navegador não tem nenhum dos dois. Se o que você viu não trazia código, nada chegou ao seu banco.

O que significa This card has already used its intro trials no checkout?

Significa que o cartão já usou o teste introdutório de 7 dias quatro vezes, o limite por cartão, então esse checkout inicia o plano no valor cheio, sem semana de teste. Não é uma recusa nem um erro, e a contagem segue o cartão para qualquer conta. Pague o valor cheio exibido, ou use um cartão que ainda tenha testes disponíveis.

Recebi Pricing is temporarily unavailable. Meu cartão é o problema?

Não. É HTTP 503 pricing_unavailable, e vem da rota que lê a tabela de preços localizada da Stripe, não da rota de checkout que receberia um cartão. Não há solução do seu lado, então espere em vez de tentar outro cartão. Se você viu Failed to create Stripe checkout session. no lugar disso, é uma string separada com uma origem separada: o texto de reserva do site quando a chamada de checkout falhou e o backend não enviou mensagem.

Meu código promocional foi recusado. Por quê?

O checkout retorna The supplied discount must be an active 100% promotion code or coupon ID. como HTTP 400 invalid_discount. O campo de desconto no checkout só aceita um código de promoção ou cupom ativo de 100 por cento, então um código expirado ou um desconto parcial será recusado ali. Remova o código e finalize a compra no valor normal se você precisar de acesso agora.

A Whizi recusou meu e-mail no checkout. O que aconteceu?

Você viu Temporary email addresses are not allowed. Please use a permanent email address. A rota de checkout retorna isso como HTTP 400 disposable_email_blocked quando o domínio do e-mail da conta logada está na lista de descartáveis. A mesma string é usada no cadastro como HTTP 403. Use um endereço permanente na conta e o checkout vai prosseguir.

Fui cobrado duas vezes. O que devo fazer?

Contate o suporte com os dois recibos da Stripe, em vez de cancelar às cegas. Cancelar é uma ação separada com seu próprio resultado: para uma assinatura ativa, a rota de cancelamento responde Subscription cancellation scheduled for end of billing period., então essa assinatura roda até o fim do período que já foi pago.