REST Resource: purchases.subscriptionsv2

Recurso: SubscriptionPurchaseV2

Indica el estado de la compra de una suscripción que hace un usuario.

Representación JSON
{
  "kind": string,
  "regionCode": string,
  "lineItems": [
    {
      object (SubscriptionPurchaseLineItem)
    }
  ],
  "startTime": string,
  "subscriptionState": enum (SubscriptionState),
  "latestOrderId": string,
  "linkedPurchaseToken": string,
  "pausedStateContext": {
    object (PausedStateContext)
  },
  "canceledStateContext": {
    object (CanceledStateContext)
  },
  "testPurchase": {
    object (TestPurchase)
  },
  "acknowledgementState": enum (AcknowledgementState),
  "externalAccountIdentifiers": {
    object (ExternalAccountIdentifiers)
  },
  "subscribeWithGoogleInfo": {
    object (SubscribeWithGoogleInfo)
  }
}
Campos
kind

string

Este tipo representa un objeto SubscriptionPurchaseV2 en el servicio androidpublisher.

regionCode

string

Código de región o país de facturación (según ISO 3166-1 Alpha-2) del usuario en el momento en que se otorgó la suscripción.

lineItems[]

object (SubscriptionPurchaseLineItem)

Es la información a nivel del elemento para la compra de una suscripción. Todos los elementos de una misma compra deben estar establecidos como AutoRenewingPlan, o bien como PrepaidPlan.

startTime

string (Timestamp format)

Es la fecha y hora en la que se otorgó la suscripción. No se configura para las suscripciones pendientes (cuando se crea la suscripción, pero se espera el pago durante el registro).

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

subscriptionState

enum (SubscriptionState)

Es el estado actual de la suscripción.

latestOrderId

string

Es el ID del pedido más reciente asociado a la compra de la suscripción. Para una suscripción del tipo autoRenewing, es decir, con renovación automática, es el ID del pedido de registro, si aún no se renovó, o el ID del pedido recurrente más reciente (un pedido ejecutado, pendiente o rechazado). En el caso de una suscripción prepagada, es el ID de pedido asociado con el token de compra consultado.

linkedPurchaseToken

string

Es el token de compra de la suscripción anterior si esta suscripción es una de las siguientes: * Nuevo registro de una suscripción cancelada pero no vencida * Actualización o cambio a una versión inferior desde una suscripción anterior * Cambio de una suscripción prepagada a una con renovación automática * Cambio de una suscripción con renovación automática a una prepagada * Recarga de una suscripción prepagada

pausedStateContext

object (PausedStateContext)

Es contexto adicional para las suscripciones pausadas. Solo está presente si la suscripción tiene el estado subscriptionState establecido como SUBSCRIPTION_STATE_PAUSED.

canceledStateContext

object (CanceledStateContext)

Es contexto adicional para las suscripciones canceladas. Solo está presente si la suscripción tiene el estado subscriptionState establecido como SUBSCRIPTION_STATE_CANCELED o SUBSCRIPTION_STATE_EXPIRED.

testPurchase

object (TestPurchase)

Solo está presente si la compra de esta suscripción es de prueba.

acknowledgementState

enum (AcknowledgementState)

Es el estado de procesamiento de compra de la suscripción.

externalAccountIdentifiers

object (ExternalAccountIdentifiers)

Es el identificador de la cuenta de usuario en el servicio de terceros.

subscribeWithGoogleInfo

object (SubscribeWithGoogleInfo)

Es el perfil de usuario asociado a las compras realizadas con "Suscríbete con Google".

SubscriptionState

Son los estados posibles de una suscripción; por ejemplo, activa o cancelada. Los elementos de la compra de una suscripción pueden ser todos planes con renovación automática o planes prepagados.

