App Store Refund Management

Como Responder a uma Solicitação de Reembolso da Apple App Store Passo a Passo

Aprenda o processo passo a passo para lidar com uma solicitação de reembolso da Apple App Store e responder aos clientes de forma profissional.

5 min read
Como Responder a uma Solicitação de Reembolso da Apple App Store Passo a Passo

Por muito tempo, a resposta honesta para "como eu respondo a uma solicitação de reembolso da Apple" era que você não respondia. A Apple recebia o pagamento, recebia a solicitação, decidia, e a primeira notícia que o desenvolvedor tinha disso era um repasse menor. Isso deixou de ser verdade desde 2021, embora muita gente ainda acredite nisso.

Agora a Apple pergunta ao seu servidor o que ele sabe sobre a compra antes de decidir, e espera cerca de 12 horas pela resposta. Já escrevemos sobre o que uma CONSUMPTION_REQUEST realmente contém, então não vou repetir o payload campo por campo. Este texto é sobre o que fazer quando uma delas chega.

Principais Pontos

  • A Apple decide todos os reembolsos da App Store. O que você envia não muda isso, mas muda o que a Apple sabe no momento da decisão.

  • A solicitação chega como uma notificação CONSUMPTION_REQUEST, apenas para itens consumíveis e assinaturas com renovação automática.

  • Você tem 12 horas para responder por meio do endpoint Send Consumption Information, que agora exige cinco campos.

  • A resposta se resume basicamente a três fatos: se foi entregue, quanto foi usado e se o cliente teve uma amostra gratuita antes. Mais a sua preferência.

  • Na nossa experiência, os reembolsos que os desenvolvedores perdem são, na maioria, os que ninguém respondeu.

O Que É uma Solicitação de Reembolso da Apple App Store?

Uma solicitação de reembolso da Apple App Store é quando o cliente pede à Apple o dinheiro de volta por um aplicativo ou uma compra no aplicativo. Não pede a você. Ele acessa reportaproblem.apple.com, ou usa a tela de reembolso dentro do aplicativo, escolhe um motivo em um menu curto, seleciona a compra e envia. A página de suporte da Apple informa que a resposta deve chegar em 24 a 48 horas.

Se a compra foi um item consumível ou uma assinatura com renovação automática, a Apple notifica seu servidor e pergunta o que você sabe, depois combina sua resposta com o histórico de compras e reembolsos do próprio cliente, que ela conhece muito melhor do que você, e toma a decisão. Você não vê o nome do cliente e não tem poder de veto. Você tem uma janela curta para apresentar os fatos.

Como Funciona o Processo de Reembolso da Apple para Desenvolvedores

O processo de reembolso da Apple para desenvolvedores tem quatro etapas, e você só participa de uma delas.

  1. O cliente pede o reembolso à Apple e escolhe um motivo.

  2. A Apple envia uma CONSUMPTION_REQUEST para a URL do servidor que você registrou no App Store Connect. Isso só acontece para itens consumíveis e assinaturas com renovação automática.

  3. Você tem 12 horas para chamar o endpoint Send Consumption Information com seus dados.

  4. A Apple decide e depois informa você com uma notificação REFUND ou REFUND_DECLINED.

Se você nunca configurou uma URL de servidor para o App Store Server Notifications, a segunda etapa simplesmente não acontece. A Apple decide apenas com base na conta do cliente, e você descobre pelo relatório de vendas, se é que você o lê.

O Que Acontece Depois Que um Cliente Solicita um Reembolso?

Logo depois que o cliente envia a solicitação, seu endpoint recebe um payload JSON assinado com um notificationType de CONSUMPTION_REQUEST. Dentro dele: a transação assinada, o ID do produto, o ID da transação original e um consumptionRequestReason. A Apple adicionou esse motivo em 2024 e explicou isso na sessão da WWDC24 sobre as APIs de servidor da App Store. Cinco valores possíveis: UNINTENDED_PURCHASE, FULFILLMENT_ISSUE, UNSATISFIED_WITH_PURCHASE, LEGAL e OTHER.

O que falta é a pessoa. A única ligação com seus registros é o ID da transação, e o appAccountToken, se você já estiver anexando um na compra. Se não estiver, esse é o momento em que você vai desejar ter feito isso.

