diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index 3c8d039..0f75322 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -2403,7 +2403,7 @@ paths: }, "_links": { - "transfer": + "transfer_token": { "href": "https://services.dev.api.htm.nl/abt/touchpoint/1.0/customers/tokens/1/transfer", "method": "POST", diff --git a/src/openapi/fiko/fiko-crud.yaml b/src/openapi/fiko/fiko-crud.yaml index c4309bf..1500486 100644 --- a/src/openapi/fiko/fiko-crud.yaml +++ b/src/openapi/fiko/fiko-crud.yaml @@ -228,7 +228,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TransactionItemsPostRequestBody" + $ref: "#/components/schemas/TransactionItemsBulkRequestBody" examples: Add single transaction item: summary: Add single transaction item @@ -285,7 +285,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TransactionItemsPostResponseBody" + $ref: "#/components/schemas/BulkResponseBody" examples: Array of transaction items accepted: summary: Array of transaction items accepted @@ -381,7 +381,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TransactionItemsResponseStatusGetResponseBody" + $ref: "#/components/schemas/GetResponseStatus" examples: Batch successfully processed: summary: Batch successfully processed @@ -2979,10 +2979,10 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - /transactionitems/reject: - post: - summary: Reject transaction items to source in bulk. - description: Reject transaction items to source in bulk. + /transactionitems/bulk: + patch: + summary: Patch transaction items in bulk. + description: Patch transaction items in bulk. tags: - Bulk processing v2.2 requestBody: @@ -2992,76 +2992,87 @@ paths: schema: $ref: "#/components/schemas/TransactionItemsBulkRequestBody" examples: - List of transaction item ids to reject: - summary: List of transaction item ids to reject to source - description: List of transaction item ids to reject to source. + List of transactions items to reject: + summary: List of transaction items to reject to source + description: List of transaction items to reject to source in bulk. value: - transactionItemIds: - - afce35b2-1dff-4ace-98d0-4b9ac405c87d - - b1c4f8e7-3f4e-4d2a-9c6e-2f5e6d7c8b9a - - c2d5e6f7-4g5h-5i6j-0k1l-3m4n5o6p7q8r + transactionItems: + - transactionItemId: d8ee7035-fa3d-400e-9ad5-4fe8c4c73eb7 + status: returned to src + - transactionItemId: 88910e83-4b1e-4fde-ab13-bd8bb60cbcd3 + status: returned to src + List of transactions items to return: + summary: List of transaction items to return to transaction database + description: List of transaction items to return to transaction database in bulk. + value: + transactionItems: + - transactionItemId: eacb9bdc-c6b5-4277-942b-cebb102944f5 + status: returned to trx-db + - transactionItemId: 2f361bfb-9df0-4e0f-af7c-7b9be3e7bc61 + status: returned to trx-db responses: "202": description: Accepted content: application/json: schema: - $ref: "#/components/schemas/TransactionItemsPostResponseBody" + $ref: "#/components/schemas/BulkResponseBody" examples: Array of transaction items accepted: - summary: Array of transaction item ids accepted + summary: Array of transaction items accepted description: | - The array of transaction item ids was accepted successfully. + The array of transaction items was accepted successfully. The transaction items will be processed asynchronously. In the response body the consumer will find information on how to retrieve the processing status. value: startTime: 2025-02-14T05:32:47.0672237Z status: Running clientTrackingId: 08584620957189579629541919368CU00 - callbackurl: https://api.integratielaag.nl/transactionitems/reject/responsestatus/runtime/webhooks/workflow/scaleUnits/prod-00/workflows/6fd466916c + callbackurl: https://api.integratielaag.nl/transactionitems/bulk/responsestatus/webhooks/workflow/scaleUnits/prod-00/workflows/6fd466916c retryAfter: 10 security: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - /transactionitems/responsestatus/reject/{clientTrackingId}: + /transactionitems/bulk/responsestatus/{clientTrackingId}: get: tags: - Bulk processing v2.2 - summary: Get the status of the transaction item bulk reject. - description: Get the status of the asynchronous transaction item bulk reject. + summary: Get the status of the transaction item bulk patch. + description: Get the status of the asynchronous transaction item bulk patch. parameters: - in: path name: clientTrackingId schema: type: string required: true - description: The clientTrackingId of the transaction item bulk reject. + description: The clientTrackingId of the transaction item bulk patch. responses: "200": description: OK content: application/json: schema: - $ref: "#/components/schemas/TransactionItemsRejectResponseStatusGetResponseBody" + $ref: "#/components/schemas/GetResponseStatus" examples: Batch successfully processed: summary: Batch successfully processed description: | - Body of a batch of transaction items that was successfully rejected. - A number of transaction items were rejected. + Body of a batch of transaction items that was successfully patched. + A number of transaction items were patched. value: summary: - rejected: 15 + created: 0 + updated: 15 total: 15 security: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - /transactionitems/return: - post: - summary: Return transaction items to trx db in bulk. - description: Return transaction items to trx db in bulk. + /processingfailures/bulk: + patch: + summary: Patch processing failures in bulk. + description: Patch processing failures in bulk. tags: - Bulk processing v2.2 requestBody: @@ -3069,69 +3080,71 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TransactionItemsBulkRequestBody" + $ref: "#/components/schemas/ProcessingFailuresBulkRequestBody" examples: - List of transaction item ids to reject: - summary: List of transaction item ids to return to trx db - description: List of transaction item ids to return to trx db. + List of processing failures to resolve: + summary: List of processing failures to resolve + description: List of processing failures to resolve in bulk. value: - transactionItemIds: - - afce35b2-1dff-4ace-98d0-4b9ac405c87d - - b1c4f8e7-3f4e-4d2a-9c6e-2f5e6d7c8b9a - - c2d5e6f7-4g5h-5i6j-0k1l-3m4n5o6p7q8r + processingFailures: + - processingFailureId: d8ee7035-fa3d-400e-9ad5-4fe8c4c73eb7 + resolved: true + - processingFailureId: 88910e83-4b1e-4fde-ab13-bd8bb60cbcd3 + resolved: true responses: "202": description: Accepted content: application/json: schema: - $ref: "#/components/schemas/TransactionItemsPostResponseBody" + $ref: "#/components/schemas/BulkResponseBody" examples: - Array of transaction items accepted: - summary: Array of transaction item ids accepted + Array of processing failures accepted: + summary: Array of processing failures accepted description: | - The array of transaction item ids was accepted successfully. - The transaction items will be processed asynchronously. + The array of processing failures was accepted successfully. + The processing failures will be processed asynchronously. In the response body the consumer will find information on how to retrieve the processing status. value: startTime: 2025-02-14T05:32:47.0672237Z status: Running clientTrackingId: 08584620957189579629541919368CU00 - callbackurl: https://api.integratielaag.nl/transactionitems/return/responsestatus/runtime/webhooks/workflow/scaleUnits/prod-00/workflows/6fd466916c + callbackurl: https://api.integratielaag.nl/processingfailures/bulk/responsestatus/webhooks/workflow/scaleUnits/prod-00/workflows/6fd466916c retryAfter: 10 security: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - /transactionitems/responsestatus/return/{clientTrackingId}: + /processingfailures/bulk/responsestatus/{clientTrackingId}: get: tags: - Bulk processing v2.2 - summary: Get the status of the transaction item bulk return. - description: Get the status of the asynchronous transaction item bulk return. + summary: Get the status of the processing failures bulk patch. + description: Get the status of the asynchronous processing failures bulk patch. parameters: - in: path name: clientTrackingId schema: type: string required: true - description: The clientTrackingId of the transaction item bulk return. + description: The clientTrackingId of the processing failures bulk patch. responses: "200": description: OK content: application/json: schema: - $ref: "#/components/schemas/TransactionItemsReturnResponseStatusGetResponseBody" + $ref: "#/components/schemas/GetResponseStatus" examples: Batch successfully processed: summary: Batch successfully processed description: | - Body of a batch of transaction items that was successfully returned to trx db. - A number of transaction items were returned to trx db. + Body of a batch of processing failures that was successfully patched. + A number of processing failures were patched. value: summary: - returned: 15 + created: 0 + updated: 15 total: 15 security: - default: [] @@ -3249,7 +3262,7 @@ components: - occurredOn - type - status - TransactionItemsPostRequestBody: + TransactionItemsBulkRequestBody: type: object properties: transactionItems: @@ -3257,6 +3270,10 @@ components: items: type: object properties: + transactionItemId: + type: string + format: uuid + example: afce35b2-1dff-4ace-98d0-4b9ac405c87d transactionType: type: string enum: @@ -3316,7 +3333,7 @@ components: - amountTax - occurredOn - type - TransactionItemsPostResponseBody: + BulkResponseBody: type: object properties: startTime: @@ -4902,7 +4919,7 @@ components: required: - concessionId - name - TransactionItemsResponseStatusGetResponseBody: + GetResponseStatus: type: object properties: summary: @@ -4959,51 +4976,24 @@ components: transactionLineId: type: string example: fee907dd-e59d-44f5-a63b-bbdec38f79b7 - TransactionItemsBulkRequestBody: + ProcessingFailuresBulkRequestBody: type: object properties: - transactionItemIds: + processingFailures: type: array items: - type: string - format: uuid - example: 1ad109d3-fd7d-4b6f-872b-220d492f385f - required: - - transactionItemIds - TransactionItemsRejectResponseStatusGetResponseBody: - type: object - properties: - summary: - type: object - properties: - rejected: - type: integer - example: 3 - total: - type: integer - example: 3 - required: - - rejected - - total - required: - - summary - TransactionItemsReturnResponseStatusGetResponseBody: - type: object - properties: - summary: - type: object - properties: - returned: - type: integer - example: 3 - total: - type: integer - example: 3 - required: - - returned - - total - required: - - summary + type: object + properties: + processingFailureId:: + type: string + format: uuid + example: d8ee7035-fa3d-400e-9ad5-4fe8c4c73eb7 + resolved: + type: boolean + example: true + required: + - transactionItemId + - resolved rfc9457: type: object properties: diff --git a/src/openapi/orders/SE-orders-gboAgeProfile.yaml b/src/openapi/orders/SE-orders-gboAgeProfile.yaml deleted file mode 100644 index 939ef57..0000000 --- a/src/openapi/orders/SE-orders-gboAgeProfile.yaml +++ /dev/null @@ -1,180 +0,0 @@ -openapi: 3.0.1 -info: - title: ABT Service Engine Order APIs - version: "1.0" - description: Order APIs available in the Service Engine for order validation and fulfillment. -servers: - - url: https://services.acc.api.htm.nl/abt/touchpoint/2.0 -paths: - /orders/validation/gboAgeProfile: - get: - tags: - - ServiceEngine Order validation - summary: Get GBO age profile that is valid for the given input - description: |- - Only one age profile can be valid at any one time, so only one profile is returned. - parameters: - - name: productStartDate - in: query - required: true - description: Start date of product validity - schema: - type: string - format: date - example: 2025-03-20 - - name: birthDate - in: query - required: false - description: Birthdate of the OVpay-token holder - schema: - type: string - format: date - example: 2000-01-01 - - name: ovPayTokenId - in: query - required: false - description: ovPayTokenId of the customer's selected token - schema: - type: integer - example: 1 - - name: customerTokenId - in: query - required: false - description: customerTokenId of the customer's selected token - schema: - type: string - format: uuid - example: "4a2d2c9c-1e5d-4d8a-9c0a-6c0a6c0a6c0a" - - name: serviceReferenceId - in: query - required: false - description: serviceReferenceId of the customer's selected token - schema: - type: string - example: "NLOV1234567ABCDEFG" - - name: amount - in: query - required: false - description: amount belonging to the serviceReferenceId - schema: - type: integer - example: 100 - - name: ovpasNumber - in: query - required: false - description: OVpas number of the customer's selected token - schema: - type: string - example: "63AW974" - - name: verificationCode - in: query - required: false - description: verification code belonging to the OVpas number - schema: - type: string - example: 1A3C7D - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/GboAgeProfileResponse" - - "400": - description: Bad request - content: - application/json: - schema: - $ref: "#/components/schemas/rfc9457Response" - examples: - Missing parameter(s): - summary: Missing parameter(s) - value: - { - "type": "https://www.htm.nl/api/v1/400Error", - "title": "Missing parameter(s)", - "detail": "At least one of the following parameters must be present: birthDate, ovPayTokenId, customerTokenId, (serviceReferenceId and amount), (ovpasNumber and verificationCode)", - "instance": "urn:uuid:13c8416f-7632-4c8b-8a16-2132197be60c", - "apiErrorCode": "htm.api.err.400.2", - } - Invalid date format: - summary: Invalid date format - value: - { - "type": "https://www.htm.nl/api/v1/400Error", - "title": "Invalid input", - "detail": "The given birthDate is not a valid Date format", - "instance": "urn:uuid:13c8416f-7632-4c8b-8a16-2132197be60c", - "apiErrorCode": "htm.api.err.400.3", - } - "404": - description: Not found - content: - application/json: - schema: - $ref: "#/components/schemas/rfc9457Response" - examples: - No birthdate present in PAD of OVpay token: - summary: No birthdate present in PAD of OVpay token - value: - { - "type": "https://www.htm.nl/api/v1/404Error", - "title": "Missing birthdate in PAD", - "detail": "There is no birthdate present in the PAD of the OVpay token, or there is no PAD present at all", - "instance": "urn:uuid:13c8416f-7632-4c8b-8a16-2132197be60c", - "apiErrorCode": "htm.api.err.404.1", - } -components: - schemas: - GboAgeProfileResponse: - type: object - required: - - gboAgeProfileId - - name - - ageFromInclusive - - ageToInclusive - properties: - gboAgeProfileId: - type: integer - example: 1 - name: - type: string - example: Kind (4 t/m 11 jaar) - ageFromInclusive: - type: integer - example: 4 - ageToInclusive: - type: integer - example: 11 - 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" diff --git a/src/openapi/orders/service_engine_orders.yaml b/src/openapi/orders/service_engine_orders.yaml index fe0a418..896e150 100644 --- a/src/openapi/orders/service_engine_orders.yaml +++ b/src/openapi/orders/service_engine_orders.yaml @@ -89,9 +89,9 @@ paths: example: 7208e73e-87a6-46d9-bb6d-867ffc460c9b description: xTat used in order fulfillment. Note that this is a joined parameter via PurchasedProduct. tags: - - Order Retrieval v2 + - Order Retrieval summary: Find orders - description: Find orders. + description: Find orders responses: "200": description: OK @@ -425,7 +425,7 @@ paths: } post: tags: - - Order Creation Flow v2 + - Order Creation Flow summary: Create a new order description: | Create a new order. This order can only contain the order itself, @@ -1279,7 +1279,7 @@ paths: } patch: tags: - - Order Creation Flow v2 + - Order Creation Flow summary: Update an existing order. description: Update an existing order. requestBody: @@ -1517,7 +1517,7 @@ paths: } delete: tags: - - Order Creation Flow v2 + - Order Creation Flow summary: Delete an existing order. description: Delete an existing order. responses: @@ -1563,9 +1563,9 @@ paths: description: The JWT of the logged in customer (in case of a web shop). post: tags: - - Order Creation Flow v2 - summary: Add a new order line to an existing order. - description: Add a new order line to an existing order. + - Order Creation Flow + summary: Add a new order line to an existing order + description: Add a new order line to an existing order requestBody: content: application/json: @@ -1573,8 +1573,8 @@ paths: $ref: "#/components/schemas/unavailable" examples: Add order line to concept order: - summary: Add order line to concept order - description: Add order line to concept order + summary: Add order line to concept order product with children + description: Add order line to concept order product with children value: { "externalOrderLineId": null, @@ -1596,6 +1596,15 @@ paths: }, ], } + Order line with minimum requirements: + summary: Create order line with minimum requirements + description: Create order line with minimum requirements + value: + { + "productId": 2, + "quantity": 1, + "createdOn": "2024-03-22T09:00:00" + } responses: "200": description: OK @@ -1604,9 +1613,11 @@ paths: schema: $ref: "#/components/schemas/unavailable" examples: - Order with two order lines: + AddRemark chosen product is not a leaf node product: + summary: AddRemark chosen product is not a leaf node product + description: AddRemark for case where chosen product is not a leaf node product value: - { + { "validContents": false, "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "externalOrderId": null, @@ -1674,25 +1685,13 @@ paths: [ { "customerTokenId": "878ad7c1-cd8f-4bcf-a983-1bd8c6e6975e", - "tokenTypeId": 1, - "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", - }, + "tokenType": { "tokenTypeId": 1, "name": "EMV" }, + "ovPayTokenId": 12, + "serviceReferenceId": null, + "amount": null, + "ovpasNumber": null, + "verificationCode": null, + "personalAccountData": null, "ovPayToken": { "customerProfileId": 1, @@ -1771,27 +1770,69 @@ paths: ], "orderAccountingStatuses": [], "validationResult": "preliminary", - "additionalRemarks": - [ + "additionalRemarks": [ { - "code": "MANDATE_REQUIRED", - "parameter": "directDebitMandateId", - }, - ], + "code": "PRODUCT_CHOICE_REQUIRED", + "parameter": "orderline.productId", + } + ], "validationErrors": [], }, + ], + "payments": [], + "orderCustomers": null + } + v2.2.1: + summary: Create order line v2.2.1 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, + "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": + [ { - "orderLineId": "2cb04b38-e9a8-465a-a273-261c55a21b71", + "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": 2, - "productName": "HTM Maandkorting 40%", - "fikoArticleNumber": "6610", - "productDescription": "HTM Maandkorting 40%", + "productId": 1, + "productName": "HTM Maandkorting 20%", + "fikoArticleNumber": "6609", + "productDescription": "HTM Maandkorting 20%", "taxCode": "V21", "taxPercentage": 21.0000, - "taxAmount": 42, - "amountExclTax": 200, - "amountInclTax": 242, + "taxAmount": 21, + "amountExclTax": 100, + "amountInclTax": 121, "quantity": 1, "orderLineTerms": [ @@ -1813,8 +1854,9 @@ paths: [ { "customerTokenId": "878ad7c1-cd8f-4bcf-a983-1bd8c6e6975e", - "tokenTypeId": 1, - "ovPayTokenId": 4, + "tokenType": + { "tokenTypeId": 1, "name": "EMV" }, + "ovPayTokenId": 12, "serviceReferenceId": null, "amount": null, "ovpasNumber": null, @@ -1897,8 +1939,21 @@ paths: }, ], "orderAccountingStatuses": [], - "validationResult": "valid", - "additionalRemarks": [], + "validationResult": "preliminary", + "additionalRemarks": [ + { + "code": "PERSONALACCOUNTDATA_BIRTHDATE_REQUIRED", + "parameter": "personalaccountdata.birthdate", + }, + { + "code": "TOKEN_REQUIRED", + "parameter": "customerToken", + }, + { + "code": "VALIDFROM_REQUIRED", + "parameter": "orderline.validFrom", + } + ], "validationErrors": [], }, ], @@ -1952,7 +2007,7 @@ paths: description: The JWT of the logged in customer (in case of a web shop). patch: tags: - - Order Creation Flow v2 + - Order Creation Flow summary: Update an existing order line. description: Update an existing order line. requestBody: @@ -1961,9 +2016,19 @@ paths: schema: $ref: "#/components/schemas/unavailable" examples: - Update quantity and validity: - summary: Update quantity and validity - description: Update quantity and validity + Update order line: + summary: Update order line + description: Update order line + value: + { + "productId": 21, + "quantity": 1, + "validFrom": "2024-03-25T09:00:00", + "validUntil": null, + } + v2.2: + summary: Update order line v2.2 + description: Update order line v2.2 value: { "quantity": 1, @@ -2018,7 +2083,7 @@ paths: { "orderLineId": "cccada2c-d5ea-48ab-b4be-f590e16b5468", "externalOrderLineId": null, - "productId": 112, + "productId": 21, "productName": "HTM Regio Vrij - HL65 - Voltarief", "fikoArticleNumber": "6609", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL65", @@ -2092,7 +2157,7 @@ paths: } delete: tags: - - Order Creation Flow v2 + - Order Creation Flow summary: Delete an existing order line. description: Delete an existing order line. responses: @@ -2165,27 +2230,27 @@ paths: ], } /orderlines/{orderLineId}/customertokens: - parameters: - - in: path - name: orderLineId - 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 v2 + parameters: + - in: path + name: orderLineId + 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 customer token to an orderLine - description: Add a customer token to an orderLine + description: Add a customer token to an orderLine requestBody: content: application/json: @@ -2392,25 +2457,25 @@ paths: "orderCustomers": null, } /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: - - Order Creation Flow v2 + 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: + - Order Creation Flow summary: Update a customer token description: Update a customer token requestBody: @@ -2595,10 +2660,10 @@ paths: "orderCustomers": null, } delete: - tags: - - Order Creation Flow v2 + tags: + - Order Creation Flow summary: Delete a customer token from an orderline - description: Delete a customer token from an orderline + description: Delete a customer token from an orderline responses: "200": description: OK @@ -2690,25 +2755,25 @@ paths: "orderCustomers": null, } /customertokens/{customerTokenId}/personalaccountdata: - 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). - post: - tags: - - Order Creation Flow v2 + 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). + post: + tags: + - Order Creation Flow summary: Add personal account data to a customer token description: Add personal account data to a customer token requestBody: @@ -2908,25 +2973,25 @@ paths: "orderCustomers": null, } /personalaccountdata/{personalAccountDataId}: - parameters: - - in: path - name: personalAccountDataId - 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). - patch: - tags: - - Order Creation Flow v2 + parameters: + - in: path + name: personalAccountDataId + 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). + patch: + tags: + - Order Creation Flow summary: Update personal account data description: Update personal account data requestBody: @@ -3122,11 +3187,11 @@ paths: }, ], "payments": [], - "orderCustomers": null, - } - delete: - tags: - - Order Creation Flow v2 + "orderCustomer": null + } + delete: + tags: + - Order Creation Flow summary: Delete personal account data description: Delete personal account data responses: @@ -3319,9 +3384,9 @@ paths: description: The JWT of the logged in customer (in case of a web shop). post: tags: - - Order Creation Flow v2 - summary: Add a payment to an existing order. - description: Add a payment to an existing order. + - Order Creation Flow + summary: Add a payment to an existing order + description: Add a payment to an existing order requestBody: content: application/json: @@ -3583,10 +3648,9 @@ paths: description: The JWT of the logged in customer (in case of a web shop). patch: tags: - - Order Creation Flow v2 - summary: Update a payment on an existing order. - description: | - Update a payment on an existing order. Depending on the payment status, the order status also changes accordingly. + - Order Creation Flow + summary: Update a payment on an existing order + description: Update a payment on an existing order requestBody: content: application/json: @@ -3610,8 +3674,8 @@ paths: "createdOn": "2024-03-22T09:00:00", "statusCode": "190", "statusDescription": "Success", - "statusSubCode": "S001", - "statusSubDescription": "PaymentSuccessful", + "statusSubCode": null, + "statusSubDescription": null, }, ], "mandateInput": @@ -4078,9 +4142,9 @@ paths: description: The JWT of the logged in customer (in case of a web shop). post: tags: - - Order Creation Flow v2 - summary: Add a customer to an existing order. - description: Add a customer to an existing order. + - Order Creation Flow + summary: Add a customer to an existing order + description: Add a customer to an existing order requestBody: content: application/json: @@ -4334,9 +4398,9 @@ paths: example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c description: The JWT of the logged in customer (in case of a web shop). tags: - - Order Creation Flow v2 - summary: Update a customer on an existing order. - description: Update a customer on an existing order. + - Order Creation Flow + summary: Update a customer on an existing order + description: Update a customer on an existing order requestBody: content: application/json: @@ -4578,9 +4642,9 @@ paths: example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c description: The JWT of the logged in customer (in case of a web shop). tags: - - Order Creation Flow v2 - summary: Create a customer address for an existing order. - description: Create a customer address for an existing order. + - Order Creation Flow + summary: Create a customer address for an existing order + description: Create a customer address for an existing order requestBody: content: application/json: @@ -4830,9 +4894,9 @@ paths: example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c description: The JWT of the logged in customer (in case of a web shop). tags: - - Order Creation Flow v2 - summary: Update a customer address for an existing order. - description: Update a customer address for an existing order. + - Order Creation Flow + summary: Update a customer address for an existing order + description: Update a customer address for an existing order requestBody: content: application/json: @@ -5065,7 +5129,7 @@ paths: } delete: tags: - - Order Creation Flow v2 + - Order Creation Flow summary: Delete an existing order address. description: Delete an existing order address. parameters: @@ -5181,12 +5245,130 @@ paths: description: The JWT of the logged in customer (in case of a web shop). post: tags: - - Order Fulfillment v2 + - Order Fulfillment summary: Fulfill an order without creating or updating the order as a resource. description: Fulfill an order without creating or updating the order as a resource. responses: "200": description: OK + /orders/validation/gboAgeProfile: + get: + tags: + - Order validation + summary: Get GBO age profile that is valid for the given input. P2 + description: |- + Only one age profile can be valid at any one time, so only one profile is returned. + parameters: + - name: productStartDate + in: query + required: true + description: Start date of product validity + schema: + type: string + format: date + example: 2025-03-20 + - name: birthDate + in: query + required: false + description: Birthdate of the OVpay-token holder + schema: + type: string + format: date + example: 2000-01-01 + - name: ovPayTokenId + in: query + required: false + description: ovPayTokenId of the customer's selected token + schema: + type: integer + example: 1 + - name: customerTokenId + in: query + required: false + description: customerTokenId of the customer's selected token + schema: + type: string + format: uuid + example: "4a2d2c9c-1e5d-4d8a-9c0a-6c0a6c0a6c0a" + - name: serviceReferenceId + in: query + required: false + description: serviceReferenceId of the customer's selected token + schema: + type: string + example: "NLOV1234567ABCDEFG" + - name: amount + in: query + required: false + description: amount belonging to the serviceReferenceId + schema: + type: integer + example: 100 + - name: ovpasNumber + in: query + required: false + description: OVpas number of the customer's selected token + schema: + type: string + example: "63AW974" + - name: verificationCode + in: query + required: false + description: verification code belonging to the OVpas number + schema: + type: string + example: 1A3C7D + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GboAgeProfileResponse" + "400": + description: Bad request + content: + application/json: + schema: + $ref: "#/components/schemas/rfc9457" + examples: + Missing parameter(s): + summary: Missing parameter(s) + value: + { + "type": "https://www.htm.nl/api/v1/400Error", + "title": "Missing parameter(s)", + "detail": "At least one of the following parameters must be present: birthDate, ovPayTokenId, customerTokenId, (serviceReferenceId and amount), (ovpasNumber and verificationCode)", + "instance": "urn:uuid:13c8416f-7632-4c8b-8a16-2132197be60c", + "apiErrorCode": "htm.api.err.400.2", + } + Invalid date format: + summary: Invalid date format + value: + { + "type": "https://www.htm.nl/api/v1/400Error", + "title": "Invalid input", + "detail": "The given birthDate is not a valid Date format", + "instance": "urn:uuid:13c8416f-7632-4c8b-8a16-2132197be60c", + "apiErrorCode": "htm.api.err.400.3", + } + "404": + description: Not found + content: + application/json: + schema: + $ref: "#/components/schemas/rfc9457" + examples: + No birthdate present in PAD of OVpay token: + summary: No birthdate present in PAD of OVpay token + value: + { + "type": "https://www.htm.nl/api/v1/404Error", + "title": "Missing birthdate in PAD", + "detail": "There is no birthdate present in the PAD of the OVpay token, or there is no PAD present at all", + "instance": "urn:uuid:13c8416f-7632-4c8b-8a16-2132197be60c", + "apiErrorCode": "htm.api.err.404.1", + } components: securitySchemes: bearerToken: @@ -5222,3 +5404,23 @@ components: example: - "/account/12345" - "/account/67890" + GboAgeProfileResponse: + type: object + required: + - gboAgeProfileId + - name + - ageFromInclusive + - ageToInclusive + properties: + gboAgeProfileId: + type: integer + example: 1 + name: + type: string + example: Kind (4 t/m 11 jaar) + ageFromInclusive: + type: integer + example: 4 + ageToInclusive: + type: integer + example: 11 \ No newline at end of file