Enumeraciones
SUBSCRIPTION_STATE_UNSPECIFIED No se especificó el estado de la suscripción.
SUBSCRIPTION_STATE_PENDING Se creó la suscripción, pero se espera el pago durante el registro. En este estado, todos los elementos están pendientes de pago.
SUBSCRIPTION_STATE_ACTIVE La suscripción está activa. - (1) Si la suscripción es un plan con renovación automática, al menos un elemento tiene el estado autoRenewEnabled y no venció. - (2) Si la suscripción es un plan prepagado, al menos un elemento no venció.
SUBSCRIPTION_STATE_PAUSED Se pausó la suscripción. Este estado solo se encuentra disponible cuando la suscripción es un plan con renovación automática. Todos los elementos están en pausa.
SUBSCRIPTION_STATE_IN_GRACE_PERIOD La suscripción está en período de gracia. Este estado solo se encuentra disponible cuando la suscripción es un plan con renovación automática. Todos los elementos se encuentran en período de gracia.
SUBSCRIPTION_STATE_ON_HOLD La suscripción está en espera (suspendida). Este estado solo se encuentra disponible cuando la suscripción es un plan con renovación automática. Todos los elementos se encuentran en espera.
SUBSCRIPTION_STATE_CANCELED Se canceló la suscripción, pero todavía no venció. Este estado solo se encuentra disponible cuando la suscripción es un plan con renovación automática. Todos los elementos tienen el campo autoRenewEnabled establecido en falso.
SUBSCRIPTION_STATE_EXPIRED La suscripción venció. Todos los elementos tienen el campo expiryTime establecido como una fecha en el pasado.
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED Se canceló la transacción pendiente para la suscripción. Si esta compra pendiente era para una suscripción existente, usa linkedPurchaseToken para obtener el estado actual de esa suscripción.

PausedStateContext

Es información específica sobre una suscripción en pausa.

Representación JSON
{
  "autoResumeTime": string
}
Campos
autoResumeTime

string (Timestamp format)

Es la fecha y hora a la que se reanudará automáticamente la suscripción.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

CanceledStateContext

Es información específica sobre una suscripción con el estado SUBSCRIPTION_STATE_CANCELED o SUBSCRIPTION_STATE_EXPIRED.

Representación JSON
{

  // Union field cancellation_reason can be only one of the following:
  "userInitiatedCancellation": {
    object (UserInitiatedCancellation)
  },
  "systemInitiatedCancellation": {
    object (SystemInitiatedCancellation)
  },
  "developerInitiatedCancellation": {
    object (DeveloperInitiatedCancellation)
  },
  "replacementCancellation": {
    object (ReplacementCancellation)
  }
  // End of list of possible types for union field cancellation_reason.
}
Campos
Campo de unión cancellation_reason. Indica el motivo por el que se canceló una suscripción. Las direcciones (cancellation_reason) solo pueden ser una de las siguientes opciones:
userInitiatedCancellation

object (UserInitiatedCancellation)

El usuario canceló la suscripción.

systemInitiatedCancellation

object (SystemInitiatedCancellation)

El sistema canceló la suscripción, por ejemplo, debido a un problema de facturación.

developerInitiatedCancellation

object (DeveloperInitiatedCancellation)

El desarrollador canceló la suscripción.

replacementCancellation

object (ReplacementCancellation)

Se reemplazó la suscripción por una nueva.

UserInitiatedCancellation

Es información específica sobre las cancelaciones que inician los usuarios.

Representación JSON
{
  "cancelSurveyResult": {
    object (CancelSurveyResult)
  },
  "cancelTime": string
}
Campos
cancelSurveyResult

object (CancelSurveyResult)

Es la información que proporciona el usuario cuando completa el flujo de cancelación de la suscripción (encuesta sobre el motivo de la cancelación).

cancelTime

string (Timestamp format)

Es la fecha y hora en la que el usuario canceló la suscripción. Es posible que, después de ese momento, el usuario aún tenga acceso a la suscripción. Para saber si esto es así, se debe usar lineItems.expiry_time.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

