2109 lines
91 KiB
YAML
2109 lines
91 KiB
YAML
openapi: 3.0.1
|
|
info:
|
|
title: Service Engine APIs for Products
|
|
description: |-
|
|
Service Engine APIs for HTM products. These are NOT the CRUD APIs to access raw data in the database.
|
|
To be used by touchpoints to get information about HTM products they are allowed to see and/or sell.
|
|
version: '1.0'
|
|
servers:
|
|
- url: https://api.integratielaag.nl/abt/servcieengine/x.x
|
|
tags:
|
|
- name: ServiceEngine Products
|
|
description: |-
|
|
To be used by touchpoints to get information about HTM products they are allowed to see and/or sell.
|
|
paths:
|
|
/products:
|
|
get:
|
|
tags:
|
|
- ServiceEngine Products
|
|
summary: Get a list of all HTM products that a touchpoint is allowed to see and/or sell
|
|
description: |-
|
|
Get a list of all HTM products that refers to a given parentProductId (or without parent, if not specified),
|
|
and that the calling touchpoint is allowed to see and/or sell. \
|
|
Essentially, this means that only products that have active sellingPeriods for touchpoints within the same
|
|
retailer as the calling touchpoint are returned. \
|
|
Only a few details are returned per product - use the `GET /products/{productId}` endpoint
|
|
to get more details. \
|
|
Nb: touchpoint 1 and 2 belong to retailer 1; touchpoint 3 and 4 belong to retailer 2.
|
|
parameters:
|
|
- name: parentProductId
|
|
in: query
|
|
required: false
|
|
description: |-
|
|
Only return products that refer to the given parentProductId. \
|
|
Returns parent-products (i.e. products with parentProductId = null) if left empty.
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProductPayloadListResponse'
|
|
examples:
|
|
getListNoProducts:
|
|
summary: No products / Empty list
|
|
description: No products
|
|
value:
|
|
{
|
|
"Entries": []
|
|
}
|
|
getListOneProductTouchpointId1:
|
|
summary: List containing one product with 4 currently active SellingPeriods (called by touchpointId 1)
|
|
description: Only two sellingPeriods for touchpoint 1 and/or 2 (part of same retailer) are returned - the price for touchpointId 1 is returned
|
|
value:
|
|
{
|
|
"Entries": [
|
|
{
|
|
"productId": 2,
|
|
"productCode": "312AB-WL",
|
|
"productName": "HTM dagkaart",
|
|
"productDescription": "Reis een dag met het openbaar vervoer bij HTM",
|
|
"productCategory": {
|
|
"productCategoryId": 6,
|
|
"isTravelProduct": false,
|
|
"name": "Barcode"
|
|
},
|
|
"tokenTypes": null,
|
|
"sellableTouchPointIds": [
|
|
1,
|
|
2
|
|
],
|
|
"amountInclTax": 300,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://www.htm.nl/nog-onbekende-product-pagina",
|
|
"_links": {
|
|
"get_details": {
|
|
"href": "https://services.acc.api.htm.nl/abt/serviceengine/x.x/products/2",
|
|
"method": "GET"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
getListOneProductTouchpointId3:
|
|
summary: List containing one product with 4 currently active SellingPeriods (called by touchpointId 3)
|
|
description: Only two sellingPeriods for touchpoint 3 and/or 4 (part of same retailer) are returned - the price for touchpointId 3 is returned
|
|
value:
|
|
{
|
|
"Entries": [
|
|
{
|
|
"productId": 2,
|
|
"productCode": "312AB-WL",
|
|
"productName": "HTM dagkaart",
|
|
"productDescription": "Reis een dag met het openbaar vervoer bij HTM",
|
|
"productCategory": {
|
|
"productCategoryId": 6,
|
|
"isTravelProduct": false,
|
|
"name": "Barcode"
|
|
},
|
|
"tokenTypes": null,
|
|
"sellableTouchPointIds": [
|
|
3,
|
|
4
|
|
],
|
|
"amountInclTax": 300,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://www.htm.nl/nog-onbekende-product-pagina",
|
|
"_links": {
|
|
"get_details": {
|
|
"href": "https://services.acc.api.htm.nl/abt/serviceengine/x.x/products/2",
|
|
"method": "GET"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
getListOneProductNoPriceTouchpointId3:
|
|
summary: List containing one product which can only be sold by touchpointId 3 (called by touchpointId 4)
|
|
description: Product is still returned (because touchpointId 3 is part of same retailer) but no price, as touchpointId 4 is not allowed to sell this product.
|
|
value:
|
|
{
|
|
"Entries": [
|
|
{
|
|
"productId": 49,
|
|
"productCode": null,
|
|
"productName": "HTM Regio Vrij",
|
|
"productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in het gekozen gebied in de regio Rotterdam Den Haag.",
|
|
"productCategory": {
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht"
|
|
},
|
|
"tokenTypes": null,
|
|
"sellableTouchpointIds": [
|
|
4
|
|
],
|
|
"amountInclTax": null,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://www.htm.nl/nog-onbekende-product-pagina",
|
|
"_links": {
|
|
"get_details": {
|
|
"href": "https://services.acc.api.htm.nl/abt/serviceengine/x.x/products/49",
|
|
"method": "GET"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
getListMultipleProductsTouchpointId3:
|
|
summary: List containing multiple products (called by touchpointId 3)
|
|
description: Only products that have active SellingPeriods for touchpoint 3 and/or 4 (part of same retailer) are returned
|
|
value:
|
|
{
|
|
"Entries": [
|
|
{
|
|
"productId": 2,
|
|
"productCode": "312AB-WL",
|
|
"productName": "HTM dagkaart",
|
|
"productDescription": "Reis een dag met het openbaar vervoer bij HTM",
|
|
"productCategory": {
|
|
"productCategoryId": 6,
|
|
"isTravelProduct": false,
|
|
"name": "Barcode"
|
|
},
|
|
"tokenTypes": null,
|
|
"sellableTouchPointIds": [
|
|
3,
|
|
4
|
|
],
|
|
"amountInclTax": 300,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://www.htm.nl/nog-onbekende-product-pagina",
|
|
"_links": {
|
|
"get_details": {
|
|
"href": "https://services.acc.api.htm.nl/abt/serviceengine/x.x/products/2",
|
|
"method": "GET"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"productId": 4,
|
|
"productCode": "30002-ML",
|
|
"productName": "HTM 40% korting",
|
|
"productDescription": "Reis een maand lang met 40% korting!",
|
|
"productCategory": {
|
|
"productCategoryId": 1,
|
|
"isTravelProduct": true,
|
|
"name": "Kortingsabonnement"
|
|
},
|
|
"tokenTypes": [
|
|
{
|
|
"tokenTypeId": 1,
|
|
"name": "EMV"
|
|
}
|
|
],
|
|
"sellableTouchPointIds": [
|
|
3,
|
|
4
|
|
],
|
|
"amountInclTax": 800,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://www.htm.nl/nog-onbekende-product-pagina",
|
|
"_links": {
|
|
"get_details": {
|
|
"href": "https://services.acc.api.htm.nl/abt/serviceengine/x.x/products/4",
|
|
"method": "GET"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
'400':
|
|
description: '400'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/400Response'
|
|
'401':
|
|
description: '401'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/401Response'
|
|
'404':
|
|
description: '404'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/404Response'
|
|
'500':
|
|
description: '500'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/500Response'
|
|
/products/{productId}:
|
|
get:
|
|
tags:
|
|
- ServiceEngine Products
|
|
summary: Get more details for a single HTM product (including all child products), specified by the productId
|
|
description: |-
|
|
Get more details for a single HTM product (including all child products/productVariants), specified by the productId. \
|
|
Only information that is allowed to be seen by the calling touchpoint is returned; i.e. only currently
|
|
active selling periods and prices for the calling touchpoint are returned. Future/past prices and prices
|
|
for other touchpoints are thus filtered out.
|
|
|
|
The response contains the full product tree, including all child products (`productVariants`) of the given productId.
|
|
|
|
Touchpoints can only retrieve details for products that they are allowed to SELL at the time of the request (i.e. its touchpointId is included in the
|
|
`sellableTouchPointIds` array in the products list response). A touchpoint can determine its own touchpointId by checking the `X-HTM-TOUCHPOINT-ID-HEADER` HTTP header.
|
|
|
|
When a touchpoint tries to retrieve details for a product that it is not allowed to sell, a 403 error is thrown.
|
|
parameters:
|
|
- name: productId
|
|
in: path
|
|
required: true
|
|
style: simple
|
|
description: Id of the product to get details for
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProductPayloadResponse'
|
|
examples:
|
|
getDetailsTreeRegioVrijTouchpointId3:
|
|
summary: Details of Regio Vrij product and (part of) its productVariants (called by touchpointId 3)
|
|
description: |-
|
|
All details (that the calling touchpoint is allowed to see) for the parent Regio Vrij product
|
|
and (part of) its productVariants; the full tree would be too huge to be useful as an example.
|
|
The full depth of the tree is included for the HL62 Reduced Fare Variant.
|
|
value:
|
|
{
|
|
"productId": 49,
|
|
"parentProductId": null,
|
|
"productCode": null,
|
|
"gboPackageTemplateId": null,
|
|
"tapConnectProductCode": null,
|
|
"productGroupMetadata": null,
|
|
"productName": "HTM Regio Vrij",
|
|
"productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in het gekozen gebied in de regio Rotterdam Den Haag.",
|
|
"validityPeriod": {
|
|
"validityPeriodId": 161,
|
|
"fromInclusive": "2024-11-30T23:00:00.000+00:00",
|
|
"toInclusive": "2099-12-30T23:00:00.000+00:00"
|
|
},
|
|
"productTranslations": [
|
|
{
|
|
"language": "en",
|
|
"name": "HTM Regio Free",
|
|
"description": "For a fixed amount unlimited travel with EBS, HTM and RET in the chosen area. in the Rotterdam The Hague region."
|
|
}
|
|
],
|
|
"productOwner": {
|
|
"productOwnerId": 19,
|
|
"name": "MRDH",
|
|
"organization": "MRDH"
|
|
},
|
|
"marketSegments": null,
|
|
"customerSegments": [
|
|
{
|
|
"customerSegmentId": 2,
|
|
"name": "Kind (4-11)"
|
|
},
|
|
{
|
|
"customerSegmentId": 3,
|
|
"name": "Jongere (12-18)"
|
|
},
|
|
{
|
|
"customerSegmentId": 4,
|
|
"name": "Volwassene (19-64)"
|
|
},
|
|
{
|
|
"customerSegmentId": 5,
|
|
"name": "Oudere (65+)"
|
|
}
|
|
],
|
|
"productCategory": {
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht"
|
|
},
|
|
"requiredCustomerLevel": {
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile"
|
|
},
|
|
"requiredProducts": null,
|
|
"incompatibleProducts": null,
|
|
"mandatoryCustomerDataItems": [
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken"
|
|
}
|
|
],
|
|
"requiredGboPersonalAttributes":
|
|
[
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO"
|
|
}
|
|
],
|
|
"tokenTypes": [
|
|
{
|
|
"tokenTypeId": 1,
|
|
"name": "EMV"
|
|
}
|
|
],
|
|
"paymentMoment": {
|
|
"paymentMomentId": 1,
|
|
"name": "prepaid"
|
|
},
|
|
"serviceOptions": null,
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": false,
|
|
"sendInvoice": false,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://www.htm.nl/webshop/htm-regio-vrij",
|
|
"termsUrl": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-regio-vrij/",
|
|
"isSellableAtHtm": true,
|
|
"needsSolvencyCheckConsumer": false,
|
|
"needsSolvencyCheckBusiness": false,
|
|
"sellingPeriods": [
|
|
{
|
|
"sellingPeriodId": 99,
|
|
"fromInclusive": "2024-11-30T23:00:00.000+00:00",
|
|
"toInclusive": "2099-12-30T23:00:00.000+00:00",
|
|
"salesTouchpoint": {
|
|
"salesTouchpointId": 3,
|
|
"name": "Website (Perplex)",
|
|
"isActive": true,
|
|
"retailer": {
|
|
"retailerId": 1001,
|
|
"name": "HTM externe touchpoints",
|
|
"street": "Koningin Julianaplein",
|
|
"number": 10,
|
|
"numberAddition": null,
|
|
"postalCode": "2595 AA",
|
|
"city": "Den Haag",
|
|
"country": "Nederland",
|
|
"emailAddress": "info@htm.nl",
|
|
"phoneNumber": "070 374 9002",
|
|
"taxId": 572309345923,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg"
|
|
}
|
|
},
|
|
"forbiddenPaymentMethods": null,
|
|
"sellingPrices": null
|
|
}
|
|
],
|
|
"purchasePrices": null,
|
|
"productVariants": [
|
|
{
|
|
"productId": 109,
|
|
"parentProductId": 49,
|
|
"productCode": null,
|
|
"gboPackageTemplateId": null,
|
|
"tapConnectProductCode": null,
|
|
"productGroupMetadata": null,
|
|
"productName": "HTM Regio Vrij - HL62",
|
|
"productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62",
|
|
"validityPeriod": {
|
|
"validityPeriodId": 219,
|
|
"fromInclusive": "2024-09-30T23:00:00.000+00:00",
|
|
"toInclusive": "2099-12-30T23:00:00.000+00:00"
|
|
},
|
|
"productTranslations": [
|
|
{
|
|
"language": "en",
|
|
"name": "HTM Regio Free - HL62",
|
|
"description": "For a fixed amount unlimited travel with EBS, HTM and RET in region HL62"
|
|
}
|
|
],
|
|
"productOwner": {
|
|
"productOwnerId": 19,
|
|
"name": "MRDH",
|
|
"organization": "MRDH"
|
|
},
|
|
"marketSegments": null,
|
|
"customerSegments": [
|
|
{
|
|
"customerSegmentId": 2,
|
|
"name": "Kind (4-11)"
|
|
},
|
|
{
|
|
"customerSegmentId": 3,
|
|
"name": "Jongere (12-18)"
|
|
},
|
|
{
|
|
"customerSegmentId": 4,
|
|
"name": "Volwassene (19-64)"
|
|
},
|
|
{
|
|
"customerSegmentId": 5,
|
|
"name": "Oudere (65+)"
|
|
}
|
|
],
|
|
"productCategory": {
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht"
|
|
},
|
|
"requiredCustomerLevel": {
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile"
|
|
},
|
|
"requiredProducts": null,
|
|
"incompatibleProducts": null,
|
|
"mandatoryCustomerDataItems": [
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken"
|
|
}
|
|
],
|
|
"requiredGboPersonalAttributes": [
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO"
|
|
}
|
|
],
|
|
"tokenTypes": [
|
|
{
|
|
"tokenTypeId": 1,
|
|
"name": "EMV"
|
|
}
|
|
],
|
|
"paymentMoment": {
|
|
"paymentMomentId": 1,
|
|
"name": "prepaid"
|
|
},
|
|
"serviceOptions": null,
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": false,
|
|
"sendInvoice": false,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://www.htm.nl/webshop/htm-regio-vrij",
|
|
"termsUrl": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-regio-vrij/",
|
|
"isSellableAtHtm": true,
|
|
"needsSolvencyCheckConsumer": false,
|
|
"needsSolvencyCheckBusiness": false,
|
|
"sellingPeriods": [
|
|
{
|
|
"sellingPeriodId": 143,
|
|
"fromInclusive": "2024-10-30T23:00:00.000+00:00",
|
|
"toInclusive": "2029-12-30T23:00:00.000+00:00",
|
|
"salesTouchpoint": {
|
|
"salesTouchpointId": 3,
|
|
"name": "Website (Perplex)",
|
|
"isActive": true,
|
|
"retailer": {
|
|
"retailerId": 1001,
|
|
"name": "HTM externe touchpoints",
|
|
"street": "Koningin Julianaplein",
|
|
"number": 10,
|
|
"numberAddition": null,
|
|
"postalCode": "2595 AA",
|
|
"city": "Den Haag",
|
|
"country": "Nederland",
|
|
"emailAddress": "info@htm.nl",
|
|
"phoneNumber": "070 374 9002",
|
|
"taxId": 572309345923,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg"
|
|
}
|
|
},
|
|
"forbiddenPaymentMethods": null,
|
|
"sellingPrices": null
|
|
}
|
|
],
|
|
"purchasePrices": null,
|
|
"productVariants": [
|
|
{
|
|
"productId": 114,
|
|
"parentProductId": 109,
|
|
"productCode": null,
|
|
"gboPackageTemplateId": "33629",
|
|
"tapConnectProductCode": null,
|
|
"productGroupMetadata": null,
|
|
"productName": "HTM Regio Vrij - Voltarief - HL62",
|
|
"productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62",
|
|
"validityPeriod": {
|
|
"validityPeriodId": 224,
|
|
"fromInclusive": "2024-09-30T23:00:00.000+00:00",
|
|
"toInclusive": "2099-12-30T23:00:00.000+00:00"
|
|
},
|
|
"productTranslations": [
|
|
{
|
|
"language": "en",
|
|
"name": "HTM Regio Free - Full Fare - HL62",
|
|
"description": "For a fixed amount unlimited travel with EBS, HTM and RET in region HL62"
|
|
}
|
|
],
|
|
"productOwner": {
|
|
"productOwnerId": 19,
|
|
"name": "MRDH",
|
|
"organization": "MRDH"
|
|
},
|
|
"marketSegments": null,
|
|
"customerSegments": [
|
|
{
|
|
"customerSegmentId": 2,
|
|
"name": "Kind (4-11)"
|
|
},
|
|
{
|
|
"customerSegmentId": 3,
|
|
"name": "Jongere (12-18)"
|
|
},
|
|
{
|
|
"customerSegmentId": 4,
|
|
"name": "Volwassene (19-64)"
|
|
},
|
|
{
|
|
"customerSegmentId": 5,
|
|
"name": "Oudere (65+)"
|
|
}
|
|
],
|
|
"productCategory": {
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht"
|
|
},
|
|
"requiredCustomerLevel": {
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile"
|
|
},
|
|
"requiredProducts": null,
|
|
"incompatibleProducts": null,
|
|
"mandatoryCustomerDataItems": [
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken"
|
|
}
|
|
],
|
|
"requiredGboPersonalAttributes": [
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO"
|
|
}
|
|
],
|
|
"tokenTypes": [
|
|
{
|
|
"tokenTypeId": 1,
|
|
"name": "EMV"
|
|
}
|
|
],
|
|
"paymentMoment": {
|
|
"paymentMomentId": 1,
|
|
"name": "prepaid"
|
|
},
|
|
"serviceOptions": null,
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": false,
|
|
"sendInvoice": false,
|
|
"imageReference": "https://web.acc.cloud.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://web.acc.cloud.htm.nl/webshop/htm-regio-vrij",
|
|
"termsUrl": "https://web.acc.cloud.htm.nl/reisproducten/productvoorwaarden/htm-regio-vrij/",
|
|
"isSellableAtHtm": true,
|
|
"needsSolvencyCheckConsumer": false,
|
|
"needsSolvencyCheckBusiness": false,
|
|
"sellingPeriods": [
|
|
{
|
|
"sellingPeriodId": 148,
|
|
"fromInclusive": "2024-10-30T23:00:00.000+00:00",
|
|
"toInclusive": "2029-12-30T23:00:00.000+00:00",
|
|
"salesTouchpoint": {
|
|
"salesTouchpointId": 3,
|
|
"name": "Website (Perplex)",
|
|
"isActive": true,
|
|
"retailer": {
|
|
"retailerId": 1001,
|
|
"name": "HTM externe touchpoints",
|
|
"street": "Koningin Julianaplein",
|
|
"number": 10,
|
|
"numberAddition": null,
|
|
"postalCode": "2595 AA",
|
|
"city": "Den Haag",
|
|
"country": "Nederland",
|
|
"emailAddress": "info@htm.nl",
|
|
"phoneNumber": "070 374 9002",
|
|
"taxId": 572309345923,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg"
|
|
}
|
|
},
|
|
"forbiddenPaymentMethods": null,
|
|
"sellingPrices": [
|
|
{
|
|
"sellingPriceId": 139,
|
|
"amountExclTax": 5412,
|
|
"amountInclTax": 5900,
|
|
"fromInclusive": "2024-12-31T23:00:00.000+00:00",
|
|
"toInclusive": "2025-12-31T23:00:00.000+00:00",
|
|
"internalPrice": 0.0000,
|
|
"taxMetadata": {
|
|
"taxMetadataId": "47C8972E-A730-4032-9BDA-AF0A5BCB2C85",
|
|
"taxCode": "V09",
|
|
"taxPercentageAmount": 9,
|
|
"description": "BTW VERKOOP LAAG 9%"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"purchasePrices": null,
|
|
"productVariants": null
|
|
},
|
|
{
|
|
"productId": 115,
|
|
"parentProductId": 109,
|
|
"productCode": null,
|
|
"gboPackageTemplateId": "33630",
|
|
"tapConnectProductCode": null,
|
|
"productGroupMetadata": null,
|
|
"productName": "HTM Regio Vrij - Reductietarief - HL62",
|
|
"productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62",
|
|
"validityPeriod": {
|
|
"validityPeriodId": 225,
|
|
"fromInclusive": "2024-09-30T23:00:00.000+00:00",
|
|
"toInclusive": "2099-12-30T23:00:00.000+00:00"
|
|
},
|
|
"productTranslations": [
|
|
{
|
|
"language": "en",
|
|
"name": "HTM Regio Free - Reduced Fare - HL62",
|
|
"description": "For a fixed amount unlimited travel with EBS, HTM and RET in region HL62"
|
|
}
|
|
],
|
|
"productOwner": {
|
|
"productOwnerId": 19,
|
|
"name": "MRDH",
|
|
"organization": "MRDH"
|
|
},
|
|
"marketSegments": null,
|
|
"customerSegments": [
|
|
{
|
|
"customerSegmentId": 2,
|
|
"name": "Kind (4-11)"
|
|
},
|
|
{
|
|
"customerSegmentId": 3,
|
|
"name": "Jongere (12-18)"
|
|
}
|
|
],
|
|
"productCategory": {
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht"
|
|
},
|
|
"requiredCustomerLevel": {
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile"
|
|
},
|
|
"requiredProducts": null,
|
|
"incompatibleProducts": null,
|
|
"mandatoryCustomerDataItems": [
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken"
|
|
}
|
|
],
|
|
"requiredGboPersonalAttributes": [
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO"
|
|
}
|
|
],
|
|
"tokenTypes": [
|
|
{
|
|
"tokenTypeId": 1,
|
|
"name": "EMV"
|
|
}
|
|
],
|
|
"paymentMoment": {
|
|
"paymentMomentId": 1,
|
|
"name": "prepaid"
|
|
},
|
|
"serviceOptions": null,
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": false,
|
|
"sendInvoice": false,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://www.htm.nl/webshop/htm-regio-vrij",
|
|
"termsUrl": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-regio-vrij/",
|
|
"isSellableAtHtm": true,
|
|
"needsSolvencyCheckConsumer": false,
|
|
"needsSolvencyCheckBusiness": false,
|
|
"sellingPeriods": [
|
|
{
|
|
"sellingPeriodId": 149,
|
|
"fromInclusive": "2024-10-30T23:00:00.000+00:00",
|
|
"toInclusive": "2029-12-30T23:00:00.000+00:00",
|
|
"salesTouchpoint": {
|
|
"salesTouchpointId": 3,
|
|
"name": "Website (Perplex)",
|
|
"isActive": true,
|
|
"retailer": {
|
|
"retailerId": 1001,
|
|
"name": "HTM externe touchpoints",
|
|
"street": "Koningin Julianaplein",
|
|
"number": 10,
|
|
"numberAddition": null,
|
|
"postalCode": "2595 AA",
|
|
"city": "Den Haag",
|
|
"country": "Nederland",
|
|
"emailAddress": "info@htm.nl",
|
|
"phoneNumber": "070 374 9002",
|
|
"taxId": 572309345923,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg"
|
|
}
|
|
},
|
|
"forbiddenPaymentMethods": null,
|
|
"sellingPrices": [
|
|
{
|
|
"sellingPriceId": 140,
|
|
"amountExclTax": 8899,
|
|
"amountInclTax": 9700,
|
|
"fromInclusive": "2024-12-31T23:00:00.000+0:00",
|
|
"toInclusive": "2025-12-31T23:00:00.000+00:00",
|
|
"internalPrice": 0.0000,
|
|
"taxMetadata": {
|
|
"taxMetadataId": "47C8972E-A730-4032-9BDA-AF0A5BCB2C85",
|
|
"taxCode": "V09",
|
|
"taxPercentageAmount": 9,
|
|
"description": "BTW VERKOOP LAAG 9%"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"purchasePrices": null,
|
|
"productVariants": [
|
|
{
|
|
"productId": 116,
|
|
"parentProductId": 115,
|
|
"productCode": "33630-ML",
|
|
"gboPackageTemplateId": "33630",
|
|
"tapConnectProductCode": null,
|
|
"productGroupMetadata": {
|
|
"productGroupMetadataId": "WIP",
|
|
"productGroupCode": "WIP",
|
|
"department": "WIP",
|
|
"costCenter": "WIP",
|
|
"costType": "WIP",
|
|
"description": "Work in Progress - will follow later, when FIKO is implemented",
|
|
"user": "WIP",
|
|
"documentCode": "WIP",
|
|
"timestampUpdated": "2024-09-03T15:07:53.470+00:00",
|
|
"validFrom": "2024-08-01T00:00:00.000+00:00",
|
|
"validUntil": "2025-08-01T00:00:00.000+00:00"
|
|
},
|
|
"productName": "HTM Regio Vrij - Reductietarief - Losse Maand- HL62",
|
|
"productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62",
|
|
"validityPeriod": {
|
|
"validityPeriodId": 226,
|
|
"fromInclusive": "2024-09-30T23:00:00.000+00:00",
|
|
"toInclusive": "2099-12-30T23:00:00.000+00:00"
|
|
},
|
|
"productTranslations": [
|
|
{
|
|
"language": "en",
|
|
"name": "HTM Regio Free - Reduced Fare - 1 Month - HL62",
|
|
"description": "For a fixed amount unlimited travel with EBS, HTM and RET in region HL62"
|
|
}
|
|
],
|
|
"productOwner": {
|
|
"productOwnerId": 19,
|
|
"name": "MRDH",
|
|
"organization": "MRDH"
|
|
},
|
|
"marketSegments": null,
|
|
"customerSegments": [
|
|
{
|
|
"customerSegmentId": 2,
|
|
"name": "Kind (4-11)"
|
|
},
|
|
{
|
|
"customerSegmentId": 3,
|
|
"name": "Jongere (12-18)"
|
|
}
|
|
],
|
|
"productCategory": {
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht"
|
|
},
|
|
"requiredCustomerLevel": {
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile"
|
|
},
|
|
"requiredProducts": null,
|
|
"incompatibleProducts": null,
|
|
"mandatoryCustomerDataItems": [
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken"
|
|
}
|
|
],
|
|
"requiredGboPersonalAttributes": [
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO"
|
|
}
|
|
],
|
|
"tokenTypes": [
|
|
{
|
|
"tokenTypeId": 1,
|
|
"name": "EMV"
|
|
}
|
|
],
|
|
"paymentMoment": {
|
|
"paymentMomentId": 1,
|
|
"name": "prepaid"
|
|
},
|
|
"serviceOptions": null,
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": false,
|
|
"sendInvoice": false,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://www.htm.nl/webshop/htm-regio-vrij",
|
|
"termsUrl": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-regio-vrij/",
|
|
"isSellableAtHtm": true,
|
|
"needsSolvencyCheckConsumer": false,
|
|
"needsSolvencyCheckBusiness": false,
|
|
"sellingPeriods": [
|
|
{
|
|
"sellingPeriodId": 150,
|
|
"fromInclusive": "2024-10-30T23:00:00.000+00:00",
|
|
"toInclusive": "2029-12-30T23:00:00.000+00:00",
|
|
"salesTouchpoint": {
|
|
"salesTouchpointId": 3,
|
|
"name": "Website (Perplex)",
|
|
"isActive": true,
|
|
"retailer": {
|
|
"retailerId": 1001,
|
|
"name": "HTM externe touchpoints",
|
|
"street": "Koningin Julianaplein",
|
|
"number": 10,
|
|
"numberAddition": null,
|
|
"postalCode": "2595 AA",
|
|
"city": "Den Haag",
|
|
"country": "Nederland",
|
|
"emailAddress": "info@htm.nl",
|
|
"phoneNumber": "070 374 9002",
|
|
"taxId": 572309345923,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg"
|
|
}
|
|
},
|
|
"forbiddenPaymentMethods": null,
|
|
"sellingPrices": [
|
|
{
|
|
"sellingPriceId": 141,
|
|
"amountExclTax": 8899,
|
|
"amountInclTax": 9700,
|
|
"fromInclusive": "2024-12-31T23:00:00.000+0:00",
|
|
"toInclusive": "2025-12-31T23:00:00.000+00:00",
|
|
"internalPrice": 0.0000,
|
|
"taxMetadata": {
|
|
"taxMetadataId": "47C8972E-A730-4032-9BDA-AF0A5BCB2C85",
|
|
"taxCode": "V09",
|
|
"taxPercentageAmount": 9,
|
|
"description": "BTW VERKOOP LAAG 9%"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"purchasePrices": null,
|
|
"productVariants": null
|
|
},
|
|
{
|
|
"productId": 117,
|
|
"parentProductId": 115,
|
|
"productCode": "33630-MA",
|
|
"gboPackageTemplateId": "33630",
|
|
"tapConnectProductCode": null,
|
|
"productGroupMetadata": {
|
|
"productGroupMetadataId": "WIP",
|
|
"productGroupCode": "WIP",
|
|
"department": "WIP",
|
|
"costCenter": "WIP",
|
|
"costType": "WIP",
|
|
"description": "Work in Progress - will follow later, when FIKO is implemented",
|
|
"user": "WIP",
|
|
"documentCode": "WIP",
|
|
"timestampUpdated": "2024-09-03T15:07:53.470+00:00",
|
|
"validFrom": "2024-08-01T00:00:00.000+00:00",
|
|
"validUntil": "2025-08-01T00:00:00.000+00:00"
|
|
},
|
|
"productName": "HTM Regio Vrij - Reductietarief - Doorlopend abonnement- HL62",
|
|
"productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62",
|
|
"validityPeriod": {
|
|
"validityPeriodId": 227,
|
|
"fromInclusive": "2024-09-30T23:00:00.000+00:00",
|
|
"toInclusive": "2099-12-30T23:00:00.000+00:00"
|
|
},
|
|
"productTranslations": [
|
|
{
|
|
"language": "en",
|
|
"name": "HTM Regio Free - Reduced Fare - Renewable subscription - HL62",
|
|
"description": "For a fixed amount unlimited travel with EBS, HTM and RET in region HL62"
|
|
}
|
|
],
|
|
"productOwner": {
|
|
"productOwnerId": 19,
|
|
"name": "MRDH",
|
|
"organization": "MRDH"
|
|
},
|
|
"marketSegments": null,
|
|
"customerSegments": [
|
|
{
|
|
"customerSegmentId": 2,
|
|
"name": "Kind (4-11)"
|
|
},
|
|
{
|
|
"customerSegmentId": 3,
|
|
"name": "Jongere (12-18)"
|
|
}
|
|
],
|
|
"productCategory": {
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht"
|
|
},
|
|
"requiredCustomerLevel": {
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile"
|
|
},
|
|
"requiredProducts": null,
|
|
"incompatibleProducts": null,
|
|
"mandatoryCustomerDataItems": [
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken"
|
|
}
|
|
],
|
|
"requiredGboPersonalAttributes": [
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO"
|
|
}
|
|
],
|
|
"tokenTypes": [
|
|
{
|
|
"tokenTypeId": 1,
|
|
"name": "EMV"
|
|
}
|
|
],
|
|
"paymentMoment": {
|
|
"paymentMomentId": 1,
|
|
"name": "prepaid"
|
|
},
|
|
"serviceOptions": null,
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": true,
|
|
"sendInvoice": true,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://www.htm.nl/webshop/htm-regio-vrij",
|
|
"termsUrl": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-regio-vrij/",
|
|
"isSellableAtHtm": true,
|
|
"needsSolvencyCheckConsumer": false,
|
|
"needsSolvencyCheckBusiness": false,
|
|
"sellingPeriods": [
|
|
{
|
|
"sellingPeriodId": 151,
|
|
"fromInclusive": "2024-10-30T23:00:00.000+00:00",
|
|
"toInclusive": "2029-12-30T23:00:00.000+00:00",
|
|
"salesTouchpoint": {
|
|
"salesTouchpointId": 3,
|
|
"name": "Website (Perplex)",
|
|
"isActive": true,
|
|
"retailer": {
|
|
"retailerId": 1001,
|
|
"name": "HTM externe touchpoints",
|
|
"street": "Koningin Julianaplein",
|
|
"number": 10,
|
|
"numberAddition": null,
|
|
"postalCode": "2595 AA",
|
|
"city": "Den Haag",
|
|
"country": "Nederland",
|
|
"emailAddress": "info@htm.nl",
|
|
"phoneNumber": "070 374 9002",
|
|
"taxId": 572309345923,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg"
|
|
}
|
|
},
|
|
"forbiddenPaymentMethods": null,
|
|
"sellingPrices": [
|
|
{
|
|
"sellingPriceId": 142,
|
|
"amountExclTax": 8899,
|
|
"amountInclTax": 9700,
|
|
"fromInclusive": "2024-12-31T23:00:00.000+0:00",
|
|
"toInclusive": "2025-12-31T23:00:00.000+00:00",
|
|
"internalPrice": 0.0000,
|
|
"taxMetadata": {
|
|
"taxMetadataId": "47C8972E-A730-4032-9BDA-AF0A5BCB2C85",
|
|
"taxCode": "V09",
|
|
"taxPercentageAmount": 9,
|
|
"description": "BTW VERKOOP LAAG 9%"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"purchasePrices": null,
|
|
"productVariants": null
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"productId": 112,
|
|
"parentProductId": 49,
|
|
"productCode": null,
|
|
"gboPackageTemplateId": null,
|
|
"tapConnectProductCode": null,
|
|
"productGroupMetadata": null,
|
|
"productName": "HTM Regio Vrij - HL65",
|
|
"productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL65",
|
|
"validityPeriod": {
|
|
"validityPeriodId": 222,
|
|
"fromInclusive": "2024-09-30T23:00:00.000+00:00",
|
|
"toInclusive": "2099-12-30T23:00:00.000+00:00"
|
|
},
|
|
"productTranslations": [
|
|
{
|
|
"language": "en",
|
|
"name": "HTM Regio Free - HL65",
|
|
"description": "For a fixed amount unlimited travel with EBS, HTM and RET in region HL65"
|
|
}
|
|
],
|
|
"productOwner": {
|
|
"productOwnerId": 19,
|
|
"name": "MRDH",
|
|
"organization": "MRDH"
|
|
},
|
|
"marketSegments": null,
|
|
"customerSegments": [
|
|
{
|
|
"customerSegmentId": 2,
|
|
"name": "Kind (4-11)"
|
|
},
|
|
{
|
|
"customerSegmentId": 3,
|
|
"name": "Jongere (12-18)"
|
|
},
|
|
{
|
|
"customerSegmentId": 4,
|
|
"name": "Volwassene (19-64)"
|
|
},
|
|
{
|
|
"customerSegmentId": 5,
|
|
"name": "Oudere (65+)"
|
|
}
|
|
],
|
|
"productCategory": {
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht"
|
|
},
|
|
"requiredCustomerLevel": {
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile"
|
|
},
|
|
"requiredProducts": null,
|
|
"incompatibleProducts": null,
|
|
"mandatoryCustomerDataItems": [
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress"
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken"
|
|
}
|
|
],
|
|
"requiredGboPersonalAttributes": [
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE"
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO"
|
|
}
|
|
],
|
|
"tokenTypes": [
|
|
{
|
|
"tokenTypeId": 1,
|
|
"name": "EMV"
|
|
}
|
|
],
|
|
"paymentMoment": {
|
|
"paymentMomentId": 1,
|
|
"name": "prepaid"
|
|
},
|
|
"serviceOptions": null,
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": false,
|
|
"sendInvoice": false,
|
|
"imageReference": "https://web.acc.cloud.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://web.acc.cloud.htm.nl/webshop/htm-regio-vrij",
|
|
"termsUrl": "https://web.acc.cloud.htm.nl/reisproducten/productvoorwaarden/htm-regio-vrij/",
|
|
"isSellableAtHtm": true,
|
|
"needsSolvencyCheckConsumer": false,
|
|
"needsSolvencyCheckBusiness": false,
|
|
"sellingPeriods": [
|
|
{
|
|
"sellingPeriodId": 146,
|
|
"fromInclusive": "2024-10-30T23:00:00.000+00:00",
|
|
"toInclusive": "2029-12-30T23:00:00.000+00:00",
|
|
"salesTouchpoint": {
|
|
"salesTouchpointId": 3,
|
|
"name": "Website (Perplex)",
|
|
"isActive": true,
|
|
"retailer": {
|
|
"retailerId": 1001,
|
|
"name": "HTM externe touchpoints",
|
|
"street": "Koningin Julianaplein",
|
|
"number": 10,
|
|
"numberAddition": null,
|
|
"postalCode": "2595 AA",
|
|
"city": "Den Haag",
|
|
"country": "Nederland",
|
|
"emailAddress": "info@htm.nl",
|
|
"phoneNumber": "070 374 9002",
|
|
"taxId": 572309345923,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg"
|
|
}
|
|
},
|
|
"forbiddenPaymentMethods": null,
|
|
"sellingPrices": null
|
|
}
|
|
],
|
|
"purchasePrices": null,
|
|
"productVariants": null
|
|
}
|
|
]
|
|
}
|
|
'401':
|
|
description: '401'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/401Response'
|
|
'403':
|
|
description: '403'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/403Response'
|
|
examples:
|
|
Not allowed to see product details:
|
|
summary: Not allowed to see product details
|
|
value:
|
|
{
|
|
"code": "403",
|
|
"type": "Forbidden",
|
|
"message": "Touchpoint not authorized to see product details",
|
|
"description": "The touchpoint is currently not allowed to sell this product and thus can not see its details"
|
|
}
|
|
'404':
|
|
description: '404'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/404Response'
|
|
'500':
|
|
description: '500'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/500Response'
|
|
components:
|
|
schemas:
|
|
TaxMetadataResponse:
|
|
type: object
|
|
required:
|
|
- taxMetadataId
|
|
- taxCode
|
|
- taxPercentageAmount
|
|
properties:
|
|
taxMetadataId:
|
|
type: string
|
|
format: uuid
|
|
example: 501B17EF-36C4-4039-B92C-6517969B464E
|
|
taxCode:
|
|
type: string
|
|
example: V09
|
|
taxPercentageAmount:
|
|
type: integer
|
|
example: 21
|
|
description:
|
|
type: string
|
|
example: BTW VERKOOP LAAG 9%
|
|
ProductTranslationResponse:
|
|
type: object
|
|
required:
|
|
- language
|
|
properties:
|
|
language:
|
|
type: string
|
|
example: en
|
|
name:
|
|
type: string
|
|
example: HTM F&F 90% korting
|
|
description:
|
|
type: string
|
|
example: >-
|
|
Travel with 90% discount for a week during the first HTM F&F OVpay
|
|
pilot!
|
|
SellingPriceResponse:
|
|
type: object
|
|
required:
|
|
- sellingPriceId
|
|
- amountExclTax
|
|
- taxMetadata
|
|
- amountInclTax
|
|
- fromInclusive
|
|
- toInclusive
|
|
- internalPrice
|
|
properties:
|
|
sellingPriceId:
|
|
type: integer
|
|
example: 1
|
|
amountExclTax:
|
|
type: integer
|
|
example: 750
|
|
taxMetadata:
|
|
$ref: '#/components/schemas/TaxMetadataResponse'
|
|
amountInclTax:
|
|
type: integer
|
|
example: 908
|
|
fromInclusive:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2022-03-01T00:00:00.000+00:00'
|
|
toInclusive:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2022-06-01T00:00:00.000+00:00'
|
|
internalPrice:
|
|
type: number
|
|
example: 908.1234
|
|
PurchasePriceResponse:
|
|
type: object
|
|
required:
|
|
- purchasePriceId
|
|
- amountExclTax
|
|
- taxMetadata
|
|
- amountInclTax
|
|
- fromInclusive
|
|
- toInclusive
|
|
properties:
|
|
purchasePriceId:
|
|
type: integer
|
|
example: 1
|
|
amountExclTax:
|
|
type: integer
|
|
example: 750
|
|
taxMetadata:
|
|
$ref: '#/components/schemas/TaxMetadataResponse'
|
|
amountInclTax:
|
|
type: integer
|
|
example: 908
|
|
fromInclusive:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2022-03-01T00:00:00.000+00:00'
|
|
toInclusive:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2022-06-01T00:00:00.000+00:00'
|
|
SalesTouchpointResponse:
|
|
type: object
|
|
required:
|
|
- salesTouchpointId
|
|
- name
|
|
- isActive
|
|
- retailer
|
|
properties:
|
|
salesTouchpointId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: HTM App
|
|
isActive:
|
|
type: boolean
|
|
example: true
|
|
retailer:
|
|
type: object
|
|
required:
|
|
- retailerId
|
|
- name
|
|
properties:
|
|
retailerId:
|
|
type: integer
|
|
example: 1001
|
|
name:
|
|
type: string
|
|
example: HTM
|
|
street:
|
|
type: string
|
|
example: Kon. Julianaplein
|
|
number:
|
|
type: string
|
|
example: '10'
|
|
numberAddition:
|
|
type: string
|
|
example: a
|
|
postalCode:
|
|
type: string
|
|
example: 2595 AA
|
|
city:
|
|
type: string
|
|
example: Den Haag
|
|
country:
|
|
type: string
|
|
example: Nederland
|
|
emailAddress:
|
|
type: string
|
|
format: email
|
|
example: info@htm.nl
|
|
phoneNumber:
|
|
type: string
|
|
example: '09004864636'
|
|
taxId:
|
|
type: string
|
|
example: '09004864636'
|
|
imageReference:
|
|
type: string
|
|
example: https://htm.azure.net/abt/retailers/htm.svg
|
|
ProductPayloadListResponse:
|
|
type: object
|
|
required:
|
|
- Entries
|
|
properties:
|
|
Entries:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- productId
|
|
properties:
|
|
productId:
|
|
type: integer
|
|
example: 1
|
|
productCode:
|
|
type: string
|
|
example: 30901-WL
|
|
productName:
|
|
type: string
|
|
example: HTM pilot 90% korting
|
|
productDescription:
|
|
type: string
|
|
example: Reis met 90% korting gedurende de eerste F&F pilot!
|
|
productCategory:
|
|
type: object
|
|
required:
|
|
- productCategoryId
|
|
- isTravelProduct
|
|
- name
|
|
properties:
|
|
productCategoryId:
|
|
type: integer
|
|
example: 1
|
|
isTravelProduct:
|
|
type: boolean
|
|
example: true
|
|
name:
|
|
type: string
|
|
example: Kortingsabonnement
|
|
tokenTypes:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- tokenTypeId
|
|
- name
|
|
properties:
|
|
tokenTypeId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: EMV
|
|
sellableTouchPointIds:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
example: 3
|
|
amountInclTax:
|
|
type: number
|
|
example: 100
|
|
imageReference:
|
|
type: string
|
|
example: https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg
|
|
productPageUrl:
|
|
type: string
|
|
format: uri
|
|
example: https://www.htm.nl/nog-onbekende-product-pagina
|
|
_links:
|
|
type: object
|
|
properties:
|
|
get_details:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/serviceengine/x.x/products/1
|
|
method:
|
|
type: string
|
|
example: GET
|
|
|
|
ProductPayloadResponse:
|
|
type: object
|
|
required:
|
|
- productId
|
|
- productOwner
|
|
- isRenewable
|
|
- isSellableAtHtm
|
|
- needsSolvencyCheckConsumer
|
|
- needsSolvencyCheckBusiness
|
|
properties:
|
|
productId:
|
|
type: integer
|
|
example: 1
|
|
parentProductId:
|
|
type: integer
|
|
example: 1
|
|
productCode:
|
|
type: string
|
|
example: 30901-WL
|
|
gboPackageTemplateId:
|
|
type: string
|
|
example: '30901'
|
|
tapConnectProductCode:
|
|
type: string
|
|
example: 1234AB
|
|
productGroupMetadata:
|
|
type: object
|
|
required:
|
|
- productGroupMetadataId
|
|
- productGroupCode
|
|
- department
|
|
- costCenter
|
|
- costType
|
|
- description
|
|
- documentCode
|
|
- user
|
|
- timestampUpdated
|
|
- validFrom
|
|
properties:
|
|
productGroupMetadataId:
|
|
type: string
|
|
format: uuid
|
|
example: 501B17EF-36C4-4039-B92C-6517969B464E
|
|
productGroupCode:
|
|
type: string
|
|
example: TBD
|
|
department:
|
|
type: string
|
|
example: TBD
|
|
costCenter:
|
|
type: string
|
|
example: TBD
|
|
costType:
|
|
type: string
|
|
example: TBD
|
|
description:
|
|
type: string
|
|
example: TBD
|
|
documentCode:
|
|
type: string
|
|
example: TBD
|
|
user:
|
|
type: string
|
|
example: TBD
|
|
timestampUpdated:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2024-09-03T10:01:34.000+00:00'
|
|
validFrom:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2024-09-03T10:01:34.000+00:00'
|
|
validUntil:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2024-09-03T10:01:34.000+00:00'
|
|
productName:
|
|
type: string
|
|
example: HTM pilot 90% korting
|
|
productDescription:
|
|
type: string
|
|
example: Reis met 90% korting gedurende de eerste F&F pilot!
|
|
validityPeriod:
|
|
type: object
|
|
required:
|
|
- validityPeriodId
|
|
- fromInclusive
|
|
- toInclusive
|
|
properties:
|
|
validityPeriodId:
|
|
type: integer
|
|
example: 1
|
|
fromInclusive:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2024-09-03T10:01:34.000+00:00'
|
|
toInclusive:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2024-09-03T23:59:59.999+00:00'
|
|
productTranslations:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ProductTranslationResponse'
|
|
productOwner:
|
|
type: object
|
|
required:
|
|
- productOwnerId
|
|
- name
|
|
properties:
|
|
productOwnerId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: John Doe
|
|
organization:
|
|
type: string
|
|
example: HTM
|
|
marketSegmentse:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- marketSegmentId
|
|
- name
|
|
properties:
|
|
marketSegmentId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: B2C
|
|
customerSegments:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- customerSegmentId
|
|
- name
|
|
properties:
|
|
customerSegmentId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: Kind (4-11)
|
|
productCategory:
|
|
type: object
|
|
required:
|
|
- productCategoryId
|
|
- name
|
|
- isTravelProduct
|
|
properties:
|
|
productCategoryId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: Kortingsabonnement
|
|
isTravelProduct:
|
|
type: boolean
|
|
example: true
|
|
requiredCustomerLevel:
|
|
type: object
|
|
required:
|
|
- requiredCustomerLevelId
|
|
- name
|
|
properties:
|
|
requiredCustomerLevelId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: anonymous
|
|
requiredProducts:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- requiredProductId
|
|
- productName
|
|
properties:
|
|
requiredProductId:
|
|
type: integer
|
|
example: 2
|
|
productName:
|
|
type: string
|
|
example: Product name
|
|
description:
|
|
type: string
|
|
description: Reason why the product is required
|
|
example: Description
|
|
incompatibleProducts:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- incompatibleProductId
|
|
- productName
|
|
properties:
|
|
incompatibleProductId:
|
|
type: integer
|
|
example: 4
|
|
productName:
|
|
type: string
|
|
example: Product name
|
|
description:
|
|
type: string
|
|
description: >-
|
|
Reason why the product is incompatible with the selected
|
|
product
|
|
example: Description
|
|
mandatoryCustomerDataItems:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- mandatoryCustomerDataItemId
|
|
- customerDataItem
|
|
properties:
|
|
mandatoryCustomerDataItemId:
|
|
type: integer
|
|
example: 3
|
|
customerDataItem:
|
|
type: string
|
|
example: dateOfBirth
|
|
requiredGboPersonalAttributes:
|
|
type: array
|
|
description: >-
|
|
List of required GBO personal attributes (PAD) - should not be
|
|
user-editable, but automatically populated by PMT backend, based on
|
|
the selected gboPackageTemplateId (if any)
|
|
items:
|
|
type: object
|
|
required:
|
|
- requiredGboPersonalAttributeId
|
|
- name
|
|
properties:
|
|
requiredGboPersonalAttributeId:
|
|
type: integer
|
|
example: 2
|
|
name:
|
|
type: string
|
|
example: BIRTHDATE
|
|
tokenTypes:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- tokenTypeId
|
|
- name
|
|
properties:
|
|
tokenTypeId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: EMV
|
|
paymentMoment:
|
|
type: object
|
|
required:
|
|
- paymentMomentId
|
|
- name
|
|
properties:
|
|
paymentMomentId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: prepaid
|
|
serviceOptions:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- serviceOptionId
|
|
- action
|
|
properties:
|
|
serviceOptionId:
|
|
type: integer
|
|
example: 1
|
|
action:
|
|
type: string
|
|
example: cancellableTermAhead
|
|
description:
|
|
type: string
|
|
example: Per termijn vooruit opzegbaar
|
|
validityDuration:
|
|
type: string
|
|
format: duration
|
|
example: P1M
|
|
maxStartInFutureDuration:
|
|
type: string
|
|
format: duration
|
|
example: P6W
|
|
isRenewable:
|
|
type: boolean
|
|
example: true
|
|
sendInvoice:
|
|
type: boolean
|
|
example: false
|
|
imageReference:
|
|
type: string
|
|
format: uri
|
|
example: https://htm.azure.net/abt/products/product_1.svg
|
|
productPageUrl:
|
|
type: string
|
|
format: uri
|
|
example: https://www.htm.nl/nog-onbekende-product-pagina
|
|
termsUrl:
|
|
type: string
|
|
format: uri
|
|
example: https://www.htm.nl/nog-onbekende-productvoorwaarden-pagina
|
|
isSellableAtHtm:
|
|
type: boolean
|
|
example: true
|
|
needsSolvencyCheckConsumer:
|
|
type: boolean
|
|
example: false
|
|
needsSolvencyCheckBusiness:
|
|
type: boolean
|
|
example: false
|
|
sellingPeriods:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- sellingPeriodId
|
|
- fromInclusive
|
|
- toInclusive
|
|
- salesTouchpoint
|
|
properties:
|
|
sellingPeriodId:
|
|
type: integer
|
|
example: 1
|
|
fromInclusive:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2022-03-01T00:00:00.000+00:00'
|
|
toInclusive:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2022-06-01T00:00:00.000+00:00'
|
|
salesTouchpoint:
|
|
$ref: '#/components/schemas/SalesTouchpointResponse'
|
|
forbiddenPaymentMethods:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- forbiddenPaymentMethodId
|
|
- name
|
|
properties:
|
|
forbiddenPaymentMethodId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: Credit Card
|
|
issuer:
|
|
type: string
|
|
example: American Express
|
|
sellingPrices:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/SellingPriceResponse'
|
|
purchasePrices:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/PurchasePriceResponse'
|
|
auditTrail:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- auditTrailId
|
|
- action
|
|
- user
|
|
- timestamp
|
|
properties:
|
|
auditTrailId:
|
|
type: integer
|
|
example: 1
|
|
action:
|
|
type: string
|
|
example: insert
|
|
user:
|
|
type: string
|
|
example: username
|
|
timestamp:
|
|
type: string
|
|
format: date-time-offset
|
|
example: '2024-09-03T10:01:34.000+00:00'
|
|
400Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: '400'
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
example: Bad Request
|
|
description:
|
|
type: string
|
|
example: '''2023-02-01 00:00:00'' is not a valid Datetime'
|
|
apiErrorCode:
|
|
type: string
|
|
example: htm.api.err.40xxx
|
|
401Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: '401'
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
example: Invalid Credentials
|
|
description:
|
|
type: string
|
|
example: >-
|
|
Invalid Credentials. Make sure you have provided the correct
|
|
security credentials
|
|
apiErrorCode:
|
|
type: string
|
|
example: htm.api.err.40xxx
|
|
403Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: '403'
|
|
type:
|
|
type: string
|
|
example: "Forbidden"
|
|
message:
|
|
type: string
|
|
example: Retailer not authorized to access product details
|
|
description:
|
|
type: string
|
|
example: The touchpoint is not part of a retailer that isallowed to access product details for this productId
|
|
apiErrorCode:
|
|
type: string
|
|
example: htm.api.err.40xxx
|
|
404Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: '404'
|
|
type:
|
|
type: string
|
|
example: Status report
|
|
message:
|
|
type: string
|
|
example: Not Found
|
|
description:
|
|
type: string
|
|
example: The requested resource is not available.
|
|
apiErrorCode:
|
|
type: string
|
|
example: htm.api.err.40xxx
|
|
500Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: '500'
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
example: Internal Server Error
|
|
description:
|
|
type: string
|
|
apiErrorCode:
|
|
type: string
|
|
example: htm.api.err.40xxx
|