---
title: "Changes to Create program member"
method: POST
path: "/v2/loyalties/programs/{programId}/members"
---

# Changes to Create program member

`POST /v2/loyalties/programs/{programId}/members`

> Every recorded change to this endpoint, newest first.

## Timeline

Changed in 7 of 62 revisions.

- **2026-09-01** (v2) `45dab307cb4a` — 1 warning
- **2026-08-28** (v2) `dde32dd225f4` — 1 breaking, 1 info
- **2026-08-06** (v2) `9bde8832a027` — 1 warning, 1 info
- **2026-07-31** (v2) `703a0a42ea43` — 1 breaking, 3 warning, 1 info
- **2026-07-17** (v2) `4cbaee5a82d5` — 11 info
- **2026-07-17** (v2) `34cdf892eecb` — 1 breaking
- **2026-07-06** (v2) `341403eb19e5` — 22 breaking, 11 warning, 7 info

## Changes

- **2026-09-01** (v2) `45dab307cb4a` — 1 warning
  - deleted the `path` request parameter `programId`
- **2026-08-28** (v2) `dde32dd225f4` — 1 breaking, 1 info
  - the response's body type changed from no type to `object` for status `200`
  - added `#/components/schemas/MemberWithCards` to the response body `allOf` list for the response status `200`
- **2026-08-06** (v2) `9bde8832a027` — 1 warning, 1 info
  - removed the request property `allOf[#/components/schemas/MemberCreate]/customer_id`
  - added the new optional request property `allOf[#/components/schemas/MemberCreate]/customer_identification`
- **2026-07-31** (v2) `703a0a42ea43` — 1 breaking, 3 warning, 1 info
  - added `#/components/schemas/MemberCreate` to the request body `allOf` list
  - removed the request property `customer_id`
  - removed the request property `metadata`
  - removed the request property `status`
  - removed `#/components/schemas/Member, subschema #2` from the response body `allOf` list for the response status `200`
- **2026-07-17** (v2) `4cbaee5a82d5` — 11 info
  - added the optional property `resource_id` to the response with the `400` status
  - added the optional property `resource_id` to the response with the `404` status
  - added the optional property `resource_id` to the response with the `409` status
  - added the optional property `resource_id` to the response with the `423` status
  - added the optional property `resource_id` to the response with the `500` status
  - added the optional property `resource_type` to the response with the `400` status
  - added the optional property `resource_type` to the response with the `404` status
  - added the optional property `resource_type` to the response with the `409` status
  - added the optional property `resource_type` to the response with the `423` status
  - added the optional property `resource_type` to the response with the `500` status
  - response property `allOf[subschema #2]/cards` list-of-types was narrowed by removing types `null` from media type `application/json` of response `200`
- **2026-07-17** (v2) `34cdf892eecb` — 1 breaking
  - removed the required property `allOf[subschema #2]/cards/oneOf[subschema #1]/items/tier_progress` from the response with the `200` status
- **2026-07-06** (v2) `341403eb19e5` — 22 breaking, 11 warning, 7 info
  - added the pattern `^lprg_[a-f0-9]+$` to the `path` request parameter `programId`
  - the request property `status` became not nullable
  - removed the enum value `ACTIVE` of the request property `status`
  - removed the enum value `INACTIVE` of the request property `status`
  - removed the enum value `undefined` of the request property `status`
  - removed `#/components/schemas/Metadata` from the `metadata` request property `oneOf` list
  - the response property `code` became optional for the status `400`
  - the response property `code` became optional for the status `404`
  - the response property `code` became optional for the status `409`
  - the response property `code` became optional for the status `423`
  - the response property `code` became optional for the status `500`
  - the response property `key` became optional for the status `400`
  - the response property `key` became optional for the status `404`
  - the response property `key` became optional for the status `409`
  - the response property `key` became optional for the status `423`
  - the response property `key` became optional for the status `500`
  - the response property `message` became optional for the status `400`
  - the response property `message` became optional for the status `404`
  - the response property `message` became optional for the status `409`
  - the response property `message` became optional for the status `423`
  - the response property `message` became optional for the status `500`
  - response property `allOf[subschema #2]/cards` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - changed the pattern of the request property `customer_id` from `^cust_[A-Za-z0-9]+$` to `^cust_[a-zA-Z0-9]+`
  - removed the optional property `resource_id` from the response with the `400` status
  - removed the optional property `resource_id` from the response with the `404` status
  - removed the optional property `resource_id` from the response with the `409` status
  - removed the optional property `resource_id` from the response with the `423` status
  - removed the optional property `resource_id` from the response with the `500` status
  - removed the optional property `resource_type` from the response with the `400` status
  - removed the optional property `resource_type` from the response with the `404` status
  - removed the optional property `resource_type` from the response with the `409` status
  - removed the optional property `resource_type` from the response with the `423` status
  - removed the optional property `resource_type` from the response with the `500` status
  - api operation id `createMember` removed and replaced with `createProgramMember`
  - the `metadata` request property default value `{}` was added
  - request property `status` list-of-types was widened by adding types `null` to media type `application/json`
  - added `subschema #1` to the `metadata` request property `oneOf` list
  - added `#/components/schemas/Member` to the response body `allOf` list for the response status `200`
  - removed `#/components/schemas/MemberResponse` from the response body `allOf` list for the response status `200`
  - the response property `allOf[subschema #2]/cards` became required for the status `200`

---

[Operation](https://skmtc.dev/voucherifyio/apis/voucherify-loyalty-v2-api/docs/v2/loyalties/programs/:programId/members/post.md) · [API](https://skmtc.dev/voucherifyio/apis/voucherify-loyalty-v2-api.md) · [Page](https://skmtc.dev/voucherifyio/apis/voucherify-loyalty-v2-api/changes/v2/loyalties/programs/:programId/members/post)
