Compare commits

...

18 Commits

Author SHA1 Message Date
5133903efb OVPAY-2394 - Added example for no notificationCategories found. 2026-01-21 11:03:45 +01:00
cf0d24632f Merge pull request 'feature/OVPAY-2394' (#49) from feature/OVPAY-2394 into develop
Reviewed-on: #49
2026-01-14 12:06:39 +00:00
aa4721c651 OVPAY-2394 - Processed review remarks. 2026-01-14 13:05:32 +01:00
46bf7874d9 OVPAY-2394 - Added POST, PATCH and DELETE operations for NotificationPreferences. 2026-01-13 16:08:39 +01:00
1a14918f4a OVPAY-2394 - Added PATCH /notificationsubscriptions/{uuid}. 2026-01-13 15:45:52 +01:00
7147318900 OVPAY-2394 - Added resourceNameId to Channel. 2026-01-13 15:38:48 +01:00
e0f78d2e38 OVPAY-2394 - Updated GET /notificationsubscriptions examples. 2026-01-13 15:19:49 +01:00
ab57e27c1d OVPAY-2394 - Added OriginSubscription. 2026-01-12 15:08:32 +01:00
68c7ccc279 OVPAY-2394 - Added groupName to NotificationCategory. Added query params. 2026-01-12 13:41:20 +01:00
8946026860 Added fromInclusive and untilInclusive. 2026-01-05 13:34:12 +01:00
fb8723124a Merge pull request 'OVPAY-2378 - Updated spec for /contractpayments.' (#46) from feature/OVPAY-2378 into develop
Reviewed-on: #46
Reviewed-by: Max Martens <m.martens@htm.nl>
2025-12-29 12:31:57 +00:00
6d7c260e9e OVPAY-2378 - PaymentMethod in NL. 2025-12-29 12:32:59 +01:00
292588b7ba OVPAY-2378 - Updated spec for /contractpayments. 2025-12-29 12:01:12 +01:00
4bd216bd37 Merge pull request 'features/OVPAY2294-vouchers-in-orders' (#45) from features/OVPAY2294-vouchers-in-orders into develop
Reviewed-on: #45
Reviewed-by: Bas Boterman <b.boterman@htm.nl>
2025-12-16 13:57:40 +00:00
bfaa1ddcb1 fixed comments 2025-12-16 14:52:23 +01:00
55bac27561 simplified order_orderVoucherId 2025-12-15 15:36:51 +01:00
Max Martens
715a9668fc Clear up name and description of token transfer V2 endpoints 2025-12-15 14:27:48 +01:00
b4f20a9758 moved changes to TP orders to another branch and made equal to develop in this branch 2025-12-15 11:50:39 +01:00
6 changed files with 1084 additions and 626 deletions

View File

@ -597,9 +597,13 @@ paths:
schema: schema:
$ref: "#/components/schemas/unavailable" $ref: "#/components/schemas/unavailable"
examples: examples:
List all contract payments for a single debtor: Empty list:
summary: List all contract payments for a single debtor summary: Empty list
description: List all contract payments for single debtor with debtor number 'D123456'. description: List all contract payments for a debtor with no payments.
value: { "contractPayments": [] }
Successful direct debit:
summary: Successful direct debit
description: One payment for a debtor with a successful direct debit.
value: value:
{ {
"contractPayments": "contractPayments":
@ -607,8 +611,133 @@ paths:
{ {
"paymentId": "151845776", "paymentId": "151845776",
"totalAmount": "26.62", "totalAmount": "26.62",
"paymentMethod": "Twikey", "paymentMethod": "Automatische incasso",
"paymentDate": "2024-09-12", "paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice":
{
"invoiceId": "147722263",
"invoiceNumber": "F2024-0001",
"description": "HTM Maandkorting 20%",
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
},
"_links":
{
"get_contractdetails":
{
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
"method": "GET",
},
},
},
],
}
Direct debit reversal:
summary: Direct debit reversal
description: One payment for a debtor with a reversed direct debit.
value:
{
"contractPayments":
[
{
"paymentId": "151845776",
"totalAmount": "-26.62",
"paymentMethod": "Stornering",
"paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice":
{
"invoiceId": "147722263",
"invoiceNumber": "F2024-0001",
"description": "HTM Maandkorting 20%",
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
},
"_links":
{
"get_contractdetails":
{
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
"method": "GET",
},
},
},
],
}
iDEAL payment:
summary: iDEAL payment
description: One payment for a debtor with an iDEAL payment.
value:
{
"contractPayments":
[
{
"paymentId": "151845776",
"totalAmount": "26.62",
"paymentMethod": "iDEAL",
"paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice":
{
"invoiceId": "147722263",
"invoiceNumber": "F2024-0001",
"description": "HTM Maandkorting 20%",
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
},
"_links":
{
"get_contractdetails":
{
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
"method": "GET",
},
},
},
],
}
Bank transfer:
summary: Bank transfer
description: One payment for a debtor with a bank transfer.
value:
{
"contractPayments":
[
{
"paymentId": "151845776",
"totalAmount": "26.62",
"paymentMethod": "Overboeking",
"paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice":
{
"invoiceId": "147722263",
"invoiceNumber": "F2024-0001",
"description": "HTM Maandkorting 20%",
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
},
"_links":
{
"get_contractdetails":
{
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
"method": "GET",
},
},
},
],
}
List of four payments for one invoice:
summary: List of four payments for one invoice
description: Four payments for a debtor for one invoice; a direct debit, a direct debit reversal, a bank transfer and an iDEAL payment.
value:
{
"contractPayments":
[
{
"paymentId": "151845776",
"totalAmount": "26.62",
"paymentMethod": "Automatische incasso",
"paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice": "invoice":
{ {
"invoiceId": "147722263", "invoiceId": "147722263",
@ -626,22 +755,67 @@ paths:
}, },
}, },
{ {
"paymentId": "151845851", "paymentId": "151845776",
"totalAmount": "45.21", "totalAmount": "-26.62",
"paymentMethod": "Twikey", "paymentMethod": "Stornering",
"paymentDate": "2024-09-12", "paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice": "invoice":
{ {
"invoiceId": "147722266", "invoiceId": "147722263",
"invoiceNumber": "F2024-0002", "invoiceNumber": "F2024-0001",
"description": "HTM Maandkorting 20%", "description": "HTM Maandkorting 20%",
"publicLink": "https://factuurinzien.nl/d/ddb245d6df67999eca48c4a71b5661b93038e20a/i/dp5h1i5cuu94nopiolkdst3u17vkmzo", "publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
}, },
"_links": "_links":
{ {
"get_contractdetails": "get_contractdetails":
{ {
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/7b2f8c1a-3d9d-4c2d-960e-4471e8e28b6a", "href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
"method": "GET",
},
},
},
{
"paymentId": "151845777",
"totalAmount": "10.00",
"paymentMethod": "Overboeking",
"paymentDate": "2024-09-13",
"iban": "NL25INGB******1337",
"invoice":
{
"invoiceId": "147722263",
"invoiceNumber": "F2024-0001",
"description": "HTM Maandkorting 20%",
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
},
"_links":
{
"get_contractdetails":
{
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
"method": "GET",
},
},
},
{
"paymentId": "151845778",
"totalAmount": "16.62",
"paymentMethod": "iDEAL",
"paymentDate": "2024-09-14",
"iban": "NL25INGB******1337",
"invoice":
{
"invoiceId": "147722263",
"invoiceNumber": "F2024-0001",
"description": "HTM Maandkorting 20%",
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
},
"_links":
{
"get_contractdetails":
{
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
"method": "GET", "method": "GET",
}, },
}, },

View File

@ -1964,11 +1964,12 @@ paths:
type: integer type: integer
example: 1 example: 1
required: true required: true
summary: Replace an OVpay token with another (+ transfer products) - V2 (for Integratielaag) summary: |-
description: | NOT TO BE CALLED BY TOUCHPOINTS - Replace an OVpay token with another (+ transfer products) - V2
description: |-
**NOTE: This endpoint is for usage by integratielaag only. Touchpoints should use
`/customers/tokens/{ovpayTokenId}/transfer` instead.**\
Transfer products from one OVpay token to another, and replace the tokens in the database. Transfer products from one OVpay token to another, and replace the tokens in the database.
This endpoint is for usage by integratielaag only. Touch points should use
`/customers/tokens/{ovpayTokenId}/transfer` instead.
requestBody: requestBody:
content: content:
application/json: application/json:
@ -2878,9 +2879,9 @@ paths:
type: integer type: integer
example: 1 example: 1
post: post:
summary: "**INTEGRATIELAAG** Transfer old OVpay token to new OVpay token." summary: "Transfer old OVpay token to new OVpay token."
description: |- description: |-
**Note that this is an integratielaag endpoint, not a Service Engine endpoint!** **Note that this directly calls the integratielaag and not the Service Engine!**
First transfers all personal account data (if present), then all products, of an existing OVpay token First transfers all personal account data (if present), then all products, of an existing OVpay token
to a new OVpay token. The new token will also be persisted in the profile as a replacement to a new OVpay token. The new token will also be persisted in the profile as a replacement
of the old token. This call is asynchronous, and progress can be monitored using the of the old token. This call is asynchronous, and progress can be monitored using the
@ -3019,9 +3020,9 @@ paths:
get: get:
tags: tags:
- Token Replace v2 - Token Replace v2
summary: "**INTEGRATIELAAG** Get the status of the initiated token transfer process (POST)." summary: "Get the status of the initiated token transfer process (POST)."
description: | description: |
**Note that this is an integratielaag endpoint, not a Service Engine endpoint!** Get the status of the **Note that this directly calls the integratielaag and not the Service Engine!** Get the status of the
asynchronous token transfer processing. asynchronous token transfer processing.
responses: responses:
"200": "200":

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:
@ -303,41 +666,58 @@ paths:
schema: schema:
$ref: "#/components/schemas/GetNotificationCategoriesResponse" $ref: "#/components/schemas/GetNotificationCategoriesResponse"
examples: examples:
emptyNotificationCategoriesResponse:
summary: No notification categories found
value:
notificationCategories: []
getNotifactionCategories?expand=none: getNotifactionCategories?expand=none:
summary: Return all the notification categories without nested attributes (expand=none) summary: Return all the notification categories without nested attributes (expand=none)
value: value:
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 +727,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 +838,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 +1033,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 +1199,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 +1212,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 +1278,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 +1296,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 +1419,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 +1461,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 +1585,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 +1634,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 +1659,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

@ -60,6 +60,7 @@ paths:
name: deviceId name: deviceId
schema: schema:
type: string type: string
format: uuid
example: "7a28bd54-7ca9-499a-a722-d15ab858ab99" example: "7a28bd54-7ca9-499a-a722-d15ab858ab99"
required: false required: false
description: The id of the device used to place the order. description: The id of the device used to place the order.
@ -170,46 +171,24 @@ paths:
"description": "Betaling in behandeling", "description": "Betaling in behandeling",
}, },
], ],
"order_OrderVouchers": [ "orderVouchers": [
{ {
"order_OrderVoucherId": "399bd3b3-9721-4f09-a936-d64637de1621", "orderVoucherId": "399bd3b3-9721-4f09-a936-d64637de1621",
"issuedVoucher":{ "issuedVoucher":{
"issuedVoucherId": "a0996218-bc5e-4826-9020-cda98a32838d", "issuedVoucherId": "a0996218-bc5e-4826-9020-cda98a32838d",
"voucherCode": "Voucher1234", "voucherCode": "Voucher1234",
"voucherStatusInstances": "purchasedProductId": 31,
[
{
"voucherStatus":
{
"voucherStatusId": 2,
"name": "issued"
},
"createdOn": "2025-11-22T13:00:00"
}
],
"productId": 31,
"fromInclusive": "2025-03-22T08:55:00", "fromInclusive": "2025-03-22T08:55:00",
"untillInclusive": "2026-03-22T08:55:00" "untillInclusive": "2026-03-22T08:55:00"
}, },
"orderLineId": null "orderLineId": null
}, },
{ {
"order_OrderVoucherId": "f6c7ac42-1811-4e4d-82af-53e18fe16110", "orderVoucherId": "f6c7ac42-1811-4e4d-82af-53e18fe16110",
"issuedVoucher":{ "issuedVoucher":{
"issuedVoucherId": "54668baf-4905-4e9a-af02-09c170f295ed", "issuedVoucherId": "54668baf-4905-4e9a-af02-09c170f295ed",
"voucherCode": "Voucher124", "voucherCode": "Voucher124",
"voucherStatusInstances": "purchasedProductId": 35,
[
{
"voucherStatus":
{
"voucherStatusId": 2,
"name": "issued"
},
"createdOn": "2025-11-22T13:00:00"
}
],
"productId": 35,
"fromInclusive": "2025-03-22T08:55:00", "fromInclusive": "2025-03-22T08:55:00",
"untillInclusive": "2026-03-22T08:55:00" "untillInclusive": "2026-03-22T08:55:00"
}, },
@ -406,7 +385,7 @@ paths:
"description": "Concept order", "description": "Concept order",
}, },
], ],
"order_OrderVouchers": "orderVouchers":
[ [
{ {
"issuedVoucherId": "e81b2197-a6c2-45b6-9560-8ce8442e8604", "issuedVoucherId": "e81b2197-a6c2-45b6-9560-8ce8442e8604",
@ -533,7 +512,7 @@ paths:
"description": "Betaling in behandeling", "description": "Betaling in behandeling",
}, },
], ],
"order_OrderVouchers": null, "orderVouchers": null,
"orderLines": "orderLines":
[ [
{ {
@ -773,12 +752,12 @@ paths:
$ref: "#/components/schemas/unavailable" $ref: "#/components/schemas/unavailable"
example: example:
{ {
"order_orderVoucherId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066", "orderVoucherId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066",
} }
/ordervouchers: /ordervouchers:
parameters: parameters:
- in: query - in: query
name: order_OrderVoucherId name: orderVoucherId
schema: schema:
type: string type: string
format: uuid format: uuid
@ -814,15 +793,22 @@ paths:
example: example:
[ [
{ {
"order_OrderVoucherId": "19ef6882-8eda-43bf-b48e-9b4ff8745a50", "orderVoucherId": "19ef6882-8eda-43bf-b48e-9b4ff8745a50",
"issuedVoucher":{
"issuedVoucherId": "54668baf-4905-4e9a-af02-09c170f295ed",
"voucherCode": "Voucher124",
"purchasedProductId": 35,
"fromInclusive": "2025-03-22T08:55:00",
"untillInclusive": "2026-03-22T08:55:00"
},
"orderId": "f59e4769-53a0-4156-8991-6f9119ba629f", "orderId": "f59e4769-53a0-4156-8991-6f9119ba629f",
"orderLineId": "eeb86071-4f59-405d-b2be-7d7a77044bfa" "orderLineId": "eeb86071-4f59-405d-b2be-7d7a77044bfa"
} }
] ]
/ordervouchers/{order_ordervoucherId}: /ordervouchers/{ordervoucherId}:
parameters: parameters:
- in: path - in: path
name: order_ordervoucherId name: ordervoucherId
schema: schema:
type: string type: string
format: uuid format: uuid
@ -853,7 +839,7 @@ paths:
$ref: "#/components/schemas/unavailable" $ref: "#/components/schemas/unavailable"
example: example:
{ {
"order_orderVoucherId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066", "orderVoucherId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066",
} }
delete: delete:
summary: Delete an order voucher. summary: Delete an order voucher.

View File

@ -5300,261 +5300,6 @@ paths:
}, },
], ],
} }
/orders/{orderId}/ordervouchers:
parameters:
- in: path
name: orderId
required: true
style: simple
explode: false
schema:
type: string
format: uuid
example: a0ef57fa-395c-4a03-96e9-234c26dccea9
- in: header
name: X-HTM-JWT-AUTH-HEADER
schema:
type: string
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
description: The JWT of the logged in customer (in case of a web shop).
post:
tags:
- Order Creation Flow
summary: Add a voucher to an existing orders.
description: Add a voucher to an existing order.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
examples:
Add a voucher to an existing order:
summary: Add a voucher to an existing order
description: Add a voucher to an existing order
value:
{
"voucherCode": "Voucher1234",
"orderLineId": "6bb3d8a1-474f-4bdb-9cbc-31bf4ed0482e"
}
responses:
"201":
description: Created
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
examples:
Order with added voucher:
value:
{
"validContents": true,
"orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df",
"externalOrderId": null,
"orderNumber": "ORD-123456",
"customerProfileId": 1337,
"totalAmount": 121,
"touchPoint":
{
"salesTouchpointId": 3,
"name": "Website (Perplex)",
"isActive": true,
"retailerId": 1001,
},
"language":
{
"languageId": 1,
"name": "Nederlands",
"iso639Code": "nl-NL",
"ietfCode": "nl",
},
"createdOn": "2024-03-22T09:00:00",
"lastUpdatedOn": "2024-03-22T09:00:00",
"order_OrderStatuses":
[
{
"order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f",
"orderStatus":
{ "orderStatusId": 1, "name": "concept" },
"createdOn": "2024-03-22T09:00:00",
"description": "Order is aangemaakt",
},
],
"order_OrderVouchers":
[
{
"order_orderVoucherId": "a66f224f-347b-47e7-b480-0b84b8ef5177",
"issuedVoucher":
{ "voucherCode": "HTM1234",
"productName": "Ooievaarspas voucher",
"productDescription": "Ontvang de ooievaarspas om gratis te reizen bij de HTM",
"voucherStatus": {
"voucherStatusId": 2,
"name": "Issued"
}
},
"orderLineId": "cccada2c-d5ea-48ab-b4be-f590e16b5468",
"validations": [
{
"code": "VOUCHER_CLAIM_GBO_BIRTHDATE",
"detail": "Birthdate does not match the claim",
"path": "#/orderLines[cccada2c-d5ea-48ab-b4be-f590e16b5468]/customerToken[878ad7c1-cd8f-4bcf-a983-1bd8c6e6975e]/personalAccountData",
"parameter": "dateOfBirth",
"type": "ERROR"
},
{
"code": "VOUCHER_CLAIM_EMAIL",
"detail": "Email on the order needs to be filled",
"path": "#/orderCustomer",
"parameter": "emailAddress",
"type": "REMARK"
}
],
},
],
"orderLines":
[
{
"orderLineId": "cccada2c-d5ea-48ab-b4be-f590e16b5468",
"externalOrderLineId": null,
"productId": 1,
"productName": "HTM Maandkorting 20%",
"fikoArticleNumber": "6609",
"productDescription": "HTM Maandkorting 20%",
"taxCode": "V21",
"taxPercentage": 21.0000,
"taxAmount": null,
"amountExclTax": null,
"amountInclTax": 121,
"quantity": 1,
"orderLineTerms":
[
{
"orderLineTermsId": "cccada2c-d5ea-48ab-b4be-f590e16b5468",
"termsUrl": "generalTermsAndConditions.pdf",
},
{
"orderLineTermsId": "bd76f723-9308-4629-a291-4c4fafd7ed87",
"termsUrl": "productTermsAndConditions.pdf",
},
],
"createdOn": "2024-03-22T09:00:00",
"validFrom": "2024-03-22T09:00:00",
"validUntil": null,
"orderLineStatus":
{ "orderLineStatusId": 1, "name": "pending" },
"customerTokens":
[
{
"customerTokenId": "878ad7c1-cd8f-4bcf-a983-1bd8c6e6975e",
"tokenType":
{ "tokenTypeId": 1, "name": "EMV" },
"ovPayTokenId": 1,
"serviceReferenceId": "NLOV1234567ABCDEFG",
"amount": 34,
"ovpasNumber": "OV34567",
"verificationCode": "A7H6",
"personalAccountData":
{
"personalAccountDataId": "47db8a40-3238-4bf5-9284-759e3888bd47",
"name": "Jan de Vries",
"birthdate": "1970-01-01",
"photo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAWJLR0Q+SWQA4wAAAAd0SU1FB+YCBAwmK58TFQgAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDItMDRUMTI6Mzg6NDMrMDA6MDBAjYOrAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTAyLTA0VDEyOjM4OjQzKzAwOjAwMdA7FwAAAFd6VFh0UmF3IHByb2ZpbGUgdHlwZSBpcHRjAAB4nOPyDAhxVigoyk/LzEnlUgADIwsuYwsTIxNLkxQDEyBEgDTDZAMjs1Qgy9jUyMTMxBzEB8uASKBKLgDqFxF08kI1lQAAAYdpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8+DQo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4MmYxYiIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPjx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+PC9yZGY6RGVzY3JpcHRpb24+PC9yZGY6UkRGPjwveDp4bXBtZXRhPg0KPD94cGFja2V0IGVuZD0ndyc/PiyUmAsAAAANSURBVBhXY3grk/YfAAXYAm/HQierAAAAAElFTkSuQmCC",
"challengeType":
{
"challengeTypeId": 1,
"name": "email",
},
"oneTimePassword": "H5Iiz3JTaQeIV8p",
},
"ovPayToken":
{
"customerProfileId": 1,
"ovPayTokenId": 1,
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
"tokenType":
{
"tokenTypeId": 2,
"name": "OV-pas physical",
},
"alias": "MyToken",
"tokenStatus":
{
"tokenStatusId": 2,
"name": "Active",
},
"expirationDate": "2028-02-01",
"replacedByTokenId": null,
"autoReloadRegistration":
{
"autoReloadAmount": 500,
"retailerReferenceId": "abc",
"arrit": "425f7fc2-1103-4822-9c79-7c4aaa2fb6aa",
"autoReloadRegistrationStatus": "ACTIVE",
"autoReloadRegistrationStartDateTime": "2024-06-02T15:03:46Z",
},
"ePurse":
{
"e-PurseBalance":
{
"currency": "EUR",
"amount": 350,
},
"status": "ACTIVE",
"originDate": "2019-07-16T11:00:00+02:00",
},
"personalAccountData":
{
"name":
{
"inaccuracyFlag": false,
"inaccuracyFlagReason": null,
"inaccuracyFlagSetCounter": 0,
"isValidated": false,
"changeCounter": 0,
"maxUpdatesVerificationCount": 0,
"lastChangeDate": "2024-08-24T14:15:22Z",
},
"birthdate":
{
"inaccuracyFlag": false,
"inaccuracyFlagReason": null,
"inaccuracyFlagSetCounter": 0,
"isValidated": false,
"changeCounter": 0,
"maxUpdatesVerificationCount": 0,
"lastChangeDate": "2024-08-24T14:15:22Z",
},
"photo":
{
"inaccuracyFlag": false,
"inaccuracyFlagReason": null,
"inaccuracyFlagSetCounter": 0,
"isValidated": false,
"changeCounter": 0,
"maxUpdatesVerificationCount": 0,
"lastChangeDate": "2024-08-24T14:15:22Z",
},
},
"gboAgeProfile":
{
"gboAgeProfileId": 1,
"name": "Kind (4 t/m 11 jaar)",
"ageFromInclusive": 4,
"ageToInclusive": 11,
},
},
},
],
"orderAccountingStatuses": [],
"validationResult": "valid",
"additionalRemarks": [],
"validationErrors": [],
},
],
"payments": [],
"orderCustomer": null
}
/orders/{orderId}/fulfill: /orders/{orderId}/fulfill:
parameters: parameters:
- in: path - in: path

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":
@ -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