# createCustomer

### Create a customer in the Cloud4Wi account&#x20;

This method initiative the customer object in the Cloud4Wi account. This method must be invoked before installing the WiFi Profile.

```java
/**
     * Create a customer in the Cloud4Wi account
     *
     * @param customer - user you want to create
     * @param deduplicate - attribute that will be used for customer deduplication.
     * @param onSuccess - invoked if customer successfully created
     * @param onError - invoked if exception occurred
     *
     * @return future with CustomerCreateResponse object which represents saved customer
     */
    public Future<CustomerCreateResponse> createCustomer(
                   Customer customer,
                   String deduplicate, 
                   Callback<CustomerCreateResponse> onSuccess, 
                   Callback<MobileSDKException> onError);
```

Calling this function It is equivalent to a make a login. The success of this function opens a session with the customer returned. To close the session use `logout()` method.&#x20;

### Customer deduplication

The `deduplicate` string is optional. If set, the system will check if an existing customer with a matching attribute already exists in the same Cloud4Wi account.&#x20;

If a matching record exists, the `createCustomer` method will override the existing matching customer attributes with the one passed in the `createCustomer` (except for `username, password,` and `source` )

Pssible values of `deduplicate` string are:

```
"phoneNumber", "email", "extId", "extProp1", "extProp2"
```

To create a customer without any deduplicaiton check, set `deduplicate` string to `null.`

```
cloud4wiSDK.createCustomer(customer, null, ...)
```

### Customer username and password

If `username` and `password` are not set in the Customer object, they are assigned randomly during the customer creation and returned to the app in the CustomerCreate Response object.

###

## Examples

### Create customer&#x20;

```swift
Customer customer = new Customer();
customer.setFirstName("Luigi");
customer.setEmail("luigi@cloud4wi.com");

customer.addPolicy("termsOfUse", true);
customer.addPolicy("privacy", true);

//deduplication on email attributes
cloud4wiSDK.createCustomer(customer, "email", ...)
```

### Create customer without deduplication

```swift
cloud4wiSDK.createCustomer(customer, null, ...)
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://create.cloud4wi.ai/dev-hub/wifi-sdk/integrating-the-sdk/android/sdk-methods/createcustomer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
