---
title: "POST /v1/partners/{partnersId}/subscriptions/{subscriptionsId}:entitle"
method: POST
path: "/v1/partners/{partnersId}/subscriptions/{subscriptionsId}:entitle"
tags: ["partners"]
---

# POST /v1/partners/{partnersId}/subscriptions/{subscriptionsId}:entitle

`POST /v1/partners/{partnersId}/subscriptions/{subscriptionsId}:entitle`

## Request

- Base URL: `https://paymentsresellersubscription.googleapis.com`
- URL: `https://paymentsresellersubscription.googleapis.com/v1/partners/{partnersId}/subscriptions/{subscriptionsId}:entitle`
- Auth: OAuth 2 and OAuth 2
  - Implicit: `https://accounts.google.com/o/oauth2/auth`
  - Scopes: `https://www.googleapis.com/auth/sdm.service`
  - Authorization code: `https://accounts.google.com/o/oauth2/auth`
  - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/sdm.service`
- TypeScript: <https://skmtc.dev/google/apis/paymentsresellersubscription/docs/v1/partners/:partnersId/subscriptions/:subscriptionsId:entitle/post.ts> (a function with typed inputs; its response is checked against the schema)

Entitles a previously provisioned subscription to the current end user. The end user identity is inferred from the authorized credential of the request. This API must be authorized by the end user using OAuth.

## Path parameters

- `partnersId` string, required
- `subscriptionsId` string, required

## Request body

- EntitleSubscriptionRequest: Partner request for entitling the previously provisioned subscription to an end user. The end user identity is inferred from the request OAuth context.
  - `lineItemEntitlementDetails` EntitleSubscriptionRequestLineItemEntitlementDetails[]: Optional. Deprecated: This field is no longer supported. All line items are entitled automatically. Optional. The line items to be entitled. If unspecified, all line items will be entitled.
    - `lineItemIndex` integer: Required. The index of the line item to be entitled.
    - `products` string[]: Optional. Only applicable if the line item corresponds to a hard bundle. Product resource names that identify the bundle elements to be entitled in the line item. If unspecified, all bundle elements will be entitled. The format is 'partners/{partner_id}/products/{product_id}'.

## Response `200`

Successful response

- EntitleSubscriptionResponse: Response that contains the entitled subscription resource.
  - `subscription` Subscription: Acts as a central billing entity between an external partner and Google. Google services use the subscription state to grant or revoke the user's service entitlement. Note: The subscription state might not perfectly align with the user's service entitlement. Some services might continue providing access until the current cycle ends, even if the subscription is immediately canceled. Consult the relevant contract or product policy for specific details.
    - `cancellationDetails` SubscriptionCancellationDetails: Describes the details of a cancelled or cancelling subscription.
      - `reason` 'CANCELLATION_REASON_UNSPECIFIED' | 'CANCELLATION_REASON_FRAUD' | 'CANCELLATION_REASON_REMORSE' | 'CANCELLATION_REASON_ACCIDENTAL_PURCHASE' | 'CANCELLATION_REASON_PAST_DUE' | 'CANCELLATION_REASON_ACCOUNT_CLOSED' | 'CANCELLATION_REASON_UPGRADE_DOWNGRADE' | 'CANCELLATION_REASON_USER_DELINQUENCY' | 'CANCELLATION_REASON_SYSTEM_ERROR' | 'CANCELLATION_REASON_SYSTEM_CANCEL' | 'CANCELLATION_REASON_BILLING_SYSTEM_SWITCH' | 'CANCELLATION_REASON_OTHER': Output only. The reason of the cancellation.
    - `createTime` string, google-datetime: Output only. System generated timestamp when the subscription is created. UTC timezone.
    - `cycleEndTime` string, google-datetime: Output only. The time at which the subscription is expected to be extended, in ISO 8061 format. UTC timezone. For example: "2019-08-31T17:28:54.564Z"
    - `endUserEntitled` boolean: Output only. Indicates if the subscription is entitled to the end user.
    - `freeTrialEndTime` string, google-datetime: Output only. End of the free trial period, in ISO 8061 format. For example, "2019-08-31T17:28:54.564Z". It will be set the same as createTime if no free trial promotion is specified.
    - `lineItems` SubscriptionLineItem[]: Required. The line items of the subscription.
      - `amount` Amount: Describes the amount unit including the currency code.
        - `amountMicros` string, int64: Required. Amount in micros (1_000_000 micros = 1 currency unit)
        - `currencyCode` string: Required. Currency codes in accordance with [ISO-4217 Currency Codes] (https://en.wikipedia.org/wiki/ISO_4217). For example, USD.
      - `bundleDetails` SubscriptionLineItemBundleDetails: The bundle details for a line item corresponding to a hard bundle.
        - `bundleElementDetails` SubscriptionLineItemBundleDetailsBundleElementDetails[]: Output only. The details for each element in the hard bundle.
          - `product` string: Output only. Product resource name that identifies the bundle element. The format is 'partners/{partner_id}/products/{product_id}'.
          - `userAccountLinkedTime` string, google-datetime: Output only. The time when this product is linked to an end user.
      - `description` string: Output only. Description of this line item.
      - `finiteBillingCycleDetails` FiniteBillingCycleDetails: Details for a subscription line item with finite billing cycles.
        - `billingCycleCountLimit` string, int64: The number of a subscription line item billing cycles after which billing will stop automatically.
      - `lineItemFreeTrialEndTime` string, google-datetime: Output only. The free trial end time will be populated after the line item is successfully processed. End time of the line item free trial period, in ISO 8061 format. For example, "2019-08-31T17:28:54.564Z". It will be set the same as createTime if no free trial promotion is specified.
      - `lineItemIndex` integer: Output only. A unique index of the subscription line item.
      - `lineItemPromotionSpecs` SubscriptionPromotionSpec[]: Optional. The promotions applied on the line item. It can be: - an introductory pricing promotion. - a free trial promotion. This feature is not enabled. If used, the request will be rejected. When used as input in Create or Provision API, specify its resource name only.
        - `freeTrialDuration` Duration: Describes the length of a period of a time.
          - `count` integer: number of duration units to be included.
          - `unit` 'UNIT_UNSPECIFIED' | 'MONTH' | 'DAY' | 'HOUR': The unit used for the duration
        - `introductoryPricingDetails` PromotionIntroductoryPricingDetails: The details of a introductory pricing promotion.
          - `introductoryPricingSpecs` PromotionIntroductoryPricingDetailsIntroductoryPricingSpec[]: Output only. Specifies the introductory pricing periods.
            - `discountAmount` Amount: Describes the amount unit including the currency code.
              - …
            - `discountRatioMicros` string, int64: Output only. The discount percentage in micros. For example, 50,000 represents 5%.
            - `recurrenceCount` integer: Output only. The duration of an introductory offer in billing cycles.
            - `regionCode` string: Output only. 2-letter ISO region code where the product is available in. Ex. "US".
        - `promotion` string: Required. Promotion resource name that identifies a promotion. The format is 'partners/{partner_id}/promotions/{promotion_id}'.
        - `type` 'PROMOTION_TYPE_UNSPECIFIED' | 'PROMOTION_TYPE_FREE_TRIAL' | 'PROMOTION_TYPE_INTRODUCTORY_PRICING': Output only. The type of the promotion for the spec.
      - `name` string: Identifier. Resource name of the line item. Format: partners/{partner}/subscriptions/{subscription}/lineItems/{lineItem}
      - `oneTimeRecurrenceDetails` SubscriptionLineItemOneTimeRecurrenceDetails: Details for a ONE_TIME recurrence line item.
        - `servicePeriod` ServicePeriod: A description of what time period or moment in time the product or service is being delivered over.
          - `endTime` string, google-datetime: Optional. The end time of the service period. Time is exclusive.
          - `startTime` string, google-datetime: Required. The start time of the service period. Time is inclusive.
      - `planType` 'LINE_ITEM_PLAN_TYPE_UNSPECIFIED' | 'LINE_ITEM_PLAN_TYPE_BASE' | 'LINE_ITEM_PLAN_TYPE_ADDON': Optional. Output only. The plan type of the line item.
      - `product` string: Required. Product resource name that identifies the product associated with this line item. The format is 'partners/{partner_id}/products/{product_id}'.
      - `productPayload` ProductPayload: Specifies product specific payload.
        - `googleHomePayload` GoogleHomePayload: Payload specific for Google Home products.
          - `attachedToGoogleStructure` boolean: Output only. This identifies whether the subscription is attached to a Google Home structure.
          - `googleStructureId` string: Optional. Structure identifier on Google side.
          - `partnerStructureId` string: Optional. This identifies the structure ID on partner side that the subscription should be applied to. Only required when the partner requires structure mapping.
        - `googleOnePayload` GoogleOnePayload: Payload specific to Google One products.
          - `campaigns` string[]: Campaign attributed to sales of this subscription.
          - `offering` 'OFFERING_UNSPECIFIED' | 'OFFERING_VAS_BUNDLE' | 'OFFERING_VAS_STANDALONE' | 'OFFERING_HARD_BUNDLE' | 'OFFERING_SOFT_BUNDLE': The type of offering the subscription was sold by the partner. e.g. VAS.
          - `salesChannel` 'CHANNEL_UNSPECIFIED' | 'CHANNEL_RETAIL' | 'CHANNEL_ONLINE_WEB' | 'CHANNEL_ONLINE_ANDROID_APP' | 'CHANNEL_ONLINE_IOS_APP': The type of sales channel through which the subscription was sold.
          - `storeId` string: The identifier for the partner store where the subscription was sold.
        - `youtubePayload` YoutubePayload: Payload specific to Youtube products.
          - `accessEndTime` string, google-datetime: Output only. The access expiration time for this line item.
          - `partnerEligibilityIds` string[]: The list of eligibility_ids which are applicable for the line item.
          - `partnerPlanType` 'PARTNER_PLAN_TYPE_UNSPECIFIED' | 'PARTNER_PLAN_TYPE_STANDALONE' | 'PARTNER_PLAN_TYPE_HARD_BUNDLE' | 'PARTNER_PLAN_TYPE_SOFT_BUNDLE': Optional. Specifies the plan type offered to the end user by the partner.
      - `recurrenceType` 'LINE_ITEM_RECURRENCE_TYPE_UNSPECIFIED' | 'LINE_ITEM_RECURRENCE_TYPE_PERIODIC' | 'LINE_ITEM_RECURRENCE_TYPE_ONE_TIME': Output only. The recurrence type of the line item.
      - `state` 'LINE_ITEM_STATE_UNSPECIFIED' | 'LINE_ITEM_STATE_ACTIVE' | 'LINE_ITEM_STATE_INACTIVE' | 'LINE_ITEM_STATE_NEW' | 'LINE_ITEM_STATE_ACTIVATING' | 'LINE_ITEM_STATE_DEACTIVATING' | 'LINE_ITEM_STATE_WAITING_TO_DEACTIVATE' | 'LINE_ITEM_STATE_OFF_CYCLE_CHARGING': Output only. The state of the line item.
    - `migrationDetails` SubscriptionMigrationDetails: Describes the details of the migrated subscription.
      - `legacyCreationTime` string, google-datetime: Output only. The creation time of the migrated subscription in the legacy system.
      - `migratedSubscriptionId` string: Output only. The migrated subscription id in the legacy system.
    - `name` string: Identifier. Resource name of the subscription. It will have the format of "partners/{partner_id}/subscriptions/{subscription_id}". This is available for authorizeAddon, but otherwise is response only.
    - `partnerUserToken` string: Required. Identifier of the end-user in partner’s system. The value is restricted to 63 ASCII characters at the maximum.
    - `processingState` 'PROCESSING_STATE_UNSPECIFIED' | 'PROCESSING_STATE_CANCELLING' | 'PROCESSING_STATE_RECURRING' | 'PROCESSING_STATE_RESUMING' | 'PROCESSING_STATE_SUSPENDING': Output only. Describes the processing state of the subscription. See more details at [the lifecycle of a subscription](/payments/reseller/subscription/reference/index/Receive.Notifications#payments-subscription-lifecycle).
    - `products` string[]: Optional. Deprecated: consider using `line_items` as the input. Required. Resource name that identifies the purchased products. The format will be 'partners/{partner_id}/products/{product_id}'.
    - `promotionSpecs` SubscriptionPromotionSpec[]: Optional. Subscription-level promotions. Only free trial is supported on this level. It determines the first renewal time of the subscription to be the end of the free trial period. Specify the promotion resource name only when used as input.
      - `freeTrialDuration` Duration: Describes the length of a period of a time.
        - `count` integer: number of duration units to be included.
        - `unit` 'UNIT_UNSPECIFIED' | 'MONTH' | 'DAY' | 'HOUR': The unit used for the duration
      - `introductoryPricingDetails` PromotionIntroductoryPricingDetails: The details of a introductory pricing promotion.
        - `introductoryPricingSpecs` PromotionIntroductoryPricingDetailsIntroductoryPricingSpec[]: Output only. Specifies the introductory pricing periods.
          - `discountAmount` Amount: Describes the amount unit including the currency code.
            - `amountMicros` string, int64: Required. Amount in micros (1_000_000 micros = 1 currency unit)
            - `currencyCode` string: Required. Currency codes in accordance with [ISO-4217 Currency Codes] (https://en.wikipedia.org/wiki/ISO_4217). For example, USD.
          - `discountRatioMicros` string, int64: Output only. The discount percentage in micros. For example, 50,000 represents 5%.
          - `recurrenceCount` integer: Output only. The duration of an introductory offer in billing cycles.
          - `regionCode` string: Output only. 2-letter ISO region code where the product is available in. Ex. "US".
      - `promotion` string: Required. Promotion resource name that identifies a promotion. The format is 'partners/{partner_id}/promotions/{promotion_id}'.
      - `type` 'PROMOTION_TYPE_UNSPECIFIED' | 'PROMOTION_TYPE_FREE_TRIAL' | 'PROMOTION_TYPE_INTRODUCTORY_PRICING': Output only. The type of the promotion for the spec.
    - `promotions` string[]: Optional. Deprecated: consider using the top-level `promotion_specs` as the input. Optional. Resource name that identifies one or more promotions that can be applied on the product. A typical promotion for a subscription is Free trial. The format will be 'partners/{partner_id}/promotions/{promotion_id}'.
    - `purchaseTime` string, google-datetime: Optional. The timestamp when the user transaction was made with the Partner. Specify for the case of "bundle with choice", and it must be before the provision_time (when the user makes a selection).
    - `redirectUri` string: Output only. The place where partners should redirect the end-user to after creation. This field might also be populated when creation failed. However, Partners should always prepare a default URL to redirect the user in case this field is empty.
    - `renewalTime` string, google-datetime: Output only. The time at which the subscription is expected to be renewed by Google - a new charge will be incurred and the service entitlement will be renewed. A non-immediate cancellation will take place at this time too, before which, the service entitlement for the end user will remain valid. UTC timezone in ISO 8061 format. For example: "2019-08-31T17:28:54.564Z"
    - `serviceLocation` Location: Describes a location of an end user.
      - `postalCode` string: The postal code this location refers to. Ex. "94043"
      - `regionCode` string: 2-letter ISO region code for current content region. Ex. “US” Please refers to: https://en.wikipedia.org/wiki/ISO_3166-1
    - `state` 'STATE_UNSPECIFIED' | 'STATE_CREATED' | 'STATE_ACTIVE' | 'STATE_CANCELLED' | 'STATE_IN_GRACE_PERIOD' | 'STATE_CANCEL_AT_END_OF_CYCLE' | 'STATE_SUSPENDED': Output only. Describes the state of the subscription. See more details at [the lifecycle of a subscription](/payments/reseller/subscription/reference/index/Receive.Notifications#payments-subscription-lifecycle).
    - `updateTime` string, google-datetime: Output only. System generated timestamp when the subscription is most recently updated. UTC timezone.
    - `upgradeDowngradeDetails` SubscriptionUpgradeDowngradeDetails: Details about the previous subscription that this new subscription upgrades/downgrades from.
      - `billingCycleSpec` 'BILLING_CYCLE_SPEC_UNSPECIFIED' | 'BILLING_CYCLE_SPEC_ALIGN_WITH_PREVIOUS_SUBSCRIPTION' | 'BILLING_CYCLE_SPEC_START_IMMEDIATELY' | 'BILLING_CYCLE_SPEC_DEFERRED_TO_NEXT_RECURRENCE': Required. Specifies the billing cycle spec for the new upgraded/downgraded subscription.
      - `previousSubscriptionId` string: Required. The previous subscription id to be replaced. The format can be one of the following: 1. `subscription_id`: the old subscription id under the same partner_id. 2. `partners/{partner_id}/subscriptions/{subscription_id}`. A different partner_id is allowed. But they must be under the same partner group.

---

[API](https://skmtc.dev/google/apis/paymentsresellersubscription.md) - [All operations](https://skmtc.dev/google/apis/paymentsresellersubscription/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/paymentsresellersubscription/revisions/88dd477f884b?raw)
