Home > @vsf-enterprise/commercetools-types > Customer

# Customer type

A customer is a person purchasing products. Carts, Orders and Reviews can be associated to a customer.

Signature:

export declare type Customer = Versioned & {
    __typename?: 'Customer';
    customerNumber?: Maybe<Scalars['String']>;
    email: Scalars['String'];
    password: Scalars['String'];
    addresses: Array<Address>;
    defaultShippingAddressId?: Maybe<Scalars['String']>;
    defaultBillingAddressId?: Maybe<Scalars['String']>;
    shippingAddressIds: Array<Scalars['String']>;
    billingAddressIds: Array<Scalars['String']>;
    isEmailVerified: Scalars['Boolean'];
    customerGroupRef?: Maybe<Reference>;
    externalId?: Maybe<Scalars['String']>;
    key?: Maybe<Scalars['String']>;
    authenticationMode?: Maybe<AuthenticationMode>;
    firstName?: Maybe<Scalars['String']>;
    lastName?: Maybe<Scalars['String']>;
    middleName?: Maybe<Scalars['String']>;
    title?: Maybe<Scalars['String']>;
    locale?: Maybe<Scalars['Locale']>;
    salutation?: Maybe<Scalars['String']>;
    dateOfBirth?: Maybe<Scalars['Date']>;
    companyName?: Maybe<Scalars['String']>;
    vatId?: Maybe<Scalars['String']>;
    customerGroup?: Maybe<CustomerGroup>;
    defaultShippingAddress?: Maybe<Address>;
    defaultBillingAddress?: Maybe<Address>;
    shippingAddresses: Array<Address>;
    billingAddresses: Array<Address>;
    storesRef: Array<KeyReference>;
    stores: Array<Store>;
    custom?: Maybe<CustomFieldsType>;
    id: Scalars['String'];
    version: Scalars['Long'];
    createdAt: Scalars['DateTime'];
    lastModifiedAt: Scalars['DateTime'];
    createdBy?: Maybe<Initiator>;
    lastModifiedBy?: Maybe<Initiator>;
};

References: Versioned, Maybe, Scalars, Address, Reference, AuthenticationMode, CustomerGroup, KeyReference, Store, CustomFieldsType, Initiator