REST Resource: monetization.subscriptions

Ресурс: Subscription

Одна подписка для приложения.

JSON-представление
{
  "packageName": string,
  "productId": string,
  "basePlans": [
    {
      object (BasePlan)
    }
  ],
  "listings": [
    {
      object (SubscriptionListing)
    }
  ],
  "archived": boolean,
  "taxAndComplianceSettings": {
    object (SubscriptionTaxAndComplianceSettings)
  },
  "restrictedPaymentCountries": {
    object (RestrictedPaymentCountries)
  }
}
Поля
packageName

string

Не меняется. Название пакета родительского приложения.

productId

string

Не меняется. Уникальный идентификатор товара. Уникальный идентификатор в родительском приложении. Идентификаторы товаров должны состоять из строчных букв (a–z), цифр (0–9), символов подчеркивания (_) и точек (.). Идентификатор должен начинаться со строчной буквы или цифры и содержать от 1 до 40 символов.

basePlans[]

object (BasePlan)

Набор основных планов для этой подписки. Цены и продолжительность подписки, если не действуют другие предложения.

listings[]

object (SubscriptionListing)

Обязательно. Список локализованных страниц для этой подписки. Должен содержать хотя бы одну запись для языка по умолчанию родительского приложения.

archived
(deprecated)

boolean

Только для вывода. Устарело: архивирование подписок не поддерживается.

taxAndComplianceSettings

object (SubscriptionTaxAndComplianceSettings)

Сведения о налогах и соответствии юридическим и нормативным требованиям.

restrictedPaymentCountries

object (RestrictedPaymentCountries)

Необязательное поле. Страны, в которых для покупки этой подписки можно использовать только способы оплаты, зарегистрированные в той же стране. Если поле не заполнено, ограничения не применяются.

BasePlan

Один основной план для подписки.

JSON-представление
{
  "basePlanId": string,
  "state": enum (State),
  "regionalConfigs": [
    {
      object (RegionalBasePlanConfig)
    }
  ],
  "offerTags": [
    {
      object (OfferTag)
    }
  ],
  "otherRegionsConfig": {
    object (OtherRegionsBasePlanConfig)
  },

  // Union field base_plan_type can be only one of the following:
  "autoRenewingBasePlanType": {
    object (AutoRenewingBasePlanType)
  },
  "prepaidBasePlanType": {
    object (PrepaidBasePlanType)
  },
  "installmentsBasePlanType": {
    object (InstallmentsBasePlanType)
  }
  // End of list of possible types for union field base_plan_type.
}
Поля
basePlanId

string

Обязательно. Не меняется. Уникальный идентификатор основного плана. Должен быть уникальным в рамках подписки и соответствовать RFC-1034. Идентификатор может содержать только строчные буквы (a–z), цифры (0–9) и дефисы (-). Его длина не должна превышать 63 символа.

state

enum (State)

Только для вывода. Статус основного плана, например активен ли он. Проекты и неактивные основные планы можно активировать или удалить. Активные основные планы можно деактивировать. Неактивные основные планы можно отменить. Это поле нельзя изменить, обновив ресурс. Используйте вместо них специальные конечные точки.

regionalConfigs[]

object (RegionalBasePlanConfig)

Информация об этом основном плане для конкретного региона.

offerTags[]

object (OfferTag)

Список, содержащий до 20 пользовательских тегов, указанных для этого основного [тарифного] плана и возвращаемых в приложение через библиотеку Платежей. Специальные предложения для этого основного плана также получат эти теги в библиотеке Платежей.

otherRegionsConfig

object (OtherRegionsBasePlanConfig)

Цены для новых регионов, в которых Google Play может начать работу в будущем. Если вы не укажете этот параметр, основной план не будет автоматически доступен в новых регионах, которые со временем станут поддерживаться в Google Play.

Объединенное поле base_plan_type. Тип основного плана. Нужно указать только одно значение. После создания основного плана его тип изменить нельзя. base_plan_type может иметь одно из следующих значений:
autoRenewingBasePlanType

object (AutoRenewingBasePlanType)

Укажите, когда основной план будет автоматически продлеваться через регулярные интервалы.

prepaidBasePlanType

object (PrepaidBasePlanType)

Устанавливается, если основной план не продлевается автоматически в конце расчетного периода.

installmentsBasePlanType

object (InstallmentsBasePlanType)

Устанавливается для основных планов с рассрочкой, когда пользователь обязуется внести определенное количество платежей.

Штат

Текущий статус основного плана.

Перечисления
STATE_UNSPECIFIED Состояние не указано.
DRAFT Основной план находится в статусе проекта и не активирован. Теперь его можно удалить.
ACTIVE Основной план активен и доступен для новых подписчиков.
INACTIVE Основной план неактивен и доступен только существующим подписчикам.

AutoRenewingBasePlanType

Основной план, который автоматически продлевается в конце периода подписки.

JSON-представление
{
  "billingPeriodDuration": string,
  "gracePeriodDuration": string,
  "accountHoldDuration": string,
  "resubscribeState": enum (ResubscribeState),
  "prorationMode": enum (SubscriptionProrationMode),
  "legacyCompatible": boolean,
  "legacyCompatibleSubscriptionOfferId": string
}
Поля
billingPeriodDuration

