Todos os artigos
Playbook7 min de leitura

Quando um cliente é cobrado duas vezes pela mesma assinatura, quase sempre pagou em duas plataformas, e só um desses reembolsos cabe a você

Quando um cliente é cobrado duas vezes pela mesma assinatura, geralmente é um plano comprado na App Store e outro no Google Play ou no seu site. Veja quem pode reembolsar cada lado, quanto isso custa para você e como impedir a segunda cobrança.

Um iPhone e um celular Android lado a lado sobre uma mesa, ao lado de um extrato bancário com duas cobranças iguais, mostrando um cliente cobrado duas vezes pela mesma assinatura

Principais conclusões

  • Um cliente cobrado duas vezes pela mesma assinatura geralmente a comprou em duas lojas diferentes, como a App Store e o Google Play, e cada loja cobra e reembolsa a própria compra de forma independente.
  • Desenvolvedores não podem reembolsar compras da App Store. Quem decide é a Apple, pelo reportaproblem.apple.com ou pela tela de reembolso que um app pode abrir com o beginRefundRequest do StoreKit, e a Apple diz que leva até 48 horas para aprovar ou negar.
  • No Google Play, o desenvolvedor pode reembolsar um pedido em Order management no Play Console ou pela API orders.refund, que não reembolsa pedidos com mais de 3 anos.
  • Reembolsar o pedido mais recente de uma assinatura do Google Play remove a assinatura imediatamente e cancela as renovações futuras. Reembolsar um pedido mais antigo mantém a assinatura ativa.
  • A Apple envia um CONSUMPTION_REQUEST para pedidos de reembolso de qualquer tipo de produto, inclusive assinaturas com renovação automática, e o desenvolvedor tem 12 horas para responder com Send Consumption Information se o cliente tiver dado consentimento.
  • Para pedidos do Google Play feitos depois de 3 de agosto de 2026, um chargeback custa ao desenvolvedor o preço da compra, menos a taxa de serviço do Play, mais a taxa de chargeback do banco.
  • Definir um appAccountToken nas compras da Apple e um ID de conta ofuscado nas compras do Google Play permite que o seu servidor veja um único cliente por trás de duas assinaturas antes que a segunda cobrança aconteça.

Nada nos sistemas de cobrança da Apple ou do Google impede que uma pessoa pague aos dois pela sua assinatura no mesmo mês. Quando um cliente é cobrado duas vezes pela mesma assinatura, quase sempre foi isso que aconteceu. Ele assinou num iPhone, depois de novo num tablet Android ou no seu site, e o seu app não reconheceu o primeiro plano. O cliente vê duas cobranças e escreve para você. O problema é que você só consegue reembolsar uma delas por conta própria, e só se ela não tiver sido comprada pela Apple. Veja como funciona cada lado, quanto a duplicidade custa para você e como garantir que isso não se repita.

Por que clientes são cobrados duas vezes pela mesma assinatura

Cada loja é dona da própria compra. A Apple cobra a assinatura da App Store, o Google cobra a do Google Play e o seu processador de pagamentos cobra o plano web. Nenhum deles sabe que os outros existem. O seu servidor é o único lugar onde as duas compras podem se encontrar, e só se ambas carregarem um ID que as ligue à mesma conta.

Os caminhos mais comuns para uma cobrança dupla são estes:

  • O cliente troca de celular, do iOS para o Android ou o contrário, e assina de novo porque o app novo mostra um paywall.
  • O cliente assina no seu site, instala o app e não está logado, então o app vende a ele mais uma assinatura da loja.
  • O cliente desinstala o app e acha que isso encerrou o plano. A ajuda do Google diz que desinstalar um app não cancela a assinatura do Google Play, e um plano da App Store continua sendo renovado até ser cancelado na conta Apple.

"Está na cara que o seu app e o seu site não conversam"

Essa é a reclamação que você vai ler no e-mail de suporte, e do ponto de vista do cliente ela é justa. Ele pagou por um produto só. Ser cobrado de novo por ele parece uma armadilha, mesmo quando foi um acidente dos dois lados. O jeito mais rápido de esfriar a situação é dizer com clareza qual compra você pode reembolsar e qual ele precisa levar à Apple.

