Cada renovação recebe seu próprio ID de pedido do Google Play, e é esse número que você deve conferir antes de reembolsar alguém
Um ID de pedido do Google Play como GPA.1234-5678-9012-34567..2 identifica uma cobrança exata. Veja como ler o sufixo de renovação, consultar um pedido no Play Console ou na Orders API e reembolsar a cobrança que o cliente quer dizer, sem pagar pela errada.

Principais conclusões
- Um ID de pedido do Google Play tem o formato GPA.1234-5678-9012-34567, e as renovações de assinatura acrescentam um sufixo, então GPA.1234-5678-9012-34567..0 é a primeira renovação dessa assinatura.
- O getOrderId() da Play Billing Library retorna o ID do pedido inicial nas renovações de assinatura, não o ID da própria renovação, e retorna null enquanto a compra está no estado PENDING.
- O Google adicionou get e batchGet ao recurso Orders da Play Developer API em 21 de maio de 2025. O batchGet aceita de 1 a 1.000 IDs de pedido distintos e faz a solicitação inteira falhar se qualquer um deles não for encontrado.
- Um Order da Orders API traz um estado PENDING, PROCESSED, CANCELED, PENDING_REFUND, PARTIALLY_REFUNDED ou REFUNDED, além de developerRevenueInBuyerCurrency, que já desconta reembolsos parciais, impostos e taxas.
- O método orders.refund do Google Play não reembolsa pedidos com mais de 3 anos, e passar revoke=true encerra na hora o acesso do cliente à assinatura ou ao item.
- No Play Console, Reembolsar e revogar (Refund and revoke) vale para o pedido mais recente de uma assinatura, enquanto Somente reembolsar (Refund only) vale para um pedido mais antigo e mantém a assinatura ativa.
- O próprio Google Play cuida das solicitações de reembolso feitas em até 48 horas após a compra. Depois de 48 horas, ele encaminha o cliente ao desenvolvedor, e é aí que um ID de pedido costuma chegar à sua caixa de suporte.
Olhe o final do número do pedido antes de reembolsar um cliente do Google Play. GPA.1234-5678-9012-34567 é a primeira cobrança de uma assinatura. GPA.1234-5678-9012-34567..2 é a terceira. Elas compartilham a base, são pagamentos diferentes, e o Play Console as trata de forma diferente quando você reembolsa. O ID de pedido do Google Play é o único identificador que o cliente vê, então é ele que vai parar na sua caixa de suporte. Leia direito e você reembolsa, uma única vez, a cobrança que realmente incomodou o cliente.
O que um ID de pedido do Google Play diz
A documentação da Play Billing Library do Google mostra o formato por exemplos. Um ID de pedido começa com GPA, seguido de grupos de dígitos. Nas assinaturas, cada renovação recebe o ID de pedido base mais dois pontos e um contador que começa em zero. Assim, a compra original não tem sufixo, a primeira renovação é ..0, a segunda é ..1, e assim por diante.
Isso faz do sufixo uma leitura rápida de há quanto tempo alguém paga. Um cliente que escreve sobre GPA.3333-4137-0319-36762..11 já foi renovado doze vezes. Um cliente que cita o ID base puro ou comprou algo uma única vez ou está apontando para o primeiríssimo pagamento.
| ID de pedido | O que é |
|---|---|
| GPA.1234-5678-9012-34567 | Uma compra única, ou a primeira cobrança de uma assinatura |
| GPA.1234-5678-9012-34567..0 | A primeira renovação dessa assinatura |
| GPA.1234-5678-9012-34567..1 | A segunda renovação |
| null na Billing Library | Uma compra ainda no estado PENDING, antes de o Google processar o pagamento |
Onde o ID de pedido aparece, e qual versão você recebe
É aqui que as equipes tropeçam. Cada lugar entrega uma forma diferente do mesmo ID.
- O recibo do Google Play do cliente mostra o ID de pedido da cobrança a que se refere, inclusive renovações.
- No seu app, Purchase.getOrderId() da Play Billing Library retorna o ID do pedido inicial nas renovações de assinatura. O próprio exemplo do Google: em vez de GPA.1234-5678-9012-34567..0, você recebe GPA.1234-5678-9012-34567.
- No seu servidor, purchases.subscriptionsv2 dá a cada item de linha um latestSuccessfulOrderId, o ID do último pedido bem-sucedido daquele item. O Google adicionou o campo em 21 de maio de 2025.
- Na Voided Purchases API, orderId identifica de forma única uma compra única, uma compra de assinatura ou uma renovação de assinatura. A documentação do Google diz para usar orderId, e não o token de compra, para diferenciar renovações.
Para que serve o token de compra, então
O token de compra identifica a compra como um todo. Numa assinatura, um único token cobre a cobrança original e todas as renovações seguintes. Por isso ele é a chave certa para o direito de acesso e a chave errada para um reembolso. Reembolsos e chargebacks acontecem em uma única cobrança, e só o ID de pedido identifica uma única cobrança.
Como consultar um pedido do Google Play
No Play Console
O Gerenciamento de pedidos (Order management) aceita na busca um ID de pedido ou o e-mail completo do cliente. Cada pedido mostra um destes status: Processado, Cancelado, Pendente, Reembolso pendente, Reembolsado, Reembolso parcial pendente ou Parcialmente reembolsado. Se o cliente passar um e-mail em vez de um recibo, busque pelo e-mail, escolha a cobrança pela data e confirme o sufixo antes de agir.
Com a Orders API
Desde 21 de maio de 2025, o recurso Orders da Google Play Developer API tem orders.get para um pedido e orders.batchget para uma lista. Alguns limites importam na prática:
- O batchget aceita de 1 a 1.000 IDs de pedido por solicitação, e eles precisam ser distintos.
- Se um único ID de pedido não for encontrado ou não pertencer ao pacote, a solicitação batchget inteira falha.
- As chamadas à Orders API contam na sua cota da Play Developer API, que por padrão é de 200.000 chamadas por dia.
A parte útil é o Order que volta. Ele traz o estado do pedido, seu purchaseToken, createTime e lastEventTime, o total e o imposto, um salesChannel como IN_APP ou PLAY_STORE, e um orderHistory com os eventos de processamento, cancelamento, reembolso e reembolso parcial. Também traz developerRevenueInBuyerCurrency, que o Google define como a sua receita na moeda do comprador, descontados reembolsos parciais, impostos e taxas. Quando o Google é o merchant of record, o endereço do comprador traz só o país.
| Estado do pedido | O que diz a referência do Google |
|---|---|
| PENDING | Criado e aguardando processamento |
| PROCESSED | Processado com sucesso |
| CANCELED | Cancelado antes de ser processado |
| PENDING_REFUND | Um reembolso solicitado aguarda processamento |
| PARTIALLY_REFUNDED | Parte do valor do pedido foi reembolsada |
| REFUNDED | O valor total do pedido foi reembolsado |
Reembolsar o pedido certo
Depois de saber de qual cobrança o cliente está falando, o Play Console oferece uma escolha que depende da posição desse pedido na assinatura.
| Opção | Vale para | O que acontece |
|---|---|---|
| Reembolsar e revogar | O pedido mais recente de uma assinatura | Reembolso emitido, assinatura removida na hora, renovações futuras canceladas |
| Somente reembolsar | Um pedido mais antigo de uma assinatura | Reembolso emitido, assinatura continua ativa |
| Reembolso parcial | Compras no app e assinaturas pedidas depois de março de 2018, não apps pagos | Qualquer porcentagem abaixo de 100%, ou um valor sem impostos abaixo do total do pedido |
| Cancelar assinatura | Uma assinatura ativa | Sem reembolso, o acesso dura até o fim do período de cobrança atual |
Pela API, orders.refund recebe o nome do pacote e o ID de pedido. Pedidos com mais de 3 anos não podem ser reembolsados. O parâmetro opcional revoke, definido como true, encerra na hora o acesso à assinatura ou ao item no app. A ajuda do Google também observa que reembolsos não podem ser desfeitos depois de emitidos, então o ID de pedido que você envia é definitivo.
Por que aparece um pedido de US$ 0,00 para um assinante?
A documentação do Google sobre o ciclo de vida das assinaturas explica. Quando um usuário assina de novo pelo seu app o mesmo plano base antes de a assinatura expirar, o Google Play cria um pedido de US$ 0,00. Ele não é cobrado, porque já pagou o período atual, e a cobrança normal volta na data de renovação original. Não é um teste gratuito nem uma promoção. Não há nada a reembolsar nesse pedido. Se o cliente quer o dinheiro de volta, encontre o pedido pago anterior a ele.
Quanto custa reembolsar o pedido errado
Um reembolso devolve o preço. Reembolsos parciais funcionam do mesmo jeito, na proporção. O exemplo do Google: um reembolso parcial de 50% também retira 50% do seu repasse e 50% da taxa de serviço. O que não volta é tudo o que você gastou atendendo esse cliente: processamento, chamadas a APIs de terceiros, armazenamento, qualquer pagamento a afiliados. Reembolse o pedido errado e você paga isso duas vezes.
É assim que acontece. Um cliente de plano mensal escreve sobre a cobrança ..4, a da semana passada. Alguém da equipe busca pelo e-mail, vê o primeiro pedido no topo e clica em Somente reembolsar no pedido base de meses atrás. Agora o cliente tem dinheiro de volta de um período que usou. A cobrança da qual reclamou continua intacta, e a assinatura continua renovando. Ele ainda pode pedir ao banco que estorne a cobrança da semana passada.

