INVALID_ARGUMENT: Required request parameters are missing or invalid.
NOT_FOUND: The customer or offer resource was not found.
ALREADY_EXISTS: The SKU was already transferred for the customer.
CONDITION_NOT_MET or FAILED_PRECONDITION:
The SKU requires domain verification to transfer, but the domain is not verified.
An Add-On SKU (example, Vault or Drive) is missing the pre-requisite SKU (example, G Suite Basic).
(Developer accounts only) Reseller and resold domain must meet the following naming requirements:
Domain names must start with goog-test.
Domain names must include the reseller domain.
Specify all transferring entitlements.
INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support.
UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support.
Return value: The ID of a long-running operation.
To get the results of the operation, call the operations.get method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.
HTTP request
POST https://cloudchannel.googleapis.com/v1alpha1/{parent=accounts/*/customers/*}:transferEntitlements
Required. The resource name of the reseller's customer account that will receive transferred entitlements. Parent uses the format: accounts/{account_id}/customers/{customer_id}
Request body
The request body contains data with the following structure:
Required. The new entitlements to create or transfer.
enableDelegatedAdmin (deprecated)
boolean
Optional. If true, grants delegated admin rights for fulfilled entitlements to the channel partner. Applicable only if you provide an Entitlement.channel_partner_id.
authToken
string
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.
externalCorrelationId
string
Optional. An optional identifier in the external system that partners can use to correlate a Channel Services purchase transaction for the entitlement.
requestId
string
Optional. You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it's complete.
For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request.
The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
Response body
If successful, the response body contains an instance of Operation.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-19 UTC."],[[["\u003cp\u003eThis endpoint allows transferring customer entitlements to a new reseller, requiring the customer to belong to the reseller and the reseller to be authorized for the specific product.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003ePOST\u003c/code\u003e request to \u003ccode\u003ehttps://cloudchannel.googleapis.com/v1alpha1/{parent=accounts/*/customers/*}:transferEntitlements\u003c/code\u003e initiates the entitlement transfer, utilizing gRPC Transcoding syntax.\u003c/p\u003e\n"],["\u003cp\u003eThe request body must include an array of \u003ccode\u003eentitlements\u003c/code\u003e along with other optional fields such as \u003ccode\u003eenableDelegatedAdmin\u003c/code\u003e, \u003ccode\u003eauthToken\u003c/code\u003e, \u003ccode\u003eexternalCorrelationId\u003c/code\u003e, and \u003ccode\u003erequestId\u003c/code\u003e to provide additional context or specific conditions for the transfer.\u003c/p\u003e\n"],["\u003cp\u003eSeveral error codes may occur during the transfer process, including \u003ccode\u003ePERMISSION_DENIED\u003c/code\u003e, \u003ccode\u003eINVALID_ARGUMENT\u003c/code\u003e, \u003ccode\u003eNOT_FOUND\u003c/code\u003e, \u003ccode\u003eALREADY_EXISTS\u003c/code\u003e, \u003ccode\u003eCONDITION_NOT_MET\u003c/code\u003e, \u003ccode\u003eFAILED_PRECONDITION\u003c/code\u003e, \u003ccode\u003eINTERNAL\u003c/code\u003e, and \u003ccode\u003eUNKNOWN\u003c/code\u003e, indicating various issues with the request or server-side processing.\u003c/p\u003e\n"],["\u003cp\u003eUpon successful execution, the response returns an operation ID, which can be used with the \u003ccode\u003eoperations.get\u003c/code\u003e method of CloudChannelOperationsService to retrieve the final result of the transfer operation.\u003c/p\u003e\n"]]],[],null,["# Method: accounts.customers.transferEntitlements\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\nTransfers customer entitlements to new reseller.\n\nPossible error codes:\n\n- PERMISSION_DENIED:\n - The customer doesn't belong to the reseller.\n - The reseller is not authorized to transact on this Product. See \u003chttps://support.google.com/channelservices/answer/9759265\u003e\n- INVALID_ARGUMENT: Required request parameters are missing or invalid.\n- NOT_FOUND: The customer or offer resource was not found.\n- ALREADY_EXISTS: The SKU was already transferred for the customer.\n- CONDITION_NOT_MET or FAILED_PRECONDITION:\n - The SKU requires domain verification to transfer, but the domain is not verified.\n - An Add-On SKU (example, Vault or Drive) is missing the pre-requisite SKU (example, G Suite Basic).\n - (Developer accounts only) Reseller and resold domain must meet the following naming requirements:\n - Domain names must start with goog-test.\n - Domain names must include the reseller domain.\n - Specify all transferring entitlements.\n- INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support.\n- UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support.\n\nReturn value: The ID of a long-running operation.\n\nTo get the results of the operation, call the operations.get method of CloudChannelOperationsService. The Operation metadata will contain an instance of `OperationMetadata`.\n\n### HTTP request\n\n`POST https://cloudchannel.googleapis.com/v1alpha1/{parent=accounts/*/customers/*}:transferEntitlements`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n### Request body\n\nThe request body contains data with the following structure:\n\n### Response body\n\nIf successful, the response body contains an instance of [Operation](/channel/docs/reference/rest/Shared.Types/ListOperationsResponse#Operation).\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/apps.order`\n\nFor more information, see the [Authentication Overview](/docs/authentication#authorization-gcp)."]]