Compare commits

..

No commits in common. "develop" and "features/OVPAY1312-TP-orders-incl-vouchers" have entirely different histories.

6 changed files with 626 additions and 1080 deletions

View File

@ -597,13 +597,9 @@ paths:
schema: schema:
$ref: "#/components/schemas/unavailable" $ref: "#/components/schemas/unavailable"
examples: examples:
Empty list: List all contract payments for a single debtor:
summary: Empty list summary: List all contract payments for a single debtor
description: List all contract payments for a debtor with no payments. description: List all contract payments for single debtor with debtor number 'D123456'.
value: { "contractPayments": [] }
Successful direct debit:
summary: Successful direct debit
description: One payment for a debtor with a successful direct debit.
value: value:
{ {
"contractPayments": "contractPayments":
@ -611,9 +607,8 @@ paths:
{ {
"paymentId": "151845776", "paymentId": "151845776",
"totalAmount": "26.62", "totalAmount": "26.62",
"paymentMethod": "Automatische incasso", "paymentMethod": "Twikey",
"paymentDate": "2024-09-12", "paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice": "invoice":
{ {
"invoiceId": "147722263", "invoiceId": "147722263",
@ -630,192 +625,23 @@ paths:
}, },
}, },
}, },
],
}
Direct debit reversal:
summary: Direct debit reversal
description: One payment for a debtor with a reversed direct debit.
value:
{
"contractPayments":
[
{ {
"paymentId": "151845776", "paymentId": "151845851",
"totalAmount": "-26.62", "totalAmount": "45.21",
"paymentMethod": "Stornering", "paymentMethod": "Twikey",
"paymentDate": "2024-09-12", "paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice": "invoice":
{ {
"invoiceId": "147722263", "invoiceId": "147722266",
"invoiceNumber": "F2024-0001", "invoiceNumber": "F2024-0002",
"description": "HTM Maandkorting 20%", "description": "HTM Maandkorting 20%",
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a", "publicLink": "https://factuurinzien.nl/d/ddb245d6df67999eca48c4a71b5661b93038e20a/i/dp5h1i5cuu94nopiolkdst3u17vkmzo",
}, },
"_links": "_links":
{ {
"get_contractdetails": "get_contractdetails":
{ {
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a", "href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/7b2f8c1a-3d9d-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":
{
"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": "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",
},
},
},
{
"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,12 +1964,11 @@ paths:
type: integer type: integer
example: 1 example: 1
required: true required: true
summary: |- summary: Replace an OVpay token with another (+ transfer products) - V2 (for Integratielaag)
NOT TO BE CALLED BY TOUCHPOINTS - Replace an OVpay token with another (+ transfer products) - V2 description: |
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:
@ -2879,9 +2878,9 @@ paths:
type: integer type: integer
example: 1 example: 1
post: post:
summary: "Transfer old OVpay token to new OVpay token." summary: "**INTEGRATIELAAG** Transfer old OVpay token to new OVpay token."
description: |- description: |-
**Note that this directly calls the integratielaag and not the Service Engine!** **Note that this is an integratielaag endpoint, not a Service Engine endpoint!**
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
@ -3020,9 +3019,9 @@ paths:
get: get:
tags: tags:
- Token Replace v2 - Token Replace v2
summary: "Get the status of the initiated token transfer process (POST)." summary: "**INTEGRATIELAAG** Get the status of the initiated token transfer process (POST)."
description: | description: |
**Note that this directly calls the integratielaag and not the Service Engine!** Get the status of the **Note that this is an integratielaag endpoint, not a Service Engine endpoint!** Get the status of the
asynchronous token transfer processing. asynchronous token transfer processing.
responses: responses:
"200": "200":

View File

@ -31,12 +31,6 @@ 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
@ -50,13 +44,6 @@ 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
@ -66,21 +53,17 @@ 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
notificationSubscriptionResponse?expand=none: fullNotificationSubscriptionResponse:
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"
@ -94,9 +77,7 @@ 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"
@ -107,113 +88,6 @@ 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:
@ -301,71 +175,18 @@ 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
@ -461,196 +282,12 @@ 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:
@ -672,48 +309,35 @@ 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: Serviceberichten name: Mijn Passen
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: TRIPS name: ALERTS, TRAVEL_SCHEME
subName: CKI subName: CI
prettyName: Normal Check-in prettyName: 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: PAD name: ALERTS, PAD
subName: AMEND subName: null
prettyName: PAD Wijzigen/Aanvullen prettyName: Profielgegevens op de pas
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:
@ -723,108 +347,76 @@ paths:
subName: null subName: null
prettyName: HTM nieuwsbrief prettyName: HTM nieuwsbrief
optinRequired: false optinRequired: false
originSubscription: null
- notificationCategoryId: 3 - notificationCategoryId: 3
name: Serviceberichten name: Mijn Passen
groupName: Mijn Passen
eventTypes: eventTypes:
- eventTypeId: 4 - eventTypeId: 4
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: PRODUCT name: ALERTS, CARD
subName: ACTIVATE subName: null
prettyName: Product Geactiveerd prettyName: Mijn passen
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: PAD name: ALERTS, PAD
subName: MARK subName: null
prettyName: PAD Markering prettyName: Profielgegevens op de pas
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: TRIPS name: ALERTS, TRAVEL_SCHEME
subName: CKI subName: CI
prettyName: Normal Check-in prettyName: 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: PAD name: ALERTS, PAD
subName: AMEND subName: null
prettyName: PAD Wijzigen/Aanvullen prettyName: Profielgegevens op de pas
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:
@ -834,81 +426,56 @@ 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: Serviceberichten name: Mijn Passen
groupName: Mijn Passen
eventTypes: eventTypes:
- eventTypeId: 4 - eventTypeId: 4
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: PRODUCT name: ALERTS, CARD
subName: ACTIVATE subName: null
prettyName: Product Geactiveerd prettyName: Mijn passen
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: PAD name: ALERTS, PAD
subName: MARK subName: null
prettyName: PAD Markering prettyName: Profielgegevens op de pas
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":
@ -1029,24 +596,12 @@ 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:
@ -1195,7 +750,6 @@ paths:
notificationCategory: notificationCategory:
notificationCategoryId: 1 notificationCategoryId: 1
name: Mijn Reizen name: Mijn Reizen
groupName: Mijn Passen
- eventType: - eventType:
eventTypeId: 16 eventTypeId: 16
eventOrigin: eventOrigin:
@ -1208,7 +762,6 @@ 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:
@ -1274,9 +827,6 @@ 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
@ -1292,9 +842,6 @@ 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":
@ -1415,24 +962,6 @@ 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:
@ -1457,40 +986,6 @@ 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:
@ -1581,24 +1076,6 @@ 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:
@ -1630,22 +1107,9 @@ 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:
@ -1655,9 +1119,6 @@ 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,7 +60,6 @@ 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.
@ -171,24 +170,46 @@ paths:
"description": "Betaling in behandeling", "description": "Betaling in behandeling",
}, },
], ],
"orderVouchers": [ "order_OrderVouchers": [
{ {
"orderVoucherId": "399bd3b3-9721-4f09-a936-d64637de1621", "order_OrderVoucherId": "399bd3b3-9721-4f09-a936-d64637de1621",
"issuedVoucher":{ "issuedVoucher":{
"issuedVoucherId": "a0996218-bc5e-4826-9020-cda98a32838d", "issuedVoucherId": "a0996218-bc5e-4826-9020-cda98a32838d",
"voucherCode": "Voucher1234", "voucherCode": "Voucher1234",
"purchasedProductId": 31, "voucherStatusInstances":
[
{
"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
}, },
{ {
"orderVoucherId": "f6c7ac42-1811-4e4d-82af-53e18fe16110", "order_OrderVoucherId": "f6c7ac42-1811-4e4d-82af-53e18fe16110",
"issuedVoucher":{ "issuedVoucher":{
"issuedVoucherId": "54668baf-4905-4e9a-af02-09c170f295ed", "issuedVoucherId": "54668baf-4905-4e9a-af02-09c170f295ed",
"voucherCode": "Voucher124", "voucherCode": "Voucher124",
"purchasedProductId": 35, "voucherStatusInstances":
[
{
"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"
}, },
@ -385,7 +406,7 @@ paths:
"description": "Concept order", "description": "Concept order",
}, },
], ],
"orderVouchers": "order_OrderVouchers":
[ [
{ {
"issuedVoucherId": "e81b2197-a6c2-45b6-9560-8ce8442e8604", "issuedVoucherId": "e81b2197-a6c2-45b6-9560-8ce8442e8604",
@ -512,7 +533,7 @@ paths:
"description": "Betaling in behandeling", "description": "Betaling in behandeling",
}, },
], ],
"orderVouchers": null, "order_OrderVouchers": null,
"orderLines": "orderLines":
[ [
{ {
@ -752,12 +773,12 @@ paths:
$ref: "#/components/schemas/unavailable" $ref: "#/components/schemas/unavailable"
example: example:
{ {
"orderVoucherId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066", "order_orderVoucherId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066",
} }
/ordervouchers: /ordervouchers:
parameters: parameters:
- in: query - in: query
name: orderVoucherId name: order_OrderVoucherId
schema: schema:
type: string type: string
format: uuid format: uuid
@ -793,22 +814,15 @@ paths:
example: example:
[ [
{ {
"orderVoucherId": "19ef6882-8eda-43bf-b48e-9b4ff8745a50", "order_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/{ordervoucherId}: /ordervouchers/{order_ordervoucherId}:
parameters: parameters:
- in: path - in: path
name: ordervoucherId name: order_ordervoucherId
schema: schema:
type: string type: string
format: uuid format: uuid
@ -839,7 +853,7 @@ paths:
$ref: "#/components/schemas/unavailable" $ref: "#/components/schemas/unavailable"
example: example:
{ {
"orderVoucherId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066", "order_orderVoucherId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066",
} }
delete: delete:
summary: Delete an order voucher. summary: Delete an order voucher.

View File

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