411 lines
14 KiB
YAML
411 lines
14 KiB
YAML
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
|