Ir para o conteúdo
App Store Refund Management

Como rastrear pedidos de reembolso da Apple e responder a tempo

Saiba como o rastreamento de pedidos de reembolso da Apple ajuda desenvolvedores de apps a monitorar reembolsos e proteger a receita de assinaturas

5 min read
Como rastrear pedidos de reembolso da Apple e responder a tempo

Pergunte à maioria das equipes se elas rastreiam os reembolsos da Apple e a resposta será sim. Pergunte o que elas armazenam e você descobrirá que é uma linha por reembolso, registrada depois do fato, com uma data e um valor.

Isso é um log, não rastreamento. Ele diz que um reembolso aconteceu. Não diz se a Apple perguntou algo a você ao longo do caminho, se alguém respondeu, se a resposta foi aceita ou se o acesso daquele cliente corresponde à realidade.

Essa lacuna importa porque partes desse processo expiram. A Apple dá uma janela de 12 horas para uma das etapas e, depois que ela passa, não há como reabri-la. Se você quer a visão geral em vez da mecânica do rastreamento, nosso guia sobre como gerenciar reembolsos da App Store sem perder receita do app cobre isso. Este artigo é sobre o que registrar e quando agir.

Principais pontos

• A Apple toma a decisão final sobre o reembolso. Desenvolvedores não aprovam nem negam pedidos.

• Um pedido de reembolso passa por vários estados distintos. Armazenar apenas o último perde a maior parte das informações úteis.

• Alguns fluxos de reembolso dão a você a chance de enviar informações de consumo, com consentimento, dentro de 12 horas.

• Enviar uma resposta e tê-la aceita são coisas diferentes. Rastreie o resultado, não a tentativa.

• O desfecho do reembolso precisa chegar à sua lógica de entitlement e aos seus registros de receita; caso contrário, o rastreamento não terminou.

• A automação serve principalmente para evitar eventos perdidos e janelas expiradas. Ela não tem influência sobre o que a Apple decide.

O que é rastreamento de pedidos de reembolso da Apple?

Rastrear pedidos de reembolso da Apple significa acompanhar um pedido de reembolso por todos os estados pelos quais ele passa do seu lado, da primeira notificação até a atualização de entitlement que o encerra. Não é um registro de reembolsos. É um registro de um processo.

Esses estados importam porque são eventos genuinamente diferentes, e as equipes costumam condensá-los em um só:

Estado

O que ele diz a você

Pedido recebido

Existe um pedido de reembolso e a Apple informou você sobre ele

Oportunidade de resposta aberta

A Apple está pedindo informações, e o relógio está correndo

Resposta enviada

Você mandou algo de volta

Resposta aceita

A Apple de fato a recebeu — não é o mesmo que enviá-la

Reembolso aprovado

A Apple concedeu o reembolso

Reembolso recusado

A Apple não concedeu

Reembolso revertido

A Apple desfez um reembolso que havia concedido antes

Entitlement atualizado

Seu app agora reflete o desfecho

Só a última linha é sobre o seu produto. Tudo acima dela determina se você acerta essa linha. Uma equipe que armazena apenas “reembolso aprovado” não consegue explicar por que um cliente ainda tem acesso, nem se alguém respondeu quando a Apple perguntou.

Como os desenvolvedores rastreiam pedidos de reembolso da Apple?

Os desenvolvedores rastreiam a atividade de reembolso da Apple por meio do sistema de notificações server-side da Apple e dos próprios registros de transação. O caminho exato depende do tipo de evento e de a Apple pedir ou não informações. Os eventos chegam a uma URL que você configura por meio das App Store Server Notifications, como payloads assinados que o seu backend verifica e processa.

Há dois tipos de evento relacionados a reembolso que vale separar no seu handler. Um pede algo a você. Os outros informam o que aconteceu.

O tipo que pede é uma notificação CONSUMPTION_REQUEST da Apple. Ela significa que a Apple quer informações sobre uma compra enquanto avalia um pedido de reembolso. Não é um reembolso, e vale escrever o handler de modo que ele não presuma que essa notificação sempre chega.

