Todos os artigos
Deep dive9 min de leitura

Seus dados de consumo informam a decisão de reembolso da Apple, não a controlam

Quando um cliente pede um reembolso à Apple, você tem 12 horas para enviar os dados de consumo. A própria documentação da Apple chama isso de um dentre vários fatores, não um veredito. Aqui está o que seus dados de fato movem, por que um DECLINE ainda pode terminar em reembolso e quanto vale esse empurrão em dólares.

Uma mão colocando um pequeno peso de latão em uma balança que já sustenta vários outros, representando os dados de consumo como um fator na decisão de reembolso da Apple

Principais conclusões

  • Quando um cliente solicita um reembolso, a Apple envia ao seu servidor uma notificação CONSUMPTION_REQUEST e lhe dá 12 horas para responder com os dados de consumo pelo endpoint Send Consumption Information. Se perder a janela, a Apple decide sem a sua contribuição.
  • Nas palavras da própria Apple, a App Store usa vários fatores para decidir um reembolso, e a informação de consumo que você envia é usada para informar essa decisão. Seu refundPreference é um desses fatores, não o veredito.
  • Você pode enviar um refundPreference de preferir recusar, preferir conceder integral ou preferir conceder proporcional. A Apple pondera. É por isso que as equipes veem uma compra que marcaram como preferir recusar ainda ser reembolsada, e isso funciona conforme documentado.
  • A Apple rejeita seus dados de consumo a menos que customerConsented seja true. Se o cliente não consentiu em compartilhar os dados, a orientação da Apple é não responder à notificação de forma alguma, e você é o único responsável por obter esse consentimento.
  • Desde a WWDC24, a CONSUMPTION_REQUEST também é disparada para assinaturas de renovação automática, não apenas para consumíveis, então a mesma resposta de 12 horas agora alcança muito mais dos seus reembolsos do que antes.
  • Para assinaturas de renovação automática, a Apple calcula o consumo por conta própria e proíbe uma preferência proporcional, então sua margem de influência ali é mais estreita do que em um consumível que você pode descrever como totalmente consumido.
  • Os dólares que você já gastou para atender à compra, o processamento, as chamadas a APIs de terceiros, o armazenamento, se perdem quer a Apple conceda o reembolso ou não. Sua resposta de consumo muda o reembolso, nunca o custo que você já pagou para entregar.

Um cliente toca em reembolso e, em menos de um minuto, seu servidor recebe uma CONSUMPTION_REQUEST da Apple. Você tem 12 horas para responder com os dados de consumo, e é tentador ler essa resposta como um veto: envie preferir recusar, fique com o dinheiro. Não é um veto. A própria documentação da Apple diz que a App Store usa vários fatores para determinar se uma solicitação de reembolso é aprovada ou negada, e que a informação de consumo que você fornece é usada para informar suas decisões de reembolso. Informar, não decidir. Este post percorre o que seus dados de consumo de fato movem, por que uma compra que você marcou como preferir recusar ainda pode ser reembolsada, e quanto todo o exercício vale depois que você conta o dinheiro que já gastou.

O que a Apple realmente faz com seus dados de consumo

O endpoint Send Consumption Information existe para que você possa entregar à Apple o contexto no momento em que um reembolso está em questão. Ele não lhe entrega a decisão. Ler o fluxo na ordem certa é a diferença entre definir expectativas sensatas e abrir um bug contra um comportamento que está documentado.

A App Store decide, e você recomenda

A Apple é explícita sobre a divisão. Na referência de Send Consumption Information, a Apple escreve que a App Store usa vários fatores para determinar se uma solicitação de reembolso é aprovada ou negada, e que usa a informação de consumo que você fornece para informar suas decisões de reembolso. No próprio campo refundPreference, a Apple afirma que sua preferência de reembolso é um dentre vários fatores que a App Store usa para informar suas decisões de reembolso. Portanto, o sinal mais forte que você pode enviar, um categórico preferir recusar, ainda é uma entrada em um modelo que você não controla. O histórico do cliente, o motivo que ele deu, o tipo de produto e os próprios sinais de fraude da Apple estão todos nesse mesmo modelo ao lado da sua resposta.

CONSUMPTION_REQUEST agora cobre assinaturas, não apenas consumíveis

Isso costumava ser uma história de consumíveis. Desde a WWDC24, a notificação CONSUMPTION_REQUEST é disparada quando um cliente solicita um reembolso por uma compra no aplicativo consumível ou uma assinatura de renovação automática. Essa é uma grande expansão de alcance. A mesma resposta de 12 horas agora se aplica aos reembolsos de assinaturas, onde sua margem de influência é diferente porque a Apple calcula o consumo das renovações automáticas por conta própria e não aceitará uma preferência proporcional de você. Leia o tipo de produto em cada solicitação antes de decidir com quanta força sua resposta pode empurrar.

As cinco entradas que você tem permissão para enviar