Então a análise é, na prática, uma consulta: quem comprou isso, recebeu o que comprou e o que fez com isso desde então?

Como Responder a uma Solicitação de Reembolso da Apple

Quem pesquisa como responder a notificações de solicitação de reembolso da Apple geralmente encontra apenas a referência da API. Aqui estão as etapas, em ordem.

1. Verifique o Payload

A Apple assina todas as notificações. Verifique a assinatura antes de acreditar em qualquer parte dela. A App Store Server Library da Apple faz isso em Java, Python, Node e Swift.

2. Encontre a Compra

Use o ID da transação ou o appAccountToken para localizar a compra no seu próprio sistema. Você precisa do usuário, do registro de entrega e de qualquer uso que você tenha registrado desde então.

3. Leia o Motivo e Depois Verifique

FULFILLMENT_ISSUE significa que o cliente diz que nunca recebeu o que pagou. Verifique primeiro seus registros de entrega, porque, se ele estiver certo, você vai querer que esse reembolso seja aprovado.

UNINTENDED_PURCHASE geralmente é uma criança ou um toque acidental.

Em UNSATISFIED_WITH_PURCHASE é onde seus dados de uso realmente pesam, já que "não gostei" parece bem diferente com 2% de uso do que com 100%.

4. Escolha uma Preferência

A Apple aceita GRANT_FULL, GRANT_PRORATED ou DECLINE. Escolha a que seus dados sustentam. É uma preferência, e a Apple já concedeu muitos reembolsos que os desenvolvedores pediram para negar.

5. Envie

Chame o Send Consumption Information endpoint. O corpo da solicitação atual tem cinco campos: customerConsented, deliveryStatus, consumptionPercentage, sampleContentProvided e refundPreference.

O consumo é medido em miliunidades, o que confunde muita gente: 100000 significa uso total, 45200 significa 45.2%.

E customerConsented precisa ser true, então a permissão para compartilhar dados de uso deve estar nos seus termos muito antes de a primeira solicitação chegar.

6. Aja Conforme o Resultado

REFUND significa revogar o conteúdo ou o direito de acesso, idealmente dentro de uma hora. REFUND_DECLINED significa que nada muda. De qualquer forma, registre o resultado no caso.

Digamos que alguém compre um pacote de 500 moedas às 23h, gaste 470 delas durante a noite e registre uma solicitação como UNSATISFIED_WITH_PURCHASE na manhã seguinte. Entregue, 94% consumido, sem período de teste, preferência DECLINE. Essa é uma resposta completa a uma solicitação de reembolso da Apple. Não precisa ser uma redação.

Quais Informações os Desenvolvedores Devem Verificar Antes de Responder?

Cinco coisas, a maioria das quais já deveria estar no seu banco de dados.

O Registro da Compra

Data, produto, preço e se essa conta já comprou de você antes. Se seus registros forem escassos, o endpoint Get Transaction History da Apple retorna tudo o que esse cliente comprou no seu aplicativo, a partir de um dos IDs de transação dele.

Entrega

Seu servidor realmente entregou as moedas, desbloqueou o recurso, iniciou a assinatura, e quando isso aconteceu? Se essa chamada falhou, seu deliveryStatus é um dos valores UNDELIVERED e o reembolso é merecido. Não discuta com seus próprios registros.

Uso Desde Então

Sessões, capítulos abertos, moedas gastas, seja lá o que "usar" significa para o seu produto. A Apple só quer uma porcentagem, mas você não consegue produzir uma que consiga defender sem os eventos por trás dela.

Se o Cliente Teve uma Amostra Antes

Ou seja, um período de teste gratuito, um capítulo de prévia ou um plano gratuito. A Apple pergunta isso diretamente, e uma resposta positiva enfraquece a história de "eu não sabia o que estava comprando".

A Conta do Seu Lado

Há quanto tempo ela existe, se você já fez reembolsos para ela antes, se há um chamado de suporte em aberto. A Apple vê a metade desse histórico referente à App Store. Você vê a sua.

