CHARGEBACKSSTRIPE

Como ganhar chargebacks no Stripe

Como funcionam as disputas do Stripe nas subscrições: estados, categorias de motivos, campos de provas, prazos, taxas, early fraud warnings e Smart Disputes.

Publicado a 8 min de leitura

Um chargeback num pagamento de subscrição custa-lhe o pagamento, uma taxa e parte da sua reputação junto das redes de cartões. Tem uma única oportunidade de responder, normalmente em poucas semanas, e o banco decide apenas com base no que envia. Este guia explica como funciona o processo de disputa no Stripe e como construir um dossiê de provas adequado a um negócio de subscrição.

Baseia-se apenas na documentação do próprio Stripe: how disputes work, respond to disputes, categorias de reason codes de disputas, reason codes de disputas, boas práticas para as provas, o objeto Dispute, as Smart Disputes e a FAQ das taxas de disputa (todos consultados em novembro de 2026). Quando as páginas do Stripe deixam uma lacuna, dizemo-lo.

O ciclo de vida de uma disputa

Uma disputa começa quando o titular do cartão contacta o seu banco. O Stripe cria então um objeto Dispute na cobrança e envia o webhook charge.dispute.created. A partir daí, o objeto Dispute passa por um pequeno conjunto de estados:

Estado O que significa
warning_needs_response Um pedido de informação (ainda não um chargeback) que precisa de resposta
warning_under_review Um pedido de informação em análise depois de ter submetido provas
warning_closed Um pedido de informação encerrado sem se tornar uma disputa formal
needs_response Um chargeback que precisa de resposta
under_review Um chargeback em análise depois de ter submetido provas
won / lost Resolvido a seu favor / a favor do cliente
prevented Uma disputa que foi impedida de se tornar um chargeback formal

Os pedidos de informação contam porque, segundo o Stripe, nenhum fundo é retirado a menos que o pedido evolua para uma disputa. Se perder um pedido de informação, ele evolui: o estado muda com um evento charge.dispute.updated e os fundos são retirados com charge.dispute.funds_withdrawn. Quando o caso termina, dispara charge.dispute.closed com won, lost ou warning_closed.

Quanto aos prazos, a página how disputes work do Stripe diz que normalmente tem 7 a 21 dias para responder depois da criação de um chargeback, consoante a rede de cartões, e que o emissor leva tipicamente 60 a 75 dias a decidir depois de submeter. Todo o processo pode levar dois a três meses. O prazo exato de cada caso está no objeto Dispute e no Dashboard; trabalhe sempre a partir dessa data, não de uma regra geral.

Taxas

O Stripe cobra uma taxa de disputa quando uma disputa é aberta, e uma taxa de contestação separada se a contestar. Segundo a FAQ das taxas de disputa e a página de preços do Stripe nos EUA, nos EUA ambas são de $15,00; a taxa de contestação é devolvida se ganhar, e a taxa de disputa não é devolvida salvo indicação em contrário no seu contrato. Os montantes diferem por país, por isso consulte a página de preços do seu. Aceitar uma disputa não evita a taxa de disputa.

Nas disputas de conformidade Visa e Mastercard, o Stripe cobra uma taxa de rede adicional de 500 USD (ou o equivalente local) se contestar, reembolsada se ganhar.

Categorias de motivos

Cada rede tem os seus próprios reason codes. O Stripe associa-os a um valor reason na disputa, que é a primeira coisa a ler porque decide que provas o banco vai analisar. A página de categorias enumera-os; os três que surgem mais nas subscrições são:

  • fraudulent: o titular do cartão diz que não autorizou o pagamento (por exemplo Visa 10.4, Mastercard 4837).
  • subscription_canceled: o titular do cartão diz que foi cobrado depois de cancelar (Visa 13.2, Mastercard 4841, Amex C28).
  • product_not_received: o titular do cartão diz que não recebeu aquilo por que pagou (Visa 13.1, Mastercard 4855).

Existem outros valores, como duplicate, credit_not_processed, product_unacceptable e general. Use a página de reason codes para ver o que a rede espera em cada um.

O que o Stripe aceita como prova

Submete as provas pelo Dashboard ou atualizando a disputa através da API. O hash evidence tem campos de ficheiro e campos de texto. Alguns que contam para as subscrições, com as descrições do Stripe parafraseadas do objeto Dispute:

Campo Tipo Para que o usar
cancellation_policy Ficheiro A sua política de cancelamento tal como foi mostrada ao cliente
access_activity_log Texto, máx. 20.000 caracteres Registos que provam que o cliente usou o produto: endereços IP, timestamps, atividade
customer_communication Ficheiro Emails ou mensagens trocados com o cliente
uncategorized_text / uncategorized_file Texto / ficheiro Tudo o que for relevante e não caiba noutro campo

As restrições que o Stripe documenta em respond to disputes e nas boas práticas:

  • Uma única submissão. Só pode submeter uma vez. Depois disso não pode editar a resposta nem acrescentar provas.
  • Prepare primeiro. Atualizar a disputa com submit=false prepara as provas sem as enviar. Um pedido posterior com submit=true (o valor por defeito) envia-as ao banco.
  • Um ficheiro por tipo de prova. Junte vários documentos do mesmo tipo num único ficheiro de várias páginas.
  • Limites de tamanho. Os ficheiros estão limitados a 4,5 MB no total, e as provas Mastercard a 19 páginas no total. Todos os campos de texto juntos estão limitados a 150.000 caracteres. Se o dossiê compilado for demasiado longo, a API devolve dispute_evidence_page_limit_exceeded.
  • Sem links. O Stripe indica que os bancos não analisam conteúdos externos, por isso não conte com URLs nem com “ligue-nos”.