Quem pode reembolsar cada cobrança

É aqui que a maioria das respostas de suporte erra. Você só pode prometer o que controla.

Onde a duplicata foi compradaQuem decide o reembolsoComo o plano para de renovarSua participação
App StoreSó a Apple, pelo reportaproblem.apple.com ou pela tela de reembolso no seu appO cliente cancela na conta Apple deleCONSUMPTION_REQUEST, responda em até 12 horas se o cliente tiver dado consentimento
Google Play, até 48 horas após a compraO cliente pode pedir ao Google, ou você pode reembolsarReembolsar o último pedido cancela as renovações futurasNenhuma no reembolso de autoatendimento do Google
Google Play, depois de 48 horasVocê, pelo Play Console ou pelo orders.refundReembolsar o último pedido cancela as renovações futurasVocê decide
Seu siteVocê, pelo seu processador de pagamentosVocê cancela do seu ladoVocê decide

Um desenvolvedor pode reembolsar uma assinatura da App Store?

Não. A Apple cuida de todos os reembolsos da App Store. O que você pode fazer é encurtar o caminho. O beginRefundRequest do StoreKit abre a tela de reembolso da Apple dentro do seu app, com os dados da compra e uma lista de motivos já preenchidos. A documentação da Apple diz que a App Store leva até 48 horas para aprovar ou negar o pedido. Fora do app, o cliente entra em reportaproblem.apple.com, escolhe "Solicitar reembolso", seleciona um motivo e escolhe a assinatura.

Reembolsando você mesmo o lado do Google Play

No Google Play, quem manda é você. No Play Console, abra Order management, selecione o pedido e reembolse. A ajuda do Play Console é específica sobre assinaturas: reembolse o pedido mais recente e a assinatura é removida imediatamente, com as renovações futuras canceladas. Reembolse um pedido mais antigo e a assinatura continua ativa. Se você automatizar isso, a API orders.refund faz o mesmo trabalho, aceita uma flag revoke para encerrar o acesso na hora e recusa pedidos com mais de 3 anos.

Quanto uma assinatura duplicada custa para você

A duplicata nunca foi uma receita que você pudesse manter. A questão financeira é quanto ela custa a mais, além do reembolso.

O caso simples

Imagine que um cliente pagou $9.99 por mês na App Store e no Google Play durante três meses antes de perceber. São $29.97 em cobranças duplicadas. Se você mesmo reembolsar os três pedidos do Google Play, devolve $29.97 e o problema termina no mesmo dia. Se o cliente levar o lado da App Store à Apple, a Apple decide quanto reembolsar e você só fica sabendo pelas notificações do seu servidor. De qualquer forma, a receita de uma plataforma nesses três meses volta para o cliente.

O caso caro

O prejuízo real vem quando o cliente desiste do suporte e liga para o banco. Um chargeback é definitivo depois que o banco decide. O Google Play te dá uma única chance de contestar, uma revisão do chargeback que você responde em até 24 horas pelo orders.reviewrefund. Para pedidos do Google Play feitos depois de 3 de agosto de 2026, um chargeback perdido custa a você o preço da compra, menos a taxa de serviço do Play, mais a taxa de chargeback do banco. Um reembolso de $29.97 que você poderia ter feito em um minuto vira $29.97 mais uma taxa que você não controla.

O custo que você continua pagando enquanto isso

Enquanto os dois planos estão ativos, o seu backend atende uma pessoa, mas enxerga duas assinaturas. Se você conta licenças, sincroniza dados ou chama APIs pagas de terceiros por assinatura, pode estar pagando em dobro por processamento, armazenamento e chamadas de API para um único cliente. Unificar os dois registros acaba com isso.

Um desenvolvedor lendo a caixa de entrada do suporte ao cliente em um notebook ao lado de um smartphone, resolvendo o reembolso de uma assinatura duplicada

Como lidar com uma cobrança dupla no suporte

