Es posible que debas realizar acciones de administración en suscripciones o compras únicas como parte de las operaciones diarias. Por ejemplo, es posible que el 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 quieres hacerlo desde tu propio sistema, puedes usar la API de Google Play Developer.
Cancelar suscripciones
Los usuarios o los desarrolladores pueden iniciar la cancelación de suscripciones.
Cancelaciones iniciadas por el usuario
Los usuarios pueden cancelar una suscripción de Google Play en cualquier momento con 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 sencilla de permitir que los usuarios cancelen voluntariamente 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 purchases.subscriptions.cancel
API te permite cancelar la compra de una suscripción.
Por ejemplo, puedes usar este método para rechazar un servicio heredado.
Si cancelas una suscripción, no se emite un reembolso, y el usuario conserva el acceso hasta el final del período de facturación actual.
Este método te permite especificar los siguientes tipos de cancelaciones en el parámetro cancellationType del cuerpo de la solicitud:
USER_REQUESTED_STOP_RENEWALS: Cancela la suscripción como si los usuarios la hubieran cancelado desde Play Store. Los pagos a plazos 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 cualquier pago adicional. Los usuarios no pueden restablecer la suscripción ni volver a suscribirse a ella desde Play Store. Sin embargo, puedes permitirles que vuelvan a suscribirse en tu app.
Permite que los usuarios restablezcan suscripciones no vencidas
En algunas situaciones, puede ser útil permitir que los usuarios restablezcan suscripciones no vencidas desde el centro de suscripciones de Play después de que hayas activado la cancelación como desarrollador. Por ejemplo, es posible que quieras proporcionar un flujo de cancelación personalizado en la app. Según tu lógica empresarial, puedes decidir qué cancelaciones activadas desde tu backend pueden restablecer los usuarios.
Para indicar que un usuario puede restablecer la cancelación, emite una solicitud POST
a la API de purchases.subscriptions.cancel y establece el parámetro de solicitud cancellationType
en el valor USER_REQUESTED_STOP_RENEWALS.
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_RENEWALS"
}
Permite que los usuarios vuelvan a suscribirse a suscripciones vencidas
Para permitir la nueva suscripción a 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 estableciendo el
cancellationType parámetro en el valor USER_REQUESTED_STOP_RENEWALS.
Permite que los usuarios vuelvan a suscribirse solo en tu aplicación
Si estableciste el parámetro cancellationType en DEVELOPER_REQUESTED_STOP_PAYMENTS o no lo estableciste, 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 en la suscripción a través de tu app si es necesario.
Si realizas esta acción, se activa una notificación para desarrolladores en tiempo real SUBSCRIPTION_CANCELED. Controla estas cancelaciones como se describe en
Cancelaciones.
Cómo aplazar la facturación
Puedes extender el período de derechos de una suscripción con el método
subscriptionsv2.defer. Cuando aplazas una suscripción con complementos, todos los elementos de la suscripción se aplazan por la misma duración. Durante el período de aplazamiento, el usuario sigue suscrito a tu contenido, aunque no se le cobra por el tiempo adicional. Cuando aplazas la facturación de una suscripción, la información de estado se actualiza en consecuencia y la verás reflejada en el campo expiryTime de la información de estado de la compra:
- En el caso de las suscripciones recurrentes activas, la facturación aplazada extiende la próxima fecha de renovación.
- En el caso de los planes prepagados, la facturación aplazada extiende la fecha de vencimiento.
Estos son algunos ejemplos de cómo puedes usar la facturación aplazada:
- 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.
- Ofrecer a los clientes acceso sin costo 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 para usar tu servicio.
La facturación puede aplazarse un día o hasta un año por llamada a la API. Para posponer aún más el final de los derechos, vuelve a llamar a la API antes de que llegue la nueva fecha de vencimiento.
Si realizas esta acción, se activa 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.
Hacen un seguimiento de los resultados del desafío y, el 1 de marzo, llaman al método subscriptionsv2.defer para cada compra de suscripción activa que pertenece a los usuarios que cumplieron con el desafío en febrero.
Estos usuarios obtienen el beneficio de un mes completo adicional de videos de ejercicios regulares sin costo, y les cuentan a todos sus amigos cómo FitnessGoals los ayuda a mantenerse saludables.
Emitir reembolsos y revocaciones
Hay muchas situaciones en las que es posible que quieras emitir un reembolso o revocar el acceso a una suscripción o compra única.
Emitir un reembolso total por ID de pedido
Con la orders.refund
API, puedes emitir reembolsos totales por 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 el acceso además de proporcionar el reembolso.
Si emites una revocación con la llamada de reembolso para la compra de una suscripción, esta se finaliza de inmediato y se activa una notificación para desarrolladores en tiempo real SUBSCRIPTION_REVOKED. Lee la guía de administración del ciclo de vida de las suscripciones
la sección Revocaciones
para obtener información sobre cómo controlar estos eventos.
Ejemplo:
Para celebrar el comienzo de la nueva Copa Mundial, la app de deportes electrónicos Football-Not-Soccer decide sortear camisetas virtuales gratuitas para todos los usuarios que compren kits de equipos nuevos en las primeras 24 horas.
Football-Not-Soccer usa la
orders.refundAPI sin pasar un parámetro de revocación para reembolsar las compras de camisetas a los ganadores.
Revocar y reembolsar una suscripción por token de compra
En ciertos casos de uso, es posible que debas revocar el acceso a la suscripción de un usuario y proporcionar un reembolso. La Facturación Play ofrece métodos de revocación, incluidos reembolsos totales
y reembolsos prorrateados a través de la subscriptionsv2.revoke
API. Con este extremo, puedes especificar revocationContext
para determinar cómo se calcula el reembolso.
Si realizas esta acción, se activa 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 - Intención 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": {}
}
}
Reembolso total
Si necesitas finalizar una suscripción y reembolsar el importe total del período de facturación actual, emite un reembolso total. Usa la
purchases.subscriptionsv2.revoke
función y establece "fullRefund": {} como el tipo de reembolso.
Ejemplo:
María tiene una suscripción de renovación automática de 30 días 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 día 3 de su ciclo de facturación y afirma que nunca obtuvo acceso a la suscripción.
El servicio de atención al cliente ubica los detalles de la compra de la suscripción de María en su sistema y activa una llamada a
purchases.subscriptionsv2.revokepara solicitar un reembolso total.El servicio de atención al cliente le dice a María que debería recibir el 100% del precio de su suscripción y que ya no está suscrita al plan.
Reembolsos prorrateados
Si necesitas finalizar una suscripción y reembolsar parcialmente el tiempo de derechos restante, emite un reembolso prorrateado. Usa la
purchases.subscriptionsv2.revoke
función y establece "proratedRefund": {} como el tipo de reembolso.
Ejemplo:
María tiene una suscripción de renovación automática de 30 días al plan mensual de transmisión de SuperMovies. Ha usado el servicio con satisfacción durante un tiempo. María se comunica con el servicio de atención al cliente el día 15 de su ciclo de facturación y afirma que se mudará al extranjero y que ya no podrá usar el servicio a partir del día siguiente.
El servicio de atención al cliente ubica los detalles de la compra de la suscripción de María en su sistema y activa una llamada a
purchases.subscriptionsv2.revokepara solicitar un reembolso prorrateado.El servicio de atención al cliente le dice a María que debería recibir aproximadamente el 50% del precio de su suscripción y que el acceso al servicio finalizó de inmediato.