Provas que funcionam para as subscrições

A página de reason codes do Stripe dá a orientação para cada categoria. Traduzida para um negócio de subscrição:

Subscrição cancelada

O banco quer saber se o cliente cancelou mesmo antes da cobrança, e se aceitou os termos.

  1. Mostre a prova de que o cliente aceitou os termos da subscrição, incluindo como e quando podia cancelar. Carregue a secção relevante da política como cancellation_policy, não os seus termos completos; o Stripe sugere destacar a parte que se aplica.
  2. Apresente o registo do cancelamento com timestamps exatos. Se o cliente nunca cancelou, ou cancelou depois da cobrança, diga-o com o registo do sistema.
  3. Se usou o produto depois da data em que alega ter cancelado, inclua a utilização com timestamps e IPs em access_activity_log.
  4. Se reembolsou alguma coisa, inclua o registo do reembolso.

Fraude

O titular do cartão diz que nunca autorizou o pagamento. Numa subscrição, a resposta mais forte é mostrar que o mesmo cliente paga e usa a conta há algum tempo.

  1. Mostre o histórico: pagamentos anteriores não disputados com o mesmo cartão, data de criação da conta, o email registado.
  2. Mostre a utilização da conta: logins, endereços IP, dispositivos, atividade em torno da data de faturação.
  3. Inclua qualquer comunicação desse cliente que mostre que conhece o serviço.

Produto não recebido

Para serviços digitais, o Stripe aponta para registos de login, registos de downloads e timestamps de utilização, além dos seus termos. Mostre que a conta foi disponibilizada e usada durante o período cobrado.

Escreva uma nota de apresentação curta

Seja qual for o motivo, ponha um resumo simples em uncategorized_text: quem é o cliente, o que comprou, o que aconteceu e que documento anexo prova cada ponto. Quem analisa lê muitos casos; torne o seu fácil de seguir.

Early fraud warnings

Os emissores Visa, Mastercard e JCB podem enviar early fraud warnings (EFW) para pagamentos que suspeitam ser fraudulentos, muitas vezes antes de qualquer disputa. O Stripe expõe-nos como objetos Early Fraud Warning e através do webhook radar.early_fraud_warning.created. O campo actionable do objeto só é true enquanto a cobrança não tiver disputa e não tiver sido totalmente reembolsada.

A orientação do Stripe é não reembolsar todos os avisos. A sua documentação diz que um reembolso não remove o próprio aviso e só evita o relatório de fraude quando é processado como uma reversão, o que normalmente acontece até cerca de duas horas após a captura. O Stripe sugere que reembolsar faz mais sentido para cobranças aproximadamente iguais ou inferiores à sua taxa de disputa, e dá um exemplo de Workflows que reembolsa abaixo desse montante e alerta uma pessoa acima dele. Numa subscrição, considere também cancelar a subscrição nesse cartão para que a próxima renovação não crie uma segunda disputa.

Smart Disputes

O Stripe oferece as Smart Disputes, que montam um dossiê de provas a partir dos dados que o Stripe já tem e, se não fizer nada, o submetem pouco antes do prazo. Pode desativar a submissão automática no Dashboard. A documentação do Stripe diz que a taxa das Smart Disputes só é cobrada quando a disputa é ganha; consulte os termos atuais nessa página, já que o Stripe apresenta o produto como uma preview. As Smart Disputes só podem usar os dados que o Stripe detém, por isso as provas que estão nos seus próprios sistemas (logins, utilização, conversas de suporte) continuam a ter de vir de si.

Uma checklist de resposta

  1. Subscreva charge.dispute.created, charge.dispute.updated, charge.dispute.closed e radar.early_fraud_warning.created.
  2. Em cada disputa, leia primeiro reason e o prazo de resposta.
  3. Decida depressa se aceita. Se o cliente cancelou de facto e foi cobrado na mesma, aceitar e corrigir a causa pode ser a resposta honesta.
  4. Reúna as provas para esse motivo: termos aceites, registo do cancelamento, registos de utilização, comunicações.
  5. Prepare as provas com submit=false, verifique os limites, peça a alguém que as reveja e depois submeta uma única vez.
  6. Registe o resultado e o motivo, para poder corrigir os padrões que causam disputas (descritor de faturação pouco claro, botão de cancelamento difícil de encontrar, lembretes de renovação em falta).

Fazer isto com o NoChurn

O NoChurn lê as disputas do Stripe e reúne automaticamente as provas de cada uma: as respostas do cliente no fluxo de cancelamento, os emails que o NoChurn enviou, os dados de utilização que envia pela API e as conversas de um helpdesk ligado (só de leitura). Redige a resposta com IA, e nada é enviado ao Stripe antes de uma pessoa da sua equipa a rever. É o Stripe que continua a decidir as taxas, os prazos e o resultado com o banco, e o NoChurn não os pode alterar. O NoChurn é grátis abaixo de $300 de MRR, com todas as funcionalidades em todos os planos (o seu próprio domínio de email desde $9). Veja NoChurn + Stripe.

PROMPT

Read https://www.nochurn.sh/llms.txt,
then follow https://www.nochurn.sh/docs/quickstart/
to add NoChurn to this app. Use a test key
(nc_test_…) until I say we go live.

Pare de perder receita.

  • Grátis até $300 de MRR
  • Sem cartão
  • Pronto em 10 minutos
  • Nunca uma comissão sobre o que recuperamos