Tudo isso depende de vincular o ID de transação da Apple a um usuário no seu sistema, que é exatamente para isso que o appAccountToken existe. Essa é a lacuna mais comum que encontramos, e já escrevemos sobre por que o appAccountToken é importante para a defesa de reembolsos, caso você queira os detalhes de configuração.

Erros Comuns que os Desenvolvedores Cometem com Solicitações de Reembolso da Apple

A Notificação Nunca Chega

Não há uma URL de servidor configurada no App Store Connect, ou há uma, mas ela aponta para um ambiente de teste que alguém desativou em março. A Apple continua enviando. Não há ninguém para receber.

Responder com Atraso

Doze horas parecem muito tempo até uma solicitação chegar às 2h de um domingo, quando a pessoa responsável está dormindo, depois tomando café da manhã e só então percebe vagamente uma mensagem no Slack. Um processo pensado para horário comercial perde uma boa parte das solicitações por natureza.

Não Ter Nada a Dizer

A notificação chega e não há registro de entrega, nem eventos de uso, nem appAccountToken. A Apple decide apenas com base na palavra do cliente. Esse erro foi cometido meses antes, no checkout.

Pedir para a Apple Negar Tudo

Já vimos configurações que enviam DECLINE em todas as solicitações, incluindo aquelas em que os próprios registros do desenvolvedor mostram que a entrega falhou. A Apple consegue identificar esse padrão, e isso custa credibilidade nas solicitações em que você realmente tem um bom argumento.

Esquecer de Revogar Após um Reembolso Concedido

Esse é o erro que custa duas vezes. O dinheiro já foi e o cliente ainda tem o conteúdo, e alguns deles percebem isso.

Testar em Produção

A Apple oferece um endpoint de notificação de teste e solicitações de reembolso em sandbox. Use os dois antes que a primeira solicitação real apareça em um horário inconveniente.

Gestão de Reembolsos da Apple: Manual vs Automatizada

A gestão de reembolsos da Apple engloba tudo o que acontece nessa janela de 12 horas: receber a solicitação, encontrar os dados, escolher uma preferência, enviar a resposta, registrar o resultado e revogar o acesso quando necessário.

Manual

Na prática, isso significa uma pessoa com acesso aos registros e um alerta. Funciona bem com poucas solicitações por mês, desde que essa pessoa nunca tire uma semana de folga.

Por volta de vinte por semana, o processo começa a falhar. Com cem, já é um trabalho em tempo integral, e ninguém pede por isso.

Automatizada

Na automação, a consulta e a resposta seguem regras que você definiu uma única vez. Um consumível totalmente usado recebe DECLINE, um FULFILLMENT_ISSUE com entrega falha recebe GRANT_FULL, e qualquer coisa fora do padrão é sinalizada para um humano analisar.

As respostas saem em minutos, às 2h com a mesma confiabilidade que às 14h.

O detalhe: a automação só é tão boa quanto os dados por trás dela. Registros de entrega e uso incompletos apenas enviam "desconhecido" mais rápido.

Quando os Desenvolvedores Devem Considerar um Software de Gestão de Reembolsos da Apple?

Sinceramente, não no início. Duas ou três solicitações por mês podem ser resolvidas com uma lista de verificação e um alerta bem visível, e fazer algumas manualmente ensina bastante.

Faz sentido quando as solicitações chegam mais rápido do que uma pessoa consegue resolver dentro do prazo, ou em horários em que ninguém está acordado. Também ajuda quando você gerencia vários aplicativos, ou Apple e Google Play lado a lado, e quer uma única lista em vez de três.

Um software de gestão de reembolsos da Apple se paga a partir do momento em que o processo manual começa a deixar solicitações passarem despercebidas. Você vai saber quando isso acontecer: é a semana em que você perde três seguidas e só descobre pelo repasse.

Software de Defesa de Reembolsos da Apple: O Que os Desenvolvedores Devem Procurar?

Se você está comparando softwares de defesa de reembolsos da Apple, comece pela estrutura básica: ele recebe a CONSUMPTION_REQUEST diretamente e responde aos casos de rotina sem precisar de uma pessoa envolvida? Com que rapidez, incluindo durante a madrugada e os fins de semana? Minutos é a resposta certa, e vale pedir para ver os registros de horário.

Evidências

