From 68c7ccc27975857ec9094fcac891db533b1d350c Mon Sep 17 00:00:00 2001 From: "b.boterman@htm.nl" Date: Mon, 12 Jan 2026 13:41:20 +0100 Subject: [PATCH 1/7] OVPAY-2394 - Added groupName to NotificationCategory. Added query params. --- src/openapi/customers/notifications-crud.yaml | 47 +++++++++++++++++-- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/src/openapi/customers/notifications-crud.yaml b/src/openapi/customers/notifications-crud.yaml index 9e06e5e..d430404 100644 --- a/src/openapi/customers/notifications-crud.yaml +++ b/src/openapi/customers/notifications-crud.yaml @@ -44,6 +44,13 @@ paths: type: integer default: 1 description: Limit the number of subscription activities returned per subscription (default is 1) + - name: expand + in: query + schema: + type: string + enum: [none, notificationPreference, eventTypeChannel] + default: none + description: "Expand nested attributes. Possible values: `none`, `eventType`, and `eventTypeChannel`." responses: "200": description: A list of notification subscriptions @@ -63,6 +70,7 @@ paths: notificationCategory: notificationCategoryId: 1 name: Mijn Reizen + groupName: Mijn tokens customerProfileId: 1337 subscriptionActivities: - subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387 @@ -77,6 +85,7 @@ paths: notificationCategory: notificationCategoryId: 2 name: Nieuwsbrief aanmelding + groupName: Marketing customerProfileId: 1338 subscriptionActivities: - subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4 @@ -288,6 +297,24 @@ paths: - Notification Categories summary: Get all notification categories. parameters: + - name: notificationCategoryId + in: query + required: false + schema: + type: integer + description: Filter by notification category ID + - name: name + in: query + required: false + schema: + type: integer + description: Filter by notification category name (case-insensitive, partial match) + - name: groupName + in: query + required: false + schema: + type: integer + description: Filter by notification category group name (case-insensitive, partial match) - name: expand in: query schema: @@ -309,16 +336,20 @@ paths: notificationCategories: - notificationCategoryId: 1 name: Mijn Reizen + groupName: Mijn tokens - notificationCategoryId: 2 name: Nieuwsbrief aanmelding + groupName: Marketing - notificationCategoryId: 3 - name: Mijn Passen + name: Serviceberichten + groupName: Mijn tokens getNotifactionCategories?expand=eventType: summary: Return all the notification categories with nested event types (expand=eventType) value: notificationCategories: - notificationCategoryId: 1 name: Mijn Reizen + groupName: Mijn tokens eventTypes: - eventTypeId: 2 eventOrigin: @@ -338,6 +369,7 @@ paths: optinRequired: false - notificationCategoryId: 2 name: Nieuwsbrief aanmelding + groupName: Marketing eventTypes: - eventTypeId: 1 eventOrigin: @@ -348,7 +380,8 @@ paths: prettyName: HTM nieuwsbrief optinRequired: false - notificationCategoryId: 3 - name: Mijn Passen + name: Serviceberichten + groupName: Mijn tokens eventTypes: - eventTypeId: 4 eventOrigin: @@ -372,6 +405,7 @@ paths: notificationCategories: - notificationCategoryId: 1 name: Mijn Reizen + groupName: Mijn tokens eventTypes: - eventTypeId: 2 eventOrigin: @@ -417,6 +451,7 @@ paths: isMandatory: false - notificationCategoryId: 2 name: Nieuwsbrief aanmelding + groupName: Marketing eventTypes: - eventTypeId: 1 eventOrigin: @@ -434,7 +469,8 @@ paths: isDefault: true isMandatory: false - notificationCategoryId: 3 - name: Mijn Passen + name: Serviceberichten + groupName: Mijn tokens eventTypes: - eventTypeId: 4 eventOrigin: @@ -750,6 +786,7 @@ paths: notificationCategory: notificationCategoryId: 1 name: Mijn Reizen + groupName: Mijn tokens - eventType: eventTypeId: 16 eventOrigin: @@ -762,6 +799,7 @@ paths: notificationCategory: notificationCategoryId: 1 name: Mijn Reizen + groupName: Mijn tokens "400": description: Bad request content: @@ -1119,6 +1157,9 @@ components: name: type: string example: Mijn Reizen + groupName: + type: string + example: Mijn tokens eventTypes: type: array items: -- 2.45.2 From ab57e27c1dc36fa393a91d53a5d5215332492c0f Mon Sep 17 00:00:00 2001 From: "b.boterman@htm.nl" Date: Mon, 12 Jan 2026 15:08:32 +0100 Subject: [PATCH 2/7] OVPAY-2394 - Added OriginSubscription. --- src/openapi/customers/notifications-crud.yaml | 120 +++++++++++++----- 1 file changed, 86 insertions(+), 34 deletions(-) diff --git a/src/openapi/customers/notifications-crud.yaml b/src/openapi/customers/notifications-crud.yaml index d430404..b043ef7 100644 --- a/src/openapi/customers/notifications-crud.yaml +++ b/src/openapi/customers/notifications-crud.yaml @@ -70,7 +70,7 @@ paths: notificationCategory: notificationCategoryId: 1 name: Mijn Reizen - groupName: Mijn tokens + groupName: Mijn Passen customerProfileId: 1337 subscriptionActivities: - subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387 @@ -336,37 +336,45 @@ paths: notificationCategories: - notificationCategoryId: 1 name: Mijn Reizen - groupName: Mijn tokens + groupName: Mijn Passen - notificationCategoryId: 2 name: Nieuwsbrief aanmelding groupName: Marketing - notificationCategoryId: 3 name: Serviceberichten - groupName: Mijn tokens + groupName: Mijn Passen getNotifactionCategories?expand=eventType: summary: Return all the notification categories with nested event types (expand=eventType) value: notificationCategories: - notificationCategoryId: 1 name: Mijn Reizen - groupName: Mijn tokens + groupName: Mijn Passen eventTypes: - eventTypeId: 2 eventOrigin: eventOriginId: 1 name: GBO - name: ALERTS, TRAVEL_SCHEME - subName: CI - prettyName: Check In + name: TRIPS + subName: CKI + prettyName: Normal Check-in optinRequired: false + originSubscription: + originSubscriptionId: a1b2c3d4-e5f6-4789-abcd-1234567890ab + name: GBO_TRIPS + externalSubscriptionId: fedcba98-7654-3210-fedc-ba9876543210 - eventTypeId: 3 eventOrigin: eventOriginId: 1 name: GBO - name: ALERTS, PAD - subName: null - prettyName: Profielgegevens op de pas + name: PAD + subName: AMEND + prettyName: PAD Wijzigen/Aanvullen optinRequired: false + originSubscription: + originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc + name: GBO_PAD + externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f - notificationCategoryId: 2 name: Nieuwsbrief aanmelding groupName: Marketing @@ -379,42 +387,55 @@ paths: subName: null prettyName: HTM nieuwsbrief optinRequired: false + originSubscription: null - notificationCategoryId: 3 name: Serviceberichten - groupName: Mijn tokens + groupName: Mijn Passen eventTypes: - eventTypeId: 4 eventOrigin: eventOriginId: 1 name: GBO - name: ALERTS, CARD - subName: null - prettyName: Mijn passen + name: PRODUCT + subName: ACTIVATE + prettyName: Product Geactiveerd optinRequired: false + originSubscription: + originSubscriptionId: f1a2b3c4-d5e6-4789-abcd-3456789012de + name: GBO_PRODUCT + externalSubscriptionId: 12345678-90ab-cdef-1234-567890abcdef - eventTypeId: 5 eventOrigin: eventOriginId: 1 name: GBO - name: ALERTS, PAD - subName: null - prettyName: Profielgegevens op de pas + name: PAD + subName: MARK + prettyName: PAD Markering optinRequired: false + originSubscription: + originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc + name: GBO_PAD + externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f getNotifactionCategories?expand=eventTypeChannel: summary: Return all the notification categories with all nested attributes (expand=eventTypeChannel) value: notificationCategories: - notificationCategoryId: 1 name: Mijn Reizen - groupName: Mijn tokens + groupName: Mijn Passen eventTypes: - eventTypeId: 2 eventOrigin: eventOriginId: 1 name: GBO - name: ALERTS, TRAVEL_SCHEME - subName: CI - prettyName: Check In + name: TRIPS + subName: CKI + prettyName: Normal Check-in optinRequired: false + originSubscription: + originSubscriptionId: a1b2c3d4-e5f6-4789-abcd-1234567890ab + name: GBO_TRIPS + externalSubscriptionId: fedcba98-7654-3210-fedc-ba9876543210 eventTypeChannels: - eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173 channel: @@ -432,10 +453,14 @@ paths: eventOrigin: eventOriginId: 1 name: GBO - name: ALERTS, PAD - subName: null - prettyName: Profielgegevens op de pas + name: PAD + subName: AMEND + prettyName: PAD Wijzigen/Aanvullen optinRequired: false + originSubscription: + originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc + name: GBO_PAD + externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f eventTypeChannels: - eventTypeChannelId: 8e7df8f1-7e50-482f-8301-d399e75fd432 channel: @@ -461,6 +486,7 @@ paths: subName: null prettyName: HTM nieuwsbrief optinRequired: false + originSubscription: null eventTypeChannels: - eventTypeChannelId: 447a1116-6cd7-4645-8c3d-43237b6186cd channel: @@ -470,16 +496,20 @@ paths: isMandatory: false - notificationCategoryId: 3 name: Serviceberichten - groupName: Mijn tokens + groupName: Mijn Passen eventTypes: - eventTypeId: 4 eventOrigin: eventOriginId: 1 name: GBO - name: ALERTS, CARD - subName: null - prettyName: Mijn passen + name: PRODUCT + subName: ACTIVATE + prettyName: Product Geactiveerd optinRequired: false + originSubscription: + originSubscriptionId: f1a2b3c4-d5e6-4789-abcd-3456789012de + name: GBO_PRODUCT + externalSubscriptionId: 12345678-90ab-cdef-1234-567890abcdef eventTypeChannels: - eventTypeChannelId: be07c7bb-714b-4637-acf5-a67025ad8e60 channel: @@ -497,10 +527,14 @@ paths: eventOrigin: eventOriginId: 1 name: GBO - name: ALERTS, PAD - subName: null - prettyName: Profielgegevens op de pas + name: PAD + subName: MARK + prettyName: PAD Markering optinRequired: false + originSubscription: + originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc + name: GBO_PAD + externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f eventTypeChannels: - eventTypeChannelId: b910368f-c045-4e8e-b01d-bcbc78708bac channel: @@ -786,7 +820,7 @@ paths: notificationCategory: notificationCategoryId: 1 name: Mijn Reizen - groupName: Mijn tokens + groupName: Mijn Passen - eventType: eventTypeId: 16 eventOrigin: @@ -799,7 +833,7 @@ paths: notificationCategory: notificationCategoryId: 1 name: Mijn Reizen - groupName: Mijn tokens + groupName: Mijn Passen "400": description: Bad request content: @@ -1114,6 +1148,24 @@ components: optInRequired: type: boolean example: true + originSubscription: + type: object + properties: + originSubscriptionId: + type: string + format: uuid + example: a1b2c3d4-e5f6-4789-abcd-1234567890ab + name: + type: string + example: GBO_TRIPS + externalSubscriptionId: + type: string + format: uuid + example: fedcba98-7654-3210-fedc-ba9876543210 + required: + - originSubscriptionId + - name + - externalSubscriptionId eventTypeChannels: type: array items: @@ -1159,7 +1211,7 @@ components: example: Mijn Reizen groupName: type: string - example: Mijn tokens + example: Mijn Passen eventTypes: type: array items: -- 2.45.2 From e0f78d2e38207e35aaef57799ba2bed95cb5c0e3 Mon Sep 17 00:00:00 2001 From: "b.boterman@htm.nl" Date: Tue, 13 Jan 2026 15:19:49 +0100 Subject: [PATCH 3/7] OVPAY-2394 - Updated GET /notificationsubscriptions examples. --- src/openapi/customers/notifications-crud.yaml | 107 +++++++++++++++++- 1 file changed, 106 insertions(+), 1 deletion(-) diff --git a/src/openapi/customers/notifications-crud.yaml b/src/openapi/customers/notifications-crud.yaml index b043ef7..60f6082 100644 --- a/src/openapi/customers/notifications-crud.yaml +++ b/src/openapi/customers/notifications-crud.yaml @@ -60,10 +60,12 @@ paths: $ref: "#/components/schemas/GetNotificationSubscriptionsResponse" examples: emptyNotificationSubscriptionResponse: + summary: No notification subscriptions found value: notificationSubscriptions: [] href: null - fullNotificationSubscriptionResponse: + notificationSubscriptionResponse?expand=none: + summary: Return notification subscriptions without nested attributes (expand=none) value: notificationSubscriptions: - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 @@ -72,6 +74,7 @@ paths: name: Mijn Reizen groupName: Mijn Passen customerProfileId: 1337 + ovPayTokenId: 42 subscriptionActivities: - subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387 user: "1001337" @@ -87,6 +90,7 @@ paths: name: Nieuwsbrief aanmelding groupName: Marketing customerProfileId: 1338 + ovPayTokenId: null subscriptionActivities: - subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4 user: "1001338" @@ -97,6 +101,107 @@ paths: timestamp: "2025-10-02T14:00:00Z" isActive: true href: null + notificationSubscriptionResponse?expand=notificationPreference: + summary: Return notification subscriptions with nested notification preferences (expand=notificationPreference) + value: + notificationSubscriptions: + - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + notificationCategory: + notificationCategoryId: 1 + name: Mijn Reizen + groupName: Mijn Passen + customerProfileId: 1337 + ovPayTokenId: 42 + subscriptionActivities: + - subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387 + user: "1001337" + timestamp: "2025-10-02T15:00:00Z" + isActive: true + - subscriptionActivityId: f78bc171-a50e-4b88-88d3-a76585bffd54 + user: "1001337" + timestamp: "2025-10-02T14:00:00Z" + isActive: false + notificationPreferences: + - notificationPreferenceId: d4e5f6a7-b8c9-40d1-ef01-234567890abc + eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173 + resourceIdentifier: null + - notificationPreferenceId: e5f6a7b8-c9d0-41e2-f012-34567890abcd + eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d + resourceIdentifier: 44 + - notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + notificationCategory: + notificationCategoryId: 2 + name: Nieuwsbrief aanmelding + groupName: Marketing + customerProfileId: 1338 + ovPayTokenId: null + subscriptionActivities: + - subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4 + user: "1001338" + timestamp: "2025-10-02T15:00:00Z" + isActive: false + - subscriptionActivityId: cb2fc1d3-f143-4dd7-8608-4538e5637e3a + user: "1001338" + timestamp: "2025-10-02T14:00:00Z" + isActive: true + notificationPreferences: [] + href: null + notificationSubscriptionResponse?expand=eventTypeChannel: + summary: Return notification subscriptions with nested event type channels (expand=eventTypeChannel) + value: + notificationSubscriptions: + - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + notificationCategory: + notificationCategoryId: 1 + name: Mijn Reizen + groupName: Mijn Passen + customerProfileId: 1337 + ovPayTokenId: 42 + subscriptionActivities: + - subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387 + user: "1001337" + timestamp: "2025-10-02T15:00:00Z" + isActive: true + - subscriptionActivityId: f78bc171-a50e-4b88-88d3-a76585bffd54 + user: "1001337" + timestamp: "2025-10-02T14:00:00Z" + isActive: false + notificationPreferences: + - notificationPreferenceId: d4e5f6a7-b8c9-40d1-ef01-234567890abc + eventTypeChannel: + eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173 + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + resourceIdentifier: null + - notificationPreferenceId: e5f6a7b8-c9d0-41e2-f012-34567890abcd + eventTypeChannelId: + eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d + channel: + channelId: 2 + name: email + isDefault: false + isMandatory: false + resourceIdentifier: 44 + - notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + notificationCategory: + notificationCategoryId: 2 + name: Nieuwsbrief aanmelding + groupName: Marketing + customerProfileId: 1338 + ovPayTokenId: null + subscriptionActivities: + - subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4 + user: "1001338" + timestamp: "2025-10-02T15:00:00Z" + isActive: false + - subscriptionActivityId: cb2fc1d3-f143-4dd7-8608-4538e5637e3a + user: "1001338" + timestamp: "2025-10-02T14:00:00Z" + isActive: true + notificationPreferences: [] "400": description: Bad request content: -- 2.45.2 From 71473189008ded0a676672e0ba21de75de616a8b Mon Sep 17 00:00:00 2001 From: "b.boterman@htm.nl" Date: Tue, 13 Jan 2026 15:38:48 +0100 Subject: [PATCH 4/7] OVPAY-2394 - Added resourceNameId to Channel. --- src/openapi/customers/notifications-crud.yaml | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/src/openapi/customers/notifications-crud.yaml b/src/openapi/customers/notifications-crud.yaml index 60f6082..6d18790 100644 --- a/src/openapi/customers/notifications-crud.yaml +++ b/src/openapi/customers/notifications-crud.yaml @@ -173,6 +173,9 @@ paths: channel: channelId: 1 name: push + resourceName: + resourceNameId: 8 + name: devices isDefault: true isMandatory: false resourceIdentifier: null @@ -182,6 +185,9 @@ paths: channel: channelId: 2 name: email + resourceName: + resourceNameId: 4 + name: customers isDefault: false isMandatory: false resourceIdentifier: 44 @@ -546,12 +552,18 @@ paths: channel: channelId: 1 name: push + resourceName: + resourceNameId: 8 + name: devices isDefault: true isMandatory: false - eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d channel: channelId: 2 name: email + resourceName: + resourceNameId: 4 + name: customers isDefault: false isMandatory: false - eventTypeId: 3 @@ -571,12 +583,18 @@ paths: channel: channelId: 1 name: push + resourceName: + resourceNameId: 8 + name: devices isDefault: true isMandatory: false - eventTypeChannelId: 72960a92-1855-469f-9cfd-5d72f57106f2 channel: channelId: 2 name: email + resourceName: + resourceNameId: 4 + name: customers isDefault: false isMandatory: false - notificationCategoryId: 2 @@ -597,6 +615,9 @@ paths: channel: channelId: 2 name: email + resourceName: + resourceNameId: 4 + name: customers isDefault: true isMandatory: false - notificationCategoryId: 3 @@ -620,12 +641,18 @@ paths: channel: channelId: 1 name: push + resourceName: + resourceNameId: 8 + name: devices isDefault: true isMandatory: false - eventTypeChannelId: 0c797b5a-ed34-494b-8c64-0a832830d392 channel: channelId: 2 name: email + resourceName: + resourceNameId: 4 + name: customers isDefault: false isMandatory: false - eventTypeId: 5 @@ -645,12 +672,18 @@ paths: channel: channelId: 1 name: push + resourceName: + resourceNameId: 8 + name: devices isDefault: true isMandatory: false - eventTypeChannelId: 93e773da-ba3b-48da-9a0e-ee478eaa752f channel: channelId: 2 name: email + resourceName: + resourceNameId: 4 + name: customers isDefault: false isMandatory: false "400": @@ -771,12 +804,24 @@ paths: channels: - channelId: 1 name: push + resourceName: + resourceNameId: 8 + name: devices - channelId: 2 name: email + resourceName: + resourceNameId: 4 + name: customers - channelId: 3 name: sms + resourceName: + resourceNameId: 4 + name: customers - channelId: 4 name: mail + resourceName: + resourceNameId: 4 + name: customers "400": description: Bad request content: @@ -1004,6 +1049,9 @@ paths: channel: channelId: 1 name: push + resourceName: + resourceNameId: 8 + name: devices isDefault: true isMandatory: false - eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 @@ -1019,6 +1067,9 @@ paths: channel: channelId: 1 name: push + resourceName: + resourceNameId: 8 + name: devices isDefault: true isMandatory: false "400": @@ -1302,9 +1353,22 @@ components: name: type: string example: push + resourceName: + type: object + properties: + resourceNameId: + type: integer + example: 8 + name: + type: string + example: devices + required: + - resourceNameId + - name required: - channelId - name + - resourceName NotificationCategory: type: object properties: -- 2.45.2 From 1a14918f4a6760031a2f1617078ef9a26075367a Mon Sep 17 00:00:00 2001 From: "b.boterman@htm.nl" Date: Tue, 13 Jan 2026 15:45:52 +0100 Subject: [PATCH 5/7] OVPAY-2394 - Added PATCH /notificationsubscriptions/{uuid}. --- src/openapi/customers/notifications-crud.yaml | 87 +++++++++++++++++-- 1 file changed, 79 insertions(+), 8 deletions(-) diff --git a/src/openapi/customers/notifications-crud.yaml b/src/openapi/customers/notifications-crud.yaml index 6d18790..cb1e1a6 100644 --- a/src/openapi/customers/notifications-crud.yaml +++ b/src/openapi/customers/notifications-crud.yaml @@ -295,18 +295,71 @@ paths: type: object $ref: "#/components/schemas/500Response" /notificationsubscriptions/{notificationSubscriptionId}: + parameters: + - name: notificationSubscriptionId + in: path + required: true + schema: + type: string + format: uuid + example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + patch: + summary: Update a notification subscription by ID + tags: + - Notification Subscriptions + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PatchNotificationSubscriptionRequest" + examples: + updateNotificationSubscriptionRequest: + value: + ovPayTokenId: 43 + responses: + "200": + description: Notification subscription updated successfully + content: + application/json: + schema: + $ref: "#/components/schemas/PatchNotificationSubscriptionResponse" + examples: + updateNotificationSubscriptionResponse: + value: + notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + "400": + description: Bad request + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/400Response" + "401": + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/401Response" + "404": + description: Not found + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/404Response" + "500": + description: Internal server error + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/500Response" delete: summary: Delete a notification subscription by ID tags: - Notification Subscriptions - parameters: - - name: notificationSubscriptionId - in: path - required: true - schema: - type: string - format: uuid - example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 responses: "204": description: No content @@ -1190,6 +1243,24 @@ components: type: string format: uuid example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + PatchNotificationSubscriptionRequest: + type: object + properties: + notificationCategoryId: + type: integer + example: 1 + customerProfileId: + type: integer + example: 1337 + required: + - notificationCategoryId + PatchNotificationSubscriptionResponse: + type: object + properties: + notificationSubscriptionId: + type: string + format: uuid + example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 PostSubscriptionActivityRequest: type: object properties: -- 2.45.2 From 46bf7874d9105dc359388db4337c05f5bc98debb Mon Sep 17 00:00:00 2001 From: "b.boterman@htm.nl" Date: Tue, 13 Jan 2026 16:08:39 +0100 Subject: [PATCH 6/7] OVPAY-2394 - Added POST, PATCH and DELETE operations for NotificationPreferences. --- src/openapi/customers/notifications-crud.yaml | 200 ++++++++++++++++++ 1 file changed, 200 insertions(+) diff --git a/src/openapi/customers/notifications-crud.yaml b/src/openapi/customers/notifications-crud.yaml index cb1e1a6..24eb33c 100644 --- a/src/openapi/customers/notifications-crud.yaml +++ b/src/openapi/customers/notifications-crud.yaml @@ -455,6 +455,172 @@ paths: schema: type: object $ref: "#/components/schemas/500Response" + /notificationsubscriptions/{notificationSubscriptionId}/notificationpreferences: + parameters: + - name: notificationSubscriptionId + in: path + required: true + schema: + type: string + format: uuid + example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + post: + summary: Add a notification preference to a notification subscription + tags: + - Notification Preferences + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PostNotificationPreferenceRequest" + examples: + addNotificationPreferenceNotNull: + summary: With non-null resource identifier + value: + eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173 + resourceIdentifier: 44 + addNotificationPreferenceNull: + summary: With null resource identifier + value: + eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173 + resourceIdentifier: null + responses: + "201": + description: Notification preference added successfully + content: + application/json: + schema: + $ref: "#/components/schemas/PostNotificationPreferenceResponse" + examples: + addNotificationPreferenceResponse: + value: + notificationPreferenceId: d4e5f6a7-b8c9-40d1-ef01-234567890abc + "400": + description: Bad request + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/400Response" + "401": + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/401Response" + "404": + description: Not found + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/404Response" + "500": + description: Internal server error + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/500Response" + /notificationpreferences/{notificationPreferenceId}: + parameters: + - name: notificationPreferenceId + in: path + required: true + schema: + type: string + format: uuid + example: d4e5f6a7-b8c9-40d1-ef01-234567890abc + patch: + summary: Update a notification preference by ID + tags: + - Notification Preferences + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PatchNotificationPreferenceRequest" + examples: + updateNotificationPreferenceRequest: + value: + resourceIdentifier: 55 + responses: + "200": + description: Notification preference updated successfully + content: + application/json: + schema: + $ref: "#/components/schemas/PatchNotificationPreferenceResponse" + examples: + updateNotificationPreferenceResponse: + value: + notificationPreferenceId: d4e5f6a7-b8c9-40d1-ef01-234567890abc + "400": + description: Bad request + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/400Response" + "401": + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/401Response" + "404": + description: Not found + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/404Response" + "500": + description: Internal server error + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/500Response" + delete: + summary: Delete a notification preference by ID + tags: + - Notification Preferences + responses: + "204": + description: No content + "400": + description: Bad request + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/400Response" + "401": + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/401Response" + "404": + description: Not found + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/404Response" + "500": + description: Internal server error + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/500Response" /notificationcategories: get: tags: @@ -1285,6 +1451,40 @@ components: type: string format: uuid example: 30b32657-1ba1-44e0-8868-4db807695387 + PostNotificationPreferenceRequest: + type: object + properties: + eventTypeChannelId: + type: string + format: uuid + example: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + resourceIdentifier: + type: string + format: uuid + example: d4e5f678-49ab-bcde-2345-678901bcdef0 + required: + - eventTypeChannelId + PostNotificationPreferenceResponse: + type: object + properties: + notificationPreferenceId: + type: string + format: uuid + example: d4e5f678-49ab-bcde-2345-678901bcdef0 + PatchNotificationPreferenceRequest: + type: object + properties: + resourceIdentifier: + type: string + format: uuid + example: d4e5f678-49ab-bcde-2345-678901bcdef0 + PatchNotificationPreferenceResponse: + type: object + properties: + notificationPreferenceId: + type: string + format: uuid + example: d4e5f678-49ab-bcde-2345-678901bcdef0 GetEventOriginsResponse: type: object properties: -- 2.45.2 From aa4721c651580f1340239fa7bbdd4d20cc367f86 Mon Sep 17 00:00:00 2001 From: "b.boterman@htm.nl" Date: Wed, 14 Jan 2026 13:05:32 +0100 Subject: [PATCH 7/7] OVPAY-2394 - Processed review remarks. --- src/openapi/customers/notifications-crud.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/openapi/customers/notifications-crud.yaml b/src/openapi/customers/notifications-crud.yaml index 24eb33c..22821dd 100644 --- a/src/openapi/customers/notifications-crud.yaml +++ b/src/openapi/customers/notifications-crud.yaml @@ -31,6 +31,12 @@ paths: schema: type: integer description: Filter by customer profile ID + - name: ovPayTokenId + in: query + required: false + schema: + type: integer + description: Filter by OV Pay token ID - name: isCurrentlyActive in: query required: false @@ -50,7 +56,7 @@ paths: type: string enum: [none, notificationPreference, eventTypeChannel] default: none - description: "Expand nested attributes. Possible values: `none`, `eventType`, and `eventTypeChannel`." + description: "Expand nested attributes. Possible values: `none`, `notificationPreference`, and `eventTypeChannel`." responses: "200": description: A list of notification subscriptions -- 2.45.2