Talvez seja necessário realizar ações de gerenciamento em assinaturas ou compras únicas como parte das atividades comerciais diárias. Por exemplo, o atendimento ao cliente pode precisar emitir reembolsos totais ou parciais para os usuários, ou talvez seja necessário revogar direitos em determinados casos. É possível gerenciar pedidos no Play Console ou, se quiser gerenciá-los no seu próprio sistema, use a API Google Play Developer.
Cancelar assinaturas
Os cancelamentos de assinaturas podem ser iniciados por usuários ou desenvolvedores.
Cancelamentos iniciados pelo usuário
Os usuários podem cancelar uma assinatura do Google Play a qualquer momento usando a Google Play Store. Se aplicável, você também precisa oferecer uma opção para que os usuários cancelem as assinaturas no app e no site.
A maneira mais fácil de permitir que os usuários cancelem voluntariamente é fornecendo links diretos no app para a Google Play Store, onde eles podem visualizar e gerenciar as assinaturas.
Cancelamentos iniciados pelo desenvolvedor
Como desenvolvedor, você também pode precisar acionar cancelamentos no back-end.
A purchases.subscriptions.cancel
API permite cancelar uma compra de assinatura.
Por exemplo, você pode usar esse método para desativar um serviço legado.
O cancelamento de uma assinatura não emite um reembolso, e o usuário mantém o acesso até o final do período de faturamento atual.
Esse método permite especificar os seguintes tipos de cancelamentos no parâmetro do corpo da solicitação cancellationType:
USER_REQUESTED_STOP_RENEWALS: cancela a assinatura como se os usuários tivessem cancelado na Google Play Store. Todos os pagamentos parcelados vão continuar pelo restante do período de fidelidade atual. Na Google Play Store, os usuários podem restaurar a assinatura antes que ela expire ou fazer uma nova assinatura após a expiração, se ativada para o plano básico.
DEVELOPER_REQUESTED_STOP_PAYMENTS: cancela a assinatura e impede pagamentos futuros. Os usuários não podem restaurar ou fazer uma nova assinatura na Google Play Store, mas você pode permitir que eles assinem novamente no app.
Permitir que os usuários restaurem assinaturas não expiradas
Em alguns casos, pode ser útil permitir que os usuários restaurem assinaturas não expiradas na central de assinaturas do Google Play depois que você acionar o cancelamento como desenvolvedor. Por exemplo, você pode fornecer um fluxo de cancelamento personalizado no app. Com base na lógica de negócios, você pode decidir quais cancelamentos acionados no back-end podem ser restaurados pelos usuários.
Para indicar que um usuário pode restaurar o cancelamento, emita uma solicitação POST
para a purchases.subscriptions.cancel API e defina o parâmetro de solicitação cancellationType
como o valor USER_REQUESTED_STOP_RENEWALS.
Exemplo:
- Token de compra da assinatura
1a2b3c4d5e6f7g8h9i0j - Nome do pacote do aplicativo
com.your.app - ID da assinatura
your-subscription-product
Solicitação HTTP POST:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptions/your-subscription-product/tokens/1a2b3c4d5e6f7g8h9i0j:cancel
Corpo da solicitação:
{
"cancellationType": "USER_REQUESTED_STOP_RENEWALS"
}
Permitir que os usuários façam uma nova assinatura de assinaturas expiradas
Para permitir a nova assinatura de uma assinatura expirada, você deve ativar
a opção Assinar de novo
no plano básico da assinatura e cancelar a assinatura definindo o parâmetro
cancellationType como o valor USER_REQUESTED_STOP_RENEWALS.
Permitir que os usuários façam uma nova assinatura apenas no aplicativo
Se você definiu o parâmetro cancellationType como DEVELOPER_REQUESTED_STOP_PAYMENTS ou não o definiu cancellationType, os usuários não poderão restaurar a assinatura na central de assinaturas do Google Play. No entanto, os usuários podem se inscrever novamente na assinatura pelo app, se necessário.
Essa ação aciona uma notificação do desenvolvedor em tempo real SUBSCRIPTION_CANCELED. Processe esses cancelamentos conforme descrito em
Cancelamentos.
Adiar o faturamento
É possível estender o período de direitos de uma assinatura
usando o subscriptionsv2.defer método. Ao adiar uma assinatura com complementos, todos os itens da assinatura são adiados pela mesma duração. Durante o período de adiamento, o usuário permanece assinante do conteúdo, mas não é cobrado pelo tempo extra. Ao adiar o faturamento de uma assinatura, as informações de status são atualizadas de acordo e refletidas no campo expiryTime nas informações de status da compra:
- Para assinaturas recorrentes ativas, o faturamento adiado estende a próxima data de renovação.
- Para planos pré-pagos, o faturamento adiado estende o prazo de validade.
Confira alguns exemplos de como usar o faturamento adiado:
- Ofereça aos usuários acesso sem custo financeiro como uma oferta especial, por exemplo, oferecendo uma semana sem custo financeiro aos assinantes atuais para preencher uma pesquisa de feedback.
- Ofereça aos clientes acesso sem custo financeiro como uma ação de atendimento ao cliente, por exemplo, após uma interrupção prolongada que possa ter afetado a capacidade de usar o serviço.
O faturamento pode ser adiado de um dia a um ano por chamada de API. Para adiar ainda mais o fim do direito, chame a API novamente antes da nova data de validade.
Essa ação aciona uma notificação do desenvolvedor em tempo real SUBSCRIPTION_DEFERRED. Consulte Adiar o faturamento de um assinante em Sobre assinaturas para saber como processar esses eventos.
Exemplo:
O serviço de streaming FitnessGoals quer veicular uma promoção para incentivar exercícios regulares em fevereiro.
A empresa decide oferecer mais um mês de serviço a qualquer assinante que se exercitar com o FitnessGoals pelo menos 10 vezes durante o mês de fevereiro.
Eles acompanham os resultados do desafio e, em 1º de março, chamam o método subscriptionsv2.defer para cada compra de assinatura ativa pertencente a usuários que atenderam ao desafio em fevereiro.
Esses usuários recebem o benefício de um mês extra de vídeos de exercícios regulares sem custo financeiro, e os usuários contam a todos os amigos como o FitnessGoals os ajuda a se manterem saudáveis.
Emitir reembolsos e revogações
Há muitas situações em que você pode querer emitir um reembolso ou revogar o acesso a uma assinatura ou compra única.
Reembolsar totalmente um pedido por ID
Com a orders.refund
API, é possível emitir reembolsos totais para qualquer pedido em até três anos após a compra.
O método orders.refund recebe um parâmetro de revogação que indica se o acesso deve ser revogado, além de fornecer o reembolso.
Se você emitir uma revogação com a chamada de reembolso para compra de assinatura, ela será encerrada imediatamente e acionará uma notificação do desenvolvedor em tempo real SUBSCRIPTION_REVOKED. Leia o guia de gerenciamento do ciclo de vida da assinatura
na seção Revogações
para saber como processar esses eventos.
Exemplo:
Para comemorar o início da nova Copa do Mundo, o app de e-sports Football-Not-Soccer decide sortear camisas virtuais sem custo financeiro para todos os usuários que comprarem novos kits de times nas primeiras 24 horas.
O Football-Not-Soccer usa a
orders.refundAPI sem transmitir um parâmetro de revogação para reembolsar as compras de camisas aos vencedores.
Revogar e reembolsar uma assinatura por token de compra
Para determinados casos de uso, talvez seja necessário revogar o acesso à assinatura de um usuário e fornecer um reembolso. O Play Faturamento oferece métodos de revogação, incluindo reembolsos totais
e proporcionais, pela subscriptionsv2.revoke
API. Com esse endpoint, é possível especificar revocationContext
para determinar como o reembolso é calculado.
Essa ação aciona uma notificação do desenvolvedor em tempo real SUBSCRIPTION_REVOKED. Seu app deve processar esses cancelamentos conforme descrito em
Revogações.
Exemplo:
- Compra com token de compra
1a2b3c4d5e6f7g8h9i0j - Aplicativo com o nome do pacote
com.your.app - Intenção de emitir um reembolso proporcional
Solicitação HTTP POST:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke
Corpo da solicitação:
{
"revocationContext": {
"proratedRefund": {}
}
}
Reembolsos totais
Se você precisar encerrar uma assinatura e reembolsar o valor total do período de faturamento atual, emita um reembolso total. Use a função
purchases.subscriptionsv2.revoke
e defina "fullRefund": {} como o tipo de reembolso.
Exemplo:
Maria tem uma assinatura de renovação automática de 30 dias do plano mensal de streaming do SuperMovies. Maria encontrou alguns problemas técnicos que a impedem de acessar o conteúdo. Ela entra em contato com o atendimento ao cliente no terceiro dia do ciclo de faturamento, afirmando que nunca teve acesso à assinatura.
O atendimento ao cliente localiza os detalhes da compra da assinatura de Maria no sistema e aciona uma chamada para
purchases.subscriptionsv2.revokesolicitando um reembolso total.O atendimento ao cliente informa a Maria que ela receberá 100% do preço da assinatura reembolsado e que não está mais inscrita no plano.
Reembolsos proporcionais
Se você precisar encerrar uma assinatura e reembolsar parcialmente o tempo de direito restante, emita um reembolso proporcional. Use a
purchases.subscriptionsv2.revoke
função e defina "proratedRefund": {} como o tipo de reembolso.
Exemplo:
Maria tem uma assinatura de renovação automática de 30 dias do plano mensal de streaming do SuperMovies. Ela usa o serviço há algum tempo. Maria entra em contato com o atendimento ao cliente no 15º dia do ciclo de faturamento, afirmando que está se mudando para o exterior e não poderá mais usar o serviço a partir do dia seguinte.
O atendimento ao cliente localiza os detalhes da compra da assinatura de Maria no sistema e aciona uma chamada para
purchases.subscriptionsv2.revokesolicitando um reembolso proporcional.O atendimento ao cliente informa a Maria que ela receberá cerca de 50% do preço da assinatura reembolsado e que o acesso ao serviço foi encerrado imediatamente.