Method: subscriptions.changePlan

Updates a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments.

How a plan is updated differs depending on the plan and the products. For more information, see the description in manage subscriptions.

HTTP request


The URL uses gRPC Transcoding syntax.

Path parameters



This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.



This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method.

Request body

The request body contains an instance of ChangePlanRequest.

Response body

If successful, the response body contains an instance of Subscription.

Authorization scopes

Requires the following OAuth scope:


For more information, see the Authorization guide.


JSON template for the subscriptions.changePlan rpc request.

JSON representation
  "kind": string,
  "planName": string,
  "seats": {
    object (Seats)
  "purchaseOrderId": string,
  "dealCode": string


Identifies the resource as a subscription change plan request. Value: subscriptions#changePlanRequest



The planName property is required. This is the name of the subscription's payment plan. For more information about the Google payment plans, see API concepts.

Possible values are:

  • ANNUAL_MONTHLY_PAY - The annual commitment plan with monthly payments
  • ANNUAL_YEARLY_PAY - The annual commitment plan with yearly payments
  • FLEXIBLE - The flexible plan
  • TRIAL - The 30-day free trial plan


object (Seats)

This is a required property. The seats property is the number of user seat licenses.



This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.



Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in changePlan request in order to receive discounted rate. This property is optional. If a deal code has already been added to a subscription, this property may be left empty and the existing discounted rate will still apply (if not empty, only provide the deal code that is already present on the subscription). If a deal code has never been added to a subscription and this property is left blank, regular pricing will apply.