O tipo que informa cobre os desfechos: REFUND para concedido, REFUND_DECLINED para recusado e REFUND_REVERSED quando a Apple desfaz um reembolso que havia concedido antes. Esse terceiro é o que a maioria dos handlers esquece.

Por baixo de ambos está o seu próprio armazenamento de transações, que é o que torna tudo isso legível. As notificações fazem referência aos identificadores da Apple, então, sem um registro de compra para cruzar, você tem um evento que não consegue vincular a nada.

Quais informações os desenvolvedores devem rastrear?

Separe pela origem da informação, porque só um dos lados é autoritativo.

Da Apple, no payload da transação: o identificador da transação e o identificador da transação original, o identificador do produto, a data da compra e, para transações reembolsadas, uma data de revogação e um motivo de revogação. Esse campo de motivo distingue reembolsos emitidos por causa de um problema no app de reembolsos emitidos por outros motivos, o que é mais útil do que parece.

O token de conta fica no meio. Você o gera e anexa no momento da compra, e a Apple o devolve no payload, que é o que permite ir de uma transação de volta a um usuário identificado.

Todo o resto é você quem mantém: o identificador interno do usuário, o tipo de notificação e quando ela chegou, se uma resposta era exigida, o que você enviou e o que voltou, o estado da assinatura no momento, o estado do entitlement após o processamento e o período de relatório em que o reembolso caiu.

Os dois timestamps são, discretamente, os campos mais úteis do conjunto. A distância entre o evento da Apple e a sua ação é a única medida honesta de que o seu rastreamento funciona.

Como rastrear reembolsos da App Store passo a passo

1. Receba o evento relacionado ao reembolso

Os eventos chegam ao endpoint de servidor que você configurou. Se ele estiver mal configurado ou falhando, os reembolsos seguem normalmente e você simplesmente nunca fica sabendo, sem nenhum erro do seu lado.

2. Valide a notificação

Verifique a assinatura contra a cadeia de certificados da Apple e confirme o bundle ID antes de agir sobre o payload. Um endpoint que confia em tudo o que recebe é um endpoint em que qualquer outra pessoa pode escrever.

3. Identifique a transação relacionada

Cruze os identificadores do payload decodificado com os seus registros de compra e depois resolva para uma conta de usuário. Se você anexou um token de conta no momento da compra, isso é uma consulta, não uma investigação.

4. Verifique se a Apple está pedindo informações

Ramifique pelo tipo de notificação. Um consumption request precisa de um caminho de resposta. Uma notificação de desfecho precisa de uma atualização de estado. Tratar as duas do mesmo jeito é como janelas de resposta são perdidas.

5. Reúna as informações de consumo suportadas

Extraia os valores dos seus próprios registros: se a compra foi entregue, se conteúdo de amostra foi fornecido, quanto foi consumido. A documentação Send Consumption Information da Apple define os campos e seus valores válidos. Antes de tudo isso, verifique o consentimento — a Apple exige consentimento válido do cliente para compartilhar os dados, obtê-lo é responsabilidade do desenvolvedor, e requisições sem ele são rejeitadas de imediato.

6. Envie dentro da janela documentada

A documentação atual da Apple pede uma resposta em até 12 horas após a notificação. Envie valores precisos e confirme que a chamada foi bem-sucedida em vez de presumir que foi.

7. Rastreie o desfecho final

Registre qual notificação de desfecho chegou e quando. Se o seu pipeline perdeu eventos durante uma indisponibilidade, a API de servidor da Apple expõe o histórico de reembolsos, que você pode usar para recuperar o que perdeu — vale rodar isso como uma conciliação periódica em vez de confiar apenas nas notificações.

8. Atualize o entitlement e o acesso

Revogue quando o reembolso for concedido, restaure quando houver reversão e trate o caso proporcional em que apenas parte de uma transação é revogada. Faça isso a partir de eventos server-side para que o estado esteja correto independentemente de o cliente abrir o app de novo ou não.

9. Concilie com os registros de receita

Vincule o reembolso ao período e ao produto corretos. Sem isso, engenharia e financeiro acabam com versões diferentes do mesmo mês.

Como responder a pedidos de reembolso da Apple

