ovpay/src/openapi/products/SE-products-SE.yaml
2025-04-17 12:52:14 +02:00

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"