Stay organized with collections
Save and categorize content based on your preferences.
Before you create a new customer account, consider the following:
Country code restrictions might apply. To confirm that the customer's
country is approved for resale, check the Partner Sales Console.
If the account is created by upgrading from a consumer Gmail
account to a business email with a domain name, make sure that the account
has additional Google Workspace settings unlocked. For more information, see
Create business emails for your team
and
Create a business email alias.
Create a customer account
To create a customer account, use the following POST request and
include the authorization token:
POST https://reseller.googleapis.com/apps/reseller/v1/customers
Within the new customer's account,
create a user.
If the response returns an HTTP 409 Conflict status code, the
customerId already exists. Before registering the customer account, you must
transfer the customer's subscriptions.
Promote the
user to the super administrator role.
When creating the administrator account, you can either generate a temporary
random password or prompt the customer to provide a password.
Notify the customer that they must sign-in to the Admin console and
sign the Google Workspace via Reseller agreement in order to activate
their account. Resellers are prohibited from signing the Terms of Service on
the customer's behalf.
Types of customers
You can create two kinds of customers on Google Workspace:
Domain-verified customers. These customers need Gmail and need
full administrator access. When you create this type of customer, set the
customerType to domain.
Email-verified customers. These customers don't own or manage their
domain. When you create this type of customer, set the customerType to
team. These type of customers can purchase the
Essentials and Enterprise Essentials
editions of Google Workspace.
The following JSON request body is an example of a domain-verified customer:
A customer's default language is only applied to new users when they're
created. Existing users retain their current language even after you
update the default language. Therefore, you must set the customer default
language before you create any users.
A newly created customer has a default language of English. To change the
default language, use the
PATCH
or
UPDATE
calls from the Directory API
Customers
endpoint.
Use the Directory API to update the default language value for a customer:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-04 UTC."],[],[],null,["Before you create a new customer account, consider the following:\n\n- Country code restrictions might apply. To confirm that the customer's country is approved for resale, check [the Partner Sales Console](https://channelservices.cloud.google.com/).\n- If the account is created by upgrading from a consumer Gmail account to a business email with a domain name, make sure that the account has additional Google Workspace settings unlocked. For more information, see [Create business emails for your team](https://support.google.com/work/mail/faq/6233331#6241806) and [Create a business email alias](https://support.google.com/work/mail/faq/6233331#6243069).\n\nCreate a customer account\n\n1. To create a customer account, use the following `POST` request and\n include the authorization token:\n\n POST https://reseller.googleapis.com/apps/reseller/v1/customers\n\n2. Within the new customer's account,\n [create a user](/workspace/admin/directory/v1/guides/manage-users#create_user).\n If the response returns an HTTP `409 Conflict` status code, the\n `customerId` already exists. Before registering the customer account, you must\n [transfer the customer's subscriptions](/workspace/admin/reseller/v1/how-tos/manage_subscriptions#transfer_a_subscription).\n\n3. If applicable, [change the customer's default launguage](#change_a_customers_default_language).\n\n4. Promote the\n [user to the super administrator role](/workspace/admin/directory/v1/guides/manage-users#make_admin).\n When creating the administrator account, you can either generate a temporary\n random password or prompt the customer to provide a password.\n\n5. Notify the customer that they must sign-in to the Admin console and\n sign the Google Workspace via Reseller agreement in order to activate\n their account. Resellers are prohibited from signing the Terms of Service on\n the customer's behalf.\n\nTypes of customers\n\nYou can create two kinds of customers on Google Workspace:\n\n- **Domain-verified customers** . These customers need Gmail and need full administrator access. When you create this type of customer, set the `customerType` to `domain`.\n- **Email-verified customers** . These customers don't own or manage their domain. When you create this type of customer, set the `customerType` to `team`. These type of customers can purchase the [Essentials and Enterprise Essentials](https://support.google.com/channelservices/answer/9398241?ref_topic=9755957) editions of Google Workspace.\n\nThe following JSON request body is an example of a domain-verified customer: \n\n```\n{\n \"customerDomain\": \"DOMAIN_NAME\",\n \"customerType\": \"domain\",\n \"postalAddress\": {\n \"contactName\": \"NAME\",\n \"organizationName\": \"ORGANIZATION_NAME\",\n \"postalCode\": \"POSTAL_CODE\",\n \"countryCode\": \"COUNTRY_CODE\"\n },\n \"alternateEmail\": \"EMAIL_ADDRESS\"\n}\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eDOMAIN_NAME\u003c/var\u003e: your customer's domain---for example, `example.com`\n- \u003cvar translate=\"no\"\u003eNAME\u003c/var\u003e: your customer's name---for example, `Alex Cruz`.\n- \u003cvar translate=\"no\"\u003eORGANIZATION_NAME\u003c/var\u003e: your customer's organization name---for example, `Example Organization`.\n- \u003cvar translate=\"no\"\u003ePOSTAL_CODE\u003c/var\u003e: your customer's ZIP or postal code---for example, `94043`.\n- \u003cvar translate=\"no\"\u003eCOUNTRY_CODE\u003c/var\u003e: your customer's 2 character [ISO country code](https://countrycode.org/).\n- \u003cvar translate=\"no\"\u003eEMAIL_ADDRESS\u003c/var\u003e: your customer's email address---for example, `cruz@example.com`.\n\nA successful response returns an HTTP `200` status code and the new customer's\ninformation: \n\n```\n{\n \"kind\": \"reseller#customer\",\n \"customerId\": \"CUSTOMER_ID\",\n \"customerDomain\": \"DOMAIN_NAME\",\n \"customerType\": \"domain\",\n \"postalAddress\": {\n \"kind\": \"customers#address\",\n \"contactName\": \"NAME\",\n \"organizationName\": \"ORGANIZATION_NAME\",\n \"postalCode\": \"POSTAL_CODE\",\n \"countryCode\": \"COUNTRY_CODE\",\n },\n \"alternateEmail\": \"EMAIL_ADDRESS\"\n}\n```\n\nThe following JSON request body is an example of an email-verified customer: \n\n```\n{\n \"customerDomain\": \"DOMAIN_NAME\",\n \"customerType\": \"team\",\n \"primaryAdmin\": {\n \"primaryEmail\": \"EMAIL_ADDRESS\"\n },\n \"postalAddress\": {\n \"contactName\": \"NAME\",\n \"organizationName\": \"ORGANIZATION_NAME\",\n \"postalCode\": \"POSTAL_CODE\",\n \"countryCode\": \"COUNTRY_CODE\"\n },\n \"alternateEmail\": \"EMAIL_ADDRESS\"\n}\n```\n\nA successful response returns an HTTP `200` status code and the new customer's\ninformation: \n\n```\n{\n \"kind\": \"reseller#customer\",\n \"customerId\": \"CUSTOMER_ID\",\n \"customerDomain\": \"DOMAIN_NAME,\n \"customerType\": \"team\",\n \"primaryAdmin\": {\n \"primaryEmail\": \"EMAIL_ADDRESS\"\n },\n \"postalAddress\": {\n \"kind\": \"customers#address\",\n \"contactName\": \"NAME\",\n \"organizationName\": \"ORGANIZATION_NAME\",\n \"postalCode\": \"POSTAL_CODE\",\n \"countryCode\": \"COUNTRY_CODE\",\n },\n \"alternateEmail\": \"EMAIL_ADDRESS\"\n}\n```\n\nChange a customer's default language\n\nA customer's default language is only applied to *new* users when they're\ncreated. Existing users retain their current language even after you\nupdate the default language. Therefore, you must set the customer default\nlanguage before you create any users.\n\nA newly created customer has a default language of English. To change the\ndefault language, use the\n[`PATCH`](/workspace/admin/directory/v1/reference/customers/patch)\nor\n[`UPDATE`](/workspace/admin/directory/v1/reference/customers/update)\ncalls from the Directory API\n[Customers](/workspace/admin/directory/v1/reference/customers)\nendpoint.\n\nUse the Directory API to update the default `language` value for a customer: \n\n```\nPATCH https://reseller.googleapis.com/admin/directory/v1/customers/CUSTOMER_ID\n```\n\nInclude the following JSON request body: \n\n```\n{\n \"language\":\"LANGUAGE_CODE\"\n}\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eCUSTOMER_ID\u003c/var\u003e: a unique identifier for your customer---for example, `C0123456`\n- \u003cvar translate=\"no\"\u003eLANGUAGE_CODE\u003c/var\u003e: an accepted [language code](/workspace/admin/directory/v1/languages) ---for example, `es` for Spanish.\n\nA successful JSON response returns an HTTP `200` status code and the updated\ncustomer resource: \n\n```\n{\n \"alternateEmail\": \"EMAIL_ADDRESS\",\n \"customerCreationTime\": \"2022-12-12T23:04:10.620Z\",\n \"customerDomain\": \"DOMAIN_NAME\",\n \"id\": \"CUSTOMER_ID\",\n \"kind\": \"admin#directory#customer\",\n \"language\": \"LANGUAGE_CODE\",\n \"postalAddress\": {\n \"contactName\": \"NAME\",\n \"countryCode\": \"COUNTRY_CODE\",\n \"organizationName\": \"ORGANIZATION_NAME\",\n \"postalCode\": \"POSTAL_CODE\"\n }\n}\n```\n\nNext steps\n\n- [Reseller API common errors](/workspace/admin/reseller/v1/support/reseller_api_common_errors)\n- [Directory API common errors](/workspace/admin/reseller/v1/support/directory_api_common_errors)"]]