Customer Account Update - Triggered when the customer account is updated. This also includes the barcode being updated, the password being reset and the account being verified.

Return Type

CustomerResultView { 
  id?: string;
  email?: string;
  firstName?: string;
  readonly name?: string;
  lastName?: string;
  dob?: Date;
  gender?: Gender;
  areaCode?: string;
  mobileNumber?: string;
  addressLine1?: string;
  addressLine2?: string;
  town?: string;
  state?: string;
  postCode?: string;
  country?: string;
  marketingSub?: boolean;
  barCode?: string;
  createdBy?: string;
  updatedBy?: string;
  detailedLevels?: Array<LegacyCustomerLevelView>;
  schemes?: Array<CustomerSchemeResultView>;
  createdDate?: Date;
  updatedDate?: Date;
  lastConnectedDate?: Date;
  lastTransactionDate?: Date;
  Levels?: Array<CustomerLevelView>;
  readonly alerts?: Array<string>;
  additionalCustomerFields?: Array<AdditionalCustomerFieldsResultView>;
  profileImageUrl?: string;
  onHold?: boolean;
  deleted?: boolean;
  emailVerified?: boolean;
  mobileNumberVerified?: boolean;
  signUpPlatform?: string;
  signUpPlatform2?: SignUpPlatformView;
  externalRefId?: string;
  parent?: ParentAdditionalFieldsView;
  customerDevices?: Array<CustomerDevicesResultView>;
  balance:	PointBalanceSummaryResult;
}

Sub Return Types

LegacyCustomerLevelView{
	levelId: string;
	tierId: string;
	schemeId: string;
	createdDate: Date;
	updatedDate: Date;
}
CustomerSchemeResultView {
  id: string($uuid)
  name?: string
  currency?: string
  description?: string
  website?:	string
  color?:	string
  imageUrl?:	string
  pointRedemptionPerCurrency:	number($double)
  updatedDate: Date
  createdDate: Date
  inLoyale:	boolean
  hidden:	boolean
  rounding:	Rounding
  billingStatus:	SchemeStatus
  franchises?: Array<FranchiseResultView>
}
CustomerLevelView {
	customerId: string($uuid)
	levelId: string($uuid)
}
AdditionalCustomerFieldsResultView {
  customerId?: string
  createdBy?: string
  updatedBy?: string
  id?: string($uuid)
  schemeId?: string($uuid)
  name?: string
  key?: string
  value?: string
  updatedDate: Date
  createdDate: Date
  internal: boolean
}
SignUpPlatformView {
  name?: string
  version?: string
  device?: string
  appName?: string
  appVersion?: string
  comments?: string
}
CustomerDevicesResultView {
  id: string($uuid)
  customerId?:	string
  schemeId: string($uuid)
  deviceName?: string
  deviceVersion?: string
  osName?: string
  osVersion?:	string
  appName?:	string
  appVersion?: string
  comments?: string
  firstDevice?: boolean
  createdDate: Date
  updatedDate: Date
  createdBy?: string
  updatedBy?: string
}
FranchiseResultView {
  id: string($uuid)
  name?: string
  description?:	string
  schemeId: string($uuid)
  imageUrl?: string
  imageGallery?: Array<string>
  categoriesIds?: Array<string($uuid)>
  categories?: Array<CategoryResultView>
  outlets?: Array<FranchiseOutletResultView>
  updatedDate: Date
  createdDate: Date
  hidden: boolean
  createdBy?: string
  updatedBy?: string
}
CategoryResultView {
  id: string($uuid)
  name?: string
  imageUrl?: string
}
FranchiseOutletResultView {
  id: string($uuid)
  name?: string
  coordinate:	CoordinateView
  address: AddressView
  phoneNumber?: string
  openingHours:	Array<string?>
  imageUrl?: string
  updatedDate: Date
  createdDate: Date
  facebook?: string
  instagram?: string
  hidden: boolean
  createdBy?: string
  updatedBy?: string
}
CoordinateView {
  latitude: number($double)
  longitude: number($double)
}
AddressView {
  addressLine1?: string
  addressLine2?: string
  town?: string
  postCode?: string
  state?: string
  countryId?: string
}
ParentAdditionalFieldsView{
  id?: string;
  email?: string;
  firstName?:	string;
  readOnly name?:	string;
  lastName?: string;
  dob?:	Date;
  gender:	Gender;
  areaCode?: string;
  mobileNumber?: string;
  addressLine1?: string;
  addressLine2?: string;
  town?: string;
  state?: string;
  postCode?: string;
  country?: string;
  marketingSub: boolean;
  barCode?: string;
  createdDate: Date;
  updatedDate: Date;
  lastConnectedDate?: Date;
  lastTransactionDate?: Date;
  profileImageUrl?: string;
  onHold: boolean;
  emailVerified: boolean;
  mobileNumberVerified: boolean;
  externalRefId?: string;
  additionalCustomerFields?: Array<AdditionalCustomerFieldsResultView>;
  balance:	PointBalanceSummaryResult;
}
PointBalanceSummaryResult{
  pointsValue: double;
  monetaryValue: double;
}

Note: Gender, Rounding and SchemeStatus are enums, all enums can be found here.
Warning: You should take into account the case when you receive a Customer Update webhook, you should always check the Password property from the webhook’s request body for NULL in order not to wipe the customer’s password from your db. Otherwise, if the Password (it’s a plain password, not hashed) is not null you should update the password on your end.


What’s Next