# EditLoyaltyMemberInput

input type

Edit-input for a LoyaltyMember. Every field optional, at least ONE required; supplied fields REPLACE, omitted fields are preserved (no clearing semantic). An email change MIGRATES the (program × email) identity marker atomically with the update (people change emails — ≠ the immutable coupon/instrument codes); the new email held by ANY member — doomed included — refuses CONFLICT/MEMBER_EXISTS (an edit admits NO takeover; a doomed holder's identity re-enters via ENROLL). currentTier must name a program tier (≤ 60 chars); pointsBalance NEVER edits (the ledger is the only points surface).

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `caption` | [String](/types/#scalars) | no | No further notes. |
| `customer` | [LoyaltyCustomerInput](/types/LoyaltyCustomerInput/) | no | Replace the identity wholesale — an email change migrates the UNIQ marker atomically. |
| `currentTier` | [String](/types/#scalars) | no | The v1 manual tier assignment. |
| `priceGroupId` | [ID](/types/#scalars) | no | Re-assign the CustomerPriceGroup. |
| `consumerId` | [ID](/types/#scalars) | no | Set/re-point the Consumer bridge. |

## Used by

- [updateLoyaltyMember](/reference/loyalty-member/updateLoyaltyMember/)
