Method: accounts.listTransferableSkus

List TransferableSkus of a customer based on the Cloud Identity ID or Customer Name in the request.

Use this method to list the entitlements information of an unowned customer. You should provide the customer's Cloud Identity ID or Customer Name.

Possible error codes:

  • PERMISSION_DENIED:
    • The customer doesn't belong to the reseller and has no auth token.
    • The supplied auth token is invalid.
    • The reseller account making the request is different from the reseller account in the query.
  • INVALID_ARGUMENT: Required request parameters are missing or invalid.

Return value: A list of the customer's TransferableSku.

HTTP request

POST https://cloudchannel.googleapis.com/v1alpha1/{parent=accounts/*}:listTransferableSkus

The URL uses gRPC Transcoding syntax.

Path parameters

Parameters
parent

string

Required. The reseller account's resource name. Parent uses the format: accounts/{account_id}

Request body

The request body contains data with the following structure:

JSON representation
{
  "pageSize": integer,
  "pageToken": string,
  "authToken": string,
  "languageCode": string,

  // Union field transferred_customer_identity can be only one of the following:
  "cloudIdentityId": string,
  "customerName": string
  // End of list of possible types for union field transferred_customer_identity.
}
Fields
pageSize

integer

The requested page size. Server might return fewer results than requested. If unspecified, returns at most 100 SKUs. The maximum value is 1000; the server will coerce values above 1000. Optional.

pageToken

string

A token for a page of results other than the first page. Obtained using ListTransferableSkusResponse.next_page_token of the previous CloudChannelService.ListTransferableSkus call. Optional.

authToken

string

Optional. The super admin of the resold customer generates this token to authorize a reseller to access their Cloud Identity and purchase entitlements on their behalf. You can omit this token after authorization. See https://support.google.com/a/answer/7643790 for more details.

languageCode

string

The BCP-47 language code. For example, "en-US". The response will localize in the corresponding language code, if specified. The default value is "en-US". Optional.

Union field transferred_customer_identity. Specifies the identity of transferred customer. Either a cloud_identity_id of the customer or the customer name is required to look up transferable SKUs. transferred_customer_identity can be only one of the following:
cloudIdentityId

string

Customer's Cloud Identity ID

customerName

string

A reseller is required to create a customer and use the resource name of the created customer here. Customer_name uses the format: accounts/{account_id}/customers/{customer_id}

Response body

Response message for CloudChannelService.ListTransferableSkus.

If successful, the response body contains data with the following structure:

JSON representation
{
  "transferableSkus": [
    {
      object (TransferableSku)
    }
  ],
  "nextPageToken": string
}
Fields
transferableSkus[]

object (TransferableSku)

Information about existing SKUs for a customer that needs a transfer.

nextPageToken

string

A token to retrieve the next page of results. Pass to ListTransferableSkusRequest.page_token to obtain that page.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/apps.order

For more information, see the Authentication Overview.

TransferableSku

TransferableSku represents information a reseller needs to view existing provisioned services for a customer that they do not own. Read-only.

JSON representation
{
  "productId": string,
  "skuId": string,
  "numUnits": integer,
  "maxUnits": integer,
  "purchaseEligibility": {
    object (PurchaseEligibility)
  },
  "isCommitment": boolean,
  "commitmentEndTimestamp": string,
  "assignedUnits": integer,
  "transferEligibility": {
    object (TransferEligibility)
  },
  "skuDisplayName": string,
  "sku": {
    object (Sku)
  },
  "legacySku": {
    object (Sku)
  }
}
Fields
productId
(deprecated)

string

The product pertaining to the provisioning resource as specified in the Offer. Deprecated: Use sku.product.name instead.

skuId
(deprecated)

string

The SKU pertaining to the provisioning resource as specified in the Offer. Deprecated: Use sku.name instead.

numUnits
(deprecated)

integer

Number of units for a commitment-based Offer. For example, for seat-based offers, this would be the number of seats; for license-based offers, this would be the number of licenses. Deprecated: Use accounts.listTransferableOffers API instead.

maxUnits
(deprecated)

integer

Maximum number of units for a non-commitment-based offer, such as Flexible or Trial. Deprecated: Use accounts.listTransferableOffers API instead.

purchaseEligibility
(deprecated)

object (PurchaseEligibility)

Describes the purchase eligibility of a SKU. Deprecated: Use transferEligibility instead.

isCommitment
(deprecated)

boolean

Whether a transferable SKU is commitment-based or not. Deprecated: Use accounts.listTransferableOffers API instead.

commitmentEndTimestamp
(deprecated)

string (Timestamp format)

Commitment end timestamp. Deprecated: Use accounts.listTransferableOffers API instead.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

assignedUnits
(deprecated)

integer

The current number of users that are assigned a license for the skuId. This cannot be reduced during a transfer. Deprecated: Use accounts.listTransferableOffers API instead.

transferEligibility

object (TransferEligibility)

Describes the transfer eligibility of a SKU.

skuDisplayName
(deprecated)

string

Human readable SKU name. This field can be used by resellers if the transferable SKU is not available in their offers. Deprecated: Use sku.marketing_info.display_name instead.

sku

object (Sku)

The SKU pertaining to the provisioning resource as specified in the Offer.

legacySku

object (Sku)

Optional. The customer to transfer has an entitlement with the populated legacy SKU.

PurchaseEligibility

Specifies purchase eligibility of a SKU.

JSON representation
{
  "isEligible": boolean,
  "description": string,
  "ineligibilityReason": enum (Reason)
}
Fields
isEligible

boolean

Whether reseller is eligible to purchase the SKU.

description

string

Localized description if reseller is not eligible to purchase the SKU.

ineligibilityReason

enum (Reason)

Specified the reason for ineligibility.

Reason

Reason of ineligibility.

Enums
REASON_UNSPECIFIED Not used.
ACCEPT_TOS Reseller needs to accept TOS before purchasing the SKU.

TransferEligibility

Specifies transfer eligibility of a SKU.

JSON representation
{
  "isEligible": boolean,
  "description": string,
  "ineligibilityReason": enum (Reason)
}
Fields
isEligible

boolean

Whether reseller is eligible to transfer the SKU.

description

string

Localized description if reseller is not eligible to transfer the SKU.

ineligibilityReason

enum (Reason)

Specified the reason for ineligibility.

Reason

Reason of ineligibility.

Enums
REASON_UNSPECIFIED Not used.
PENDING_TOS_ACCEPTANCE Reseller needs to accept TOS before transferring the SKU.
SKU_NOT_ELIGIBLE Reseller not eligible to sell the SKU.
SKU_SUSPENDED SKU subscription is suspended
CHANNEL_PARTNER_NOT_AUTHORIZED_FOR_SKU The reseller is not authorized to transact on this Product. See https://support.google.com/channelservices/answer/9759265