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.

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.
| Campo | Obrigatório | O que diz à Apple |
|---|---|---|
| customerConsented | Sim | Se o cliente concordou em compartilhar esses dados de reembolso. Deve ser true ou a Apple rejeita a solicitação. |
| consumptionStatus | Não | Quanto foi usado: não declarado, não consumido, parcialmente consumido ou totalmente consumido. |
| deliveryStatus | Não | Se o seu app entregou uma compra funcional, ou encontrou um problema que você quer deixar registrado. |
| sampleContentProvided | Não | Se você ofereceu uma amostra gratuita, uma avaliação ou uma descrição do recurso antes da compra. |
| refundPreference | Não | Seu 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.

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.
| Pergunta | App Store | Google Play |
|---|---|---|
| Gatilho | Notificação CONSUMPTION_REQUEST | PendingRefundReviewNotification para um estorno |
| Sua janela | 12 horas | 24 horas |
| Como você responde | Send Consumption Information | orders.reviewrefund |
| Sua recomendação | refundPreference: recusar, conceder integral, conceder proporcional | refundPreference: APPROVE, DECLINE ou NEUTRAL |
| Quem decide | A App Store | O 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
- Apple Developer: Send Consumption Information (12-hour window, informs refund decisions)
- Apple Developer: ConsumptionRequest (the request body fields)
- Apple Developer: refundPreference (one of a variety of factors)
- Apple Developer: customerConsented (consent is required)
- Apple Developer: notificationType (CONSUMPTION_REQUEST covers subscriptions)
- Google Play Developer API: Method orders.reviewrefund (24-hour chargeback review)
RefundHalt
O piloto automático de reembolsos para App Store e Google Play
Continue lendo
Marque cada compra do Google Play com um id de conta ofuscado, ou um estorno chega sem forma de rastreá-lo
O Google Play permite estampar um id estável e com hash em cada compra e o lê de volta quando uma disputa chega. Configure-o e uma revisão de estorno se vincula ao usuário exato cujo uso você precisa reportar. Ignore-o e você estará combinando um simples id de pedido com suposições sob um relógio de 24 horas.
Uma cobrança não reconhecida em um extrato bancário vira um chargeback, e um chargeback custa mais do que um reembolso
Quando um cliente não consegue identificar o que seu app cobrou, ele liga para o banco em vez de você, e essa disputa cai como um chargeback. A Apple mostra tudo como apple.com/bill e não deixa você mudar nada. O Google Play permite definir o nome no extrato. Veja quanto cada um custa e o que você controla.