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:
$ref: "#/components/schemas/unavailable"
examples:
Empty list:
summary: Empty list
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.
List all contract payments for a single debtor:
summary: List all contract payments for a single debtor
description: List all contract payments for single debtor with debtor number 'D123456'.
value:
{
"contractPayments":
@ -611,9 +607,8 @@ paths:
{
"paymentId": "151845776",
"totalAmount": "26.62",
"paymentMethod": "Automatische incasso",
"paymentMethod": "Twikey",
"paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice":
{
"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",
"totalAmount": "-26.62",
"paymentMethod": "Stornering",
"paymentId": "151845851",
"totalAmount": "45.21",
"paymentMethod": "Twikey",
"paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice":
{
"invoiceId": "147722263",
"invoiceNumber": "F2024-0001",
"invoiceId": "147722266",
"invoiceNumber": "F2024-0002",
"description": "HTM Maandkorting 20%",
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
"publicLink": "https://factuurinzien.nl/d/ddb245d6df67999eca48c4a71b5661b93038e20a/i/dp5h1i5cuu94nopiolkdst3u17vkmzo",
},
"_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":
{
"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",
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/7b2f8c1a-3d9d-4c2d-960e-4471e8e28b6a",
"method": "GET",
},
},

View File

@ -1964,12 +1964,11 @@ paths:
type: integer
example: 1
required: true
summary: |-
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.**\
summary: Replace an OVpay token with another (+ transfer products) - V2 (for Integratielaag)
description: |
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:
content:
application/json:
@ -2879,9 +2878,9 @@ paths:
type: integer
example: 1
post:
summary: "Transfer old OVpay token to new OVpay token."
summary: "**INTEGRATIELAAG** Transfer old OVpay token to new OVpay token."
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
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
@ -3020,9 +3019,9 @@ paths:
get:
tags:
- 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: |
**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.
responses:
"200":

View File

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

View File

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

View File

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