Você responde enviando informações de consumo quando a Apple as pede, com consentimento, dentro da janela. Você não responde aprovando ou recusando nada, porque isso não está disponível para desenvolvedores. Quem decide é a Apple.

O que você envia deve descrever o que de fato aconteceu com a compra, extraído dos seus registros. Não uma estimativa, nem um número ajustado na direção do desfecho que você prefere — além de ser desonesto, são dados que você obteve consentimento para compartilhar com precisão.

Aqui está o ponto operacional que a maioria das configurações de rastreamento ignora. Enviar uma resposta e tê-la aceita são dois estados diferentes. A chamada pode falhar na validação e retornar um erro, e, se ninguém verifica o resultado, um envio com falha parece exatamente igual a um envio bem-sucedido nos seus logs. Armazene o status da resposta, não apenas o fato de que você tentou.

O que acontece depois que a Apple decide sobre um reembolso?

A Apple envia o desfecho como notificação e estorna a cobrança do lado dela. Depois disso, o trabalho passa para você.

A distinção que vale manter: um reembolso aprovado pela Apple é um evento, e os seus sistemas refletirem isso corretamente é outro. A metade da Apple se completa independentemente do que você faça. A sua só se completa se a notificação chegou, correspondeu a uma transação, foi resolvida para uma conta e atualizou o acesso dessa conta.

Quando esses dois divergem, você tem clientes que foram reembolsados e ainda mantêm tudo pelo que pagaram. Ninguém reporta, porque do lado deles nada está errado. Isso aparece na conciliação meses depois, se aparecer.

Assinaturas exigem cuidado especial, já que um período reembolsado normalmente encerra a assinatura em vez de deixá-la ativa, e o seu estado deve refletir isso. O suporte também precisa do registro, para que um agente possa ver o que aconteceu sem pedir a alguém que consulte um dashboard.

Por que o rastreamento manual de reembolsos da Apple fica difícil

Não por descuido. O trabalho simplesmente não combina com a disponibilidade das pessoas.

Os pedidos de reembolso chegam quando os clientes os enviam, e qualquer janela de resposta continua correndo de madrugada e nos fins de semana. Cada evento exige uma consulta, um cruzamento de conta, uma verificação de consentimento, um número de uso, um envio e uma atualização de entitlement. Tarefas pequenas, mas com prazo e repetitivas, e invisíveis quando dão certo.

Depois a escala muda o formato do problema. Vários apps, dados de transação em um sistema e dados de conta em outro. O histórico de reembolsos fica raso porque ninguém o preencheu retroativamente, as divergências de entitlement se acumulam sem sinalização, e o financeiro descobre a discrepância no fechamento do trimestre — muito depois do ponto em que uma janela de resposta importava.

O rastreamento de reembolsos da Apple pode ser automatizado?

Sim, e a maior parte dele deveria ser, porque quase todas as etapas são determinísticas.

A automação pode monitorar e verificar eventos de reembolso, registrar cada pedido assim que chega, resolver transações para contas, ramificar pelo tipo de notificação, montar os dados de consumo a partir dos seus registros, rastrear janelas de resposta e resultados de envio, atualizar o estado do entitlement e manter o histórico de reembolsos consultável.

O que ela não pode fazer é influenciar a Apple. A automação não torna os reembolsos menos prováveis e não consegue empurrar uma decisão para nenhum lado. O que muda é se o seu lado do processo acontece de forma consistente, e dentro da janela.

Como o RefundSensor ajuda na gestão de reembolsos da Apple

Gestão de reembolsos da App Store é a categoria à qual esse trabalho pertence, e o RefundSensor foi construído para o lado do desenvolvedor: monitorar os fluxos de reembolso da Apple, automatizar as etapas de resposta suportadas e manter eventos, desfechos e registros de reembolso em um só lugar, em vez de espalhados por dashboards.

Na prática, a resposta acontece dentro da janela da loja sem que alguém precise ficar de olho nas notificações, e o registro de reembolsos continua preciso à medida que o volume cresce.

Ele não muda as decisões da Apple, e nenhum software de gestão de reembolsos da Apple consegue. O que ele muda é quanto trabalho manual cada pedido deixa para trás.

