# CustomerCreateInput Input for creating a new customer account ## Input Definition ```graphql input CustomerCreateInput { email: String! password: String! passwordConfirm: String firstName: String lastName: String phone: String address1: String address2: String city: String zipcode: String country: String region: String company: String vatNumber: String companyId: String acceptsMarketing: Boolean consents: [ConsentInput!] } ``` ## Fields | Field | Type | Required | Description | |-------|------|----------|-------------| | email | String | Yes | The customer's email address | | password | String | Yes | The customer's password (minimum 6 characters) | | passwordConfirm | String | No | Password confirmation (must match password if provided) | | firstName | String | No | The customer's first name | | lastName | String | No | The customer's last name | | phone | String | No | The customer's phone number | | address1 | String | No | The first line of the customer's address | | address2 | String | No | The second line of the customer's address | | city | String | No | The customer's city | | zipcode | String | No | The customer's postal/zip code | | country | String | No | The customer's country code (ISO 3166-1 alpha-2) | | region | String | No | The customer's state/province/region | | company | String | No | The customer's company name | | vatNumber | String | No | The customer's VAT number | | companyId | String | No | The customer's company/business ID | | acceptsMarketing | Boolean | No | Whether the customer accepts marketing communications | | consents | [ConsentInput!] | No | Consents to record for the new customer (privacy, marketing, cookie policy, or custom types) | ## Example ```graphql mutation { createCustomer(input: { email: "john.doe@example.com" password: "securePassword123" passwordConfirm: "securePassword123" firstName: "John" lastName: "Doe" phone: "+1234567890" address1: "123 Main Street" address2: "Suite 100" city: "San Francisco" zipcode: "94102" country: "US" region: "CA" company: "Acme Corp" acceptsMarketing: true consents: [ { type: "MARKETING" status: "ACCEPTED" } ] }) { customer { id email firstName lastName } } } ``` ## Related Types - `ConsentInput`