Esse caminho pelo banco agora é o caro. Para pedidos feitos depois de 3 de agosto de 2026, o Google diz que, quando um chargeback é aceito, o desenvolvedor responde pelo preço de compra, menos a taxa de serviço do Play, mais as taxas de chargeback que o banco cobra. Chargebacks são definitivos no banco. Um sufixo mal lido pode terminar com o valor de dois reembolsos perdido, mais as taxas.
Quais reembolsos nunca chegam à sua caixa
A maioria dos reembolsos do Google Play não precisa de você nem do ID de pedido. A política de reembolso do Google diz que o cliente pode conseguir reembolso pelo Google Play em até 48 horas após a compra e que, depois de 48 horas, deve entrar em contato com o desenvolvedor. O Google também reembolsa e revoga assinaturas que você não confirma em até três dias. Você fica sabendo delas depois pela Voided Purchases API, que informa o voidedSource (0 para usuário, 1 para desenvolvedor, 2 para Google) e um voidedReason como Remorse, Chargeback ou Unacknowledged_purchase.
Só um fluxo de reembolso do Google Play pede a sua versão. Quando um chargeback precisa de análise do desenvolvedor, você tem 24 horas para responder via orders.reviewrefund com uma preferência de reembolso APPROVE, DECLINE ou NEUTRAL e evidências de uso da compra. O RefundHalt responde a essa análise dentro do prazo por você, usando os dados de uso que você já tem, para que um pedido contestado receba suas evidências em vez de silêncio.
Um checklist curto para tickets de suporte com ID de pedido
- Peça o ID de pedido completo do recibo do Google Play, com o sufixo.
- Consulte-o no Play Console ou com orders.get e confira o estado primeiro.
- Confirme que a data da cobrança bate com o que o cliente descreve.
- Use Reembolsar e revogar só no pedido mais recente, e Somente reembolsar nos mais antigos.
- Registre o ID de pedido que você reembolsou, para que um chargeback posterior em outro pedido seja fácil de identificar.
Perguntas frequentes
- O que significa ..0 no final de um ID de pedido do Google Play?
- Indica a primeira renovação de uma assinatura. O Google Play dá a cada renovação o ID de pedido base da assinatura mais dois pontos e um contador que começa em zero, então GPA.1234-5678-9012-34567..0 é a primeira renovação e ..1 é a segunda. O ID base sem sufixo é a cobrança original.
- Por que o getOrderId() no meu app retorna um ID de pedido diferente do recibo do cliente?
- Porque a Play Billing Library retorna o ID do pedido inicial nas renovações de assinatura. O exemplo do Google é que, em vez de GPA.1234-5678-9012-34567..0 para a primeira renovação, getOrderId() retorna GPA.1234-5678-9012-34567. Use latestSuccessfulOrderId de purchases.subscriptionsv2 no seu servidor para obter o ID da própria renovação.
- Como consulto um pedido do Google Play pelo ID de pedido?
- Busque no Gerenciamento de pedidos do Play Console, que aceita um ID de pedido ou o e-mail completo do cliente, ou chame orders.get na Google Play Developer API. O orders.batchget consulta de 1 a 1.000 IDs de pedido distintos de uma vez, e a solicitação inteira falha se qualquer um deles não for encontrado.
- Posso reembolsar um pedido do Google Play com mais de um ano?
- Sim, até 3 anos. A referência do orders.refund do Google diz que pedidos com mais de 3 anos não podem ser reembolsados. Para um pedido mais antigo de uma assinatura, a opção Somente reembolsar do Play Console devolve o dinheiro e mantém a assinatura ativa.
- Por que existe um pedido de US$ 0,00 do Google Play para um assinante?
- Ele aparece quando um usuário assina de novo pelo seu app o mesmo plano base antes de a assinatura expirar. O usuário não é cobrado porque já pagou o período atual, e a cobrança regular volta na data de renovação original. O Google diz que isso não significa que foi concedido um teste gratuito ou desconto promocional.
Fontes e leituras adicionais
- Android Developers: Purchase (Play Billing Library), getOrderId
- Google Play Developer API: REST Resource orders
- Google Play Developer API: orders.batchget
- Google Play Developer API: orders.refund
- Google Play Developer API release notes
- Google Play Developer API: purchases.voidedpurchases
- Play Console Help: Issue refunds or cancel orders
- Google Play Billing: Subscription lifecycle
- Google Play Help: Apps, games and in-app purchases refund policies
- Google Play Console Help: Updates to refund protection and chargeback cost responsibility
RefundHalt
O piloto automático de reembolsos para App Store e Google Play
Continue lendo
Pedidos de reembolso excessivos podem custar mais do que os próprios reembolsos, porque as duas lojas os tratam como um sinal de qualidade
A diretriz 5.6.4 da Apple aponta pedidos de reembolso excessivos como sinal de que um app não atende aos padrões de qualidade, e o contrato de distribuição do Google permite remover apps de desenvolvedores novos com base na taxa de reembolso. Veja o que cada loja diz, quanto custa uma remoção e como ficar longe dela.
Verifique as notificações do servidor da App Store antes de agir sobre um reembolso, porque qualquer pessoa pode enviar dados para a sua URL de webhook
Uma notificação de reembolso é apenas uma requisição HTTPS até você conferir a assinatura. Veja como verificar as notificações do servidor da App Store e as mensagens RTDN do Google Play, o que cada loja assina e quanto custa um reembolso forjado ou rejeitado por engano.