Required request parameters are missing or invalid.
There is already a customer entitlement for a SKU from the same product family.
INVALID_VALUE: Make sure the OfferId is valid. If it is, contact Google Channel support for further troubleshooting.
NOT_FOUND: The customer or offer resource was not found.
ALREADY_EXISTS:
The SKU was already purchased for the customer.
The customer's primary email already exists. Retry after changing the customer's primary contact email.
CONDITION_NOT_MET or FAILED_PRECONDITION:
The domain required for purchasing a SKU has not been verified.
A pre-requisite SKU required to purchase an Add-On SKU is missing. For example, Google Workspace Business Starter is required to purchase Vault or Drive.
(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.
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/v1/{parent=accounts/*/customers/*}/entitlements
Required. The resource name of the reseller's customer account in which to create the entitlement. Parent uses the format: accounts/{account_id}/customers/{customer_id}
Request body
The request body contains data with the following structure:
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 a newly created 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 API call creates a new entitlement for a specified customer within a reseller's account using a POST request.\u003c/p\u003e\n"],["\u003cp\u003eThe request URL uses gRPC Transcoding syntax and requires a \u003ccode\u003eparent\u003c/code\u003e path parameter in the format \u003ccode\u003eaccounts/{account_id}/customers/{customer_id}\u003c/code\u003e to identify the customer.\u003c/p\u003e\n"],["\u003cp\u003eThe request body must include an \u003ccode\u003eentitlement\u003c/code\u003e object, which specifies the details of the entitlement to be created, and can optionally include a unique \u003ccode\u003erequestId\u003c/code\u003e for idempotency.\u003c/p\u003e\n"],["\u003cp\u003ePossible error codes include \u003ccode\u003ePERMISSION_DENIED\u003c/code\u003e, \u003ccode\u003eINVALID_ARGUMENT\u003c/code\u003e, \u003ccode\u003eNOT_FOUND\u003c/code\u003e, \u003ccode\u003eALREADY_EXISTS\u003c/code\u003e, and \u003ccode\u003eINTERNAL\u003c/code\u003e, each indicating a specific issue that may have occurred.\u003c/p\u003e\n"],["\u003cp\u003eUpon success, the API returns the ID of a long-running operation, which can be tracked using the \u003ccode\u003eoperations.get\u003c/code\u003e method of \u003ccode\u003eCloudChannelOperationsService\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Method: accounts.customers.entitlements.create\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\nCreates an entitlement for a customer.\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:\n - Required request parameters are missing or invalid.\n - There is already a customer entitlement for a SKU from the same product family.\n- INVALID_VALUE: Make sure the OfferId is valid. If it is, contact Google Channel support for further troubleshooting.\n- NOT_FOUND: The customer or offer resource was not found.\n- ALREADY_EXISTS:\n - The SKU was already purchased for the customer.\n - The customer's primary email already exists. Retry after changing the customer's primary contact email.\n- CONDITION_NOT_MET or FAILED_PRECONDITION:\n - The domain required for purchasing a SKU has not been verified.\n - A pre-requisite SKU required to purchase an Add-On SKU is missing. For example, Google Workspace Business Starter is required to purchase Vault or Drive.\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- 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/v1/{parent=accounts/*/customers/*}/entitlements`\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 a newly created 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)."]]