Es posible que debas realizar acciones de administración en las suscripciones o las compras únicas como parte de las actividades comerciales diarias. 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 los derechos en ciertos casos. Puedes administrar los pedidos desde Play Console o, si quieres 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 de 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 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 API de purchases.subscriptions.cancel te permite cancelar la compra de una suscripción.
Por ejemplo, podrías usar este método para desactivar un servicio heredado.
Si se cancela una suscripción, no se emite un reembolso, y el usuario conserva el acceso
hasta que finalice el 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 en 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 la suscripción ni volver a suscribirse desde Play Store, pero puedes permitirles que se vuelvan a suscribir desde tu app.
Permite que los usuarios restablezcan las suscripciones que no vencieron
En algunos casos, puede ser útil permitir que los usuarios restablezcan las 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 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 estableciendo el
parámetro cancellationType 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 establecistecancellationType
, los usuarios no podrán
restablecer su suscripción desde el centro de suscripciones de Play. Sin embargo, los usuarios pueden volver a registrarse para la suscripción a través de tu app si es necesario.
Esta acción activa una notificación para desarrolladores en tiempo real de tipo SUBSCRIPTION_CANCELED. Administra estas cancelaciones como se describe en Cancelaciones.
Cómo aplazar la facturación
Puedes extender el período de derecho 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 diferimiento, el usuario sigue suscrito a tu contenido, pero no se le cobra por el tiempo adicional. Cuando aplazas la facturación de una suscripción, la información de estado se actualiza según corresponda y se refleja en el campo expiryTime de la información de estado de la compra:
- En el caso de las suscripciones recurrentes activas, la facturación diferida extiende la próxima fecha de renovación.
- En el caso de los planes prepagados, la facturación diferida extiende la fecha de vencimiento.
Estos son algunos ejemplos de cómo podrías 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 opinión
- Otorgar 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 para usar tu servicio
La facturación se puede diferir desde un día hasta un año por llamada a la API. Para aplazar aún más el final del derecho, vuelve a llamar a la API antes de que llegue la nueva fecha de vencimiento.
Esta acción activa una notificación para desarrolladores en tiempo real de tipo SUBSCRIPTION_DEFERRED. Consulta Cómo aplazar 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.
Decide ofrecer un mes adicional de servicio a cualquier suscriptor que se ejercite con FitnessGoals al menos 10 veces durante el mes de febrero.
Realiza un seguimiento de los resultados del desafío y, el 1 de marzo, llama al método subscriptionsv2.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 ejercicios regulares sin costo, y les cuentan a todos sus amigos cómo FitnessGoals los ayuda a mantenerse saludables.
Emite reembolsos y revocaciones
Existen muchas situaciones en las que es posible que quieras emitir un reembolso o revocar el acceso a una suscripción o compra única.
Reembolsa un pedido por completo según el ID de pedido
Con la API de orders.refund,
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 una compra de suscripción, esta se cancelará de inmediato y se activarán una notificación para desarrolladores en tiempo real de SUBSCRIPTION_REVOKED y una de VoidedPurchaseNotification (registrada en la API de Voided Purchases). 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 sortear 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.refundsin pasar un parámetro de revocación para reembolsar las compras de camisetas a los ganadores.
Revoca y reembolsa 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 proporcionarle un reembolso. La Facturación Play ofrece métodos de revocación, incluidos los reembolsos totales y prorrateados, a través de la API de subscriptionsv2.revoke. Con este extremo, puedes especificar revocationContext
para determinar cómo se calcula el reembolso.
Esta acción activa una notificación para desarrolladores en tiempo real SUBSCRIPTION_REVOKED y una VoidedPurchaseNotification, y se registra en la API de Voided Purchases. 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 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 día 3 de su ciclo de facturación y afirma que nunca tuvo acceso a la suscripción.
El servicio de atención al cliente busca 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 un reembolso del 100% del precio de su suscripción y que ya no está suscrita al plan.
Prorratear reembolsos
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.
Los reembolsos prorrateados se admiten tanto para las suscripciones con renovación automática como para los planes prepagados con una duración de, al menos, una semana.
Ejemplo:
María tiene una suscripción de 30 días con renovación automática al plan mensual de transmisión de SuperMovies. Usa el servicio con gusto desde hace un tiempo. María se comunica con el servicio de atención al cliente el día 15 de su ciclo de facturación para informar 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 busca 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 informa a María que recibirá un reembolso de aproximadamente el 50% del precio de su suscripción y que el acceso al servicio se cancelará de inmediato.