string

Обязательно. Не меняется. Период подписки в формате ISO 8601. Список допустимых расчетных периодов можно найти в Справочном центре. После создания основного плана изменить продолжительность нельзя.

gracePeriodDuration

string

Льготный период подписки в формате ISO 8601. Допустимые значения должны быть указаны в днях и находиться в диапазоне от P0D до меньшего из двух значений: 30D и расчетного периода основного плана.

Если значение не указано, будет использоваться значение по умолчанию, основанное на расчетном периоде.

Сумма значений gracePeriodDuration и accountHoldDuration должна быть в диапазоне от P30D до P60D дней включительно.

accountHoldDuration

string

Необязательное поле. Собственный период временной блокировки аккаунта для подписки, указанный в формате ISO 8601. Допустимые значения должны быть указаны в днях и находиться в диапазоне от P0D до P60D.

Если поле пустое, то временная блокировка аккаунта рассчитывается по формуле "60 дней минус льготный период".

Сумма значений gracePeriodDuration и accountHoldDuration должна быть в диапазоне от P30D до P60D дней включительно.

resubscribeState

enum (ResubscribeState)

Могут ли пользователи повторно оформить подписку на этот основной план на платформах Google Play. Если не указано, по умолчанию используется RESUBSCRIBE_STATE_ACTIVE.

prorationMode

enum (SubscriptionProrationMode)

Режим пропорционального перерасчета для основного плана определяет, что происходит, когда пользователь переходит на него с другого основного плана. Если не указано, по умолчанию используется CHARGE_ON_NEXT_BILLING_DATE.

legacyCompatible

boolean

Поддерживает ли продлеваемый основной план обратную совместимость.

Основной план с обратной совместимостью возвращается устаревшим методом querySkuDetailsAsync() из библиотеки Google Play Платежей

Для одной подписки можно выбрать только один основной план с поддержкой устаревших версий.

legacyCompatibleSubscriptionOfferId

string

Идентификатор предложения, совместимого с устаревшими версиями.

Специальное предложение с обратной совместимостью возвращается устаревшим методом querySkuDetailsAsync() из библиотеки Google Play Платежей

Для каждого основного плана с автоматическим продлением можно выбрать только одно специальное предложение, совместимое с устаревшими версиями.

Чтобы не указывать предложение, совместимое с устаревшими версиями, оставьте это поле пустым.

ResubscribeState

Статус возобновления основного плана.

Перечисления
RESUBSCRIBE_STATE_UNSPECIFIED Состояние не указано.
RESUBSCRIBE_STATE_ACTIVE Функция возобновления подписки включена.
RESUBSCRIBE_STATE_INACTIVE Возобновление подписки неактивно.

SubscriptionProrationMode

Режим пропорционального расчета, используемый для продления основных планов.

Перечисления
SUBSCRIPTION_PRORATION_MODE_UNSPECIFIED Режим не указан.
SUBSCRIPTION_PRORATION_MODE_CHARGE_ON_NEXT_BILLING_DATE Средства за новый основной план будут списаны в конце текущего расчетного периода.
SUBSCRIPTION_PRORATION_MODE_CHARGE_FULL_PRICE_IMMEDIATELY С пользователей сразу же будет списана полная стоимость нового основного плана. Оставшийся период существующей подписки будет использован для продления срока действия нового тарифного плана.

PrepaidBasePlanType

Основной план, который не продлевается автоматически по окончании срока действия. Пользователь должен продлить его вручную.

JSON-представление
{
  "billingPeriodDuration": string,
  "timeExtension": enum (TimeExtension)
}
Поля
billingPeriodDuration

string

Обязательно. Не меняется. Период подписки в формате ISO 8601. Список допустимых расчетных периодов можно найти в Справочном центре. После создания основного плана продолжительность изменить нельзя.

timeExtension

enum (TimeExtension)

Должна ли у пользователей быть возможность продлевать этот основной план с предоплатой в Google Play. Если не указано, по умолчанию используется TIME_EXTENSION_ACTIVE.

TimeExtension

Продление основного плана.

Перечисления
TIME_EXTENSION_UNSPECIFIED Состояние не указано.
TIME_EXTENSION_ACTIVE Дополнительное время активно. Пользователи могут пополнять баланс или продлевать предоплаченный план.
TIME_EXTENSION_INACTIVE Дополнительное время неактивно. Пользователи не могут пополнить баланс или продлить предоплаченный план.

InstallmentsBasePlanType

Основной план с рассрочкой, в рамках которого пользователь обязуется сделать определенное количество платежей.

JSON-представление
{
  "billingPeriodDuration": string,
  "committedPaymentsCount": integer,
  "renewalType": enum (RenewalType),
  "gracePeriodDuration": string,
  "accountHoldDuration": string,
  "resubscribeState": enum (ResubscribeState),
  "prorationMode": enum (SubscriptionProrationMode)
}
Поля
billingPeriodDuration

string

