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://api.integratielaag.nl/v2 paths: /orders/validation: post: tags: - Order Validation v1 & v2 summary: Validate order. description: Validate order. parameters: - in: header name: X-HTM-JWT-AUTH-HEADER required: false style: simple explode: false schema: type: string - in: header name: Accept-version required: false style: simple explode: false schema: type: string example: "2.0" description: The version of the API. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" examples: v1: summary: Order validation v1 description: Order validation v1 value: [ { "ovPayTokenId": 2, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "productId": 2, "startDate": "2024-03-22T09:00:00z", "quantity": 1, }, { "ovPayTokenId": 3, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 89, "ovpasNumber": "OV34567", "productId": 4, "startDate": "2024-03-22T09:00:00z", "quantity": 4, }, ] v2: summary: Order validation v2 description: Order validation v2 value: { "purchaseDate": "2024-03-22", "customerProfileId": 1337, "languageId": 1, "billingAddressId": 1, "shippingAddressId": 1, "contents": [ { "productId": 1, "quantity": 5, "validFrom": "2024-03-22T09:00:00", "validUntil": null, "tokens": [ { "tokenTypeId": 1, "ovPayTokenId": 1, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verificationCode": "A7H6", "personalAccountData": { "name": "Jan de Vries", "dateOfBirth": "01-01-1970", "photoReference": "DSC_0502.JPG", "fileType": "image/jpg", "challengeTypeId": 1, "oneTimePassword": "H5Iiz3JTaQeIV8p", }, }, ], }, { "productId": 2, "quantity": 3, "validFrom": "2024-03-22T09:00:00", "validUntil": null, }, ], "customer": { "birthname": "Jan", "surname": "Vries", "prefix": "de", "emailAddress": "jandevries@outlook.com", "dateOfBirth": "1970-01-01", "addresses": [ { "addressTypeId": 1, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", "postalCode": "2595 AA", "city": "Den Haag", "country": "NL", }, ], }, } responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/unavailable" examples: v1: summary: Order validation v1 description: Order validation v1 value: { "validContents": true, "amountExclTax": 0, "taxPercentage": 0, "amountInclTax": 0, "contents": [ { "ovPayTokenId": 0, "serviceReferenceId": "string", "ovpasNumber": "string", "productId": 0, "quantity": 0, "amountExclTax": 0, "taxPercentage": 0, "amountInclTax": 0, "startDate": "string", "endDate": "string", "isRenewable": true, "nextDebitDate": "string", "termAmountExclTax": 0, "termAmountInclTax": 0, "additionalRemarks": [{ "code": "string", "parameter": "string" }], "validationErrors": [{ "detail": "string", "pointer": "string" }], }, ], } v2: summary: Order validation v2 description: Order validation v2 value: { "validContents": true, "purchaseDate": "2024-03-22", "customerProfileId": 1337, "languageId": 1, "billingAddressId": 1, "shippingAddressId": 1, "totalAmount": 121, "contents": [ { "productId": 1, "quantity": 5, "validFrom": "2024-03-22T09:00:00", "validUntil": null, "taxAmount": 21, "taxCode": "V21", "amountExclTax": 100, "amountInclTax": 121, "isRenewable": true, "nextDebitDate": "2024-04-22", "termAmountExclTax": 100, "termAmountInclTax": 121, "tokens": [ { "tokenTypeId": 1, "ovPayTokenId": 1, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verificationCode": "A7H6", "personalAccountData": { "name": "Jan de Vries", "dateOfBirth": "01-01-1970", "photoReference": "DSC_0502.JPG", "fileType": "image/jpg", "challengeTypeId": 1, "oneTimePassword": "H5Iiz3JTaQeIV8p", }, }, ], "additionalRemarks": [], "validationErrors": [ { "detail": "Startdate of this product should be at most 60 days in the future.", "pointer": "#/contents[0]/validFrom", }, { "detail": "Combination of product and token type is not valid.", "pointer": "#/contents[0]/tokens[0]/ovPayTokenId", }, ], }, { "productId": 2, "quantity": 3, "validFrom": "2024-03-22T09:00:00", "validUntil": null, "taxAmount": 21, "taxCode": "V21", "amountExclTax": 100, "amountInclTax": 121, "isRenewable": true, "nextDebitDate": "2024-04-22", "termAmountExclTax": 100, "termAmountInclTax": 121, }, ], "customer": { "birthname": "Jan", "surname": "Vries", "prefix": "de", "emailAddress": "jandevries@outlook.com", "dateOfBirth": "1970-01-01", "addresses": [ { "addressTypeId": 1, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", "postalCode": "2595 AA", "city": "Den Haag", "country": "NL", }, ], "additionalRemarks": [ { "code": "PERSONAL_DATA_NEEDED", "parameter": "dateOfBirth", }, { "code": "PERSONAL_DATA_NEEDED", "parameter": "photo", }, { "code": "MANDATE_REQUIRED", "parameter": "directDebitMandateId", }, ], "validationErrors": [ { "detail": "Startdate of this product should be at most 60 days in the future.", "pointer": "#/contents[1]/validFrom", }, ], }, } /orders/{orderId}/fulfillment: post: tags: - Order Fulfillment v1 & v2 summary: Fulfill an order. description: Fulfill an order. parameters: - in: header name: X-HTM-JWT-AUTH-HEADER required: false style: simple explode: false schema: type: string - in: path name: orderId required: true style: simple explode: false schema: type: string format: uuid example: a0ef57fa-395c-4a03-96e9-234c26dccea9 - in: header name: Accept-version required: false style: simple explode: false schema: type: string example: "2.0" description: The version of the API. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" examples: v1: summary: Order fulfillment v1 description: Order fulfillment v1 value: { "customerProfileID": 123415, "customerProfileData": { "dateOfBirth": "09-03-1989" }, "personalAccountData": { "birthdate": "09-03-1989" }, "directDebitMandate": { "consumerName": "J. de Tèster", "consumerBic": "RABONL2U", "consumerIban": "NL44RABO0123456789", }, "orderContents": [ { "ovPayTokenId": 123, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 450, "ovpasNumber": "63AW974", "productId": 2, "startDate": "2024-03-22T09:00:00Z", "quantity": 1, "orderlineId": "2d7fadc9-b64b-4516-9a7d-cf550f201372", }, { "ovPayTokenId": 123, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 450, "ovpasNumber": "63AW974", "productId": 3, "startDate": "2024-03-16T09:00:00Z", "quantity": 1, "orderlineId": "9d7fadc9-b64b-4516-9a7d-cf550f201378", }, ], "orderStatus": "succeededPayment", } v2: summary: Order fulfillment v2 description: Order fulfillment v2 value: { "orderId": "a0ef57fa-395c-4a03-96e9-234c26dccea9", "customerProfileId": 1337, "totalAmount": 121, "languageId": 1, "billingAddressId": 1, "shippingAddressId": 1, "createdOn": "2024-03-22T09:00:00", "orderStatusId": 4, "orderLines": [ { "orderLineId": "2ba39cae-c401-446b-ae5c-2d6d85b3df1f", "productId": 1, "productName": "HTM Maandkorting 20%", "productCode": "HTM-MND-20", "productDescription": "HTM Maandkorting 20%", "taxAmount": 21, "taxCode": "V21", "amountExclTax": 100, "amountInclTax": 121, "quantity": 1, "terms": [ "generalTermsAndConditions.pdf", "productTermsAndConditions.pdf", ], "createdOn": "2024-03-22T09:00:00", "validFrom": "2024-03-22T09:00:00", "validUntil": null, "orderLineStatusId": 4, "tokens": [ { "tokenTypeId": 1, "ovPayTokenId": 1, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verificationCode": "A7H6", "personalAccountData": { "name": "Jan de Vries", "dateOfBirth": "01-01-1970", "photoReference": "DSC_0502.JPG", "fileType": "image/jpg", "challengeTypeId": 1, "oneTimePassword": "H5Iiz3JTaQeIV8p", }, }, ], }, ], "payments": [ { "createdOn": "2024-03-22T09:00:00", "amountDebit": 121, "paymentMethodId": 1, "touchPointId": 1, "isRefund": false, "htmPaymentReference": "HTM-1234", "pspPaymentReference": "Buckaroo-1234", "paymentStatuses": [ { "createdOn": "2024-03-22T09:00:00", "statusCode": "190", "statusDescription": "Success", "statusSubCode": "S001", "statusSubDescription": "PaymentSuccessFul", }, ], "payPush": { "consumerIssuer": "ABN AMRO", "transactionId": "0000000000000001", "consumerName": "J. de Vries", "consumerIBAN": "NL44RABO0123456789", "consumerBIC": "RABONL2U", }, }, ], "customer": { "birthname": "Jan", "surname": "Vries", "prefix": "de", "emailAddress": "jandevries@outlook.com", "dateOfBirth": "1970-01-01", "addresses": [ { "addressTypeId": 1, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", "postalCode": "2595 AA", "city": "Den Haag", "country": "NL", }, ], }, } v2.2: summary: Order fulfillment v2.2 description: Order fulfillment v2.2 value: { "orderId": "a0ef57fa-395c-4a03-96e9-234c26dccea9", "languageId": 1, "billingAddressId": 1, "shippingAddressId": 1, "createdOn": "2024-03-22T09:00:00", "orderStatusId": 4, "orderLines": [ { "orderLineId": "2ba39cae-c401-446b-ae5c-2d6d85b3df1f", "productId": 1, "quantity": 1, "createdOn": "2024-03-22T09:00:00", "validFrom": "2024-03-22T09:00:00", "validUntil": null, "orderLineStatusId": 4, "tokens": [ { "tokenTypeId": 1, "ovPayTokenId": 1, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verificationCode": "A7H6", "personalAccountData": { "name": "Jan de Vries", "dateOfBirth": "01-01-1970", "photoReference": "DSC_0502.JPG", "fileType": "image/jpg", "challengeTypeId": 1, "oneTimePassword": "H5Iiz3JTaQeIV8p", }, }, ], }, ], "payments": [ { "createdOn": "2024-03-22T09:00:00", "amountDebit": 121, "paymentMethodId": 1, "isRefund": false, "htmPaymentReference": "HTM-1234", "pspPaymentReference": "Buckaroo-1234", "paymentStatuses": [ { "createdOn": "2024-03-22T09:00:00", "statusCode": "190", "statusDescription": "Success", "statusSubCode": "S001", "statusSubDescription": "PaymentSuccessFul", }, ], "payPush": { "consumerIssuer": "ABN AMRO", "transactionId": "0000000000000001", "consumerName": "J. de Vries", "consumerIBAN": "NL44RABO0123456789", "consumerBIC": "RABONL2U", }, }, ], "customer": { "birthname": "Jan", "surname": "Vries", "prefix": "de", "emailAddress": "jandevries@outlook.com", "dateOfBirth": "1970-01-01", "addresses": [ { "addressTypeId": 1, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", "postalCode": "2595 AA", "city": "Den Haag", "country": "NL", }, ], }, } responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/unavailable" examples: v1: summary: Order fulfillment v1 description: Order fulfillment v1 value: {} v2: summary: Order fulfillment v2 description: Order fulfillment v2 value: { "orderId": "a0ef57fa-395c-4a03-96e9-234c26dccea9", "orderNumber": "123456", "customerProfileId": 1337, "totalAmount": 121, "languageId": 1, "billingAddressId": 1, "shippingAddressId": 1, "createdOn": "2024-03-22T09:00:00", "orderStatusId": 4, "orderLines": [ { "orderLineId": "2ba39cae-c401-446b-ae5c-2d6d85b3df1f", "productId": 1, "productName": "HTM Maandkorting 20%", "productCode": "HTM-MND-20", "productDescription": "HTM Maandkorting 20%", "taxAmount": 21, "taxCode": "V21", "amountExclTax": 100, "amountInclTax": 121, "quantity": 1, "terms": [ "generalTermsAndConditions.pdf", "productTermsAndConditions.pdf", ], "createdOn": "2024-03-22T09:00:00", "validFrom": "2024-03-22T09:00:00", "validUntil": null, "orderLineStatusId": 4, "tokens": [ { "tokenTypeId": 1, "ovPayTokenId": 1, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verificationCode": "A7H6", "personalAccountData": { "name": "Jan de Vries", "dateOfBirth": "01-01-1970", "photoReference": "DSC_0502.JPG", "fileType": "image/jpg", "challengeTypeId": 1, "oneTimePassword": "H5Iiz3JTaQeIV8p", }, }, ], }, ], "payments": [ { "createdOn": "2024-03-22T09:00:00", "amountDebit": 121, "paymentMethodId": 1, "touchPointId": 1, "isRefund": false, "htmPaymentReference": "HTM-1234", "pspPaymentReference": "Buckaroo-1234", "paymentStatuses": [ { "createdOn": "2024-03-22T09:00:00", "statusCode": "190", "statusDescription": "Success", "statusSubCode": "S001", "statusSubDescription": "PaymentSuccessFul", }, ], "payPush": { "consumerIssuer": "ABN AMRO", "transactionId": "0000000000000001", "consumerName": "J. de Vries", "consumerIBAN": "NL44RABO0123456789", "consumerBIC": "RABONL2U", }, }, ], "customer": { "birthname": "Jan", "surname": "Vries", "prefix": "de", "emailAddress": "jandevries@outlook.com", "dateOfBirth": "1970-01-01", "addresses": [ { "addressTypeId": 1, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", "postalCode": "2595 AA", "city": "Den Haag", "country": "NL", }, ], }, } /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 v2.1 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" example: { "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", }, "billingAddressId": 1, "shippingAddressId": 1, "createdOn": "2024-03-22T09:00:00", "lastUpdatedOn": "2024-03-22T09:00:00", "order_OrderStatus": { "order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f", "orderStatus": { "orderStatusId": 4, "name": "paid" }, "createdOn": "2024-03-22T09:00:00", "description": "Order succesvol betaald", }, "payments": [ { "createdOn": "2024-03-22T09:00:00", "amountDebit": 121, "paymentMethodId": 1, "touchPointId": 1, "isRefund": false, "htmPaymentReference": "HTM-1234", "pspPaymentReference": "Buckaroo-1234", "paymentStatuses": [ { "createdOn": "2024-03-22T09:00:00", "statusCode": "190", "statusDescription": "Success", "statusSubCode": "S001", "statusSubDescription": "PaymentSuccessFul", }, ], "mandateInput": { "directDebitMandateTypeId": 1, "createdOn": "2024-03-22T09:00:00", "bic": "RABONL2U", "iban": "NL44RABO0123456789", "ascription": "J. de Vries", "place": "Den Haag", }, }, ], "_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: parameters: - 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: parameters: - in: query name: orderId schema: type: string format: uuid example: afce35b2-1dff-4ace-98d0-4b9ac405c87d description: The order id. - in: query name: orderNumber schema: type: string example: "ORD123456" description: The order number. - in: query name: externalOrderId schema: type: string example: 7bef22f6-70a3-4655-bc2a-c40c61581b32 description: The external order id. - in: query name: customerProfileId schema: type: integer example: 42 description: The customer profile id. - in: query name: xTat schema: type: string 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.1 summary: Find orders. description: Find orders. responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "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", }, "billingAddressId": 1, "shippingAddressId": 1, "createdOn": "2024-03-22T09:00:00", "lastUpdatedOn": "2024-03-22T09:00:00", "order_OrderStatus": { "order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f", "orderStatus": { "orderStatusId": 4, "name": "paid" }, "createdOn": "2024-03-22T09:00:00", "description": "Order succesvol betaald", }, "payments": [ { "createdOn": "2024-03-22T09:00:00", "amountDebit": 121, "paymentMethodId": 1, "touchPointId": 1, "isRefund": false, "htmPaymentReference": "HTM-1234", "pspPaymentReference": "Buckaroo-1234", "paymentStatuses": [ { "createdOn": "2024-03-22T09:00:00", "statusCode": "190", "statusDescription": "Success", "statusSubCode": "S001", "statusSubDescription": "PaymentSuccessFul", }, ], "mandateInput": { "directDebitMandateTypeId": 1, "createdOn": "2024-03-22T09:00:00", "bic": "RABONL2U", "iban": "NL44RABO0123456789", "ascription": "J. de Vries", "place": "Den Haag", }, }, ], "_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", } post: tags: - Order Creation v2.1 summary: Create a new order. description: Create a new order. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" examples: v2: summary: Order creation v2.1 description: Order creation v2.1 value: { "externalOrderId": null, "customerProfileId": 1337, "totalAmount": 121, "touchPoint": { "salesTouchpointId": 3, "name": "Website (Perplex)", "isActive": true, "retailerId": 1001, }, "languageId": 1, "billingAddressId": 1, "shippingAddressId": 1, "createdOn": "2024-03-22T09:00:00", "order_OrderStatus": [ { "orderStatusId": 1, "createdOn": "2024-03-22T09:00:00", "description": "Concept order", }, ], "orderLines": [ { "externalOrderLineId": null, "productId": 1, "productName": "HTM Maandkorting 20%", "productCode": "HTM-MND-20", "productDescription": "HTM Maandkorting 20%", "taxAmount": 21, "taxMetadataId": "7275b910-37d9-40c1-aaac-80d8ceb62ff9", "amountExclTax": 100, "amountInclTax": 121, "quantity": 1, "orderLineTerms": [{ "termsUrl": "generalTermsAndConditions.pdf" }], "validFrom": "2024-03-22T09:00:00", "validUntil": "2025-03-22T09:00:00", "orderLineStatusId": 4, "createdOn": "2024-03-22T09:00:00", "customerTokens": [ { "tokenTypeId": 1, "ovPayTokenId": 1, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verificationCode": "A7H6", "personalAccountData": { "name": "Jan de Vries", "dateOfBirth": "01-01-1970", "photoReference": "DSC_0502.JPG", "fileType": "image/jpg", "challengeTypeId": 1, "oneTimePassword": "H5Iiz3JTaQeIV8p", }, }, ], "orderAccountingStatuses": [ { "accountingStatusId": 1, "createdOn": "2024-03-22T09:00:00", "description": "Financiele transactie voor de FIKO.", }, ], }, ], "payments": [ { "createdOn": "2024-03-22T09:00:00", "amountDebit": 121, "paymentMethodId": 1, "touchPointId": 1, "isRefund": false, "htmPaymentReference": "HTM-1234", "pspPaymentReference": "Buckaroo-1234", "paymentStatuses": [ { "createdOn": "2024-03-22T09:00:00", "statusCode": "190", "statusDescription": "Success", "statusSubCode": "S001", "statusSubDescription": "PaymentSuccessFul", }, ], "mandateInput": { "directDebitMandateTypeId": 1, "createdOn": "2024-03-22T09:00:00", "bic": "RABONL2U", "iban": "NL44RABO0123456789", "ascription": "J. de Vries", "place": "Den Haag", }, }, ], "orderCustomer": { "birthname": "Jan", "surname": "Vries", "prefix": "de", "emailAddress": "jandevries@outlook.com", "dateOfBirth": "1970-01-01", "orderCustomerAddresses": [ { "addressTypeId": 1, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", "postalCode": "2595 AA", "city": "Den Haag", "country": "NL", }, ], }, } v2.2: summary: Order creation v2.2 description: Order creation v2.2 value: { "externalOrderId": null, "languageId": 1, "billingAddressId": 1, "shippingAddressId": 1, "createdOn": "2024-03-22T09:00:00", "order_OrderStatus": [ { "orderStatusId": 1, "createdOn": "2024-03-22T09:00:00", "description": "Concept order", }, ], "orderLines": [ { "externalOrderLineId": null, "productId": 1, "quantity": 1, "validFrom": "2024-03-22T09:00:00", "validUntil": "2025-03-22T09:00:00", "orderLineStatusId": 4, "createdOn": "2024-03-22T09:00:00", "customerTokens": [ { "tokenTypeId": 1, "ovPayTokenId": 1, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verificationCode": "A7H6", "personalAccountData": { "name": "Jan de Vries", "dateOfBirth": "01-01-1970", "photoReference": "DSC_0502.JPG", "fileType": "image/jpg", "challengeTypeId": 1, "oneTimePassword": "H5Iiz3JTaQeIV8p", }, }, ], "orderAccountingStatuses": [ { "accountingStatusId": 1, "createdOn": "2024-03-22T09:00:00", "description": "Financiele transactie voor de FIKO.", }, ], }, ], "payments": [ { "createdOn": "2024-03-22T09:00:00", "amountDebit": 121, "paymentMethodId": 1, "isRefund": false, "htmPaymentReference": "HTM-1234", "pspPaymentReference": "Buckaroo-1234", "paymentStatuses": [ { "createdOn": "2024-03-22T09:00:00", "statusCode": "190", "statusDescription": "Success", "statusSubCode": "S001", "statusSubDescription": "PaymentSuccessFul", }, ], "mandateInput": { "directDebitMandateTypeId": 1, "createdOn": "2024-03-22T09:00:00", "bic": "RABONL2U", "iban": "NL44RABO0123456789", "ascription": "J. de Vries", "place": "Den Haag", }, }, ], "orderCustomer": { "birthname": "Jan", "surname": "Vries", "prefix": "de", "emailAddress": "jandevries@outlook.com", "dateOfBirth": "1970-01-01", "orderCustomerAddresses": [ { "addressTypeId": 1, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", "postalCode": "2595 AA", "city": "Den Haag", "country": "NL", }, ], }, } responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "orderNumber": "ORD-123456", } /orders/{orderId}: 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). get: tags: - Order Retrieval v2.1 summary: Get a single order. description: Get a single order. responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "orderId": "afce35b2-1dff-4ace-98d0-4b9ac405c87d", "externalOrderId": "bac3958b-804a-43e3-b5f7-0b0fffaae5b7", "orderNumber": "123456", "customerProfileId": 42, "totalAmount": 121, "touchPointId": 1, "language": { "languageId": 1, "name": "Nederlands", "iso639Code": "nl-NL", "ietfCode": "nl", }, "billingAddressId": 1, "shippingAddressId": 1, "createdOn": "2024-03-22T09:00:00", "lastUpdatedOn": "2024-03-22T09:00:00", "order_OrderStatus": [ { "order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f", "orderStatus": { "orderStatusId": 4, "name": "paid" }, "createdOn": "2024-03-22T09:00:00", "description": "Order succesvol betaald", }, { "order_orderStatusId": "2b9b7943-3a74-4f2e-ad65-012b62c80821", "orderStatus": { "orderStatusId": 3, "name": "pendingPayment" }, "createdOn": "2024-03-22T08:55:00", "description": "Betaling in behandeling", }, ], "orderLines": [ { "orderLineId": "7a7a9d1a-3fc8-4058-a28b-082860aaa311", "externalOrderLineId": "f5fddff0-7fbd-4285-bccb-e584f431ea69", "productId": 1, "productName": "HTM Maandkorting 20%", "productCode": "HTM-MND-20", "productDescription": "HTM Maandkorting 20%", "taxAmount": 21, "taxMetadata": { "taxMetadataId": "06270769-a263-4325-82d6-f49396f39d03", "taxCode": "V21", "taxPercentageAmount": 21, "description": "21% BTW", }, "amountExclTax": 100, "amountInclTax": 121, "quantity": 1, "orderLineTerms": [ { "orderLineTermsId": "fe354db7-12ad-4fc1-bc63-a704c4e0d91e", "termsUrl": "generalTermsAndConditions.pdf", }, ], "validFrom": "2024-03-22T09:00:00", "validUntil": "2025-03-22T09:00:00", "orderLineStatus": { "orderLineStatusId": 4, "name": "delivered" }, "createdOn": "2024-03-22T09:00:00", "lastUpdatedOn": "2024-03-22T09:00:00", "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", "dateOfBirth": "01-01-1970", "photoReference": "DSC_0502.JPG", "fileType": "image/jpg", "challengeType": { "challengeTypeId": 1, "name": "email" }, "oneTimePassword": "H5Iiz3JTaQeIV8p", }, }, ], "orderAccountingStatuses": [ { "orderAccountingStatusId": "7c5118d0-8535-4464-9239-83a7ba8fd2db", "accountingStatus": { "accountingStatusId": 1, "name": "open" }, "createdOn": "2024-03-22T09:00:00", "description": "Financiele transactie voor de FIKO.", }, ], }, ], "payments": [ { "paymentId": "3ba4a3c7-0803-4214-800b-365851b8903d", "createdOn": "2024-03-22T09:00:00", "amountDebit": 121, "paymentMethod": { "paymentMethodId": 1, "name": "ideal", "provider": "Buckaroo", }, "touchPointId": 1, "isRefund": false, "htmPaymentReference": "HTM-1234", "pspPaymentReference": "Buckaroo-1234", "paymentStatuses": [ { "paymentStatusId": 1, "createdOn": "2024-03-22T09:00:00", "statusCode": "190", "statusDescription": "Success", "statusSubCode": "S001", "statusSubDescription": "PaymentSuccessFul", }, ], "mandateInput": { "mandateInputId": "0a875e67-dc9f-4825-a030-d732a2adbfbc", "directDebitMandateType": { "directDebitMandateTypeId": 1, "name": "import", }, "createdOn": "2024-03-22T09:00:00", "bic": "RABONL2U", "iban": "NL44RABO0123456789", "ascription": "J. de Vries", "place": "Den Haag", }, }, ], "orderCustomer": { "orderCustomerId": "19ef6882-8eda-43bf-b48e-9b4ff8745a50", "birthname": "Jan", "surname": "Vries", "prefix": "de", "emailAddress": "jandevries@outlook.com", "dateOfBirth": "1970-01-01", "orderCustomerAddresses": [ { "orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893", "addressType": { "addressTypeId": 1, "name": "Billing" }, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", "postalCode": "2595 AA", "city": "Den Haag", "country": "NL", }, ], }, } patch: tags: - Order Creation v2.1 summary: Update an existing order. description: Update an existing order. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "customerProfileId": 1337, "totalAmount": 121, "languageId": 1, "billingAddressId": 1, "shippingAddressId": 1, "lastUpdatedOn": "2024-03-22T09:00:00", } responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", "orderNumber": "ORD-123456", } delete: tags: - Order Creation v2.1 summary: Delete an existing order. description: Delete an existing order. responses: "200": description: OK /orders/{orderId}/orderlines: 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 v2.1 summary: Add a new order line to an existing order. description: Add a new order line to an existing order. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "externalOrderLineId": null, "productId": 1, "productName": "HTM Maandkorting 20%", "productCode": "HTM-MND-20", "productDescription": "HTM Maandkorting 20%", "taxAmount": 21, "taxMetadataId": "1d6f1725-1072-4f08-982c-3df51dd854a1", "amountExclTax": 100, "amountInclTax": 121, "quantity": 1, "orderLineTerms": [{ "termsUrl": "generalTermsAndConditions.pdf" }], "validFrom": "2024-03-22T09:00:00", "validUntil": "2025-03-22T09:00:00", "orderLineStatusId": 4, "createdOn": "2024-03-22T09:00:00", "customerTokens": [ { "tokenTypeId": 1, "ovPayTokenId": 1, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verificationCode": "A7H6", "personalAccountData": { "name": "Jan de Vries", "dateOfBirth": "01-01-1970", "photoReference": "DSC_0502.JPG", "fileType": "image/jpg", "challengeTypeId": 1, "oneTimePassword": "H5Iiz3JTaQeIV8p", }, }, ], "orderAccountingStatuses": [ { "accountingStatusId": 1, "createdOn": "2024-03-22T09:00:00", "description": "Financiele transactie voor de FIKO.", }, ], } responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "orderLineId": "e78b78d9-4fb0-4a9c-8dc0-6d100c9f1b3f" } /orderlines/{orderLineId}: 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). patch: tags: - Order Creation v2.1 summary: Update an existing order line. description: Update an existing order line. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "taxAmount": 21, "taxMetadataId": "0574440e-7fa0-401f-b907-539c91633a5d", "amountExclTax": 100, "amountInclTax": 121, "quantity": 1, "validFrom": "2024-03-22T09:00:00", "validUntil": "2025-03-22T09:00:00", "orderLineStatusId": 4, } responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "orderLineId": "e78b78d9-4fb0-4a9c-8dc0-6d100c9f1b3f" } delete: tags: - Order Creation v2.1 summary: Delete an existing order line. description: Delete an existing order line. responses: "200": description: OK /orders/{orderId}/payments: 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-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.1 summary: Add a payment to an existing order. description: Add a payment to an existing order. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "createdOn": "2024-03-22T09:00:00", "amountDebit": 121, "paymentMethodId": 1, "touchPointId": 1, "isRefund": false, "htmPaymentReference": "HTM-1234", "pspPaymentReference": "Buckaroo-1234", "paymentStatuses": [ { "createdOn": "2024-03-22T09:00:00", "statusCode": "190", "statusDescription": "Success", "statusSubCode": "S001", "statusSubDescription": "PaymentSuccessFul", }, ], "mandateInput": { "directDebitMandateTypeId": 1, "createdOn": "2024-03-22T09:00:00", "bic": "RABONL2U", "iban": "NL44RABO0123456789", "ascription": "J. de Vries", "place": "Den Haag", }, } responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "paymentId": "94270188-4cf6-447e-bd49-e8186bcec073" } /payments/{paymentId}: parameters: - in: path name: paymentId 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). patch: tags: - Order Creation v2.1 summary: Update a payment on an existing order. description: Update a payment on an existing order. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "htmPaymentReference": "HTM-1234", "pspPaymentReference": "Buckaroo-1234", } responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "paymentId": "94270188-4cf6-447e-bd49-e8186bcec073" } /orders/{orderId}/ordercustomers: 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-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.1 summary: Add a customer to an existing order. description: Add a customer to an existing order. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "birthname": "Jan", "surname": "Vries", "prefix": "de", "emailAddress": "jandevries@outlook.com", "dateOfBirth": "1970-01-01", "orderCustomerAddresses": [ { "addressTypeId": 1, "street": "Kon. Julianaplein", "houseNumber": 10, "houseNumberSuffix": "a", "postalCode": "2595 AA", "city": "Den Haag", "country": "NL", }, ], } responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "orderCustomerId": "94270188-4cf6-447e-bd49-e8186bcec073" } /ordercustomers/{orderCustomerId}: patch: parameters: - in: path name: orderCustomerId 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). tags: - Order Creation v2.1 summary: Update a customer on an existing order. description: Update a customer on an existing order. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "birthname": "Jan", "surname": "Vries", "prefix": "de", "emailAddress": "jandevries@outlook.com", "dateOfBirth": "1970-01-01", } responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "orderCustomerId": "94270188-4cf6-447e-bd49-e8186bcec073" } /orders/{orderId}/fulfill: 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-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 Fulfillment v2.1 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 components: securitySchemes: bearerToken: type: http scheme: bearer bearerFormat: JWT schemas: unavailable: type: object rfc9457: type: object properties: type: type: string format: url example: "https://example.com/probs/out-of-credit" title: type: string example: "You do not have enough credit." detail: type: string example: "Your current balance is 30, but that costs 50." instance: type: string example: "/account/12345/msgs/abc" balance: type: string example: "30" accounts: type: array items: type: string example: - "/account/12345" - "/account/67890"