develop #38

Merged
bboterm merged 451 commits from develop into main 2025-11-19 14:28:14 +00:00
Showing only changes of commit a2d42774cb - Show all commits

View File

@ -724,145 +724,6 @@ paths:
}, },
], ],
} }
/customers/{customerProfileId}/orders:
parameters:
- in: path
name: customerProfileId
required: true
style: simple
explode: false
schema:
type: integer
example: 42
- 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).
get:
tags:
- Order Retrieval v1 & v2
summary: Get all orders for a specific customer.
description: Get all orders for a specific customer.
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
examples:
v2.1:
summary: Order list for customer v2.1
description: Order list for customer v2.1
value:
{
"orders":
[
{
"orderId": "afce35b2-1dff-4ace-98d0-4b9ac405c87d",
"externalOrderId": "bac3958b-804a-43e3-b5f7-0b0fffaae5b7",
"orderNumber": "123456",
"customerProfileId": 42,
"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": 4, "name": "paid" },
"createdOn": "2024-03-22T09:00:00",
"description": "Order succesvol betaald",
},
"orderLines": [],
"payments":
[
{
"paymentId": "c772868c-5cce-46a3-8821-be6811332252",
"createdOn": "2024-03-22T09:00:00",
"amountDebit": 121,
"paymentMethod":
{
"paymentMethodId": 1,
"name": "ideal",
"provider": "Buckaroo",
},
"touchPoint":
{
"salesTouchpointId": 3,
"name": "Website (Perplex)",
"isActive": true,
"retailerId": 1001,
},
"isRefund": false,
"htmPaymentReference": "HTM-1234",
"pspPaymentReference": "Buckaroo-1234",
"paymentStatuses":
[
{
"paymentStatusId": "ff9f2365-efc8-4f97-a6c1-e01fcddad917",
"createdOn": "2024-03-22T09:00:00",
"statusCode": "190",
"statusDescription": "Success",
"statusSubCode": "S001",
"statusSubDescription": "PaymentSuccessful",
},
],
"mandateInput":
{
"mandateInputId": "1d6626cd-b93b-4ea6-85d5-a8e3a24a2725",
"directDebitMandateType":
{
"directDebitMandateTypeId": 1,
"name": "import",
},
"createdOn": "2024-03-22T09:00:00",
"bic": "RABONL2U",
"iban": "NL44RABO0123456789",
"ascription": "J. de Vries",
"place": "Den Haag",
},
},
],
"orderCustomer": null,
"_links":
{
"self":
{
"href": "https://api.example.com/items/1",
"method": "GET",
"templated": true,
},
},
},
],
"_links":
{
"self":
{
"href": "https://api.example.com/items",
"method": "GET",
"templated": true,
},
},
"href": "string",
}
/orders: /orders:
parameters: parameters:
- in: header - in: header
@ -892,6 +753,48 @@ paths:
type: string type: string
example: 7bef22f6-70a3-4655-bc2a-c40c61581b32 example: 7bef22f6-70a3-4655-bc2a-c40c61581b32
description: The external order id. description: The external order id.
- in: query
name: createdBefore
schema:
type: string
format: date-time
example: 2024-03-22T09:00:00
required: false
description: Timestamp before which the order should have been created.
- in: query
name: createdAfter
schema:
type: string
format: date-time
example: 2024-03-22T09:00:00
required: false
description: Timestamp after which the order should have been created.
- in: query
name: updatedBefore
schema:
type: string
format: date-time
example: 2024-03-22T09:00:00
required: false
description: Timestamp before which the order should have been updated.
- in: query
name: updatedAfter
schema:
type: string
format: date-time
example: 2024-03-22T09:00:00
required: false
description: Timestamp after which the order should have been updated.
- in: query
name: orderStatusId
schema:
type: array
items:
type: integer
explode: false
required: false
description: Filter on most recent order status. 1 = concept, 2 = awaitingPayment, 3 = pendingPayment, 4 = paid, 5 = delivered, 6 = cancelled.
- in: query - in: query
name: customerProfileId name: customerProfileId
schema: schema:
@ -1016,6 +919,117 @@ paths:
}, },
}, },
}, },
{
"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":
[
{
"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": 21,
"amountExclTax": 100,
"amountInclTax": 121,
"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": "01-01-1970",
"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",
},
},
],
"orderAccountingStatuses": [],
"validationResult": false,
"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,
}
], ],
"_links": "_links":
{ {
@ -2218,6 +2232,16 @@ paths:
schema: schema:
$ref: "#/components/schemas/unavailable" $ref: "#/components/schemas/unavailable"
examples: examples:
v2.2:
summary: Update order line v2.2
description: Update order line v2.2
value:
{
"productId": 49,
"quantity": 1,
"validFrom": "2024-03-25T09:00:00",
"validUntil": null,
}
v2.1: v2.1:
summary: Update order line v2.1 summary: Update order line v2.1
description: Update order line v2.1 description: Update order line v2.1
@ -2249,6 +2273,97 @@ paths:
schema: schema:
$ref: "#/components/schemas/unavailable" $ref: "#/components/schemas/unavailable"
examples: examples:
v2.2:
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":
[
{
"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": 112,
"productName": "HTM Regio Vrij - HL65 - Voltarief",
"fikoArticleNumber": "6609",
"productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL65",
"taxCode": "V09",
"taxPercentage": 9.0000,
"taxAmount": 488,
"amountExclTax": 5412,
"amountInclTax": 5900,
"quantity": 1,
"orderLineTerms":
[
{
"orderLineTermsId": "cccada2c-d5ea-48ab-b4be-f590e16b5468",
"termsUrl": "generalTermsAndConditions.pdf",
},
{
"orderLineTermsId": "bd76f723-9308-4629-a291-4c4fafd7ed87",
"termsUrl": "productTermsAndConditions.pdf",
},
{
"orderLineTermsId": "cac42e50-b1d3-4745-9a5d-a793bd27aad1",
"termsUrl": "RegiovrijTermsAndConditions.pdf",
},
],
"createdOn": "2025-05-22T09:00:00",
"validFrom": "2025-05-25T04:00:00",
"validUntil": "2025-06-25T04:00:00",
"orderLineStatus":
{ "orderLineStatusId": 1, "name": "pending" },
"customerTokens": [],
"orderAccountingStatuses": [],
"validationResult": false,
"additionalRemarks":
[
{
"code": "MANDATE_REQUIRED",
"parameter": "directDebitMandateId",
},
{
"code": "CUSTOMERTOKEN_REQUIRED",
"parameter": "customerTokenId",
},
],
"validationErrors": [
],
},
],
"payments": [],
"orderCustomer": null,
}
v2.1: v2.1:
value: value:
{ {
@ -2455,6 +2570,186 @@ 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-HM-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 v2
summary: Add a customer token to an orderLine
description: Add a customer token to an orderLine
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
examples:
v2.2:
summary: Add a customer token to an orderline v2.2
description: Add a customer token to an orderline v2.2
value:
{
"tokenTypeId": 1,
"ovPayTokenId": 12,
"personalAccountData": null}
responses:
"201":
description: Created
content:
application/json:
schema:
$ref: "#/components/schemas/unaivalable"
examples:
v2.2:
value:
{
"validContents": true,
"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":
[
{
"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": 21,
"amountExclTax": 100,
"amountInclTax": 121,
"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
},
],
"orderAccountingStatuses": [],
"validationResult": true,
"additionalRemarks": [
{
"code": "PERSONALACCOUNTDATA_BIRTHDATE_REQUIRED",
"parameter": "personalaccountdata.birthdate",
}
],
"validationErrors": [],
},
],
"payments": [],
"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-HM-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:
- Order Creation v2
summary: Delete a customer token from an orderline
description: Delete a customer token from an orderline
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
examples:
v2.2:
summary: Delete a customer token v2.2
description: Delete a customer token v2.2
value:
{}
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
examples:
v2.2: {}
/orders/{orderId}/payments: /orders/{orderId}/payments:
parameters: parameters:
- in: path - in: path