> ## Documentation Index
> Fetch the complete documentation index at: https://docs.colossal.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Customers

> Create customer records via the Storefront API.

## Mutations

### `createCustomer`

Create a new customer record. If a customer with the same email already exists in the store, the existing record is returned.

```graphql theme={null}
mutation CreateCustomer($payload: CreateCustomerInput!) {
  createCustomer(payload: $payload) {
    success
    data {
      uid
      email
      fullName
      createdAt
    }
  }
}
```

**Input:**

| Field      | Type     | Required | Description       |
| ---------- | -------- | -------- | ----------------- |
| `storeUid` | `UUID`   | Yes      | Store/project UID |
| `email`    | `String` | Yes      | Customer email    |
| `fullName` | `String` | Yes      | Customer name     |

## Types

### Customer

| Field            | Type        | Description             |
| ---------------- | ----------- | ----------------------- |
| `uid`            | `UUID`      | Customer ID             |
| `email`          | `String`    | Email address           |
| `fullName`       | `String`    | Full name               |
| `billingAddress` | `Address?`  | Default billing address |
| `addresses`      | `[Address]` | All saved addresses     |
| `orders`         | `[Order]`   | Customer's orders       |
| `createdAt`      | `DateTime`  |                         |
| `updatedAt`      | `DateTime`  |                         |

### Address

| Field        | Type      | Description           |
| ------------ | --------- | --------------------- |
| `line1`      | `String?` | Street address line 1 |
| `line2`      | `String?` | Street address line 2 |
| `city`       | `String?` | City                  |
| `state`      | `String?` | State/province        |
| `postalCode` | `String?` | Postal/ZIP code       |
| `country`    | `String?` | Country code          |
