---
title: September 2026
slug: september-2026
docTags: 
createdAt: 2026-10-09T14:06:37.758Z
---

**New fields and parameters on existing endpoints**

- **GET /v3/promotions** and **GET /v3/members/&#x7B;memberIdentifier}/promotions** - Added a read-only `promotionGroup` object to the Promotion schema. A promotion belongs to at most one group, so the field is a single nullable object.&#x20;
  - New `PromotionGroup` schema: `promotionGroupId`, `name`, `description`, `statusCode` (`PromotionGroupStatus`), `typeCode` (`PromotionGroupType`), `limit`, and `promotions`.
  - New `PromotionGroupEntry` schema: `promotionId`, `promotionCode`, `primaryRule`, `autoRegister`, and `displaySequenceNum`.
- **GET member payment cards** - Added a read-only `productTypeDescription` string, the human-readable description of the credit card product type.&#x20;
- **PATCH /v3/members/&#x7B;memberIdentifier}** (`patchMemberProfile`) - Added an optional async query parameter (default `false`). When `true`, the request runs as a background task and returns `202 Accepted` with an identifier to track status. Requires the `api:async-task:create scope`. &#x20;
- **PATCH /v3/members/&#x7B;memberIdentifier}** (`patchMemberProfile`) - Added an `enrollmentDate` field (date, nullable). Setting it to `null` is ignored and does not clear the existing date. Requires the `api:member-enroll-date:modify scope`; requests without it return 403.
- **GET /v3/segments** - Added `pageNumber` (default `1`) and `pageSize` (default `500`, maximum `500`) query parameters. The response is now a `FindSegmentsResponse` object with a `pageInfo` property instead of a plain array.&#x20;
- **Segment schema** - Added read-only fields, including `entryBonusRule`, `cancellationBonusRule`, `used`, `createdDate`, `createUserId`, and `createUserName`.&#x20;
- **Create and update segment** - `name`, `typeCode`, and `statusCode` are now required, and `statusCode` defaults to `ACTIVE` on create.&#x20;
- **Redemption rule endpoints** - The `externalCode` field and query parameter were renamed to `groupCode` in requests, responses, and search.&#x20;

**Removed endpoints**

| **Removed**                                                                                 | **Replacement**                                                                                                    |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| PUT /v3/members/&#x7B;memberIdentifier}/member-enrollment-date (updateMemberEnrollmentDate) | PATCH /v3/members/&#x7B;memberIdentifier} with the enrollmentDate field. Requires api\:member-enroll-date\:modify. |

**Entitlement changes**

- **POST /v3/members** (`enrollMember`) - Now requires `api:member:enroll` instead of `api:member:modify`. Users with only `api:member:modify` can no longer enroll members through the API.&#x20;

**Path parameter renames**

- **POST /v3/members/&#x7B;memberIdentifier}/transfer** - The path parameter was renamed from `accountNumber` to `memberIdentifier`, and the sender can now be any supported member identifier (resolved the same way as other member endpoints). Raw requests are unaffected; SDK-generated clients need to update the parameter name.&#x20;

**Behavior changes without a schema change**

- **POST /v3/promotion-rules** - Boolean fields in the `limits` object (for example `uniqueAcrossAllCycles`) now default to `false` when omitted. Before, omitting them returned a generic 500 `IllegalArgumentException`.&#x20;
- **PUT /v3/custom-data/&#x7B;customDataId}/details?externalKey=&#x7B;externalKey}** - The query-parameter replacement for the deprecated matrix-parameter path now works.&#x20;