O corpo da solicitação V2 que a Apple aceita é pequeno, cinco campos fazem o trabalho, e três deles são obrigatórios. Cada um é uma entrada que a Apple pondera, não um botão que força um resultado. Aqui está o que você pode colocar na resposta e o que isso diz à Apple.

CampoObrigatórioO que diz à Apple
customerConsentedSimSe o cliente concordou em compartilhar esses dados de reembolso. Deve ser true ou a Apple rejeita a solicitação.
consumptionStatusNãoQuanto foi usado: não declarado, não consumido, parcialmente consumido ou totalmente consumido.
deliveryStatusNãoSe o seu app entregou uma compra funcional, ou encontrou um problema que você quer deixar registrado.
sampleContentProvidedNãoSe você ofereceu uma amostra gratuita, uma avaliação ou uma descrição do recurso antes da compra.
refundPreferenceNãoSeu resultado recomendado: preferir recusar, preferir conceder integral ou preferir conceder proporcional.

A janela de 12 horas, e a barreira de consentimento que a maioria das equipes ignora

Dois mecanismos decidem se sua resposta sequer conta. Um é um relógio. O outro é um indicador de consentimento que barra na porta muitas respostas bem-intencionadas.

Responda dentro de 12 horas ou o momento passa

A instrução da Apple é clara: responda dentro de 12 horas após receber a notificação CONSUMPTION_REQUEST. Essa é toda a janela. Uma solicitação de reembolso não espera pelo seu próximo dia útil, e uma resposta de consumo que chega atrasada é uma resposta que a Apple nunca ponderou. Se você responde a essas manualmente, o relógio de 12 horas é a parte que falha primeiro e em silêncio, nos fins de semana, nos feriados e às 3 da madrugada no seu fuso horário. A resposta precisa ser automatizada para ser confiável, porque a janela não se importa com quando a sua equipe está acordada.

O mostrador de um relógio analógico sobre uma mesa ao lado de um smartphone virado para baixo, representando a janela de 12 horas para responder à CONSUMPTION_REQUEST da Apple

Você não pode enviar dados a menos que o cliente tenha consentido

Aqui está a barreira em que as equipes tropeçam. A Apple rejeita uma solicitação de Send Consumption Information cujo valor de customerConsented seja qualquer coisa diferente de true. Nas palavras da Apple, se o cliente deu consentimento, responda chamando a API e enviando os dados de consumo; se não, não responda à notificação CONSUMPTION_REQUEST. A Apple também coloca a responsabilidade inteiramente sobre você: você deve obter consentimento válido do cliente antes de compartilhar os dados pessoais dele, e você, o desenvolvedor, é o único responsável por obtê-lo. Então a primeira pergunta em cada solicitação não é quanto eles usaram, é se este cliente concordou em deixar a gente contar à Apple. Sem consentimento, sem resposta, e o reembolso é decidido com base em tudo exceto o seu lado da história.

O que realmente move a decisão de reembolso da Apple

Se a resposta é uma recomendação, a pergunta honesta é o quanto ela recomenda. A resposta é que seus dados importam mais justamente onde um humano hesitaria, e menos onde o resultado nunca esteve realmente em dúvida.

Por que você pode enviar preferir recusar e ainda assim ver um reembolso

Os desenvolvedores relatam enviar preferir recusar em uma compra que o cliente consumiu totalmente e ver a Apple reembolsá-la mesmo assim. Isso não é uma API quebrada. A Apple lhe disse que pondera vários fatores, e em qualquer solicitação alguns desses fatores podem pesar mais do que um consumível totalmente consumido: um cliente com histórico limpo, um motivo declarado que a Apple trata como forte, um valor pequeno, uma solicitação pela primeira vez. Sua resposta empurrou contra o reembolso. Outras entradas empurraram com mais força. A lição não é parar de responder, é parar de esperar que um consumível limpo sempre sobreviva. Onde o sinal é genuinamente misto, um status parcialmente consumido, um problema de entrega documentado e uma preferência honesta são as entradas que podem inclinar um caso limítrofe a seu favor.

Quanto vale uma recomendação em dólares

Um reembolso não é o preço da venda. É o preço da venda mais tudo o que você já gastou para entregá-la, e a resposta de consumo só toca a primeira parte.

O dinheiro já está gasto quando a solicitação chega

