551 lines
18 KiB
YAML
551 lines
18 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/v2
|
|
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",
|
|
"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:
|
|
"201":
|
|
description: Created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example:
|
|
{
|
|
"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 v2
|
|
summary: Fulfill an order.
|
|
description: Fulfill an order.
|
|
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
|
|
example: a0ef57fa-395c-4a03-96e9-234c26dccea9
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example:
|
|
{
|
|
"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",
|
|
},
|
|
],
|
|
},
|
|
}
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example:
|
|
{
|
|
"orderId": "a0ef57fa-395c-4a03-96e9-234c26dccea9",
|
|
"orderNumber": "123456",
|
|
}
|
|
/orders/:
|
|
post:
|
|
tags:
|
|
- Order Creation v2 (RFU)
|
|
summary: Create a new order.
|
|
description: Create a new order.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example: null
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
/orders/{uuid}:
|
|
patch:
|
|
tags:
|
|
- Order Creation v2 (RFU)
|
|
summary: Update an existing orderline.
|
|
description: Update an existing orderline.
|
|
parameters:
|
|
- name: uuid
|
|
in: path
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
example: a0ef57fa-395c-4a03-96e9-234c26dccea9
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example: null
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/orderlines/{uuid}:
|
|
patch:
|
|
tags:
|
|
- Order Creation v2 (RFU)
|
|
summary: Update an existing order.
|
|
description: Update an existing order.
|
|
parameters:
|
|
- name: uuid
|
|
in: path
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
example: a0ef57fa-395c-4a03-96e9-234c26dccea9
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example: null
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/orders/{uuid}/payments:
|
|
post:
|
|
tags:
|
|
- Order Creation v2 (RFU)
|
|
summary: Add a payment to an existing order.
|
|
description: Add a payment to an existing order.
|
|
parameters:
|
|
- name: uuid
|
|
in: path
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
example: a0ef57fa-395c-4a03-96e9-234c26dccea9
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example: null
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
/payments/{uuid}:
|
|
patch:
|
|
tags:
|
|
- Order Creation v2 (RFU)
|
|
summary: Update a payment on an existing order.
|
|
description: Update a payment on an existing order.
|
|
parameters:
|
|
- name: uuid
|
|
in: path
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
example: a0ef57fa-395c-4a03-96e9-234c26dccea9
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example: null
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/orders/{uuid}/customers:
|
|
post:
|
|
tags:
|
|
- Order Creation v2 (RFU)
|
|
summary: Add a customer to an existing order.
|
|
description: Add a customer to an existing order.
|
|
parameters:
|
|
- name: uuid
|
|
in: path
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
example: a0ef57fa-395c-4a03-96e9-234c26dccea9
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example: null
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
/customers/{uuid}:
|
|
patch:
|
|
tags:
|
|
- Order Creation v2 (RFU)
|
|
summary: Update a customer on an existing order.
|
|
description: Update a customer on an existing order.
|
|
parameters:
|
|
- name: uuid
|
|
in: path
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
example: a0ef57fa-395c-4a03-96e9-234c26dccea9
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example: null
|
|
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"
|