# createCustomer

Creates a [`Company`](https://developers.google.com/zero-touch/reseller-library/reference/objects#company)
object to uniquely identify a company (customer) for Knox or zero-touch
enrollment. After the method returns successfully, the specified owners (`primary_emails`)
or admins (`secondary_emails`) can associate their email addresses with a Google
Account to access the [zero touch customer portal](https://enterprise.google.com/android/zero-touch/customers)
(for details, see [Zero-touch enrollment for IT admins](https://support.google.com/work/android/answer/7514005))
or a Samsung Account to access the Knox Mobile Enrollment (KME) portal.

## Method signature

    public CreateCustomerResponse createCustomer(CreateCustomerRequest request) throws CommonException;

## CreateCustomerRequest

| Property name | Value | Required | Description |
|---|---|---|---|
| `customer_name` | `string` | Yes | The name of the company. For example XYZ Corp. Displayed to the company's employees in the zero-touch enrollment portal. |
| `primary_emails` | List of `object(string)` | Yes | **Zero-touch:** Email address of customer's users in the owner role. At least one email address is required. Each email address must be associated with a Google Account. Owners share the same access as admins but can also add, delete, and edit your organization's portal users. **Samsung:** Email address of customer's super admin. Samsung only takes the first email in the list. Email address must be associated with a Samsung Account. |
| `secondary_emails` | List of `object(string)` | No | Email address of customer's users in the admin role. Each email address must be associated with a Google Account. **Note:** This property is not supported by Samsung. |
| `vendorParams` | `map` | **Zero-touch:** No **Samsung:** Yes | Extra fields, vendor specified key-value pair. Requests from the `SamsungResellerService` class must specify: "country": [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the customer, for example "US". "firstName": first name of the customer (max. 60 characters). "lastName": last name of the customer (max. 60 characters). "service": "KME" is the only supported value. |

## CreateCustomerResponse

| Property name | Value | Description |
|---|---|---|
| `customer` | `object(`[`Company`](https://developers.google.com/zero-touch/reseller-library/reference/objects#company)`)` | Object containing details of the newly created customer. |
| `vendor_params` | `map` | Extra fields, vendor specified key-value pair (Samsung only). |

## Error behavior

If an error occurs, the library throws a `CommonException` containing one of the
following error codes:

### `CommonException`

| Error code |
|---|
| `INTERNAL_SERVER_ERROR` |