Обязательно. Не меняется. Период подписки, указанный в формате ISO 8601. Список допустимых расчетных периодов можно найти в Справочном центре. После создания основного плана изменить продолжительность нельзя.

committedPaymentsCount

integer

Обязательно. Не меняется. Количество платежей, которые пользователь обязуется сделать. После создания основного плана его нельзя изменить.

renewalType

enum (RenewalType)

Обязательно. Не меняется. Тип продления основного плана с рассрочкой. Определяет, что произойдет по окончании первоначального срока действия обязательства. После создания основного плана тип продления изменить нельзя.

gracePeriodDuration

string

Льготный период подписки в формате ISO 8601. Допустимые значения должны быть указаны в днях и находиться в диапазоне от P0D до меньшего из двух значений: 30D и расчетного периода основного плана.

Если значение не указано, будет использоваться значение по умолчанию, основанное на расчетном периоде.

Сумма значений gracePeriodDuration и accountHoldDuration должна быть в диапазоне от P30D до P60D дней включительно.

accountHoldDuration

string

Необязательное поле. Собственный период временной блокировки аккаунта для подписки, указанный в формате ISO 8601. Допустимые значения должны быть указаны в днях и находиться в диапазоне от P0D до P60D.

Если поле пустое, то временная блокировка аккаунта рассчитывается по формуле "60 дней минус льготный период".

Сумма значений gracePeriodDuration и accountHoldDuration должна быть в диапазоне от P30D до P60D дней включительно.

resubscribeState

enum (ResubscribeState)

Могут ли пользователи повторно оформить подписку на этот основной план на платформах Google Play. Если не указано, по умолчанию используется RESUBSCRIBE_STATE_ACTIVE.

prorationMode

enum (SubscriptionProrationMode)

Режим пропорционального перерасчета для основного плана определяет, что происходит, когда пользователь переходит на него с другого основного плана. Если не указано, по умолчанию используется CHARGE_ON_NEXT_BILLING_DATE.

RenewalType

Тип продления основного плана с рассрочкой. Определяет, что произойдет по окончании первоначального срока действия обязательства. После создания основного плана тип продления изменить нельзя.

Перечисления
RENEWAL_TYPE_UNSPECIFIED Состояние не указано.
RENEWAL_TYPE_RENEWS_WITHOUT_COMMITMENT Продлевается периодически на расчетный период без обязательств.
RENEWAL_TYPE_RENEWS_WITH_COMMITMENT Продлевается на тот же срок, что и первоначальный.

RegionalBasePlanConfig

Конфигурация основного плана для определенного региона.

JSON-представление
{
  "regionCode": string,
  "newSubscriberAvailability": boolean,
  "price": {
    object (Money)
  }
}
Поля
regionCode

string

Обязательно. Код региона, к которому применяется эта конфигурация, в соответствии со стандартом ISO 3166-1 alpha-2, например "US".

newSubscriberAvailability

boolean

Доступен ли основной план в указанном регионе для новых подписчиков. Если задано значение false, подписки существующих подписчиков не будут отменены. Если значение не указано, по умолчанию используется false.

price

object (Money)

Цена основного плана в указанном регионе. Обязательно, если основной план доступен новым подписчикам. Валюта должна соответствовать указанному региону.

OtherRegionsBasePlanConfig

Информация о ценах для новых регионов, в которых может появиться Google Play.

JSON-представление
{
  "usdPrice": {
    object (Money)
  },
  "eurPrice": {
    object (Money)
  },
  "newSubscriberAvailability": boolean
}
Поля
usdPrice

object (Money)

Обязательно. Цена в долларах США, которая будет использоваться в новых регионах, где может появиться Google Play.

eurPrice

object (Money)

Обязательно. Цена в евро, которая будет использоваться в новых регионах, где может появиться Google Play.

newSubscriberAvailability

boolean

Доступен ли основной план новым подписчикам в новых регионах, которые со временем станут поддерживаться в Google Play. Если значение не указано, по умолчанию используется false.

SubscriptionListing

Метаданные подписки, видимые пользователю.

JSON-представление
{
  "languageCode": string,
  "title": string,
  "benefits": [
    string
  ],
  "description": string
}
Поля
languageCode

string

Обязательно. Язык страницы приложения, определенный по стандарту BCP-47, например "ru-RU".

title

string

Обязательно. Название подписки на языке страницы приложения. Обычный текст.

benefits[]

string

Список преимуществ, которые показываются пользователю на таких платформах, как Google Play, и в процессах восстановления на языке этой страницы. Обычный текст. Упорядоченный список, содержащий не более четырех преимуществ.

description

string

Описание подписки на языке страницы. Максимальная длина – 200 символов. Обычный текст.

Методы

archive
(deprecated)

Устарело: архивирование подписок не поддерживается.

batchGet

Чтение одной или нескольких подписок.

batchUpdate

Обновляет пакет подписок.

create

Создать подписку.

delete

Удаляет подписку.

get

Считывает одну подписку.

list

Выводит список всех подписок в указанном приложении.

patch

Обновляет существующую подписку.

Коды ошибок

Операции этого ресурса возвращают следующие коды ошибок HTTP:

Код ошибки Причина Описание Разрешение