2568 lines
124 KiB
YAML
2568 lines
124 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/abtserviceengine/2.0
|
|
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:
|
|
No products / Empty list:
|
|
summary: No products / Empty list
|
|
description: No products
|
|
value: { "Entries": [] }
|
|
List containing one product with many null attributes:
|
|
summary: List containing one product with many null attributes
|
|
description: |-
|
|
Most product attributes are optional on a database level and can thus be null; this example shows that all attributes as defined in the schema are always represented in the response, even if null. \
|
|
**Empty lists/arrays show up as "[]", not as null!**
|
|
value:
|
|
{
|
|
"Entries":
|
|
[
|
|
{
|
|
"productId": 99,
|
|
"productName": null,
|
|
"productDescription": null,
|
|
"productCategory": null,
|
|
"tokenTypes": [],
|
|
"sellableTouchpointIds": [],
|
|
"amountInclTax": null,
|
|
"imageReference": null,
|
|
"productPageUrl": null,
|
|
"_links":
|
|
{
|
|
"get_details":
|
|
{
|
|
"href": "https://api.integratielaag.nl/abt/abtserviceengine/2.0/products/99",
|
|
"method": "GET",
|
|
},
|
|
},
|
|
},
|
|
],
|
|
}
|
|
List containing one product with 4 currently active SellingPeriods (called by touchpointId 1):
|
|
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,
|
|
"productName": "HTM dagkaart",
|
|
"productDescription": "Reis een dag met het openbaar vervoer bij HTM",
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 6,
|
|
"isTravelProduct": false,
|
|
"name": "Barcode",
|
|
},
|
|
"tokenTypes": [],
|
|
"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://api.integratielaag.nl/abt/abtserviceengine/2.0/products/2",
|
|
"method": "GET",
|
|
},
|
|
},
|
|
},
|
|
],
|
|
}
|
|
List containing one product with 4 currently active SellingPeriods (called by touchpointId 3):
|
|
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,
|
|
"productName": "HTM dagkaart",
|
|
"productDescription": "Reis een dag met het openbaar vervoer bij HTM",
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 6,
|
|
"isTravelProduct": false,
|
|
"name": "Barcode",
|
|
},
|
|
"tokenTypes": [],
|
|
"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://api.integratielaag.nl/abt/abtserviceengine/2.0/products/2",
|
|
"method": "GET",
|
|
},
|
|
},
|
|
},
|
|
],
|
|
}
|
|
List containing one product which can only be sold by touchpointId 3 (called by touchpointId 4):
|
|
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,
|
|
"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": [],
|
|
"sellableTouchpointIds": [3],
|
|
"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://api.integratielaag.nl/abt/abtserviceengine/2.0/products/49",
|
|
"method": "GET",
|
|
},
|
|
},
|
|
},
|
|
],
|
|
}
|
|
List containing one product which can be sold by touchpointId 3 and 4 (called by touchpointId 4):
|
|
summary: List containing one product which can be sold by touchpointId 3 and 4 (called by touchpointId 4)
|
|
description: Product is returned
|
|
value:
|
|
{
|
|
"Entries":
|
|
[
|
|
{
|
|
"productId": 126,
|
|
"productName": "HTM-30001",
|
|
"productDescription": "Reis met 20% korting op je betaalpas bij HTM.",
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 1,
|
|
"isTravelProduct": true,
|
|
"name": "Kortingsabonnement",
|
|
},
|
|
"tokenTypes": [{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"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://api.integratielaag.nl/abt/abtserviceengine/2.0/products/126",
|
|
"method": "GET",
|
|
},
|
|
},
|
|
},
|
|
],
|
|
}
|
|
List containing multiple products (called by touchpointId 3):
|
|
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,
|
|
"productName": "HTM dagkaart",
|
|
"productDescription": "Reis een dag met het openbaar vervoer bij HTM",
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 6,
|
|
"isTravelProduct": false,
|
|
"name": "Barcode",
|
|
},
|
|
"tokenTypes": [],
|
|
"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://api.integratielaag.nl/abt/abtserviceengine/2.0/products/2",
|
|
"method": "GET",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"productId": 4,
|
|
"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://api.integratielaag.nl/abt/abtserviceengine/2.0/products/4",
|
|
"method": "GET",
|
|
},
|
|
},
|
|
},
|
|
],
|
|
}
|
|
/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. **Empty lists/arrays show up as "[]", not as null!**
|
|
|
|
The response contains a product tree, including all child products (`productVariants`) of the given
|
|
productId that the touchpoint is allowed to see and/or sell.
|
|
|
|
Touchpoints can only retrieve details for products that they are allowed to see and/or sell at the time of the request
|
|
(i.e. the product is returned in the products list response).
|
|
Thus, productVariants that are not available to the calling touchpoint are not returned in the response.
|
|
|
|
When no product exists for the given productId, a 404 Error response is returned.
|
|
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:
|
|
90% Discount F&F pilot product (called by touchpointId 3):
|
|
summary: 90% Discount F&F pilot product (called by touchpointId 3)
|
|
description: |-
|
|
All details (that the calling touchpoint is allowed to see) for the 90% Discount F&F pilot product.\
|
|
Even though this product has sellingPeriods for multiple touchpoints, only the currently active sellingPeriod and price for touchpointId 3 are returned.
|
|
|
|
This product has no child products, so its `productVariants` array is empty.
|
|
value:
|
|
{
|
|
"productId": 24,
|
|
"parentProductId": null,
|
|
"fikoArticleNumber": "1234",
|
|
"gboPackageTemplateId": "30901",
|
|
"tapConnectProductCode": null,
|
|
"productName": "HTM 90% Korting",
|
|
"productDescription": "Reis je regelmatig met HTM? Activeer dan HTM 90% Korting op je betaalpas of credit card en reis een week lang met korting!",
|
|
"validityPeriod":
|
|
{
|
|
"validityPeriodId": 144,
|
|
"fromInclusive": "2023-12-31T23:00:00.000+00:00",
|
|
"toInclusive": "2028-11-25T04:00:00.000+00:00",
|
|
},
|
|
"productTranslations":
|
|
[
|
|
{
|
|
"language": "en",
|
|
"name": "HTM 90% Discount",
|
|
"description": "Are you a regular traveler? Activate HTM 90% discount on your EMV card!",
|
|
},
|
|
],
|
|
"productOwner":
|
|
{
|
|
"productOwnerId": 17,
|
|
"name": "Corneel Verstoep",
|
|
"organization": "HTM",
|
|
},
|
|
"marketSegments":
|
|
[{ "marketSegmentId": 1, "name": "B2C" }],
|
|
"allowedGboAgeProfiles": [],
|
|
"customerSegments": [],
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 1,
|
|
"isTravelProduct": true,
|
|
"name": "Kortingsabonnement",
|
|
},
|
|
"requiredCustomerLevel":
|
|
{ "requiredCustomerLevelId": 1, "name": "guest" },
|
|
"requiredProducts": [],
|
|
"incompatibleProducts": [],
|
|
"mandatoryCustomerDataItems": [],
|
|
"requiredGboPersonalAttributes": [],
|
|
"tokenTypes": [{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"paymentMoment":
|
|
{ "paymentMomentId": 1, "name": "prepaid" },
|
|
"serviceOptions": [],
|
|
"validityDuration": "P7D",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": false,
|
|
"sendInvoice": false,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://web.acc.cloud.htm.nl/webshop/htm-90-korting",
|
|
"termsUrl": "https://web.acc.cloud.htm.nl/media/hkfak1dj/pv-pilotproduct.pdf",
|
|
"isSellableAtHtm": true,
|
|
"needsSolvencyCheckConsumer": false,
|
|
"needsSolvencyCheckBusiness": false,
|
|
"sellingPeriods":
|
|
[
|
|
{
|
|
"sellingPeriodId": 78,
|
|
"fromInclusive": "2024-09-30T23:00:00.000+00:00",
|
|
"toInclusive": "2028-11-17T23: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": [],
|
|
"sellingPrices":
|
|
[
|
|
{
|
|
"sellingPriceId": 78,
|
|
"amountExclTax": 92,
|
|
"amountInclTax": 100,
|
|
"fromInclusive": "2024-09-30T23:00:00.000+00:00",
|
|
"toInclusive": "2028-11-17T23:00:00.000+00:00",
|
|
"internalPrice": 0.0000,
|
|
"taxCode": "V09",
|
|
"taxPercentage": 9.0000,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"purchasePrices": [],
|
|
"productVariants": [],
|
|
}
|
|
20% Discount product (called by touchpointId 4):
|
|
summary: 20% Discount product (called by touchpointId 4)
|
|
description: |-
|
|
All details (that the calling touchpoint is allowed to see) for the 20% Discount product.\
|
|
Even though this product has sellingPeriods for multiple touchpoints (3 and 4), only the currently active sellingPeriod and price for touchpointId 4 are returned.
|
|
|
|
This product has two `productVariants`: a single month variant and a subscription variant.
|
|
value:
|
|
{
|
|
"productId": 126,
|
|
"parentProductId": null,
|
|
"fikoArticleNumber": "1234",
|
|
"gboPackageTemplateId": "30001",
|
|
"tapConnectProductCode": null,
|
|
"productName": "HTM 20% Korting",
|
|
"productDescription": "Reis met 20% korting op je betaalpas bij HTM.",
|
|
"validityPeriod":
|
|
{
|
|
"validityPeriodId": 236,
|
|
"fromInclusive": "2025-01-19T23:00:00.000+00:00",
|
|
"toInclusive": "2028-11-25T04:00:00.000+00:00",
|
|
},
|
|
"productTranslations":
|
|
[
|
|
{
|
|
"language": "en",
|
|
"name": "HTM 20% Discount",
|
|
"description": "Travel with 20% discount using your bank card with HTM.",
|
|
},
|
|
],
|
|
"productOwner":
|
|
{
|
|
"productOwnerId": 17,
|
|
"name": "Corneel Verstoep",
|
|
"organization": "HTM",
|
|
},
|
|
"marketSegments":
|
|
[{ "marketSegmentId": 1, "name": "B2C" }],
|
|
"customerSegments": [],
|
|
"allowedGboAgeProfiles": [],
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 1,
|
|
"isTravelProduct": true,
|
|
"name": "Kortingsabonnement",
|
|
},
|
|
"requiredCustomerLevel":
|
|
{ "requiredCustomerLevelId": 1, "name": "guest" },
|
|
"requiredProducts": [],
|
|
"incompatibleProducts": [],
|
|
"mandatoryCustomerDataItems":
|
|
[
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken",
|
|
},
|
|
],
|
|
"requiredGboPersonalAttributes": [],
|
|
"tokenTypes": [{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"paymentMoment":
|
|
{ "paymentMomentId": 1, "name": "prepaid" },
|
|
"serviceOptions": [],
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": null,
|
|
"sendInvoice": null,
|
|
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
|
|
"productPageUrl": "https://www.htm.nl/webshop/htm-20-korting",
|
|
"termsUrl": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-20-korting",
|
|
"isSellableAtHtm": true,
|
|
"needsSolvencyCheckConsumer": false,
|
|
"needsSolvencyCheckBusiness": false,
|
|
"sellingPeriods":
|
|
[
|
|
{
|
|
"sellingPeriodId": 172,
|
|
"fromInclusive": "2025-01-19T23:00:00.000+00:00",
|
|
"toInclusive": "2028-11-17T23:00:00.000+00:00",
|
|
"salesTouchpoint":
|
|
{
|
|
"salesTouchpointId": 4,
|
|
"name": "App (Infoplaza)",
|
|
"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": [],
|
|
"sellingPrices": [],
|
|
},
|
|
],
|
|
"purchasePrices": [],
|
|
"productVariants":
|
|
[
|
|
{
|
|
"productId": 119,
|
|
"parentProductId": 126,
|
|
"fikoArticleNumber": "1234",
|
|
"gboPackageTemplateId": "30001",
|
|
"tapConnectProductCode": null,
|
|
"productName": "HTM 20% Korting (losse maand)",
|
|
"productDescription": "Reis een maand lang met 20% korting op je betaalpas bij HTM.",
|
|
"validityPeriod":
|
|
{
|
|
"validityPeriodId": 229,
|
|
"fromInclusive": "2025-01-19T23:00:00.000+00:00",
|
|
"toInclusive": "2028-11-25T04:00:00.000+00:00",
|
|
},
|
|
"productTranslations":
|
|
[
|
|
{
|
|
"language": "en",
|
|
"name": "HTM 20% Discount (single month)",
|
|
"description": "Travel with 20% discount for a month using your bank card with HTM.",
|
|
},
|
|
],
|
|
"productOwner":
|
|
{
|
|
"productOwnerId": 17,
|
|
"name": "Corneel Verstoep",
|
|
"organization": "HTM",
|
|
},
|
|
"marketSegments":
|
|
[{ "marketSegmentId": 1, "name": "B2C" }],
|
|
"customerSegments": [],
|
|
"allowedGboAgeProfiles": [],
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 1,
|
|
"isTravelProduct": true,
|
|
"name": "Kortingsabonnement",
|
|
},
|
|
"requiredCustomerLevel":
|
|
{ "requiredCustomerLevelId": 1, "name": "guest" },
|
|
"requiredProducts": [],
|
|
"incompatibleProducts": [],
|
|
"mandatoryCustomerDataItems":
|
|
[
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken",
|
|
},
|
|
],
|
|
"requiredGboPersonalAttributes": [],
|
|
"tokenTypes": [{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"paymentMoment":
|
|
{ "paymentMomentId": 1, "name": "prepaid" },
|
|
"serviceOptions": [],
|
|
"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-20-korting",
|
|
"termsUrl": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-20-korting",
|
|
"isSellableAtHtm": true,
|
|
"needsSolvencyCheckConsumer": false,
|
|
"needsSolvencyCheckBusiness": false,
|
|
"sellingPeriods":
|
|
[
|
|
{
|
|
"sellingPeriodId": 160,
|
|
"fromInclusive": "2025-01-19T23:00:00.000+00:00",
|
|
"toInclusive": "2028-11-17T23:00:00.000+00:00",
|
|
"salesTouchpoint":
|
|
{
|
|
"salesTouchpointId": 4,
|
|
"name": "App (Infoplaza)",
|
|
"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": [],
|
|
"sellingPrices":
|
|
[
|
|
{
|
|
"sellingPriceId": 149,
|
|
"amountExclTax": 276,
|
|
"amountInclTax": 300,
|
|
"fromInclusive": "2025-01-19T23:00:00.000+00:00",
|
|
"toInclusive": "2028-11-17T23:00:00.000+00:00",
|
|
"internalPrice": 0.0000,
|
|
"taxCode": "V09",
|
|
"taxPercentage": 9.0000,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"purchasePrices": [],
|
|
"productVariants": [],
|
|
},
|
|
{
|
|
"productId": 120,
|
|
"parentProductId": 126,
|
|
"fikoArticleNumber": "1234",
|
|
"gboPackageTemplateId": "30001",
|
|
"tapConnectProductCode": null,
|
|
"productName": "HTM 20% Korting (doorlopend abonnement)",
|
|
"productDescription": "Reis gedurende je abonnement met 20% korting op je betaalpas bij HTM.",
|
|
"validityPeriod":
|
|
{
|
|
"validityPeriodId": 230,
|
|
"fromInclusive": "2025-01-19T23:00:00.000+00:00",
|
|
"toInclusive": "2028-11-25T04:00:00.000+00:00",
|
|
},
|
|
"productTranslations":
|
|
[
|
|
{
|
|
"language": "en",
|
|
"name": "HTM 20% Discount (subscription)",
|
|
"description": "Travel with 20% discount for the duration of your subscription using your bank card with HTM.",
|
|
},
|
|
],
|
|
"productOwner":
|
|
{
|
|
"productOwnerId": 17,
|
|
"name": "Corneel Verstoep",
|
|
"organization": "HTM",
|
|
},
|
|
"marketSegments":
|
|
[{ "marketSegmentId": 1, "name": "B2C" }],
|
|
"customerSegments": [],
|
|
"allowedGboAgeProfiles": [],
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 1,
|
|
"isTravelProduct": true,
|
|
"name": "Kortingsabonnement",
|
|
},
|
|
"requiredCustomerLevel":
|
|
{ "requiredCustomerLevelId": 1, "name": "guest" },
|
|
"requiredProducts": [],
|
|
"incompatibleProducts": [],
|
|
"mandatoryCustomerDataItems":
|
|
[
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken",
|
|
},
|
|
],
|
|
"requiredGboPersonalAttributes": [],
|
|
"tokenTypes": [{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"paymentMoment":
|
|
{ "paymentMomentId": 1, "name": "prepaid" },
|
|
"serviceOptions": [],
|
|
"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-20-korting",
|
|
"termsUrl": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-20-korting",
|
|
"isSellableAtHtm": true,
|
|
"needsSolvencyCheckConsumer": false,
|
|
"needsSolvencyCheckBusiness": false,
|
|
"sellingPeriods":
|
|
[
|
|
{
|
|
"sellingPeriodId": 159,
|
|
"fromInclusive": "2025-01-19T23:00:00.000+00:00",
|
|
"toInclusive": "2028-11-17T23:00:00.000+00:00",
|
|
"salesTouchpoint":
|
|
{
|
|
"salesTouchpointId": 4,
|
|
"name": "App (Infoplaza)",
|
|
"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": [],
|
|
"sellingPrices":
|
|
[
|
|
{
|
|
"sellingPriceId": 148,
|
|
"amountExclTax": 276,
|
|
"amountInclTax": 300,
|
|
"fromInclusive": "2025-01-19T23:00:00.000+00:00",
|
|
"toInclusive": "2028-11-17T23:00:00.000+00:00",
|
|
"internalPrice": 0.0000,
|
|
"taxCode": "V09",
|
|
"taxPercentage": 9.0000,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"purchasePrices": [],
|
|
"productVariants": [],
|
|
},
|
|
],
|
|
}
|
|
Regio Vrij product and (part of) its productVariants (called by touchpointId 3):
|
|
summary: 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 (7 out of 84 of) its productVariants; the full tree would be too huge to be useful as an example.
|
|
|
|
The full depth of the tree is included in the example for the HL62 Reduced Fare Variant.
|
|
value:
|
|
{
|
|
"productId": 49,
|
|
"parentProductId": null,
|
|
"fikoArticleNumber": "1234",
|
|
"gboPackageTemplateId": null,
|
|
"tapConnectProductCode": 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": [],
|
|
"customerSegments": [],
|
|
"allowedGboAgeProfiles":
|
|
[
|
|
{
|
|
"gboAgeProfileId": 1,
|
|
"name": "Baby/peuter (0 t/m 3 jaar)",
|
|
"ageFromInclusive": 0,
|
|
"ageToInclusive": 3,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 2,
|
|
"name": "Kind (4 t/m 11 jaar)",
|
|
"ageFromInclusive": 4,
|
|
"ageToInclusive": 11,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 3,
|
|
"name": "Jongere (12 t/m 18 jaar)",
|
|
"ageFromInclusive": 12,
|
|
"ageToInclusive": 18,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 4,
|
|
"name": "Volwassene (19 t/m 64 jaar)",
|
|
"ageFromInclusive": 19,
|
|
"ageToInclusive": 64,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 5,
|
|
"name": "Oudere (65 jaar of ouder)",
|
|
"ageFromInclusive": 65,
|
|
"ageToInclusive": 999,
|
|
},
|
|
],
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht",
|
|
},
|
|
"requiredCustomerLevel":
|
|
{ "requiredCustomerLevelId": 3, "name": "profile" },
|
|
"requiredProducts": [],
|
|
"incompatibleProducts": [],
|
|
"mandatoryCustomerDataItems":
|
|
[
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 8,
|
|
"customerDataItem": "padBirthDate",
|
|
},
|
|
],
|
|
"requiredGboPersonalAttributes":
|
|
[
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO",
|
|
},
|
|
],
|
|
"tokenTypes": [{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"paymentMoment":
|
|
{ "paymentMomentId": 1, "name": "prepaid" },
|
|
"serviceOptions": [],
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": null,
|
|
"sendInvoice": null,
|
|
"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": [],
|
|
"sellingPrices": [],
|
|
},
|
|
],
|
|
"purchasePrices": [],
|
|
"productVariants":
|
|
[
|
|
{
|
|
"productId": 109,
|
|
"parentProductId": 49,
|
|
"fikoArticleNumber": "1234",
|
|
"gboPackageTemplateId": null,
|
|
"tapConnectProductCode": 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": [],
|
|
"customerSegments": [],
|
|
"allowedGboAgeProfiles":
|
|
[
|
|
{
|
|
"gboAgeProfileId": 1,
|
|
"name": "Baby/peuter (0 t/m 3 jaar)",
|
|
"ageFromInclusive": 0,
|
|
"ageToInclusive": 3,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 2,
|
|
"name": "Kind (4 t/m 11 jaar)",
|
|
"ageFromInclusive": 4,
|
|
"ageToInclusive": 11,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 3,
|
|
"name": "Jongere (12 t/m 18 jaar)",
|
|
"ageFromInclusive": 12,
|
|
"ageToInclusive": 18,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 4,
|
|
"name": "Volwassene (19 t/m 64 jaar)",
|
|
"ageFromInclusive": 19,
|
|
"ageToInclusive": 64,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 5,
|
|
"name": "Oudere (65 jaar of ouder)",
|
|
"ageFromInclusive": 65,
|
|
"ageToInclusive": 999,
|
|
},
|
|
],
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht",
|
|
},
|
|
"requiredCustomerLevel":
|
|
{
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile",
|
|
},
|
|
"requiredProducts": [],
|
|
"incompatibleProducts": [],
|
|
"mandatoryCustomerDataItems":
|
|
[
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 8,
|
|
"customerDataItem": "padBirthDate",
|
|
},
|
|
],
|
|
"requiredGboPersonalAttributes":
|
|
[
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO",
|
|
},
|
|
],
|
|
"tokenTypes": [{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"paymentMoment":
|
|
{ "paymentMomentId": 1, "name": "prepaid" },
|
|
"serviceOptions": [],
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": null,
|
|
"sendInvoice": null,
|
|
"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": [],
|
|
"sellingPrices": [],
|
|
},
|
|
],
|
|
"purchasePrices": [],
|
|
"productVariants":
|
|
[
|
|
{
|
|
"productId": 114,
|
|
"parentProductId": 109,
|
|
"fikoArticleNumber": "1234",
|
|
"gboPackageTemplateId": "33629",
|
|
"tapConnectProductCode": 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": [],
|
|
"customerSegments": [],
|
|
"allowedGboAgeProfiles":
|
|
[
|
|
{
|
|
"gboAgeProfileId": 1,
|
|
"name": "Baby/peuter (0 t/m 3 jaar)",
|
|
"ageFromInclusive": 0,
|
|
"ageToInclusive": 3,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 4,
|
|
"name": "Volwassene (19 t/m 64 jaar)",
|
|
"ageFromInclusive": 19,
|
|
"ageToInclusive": 64,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 5,
|
|
"name": "Oudere (65 jaar of ouder)",
|
|
"ageFromInclusive": 65,
|
|
"ageToInclusive": 999,
|
|
},
|
|
],
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht",
|
|
},
|
|
"requiredCustomerLevel":
|
|
{
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile",
|
|
},
|
|
"requiredProducts": [],
|
|
"incompatibleProducts": [],
|
|
"mandatoryCustomerDataItems":
|
|
[
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 8,
|
|
"customerDataItem": "padBirthDate",
|
|
},
|
|
],
|
|
"requiredGboPersonalAttributes":
|
|
[
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO",
|
|
},
|
|
],
|
|
"tokenTypes":
|
|
[{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"paymentMoment":
|
|
{ "paymentMomentId": 1, "name": "prepaid" },
|
|
"serviceOptions": [],
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": null,
|
|
"sendInvoice": null,
|
|
"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": [],
|
|
"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",
|
|
"taxCode": "V09",
|
|
"taxPercentage": 9.0000,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"purchasePrices": [],
|
|
"productVariants": [],
|
|
},
|
|
{
|
|
"productId": 115,
|
|
"parentProductId": 109,
|
|
"fikoArticleNumber": "1234",
|
|
"gboPackageTemplateId": "33630",
|
|
"tapConnectProductCode": 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": [],
|
|
"customerSegments": [],
|
|
"allowedGboAgeProfiles":
|
|
[
|
|
{
|
|
"gboAgeProfileId": 2,
|
|
"name": "Kind (4 t/m 11 jaar)",
|
|
"ageFromInclusive": 4,
|
|
"ageToInclusive": 11,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 3,
|
|
"name": "Jongere (12 t/m 18 jaar)",
|
|
"ageFromInclusive": 12,
|
|
"ageToInclusive": 18,
|
|
},
|
|
],
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht",
|
|
},
|
|
"requiredCustomerLevel":
|
|
{
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile",
|
|
},
|
|
"requiredProducts": [],
|
|
"incompatibleProducts": [],
|
|
"mandatoryCustomerDataItems":
|
|
[
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 8,
|
|
"customerDataItem": "padBirthDate",
|
|
},
|
|
],
|
|
"requiredGboPersonalAttributes":
|
|
[
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO",
|
|
},
|
|
],
|
|
"tokenTypes":
|
|
[{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"paymentMoment":
|
|
{ "paymentMomentId": 1, "name": "prepaid" },
|
|
"serviceOptions": [],
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": null,
|
|
"sendInvoice": null,
|
|
"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": [],
|
|
"sellingPrices":
|
|
[
|
|
{
|
|
"sellingPriceId": 140,
|
|
"amountExclTax": 8899,
|
|
"amountInclTax": 9700,
|
|
"fromInclusive": "2024-12-31T23:00:00.000+00:00",
|
|
"toInclusive": "2025-12-31T23:00:00.000+00:00",
|
|
"internalPrice": 0.0000,
|
|
"taxCode": "V09",
|
|
"taxPercentage": 9.0000,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"purchasePrices": [],
|
|
"productVariants":
|
|
[
|
|
{
|
|
"productId": 116,
|
|
"parentProductId": 115,
|
|
"fikoArticleNumber": "1234",
|
|
"gboPackageTemplateId": "33630",
|
|
"tapConnectProductCode": null,
|
|
"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": [],
|
|
"customerSegments": [],
|
|
"allowedGboAgeProfiles":
|
|
[
|
|
{
|
|
"gboAgeProfileId": 2,
|
|
"name": "Kind (4 t/m 11 jaar)",
|
|
"ageFromInclusive": 4,
|
|
"ageToInclusive": 11,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 3,
|
|
"name": "Jongere (12 t/m 18 jaar)",
|
|
"ageFromInclusive": 12,
|
|
"ageToInclusive": 18,
|
|
},
|
|
],
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht",
|
|
},
|
|
"requiredCustomerLevel":
|
|
{
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile",
|
|
},
|
|
"requiredProducts": [],
|
|
"incompatibleProducts": [],
|
|
"mandatoryCustomerDataItems":
|
|
[
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 8,
|
|
"customerDataItem": "padBirthDate",
|
|
},
|
|
],
|
|
"requiredGboPersonalAttributes":
|
|
[
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO",
|
|
},
|
|
],
|
|
"tokenTypes":
|
|
[{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"paymentMoment":
|
|
{
|
|
"paymentMomentId": 1,
|
|
"name": "prepaid",
|
|
},
|
|
"serviceOptions": [],
|
|
"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": [],
|
|
"sellingPrices":
|
|
[
|
|
{
|
|
"sellingPriceId": 141,
|
|
"amountExclTax": 8899,
|
|
"amountInclTax": 9700,
|
|
"fromInclusive": "2024-12-31T23:00:00.000+00:00",
|
|
"toInclusive": "2025-12-31T23:00:00.000+00:00",
|
|
"internalPrice": 0.0000,
|
|
"taxCode": "V09",
|
|
"taxPercentage": 9.0000,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"purchasePrices": [],
|
|
"productVariants": [],
|
|
},
|
|
{
|
|
"productId": 117,
|
|
"parentProductId": 115,
|
|
"fikoArticleNumber": "1234",
|
|
"gboPackageTemplateId": "33630",
|
|
"tapConnectProductCode": null,
|
|
"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": [],
|
|
"customerSegments": [],
|
|
"allowedGboAgeProfiles":
|
|
[
|
|
{
|
|
"gboAgeProfileId": 2,
|
|
"name": "Kind (4 t/m 11 jaar)",
|
|
"ageFromInclusive": 4,
|
|
"ageToInclusive": 11,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 3,
|
|
"name": "Jongere (12 t/m 18 jaar)",
|
|
"ageFromInclusive": 12,
|
|
"ageToInclusive": 18,
|
|
},
|
|
],
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht",
|
|
},
|
|
"requiredCustomerLevel":
|
|
{
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile",
|
|
},
|
|
"requiredProducts": [],
|
|
"incompatibleProducts": [],
|
|
"mandatoryCustomerDataItems":
|
|
[
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 8,
|
|
"customerDataItem": "padBirthDate",
|
|
},
|
|
],
|
|
"requiredGboPersonalAttributes":
|
|
[
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO",
|
|
},
|
|
],
|
|
"tokenTypes":
|
|
[{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"paymentMoment":
|
|
{
|
|
"paymentMomentId": 1,
|
|
"name": "prepaid",
|
|
},
|
|
"serviceOptions": [],
|
|
"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": [],
|
|
"sellingPrices":
|
|
[
|
|
{
|
|
"sellingPriceId": 142,
|
|
"amountExclTax": 8899,
|
|
"amountInclTax": 9700,
|
|
"fromInclusive": "2024-12-31T23:00:00.000+00:00",
|
|
"toInclusive": "2025-12-31T23:00:00.000+00:00",
|
|
"internalPrice": 0.0000,
|
|
"taxCode": "V09",
|
|
"taxPercentage": 9.0000,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"purchasePrices": [],
|
|
"productVariants": [],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
"productId": 112,
|
|
"parentProductId": 49,
|
|
"fikoArticleNumber": "1234",
|
|
"gboPackageTemplateId": null,
|
|
"tapConnectProductCode": 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": [],
|
|
"customerSegments": [],
|
|
"allowedGboAgeProfiles":
|
|
[
|
|
{
|
|
"gboAgeProfileId": 1,
|
|
"name": "Baby/peuter (0 t/m 3 jaar)",
|
|
"ageFromInclusive": 0,
|
|
"ageToInclusive": 3,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 2,
|
|
"name": "Kind (4 t/m 11 jaar)",
|
|
"ageFromInclusive": 4,
|
|
"ageToInclusive": 11,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 3,
|
|
"name": "Jongere (12 t/m 18 jaar)",
|
|
"ageFromInclusive": 12,
|
|
"ageToInclusive": 18,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 4,
|
|
"name": "Volwassene (19 t/m 64 jaar)",
|
|
"ageFromInclusive": 19,
|
|
"ageToInclusive": 64,
|
|
},
|
|
{
|
|
"gboAgeProfileId": 5,
|
|
"name": "Oudere (65 jaar of ouder)",
|
|
"ageFromInclusive": 65,
|
|
"ageToInclusive": 999,
|
|
},
|
|
],
|
|
"productCategory":
|
|
{
|
|
"productCategoryId": 3,
|
|
"isTravelProduct": true,
|
|
"name": "Afgekocht reisrecht",
|
|
},
|
|
"requiredCustomerLevel":
|
|
{
|
|
"requiredCustomerLevelId": 3,
|
|
"name": "profile",
|
|
},
|
|
"requiredProducts": [],
|
|
"incompatibleProducts": [],
|
|
"mandatoryCustomerDataItems":
|
|
[
|
|
{
|
|
"mandatoryCustomerDataItemId": 1,
|
|
"customerDataItem": "birthname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 2,
|
|
"customerDataItem": "surname",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 3,
|
|
"customerDataItem": "dateOfBirth",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 4,
|
|
"customerDataItem": "emailAddress",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 7,
|
|
"customerDataItem": "ovPayToken",
|
|
},
|
|
{
|
|
"mandatoryCustomerDataItemId": 8,
|
|
"customerDataItem": "padBirthDate",
|
|
},
|
|
],
|
|
"requiredGboPersonalAttributes":
|
|
[
|
|
{
|
|
"requiredGboPersonalAttributeId": 1,
|
|
"name": "NAME",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 2,
|
|
"name": "BIRTHDATE",
|
|
},
|
|
{
|
|
"requiredGboPersonalAttributeId": 3,
|
|
"name": "PHOTO",
|
|
},
|
|
],
|
|
"tokenTypes": [{ "tokenTypeId": 1, "name": "EMV" }],
|
|
"paymentMoment":
|
|
{ "paymentMomentId": 1, "name": "prepaid" },
|
|
"serviceOptions": [],
|
|
"validityDuration": "P1M",
|
|
"maxStartInFutureDuration": "P6W",
|
|
"isRenewable": null,
|
|
"sendInvoice": null,
|
|
"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": [],
|
|
"sellingPrices": [],
|
|
},
|
|
],
|
|
"purchasePrices": [],
|
|
"productVariants": [],
|
|
},
|
|
],
|
|
}
|
|
"404":
|
|
description: "404"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/rfc9457Response"
|
|
examples:
|
|
Non-existing productId:
|
|
summary: Non-existing productId
|
|
value:
|
|
{
|
|
"type": "https://www.htm.nl/api/v1/404Error",
|
|
"title": "Product not found.",
|
|
"detail": "No product found for productId: 1000.",
|
|
"instance": "urn:uuid:13c8416f-7632-4c8b-8a16-2132197be60c",
|
|
"apiErrorCode": "htm.api.err.404.2",
|
|
}
|
|
components:
|
|
schemas:
|
|
GboAgeProfileResponse:
|
|
type: object
|
|
required:
|
|
- gboAgeProfileId
|
|
- name
|
|
- ageFromInclusive
|
|
- ageUntilInclusive
|
|
properties:
|
|
gboAgeProfileId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: Kind (4 t/m 11 jaar)
|
|
ageFromInclusive:
|
|
type: integer
|
|
description: The minimum age that the GBO age profile applies to
|
|
example: 4
|
|
ageUntilInclusive:
|
|
type: integer
|
|
description: The maximum age that the GBO age profile applies to
|
|
example: 11
|
|
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
|
|
- taxCode
|
|
- taxPercentage
|
|
- amountInclTax
|
|
- fromInclusive
|
|
- toInclusive
|
|
- internalPrice
|
|
properties:
|
|
sellingPriceId:
|
|
type: integer
|
|
example: 1
|
|
amountExclTax:
|
|
type: integer
|
|
example: 750
|
|
taxCode:
|
|
type: string
|
|
example: "V09"
|
|
taxPercentage:
|
|
type: number
|
|
example: 9.0000
|
|
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
|
|
- taxCode
|
|
- taxPercentage
|
|
- amountInclTax
|
|
- fromInclusive
|
|
- toInclusive
|
|
properties:
|
|
purchasePriceId:
|
|
type: integer
|
|
example: 1
|
|
amountExclTax:
|
|
type: integer
|
|
example: 750
|
|
taxCode:
|
|
type: string
|
|
example: "V09"
|
|
taxPercentage:
|
|
type: number
|
|
example: 9.0000
|
|
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
|
|
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/abtserviceengine/2.0/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
|
|
fikoArticleNumber:
|
|
type: string
|
|
description: The article number of the product in FIKO
|
|
example: 1234
|
|
gboPackageTemplateId:
|
|
type: string
|
|
example: "30901"
|
|
tapConnectProductCode:
|
|
type: string
|
|
example: 1234AB
|
|
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)
|
|
allowedGboAgeProfiles:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GboAgeProfileResponse"
|
|
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"
|
|
rfc9457Response:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
format: url
|
|
example: "https://www.htm.nl/api/v1/rfc9457Error"
|
|
title:
|
|
type: string
|
|
description: "Short summary of the error."
|
|
example: "The request is not valid."
|
|
detail:
|
|
type: string
|
|
description: "More detailed descriptionof the error."
|
|
example: "Some required parameters are missing."
|
|
instance:
|
|
type: string
|
|
description: "Unique identifier to correlate this specific error with logging in other applications."
|
|
example: "urn:uuid:13c8416f-7632-4c8b-8a16-2132197be60c"
|
|
additionalProperty1:
|
|
type: string
|
|
description: "Example of an additional property value to be used for error reporting."
|
|
example: "additionalValue1"
|
|
additionalProperty2:
|
|
type: array
|
|
description: "Example of an additional property array to be used for error reporting."
|
|
items:
|
|
type: string
|
|
example:
|
|
- "additionalValue2-1"
|
|
- "additionalValue2-2"
|