Ele consegue buscar ou receber seus dados de entrega e uso, ou apenas repete a notificação de volta com uma preferência anexada? O segundo tipo não vale muito.

Ele também deve ser construído sobre a App Store Server API e o Server Notifications V2, e não sobre a leitura de e-mails.

Visibilidade

Notificações quando uma solicitação chega, quando uma resposta é enviada e quando a Apple decide.

Um caso por solicitação, com a resposta e o resultado reunidos em um só lugar.

Relatórios sobre taxas de reembolso, taxas de sucesso e motivos, por aplicativo e por produto.

Um registro de auditoria de quem ou o que enviou qual resposta e quando.

Regras que você controla, de modo que mudar sua lógica não exija um novo deploy.

Preços

Os preços também variam: taxas mensais fixas, taxas por solicitação e modelos de percentual sobre o valor recuperado fazem sentido em volumes diferentes.

Uma coisa que nenhum deles consegue fazer: impedir que solicitações de reembolso aconteçam, ou garantir como a Apple vai decidir. Quem afirmar o contrário está tentando vender alguma coisa.

Boas Práticas para Responder a Solicitações de Reembolso da Apple

Fixe isto ao lado da escala de plantão.

  • Registre uma URL de servidor de produção para o App Store Server Notifications V2, e configure um alerta caso ela fique silenciosa.

  • Defina o appAccountToken em toda compra. Em todas, sem exceção.

  • Registre a entrega com data/hora e resultado, além dos poucos eventos de uso que indicam que "o cliente usou".

  • Inclua agora mesmo o consentimento para compartilhamento de dados de uso nos seus termos.

  • Responda a toda solicitação dentro de 12 horas, inclusive aquelas em que a resposta é "conceder".

  • Só peça DECLINE quando seus dados sustentarem isso. A Apple percebe padrões.

  • Revogue o acesso em toda notificação REFUND, no mesmo dia.

  • Uma vez por mês, verifique qual porcentagem das solicitações você realmente respondeu. Esse número influencia sua taxa de reembolso mais do que qualquer outra coisa.

Vale a Pena Usar um Software de Gestão de Reembolsos da Apple?

Com volume baixo, provavelmente não. Quando as solicitações passam a superar o que uma pessoa consegue responder com confiança, ou começam a chegar fora do horário comercial, um software que responde automaticamente costuma se pagar.

Se há um hábito para levar de tudo isso, é responder a toda solicitação, com dados reais, antes que o prazo termine. O Dipsea, um aplicativo de áudio por assinatura, passou de uma taxa de reembolso de 3% para 1.9% em cerca de duas semanas depois que começou a responder, e nunca pediu à Apple para negar nada. Os aplicativos que ficam em silêncio nunca descobrem o que poderiam ter mantido.

Perguntas frequentes

É quando um cliente pede à Apple, geralmente pelo site reportaproblem.apple.com, o reembolso de um aplicativo ou de uma compra no aplicativo. A Apple informa aos clientes que devem esperar uma resposta em até 24 a 48 horas. Para itens consumíveis e assinaturas, ela primeiro pede informações ao desenvolvedor.

Verifique a notificação, localize a compra nos seus próprios registros, confira a entrega e o uso, escolha uma preferência e chame o endpoint Send Consumption Information da Apple dentro de 12 horas. Depois, aja de acordo com o que a Apple decidir.

Não. Você pode dizer à Apple que prefere que ela negue o reembolso e enviar dados para sustentar isso. Mesmo assim, quem decide é a Apple, e ela pode conceder, e de fato concede, reembolsos que os desenvolvedores pediram para recusar.

Cinco coisas: que o cliente consentiu com o compartilhamento de dados, se a compra foi entregue, quanto dela foi consumido, se ele teve uma amostra ou período de teste gratuito, e a sua preferência de reembolso. Esse é todo o corpo da solicitação atual.

Doze horas a partir da CONSUMPTION_REQUEST. A Apple orienta responder dentro desse prazo se você quiser que seus dados sejam considerados na decisão.

#Apple App Store Refund#Apple Refund Request#App Store Refund#Apple App Store#Refund Request Guide
Refund SensorRefund Sensor TeamRefund defense for App Store and Google Play developers