Responda rápido e em uma única mensagem. Cada troca extra de mensagens aumenta a chance de uma contestação no banco.

  • Procure as duas compras pela conta do cliente, não pelo e-mail de onde ele escreveu.
  • Pergunte qual plano ele quer manter. Geralmente é o do aparelho que ele usa hoje.
  • Se a duplicata estiver no Google Play ou no seu site, reembolse você mesmo e avise que já está feito.
  • Se a duplicata estiver na App Store, mande o cliente para reportaproblem.apple.com, ou para o botão de reembolso do seu app se você tiver criado um, e peça que ele cancele nas configurações da conta Apple.
  • Se depois a Apple enviar um CONSUMPTION_REQUEST e o cliente tiver dado consentimento, responda em até 12 horas com dados de uso precisos. Um plano duplicado que nunca foi usado é fácil de a Apple aprovar.

Como impedir a segunda cobrança antes que ela aconteça

Prevenir sai mais barato que qualquer reembolso, e as ferramentas já existem nas duas lojas.

Ligue cada compra ao seu ID de conta

No iOS, gere um UUID por conta e passe como a opção de compra appAccountToken. A Apple devolve o mesmo valor na transação e nas informações de renovação da assinatura. Se uma compra aconteceu fora do seu app, o endpoint Set App Account Token permite associar ou atualizar o token depois. No Android, passe para o setObfuscatedAccountId um ID de conta com hash de até 64 caracteres, nunca dados pessoais em texto puro.

Verifique os direitos de acesso antes de mostrar um paywall

Antes de o paywall aparecer, pergunte ao seu próprio servidor se a conta logada já tem um plano ativo em qualquer plataforma. Mostre primeiro um convite para fazer login, e o paywall só para contas sem plano ativo.

Fique de olho em dois planos ativos na mesma conta

Rode uma verificação diária das contas com mais de uma assinatura ativa entre lojas. Descobrir isso na primeira semana significa reembolsar um mês em vez de três, e mandar um e-mail curto em vez de enfrentar um chargeback.

O RefundHalt acompanha as assinaturas da App Store e do Google Play com base nos seus próprios IDs de conta, então um cliente que paga em dobro aparece como uma pessoa com dois planos antes que o banco dele perceba.

Perguntas frequentes

Por que um cliente foi cobrado duas vezes pela mesma assinatura?
Geralmente porque ele comprou em duas plataformas, como a App Store e o Google Play, ou em uma loja e no seu site. Cada loja cobra a própria assinatura e não sabe da outra, então as duas renovam até uma ser cancelada.
Posso reembolsar uma assinatura da App Store para um cliente?
Não. Só a Apple pode reembolsar compras da App Store. Você pode abrir a tela de reembolso da Apple dentro do seu app com o beginRefundRequest do StoreKit, ou indicar ao cliente o reportaproblem.apple.com. A Apple diz que leva até 48 horas para aprovar ou negar o pedido.
Como reembolso uma assinatura duplicada do Google Play?
Reembolse o pedido em Order management no Play Console, ou chame a API orders.refund. Reembolsar o pedido mais recente remove a assinatura imediatamente e cancela as renovações futuras. A API não reembolsa pedidos com mais de 3 anos.
Reembolsar uma assinatura também a cancela?
No Google Play, reembolsar o pedido mais recente cancela as renovações futuras, mas reembolsar um pedido mais antigo mantém a assinatura ativa. Na App Store, o reembolso é decisão da Apple e o cliente cancela a assinatura na conta Apple dele.
Como impedir que usuários assinem duas vezes entre iOS e Android?
Associe o seu próprio ID de conta a cada compra, com appAccountToken na Apple e um ID de conta ofuscado no Google Play. Depois, verifique no seu servidor se existe um plano ativo em qualquer plataforma antes de mostrar um paywall, e peça ao usuário que faça login primeiro.

Fontes e leituras adicionais

RefundHalt

O piloto automático de reembolsos para App Store e Google Play

Continue lendo

A próxima solicitação de reembolso já está a caminho.

Configure a RefundHalt no tempo que você levaria para ler mais um e-mail de suporte sobre um reembolso que não conseguiu contestar.