---
title: "POST /v1/enterprises"
method: POST
path: "/v1/enterprises"
tags: ["enterprises"]
---

# POST /v1/enterprises

`POST /v1/enterprises`

Creates an enterprise. This is the last step in the enterprise signup flow. See also: SigninDetail

## Query parameters

- `agreementAccepted` boolean
- `enterpriseToken` string
- `projectId` string
- `signupUrlName` string

## Request body

- Enterprise — The configuration applied to an enterprise.
  - `managedGoogleDomainType` 'MANAGED_GOOGLE_DOMAIN_TYPE_UNSPECIFIED' | 'TYPE_TEAM' | 'TYPE_DOMAIN' — Output only. The type of managed Google domain.
  - `primaryColor` integer — A color in RGB format that indicates the predominant color to display in the device management app UI. The color components are stored as follows: (red << 16) | (green << 8) | blue, where the value of each component is between 0 and 255, inclusive.
  - `pubsubTopic` string — The topic which Pub/Sub notifications are published to, in the form projects/{project}/topics/{topic}. This field is only required if Pub/Sub notifications are enabled.
  - `logo` ExternalData — Data hosted at an external location. The data is to be downloaded by Android Device Policy and verified against the hash.
    - `sha256Hash` string — The base-64 encoded SHA-256 hash of the content hosted at url. If the content doesn't match this hash, Android Device Policy won't use the data.
    - `url` string — The absolute URL to the data, which must use either the http or https scheme. Android Device Policy doesn't provide any credentials in the GET request, so the URL must be publicly accessible. Including a long, random component in the URL may be used to prevent attackers from discovering the URL.
  - `enterpriseDisplayName` string — The name of the enterprise displayed to users. This field has a maximum length of 100 characters.
  - `termsAndConditions` TermsAndConditions[] — Terms and conditions that must be accepted when provisioning a device for this enterprise. A page of terms is generated for each value in this list.
    - `content` UserFacingMessage — Provides a user-facing message with locale info. The maximum message length is 4096 characters.
      - `localizedMessages` object — A map containing pairs, where locale is a well-formed BCP 47 language (https://www.w3.org/International/articles/language-tags/) code, such as en-US, es-ES, or fr.
      - `defaultMessage` string — The default message displayed if no localized message is specified or the user's locale doesn't match with any of the localized messages. A default message must be provided if any localized messages are provided.
    - `header` UserFacingMessage — Provides a user-facing message with locale info. The maximum message length is 4096 characters.
      - `localizedMessages` object — A map containing pairs, where locale is a well-formed BCP 47 language (https://www.w3.org/International/articles/language-tags/) code, such as en-US, es-ES, or fr.
      - `defaultMessage` string — The default message displayed if no localized message is specified or the user's locale doesn't match with any of the localized messages. A default message must be provided if any localized messages are provided.
  - `name` string — The name of the enterprise which is generated by the server during creation, in the form enterprises/{enterpriseId}.
  - `contactInfo` ContactInfo — Contact details for managed Google Play enterprises.
    - `euRepresentativeName` string — The name of the EU representative.
    - `contactEmail` string — Email address for a point of contact, which will be used to send important announcements related to managed Google Play.
    - `dataProtectionOfficerPhone` string — The phone number of the data protection officer The phone number is validated but not verified.
    - `dataProtectionOfficerEmail` string — The email of the data protection officer. The email is validated but not verified.
    - `dataProtectionOfficerName` string — The name of the data protection officer.
    - `euRepresentativeEmail` string — The email of the EU representative. The email is validated but not verified.
    - `euRepresentativePhone` string — The phone number of the EU representative. The phone number is validated but not verified.
  - `appAutoApprovalEnabled` boolean — Deprecated and unused.
  - `googleAuthenticationSettings` GoogleAuthenticationSettings — Contains settings for Google-provided user authentication.
    - `googleAuthenticationRequired` 'GOOGLE_AUTHENTICATION_REQUIRED_UNSPECIFIED' | 'NOT_REQUIRED' | 'REQUIRED' — Output only. Whether users need to be authenticated by Google during the enrollment process. IT admin can specify if Google authentication is enabled for the enterprise for knowledge worker devices. This value can be set only via the Google Admin Console. Google authentication can be used with signin_url In the case where Google authentication is required and a signin_url is specified, Google authentication will be launched before signin_url. This value is overridden by EnrollmentToken.googleAuthenticationOptions and SigninDetail.googleAuthenticationOptions, if they are set.
  - `signinDetails` SigninDetail[] — Sign-in details of the enterprise.
    - `tokenTag` string — An EMM-specified metadata to distinguish between instances of SigninDetail.
    - `signinUrl` string — Sign-in URL for authentication when device is provisioned with a sign-in enrollment token. The sign-in endpoint should finish authentication flow with a URL in the form of https://enterprise.google.com/android/enroll?et= for a successful login, or https://enterprise.google.com/android/enroll/invalid for a failed login.
    - `qrCode` string — A JSON string whose UTF-8 representation can be used to generate a QR code to enroll a device with this enrollment token. To enroll a device using NFC, the NFC record must contain a serialized java.util.Properties representation of the properties in the JSON. This is a read-only field generated by the server.
    - `googleAuthenticationOptions` SigninDetailGoogleAuthenticationOptions — Options for Google authentication during the enrollment.These options control whether the Google authentication screen is shown, and whether it can be skipped, at the start of the sign-in flow. More requirements can be enforced by EnrollmentToken.googleAuthenticationOptions on the EnrollmentToken that is created later.
      - `authenticationRequirement` 'AUTHENTICATION_REQUIREMENT_UNSPECIFIED' | 'OPTIONAL' | 'REQUIRED' — Optional. Specifies whether user should authenticate with Google during enrollment. If this is set to any value other than AUTHENTICATION_REQUIREMENT_UNSPECIFIED, the enterprise-level setting googleAuthenticationSettings is ignored for devices enrolled with this sign-in detail.
    - `signinEnrollmentToken` string — An enterprise wide enrollment token used to trigger custom sign-in flow. This is a read-only field generated by the server.
    - `allowPersonalUsage` 'ALLOW_PERSONAL_USAGE_UNSPECIFIED' | 'PERSONAL_USAGE_ALLOWED' | 'PERSONAL_USAGE_DISALLOWED' | 'PERSONAL_USAGE_DISALLOWED_USERLESS' — Controls whether personal usage is allowed on a device provisioned with this enrollment token.For company-owned devices: Enabling personal usage allows the user to set up a work profile on the device. Disabling personal usage requires the user provision the device as a fully managed device.For personally-owned devices: Enabling personal usage allows the user to set up a work profile on the device. Disabling personal usage will prevent the device from provisioning. Personal usage cannot be disabled on personally-owned device.
    - `defaultStatus` 'SIGNIN_DETAIL_DEFAULT_STATUS_UNSPECIFIED' | 'SIGNIN_DETAIL_IS_DEFAULT' | 'SIGNIN_DETAIL_IS_NOT_DEFAULT' — Optional. Whether the sign-in URL should be used by default for the enterprise. The SigninDetail with defaultStatus set to SIGNIN_DETAIL_IS_DEFAULT is used for Google account enrollment method. Only one of an enterprise's signinDetails can have defaultStatus set to SIGNIN_DETAIL_IS_DEFAULT. If an Enterprise has at least one signinDetails and none of them have defaultStatus set to SIGNIN_DETAIL_IS_DEFAULT then the first one from the list is selected and has set defaultStatus to SIGNIN_DETAIL_IS_DEFAULT. If no signinDetails specified for the Enterprise then the Google Account device enrollment will fail.
  - `managedGooglePlayAccountsEnterpriseType` 'MANAGED_GOOGLE_PLAY_ACCOUNTS_ENTERPRISE_TYPE_UNSPECIFIED' | 'CUSTOMER_MANAGED' | 'EMM_MANAGED' — Output only. The type of a managed Google Play Accounts enterprise.
  - `enterpriseType` 'ENTERPRISE_TYPE_UNSPECIFIED' | 'MANAGED_GOOGLE_DOMAIN' | 'MANAGED_GOOGLE_PLAY_ACCOUNTS_ENTERPRISE' — Output only. The type of the enterprise.
  - `enabledNotificationTypes` string[] — The types of Google Pub/Sub notifications enabled for the enterprise.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/androidmanagement.md) · [All operations](https://skmtc.net/google/apis/androidmanagement/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/androidmanagement/versions/956638790236/schema)
