features/OVPAY2313-V2-swaggers-infoplaza #52

Merged
MirjamHTM merged 7 commits from features/OVPAY2313-V2-swaggers-infoplaza into develop 2026-02-05 10:01:02 +00:00
6 changed files with 1897 additions and 42 deletions
Showing only changes of commit 93efb6b8f7 - Show all commits

File diff suppressed because it is too large Load Diff

View File

@ -417,38 +417,56 @@ paths:
example: example:
Entries: Entries:
phoneTypes: phoneTypes:
- name: mobile - name: Mobiel
id: 1 id: 1
- name: fixed line - name: Thuis
id: 2 id: 2
- name: Ouders
id: 3
- name: Bewindvoerder
id: 4
- name: Home
id: 5
- name: Mobile
id: 6
- name: Work
id: 7
- name: Noodtelefoon
id: 8
addressTypes: addressTypes:
- name: home - name: Shipping
id: 1 id: 1
- name: office - name: Billing
id: 2 id: 2
customerStatuses: customerStatuses:
- name: active - name: Inactive
id: 1 id: 1
- name: blocked - name: Active
id: 2 id: 2
- name: inactive - name: Blocked
id: 3 id: 3
- name: new - name: Frozen
id: 4 id: 4
- name: Cleared
id: 5
tokenTypes: tokenTypes:
- name: Debit card - name: EMV
id: 1 id: 1
- name: Credit card
id: 2
- name: OVPas physical - name: OVPas physical
id: 3 id: 2
- name: OVPas digital - name: OVPas digital
id: 4 id: 3
directDebitMandateTypes: directDebitMandateTypes:
- name: Paper Contract - name: Paper Contract
id: 1 id: 1
- name: PIN transaction - name: PIN transaction
id: 2 id: 2
- name: SEPA eMandate
id: 3
- name: Digital signature
id: 4
- name: IDEAL transaction
id: 5
tokenStatuses: tokenStatuses:
- name: Expired - name: Expired
id: 1 id: 1

View File

@ -257,6 +257,7 @@ paths:
value: value:
notificationCategoryId: 1 notificationCategoryId: 1
customerProfileId: 1337 customerProfileId: 1337
ovPayTokenId: 42
subscriptionActivity: subscriptionActivity:
user: "1001337" user: "1001337"
timestamp: "2025-10-02T14:00:00Z" timestamp: "2025-10-02T14:00:00Z"
@ -666,6 +667,10 @@ paths:
schema: schema:
$ref: "#/components/schemas/GetNotificationCategoriesResponse" $ref: "#/components/schemas/GetNotificationCategoriesResponse"
examples: examples:
emptyNotificationCategoriesResponse:
summary: No notification categories found
value:
notificationCategories: []
getNotifactionCategories?expand=none: getNotifactionCategories?expand=none:
summary: Return all the notification categories without nested attributes (expand=none) summary: Return all the notification categories without nested attributes (expand=none)
value: value:
@ -1388,6 +1393,9 @@ components:
customerProfileId: customerProfileId:
type: integer type: integer
example: 1337 example: 1337
ovPayTokenId:
type: integer
example: 42
subscriptionActivity: subscriptionActivity:
type: object type: object
properties: properties:
@ -1418,14 +1426,9 @@ components:
PatchNotificationSubscriptionRequest: PatchNotificationSubscriptionRequest:
type: object type: object
properties: properties:
notificationCategoryId: ovPayTokenId:
type: integer type: integer
example: 1 example: 43
customerProfileId:
type: integer
example: 1337
required:
- notificationCategoryId
PatchNotificationSubscriptionResponse: PatchNotificationSubscriptionResponse:
type: object type: object
properties: properties:

View File

