From f193a1204bc76a92145b9509f890b544adcfe694 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 23 Mar 2026 16:43:25 +0100 Subject: [PATCH] added vouchers and device to TP order and updated order CRUD deviceId -> externalDeviceId --- src/openapi/orders/orders-crud.yaml | 12 +- src/openapi/orders/service_engine_orders.yaml | 1409 ++++++++++++++++- 2 files changed, 1357 insertions(+), 64 deletions(-) diff --git a/src/openapi/orders/orders-crud.yaml b/src/openapi/orders/orders-crud.yaml index b2fb69a..2d54fdf 100644 --- a/src/openapi/orders/orders-crud.yaml +++ b/src/openapi/orders/orders-crud.yaml @@ -57,13 +57,13 @@ paths: required: false description: The id of the touch point where the order was initiated. - in: query - name: deviceId + name: externalDeviceId schema: type: string format: uuid example: "7a28bd54-7ca9-499a-a722-d15ab858ab99" required: false - description: The id of the device used to place the order. + description: The external id of the device used to place the order. - in: query name: languageId schema: @@ -141,7 +141,7 @@ paths: "touchPointId": 1, "name": "Perplex" }, - "deviceId": "42e77532-d831-41da-b07a-7edb9bb7f004", + "externalDeviceId": "42e77532-d831-41da-b07a-7edb9bb7f004", "language": { "languageId": 1, @@ -374,7 +374,7 @@ paths: "customerProfileId": 1337, "totalAmount": 121, "touchPointId": 1, - "deviceId": "b8ca9fdf-0bb9-4e49-b48d-41e395563377", + "externalDeviceId": "b8ca9fdf-0bb9-4e49-b48d-41e395563377", "languageId": 1, "createdOn": "2024-03-22T09:00:00", "order_OrderStatus": @@ -486,7 +486,7 @@ paths: "touchPointId": 1, "name": "Perplex" }, - "deviceId": null, + "externalDeviceId": null, "language": { "languageId": 1, @@ -659,7 +659,7 @@ paths: example: { "customerProfileId": 1337, - "deviceId": "fe68e624-b75f-48ca-a179-d5f86a8ab7d5", + "externalDeviceId": "fe68e624-b75f-48ca-a179-d5f86a8ab7d5", "totalAmount": 121, "languageId": 1, "lastUpdatedOn": "2024-03-22T09:00:00", diff --git a/src/openapi/orders/service_engine_orders.yaml b/src/openapi/orders/service_engine_orders.yaml index 38c3e5a..2580036 100644 --- a/src/openapi/orders/service_engine_orders.yaml +++ b/src/openapi/orders/service_engine_orders.yaml @@ -132,6 +132,8 @@ paths: "externalOrderId": "bac3958b-804a-43e3-b5f7-0b0fffaae5b7", "orderNumber": "123456", "customerProfileId": 42, + "device": null, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -171,6 +173,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -259,7 +262,12 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "device": { + "externalDeviceId": "123e4567-e89b-12d3-a456-426614174000", + "alias": null, + }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -301,6 +309,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -479,11 +488,13 @@ paths: { "externalOrderId": null, "languageId": 1, + "externalDeviceId": "9d03ca60-d2ab-4429-830d-49e12d0a29d4", "orderLines": [ { "externalOrderLineId": null, "productId": 1, + "vouchers":[], "quantity": 1, "validFrom": "2024-03-22T09:00:00", "validUntil": null, @@ -525,6 +536,10 @@ paths: "externalOrderId": null, "orderNumber": "ORD-123456", "customerProfileId": 1337, + "device":{ + "externalDeviceId": "9d03ca60-d2ab-4429-830d-49e12d0a29d4", + "alias": null }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -566,6 +581,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -775,6 +791,10 @@ paths: "externalOrderId": null, "orderNumber": "ORD-123456", "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -816,6 +836,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -954,7 +975,9 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices": null, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -996,6 +1019,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -1146,7 +1170,11 @@ paths: "orderId": "afce35b2-1dff-4ace-98d0-4b9ac405c87d", "externalOrderId": "bac3958b-804a-43e3-b5f7-0b0fffaae5b7", "orderNumber": "123456", - "customerProfileId": 42, + "customerProfileId": 42, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": null }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -1195,6 +1223,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -1314,7 +1343,7 @@ paths: { "orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893", "addressType": - { "addressTypeId": 2, "name": "Billing" }, + { "addressTypeId": 3, "name": "Billing" }, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", @@ -1345,10 +1374,14 @@ paths: schema: $ref: "#/components/schemas/unavailable" examples: - Update order languageId": + Update order languageId: summary: Update order languageId description: Update order languageId - value: { "languageId": 1 } + value: { "languageId": 1} + Add externalDeviceId: + summary: Add order externalDeviceId + description: Add order externalDeviceId + value: { "externalDeviceId": "f7f0c608-aa9c-4812-bbb6-b1e700d21da0"} responses: "200": description: OK @@ -1357,14 +1390,16 @@ paths: schema: $ref: "#/components/schemas/unavailable" examples: - Concept order with OVpas and PAD: + Update order languageId: value: { "validContents": false, "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices": null, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -1406,6 +1441,202 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], + "quantity": 1, + "orderLineTerms": + [ + { + "orderLineTermsId": "cccada2c-d5ea-48ab-b4be-f590e16b5468", + "termsUrl": "generalTermsAndConditions.pdf", + }, + { + "orderLineTermsId": "bd76f723-9308-4629-a291-4c4fafd7ed87", + "termsUrl": "productTermsAndConditions.pdf", + }, + ], + "createdOn": "2024-03-22T09:00:00", + "validFrom": "2024-03-22T09:00:00", + "validUntil": null, + "orderLineStatus": + { "orderLineStatusId": 1, "name": "pending" }, + "customerTokens": + [ + { + "customerTokenId": "878ad7c1-cd8f-4bcf-a983-1bd8c6e6975e", + "tokenType": + { "tokenTypeId": 1, "name": "EMV" }, + "ovPayTokenId": 1, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 34, + "ovpasNumber": "OV34567", + "verificationCode": "A7H6", + "personalAccountData": + { + "personalAccountDataId": "47db8a40-3238-4bf5-9284-759e3888bd47", + "name": "Jan de Vries", + "birthdate": "1970-01-01", + "photo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAWJLR0Q+SWQA4wAAAAd0SU1FB+YCBAwmK58TFQgAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDItMDRUMTI6Mzg6NDMrMDA6MDBAjYOrAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTAyLTA0VDEyOjM4OjQzKzAwOjAwMdA7FwAAAFd6VFh0UmF3IHByb2ZpbGUgdHlwZSBpcHRjAAB4nOPyDAhxVigoyk/LzEnlUgADIwsuYwsTIxNLkxQDEyBEgDTDZAMjs1Qgy9jUyMTMxBzEB8uASKBKLgDqFxF08kI1lQAAAYdpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8+DQo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4MmYxYiIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPjx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+PC9yZGY6RGVzY3JpcHRpb24+PC9yZGY6UkRGPjwveDp4bXBtZXRhPg0KPD94cGFja2V0IGVuZD0ndyc/PiyUmAsAAAANSURBVBhXY3grk/YfAAXYAm/HQierAAAAAElFTkSuQmCC", + "challengeType": + { + "challengeTypeId": 1, + "name": "email", + }, + "oneTimePassword": "H5Iiz3JTaQeIV8p", + }, + "ovPayToken": + { + "customerProfileId": 1, + "ovPayTokenId": 1, + "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", + "tokenType": + { + "tokenTypeId": 2, + "name": "OV-pas physical", + }, + "alias": "MyToken", + "tokenStatus": + { + "tokenStatusId": 2, + "name": "Active", + }, + "expirationDate": "2028-02-01", + "replacedByTokenId": null, + "autoReloadRegistration": + { + "autoReloadAmount": 500, + "retailerReferenceId": "abc", + "arrit": "425f7fc2-1103-4822-9c79-7c4aaa2fb6aa", + "autoReloadRegistrationStatus": "ACTIVE", + "autoReloadRegistrationStartDateTime": "2024-06-02T15:03:46Z", + }, + "ePurse": + { + "e-PurseBalance": + { + "currency": "EUR", + "amount": 350, + }, + "status": "ACTIVE", + "originDate": "2019-07-16T11:00:00+02:00", + }, + "personalAccountData": + { + "name": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + "birthdate": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + "photo": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + }, + "gboAgeProfile": + { + "gboAgeProfileId": 1, + "name": "Kind (4 t/m 11 jaar)", + "ageFromInclusive": 4, + "ageToInclusive": 11, + }, + }, + }, + ], + "orderAccountingStatuses": [], + "validationResult": "invalid", + "additionalRemarks": + [ + { + "code": "MANDATE_REQUIRED", + "parameter": "directDebitMandateId", + }, + ], + "validationErrors": + [ + { + "detail": "Startdate of this product should be at most 60 days in the future.", + "pointer": "#/0/startDate", + }, + ], + }, + ], + "payments": [], + "orderCustomer": null, + } + Add externalDeviceId: + value: + { + "validContents": false, + "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", + "externalOrderId": null, + "orderNumber": "ORD-123456", + "customerProfileId": 1337, + "devices": { + "externalDeviceId": "f7f0c608-aa9c-4812-bbb6-b1e700d21da0", + "alias": null }, + "vouchers":[], + "totalAmount": 121, + "touchPoint": + { + "salesTouchpointId": 3, + "name": "Website (Perplex)", + "isActive": true, + "retailerId": 1001, + }, + "language": + { + "languageId": 1, + "name": "Nederlands", + "iso639Code": "nl-NL", + "ietfCode": "nl", + }, + "createdOn": "2024-03-22T09:00:00", + "lastUpdatedOn": "2024-03-22T09:00:00", + "order_OrderStatuses": + [ + { + "order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f", + "orderStatus": + { "orderStatusId": 1, "name": "concept" }, + "createdOn": "2024-03-22T09:00:00", + "description": "Order is aangemaakt", + }, + ], + "orderLines": + [ + { + "orderLineId": "cccada2c-d5ea-48ab-b4be-f590e16b5468", + "externalOrderLineId": null, + "productId": 1, + "productName": "HTM Maandkorting 20%", + "fikoArticleNumber": "6609", + "productDescription": "HTM Maandkorting 20%", + "taxCode": "V21", + "taxPercentage": 21.0000, + "taxAmount": null, + "amountExclTax": null, + "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -1639,6 +1870,7 @@ paths: { "externalOrderLineId": null, "productId": 2, + "vouchers":[], "quantity": 1, "validFrom": "2024-03-22T09:00:00", "validUntil": null, @@ -1662,6 +1894,7 @@ paths: value: { "productId": 2, + "vouchers":[], "quantity": 1, "createdOn": "2024-03-22T09:00:00", } @@ -1682,7 +1915,9 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices": null, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -1724,6 +1959,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -1856,7 +2092,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -1898,6 +2138,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -2076,7 +2317,7 @@ paths: description: The JWT of the logged in customer (in case of a web shop). patch: tags: - - Order Creation Flow + - OrderLine summary: Update an existing order line. description: Update an existing order line. requestBody: @@ -2091,6 +2332,7 @@ paths: value: { "productId": 21, + "vouchers":[], "quantity": 1, "validFrom": "2024-03-25T09:00:00", "validUntil": null, @@ -2110,7 +2352,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -2152,6 +2398,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 5900, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -2217,7 +2464,7 @@ paths: } delete: tags: - - Order Creation Flow + - OrderLine summary: Delete an existing order line. description: Delete an existing order line. responses: @@ -2235,7 +2482,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 0, "touchPoint": { @@ -2308,7 +2559,7 @@ paths: description: The JWT of the logged in customer (in case of a web shop). post: tags: - - Order Creation Flow + - OrderLine summary: Add a customer token to an orderLine. description: Add a customer token to an orderLine. requestBody: @@ -2354,7 +2605,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -2396,6 +2651,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -2519,10 +2775,10 @@ paths: "payments": [], "orderCustomer": null, } - /customertokens/{customerTokenId}: + /orderlines/{orderLineId}/vouchers: parameters: - in: path - name: customerTokenId + name: orderLineId required: true style: simple explode: false @@ -2536,26 +2792,23 @@ paths: type: string example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c description: The JWT of the logged in customer (in case of a web shop). - patch: + post: tags: - - Order Creation Flow - summary: Update a customer token. - description: Update a customer token. + - OrderLine + summary: Add a new voucher to an existing orderLine. + description: Add a new voucher to an existing orderLine. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" examples: - Update a customer token: - summary: Update a customer token - description: Update a customer token + Add voucher to orderLine: + summary: Add voucher to orderLine to receive voucher benefits for a specific product + description: Add voucher to orderLine to receive voucher benefits for a specific product value: { - "tokenTypeId": 1, - "ovPayTokenId": null, - "serviceReferenceId": "NLOV1234567ABCDEFG", - "amount": 34, + "voucherCode": "VOUCHER786" } responses: "200": @@ -2565,14 +2818,19 @@ paths: schema: $ref: "#/components/schemas/unavailable" examples: - Order with updated customer token: + Add voucher to orderLine: + summary: Add voucher to orderLine + description: Add voucher to orderLine value: { - "validContents": true, + "validContents": false, "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices": null, + "vouchers":[ + ], "totalAmount": 121, "touchPoint": { @@ -2614,6 +2872,780 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[ + { + "orderVoucherId": "d271c79d-2d3f-477b-8e29-73c9b409a758", + "issuedVoucherId": "d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90", + "voucherCode": "VOUCHER786", + "fromInclusive": "2024-10-04T00:00:00.000", + "untilInclusive": "2024-11-04T00:00:00.000", + "voucherStatus": + { "voucherStatusId": 1, "name": "New" }, + "product": + { + "productId": 263, + "productName": "HTM-80001", + "productDescription": "10 euro korting op HTM maandkorting 20%", + "productCategory": + { + "productCategoryId": 9, + "isTravelProduct": false, + "name": "Voucher", + }, + "amountInclTax": -1000, + "requiredProducts": + [ + { + "productId": 1, + "productName": "HTM-30001", + "productDescription": "HTM Maandkorting 20%", + "_links": + { + "get_details": + { + "href": "https://api.integratielaag.nl/abt/touchpoint/1.0/products/1", + "method": "GET", + }, + }, + }, + ], + "_links": + { + "get_details": + { + "href": "https://api.integratielaag.nl/abt/touchpoint/1.0/products/263", + "method": "GET", + }, + }, + }, + "mandatoryCustomerDataItems": + [ + { + "mandatoryCustomerDataItemId": 8, + "customerDataItem": "padBirthDate" + }, + { + "mandatoryCustomerDataItemId": 4, + "customerDataItem": "emailAddress" + }, + ], + } + ], + "quantity": 1, + "orderLineTerms": + [ + { + "orderLineTermsId": "cccada2c-d5ea-48ab-b4be-f590e16b5468", + "termsUrl": "generalTermsAndConditions.pdf", + }, + { + "orderLineTermsId": "bd76f723-9308-4629-a291-4c4fafd7ed87", + "termsUrl": "productTermsAndConditions.pdf", + }, + ], + "createdOn": "2024-03-22T09:00:00", + "validFrom": "2024-03-22T09:00:00", + "validUntil": null, + "orderLineStatus": + { "orderLineStatusId": 1, "name": "pending" }, + "customerTokens": + [ + { + "customerTokenId": "878ad7c1-cd8f-4bcf-a983-1bd8c6e6975e", + "tokenType": + { "tokenTypeId": 1, "name": "EMV" }, + "ovPayTokenId": 12, + "serviceReferenceId": null, + "amount": null, + "ovpasNumber": null, + "verificationCode": null, + "personalAccountData": null, + "ovPayToken": + { + "customerProfileId": 1, + "ovPayTokenId": 1, + "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", + "tokenType": + { + "tokenTypeId": 2, + "name": "OV-pas physical", + }, + "alias": "MyToken", + "tokenStatus": + { + "tokenStatusId": 2, + "name": "Active", + }, + "expirationDate": "2028-02-01", + "replacedByTokenId": null, + "autoReloadRegistration": + { + "autoReloadAmount": 500, + "retailerReferenceId": "abc", + "arrit": "425f7fc2-1103-4822-9c79-7c4aaa2fb6aa", + "autoReloadRegistrationStatus": "ACTIVE", + "autoReloadRegistrationStartDateTime": "2024-06-02T15:03:46Z", + }, + "ePurse": + { + "e-PurseBalance": + { + "currency": "EUR", + "amount": 350, + }, + "status": "ACTIVE", + "originDate": "2019-07-16T11:00:00+02:00", + }, + "personalAccountData": + { + "name": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + "birthdate": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + "photo": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + }, + "gboAgeProfile": + { + "gboAgeProfileId": 1, + "name": "Kind (4 t/m 11 jaar)", + "ageFromInclusive": 4, + "ageToInclusive": 11, + }, + }, + }, + ], + "orderAccountingStatuses": [], + "validationResult": "preliminary", + "additionalRemarks": + [ + { + "code": "PRODUCT_CHOICE_REQUIRED", + "parameter": "orderline.productId", + }, + ], + "validationErrors": [], + }, + ], + "payments": [], + "orderCustomer": null, + } + "400": + description: Bad request + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + example: + { + "type": "https://htm.nl/api/v1/probs/validationerror", + "title": "Your request is not valid.", + "detail": "The combination of tokens and/or products chosen is not valid. See errors for more details.", + "instance": "urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b", + "errors": + [ + { + "detail": "Startdate of this product should be at most 60 days in the future.", + "pointer": "#/0/startDate", + "ovPayTokenId": 123, + "productId": 2, + }, + { + "detail": "Combination of product and token type is not valid.", + "pointer": "#/1/ovPayTokenId", + "ovPayTokenId": 123, + "productId": 3, + }, + ], + } + /orders/{orderId}/vouchers: + parameters: + - in: path + name: orderId + required: true + style: simple + explode: false + schema: + type: string + format: uuid + example: a0ef57fa-395c-4a03-96e9-234c26dccea9 + - in: header + name: X-HTM-JWT-AUTH-HEADER + schema: + type: string + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c + description: The JWT of the logged in customer (in case of a web shop). + post: + tags: + - Order Creation Flow + summary: Add a new voucher to an existing order. + description: Add a new voucher to an existing order. + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Add voucher to concept order: + summary: Add voucher to orderLine to receive voucher benefits for a whole order + description: Add voucher to orderLine to receive voucher benefits for a whole order + value: + { + "voucherCode": "VOUCHER123" + } + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Add voucher to concept order: + summary: Add voucher to concept order + description: Add voucher to concept order + value: + { + "validContents": false, + "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", + "externalOrderId": null, + "orderNumber": "ORD-123456", + "customerProfileId": 1337, + "devices": null, + "vouchers":[ + { + "orderVoucherId": "d271c79d-2d3f-477b-8e29-73c9b409a758", + "issuedVoucherId": "d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90", + "voucherCode": "VOUCHER123", + "fromInclusive": "2024-10-04T00:00:00.000", + "untilInclusive": "2024-11-04T00:00:00.000", + "voucherStatus": + { "voucherStatusId": 1, "name": "New" }, + "product": + { + "productId": 269, + "productName": "HTM-80001", + "productDescription": "10 euro korting op je gehel order", + "productCategory": + { + "productCategoryId": 9, + "isTravelProduct": false, + "name": "Voucher", + }, + "amountInclTax": -1000, + "requiredProducts": + [ + ], + }, + "mandatoryCustomerDataItems": + [ + ], + } + ], + "totalAmount": 21, + "touchPoint": + { + "salesTouchpointId": 3, + "name": "Website (Perplex)", + "isActive": true, + "retailerId": 1001, + }, + "language": + { + "languageId": 1, + "name": "Nederlands", + "iso639Code": "nl-NL", + "ietfCode": "nl", + }, + "createdOn": "2024-03-22T09:00:00", + "lastUpdatedOn": "2024-03-22T09:00:00", + "order_OrderStatuses": + [ + { + "order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f", + "orderStatus": + { "orderStatusId": 1, "name": "concept" }, + "createdOn": "2024-03-22T09:00:00", + "description": "Order is aangemaakt", + }, + ], + "orderLines": + [ + { + "orderLineId": "cccada2c-d5ea-48ab-b4be-f590e16b5468", + "externalOrderLineId": null, + "productId": 1, + "productName": "HTM Maandkorting 20%", + "fikoArticleNumber": "6609", + "productDescription": "HTM Maandkorting 20%", + "taxCode": "V21", + "taxPercentage": 21.0000, + "taxAmount": null, + "amountExclTax": null, + "amountInclTax": 121, + "vouchers":[], + "quantity": 1, + "orderLineTerms": + [ + { + "orderLineTermsId": "cccada2c-d5ea-48ab-b4be-f590e16b5468", + "termsUrl": "generalTermsAndConditions.pdf", + }, + { + "orderLineTermsId": "bd76f723-9308-4629-a291-4c4fafd7ed87", + "termsUrl": "productTermsAndConditions.pdf", + }, + ], + "createdOn": "2024-03-22T09:00:00", + "validFrom": "2024-03-22T09:00:00", + "validUntil": null, + "orderLineStatus": + { "orderLineStatusId": 1, "name": "pending" }, + "customerTokens": + [ + { + "customerTokenId": "878ad7c1-cd8f-4bcf-a983-1bd8c6e6975e", + "tokenType": + { "tokenTypeId": 1, "name": "EMV" }, + "ovPayTokenId": 12, + "serviceReferenceId": null, + "amount": null, + "ovpasNumber": null, + "verificationCode": null, + "personalAccountData": null, + "ovPayToken": + { + "customerProfileId": 1, + "ovPayTokenId": 1, + "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", + "tokenType": + { + "tokenTypeId": 2, + "name": "OV-pas physical", + }, + "alias": "MyToken", + "tokenStatus": + { + "tokenStatusId": 2, + "name": "Active", + }, + "expirationDate": "2028-02-01", + "replacedByTokenId": null, + "autoReloadRegistration": + { + "autoReloadAmount": 500, + "retailerReferenceId": "abc", + "arrit": "425f7fc2-1103-4822-9c79-7c4aaa2fb6aa", + "autoReloadRegistrationStatus": "ACTIVE", + "autoReloadRegistrationStartDateTime": "2024-06-02T15:03:46Z", + }, + "ePurse": + { + "e-PurseBalance": + { + "currency": "EUR", + "amount": 350, + }, + "status": "ACTIVE", + "originDate": "2019-07-16T11:00:00+02:00", + }, + "personalAccountData": + { + "name": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + "birthdate": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + "photo": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + }, + "gboAgeProfile": + { + "gboAgeProfileId": 1, + "name": "Kind (4 t/m 11 jaar)", + "ageFromInclusive": 4, + "ageToInclusive": 11, + }, + }, + }, + ], + "orderAccountingStatuses": [], + "validationResult": "preliminary", + "additionalRemarks": + [ + { + "code": "PRODUCT_CHOICE_REQUIRED", + "parameter": "orderline.productId", + }, + ], + "validationErrors": [], + }, + ], + "payments": [], + "orderCustomer": null, + } + Create order line with minimum requirements: + summary: Create order line with minimum requirements + description: AddRemark for case where chosen product requires personal account data birthdate + value: + { + "validContents": false, + "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", + "externalOrderId": null, + "orderNumber": "ORD-123456", + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], + "totalAmount": 121, + "touchPoint": + { + "salesTouchpointId": 3, + "name": "Website (Perplex)", + "isActive": true, + "retailerId": 1001, + }, + "language": + { + "languageId": 1, + "name": "Nederlands", + "iso639Code": "nl-NL", + "ietfCode": "nl", + }, + "createdOn": "2024-03-22T09:00:00", + "lastUpdatedOn": "2024-03-22T09:00:00", + "order_OrderStatuses": + [ + { + "order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f", + "orderStatus": + { "orderStatusId": 1, "name": "concept" }, + "createdOn": "2024-03-22T09:00:00", + "description": "Order is aangemaakt", + }, + ], + "orderLines": + [ + { + "orderLineId": "cccada2c-d5ea-48ab-b4be-f590e16b5468", + "externalOrderLineId": null, + "productId": 1, + "productName": "HTM Maandkorting 20%", + "fikoArticleNumber": "6609", + "productDescription": "HTM Maandkorting 20%", + "taxCode": "V21", + "taxPercentage": 21.0000, + "taxAmount": null, + "amountExclTax": null, + "amountInclTax": 121, + "vouchers":[], + "quantity": 1, + "orderLineTerms": + [ + { + "orderLineTermsId": "cccada2c-d5ea-48ab-b4be-f590e16b5468", + "termsUrl": "generalTermsAndConditions.pdf", + }, + { + "orderLineTermsId": "bd76f723-9308-4629-a291-4c4fafd7ed87", + "termsUrl": "productTermsAndConditions.pdf", + }, + ], + "createdOn": "2024-03-22T09:00:00", + "validFrom": "2024-03-22T09:00:00", + "validUntil": null, + "orderLineStatus": + { "orderLineStatusId": 1, "name": "pending" }, + "customerTokens": + [ + { + "customerTokenId": "878ad7c1-cd8f-4bcf-a983-1bd8c6e6975e", + "tokenType": + { "tokenTypeId": 1, "name": "EMV" }, + "ovPayTokenId": 12, + "serviceReferenceId": null, + "amount": null, + "ovpasNumber": null, + "verificationCode": null, + "personalAccountData": null, + "ovPayToken": + { + "customerProfileId": 1, + "ovPayTokenId": 4, + "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", + "tokenType": + { + "tokenTypeId": 2, + "name": "OV-pas physical", + }, + "alias": "MyToken", + "tokenStatus": + { + "tokenStatusId": 2, + "name": "Active", + }, + "expirationDate": "2028-02-01", + "replacedByTokenId": null, + "autoReloadRegistration": + { + "autoReloadAmount": 500, + "retailerReferenceId": "abc", + "arrit": "425f7fc2-1103-4822-9c79-7c4aaa2fb6aa", + "autoReloadRegistrationStatus": "ACTIVE", + "autoReloadRegistrationStartDateTime": "2024-06-02T15:03:46Z", + }, + "ePurse": + { + "e-PurseBalance": + { + "currency": "EUR", + "amount": 350, + }, + "status": "ACTIVE", + "originDate": "2019-07-16T11:00:00+02:00", + }, + "personalAccountData": + { + "name": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + "birthdate": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + "photo": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + }, + "gboAgeProfile": + { + "gboAgeProfileId": 1, + "name": "Kind (4 t/m 11 jaar)", + "ageFromInclusive": 4, + "ageToInclusive": 11, + }, + }, + }, + ], + "orderAccountingStatuses": [], + "validationResult": "preliminary", + "additionalRemarks": + [ + { + "code": "PERSONALACCOUNTDATA_BIRTHDATE_REQUIRED", + "parameter": "personalaccountdata.birthdate", + }, + { + "code": "TOKEN_REQUIRED", + "parameter": "customerToken", + }, + { + "code": "VALIDFROM_REQUIRED", + "parameter": "orderline.validFrom", + }, + ], + "validationErrors": [], + }, + ], + "payments": [], + "orderCustomer": null, + } + "400": + description: Bad request + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + example: + { + "type": "https://htm.nl/api/v1/probs/validationerror", + "title": "Your request is not valid.", + "detail": "The combination of tokens and/or products chosen is not valid. See errors for more details.", + "instance": "urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b", + "errors": + [ + { + "detail": "Startdate of this product should be at most 60 days in the future.", + "pointer": "#/0/startDate", + "ovPayTokenId": 123, + "productId": 2, + }, + { + "detail": "Combination of product and token type is not valid.", + "pointer": "#/1/ovPayTokenId", + "ovPayTokenId": 123, + "productId": 3, + }, + ], + } + /customertokens/{customerTokenId}: + parameters: + - in: path + name: customerTokenId + required: true + style: simple + explode: false + schema: + type: string + format: uuid + example: a0ef57fa-395c-4a03-96e9-234c26dccea9 + - in: header + name: X-HTM-JWT-AUTH-HEADER + schema: + type: string + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c + description: The JWT of the logged in customer (in case of a web shop). + patch: + tags: + - OrderLine + summary: Update a customer token. + description: Update a customer token. + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Update a customer token: + summary: Update a customer token + description: Update a customer token + value: + { + "tokenTypeId": 1, + "ovPayTokenId": null, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 34, + } + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Order with updated customer token: + value: + { + "validContents": true, + "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", + "externalOrderId": null, + "orderNumber": "ORD-123456", + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], + "totalAmount": 121, + "touchPoint": + { + "salesTouchpointId": 3, + "name": "Website (Perplex)", + "isActive": true, + "retailerId": 1001, + }, + "language": + { + "languageId": 1, + "name": "Nederlands", + "iso639Code": "nl-NL", + "ietfCode": "nl", + }, + "createdOn": "2024-03-22T09:00:00", + "lastUpdatedOn": "2024-03-22T09:00:00", + "order_OrderStatuses": + [ + { + "order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f", + "orderStatus": + { "orderStatusId": 1, "name": "concept" }, + "createdOn": "2024-03-22T09:00:00", + "description": "Order is aangemaakt", + }, + ], + "orderLines": + [ + { + "orderLineId": "cccada2c-d5ea-48ab-b4be-f590e16b5468", + "externalOrderLineId": null, + "productId": 1, + "productName": "HTM Maandkorting 20%", + "fikoArticleNumber": "6609", + "productDescription": "HTM Maandkorting 20%", + "taxCode": "V21", + "taxPercentage": 21.0000, + "taxAmount": null, + "amountExclTax": null, + "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -2730,7 +3762,7 @@ paths: } delete: tags: - - Order Creation Flow + - OrderLine summary: Delete a customer token from an orderline. description: Delete a customer token from an orderline. responses: @@ -2748,7 +3780,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -2790,6 +3826,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -2842,7 +3879,7 @@ paths: description: The JWT of the logged in customer (in case of a web shop). post: tags: - - Order Creation Flow + - OrderLine summary: Add personal account data to a customer token. description: Add personal account data to a customer token. requestBody: @@ -2877,7 +3914,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -2919,6 +3960,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -3063,7 +4105,7 @@ paths: description: The JWT of the logged in customer (in case of a web shop). patch: tags: - - Order Creation Flow + - OrderLine summary: Update personal account data. description: Update personal account data. requestBody: @@ -3091,7 +4133,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": null }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -3133,6 +4179,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -3266,7 +4313,7 @@ paths: } delete: tags: - - Order Creation Flow + - OrderLine summary: Delete personal account data. description: Delete personal account data. responses: @@ -3284,7 +4331,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -3326,6 +4377,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -3501,7 +4553,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -3550,6 +4606,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -3611,6 +4668,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 242, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -3688,7 +4746,7 @@ paths: { "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "addressType": - { "addressTypeId": 2, "name": "Billing" }, + { "addressTypeId": 3, "name": "Billing" }, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", @@ -3781,7 +4839,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -3837,6 +4899,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -3965,7 +5028,7 @@ paths: { "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "addressTypeId": - { "addressTypeId": 2, "name": "Billing" }, + { "addressTypeId": 3, "name": "Billing" }, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", @@ -3983,7 +5046,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": "be8160b3-a7f7-4a63-ad63-09503b2fc4a3", "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -4025,6 +5092,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -4174,7 +5242,7 @@ paths: { "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "addressTypeId": - { "addressTypeId": 2, "name": "Billing" }, + { "addressTypeId": 3, "name": "Billing" }, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", @@ -4226,7 +5294,7 @@ paths: "orderCustomerAddresses": [ { - "addressTypeId": 2, + "addressTypeId": 3, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", @@ -4251,7 +5319,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -4293,6 +5365,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -4433,7 +5506,7 @@ paths: { "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "addressType": - { "addressTypeId": 2, "name": "Billing" }, + { "addressTypeId": 3, "name": "Billing" }, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", @@ -4498,7 +5571,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -4540,6 +5617,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -4680,7 +5758,7 @@ paths: { "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "addressType": - { "addressTypeId": 2, "name": "Billing" }, + { "addressTypeId": 3, "name": "Billing" }, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", @@ -4724,7 +5802,7 @@ paths: description: Add an address to a customer on an order value: { - "addressTypeId": 2, + "addressTypeId": 3, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", @@ -4747,7 +5825,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -4789,6 +5871,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -4935,7 +6018,7 @@ paths: { "orderCustomerAddressId": "a0ef57fa-395c-4a03-96e9-234c26dccea9", "addressType": - { "addressTypeId": 2, "name": "Billing" }, + { "addressTypeId": 3, "name": "Billing" }, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", @@ -4979,7 +6062,7 @@ paths: description: Update order customer address value: { - "addressTypeId": 2, + "addressTypeId": 3, "street": "Kon. Julianaplein", "houseNumber": 101, "houseNumberSuffix": "a", @@ -5002,7 +6085,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 121, "touchPoint": { @@ -5044,6 +6131,7 @@ paths: "taxAmount": null, "amountExclTax": null, "amountInclTax": 121, + "vouchers":[], "quantity": 1, "orderLineTerms": [ @@ -5190,7 +6278,7 @@ paths: { "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "addressType": - { "addressTypeId": 2, "name": "Billing" }, + { "addressTypeId": 3, "name": "Billing" }, "street": "Kon. Julianaplein", "houseNumber": 101, "houseNumberSuffix": "a", @@ -5237,7 +6325,11 @@ paths: "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, "orderNumber": "ORD-123456", - "customerProfileId": 1337, + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], "totalAmount": 0, "touchPoint": { @@ -5300,6 +6392,207 @@ paths: }, ], } + /orderVoucher/{orderVoucherId}: + parameters: + - in: path + name: orderVoucherId + required: true + style: simple + explode: false + schema: + type: string + format: uuid + example: d9021fdd-6e83-45c0-9aef-71680f0b4e74 + - in: header + name: X-HTM-JWT-AUTH-HEADER + schema: + type: string + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c + description: The JWT of the logged in customer (in case of a web shop). + delete: + tags: + - OrderVoucher + summary: Delete voucher from order or orderLine + description: Deletevoucher from order or orderLine + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Order with deleted voucher: + value: + { + "validContents": true, + "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", + "externalOrderId": null, + "orderNumber": "ORD-123456", + "customerProfileId": 1337, + "devices":{ + "externalDeviceId": "8fe1e754-0070-478c-bdba-4ebd89c994f0", + "alias": "Mijn Android" }, + "vouchers":[], + "totalAmount": 121, + "touchPoint": + { + "salesTouchpointId": 3, + "name": "Website (Perplex)", + "isActive": true, + "retailerId": 1001, + }, + "language": + { + "languageId": 1, + "name": "Nederlands", + "iso639Code": "nl-NL", + "ietfCode": "nl", + }, + "createdOn": "2024-03-22T09:00:00", + "lastUpdatedOn": "2024-03-22T09:00:00", + "order_OrderStatuses": + [ + { + "order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f", + "orderStatus": + { "orderStatusId": 1, "name": "concept" }, + "createdOn": "2024-03-22T09:00:00", + "description": "Order is aangemaakt", + }, + ], + "orderLines": + [ + { + "orderLineId": "cccada2c-d5ea-48ab-b4be-f590e16b5468", + "externalOrderLineId": null, + "productId": 1, + "productName": "HTM Maandkorting 20%", + "fikoArticleNumber": "6609", + "productDescription": "HTM Maandkorting 20%", + "taxCode": "V21", + "taxPercentage": 21.0000, + "taxAmount": null, + "amountExclTax": null, + "amountInclTax": 121, + "vouchers":[], + "quantity": 1, + "orderLineTerms": + [ + { + "orderLineTermsId": "cccada2c-d5ea-48ab-b4be-f590e16b5468", + "termsUrl": "generalTermsAndConditions.pdf", + }, + { + "orderLineTermsId": "bd76f723-9308-4629-a291-4c4fafd7ed87", + "termsUrl": "productTermsAndConditions.pdf", + }, + ], + "createdOn": "2024-03-22T09:00:00", + "validFrom": "2024-03-22T09:00:00", + "validUntil": null, + "orderLineStatus": + { "orderLineStatusId": 1, "name": "pending" }, + "customerTokens": + [ + { + "customerTokenId": "878ad7c1-cd8f-4bcf-a983-1bd8c6e6975e", + "tokenType": + { "tokenTypeId": 1, "name": "EMV" }, + "ovPayTokenId": 12, + "serviceReferenceId": null, + "amount": null, + "ovpasNumber": null, + "verificationCode": null, + "personalAccountData": null, + "ovPayToken": + { + "customerProfileId": 1, + "ovPayTokenId": 1, + "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", + "tokenType": + { + "tokenTypeId": 2, + "name": "OV-pas physical", + }, + "alias": "MyToken", + "tokenStatus": + { + "tokenStatusId": 2, + "name": "Active", + }, + "expirationDate": "2028-02-01", + "replacedByTokenId": null, + "autoReloadRegistration": + { + "autoReloadAmount": 500, + "retailerReferenceId": "abc", + "arrit": "425f7fc2-1103-4822-9c79-7c4aaa2fb6aa", + "autoReloadRegistrationStatus": "ACTIVE", + "autoReloadRegistrationStartDateTime": "2024-06-02T15:03:46Z", + }, + "ePurse": + { + "e-PurseBalance": + { + "currency": "EUR", + "amount": 350, + }, + "status": "ACTIVE", + "originDate": "2019-07-16T11:00:00+02:00", + }, + "personalAccountData": + { + "name": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + "birthdate": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + "photo": + { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2024-08-24T14:15:22Z", + }, + }, + "gboAgeProfile": + { + "gboAgeProfileId": 1, + "name": "Kind (4 t/m 11 jaar)", + "ageFromInclusive": 4, + "ageToInclusive": 11, + }, + }, + }, + ], + "orderAccountingStatuses": [], + "validationResult": "valid", + "additionalRemarks": [], + "validationErrors": [], + }, + ], + "payments": [], + "orderCustomer": null, + } /orders/{orderId}/fulfill: parameters: - in: path