# `PolarExpress.Schemas.CustomerCreate`
[🔗](https://github.com/jeffhuen/polar_express/blob/main/lib/polar_express/schemas/customer_create.ex#L2)

CustomerCreate

# `t`

```elixir
@type t() :: %PolarExpress.Schemas.CustomerCreate{
  billing_address: PolarExpress.Schemas.AddressInput.t() | nil,
  email: String.t() | nil,
  external_id: String.t() | nil,
  locale: String.t() | nil,
  metadata:
    %{
      required(String.t()) =&gt; String.t() | integer() | float() | boolean() | nil
    }
    | nil,
  name: String.t() | nil,
  organization_id: String.t() | nil,
  owner: PolarExpress.Schemas.OwnerCreate.t() | nil,
  tax_id: [String.t() | PolarExpress.Schemas.TaxIDFormat.t()] | nil,
  type: PolarExpress.Schemas.CustomerType.t() | nil
}
```

* `billing_address` - Nullable.
* `email` - The email address of the customer. This must be unique within the organization. Format: email.
* `external_id` - The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated. Nullable.
* `locale` - Nullable.
* `metadata` - Key-value object allowing you to store additional information.

The key must be a string with a maximum length of **40 characters**.
The value must be either:

* A string with a maximum length of **500 characters**
* An integer
* A floating-point number
* A boolean

You can store up to **50 key-value pairs**.
* `name` - Nullable.
* `organization_id` - The ID of the organization owning the customer. **Required unless you use an organization token.** Nullable.
* `owner` - Optional owner member to create with the customer. If not provided, an owner member will be automatically created using the customer's email and name. Nullable.
* `tax_id` - Nullable.
* `type` - The type of customer. Defaults to 'individual'. Set to 'team' for customers that can have multiple members. Nullable.

# `schema_name`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
