---
title: "Update program member"
method: PUT
path: "/v2/loyalties/programs/{programId}/members/{memberId}"
tags: ["Programs"]
---

# Update program member

`PUT /v2/loyalties/programs/{programId}/members/{memberId}`

<Warning>

<Badge color="yellow">BETA endpoint</Badge>

This is a work-in-progress documentation of a BETA endpoint. The parameters, fields, request and response bodies, and other data may subject to change. If you want to share feedback or improvements, contact [Voucherify support](https://www.voucherify.io/contact-support) or your Technical Account Manager.

</Warning>

Updates a program member's metadata. Provided object keys are merged into the existing metadata; omitted keys are preserved. Pass `metadata: null` to clear all metadata (sets it to an empty object).

This endpoint cannot change `status`. Use [Activate a program member](/api-reference/programs/activate-a-program-member) or [Deactivate a program member](/api-reference/programs/deactivate-a-program-member) for status transitions.

Records a `vl.member.updated` activity. Returns the updated member without the `cards` array. Returns `404` when the program or member does not exist. Returns `400` when the request body fails validation or the project `vl_member` metadata schema rejects the payload.

## Path parameters

- `programId` string, required
- `memberId` string, required

## Request body

- MemberUpdateRequest — Request body for updating a program member. Only metadata is updatable. No additional properties are allowed.
  - `metadata` object, nullable, required — Member metadata to apply. Object keys are merged into existing metadata (omitted keys are preserved). Validated against the `vl_member` metadata schema when configured. Pass `null` to clear all metadata.

## Response `200`

The updated member (without cards).

- Member — A loyalty program member.
  - `id` string, required — Unique member ID assigned by Voucherify.
  - `customer_id` string, required — Unique Voucherify ID of the customer enrolled as this member.
  - `program_id` string, required — Unique Voucherify ID of the loyalty program the member belongs to.
  - `status` 'ACTIVE' | 'INACTIVE' | 'DELETED', required — Current member status. `INACTIVE` member can't earn points or redeem rewards.
  - `metadata` object, required — Free-form metadata attached to the member (empty object when none).
  - `created_at` string, date-time, required — Timestamp when the member was created (ISO 8601).
  - `updated_at` string, date-time, nullable, required — Timestamp when the member was last updated (ISO 8601), or null if never updated.
  - `object` 'member', required — Object type marker, always `member`.

## Other responses

- `400` — Validation error - request body failed validation.
- `404` — Resource not found.
- `500` — Internal server error.

---

[API](https://skmtc.net/voucherifyio/apis/voucherify-loyalty-v2-api.md) · [All operations](https://skmtc.net/voucherifyio/apis/voucherify-loyalty-v2-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/voucherifyio/voucherify-loyalty-v2-api/versions/f6f2f3388362/schema)