CancelSurveyResult

Es el resultado de la encuesta de cancelación cuando el usuario canceló la suscripción.

Representación JSON
{
  "reason": enum (CancelSurveyReason),
  "reasonUserInput": string
}
Campos
reason

enum (CancelSurveyReason)

Es el motivo que seleccionó el usuario en la encuesta sobre la cancelación.

reasonUserInput

string

Solo se establece para CANCEL_SURVEY_REASON_OTHERS. Es la respuesta de formato libre que ofrece el usuario en la encuesta.

CancelSurveyReason

Es el motivo que seleccionó el usuario en la encuesta sobre la cancelación.

Enumeraciones
CANCEL_SURVEY_REASON_UNSPECIFIED No se especificó el motivo de la cancelación en la encuesta.
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE La suscripción no se usó lo suficiente.
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES Surgieron problemas técnicos al usar la app.
CANCEL_SURVEY_REASON_FOUND_BETTER_APP El usuario encontró una app mejor.
CANCEL_SURVEY_REASON_OTHERS Otros motivos.

SystemInitiatedCancellation

Este tipo no tiene campos.

Es información específica sobre las cancelaciones que inicia el sistema de Google.

DeveloperInitiatedCancellation

Este tipo no tiene campos.

Es información específica sobre las cancelaciones que inician los desarrolladores.

ReplacementCancellation

Este tipo no tiene campos.

Es información específica sobre las cancelaciones causadas por el reemplazo de la suscripción.

TestPurchase

Este tipo no tiene campos.

Indica si la compra de esta suscripción es de prueba.

AcknowledgementState

Son los posibles estados de procesamiento de compra de una suscripción.

Enumeraciones
ACKNOWLEDGEMENT_STATE_UNSPECIFIED No se especificó el estado de confirmación.
ACKNOWLEDGEMENT_STATE_PENDING Aún no se procesó la compra de la suscripción.
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED Se procesó la compra de la suscripción.

ExternalAccountIdentifiers

Es el identificador de la cuenta de usuario en el servicio de terceros.