@ -324,7 +324,7 @@ paths:
{ {
"orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893", "orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893",
"addressType": "addressType":
{ "addressTypeId": 3, "name": "Billing" }, { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -635,7 +635,7 @@ paths:
{ {
"orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893", "orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893",
"addressType": "addressType":
{ "addressTypeId": 3, "name": "Billing" }, { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -1046,7 +1046,7 @@ paths:
"orderCustomerAddresses": "orderCustomerAddresses":
[ [
{ {
"addressTypeId": 3, "addressTypeId": 2,
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -2328,7 +2328,7 @@ paths:
{ {
"orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893", "orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893",
"addressType": "addressType":
{ "addressTypeId": 3, "name": "Billing" }, { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -2398,7 +2398,7 @@ paths:
$ref: "#/components/schemas/unavailable" $ref: "#/components/schemas/unavailable"
example: example:
{ {
"addressTypeId": 3, "addressTypeId": 2,
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -2448,7 +2448,7 @@ paths:
type: integer type: integer
explode: false explode: false
required: false required: false
description: Filter on possible types of addresses. 1 = Shipping, 3 = Billing. description: Filter on possible types of addresses. 1 = Shipping, 2 = Billing.
- in: query - in: query
name: street name: street
schema: schema:
@ -2504,7 +2504,7 @@ paths:
"orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893", "orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893",
"orderCustomerId": "540d8b7a-d626-443f-8f99-c24398604d7a", "orderCustomerId": "540d8b7a-d626-443f-8f99-c24398604d7a",
"orderId": "73cca95a-81d1-468f-a8bf-99b36367001a", "orderId": "73cca95a-81d1-468f-a8bf-99b36367001a",
"addressType": { "addressTypeId": 3, "name": "Billing" }, "addressType": { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",

View File

@ -1314,7 +1314,7 @@ paths:
{ {
"orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893", "orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893",
"addressType": "addressType":
{ "addressTypeId": 3, "name": "Billing" }, { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -3688,7 +3688,7 @@ paths:
{ {
"orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073",
"addressType": "addressType":
{ "addressTypeId": 3, "name": "Billing" }, { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -3965,7 +3965,7 @@ paths:
{ {
"orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073",
"addressTypeId": "addressTypeId":
{ "addressTypeId": 3, "name": "Billing" }, { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -4174,7 +4174,7 @@ paths:
{ {
"orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073",
"addressTypeId": "addressTypeId":
{ "addressTypeId": 3, "name": "Billing" }, { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -4226,7 +4226,7 @@ paths:
"orderCustomerAddresses": "orderCustomerAddresses":
[ [
{ {
"addressTypeId": 3, "addressTypeId": 2,
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -4433,7 +4433,7 @@ paths:
{ {
"orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073",
"addressType": "addressType":
{ "addressTypeId": 3, "name": "Billing" }, { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -4680,7 +4680,7 @@ paths:
{ {
"orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073",
"addressType": "addressType":
{ "addressTypeId": 3, "name": "Billing" }, { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -4724,7 +4724,7 @@ paths:
description: Add an address to a customer on an order description: Add an address to a customer on an order
value: value:
{ {
"addressTypeId": 3, "addressTypeId": 2,
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -4935,7 +4935,7 @@ paths:
{ {
"orderCustomerAddressId": "a0ef57fa-395c-4a03-96e9-234c26dccea9", "orderCustomerAddressId": "a0ef57fa-395c-4a03-96e9-234c26dccea9",
"addressType": "addressType":
{ "addressTypeId": 3, "name": "Billing" }, { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 10, "houseNumber": 10,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -4979,7 +4979,7 @@ paths:
description: Update order customer address description: Update order customer address
value: value:
{ {
"addressTypeId": 3, "addressTypeId": 2,
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 101, "houseNumber": 101,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",
@ -5190,7 +5190,7 @@ paths:
{ {
"orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073", "orderCustomerAddressId": "94270188-4cf6-447e-bd49-e8186bcec073",
"addressType": "addressType":
{ "addressTypeId": 3, "name": "Billing" }, { "addressTypeId": 2, "name": "Billing" },
"street": "Kon. Julianaplein", "street": "Kon. Julianaplein",
"houseNumber": 101, "houseNumber": 101,
"houseNumberSuffix": "a", "houseNumberSuffix": "a",

View File

@ -0,0 +1,211 @@
openapi: 3.0.1
info:
title: Service Engine APIs for HTM vouchers
description: Service Engine APIs for HTM vouchers. These are NOT the CRUD APIs to the data hub.
version: "1.0"
servers:
- url: https://services.acc.api.htm.nl/abt/abtvouchers/1.0
paths:
/issuedvouchers/{voucherCode}:
get:
summary: Get voucher details by voucher code
description: Retrieve voucher details using its unique voucher code.
parameters:
- name: voucherCode
in: path
required: true
description: The unique code of the voucher details to retrieve.
schema:
type: string
tags:
- Vouchers
responses:
"200":
description: Successful retrieval of voucher instance
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
examples:
Voucher for a product with required attributes:
summary: Voucher for a single product with required attributes
value:
{
"issuedVoucher":
{
"issuedVoucherId": "d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90",
"voucherCode": "VOUCHER123",
"fromInclusive": "2024-10-04T00:00:00.000",
"untilInclusive": "2024-11-04T00:00:00.000",
"voucherStatus":
{ "voucherStatusId": 1, "name": "New" },
"product":
{
"productId": 263,
"productName": "HTM-80001",
"productDescription": "10 euro korting op Regiovrij maand.",
"productCategory":
{
"productCategoryId": 9,
"isTravelProduct": false,
"name": "Voucher",
},
"amountInclTax": -1000,
"requiredProducts":
[
{
"productId": 126,
"productName": "HTM-30001",
"productDescription": "Reis met 20% korting op je betaalpas bij HTM.",
"_links":
{
"get_details":
{
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/products/126",
"method": "GET",
},
},
},
],
"_links":
{
"get_details":
{
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/products/263",
"method": "GET",
},
},
},
"mandatoryCustomerDataItems":
[
{
"mandatoryCustomerDataItemId": 8,
"customerDataItem": "padBirthDate",
},
{
"mandatoryCustomerDataItemId": 4,
"customerDataItem": "emailAddress",
},
],
},
}
Voucher for a whole order:
summary: Voucher for a whole order
value:
{
"issuedVoucher":
{
"issuedVoucherId": "d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90",
"voucherCode": "VOUCHER123",
"fromInclusive": "2024-10-04T00:00:00.000",
"untilInclusive": "2024-11-04T00:00:00.000",
"voucherStatus":
{ "voucherStatusId": 1, "name": "New" },
"product":
{
"productId": 263,
"productName": "HTM-80002",
"productDescription": "10 euro korting op je gehele winkelmand.",
"productCategory":
{
"productCategoryId": 9,
"isTravelProduct": false,
"name": "Voucher",
},
"amountInclTax": -1000,
"requiredProducts": [],
"_links":
{
"get_details":
{
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/products/263",
"method": "GET",
},
},
},
},
"mandatoryCustomerDataItems": [],
}
"403":
description: Forbidden
content:
application/problem+json:
schema:
$ref: "#/components/schemas/rfc9457"
examples:
Access denied due to insufficient permissions:
summary: Access denied due to insufficient permissions
value:
{
"type": "https://example.com/probs/forbidden",
"title": "Access denied",
"detail": "You do not have permission to access this resource.",
"instance": "/issuedvouchers/VOUCHER123",
}
"404":
description: Not found
content:
application/problem+json:
schema:
$ref: "#/components/schemas/rfc9457"
examples:
Voucher not found:
summary: Voucher not found
value:
{
"type": "https://example.com/probs/not-found",
"title": "Voucher not found",
"detail": "The voucher with code VOUCHER123 does not exist.",
"instance": "/issuedvouchers/VOUCHER123",
}
"500":
description: Internal server error
content:
application/problem+json:
schema:
$ref: "#/components/schemas/rfc9457"
examples:
Unexpected server error:
summary: Unexpected server error
value:
{
"type": "https://example.com/probs/internal-server-error",
"title": "Internal Server Error",
"detail": "An unexpected error occurred while processing your request.",
"instance": "/issuedvouchers/VOUCHER123",
}
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