Es posible que debas realizar acciones de administración en las suscripciones o compras únicas como parte de las actividades diarias de la empresa. Por ejemplo, es posible que tu servicio de atención al cliente deba emitir reembolsos totales o parciales para los usuarios, o que debas revocar derechos en ciertos casos. Puedes administrar los pedidos desde Play Console o, si deseas administrarlos desde tu propio sistema, puedes hacerlo con la API de Google Play Developer.
Cancelar suscripciones
Los usuarios o los desarrolladores pueden iniciar las cancelaciones de suscripciones.
Cancelaciones iniciadas por el usuario
Los usuarios pueden cancelar una suscripción a Google Play en cualquier momento desde Play Store. Si corresponde, también debes proporcionar una opción para que los usuarios cancelen sus suscripciones en tu app y en tu sitio web.
La forma más fácil de permitir que los usuarios cancelen voluntariamente una suscripción es proporcionar vínculos directos en tu app a Play Store, donde pueden ver y administrar sus suscripciones.
Cancelaciones iniciadas por el desarrollador
Como desarrollador, es posible que también debas activar cancelaciones desde tu backend.
La API de purchases.subscriptions.cancel
te permite cancelar una compra de suscripción.
Por ejemplo, puedes usar este método para rechazar un servicio heredado.
Si cancelas una suscripción, no se emitirá un reembolso, y el usuario retendrá el acceso hasta que finalice su período de facturación actual.
Este método te permite especificar los siguientes tipos de cancelaciones en el parámetro del cuerpo de la solicitud cancellationType
:
USER_REQUESTED_STOP_RENEWALS: Cancela la suscripción como si los usuarios la hubieran cancelado desde Play Store. Los pagos de las cuotas continuarán durante el resto del período de compromiso actual. Desde Play Store, los usuarios pueden restablecer la suscripción antes de que venza o volver a suscribirse después de que venza si está habilitada para el plan básico.
DEVELOPER_REQUESTED_STOP_PAYMENTS: Cancela la suscripción y evita que se realicen más pagos. Los usuarios no pueden restablecer ni volver a suscribirse a la suscripción desde Play Store. Sin embargo, puedes permitir que se vuelvan a suscribir desde tu app.
Permite que los usuarios restauren suscripciones no vencidas
En algunos casos, puede ser útil permitir que los usuarios restablezcan suscripciones que no vencieron desde el centro de suscripciones de Play después de que hayas activado la cancelación como desarrollador. Por ejemplo, puedes proporcionar un flujo de cancelación personalizado en la app. Según tu lógica empresarial, puedes decidir qué cancelaciones activadas desde tu backend los usuarios pueden restablecer.
Para indicar que un usuario puede restablecer la cancelación, envía una solicitud POST a la API de purchases.subscriptions.cancel
y establece el parámetro de solicitud cancellationType
en el valor USER_REQUESTED_STOP_RENEWAL
.
Ejemplo:
- Token de compra de la suscripción
1a2b3c4d5e6f7g8h9i0j
- Nombre del paquete de la aplicación
com.your.app
- ID de la suscripción
your-subscription-product
Solicitud HTTP POST:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptions/your-subscription-product/tokens/1a2b3c4d5e6f7g8h9i0j:cancel
Cuerpo de la solicitud:
{
"cancellationType": "USER_REQUESTED_STOP_RENEWAL"
}
Permite que los usuarios se vuelvan a suscribir a suscripciones vencidas
Para permitir que se vuelva a suscribir una suscripción vencida, debes habilitar la opción Volver a suscribirse en el plan básico de la suscripción y, luego, cancelar la suscripción configurando el parámetro cancellationType
en el valor USER_REQUESTED_STOP_RENEWAL
.
Permite que los usuarios se vuelvan a suscribir solo en tu aplicación
Si configuraste el parámetro cancellationType
como DEVELOPER_REQUESTED_STOP
_PAYMENTS
o no lo configuraste, los usuarios no podrán
restablecer su suscripción desde el centro de suscripciones de Play.cancellationType
Sin embargo, los usuarios pueden volver a registrarse para obtener la suscripción a través de tu app si es necesario.
Si realizas esta acción, se activará una notificación para desarrolladores en tiempo real SUBSCRIPTION_CANCELED
. Controla estas cancelaciones como se describe en Cancelaciones.
Cómo aplazar la facturación
Usa subscriptions.defer
para extender el período de derechos de una suscripción. Durante el período de diferimiento, el usuario seguirá suscrito a tu contenido, pero no se le cobrará por el tiempo adicional. Cuando aplazas la facturación de una suscripción, la información del estado se actualiza según corresponda y la ves reflejada en el campo expiryTime
de la información del estado de la compra:
- En el caso de las suscripciones recurrentes activas, la facturación diferida extiende la siguiente fecha de renovación.
- En el caso de los planes prepagados, la facturación diferida extiende el tiempo de vencimiento.
Estos son algunos ejemplos de cómo puedes usar la facturación diferida:
- Ofrecer a los usuarios acceso sin costo como una oferta especial, por ejemplo, dar una semana gratis a los suscriptores existentes por completar una encuesta de comentarios
- Brinda acceso sin costo a los clientes como una acción de atención al cliente, por ejemplo, después de una interrupción prolongada que podría haber afectado su capacidad de usar tu servicio.
La facturación puede diferirse de tan solo un día y hasta un año por llamada a la API. Para posponer aún más el final del derecho, vuelve a llamar a la API antes de que llegue la nueva fecha de vencimiento.
Si realizas esta acción, se activará una notificación para desarrolladores en tiempo real SUBSCRIPTION_DEFERRED
. Consulta Aplaza la facturación de un suscriptor en Acerca de las suscripciones para obtener información sobre cómo controlar estos eventos.
Ejemplo:
El servicio de transmisión FitnessGoals quiere publicar una promoción para fomentar el ejercicio regular en febrero.
Deciden ofrecer un mes adicional de servicio a cualquier suscriptor que haga ejercicio con FitnessGoals al menos 10 veces durante el mes de febrero.
Realizan un seguimiento de los resultados del desafío y, el 1 de marzo, llaman a la API de
subscriptions.defer
para cada compra de suscripción activa que pertenezca a los usuarios que cumplieron con el desafío en febrero.Estos usuarios obtienen el beneficio de un mes completo adicional de videos de ejercicio regular sin costo, y les cuentan a todos sus amigos cómo FitnessGoals los ayuda a mantenerse saludables.
Emite reembolsos y revocaciones
Hay muchas situaciones en las que es posible que desees emitir un reembolso o revocar el acceso a una suscripción o compra única.
Cómo reembolsar un pedido por completo con el ID de pedido
Con la API de orders.refund
, puedes emitir reembolsos totales de cualquier pedido dentro de los tres años posteriores a la compra.
El método orders.refund
recibe un parámetro de revocación que indica si se debe revocar o no el acceso, además de proporcionar el reembolso.
Si emites una revocación con la llamada de reembolso por la compra de una suscripción, esta se cancelará de inmediato y se activará una notificación para desarrolladores en tiempo real SUBSCRIPTION_REVOKED
. Lee la sección Revocaciones de la guía de administración del ciclo de vida de las suscripciones para obtener información sobre cómo controlar estos eventos.
Ejemplo:
Para celebrar el comienzo de la nueva Copa del Mundo, la app de deportes electrónicos Football-Not-Soccer decide rifar camisetas virtuales gratuitas para todos los usuarios que compren nuevos kits de equipo en las primeras 24 horas.
Football-Not-Soccer usa la API de
orders.refund
sin pasar un parámetro de revocación para reembolsar las compras de camisetas a los ganadores.
Cómo revocar y reembolsar una suscripción por token de compra
En algunos casos de uso, es posible que debas revocar el acceso a la suscripción de un usuario
y proporcionar un reembolso. Play Billing ofrece métodos de revocación, incluidos los reembolsos totales y los prorrateados, a través de la API de subscriptionsv2.revoke
. Con este extremo, puedes especificar revocationContext
para determinar cómo se calcula el reembolso.
Si realizas esta acción, se activará una notificación para desarrolladores en tiempo real SUBSCRIPTION_REVOKED
. Tu app debe controlar estas cancelaciones como se describe en Revocaciones.
Ejemplo:
- Compra con el token de compra
1a2b3c4d5e6f7g8h9i0j
- Aplicación con el nombre de paquete
com.your.app
- Intento de emitir un reembolso prorrateado
Solicitud HTTP POST:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke
Cuerpo de la solicitud:
{
"revocationContext": {
"proratedRefund": {}
}
}
Reembolsos totales
Si necesitas rescindir una suscripción y reembolsar el importe total del período de facturación actual, emite un reembolso total. Usa la función purchases.subscriptionsv2.revoke
y establece "fullRefund": {}
como el tipo de reembolso.
Ejemplo:
María tiene una suscripción de 30 días con renovación automática al plan mensual de transmisión de SuperMovies. María tuvo algunos problemas técnicos que le impiden acceder al contenido. Se comunica con el servicio de atención al cliente el tercer día de su ciclo de facturación y afirma que nunca tuvo acceso a la suscripción.
El servicio de atención al cliente encuentra los detalles de la compra de la suscripción de María en su sistema y activa una llamada a
purchases.subscriptionsv2.revoke
para solicitar un reembolso total.El servicio de atención al cliente le dice a María que se le reembolsará el 100% del precio de su suscripción y que ya no está suscrita al plan.
Reembolsos prorrateados
Si necesitas rescindir una suscripción y reembolsar parcialmente el tiempo de derecho restante, emite un reembolso prorrateado. Usa la función purchases.subscriptionsv2.revoke
y establece "proratedRefund": {}
como el tipo de reembolso.
Ejemplo:
María tiene una suscripción de 30 días con renovación automática al plan mensual de transmisión de SuperMovies. Lleva un tiempo usando el servicio con satisfacción. María se comunica con el servicio de atención al cliente el día 15 de su ciclo de facturación y le informa que se mudará al extranjero y que no podrá usar el servicio a partir del día siguiente.
El servicio de atención al cliente encuentra los detalles de la compra de la suscripción de María en su sistema y activa una llamada a
purchases.subscriptionsv2.revoke
para solicitar un reembolso prorrateado.El servicio de atención al cliente le dice a María que se le reembolsará aproximadamente el 50% del precio de su suscripción y que se canceló el acceso al servicio de inmediato.