Compare commits

...

9 Commits

2 changed files with 865 additions and 317 deletions

View File

@ -31,6 +31,12 @@ paths:
schema: schema:
type: integer type: integer
description: Filter by customer profile ID description: Filter by customer profile ID
- name: ovPayTokenId
in: query
required: false
schema:
type: integer
description: Filter by OV Pay token ID
- name: isCurrentlyActive - name: isCurrentlyActive
in: query in: query
required: false required: false
@ -44,6 +50,13 @@ paths:
type: integer type: integer
default: 1 default: 1
description: Limit the number of subscription activities returned per subscription (default is 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`, `notificationPreference`, and `eventTypeChannel`."
responses: responses:
"200": "200":
description: A list of notification subscriptions description: A list of notification subscriptions
@ -53,17 +66,21 @@ paths:
$ref: "#/components/schemas/GetNotificationSubscriptionsResponse" $ref: "#/components/schemas/GetNotificationSubscriptionsResponse"
examples: examples:
emptyNotificationSubscriptionResponse: emptyNotificationSubscriptionResponse:
summary: No notification subscriptions found
value: value:
notificationSubscriptions: [] notificationSubscriptions: []
href: null href: null
fullNotificationSubscriptionResponse: notificationSubscriptionResponse?expand=none:
summary: Return notification subscriptions without nested attributes (expand=none)
value: value:
notificationSubscriptions: notificationSubscriptions:
- notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
notificationCategory: notificationCategory:
notificationCategoryId: 1 notificationCategoryId: 1
name: Mijn Reizen name: Mijn Reizen
groupName: Mijn Passen
customerProfileId: 1337 customerProfileId: 1337
ovPayTokenId: 42
subscriptionActivities: subscriptionActivities:
- subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387 - subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387
user: "1001337" user: "1001337"
@ -77,7 +94,9 @@ paths:
notificationCategory: notificationCategory:
notificationCategoryId: 2 notificationCategoryId: 2
name: Nieuwsbrief aanmelding name: Nieuwsbrief aanmelding
groupName: Marketing
customerProfileId: 1338 customerProfileId: 1338
ovPayTokenId: null
subscriptionActivities: subscriptionActivities:
- subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4 - subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4
user: "1001338" user: "1001338"
@ -88,6 +107,113 @@ paths:
timestamp: "2025-10-02T14:00:00Z" timestamp: "2025-10-02T14:00:00Z"
isActive: true isActive: true
href: null 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
resourceName:
resourceNameId: 8
name: devices
isDefault: true
isMandatory: false
resourceIdentifier: null
- notificationPreferenceId: e5f6a7b8-c9d0-41e2-f012-34567890abcd
eventTypeChannelId:
eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d
channel:
channelId: 2
name: email
resourceName:
resourceNameId: 4
name: customers
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": "400":
description: Bad request description: Bad request
content: content:
@ -175,18 +301,71 @@ paths:
type: object type: object
$ref: "#/components/schemas/500Response" $ref: "#/components/schemas/500Response"
/notificationsubscriptions/{notificationSubscriptionId}: /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: delete:
summary: Delete a notification subscription by ID summary: Delete a notification subscription by ID
tags: tags:
- Notification Subscriptions - Notification Subscriptions
parameters:
- name: notificationSubscriptionId
in: path
required: true
schema:
type: string
format: uuid
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
responses: responses:
"204": "204":
description: No content description: No content
@ -282,12 +461,196 @@ paths:
schema: schema:
type: object type: object
$ref: "#/components/schemas/500Response" $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: /notificationcategories:
get: get:
tags: tags:
- Notification Categories - Notification Categories
summary: Get all notification categories. summary: Get all notification categories.
parameters: 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 - name: expand
in: query in: query
schema: schema:
@ -309,35 +672,48 @@ paths:
notificationCategories: notificationCategories:
- notificationCategoryId: 1 - notificationCategoryId: 1
name: Mijn Reizen name: Mijn Reizen
groupName: Mijn Passen
- notificationCategoryId: 2 - notificationCategoryId: 2
name: Nieuwsbrief aanmelding name: Nieuwsbrief aanmelding
groupName: Marketing
- notificationCategoryId: 3 - notificationCategoryId: 3
name: Mijn Passen name: Serviceberichten
groupName: Mijn Passen
getNotifactionCategories?expand=eventType: getNotifactionCategories?expand=eventType:
summary: Return all the notification categories with nested event types (expand=eventType) summary: Return all the notification categories with nested event types (expand=eventType)
value: value:
notificationCategories: notificationCategories:
- notificationCategoryId: 1 - notificationCategoryId: 1
name: Mijn Reizen name: Mijn Reizen
groupName: Mijn Passen
eventTypes: eventTypes:
- eventTypeId: 2 - eventTypeId: 2
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: ALERTS, TRAVEL_SCHEME name: TRIPS
subName: CI subName: CKI
prettyName: Check In prettyName: Normal Check-in
optinRequired: false optinRequired: false
originSubscription:
originSubscriptionId: a1b2c3d4-e5f6-4789-abcd-1234567890ab
name: GBO_TRIPS
externalSubscriptionId: fedcba98-7654-3210-fedc-ba9876543210
- eventTypeId: 3 - eventTypeId: 3
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: ALERTS, PAD name: PAD
subName: null subName: AMEND
prettyName: Profielgegevens op de pas prettyName: PAD Wijzigen/Aanvullen
optinRequired: false optinRequired: false
originSubscription:
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
name: GBO_PAD
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
- notificationCategoryId: 2 - notificationCategoryId: 2
name: Nieuwsbrief aanmelding name: Nieuwsbrief aanmelding
groupName: Marketing
eventTypes: eventTypes:
- eventTypeId: 1 - eventTypeId: 1
eventOrigin: eventOrigin:
@ -347,76 +723,108 @@ paths:
subName: null subName: null
prettyName: HTM nieuwsbrief prettyName: HTM nieuwsbrief
optinRequired: false optinRequired: false
originSubscription: null
- notificationCategoryId: 3 - notificationCategoryId: 3
name: Mijn Passen name: Serviceberichten
groupName: Mijn Passen
eventTypes: eventTypes:
- eventTypeId: 4 - eventTypeId: 4
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: ALERTS, CARD name: PRODUCT
subName: null subName: ACTIVATE
prettyName: Mijn passen prettyName: Product Geactiveerd
optinRequired: false optinRequired: false
originSubscription:
originSubscriptionId: f1a2b3c4-d5e6-4789-abcd-3456789012de
name: GBO_PRODUCT
externalSubscriptionId: 12345678-90ab-cdef-1234-567890abcdef
- eventTypeId: 5 - eventTypeId: 5
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: ALERTS, PAD name: PAD
subName: null subName: MARK
prettyName: Profielgegevens op de pas prettyName: PAD Markering
optinRequired: false optinRequired: false
originSubscription:
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
name: GBO_PAD
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
getNotifactionCategories?expand=eventTypeChannel: getNotifactionCategories?expand=eventTypeChannel:
summary: Return all the notification categories with all nested attributes (expand=eventTypeChannel) summary: Return all the notification categories with all nested attributes (expand=eventTypeChannel)
value: value:
notificationCategories: notificationCategories:
- notificationCategoryId: 1 - notificationCategoryId: 1
name: Mijn Reizen name: Mijn Reizen
groupName: Mijn Passen
eventTypes: eventTypes:
- eventTypeId: 2 - eventTypeId: 2
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: ALERTS, TRAVEL_SCHEME name: TRIPS
subName: CI subName: CKI
prettyName: Check In prettyName: Normal Check-in
optinRequired: false optinRequired: false
originSubscription:
originSubscriptionId: a1b2c3d4-e5f6-4789-abcd-1234567890ab
name: GBO_TRIPS
externalSubscriptionId: fedcba98-7654-3210-fedc-ba9876543210
eventTypeChannels: eventTypeChannels:
- eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173 - eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173
channel: channel:
channelId: 1 channelId: 1
name: push name: push
resourceName:
resourceNameId: 8
name: devices
isDefault: true isDefault: true
isMandatory: false isMandatory: false
- eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d - eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d
channel: channel:
channelId: 2 channelId: 2
name: email name: email
resourceName:
resourceNameId: 4
name: customers
isDefault: false isDefault: false
isMandatory: false isMandatory: false
- eventTypeId: 3 - eventTypeId: 3
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: ALERTS, PAD name: PAD
subName: null subName: AMEND
prettyName: Profielgegevens op de pas prettyName: PAD Wijzigen/Aanvullen
optinRequired: false optinRequired: false
originSubscription:
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
name: GBO_PAD
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
eventTypeChannels: eventTypeChannels:
- eventTypeChannelId: 8e7df8f1-7e50-482f-8301-d399e75fd432 - eventTypeChannelId: 8e7df8f1-7e50-482f-8301-d399e75fd432
channel: channel:
channelId: 1 channelId: 1
name: push name: push
resourceName:
resourceNameId: 8
name: devices
isDefault: true isDefault: true
isMandatory: false isMandatory: false
- eventTypeChannelId: 72960a92-1855-469f-9cfd-5d72f57106f2 - eventTypeChannelId: 72960a92-1855-469f-9cfd-5d72f57106f2
channel: channel:
channelId: 2 channelId: 2
name: email name: email
resourceName:
resourceNameId: 4
name: customers
isDefault: false isDefault: false
isMandatory: false isMandatory: false
- notificationCategoryId: 2 - notificationCategoryId: 2
name: Nieuwsbrief aanmelding name: Nieuwsbrief aanmelding
groupName: Marketing
eventTypes: eventTypes:
- eventTypeId: 1 - eventTypeId: 1
eventOrigin: eventOrigin:
@ -426,56 +834,81 @@ paths:
subName: null subName: null
prettyName: HTM nieuwsbrief prettyName: HTM nieuwsbrief
optinRequired: false optinRequired: false
originSubscription: null
eventTypeChannels: eventTypeChannels:
- eventTypeChannelId: 447a1116-6cd7-4645-8c3d-43237b6186cd - eventTypeChannelId: 447a1116-6cd7-4645-8c3d-43237b6186cd
channel: channel:
channelId: 2 channelId: 2
name: email name: email
resourceName:
resourceNameId: 4
name: customers
isDefault: true isDefault: true
isMandatory: false isMandatory: false
- notificationCategoryId: 3 - notificationCategoryId: 3
name: Mijn Passen name: Serviceberichten
groupName: Mijn Passen
eventTypes: eventTypes:
- eventTypeId: 4 - eventTypeId: 4
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: ALERTS, CARD name: PRODUCT
subName: null subName: ACTIVATE
prettyName: Mijn passen prettyName: Product Geactiveerd
optinRequired: false optinRequired: false
originSubscription:
originSubscriptionId: f1a2b3c4-d5e6-4789-abcd-3456789012de
name: GBO_PRODUCT
externalSubscriptionId: 12345678-90ab-cdef-1234-567890abcdef
eventTypeChannels: eventTypeChannels:
- eventTypeChannelId: be07c7bb-714b-4637-acf5-a67025ad8e60 - eventTypeChannelId: be07c7bb-714b-4637-acf5-a67025ad8e60
channel: channel:
channelId: 1 channelId: 1
name: push name: push
resourceName:
resourceNameId: 8
name: devices
isDefault: true isDefault: true
isMandatory: false isMandatory: false
- eventTypeChannelId: 0c797b5a-ed34-494b-8c64-0a832830d392 - eventTypeChannelId: 0c797b5a-ed34-494b-8c64-0a832830d392
channel: channel:
channelId: 2 channelId: 2
name: email name: email
resourceName:
resourceNameId: 4
name: customers
isDefault: false isDefault: false
isMandatory: false isMandatory: false
- eventTypeId: 5 - eventTypeId: 5
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: ALERTS, PAD name: PAD
subName: null subName: MARK
prettyName: Profielgegevens op de pas prettyName: PAD Markering
optinRequired: false optinRequired: false
originSubscription:
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
name: GBO_PAD
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
eventTypeChannels: eventTypeChannels:
- eventTypeChannelId: b910368f-c045-4e8e-b01d-bcbc78708bac - eventTypeChannelId: b910368f-c045-4e8e-b01d-bcbc78708bac
channel: channel:
channelId: 1 channelId: 1
name: push name: push
resourceName:
resourceNameId: 8
name: devices
isDefault: true isDefault: true
isMandatory: false isMandatory: false
- eventTypeChannelId: 93e773da-ba3b-48da-9a0e-ee478eaa752f - eventTypeChannelId: 93e773da-ba3b-48da-9a0e-ee478eaa752f
channel: channel:
channelId: 2 channelId: 2
name: email name: email
resourceName:
resourceNameId: 4
name: customers
isDefault: false isDefault: false
isMandatory: false isMandatory: false
"400": "400":
@ -596,12 +1029,24 @@ paths:
channels: channels:
- channelId: 1 - channelId: 1
name: push name: push
resourceName:
resourceNameId: 8
name: devices
- channelId: 2 - channelId: 2
name: email name: email
resourceName:
resourceNameId: 4
name: customers
- channelId: 3 - channelId: 3
name: sms name: sms
resourceName:
resourceNameId: 4
name: customers
- channelId: 4 - channelId: 4
name: mail name: mail
resourceName:
resourceNameId: 4
name: customers
"400": "400":
description: Bad request description: Bad request
content: content:
@ -750,6 +1195,7 @@ paths:
notificationCategory: notificationCategory:
notificationCategoryId: 1 notificationCategoryId: 1
name: Mijn Reizen name: Mijn Reizen
groupName: Mijn Passen
- eventType: - eventType:
eventTypeId: 16 eventTypeId: 16
eventOrigin: eventOrigin:
@ -762,6 +1208,7 @@ paths:
notificationCategory: notificationCategory:
notificationCategoryId: 1 notificationCategoryId: 1
name: Mijn Reizen name: Mijn Reizen
groupName: Mijn Passen
"400": "400":
description: Bad request description: Bad request
content: content:
@ -827,6 +1274,9 @@ paths:
channel: channel:
channelId: 1 channelId: 1
name: push name: push
resourceName:
resourceNameId: 8
name: devices
isDefault: true isDefault: true
isMandatory: false isMandatory: false
- eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 - eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5
@ -842,6 +1292,9 @@ paths:
channel: channel:
channelId: 1 channelId: 1
name: push name: push
resourceName:
resourceNameId: 8
name: devices
isDefault: true isDefault: true
isMandatory: false isMandatory: false
"400": "400":
@ -962,6 +1415,24 @@ components:
type: string type: string
format: uuid format: uuid
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 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: PostSubscriptionActivityRequest:
type: object type: object
properties: properties:
@ -986,6 +1457,40 @@ components:
type: string type: string
format: uuid format: uuid
example: 30b32657-1ba1-44e0-8868-4db807695387 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: GetEventOriginsResponse:
type: object type: object
properties: properties:
@ -1076,6 +1581,24 @@ components:
optInRequired: optInRequired:
type: boolean type: boolean
example: true 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: eventTypeChannels:
type: array type: array
items: items:
@ -1107,9 +1630,22 @@ components:
name: name:
type: string type: string
example: push example: push
resourceName:
type: object
properties:
resourceNameId:
type: integer
example: 8
name:
type: string
example: devices
required:
- resourceNameId
- name
required: required:
- channelId - channelId
- name - name
- resourceName
NotificationCategory: NotificationCategory:
type: object type: object
properties: properties:
@ -1119,6 +1655,9 @@ components:
name: name:
type: string type: string
example: Mijn Reizen example: Mijn Reizen
groupName:
type: string
example: Mijn Passen
eventTypes: eventTypes:
type: array type: array
items: items:

View File

@ -1009,6 +1009,8 @@ paths:
"value": "vlad.harkonnen@househarkonnen.net", "value": "vlad.harkonnen@househarkonnen.net",
}, },
], ],
"fromInclusive": "2024-10-04T12:34:56.000",
"untilInclusive": "2025-10-04T12:34:56.000",
} }
responses: responses:
"201": "201":
@ -1104,6 +1106,8 @@ paths:
"value": "vlad.harkonnen@househarkonnen.net", "value": "vlad.harkonnen@househarkonnen.net",
}, },
], ],
"fromInclusive": "2024-10-04T12:34:56.000",
"untilInclusive": "2025-10-04T12:34:56.000",
}, },
], ],
} }
@ -1181,262 +1185,266 @@ paths:
Create Single Purchased GBO Product: Create Single Purchased GBO Product:
value: value:
{ {
"purchasedProducts":[ "purchasedProducts":
{ [
"productId": 11, {
"createdOn": "2024-10-04T12:34:56.000", "productId": 11,
"lastUpdatedOn": "2024-10-04T12:34:56.000", "createdOn": "2024-10-04T12:34:56.000",
"purchasedProductResources": "lastUpdatedOn": "2024-10-04T12:34:56.000",
[ "purchasedProductResources":
{ [
"resourceNameId": 1, {
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7", "resourceNameId": 1,
}, "resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
{ },
"resourceNameId": 2, {
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e", "resourceNameId": 2,
}, "resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
], },
"purchasedGboProducts": ],
[ "purchasedGboProducts":
{ [
"salesTimestamp": "2024-10-04T12:34:56.000", {
"refundTimestamp": "2024-10-04T12:34:56.000", "salesTimestamp": "2024-10-04T12:34:56.000",
"fromInclusive": "2024-10-04T12:34:56.000", "refundTimestamp": "2024-10-04T12:34:56.000",
"untilInclusive": "2024-10-04T12:34:56.000", "fromInclusive": "2024-10-04T12:34:56.000",
"packageTemplateId": "30003", "untilInclusive": "2024-10-04T12:34:56.000",
"xBot": "f15efe6f-7353-4968-b134-60ba6fc2da8b", "packageTemplateId": "30003",
"xTat": "42efebf7-132e-4ee0-9cbb-4037a9a54ad8", "xBot": "f15efe6f-7353-4968-b134-60ba6fc2da8b",
"xSpit": "d67b2f72-918a-4e6c-957d-a39ed9c9e16b", "xTat": "42efebf7-132e-4ee0-9cbb-4037a9a54ad8",
"customerTokenId": "b6492322-c458-4857-9ac3-a109c1887b9f", "xSpit": "d67b2f72-918a-4e6c-957d-a39ed9c9e16b",
"ovPayTokenId": 13, "customerTokenId": "b6492322-c458-4857-9ac3-a109c1887b9f",
"createdOn": "2024-10-04T12:34:56.000", "ovPayTokenId": 13,
"lastUpdatedOn": "2024-10-04T12:34:56.000", "createdOn": "2024-10-04T12:34:56.000",
"createdBy": "someuser", "lastUpdatedOn": "2024-10-04T12:34:56.000",
"lastUpdatedBy": null, "createdBy": "someuser",
}, "lastUpdatedBy": null,
], },
"purchasedTapconnectTickets": [], ],
"issuedVouchers": [], "purchasedTapconnectTickets": [],
} "issuedVouchers": [],
] },
],
} }
Create Single Purchased TapConnet Ticket: Create Single Purchased TapConnet Ticket:
value: value:
{ {
"purchasedProducts":[ "purchasedProducts":
{ [
"productId": 11, {
"createdOn": "2024-10-04T12:34:56.000", "productId": 11,
"lastUpdatedOn": "2024-10-04T12:34:56.000", "createdOn": "2024-10-04T12:34:56.000",
"purchasedProductResources": "lastUpdatedOn": "2024-10-04T12:34:56.000",
[ "purchasedProductResources":
{ [
"resourceNameId": 1, {
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7", "resourceNameId": 1,
}, "resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
{ },
"resourceNameId": 2, {
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e", "resourceNameId": 2,
}, "resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
], },
"purchasedGboProducts": [], ],
"purchasedTapconnectTickets": "purchasedGboProducts": [],
[ "purchasedTapconnectTickets":
{ [
"issuedAt": "2024-10-04T12:34:56.000", {
"activatedAt": "2024-10-04T12:34:56.000", "issuedAt": "2024-10-04T12:34:56.000",
"cancelledAt": null, "activatedAt": "2024-10-04T12:34:56.000",
"ticketReference": "KJj43nejhbTxhr897287", "cancelledAt": null,
"createdOn": "2024-10-04T12:34:56.000", "ticketReference": "KJj43nejhbTxhr897287",
"lastUpdatedOn": "2024-10-04T12:34:56.000", "createdOn": "2024-10-04T12:34:56.000",
"createdBy": "user", "lastUpdatedOn": "2024-10-04T12:34:56.000",
"lastUpdatedBy": "user", "createdBy": "user",
}, "lastUpdatedBy": "user",
], },
"issuedVouchers": [], ],
} "issuedVouchers": [],
] },
],
} }
Create Single Issued Voucher: Create Single Issued Voucher:
value: value:
{ {
"purchasedProducts":[ "purchasedProducts":
{ [
"productId": 11, {
"createdOn": "2024-10-04T12:34:56.000", "productId": 11,
"lastUpdatedOn": "2024-10-04T12:34:56.000", "createdOn": "2024-10-04T12:34:56.000",
"purchasedProductResources": "lastUpdatedOn": "2024-10-04T12:34:56.000",
[ "purchasedProductResources":
{ [
"resourceNameId": 1, {
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7", "resourceNameId": 1,
}, "resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
{ },
"resourceNameId": 2, {
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e", "resourceNameId": 2,
}, "resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
], },
"purchasedGboProducts": [], ],
"purchasedTapconnectTickets": [], "purchasedGboProducts": [],
"issuedVouchers": "purchasedTapconnectTickets": [],
[ "issuedVouchers":
{ [
"voucherCode": "VOUCHER123", {
"voucherStatusInstances": "voucherCode": "VOUCHER123",
[ "voucherStatusInstances":
{ [
"voucherStatusId": 1, {
"createdOn": "2024-10-04T12:34:56.000", "voucherStatusId": 1,
}, "createdOn": "2024-10-04T12:34:56.000",
], },
"voucherClaims": ],
[ "voucherClaims":
{ [
"mandatoryCustomerDataItemId": 8, {
"value": "1999-12-31", "mandatoryCustomerDataItemId": 8,
}, "value": "1999-12-31",
{ },
"mandatoryCustomerDataItemId": 4, {
"value": "vlad.harkonnen@househarkonnen.net", "mandatoryCustomerDataItemId": 4,
}, "value": "vlad.harkonnen@househarkonnen.net",
], },
}, ],
], },
} ],
] },
],
} }
Create Multiple Issued Vouchers: Create Multiple Issued Vouchers:
value: value:
{ {
"purchasedProducts":[ "purchasedProducts":
{ [
"productId": 11, {
"createdOn": "2024-10-04T12:34:56.000", "productId": 11,
"lastUpdatedOn": "2024-10-04T12:34:56.000", "createdOn": "2024-10-04T12:34:56.000",
"purchasedProductResources": "lastUpdatedOn": "2024-10-04T12:34:56.000",
[ "purchasedProductResources":
{ [
"resourceNameId": 1, {
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7", "resourceNameId": 1,
}, "resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
{ },
"resourceNameId": 2, {
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e", "resourceNameId": 2,
}, "resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
], },
"purchasedGboProducts": [], ],
"purchasedTapconnectTickets": [], "purchasedGboProducts": [],
"issuedVouchers": "purchasedTapconnectTickets": [],
[ "issuedVouchers":
{ [
"voucherCode": "VOUCHER123", {
"voucherStatusInstances": "voucherCode": "VOUCHER123",
[ "voucherStatusInstances":
{ [
"voucherStatusId": 1, {
"createdOn": "2024-10-04T12:34:56.000", "voucherStatusId": 1,
}, "createdOn": "2024-10-04T12:34:56.000",
], },
"voucherClaims": ],
[ "voucherClaims":
{ [
"mandatoryCustomerDataItemId": 8, {
"value": "1999-12-31", "mandatoryCustomerDataItemId": 8,
}, "value": "1999-12-31",
{ },
"mandatoryCustomerDataItemId": 4, {
"value": "vlad.harkonnen@househarkonnen.net", "mandatoryCustomerDataItemId": 4,
}, "value": "vlad.harkonnen@househarkonnen.net",
], },
}, ],
], },
}, ],
{ },
"productId": 11, {
"createdOn": "2024-10-04T12:34:56.000", "productId": 11,
"lastUpdatedOn": "2024-10-04T12:34:56.000", "createdOn": "2024-10-04T12:34:56.000",
"purchasedProductResources": "lastUpdatedOn": "2024-10-04T12:34:56.000",
[ "purchasedProductResources":
{ [
"resourceNameId": 1, {
"resourceIdentifier": "7ce32f9b-52f0-4e80-a527-0c6184b57f52", "resourceNameId": 1,
}, "resourceIdentifier": "7ce32f9b-52f0-4e80-a527-0c6184b57f52",
{ },
"resourceNameId": 2, {
"resourceIdentifier": "02047745-f03e-4c00-8e1b-8dc5c86a786e", "resourceNameId": 2,
}, "resourceIdentifier": "02047745-f03e-4c00-8e1b-8dc5c86a786e",
], },
"purchasedGboProducts": [], ],
"purchasedTapconnectTickets": [], "purchasedGboProducts": [],
"issuedVouchers": "purchasedTapconnectTickets": [],
[ "issuedVouchers":
{ [
"voucherCode": "VOUCHER123", {
"voucherStatusInstances": "voucherCode": "VOUCHER123",
[ "voucherStatusInstances":
{ [
"voucherStatusId": 1, {
"createdOn": "2024-10-04T12:34:56.000", "voucherStatusId": 1,
}, "createdOn": "2024-10-04T12:34:56.000",
], },
"voucherClaims": ],
[ "voucherClaims":
{ [
"mandatoryCustomerDataItemId": 8, {
"value": "1940-01-18", "mandatoryCustomerDataItemId": 8,
}, "value": "1940-01-18",
{ },
"mandatoryCustomerDataItemId": 4, {
"value": "valdemar.hoskanner@househarkonnen.net", "mandatoryCustomerDataItemId": 4,
}, "value": "valdemar.hoskanner@househarkonnen.net",
], },
}, ],
], },
}, ],
{ },
"productId": 11, {
"createdOn": "2024-10-04T12:34:56.000", "productId": 11,
"lastUpdatedOn": "2024-10-04T12:34:56.000", "createdOn": "2024-10-04T12:34:56.000",
"purchasedProductResources": "lastUpdatedOn": "2024-10-04T12:34:56.000",
[ "purchasedProductResources":
{ [
"resourceNameId": 1, {
"resourceIdentifier": "7c71ec8a-3326-451f-9464-3e36d10260e3", "resourceNameId": 1,
}, "resourceIdentifier": "7c71ec8a-3326-451f-9464-3e36d10260e3",
{ },
"resourceNameId": 2, {
"resourceIdentifier": "73c7a805-2edf-4616-a04c-267e88e0931c", "resourceNameId": 2,
}, "resourceIdentifier": "73c7a805-2edf-4616-a04c-267e88e0931c",
], },
"purchasedGboProducts": [], ],
"purchasedTapconnectTickets": [], "purchasedGboProducts": [],
"issuedVouchers": "purchasedTapconnectTickets": [],
[ "issuedVouchers":
{ [
"voucherCode": "VOUCHER123", {
"voucherStatusInstances": "voucherCode": "VOUCHER123",
[ "voucherStatusInstances":
{ [
"voucherStatusId": 1, {
"createdOn": "2024-10-04T12:34:56.000", "voucherStatusId": 1,
}, "createdOn": "2024-10-04T12:34:56.000",
], },
"voucherClaims": ],
[ "voucherClaims":
{ [
"mandatoryCustomerDataItemId": 8, {
"value": "2016-06-08", "mandatoryCustomerDataItemId": 8,
}, "value": "2016-06-08",
{ },
"mandatoryCustomerDataItemId": 4, {
"value": "alia.artreides@housearteides.net", "mandatoryCustomerDataItemId": 4,
}, "value": "alia.artreides@housearteides.net",
], },
}, ],
], },
} ],
] },
],
} }
responses: responses:
"202": "202":
@ -1485,7 +1493,7 @@ paths:
description: | description: |
Body of a batch of purchased products that was successfully created. Body of a batch of purchased products that was successfully created.
A number of purchased products were created. A number of purchased products were created.
value: value:
startTime: "2025-02-14T05:32:47.067Z" startTime: "2025-02-14T05:32:47.067Z"
status: "Finished" status: "Finished"
clientTrackingId: "08584620957189579629541919368CU00" clientTrackingId: "08584620957189579629541919368CU00"
@ -1496,7 +1504,7 @@ paths:
updated: 0 updated: 0
total: 13 total: 13
/voucherstatusinstances/bulk: /voucherstatusinstances/bulk:
post: post:
summary: Post voucher status instances in bulk. summary: Post voucher status instances in bulk.
description: Post voucher status instances in bulk. description: Post voucher status instances in bulk.
tags: tags:
@ -1512,35 +1520,36 @@ paths:
summary: List of issued vouchers to set status to revoked summary: List of issued vouchers to set status to revoked
description: List of issued vouchers to set status to revoked description: List of issued vouchers to set status to revoked
value: value:
{ {
"voucherStatusInstances":[ "voucherStatusInstances":
{ [
"issuedVoucherId": "8a63552f-faf5-43f3-b22d-bebc976a8a5e", {
"voucherStatusId": 4, "issuedVoucherId": "8a63552f-faf5-43f3-b22d-bebc976a8a5e",
"createdOn": "2024-10-04T12:34:56.000" "voucherStatusId": 4,
}, "createdOn": "2024-10-04T12:34:56.000",
{ },
"issuedVoucherId": "a9ff40ec-2940-413a-9957-dfd471c4caf3", {
"voucherStatusId": 4, "issuedVoucherId": "a9ff40ec-2940-413a-9957-dfd471c4caf3",
"createdOn": "2024-10-04T12:34:56.000" "voucherStatusId": 4,
}, "createdOn": "2024-10-04T12:34:56.000",
{ },
"issuedVoucherId": "9e7363e6-beaa-4c38-9ed6-c8afed459bd5", {
"voucherStatusId": 4, "issuedVoucherId": "9e7363e6-beaa-4c38-9ed6-c8afed459bd5",
"createdOn": "2024-10-04T12:34:56.000" "voucherStatusId": 4,
}, "createdOn": "2024-10-04T12:34:56.000",
{ },
"issuedVoucherId": "9d7332d6-1949-4c20-aa99-d87096b035fa", {
"voucherStatusId": 4, "issuedVoucherId": "9d7332d6-1949-4c20-aa99-d87096b035fa",
"createdOn": "2024-10-04T12:34:56.000" "voucherStatusId": 4,
}, "createdOn": "2024-10-04T12:34:56.000",
{ },
"issuedVoucherId": "43ca757b-8370-4cb0-92b9-717948383d5e", {
"voucherStatusId": 4, "issuedVoucherId": "43ca757b-8370-4cb0-92b9-717948383d5e",
"createdOn": "2024-10-04T12:34:56.000" "voucherStatusId": 4,
}, "createdOn": "2024-10-04T12:34:56.000",
] },
} ],
}
responses: responses:
"202": "202":
description: Accepted description: Accepted
@ -1588,7 +1597,7 @@ paths:
description: | description: |
Body of a batch of voucher status instances that was successfully created. Body of a batch of voucher status instances that was successfully created.
A number of voucher status instances were created. A number of voucher status instances were created.
value: value:
startTime: "2025-02-14T05:32:47.067Z" startTime: "2025-02-14T05:32:47.067Z"
status: "Finished" status: "Finished"
clientTrackingId: "08584620957189579629541919368CU00" clientTrackingId: "08584620957189579629541919368CU00"
@ -1597,7 +1606,7 @@ paths:
summary: summary:
created: 5 created: 5
updated: 0 updated: 0
total: 5 total: 5
components: components:
securitySchemes: securitySchemes:
bearerToken: bearerToken:
@ -1627,8 +1636,8 @@ components:
retryAfter: retryAfter:
type: integer type: integer
example: 10 example: 10
summary: summary:
$ref: "#/components/schemas/summaryBody" $ref: "#/components/schemas/summaryBody"
required: required:
- startTime - startTime
- status - status
@ -1656,7 +1665,7 @@ components:
- total - total
- updated - updated
required: required:
- summary - summary
rfc9457: rfc9457:
type: object type: object
properties: properties: