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/v1 paths: /orders/validation: post: tags: - Order Validation v2 summary: Validate order. description: Validate order. parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "purchaseDate": "2024-03-22", "touchPointId": 1, "customerProfileId": 1, "contents": [ { "productId": 1, "quantity": 5, "personalization": { "gboProduct": { "ovPayTokenId": 1, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verifcationCode": "A7H6", "startDate": "2024-03-22", }, "tapconnectProduct": { "ticketLanguage": "NL", "validityStart": "2024-03-22", "validityStartTime": "10:30", }, }, }, { "productId": 2, "quantity": 3, "personalization": { "gboProduct": { "ovPayTokenId": 2, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verifcationCode": "A7H6", "startDate": "2024-03-22", }, "tapconnectProduct": { "ticketLanguage": "NL", "validityStart": "2024-03-22", "validityStartTime": "10:30", }, }, }, ], } responses: "200": description: Successful content: application/json: schema: $ref: "#/components/schemas/unavailable" example: { "validContents": true, "amountExclTax": 200, "taxPercentage": 21, "amountInclTax": 242, "purchaseDate": "2024-03-22", "touchPointId": 1, "customerProfileId": 1, "contents": [ { "productId": 1, "quantity": 5, "amountExclTax": 100, "taxPercentage": 21, "amountInclTax": 121, "personalization": { "gboProduct": { "ovPayTokenId": 1, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verifcationCode": "A7H6", "startDate": "2024-03-22", "endDate": null, "isRenewable": true, "nextDebitDate": "2024-04-22", "termAmountExclTax": 100, "termAmountInclTax": 121, }, "tapconnectProduct": { "ticketLanguage": "NL", "validityStart": "2020-03-22", "validityStartTime": "10:30", }, }, "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[0]/personalization/gboProduct/startDate", }, { "detail": "Combination of product and token type is not valid.", "pointer": "#/contents[0]/personalization/gboProduct/ovPayTokenId", }, ], }, { "productId": 2, "quantity": 3, "amountExclTax": 100, "taxPercentage": 21, "amountInclTax": 121, "personalization": { "gboProduct": { "ovPayTokenId": 1, "serviceReferenceId": "NLOV1234567ABCDEFG", "amount": 34, "ovpasNumber": "OV34567", "verifcationCode": "A7H6", "startDate": "2024-03-22", "endDate": null, "isRenewable": true, "nextDebitDate": "2024-04-22", "termAmountExclTax": 100, "termAmountInclTax": 121, }, "tapconnectProduct": { "ticketLanguage": "NL", "validityStart": "2020-03-22", "validityStartTime": "10:30", }, }, "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]/personalization/gboProduct/startDate", }, { "detail": "Combination of product and token type is not valid.", "pointer": "#/contents[1]/personalization/gboProduct/ovPayTokenId", }, ], }, ], } /orders/{orderId}/fulfillment: post: tags: - Order Fulfillment v2 summary: Order fulfillment description: Order fulfillment. parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - name: orderId in: path required: true style: simple explode: false schema: type: string format: uuid requestBody: content: application/json: schema: $ref: "#/components/schemas/postOrderFulfillment" example: { "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", } responses: "200": description: Successful components: schemas: unavailable: type: object postOrderFulfillment: type: object properties: customerProfileID: type: number customerProfileData: type: object properties: dateOfBirth: type: string personalAccountData: type: object properties: birthdate: type: string directDebitMandate: type: object properties: consumerName: type: string consumerBic: type: string consumerIban: type: string orderContents: type: array items: type: object properties: ovPayTokenId: type: number serviceReferenceId: type: string amount: type: number ovpasNumber: type: string productId: type: number startDate: type: string quantity: type: number orderlineId: type: string format: uuid orderStatus: type: string postOrderValidation: type: array items: properties: ovPayTokenId: type: integer serviceReferenceId: type: string amount: type: integer ovpasNumber: type: string productId: type: integer startDate: type: string quantity: type: integer postCustomerProfileOvPayTokenResponse: type: object properties: validContents: type: boolean amountExclTax: type: number taxPercentage: type: number amountInclTax: type: number contents: type: array items: type: object properties: ovPayTokenId: type: number serviceReferenceId: type: string ovpasNumber: type: string productId: type: number quantity: type: number amountExclTax: type: number taxPercentage: type: number amountInclTax: type: number startDate: type: string endDate: type: string isRenewable: type: boolean nextDebitDate: type: string termAmountExclTax: type: number termAmountInclTax: type: number additionalRemarks: type: array items: type: object properties: code: type: string parameter: type: string validationErrors: type: array items: type: object properties: detail: type: string pointer: type: string