REST Resource: monetization.subscriptions

Ресурс: Подписка

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

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

string

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

productId

string

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

basePlans[]

object ( BasePlan )

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

listings[]

object ( SubscriptionListing )

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

archived
(deprecated)

boolean

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

taxAndComplianceSettings

object ( SubscriptionTaxAndComplianceSettings )

Подробная информация о налогах и соблюдении законодательства.

restrictedPaymentCountries

object ( RestrictedPaymentCountries )

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

Базовый план

Единый базовый тарифный план для подписки.

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. То есть этот идентификатор может содержать только строчные буквы (az), цифры (0-9) и дефисы (-), и иметь длину не более 63 символов.

state

enum ( State )

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

regionalConfigs[]

object ( RegionalBasePlanConfig )

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

offerTags[]

object ( OfferTag )

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

otherRegionsConfig

object ( OtherRegionsBasePlanConfig )

Информация о ценах на любые новые локации, которые Play может запустить в будущем. Если она отсутствует, базовый тарифный план не будет автоматически доступен в любых новых локациях, которые 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 Billing Library.

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

legacyCompatibleSubscriptionOfferId

string

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

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

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

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

Повторная подписка

Необходимо повторно подписаться на базовый тарифный план.

Перечисления
RESUBSCRIBE_STATE_UNSPECIFIED Неуказанный штат.
RESUBSCRIBE_STATE_ACTIVE Повторная подписка активна.
RESUBSCRIBE_STATE_INACTIVE Повторная подписка неактивна.

Режим пропорционального распределения подписки

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

Перечисления
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, если не указано иное.

Продление времени

Продление срока действия базового плана.

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

Тип базового плана рассрочки

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

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.

RenewType

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

Перечисления
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-2, например, «США».

newSubscriberAvailability

boolean

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

price

object ( Money )

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

OtherRegionsBasePlanConfig

Информация о ценах на любые новые локации, в которых может быть запущена игра Play.

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

object ( Money )

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

eurPrice

object ( Money )

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

newSubscriberAvailability

boolean

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

Список подписок

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

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

string

Обязательно. Язык данного объявления, как определено в BCP-47, например, «en-US».

title

string

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

benefits[]

string

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

description

string

Описание данной подписки на языке этого объявления. Максимальная длина — 80 символов. Обычный текст.

Методы

archive
(deprecated)

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

batchGet

Читает одну или несколько подписок.

batchUpdate

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

create

Создает новую подписку.

delete

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

get

Читает данные по одной подписке.

list

Отображает список всех подписок, относящихся к данному приложению.

patch

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

коды ошибок

При работе с этим ресурсом возвращаются следующие коды ошибок HTTP:

Код ошибки Причина Описание Разрешение
400 invalidValue В запросе было предоставлено недопустимое значение. Такая ошибка часто возникает при получении некорректного или недействительного токена покупки. Исправьте недопустимое значение поля в теле запроса или параметрах в соответствии со справочником API.
400 required В запросе отсутствует обязательное поле или параметр. Ознакомьтесь с документацией API, чтобы убедиться в наличии всех обязательных полей и параметров.
403 userInsufficientPermission У пользователя недостаточно прав для выполнения запрошенной операции. Убедитесь, что авторизованный пользователь имеет необходимые разрешения в консоли Google Play. Дополнительные сведения см. в разделе «Использование служебной учетной записи» .
404 notFound Запрошенный ресурс не найден. Убедитесь в правильности идентификаторов (например, токен покупки, название пакета, идентификатор продукта, идентификатор подписки).
409 concurrentUpdate Была предпринята попытка обновить объект, который обновляется одновременно с первым. Повторите запрос с экспоненциальной задержкой. Избегайте одновременных изменений одного и того же ресурса.
5xx Generic error Общая ошибка на сервере Google Play. Повторите запрос.

Если проблема не исчезнет, ​​обратитесь к своему менеджеру аккаунта Google Play или отправьте запрос в службу поддержки. Рекомендуем проверить панель состояния Play на наличие известных сбоев.