Quando a Apple pergunta se deve reembolsar, o cliente já usou a coisa. Em um consumível isso significa que o processamento rodou, as chamadas a APIs de terceiros foram cobradas, as imagens ou tokens ou gerações foram produzidos, e o armazenamento foi gravado. Esses são custos pagos do seu lado e eles não voltam se a Apple negar o reembolso, e são perdidos duas vezes se a Apple conceder. Sua resposta de consumo pode recuperar o preço de venda em um caso limítrofe. Ela não pode recuperar o custo dos bens que você já entregou. Essa é a verdadeira razão pela qual uma compra totalmente consumida é a cara de reembolsar, e não tem nada a ver com há quanto tempo foi comprada.

  • O preço de venda: sua receita líquida após a comissão da Apple, revertida se o reembolso for concedido. Esta é a única parte que sua resposta pode influenciar.
  • O custo de entrega: processamento, chamadas de API, armazenamento e qualquer pagamento que você já fez em relação à compra. Perdido independentemente da decisão.
  • O tempo da equipe: cada reembolso respondido manualmente são minutos do dia de uma pessoa, e a janela de 12 horas faz esses minutos caírem em horários inconvenientes.
  • O padrão que você não percebe: um cliente que reembolsa repetidamente é um custo que você só enxerga se estiver acompanhando o consumo e o histórico ao longo das solicitações, em vez de tratar cada uma como algo isolado.

Como o Google Play lida com a mesma questão

A Apple não é a única loja que pede sua opinião e depois decide por conta própria. O Google Play executa um fluxo paralelo para os estornos bancários, e o formato é o mesmo: você envia evidências, a loja decide. As diferenças estão no relógio e no que você tem permissão para enviar.

PerguntaApp StoreGoogle Play
GatilhoNotificação CONSUMPTION_REQUESTPendingRefundReviewNotification para um estorno
Sua janela12 horas24 horas
Como você respondeSend Consumption Informationorders.reviewrefund
Sua recomendaçãorefundPreference: recusar, conceder integral, conceder proporcionalrefundPreference: APPROVE, DECLINE ou NEUTRAL
Quem decideA App StoreO Google Play, ou o banco em um estorno

A conclusão nas duas lojas é idêntica. Seu trabalho é responder dentro da janela com evidências de consumo precisas e uma preferência honesta. O trabalho da loja é decidir. Confundir os dois é como uma equipe acaba ou ignorando a janela porque a resposta é apenas uma recomendação, ou confiando na resposta como um veto e sendo pega de surpresa quando um reembolso chega mesmo assim. Nenhum dos dois está certo. Responda sempre, responda com precisão e trate o resultado como uma decisão que você informou, não uma que você tomou.

O RefundHalt captura a CONSUMPTION_REQUEST no momento em que a Apple a envia, verifica o consentimento, monta o status de consumo, o status de entrega e uma preferência de reembolso baseada em evidências, e responde dentro da janela de 12 horas sem que ninguém da sua equipe fique olhando um relógio. Ele faz o mesmo para a revisão de estornos do Google Play dentro da janela de 24 horas dela. Você não pode fazer a Apple decidir do seu jeito. Você pode garantir que a Apple nunca decida sem o seu lado da história, em cada reembolso, a tempo.

Perguntas frequentes

Enviar dados de consumo à Apple impede um reembolso?
Não sozinho. A documentação da Apple diz que a App Store usa vários fatores para decidir um reembolso e que seus dados de consumo são usados para informar essa decisão. Sua resposta, incluindo um refundPreference de preferir recusar, é uma entrada que a Apple pondera, então ela pode mover um caso limítrofe mas não garantirá uma negação, especialmente em uma compra que o cliente consumiu totalmente.
Quanto tempo eu tenho para responder a uma CONSUMPTION_REQUEST?
12 horas. A Apple diz para responder dentro de 12 horas após receber a notificação CONSUMPTION_REQUEST pelo endpoint Send Consumption Information. Uma resposta que chega depois da janela é uma resposta que a Apple nunca ponderou, e é por isso que a resposta precisa ser automatizada em vez de tratada por uma pessoa que pode estar dormindo.
Por que a Apple reembolsou uma compra depois que enviei preferir recusar?
Porque preferir recusar é uma recomendação, não uma ordem. A Apple afirma que sua preferência de reembolso é um dentre vários fatores que ela usa para informar sua decisão. Em uma dada solicitação, o histórico do cliente, o motivo que ele deu, o valor e os próprios sinais de fraude da Apple podem pesar mais do que sua preferência, então um reembolso após um preferir recusar é o fluxo funcionando conforme documentado.
Preciso do consentimento do cliente para enviar dados de consumo?
Sim. A Apple rejeita uma solicitação de Send Consumption Information a menos que customerConsented seja true, e sua orientação é que, se o cliente não consentiu, você não deve responder à CONSUMPTION_REQUEST de forma alguma. A Apple também afirma que você, o desenvolvedor, é o único responsável por obter consentimento válido antes de compartilhar os dados do cliente.
O fluxo de consumo funciona para assinaturas ou apenas para consumíveis?
Ambos, desde a WWDC24. A CONSUMPTION_REQUEST agora é disparada para uma compra no aplicativo consumível ou uma assinatura de renovação automática. Para assinaturas de renovação automática, a Apple calcula o consumo por conta própria e não aceita uma preferência proporcional, então sua margem de influência é mais estreita do que em um consumível cujo uso você pode descrever diretamente.

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.