Representación JSON
{
  "externalAccountId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
Campos
externalAccountId

string

Es el identificador de la cuenta de usuario en el servicio de terceros. Solo se encuentra presente si la vinculación de la cuenta se lleva a cabo como parte del flujo de compra de la suscripción.

obfuscatedExternalAccountId

string

Versión ofuscada del ID que está asociado de forma única a la cuenta del usuario en tu app. Está presente para las compras en los siguientes casos: * La cuenta se vinculó como parte del flujo de compra de la suscripción. * Se usó https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid para especificar el campo cuando se realizó la compra.

obfuscatedExternalProfileId

string

Es una versión ofuscada del ID que está asociado de forma única al perfil del usuario en tu app. Solo está presente si se especificó con https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid cuando se realizó la compra.

SubscribeWithGoogleInfo

Es información asociada a las compras realizadas con "Suscríbete con Google".

Representación JSON
{
  "profileId": string,
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string
}
Campos
profileId

string

Es el ID del perfil de Google del usuario en el momento de la compra de la suscripción.

profileName

string

Es el nombre de perfil del usuario en el momento de la compra de la suscripción.

emailAddress

string

Es la dirección de correo electrónico del usuario en el momento de la compra de la suscripción.

givenName

string

Es el nombre de pila del usuario en el momento de la compra de la suscripción.

familyName

string

Apellido del usuario en el momento de la compra de la suscripción.

SubscriptionPurchaseLineItem

Es la información a nivel del elemento para la compra de una suscripción.

Representación JSON
{
  "productId": string,
  "expiryTime": string,

  // Union field plan_type can be only one of the following:
  "autoRenewingPlan": {
    object (AutoRenewingPlan)
  },
  "prepaidPlan": {
    object (PrepaidPlan)
  }
  // End of list of possible types for union field plan_type.
  "offerDetails": {
    object (OfferDetails)
  },

  // Union field deferred_item_change can be only one of the following:
  "deferredItemReplacement": {
    object (DeferredItemReplacement)
  }
  // End of list of possible types for union field deferred_item_change.
  "signupPromotion": {
    object (SignupPromotion)
  }
}
Campos
productId

string

Es el ID del producto comprado (por ejemplo, "monthly001").

expiryTime

string (Timestamp format)

Es la fecha y hora en la que venció o vencerá la suscripción, a menos que se extienda el acceso (p. ej., se renueve).

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

Campo de unión plan_type. Es el tipo de plan de suscripción. Las direcciones (plan_type) solo pueden ser una de las siguientes opciones:
autoRenewingPlan

object (AutoRenewingPlan)

El elemento se renueva automáticamente.

prepaidPlan

object (PrepaidPlan)

El elemento está prepagado.

offerDetails

object (OfferDetails)

Son los detalles de la oferta para este elemento.

Campo de unión deferred_item_change. Este campo está presente cuando un elemento tiene un cambio diferido. Se puede quitar o reemplazar. Las direcciones (deferred_item_change) solo pueden ser una de las siguientes opciones:
deferredItemReplacement

object (DeferredItemReplacement)

Es información sobre el reemplazo diferido del elemento.

signupPromotion

object (SignupPromotion)

Son los detalles de la promoción de este artículo. Solo se establece si se aplicó una promoción durante el registro.

AutoRenewingPlan

Es información relacionada con un plan con renovación automática.

Representación JSON
{
  "autoRenewEnabled": boolean,
  "recurringPrice": {
    object (Money)
  },
  "priceChangeDetails": {
    object (SubscriptionItemPriceChangeDetails)
  },
  "installmentDetails": {
    object (InstallmentPlan)
  }
}
Campos
autoRenewEnabled

boolean

La suscripción se encuentra configurada para renovarse automáticamente; p. ej., el usuario no la canceló.

recurringPrice

object (Money)

Es el precio recurrente actual del plan con renovación automática.

priceChangeDetails

object (SubscriptionItemPriceChangeDetails)

Es la información del último cambio de precio del elemento desde el registro de la suscripción.

installmentDetails

object (InstallmentPlan)

Es el compromiso del plan de cuotas y la información relacionada con el estado del plan con renovación automática.

SubscriptionItemPriceChangeDetails

Es información relacionada con el cambio de precio de un elemento de suscripción.

Representación JSON
{
  "newPrice": {
    object (Money)
  },
  "priceChangeMode": enum (PriceChangeMode),
  "priceChangeState": enum (PriceChangeState),
  "expectedNewPriceChargeTime": string
}
Campos
newPrice

object (Money)

Es el nuevo precio recurrente del elemento de suscripción.

priceChangeMode

enum (PriceChangeMode)

El modo de cambio de precio especifica cómo cambia el precio del elemento de suscripción.

priceChangeState

enum (PriceChangeState)

Es el estado en el que se encuentra el cambio de precio.

expectedNewPriceChargeTime

string (Timestamp format)

Es la fecha y hora de renovación en la que entrará en vigencia el cambio de precio para el usuario. Puede cambiar(en un momento futuro) en los casos en los que se modifique la fecha y hora de renovación, como cuando se realiza una pausa. Este campo solo se completa si no se aplicó el cambio de precio.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

PriceChangeMode

Es el modo del cambio de precio.

Enumeraciones
PRICE_CHANGE_MODE_UNSPECIFIED No se especificó el modo de cambio de precio. Nunca se debe establecer este valor.
PRICE_DECREASE Indica si el precio de la suscripción está disminuyendo.
PRICE_INCREASE Indica si el precio de la suscripción está aumentando, y el usuario debe establecer si lo acepta.
OPT_OUT_PRICE_INCREASE Indica si el precio de la suscripción está aumentando, y está disponible el modo de inhabilitación.

PriceChangeState

Es el estado del cambio de precio.

Enumeraciones
PRICE_CHANGE_STATE_UNSPECIFIED No se especificó el estado del cambio de precio. No se debe usar este valor.
OUTSTANDING Se espera que el usuario acepte el cambio de precio.
CONFIRMED Se confirmó que cambiará el precio para el usuario.
APPLIED Se aplicó el cambio de precio, es decir, se le empezó a cobrar el precio nuevo al usuario.

InstallmentPlan

Es información sobre un plan de cuotas.

Representación JSON
{
  "initialCommittedPaymentsCount": integer,
  "subsequentCommittedPaymentsCount": integer,
  "remainingCommittedPaymentsCount": integer,
  "pendingCancellation": {
    object (PendingCancellation)
  }
}
Campos
initialCommittedPaymentsCount

integer

Es la cantidad total de pagos que el usuario se comprometió a realizar inicialmente.

subsequentCommittedPaymentsCount

integer

Es la cantidad total de pagos que el usuario deberá realizar después de cada período de compromiso. Si está vacío, significa que el plan de cuotas volverá a ser una suscripción con renovación automática normal después del compromiso inicial.

remainingCommittedPaymentsCount

integer

Es la cantidad total de pagos restantes que deben hacerse en este ciclo de renovación según el compromiso tomado.

pendingCancellation

object (PendingCancellation)

Si está presente, significa que el plan de cuotas está pendiente de cancelación. y esta se producirá solo después de que el usuario termine de realizar todos los pagos a los que se comprometió.

PendingCancellation

Este tipo no tiene campos.

Indica si hay una cancelación pendiente en el plan de cuotas virtual, y esta se producirá solo después de que el usuario termine de realizar todos los pagos a los que se comprometió.

PrepaidPlan

Es información relacionada con un plan prepagado.

Representación JSON
{
  "allowExtendAfterTime": string
}
Campos
allowExtendAfterTime

string (Timestamp format)

Si está presente, es la fecha y hora a partir de la cual se permiten las compras de recargas del plan prepagado. No estará presente para los planes prepagados vencidos.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

OfferDetails

Es información detallada de una oferta relacionada con un concepto de la compra.

Representación JSON
{
  "offerTags": [
    string
  ],
  "basePlanId": string,
  "offerId": string
}
Campos
offerTags[]

string

Son las etiquetas más recientes asociadas con la oferta. Incluye etiquetas heredadas del plan básico.

basePlanId

string

Es el ID del plan básico. Está presente para todas las ofertas y planes básicos.

offerId

string

Es el ID de la oferta. Solo está presente para las ofertas con descuento.

DeferredItemReplacement

Es información relacionada con el reemplazo diferido del elemento.

Representación JSON
{
  "productId": string
}
Campos
productId

string

Es el campo productId que reemplazará al existente.

SignupPromotion

Es la promoción que se aplicó a este artículo cuando se compró.

Representación JSON
{

  // Union field promotion_type can be only one of the following:
  "oneTimeCode": {
    object (OneTimeCode)
  },
  "vanityCode": {
    object (VanityCode)
  }
  // End of list of possible types for union field promotion_type.
}
Campos
Campo de unión promotion_type. Es el tipo de promoción que se aplica al artículo. Las direcciones (promotion_type) solo pueden ser una de las siguientes opciones:
oneTimeCode

object (OneTimeCode)

Se aplicó un código de uso único.

vanityCode

object (VanityCode)

Se aplicó un código personalizado.

OneTimeCode

Este tipo no tiene campos.

Un código promocional de un solo uso.

VanityCode

Es un código promocional predefinido de varios usos.

Representación JSON
{
  "promotionCode": string
}
Campos
promotionCode

string

El código promocional

Métodos

get

Obtén metadatos sobre una suscripción

revoke

Revoca la compra de una suscripción para el usuario.