Onde essas regras estão documentadas

Três fontes da Apple sustentam as afirmações técnicas acima. Leia-as diretamente e volte a consultá-las periodicamente — essa área já mudou mais de uma vez.

Solicitar um reembolso de apps ou conteúdo — o processo voltado ao cliente. Útil para entender de onde os pedidos se originam, a atualização em 24 a 48 horas que os clientes são orientados a esperar e a observação da Apple de que a elegibilidade varia por país ou região.

Send Consumption Information — o fluxo de resposta do desenvolvedor: a exigência de consentimento, a janela de 12 horas e os campos da requisição. Leia antes de construir qualquer tratamento de resposta.

App Store Server Notifications — como os eventos de reembolso chegam ao seu backend, o formato do payload assinado e os tipos de notificação, incluindo CONSUMPTION_REQUEST, REFUND, REFUND_DECLINED e REFUND_REVERSED.

Se os eventos de reembolso ainda são acompanhados manualmente

O rastreamento manual aguenta até o dia em que uma notificação chega às 2 da manhã e a janela fecha antes que alguém abra um dashboard. A falha é silenciosa, e é isso que a torna cara.

Se isso descreve a sua configuração, o RefundSensor cuida do lado do desenvolvedor nos fluxos de reembolso da Apple: monitorando os eventos, mantendo as respostas dentro da janela e garantindo que os desfechos cheguem aos seus registros e à sua lógica de entitlement.


Perguntas frequentes

Por meio das App Store Server Notifications e dos seus próprios registros de transação. Os eventos chegam a um endpoint de servidor configurado como payloads assinados. Você os verifica, resolve a transação para um cliente, registra o evento, responde se a Apple pediu informações e armazena o desfecho quando ele chega.

É acompanhar um pedido de reembolso por cada estado pelo qual ele passa do lado do desenvolvedor: pedido recebido, oportunidade de resposta, resposta enviada e aceita, desfecho da Apple e a atualização de entitlement que o encerra. Armazenar apenas o desfecho final perde as informações de que você precisa para explicar o que aconteceu.

Sim. A Apple envia o desfecho como uma notificação de servidor. REFUND significa que foi concedido, REFUNDDECLINED significa que não foi, e REFUNDREVERSED significa que um reembolso concedido anteriormente foi desfeito. Transações reembolsadas também trazem uma data de revogação e um código de motivo no payload da transação.

Enviando informações de consumo quando a Apple as solicita, desde que exista consentimento válido do cliente, usando valores precisos dos seus próprios registros. Você não pode aprovar nem recusar um reembolso. Sua resposta é apenas um dos insumos da análise da Apple, e você deve confirmar que o envio foi bem-sucedido em vez de presumir que foi.

Uma App Store Server Notification que informa ao seu servidor que a Apple quer informações sobre uma compra enquanto avalia um pedido de reembolso. Não é uma notificação de reembolso nem uma decisão. Responder exige consentimento do cliente, e a Apple pede a resposta em até 12 horas.

A documentação atual da Apple pede uma resposta em até 12 horas após a notificação. Os pedidos chegam a qualquer hora, então essa é a etapa que mais se beneficia da automação. Confirme o requisito atual na página da Apple em vez de confiar em uma integração antiga.

Nada, a menos que você altere. A Apple estornar a cobrança não muda o seu banco de dados. Seu backend deve revogar o entitlement quando um reembolso é concedido, restaurá-lo se a Apple reverter o reembolso e tratar o caso em que apenas parte de uma transação é revogada.

As partes mecânicas, sim. Verificar notificações, cruzar transações com contas, rastrear janelas de resposta e resultados de envio, atualizar entitlements e manter o histórico de reembolsos são todas tarefas determinísticas. O que continua humano é desenhar o fluxo de consentimento e interpretar o que os padrões de reembolso dizem sobre o produto.

#Apple Refund Request Tracking#Apple Refunds. App Store Refunds#Apple Refund Management#Refund Tracking#Subscription Revenue Protection
Refund SensorRefund Sensor TeamRefund defense for App Store and Google Play developers