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).

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizado a Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

subscriptionState

enum (SubscriptionState)

Es el estado actual de la suscripción.

latestOrderId
(deprecated)

string

Obsoleto: Usa lineItems.latest_successful_order_id en su lugar. 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 * Cambio a una versión superior o 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 Venció la suscripción. Todos los elementos tienen el campo expirationTime 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, se debe usar 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.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizado a Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

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. Es 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.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizado a Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

CancelSurveyResult

Es el resultado de la encuesta que se le realiza al usuario cuando cancela 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 la 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

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

profileName

string

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

emailAddress

string

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

givenName

string

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,
  "latestSuccessfulOrderId": 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)
  },
  "deferredItemRemoval": {
    object (DeferredItemRemoval)
  }
  // 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).

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizado a Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

latestSuccessfulOrderId

string

Es el ID del pedido exitoso más reciente asociado a este elemento. No está presente si el usuario aún no es propietario del elemento (p.ej., el elemento que se reemplazó por el elemento diferido).

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.

deferredItemRemoval

object (DeferredItemRemoval)

Es información sobre la eliminación diferida del elemento.

signupPromotion

object (SignupPromotion)

Son los detalles de la promoción de este elemento. Solo se configura 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. Ten en cuenta que el precio no tiene en cuenta los descuentos y no incluye los impuestos para los precios sin impuestos. Llama a la API de orders.get si necesitas detalles de la transacción.

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.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizado a Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

PriceChangeMode

Es el modo del cambio de precio.

Enumeraciones
PRICE_CHANGE_MODE_UNSPECIFIED No se especificó el modo del 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 si el usuario debe aceptarlo.
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.
CANCELED Se canceló el cambio de precio.

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 permitirán las compras de recargas del plan prepagado. No estará presente para los planes prepagados vencidos.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizado a Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

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 de oferta 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.

DeferredItemRemoval

Este tipo no tiene campos.

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

SignupPromotion

Promoción que se aplicó a este elemento 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.

Es un código promocional de un solo uso.

VanityCode

Es un código promocional predefinido de uso múltiple.

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

string

Es el código promocional.

Métodos

get

Obtiene metadatos sobre una suscripción.

revoke

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