diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index f141616..3c8d039 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -240,6 +240,16 @@ paths: "phoneTypeId": 2, "isPreferred": false } + ], + "devices": [ + { + "externalDeviceId": "123e4567-e89b-12d3-a456-426614174000", + "alias": "My iPhone", + }, + { + "externalDeviceId": "987e6543-e21b-12d3-a456-426614174999", + "alias": "My iPad", + } ] } } @@ -327,6 +337,18 @@ paths: "phoneTypeId": 2, "isPreferred": false } + ], + "devices": [ + { + "deviceId": "813afdd8-bf8c-4e26-bfda-4da79552bd38", + "externalDeviceId": "123e4567-e89b-12d3-a456-426614174000", + "alias": "My iPhone", + }, + { + "deviceId": "4f4249a2-ac6c-44f9-b740-66e66b6f3c28", + "externalDeviceId": "987e6543-e21b-12d3-a456-426614174999", + "alias": "My iPad", + } ] } } @@ -3293,6 +3315,89 @@ paths: }, ], } + /customers/devices: + post: + summary: Add a new device to a customer profile. + description: Add a new device to a customer profile. + tags: + - Devices + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Add a new device: + value: + { + "externalDeviceId": "dee7d80e-9288-4508-a3ed-c067e619179f", + "alias": "My iPhone 13", + } + responses: + "201": + description: Created + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + New device added to customer profile: + value: + { + "deviceId": "0f0981bf-6d60-4b06-bc55-de1ba325f366", + "externalDeviceId": "dee7d80e-9288-4508-a3ed-c067e619179f", + "alias": "My iPhone 13", + } + /customers/devices/{deviceId}: + parameters: + - name: deviceId + in: path + required: true + style: simple + description: Id of the device to be deleted. + schema: + type: string + format: uuid + example: 0f0981bf-6d60-4b06-bc55-de1ba325f366 + patch: + summary: Update alias of a device in a customer profile. + description: Update alias of a device in a customer profile. + tags: + - Devices + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Update alias of a device: + value: + { + "alias": "My old iPhone 13", + } + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Device alias updated in customer profile: + value: + { + "deviceId": "0f0981bf-6d60-4b06-bc55-de1ba325f366", + "externalDeviceId": "dee7d80e-9288-4508-a3ed-c067e619179f", + "alias": "My old iPhone 13", + } + delete: + summary: Delete a device from a customer profile. + description: Delete a device from a customer profile. + tags: + - Devices + responses: + "200": + description: OK components: schemas: unavailable: @@ -3471,27 +3576,6 @@ components: country: type: string example: NL - _links: - type: object - properties: - self: - type: object - properties: - href: - type: string - example: https://api.integratielaag.nl/abt/touchpoint/1.0/customers/addresses/1 - method: - type: string - example: GET - delete_address: - type: object - properties: - href: - type: string - example: https://api.integratielaag.nl/abt/touchpoint/1.0/customers/addresses/1 - method: - type: string - example: DELETE phones: type: array items: @@ -3518,24 +3602,49 @@ components: countryCode: type: string example: "0031" + devices: + type: array + items: + type: object + properties: + deviceId: + type: string + format: uuid + example: 1 + externalDeviceId: + type: string + format: uuid + example: dee7d80e-9288-4508-a3ed-c067e619179f + alias: + type: string + example: My iPhone 13 _links: type: object properties: - self: + add_device: type: object properties: href: type: string - example: https://api.integratielaag.nl/abt/touchpoint/1.0/customers/phones/1 + example: https://api.integratielaag.nl/abt/touchpoint/1.0/customers/devices method: type: string - example: GET - delete_phone: + example: POST + edit_device: type: object properties: href: type: string - example: https://api.integratielaag.nl/abt/touchpoint/1.0/customers/phones/1 + example: https://api.integratielaag.nl/abt/touchpoint/1.0/customers/devices/1 + method: + type: string + example: PATCH + delete_device: + type: object + properties: + href: + type: string + example: https://api.integratielaag.nl/abt/touchpoint/1.0/customers/devices/1 method: type: string example: DELETE @@ -3551,16 +3660,6 @@ components: method: type: string example: GET - create_customer_status: - type: object - description: ONLY ALLOWED FOR SMP - Create a new customer status - properties: - href: - type: string - example: https://api.integratielaag.nl/abt/touchpoint/1.0/customers/statuses - method: - type: string - example: POST partial_edit: type: object properties: diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 322d118..98d3e2e 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -139,7 +139,7 @@ paths: schema: type: string example: "0123456789" - - name: ovChipcardAlias + - name: ovChipCardAlias in: query schema: type: string @@ -278,7 +278,14 @@ paths: phoneTypeId: 2 name: Work isPreferred: false - ovChipcards: + devices: + - deviceId: "5bedce29-af0c-4f3c-b182-2caa8a1f9377" + externalDeviceId: "c5545584-04af-4c60-a955-d6a70baab848" + alias: "iPhone prive" + - deviceId: "d7683e89-b2ad-4e79-85b3-dbb42aad0325" + externalDeviceId: "7122a988-a00a-417d-a5b4-da2d91354976" + alias: "iPhone zakelijk" + ovChipCards: - ovChipCardId: 1 chipCardNumber: "1234123412341234" validUntil: "2023-01-01" @@ -404,7 +411,14 @@ paths: phoneTypeId: 2 name: Work isPreferred: false - ovChipcards: + devices: + - deviceId: "5bedce29-af0c-4f3c-b182-2caa8a1f9377" + externalDeviceId: "c5545584-04af-4c60-a955-d6a70baab848" + alias: "iPhone prive" + - deviceId: "d7683e89-b2ad-4e79-85b3-dbb42aad0325" + externalDeviceId: "7122a988-a00a-417d-a5b4-da2d91354976" + alias: "iPhone zakelijk" + ovChipCards: - ovChipCardId: 1 chipCardNumber: "1234123412341234" validUntil: "2023-01-01" @@ -543,7 +557,14 @@ paths: phoneTypeId: 2 name: Work isPreferred: false - ovChipcards: + devices: + - deviceId: "5bedce29-af0c-4f3c-b182-2caa8a1f9377" + externalDeviceId: "c5545584-04af-4c60-a955-d6a70baab848" + alias: "iPhone prive" + - deviceId: "d7683e89-b2ad-4e79-85b3-dbb42aad0325" + externalDeviceId: "7122a988-a00a-417d-a5b4-da2d91354976" + alias: "iPhone zakelijk" + ovChipCards: - ovChipCardId: 1 chipCardNumber: "1234123412341234" validUntil: "2023-01-01" @@ -677,7 +698,14 @@ paths: phoneTypeId: 2 name: Work isPreferred: false - ovChipcards: + devices: + - deviceId: "5bedce29-af0c-4f3c-b182-2caa8a1f9377" + externalDeviceId: "c5545584-04af-4c60-a955-d6a70baab848" + alias: "iPhone prive" + - deviceId: "d7683e89-b2ad-4e79-85b3-dbb42aad0325" + externalDeviceId: "7122a988-a00a-417d-a5b4-da2d91354976" + alias: "iPhone zakelijk" + ovChipCards: - ovChipCardId: 1 chipCardNumber: "1234123412341234" validUntil: "2023-01-01" @@ -823,6 +851,11 @@ paths: countryCode: "+31" phoneTypeId: 2 isPreferred: false + devices: + - externalDeviceId: "c5545584-04af-4c60-a955-d6a70baab848" + alias: "iPhone prive" + - externalDeviceId: "7122a988-a00a-417d-a5b4-da2d91354976" + alias: "iPhone zakelijk" required: true responses: 201: @@ -1027,7 +1060,7 @@ paths: /customers/{customerProfileId}/addresses: post: tags: - - Customer address + - Addresses summary: Add a customer address description: >- @@ -1069,7 +1102,7 @@ paths: /addresses/{addressId}: patch: tags: - - Customer address + - Addresses summary: Edit a customer address description: >- @@ -1109,7 +1142,7 @@ paths: x-throttling-tier: Unlimited delete: tags: - - Customer address + - Addresses summary: Delete a customer address description: >- @@ -1132,8 +1165,8 @@ paths: /customers/{customerProfileId}/phones: post: tags: - - Customer phoneNumber - summary: Add a customer phonenumber + - Phones + summary: Add a customer phone description: >- parameters: @@ -1151,7 +1184,7 @@ paths: examples: customerPhone: value: - phone: + customerPhone: number: "0701112233" countryCode: "0031" phoneTypeId: 1 @@ -1171,8 +1204,8 @@ paths: /phones/{phoneId}: patch: tags: - - Customer phoneNumber - summary: Edit a customer phonenumber + - Phones + summary: Edit a customer phone description: >- parameters: @@ -1213,7 +1246,7 @@ paths: x-throttling-tier: Unlimited delete: tags: - - Customer phoneNumber + - Phones summary: Delete a customer phone description: >- @@ -1233,12 +1266,209 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited + /devices: + get: + tags: + - Devices + summary: Find devices. + description: Find devices. + parameters: + - in: query + name: deviceId + schema: + type: string + format: uuid + example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + required: false + description: The id of the device. + - in: query + name: customerProfileId + schema: + type: integer + example: 1 + required: false + description: The id of the customer profile. + - in: query + name: externalDeviceId + schema: + type: string + format: uuid + example: c5545584-04af-4c60-a955-d6a70baab848 + required: false + description: The external id of the device. + - in: query + name: alias + schema: + type: string + example: iPhone prive + required: false + description: The alias of the device. + - name: sort + in: query + schema: + type: string + - name: offset + in: query + schema: + type: integer + - name: limit + in: query + schema: + type: integer + example: 20 + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/getDevicesResponse" + example: + { + "devices": + [ + { + "customerProfileId": 1, + "deviceId": "5bedce29-af0c-4f3c-b182-2caa8a1f9377", + "externalDeviceId": "c5545584-04af-4c60-a955-d6a70baab848", + "alias": "iPhone prive", + }, + { + "customerProfileId": 1, + "deviceId": "d7683e89-b2ad-4e79-85b3-dbb42aad0325", + "externalDeviceId": "7122a988-a00a-417d-a5b4-da2d91354976", + "alias": "iPhone zakelijk", + } + ], + "_links": + { + "self": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/devices?offset=20", + "method": "GET", + }, + "prev": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/devices", + "method": "GET", + }, + "next": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/devices?offset=40", + "method": "GET", + }, + }, + } + /customers/{customerProfileId}/devices: + post: + tags: + - Devices + summary: Add a customer device + description: >- + + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/postCustomerDevice" + examples: + customerDevice: + value: + device: + externalDeviceId: "c5545584-04af-4c60-a955-d6a70baab848" + alias: "iPhone prive" + required: true + responses: + 201: + description: Successfully created a customer device + content: + application/json: + schema: + $ref: "#/components/schemas/getDevices" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /devices/{deviceId}: + patch: + tags: + - Devices + summary: Edit a customer device + description: >- + + parameters: + - name: deviceId + in: path + required: true + schema: + type: string + format: uuid + example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/patchCustomerDevice" + examples: + updateDevice: + value: + device: + alias: "iPhone zakelijk" + required: true + responses: + 200: + description: Successfully modified a customer device + content: + application/json: + schema: + $ref: "#/components/schemas/getDevices" + examples: + updateDeviceResponse: + value: + deviceId: "5bedce29-af0c-4f3c-b182-2caa8a1f9377" + externalDeviceId: "7122a988-a00a-417d-a5b4-da2d91354976" + alias: "iPhone zakelijk" + + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + delete: + tags: + - Devices + summary: Delete a customer device + description: >- + + parameters: + - name: deviceId + in: path + required: true + schema: + type: string + format: uuid + example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + responses: + 200: + description: Successfully deleted a customer device + content: + application/json: {} + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /ovpaytokens: get: tags: - - Ovpay Token - summary: Find ovpay tokens. - description: Find ovpay tokens. + - OVpay Tokens + summary: Find OVpay tokens. + description: Find OVpay tokens. parameters: - in: query name: ovPayTokenId @@ -1389,8 +1619,8 @@ paths: /customers/{customerProfileId}/ovpaytokens: post: tags: - - Ovpay Token - summary: Create a new ovpay token + - OVpay Tokens + summary: Create a new OVpay token description: >- parameters: @@ -1408,7 +1638,7 @@ paths: examples: EMV token: value: - ovpaytoken: + ovPayToken: tokenTypeId: 1 xTat: 0115b0df-db38-4702-8811-6f7de00db3ac xBot: 71a88843-32b8-4d52-ac25-de2458c47775 @@ -1417,7 +1647,7 @@ paths: expirationDate: "2026-04-20T17:05:52.000+02:00" OVpas token physical: value: - ovpaytoken: + ovPayToken: tokenTypeId: 2 xTat: 0115b0df-db38-4702-8811-6f7de00db3ac xBot: 71a88843-32b8-4d52-ac25-de2458c47775 @@ -1428,7 +1658,7 @@ paths: required: true responses: 201: - description: Successfully created a customer ovpaytoken + description: Successfully created a customer ovPayToken content: application/json: schema: @@ -1437,15 +1667,15 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - /ovpaytokens/{ovpaytokenId}: + /ovpaytokens/{ovPayTokenId}: patch: tags: - - Ovpay Token - summary: Update an ovpay token + - OVpay Tokens + summary: Update an OVpay token description: >- parameters: - - name: ovpaytokenId + - name: ovPayTokenId in: path required: true schema: @@ -1459,28 +1689,28 @@ paths: examples: updateFullToken: value: - ovpaytoken: + ovPayToken: alias: "ING pas mobiel" tokenStatusId: 1 replacedByTokenId: 8 - lastdigits: 4563 + lastDigits: 4563 updateTokenAlias: value: - ovpaytoken: + ovPayToken: alias: "ING pas mobiel" updateTokenStatus to removed: value: - ovpaytoken: + ovPayToken: tokenStatusId: 6 replaceToken: value: - ovpaytoken: + ovPayToken: tokenStatusId: 3 replacedByTokenId: 8 required: true responses: 200: - description: Successfully updated a customer ovpaytoken + description: Successfully updated a customer ovPayToken content: application/json: schema: @@ -1491,12 +1721,12 @@ paths: x-throttling-tier: Unlimited delete: tags: - - Ovpay Token - summary: Delete an ovpay token + - OVpay Tokens + summary: Delete an OVpay token description: >- parameters: - - name: ovpaytokenId + - name: ovPayTokenId in: path required: true schema: @@ -1504,7 +1734,7 @@ paths: example: 2 responses: 200: - description: Successfully deleted a customer ovpaytoken + description: Successfully deleted a customer ovPayToken content: application/json: {} security: @@ -1514,8 +1744,8 @@ paths: /customers/{customerProfileId}/ovchipcards: post: tags: - - Ovchipcard - summary: Create a new ovchipcard + - OV Chipcards + summary: Create a new OV chipcard description: >- parameters: @@ -1529,18 +1759,18 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ovChipcardEntity" + $ref: "#/components/schemas/ovChipCardEntity" examples: - ovChipcards: + ovChipCards: value: - ovChipcard: - chipCardNumber: "1234123412341234" + ovChipCard: + chipcardNumber: "1234123412341234" validUntil: "2027-01-01" alias: Mijn chipkaart required: true responses: 201: - description: Successfully created a customer ovchipcard + description: Successfully created a customer ovChipCard content: application/json: schema: @@ -1549,11 +1779,11 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - /ovchipcards/{ovchipcardId}: + /ovchipcards/{ovChipCardId}: patch: tags: - - Ovchipcard - summary: Update an ovchipcard + - OV Chipcards + summary: Update an OV chipcard description: >- parameters: @@ -1567,7 +1797,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ovChipcardEntity" + $ref: "#/components/schemas/ovChipCardEntity" examples: updateOvChipCardAlias: value: @@ -1576,7 +1806,7 @@ paths: required: true responses: 200: - description: Successfully updated a customer ovchipcard + description: Successfully updated a customer ovChipCard content: application/json: schema: @@ -1587,8 +1817,8 @@ paths: x-throttling-tier: Unlimited delete: tags: - - Ovchipcard - summary: Delete an ovchipcard + - OV Chipcards + summary: Delete an OV chipcard description: >- parameters: @@ -2179,6 +2409,10 @@ components: type: array items: $ref: "#/components/schemas/getPhones" + devices: + type: array + items: + $ref: "#/components/schemas/getDevices" getAddresses: type: object properties: @@ -2225,6 +2459,21 @@ components: type: integer name: type: string + getDevices: + type: object + properties: + deviceId: + type: string + format: uuid + externalDeviceId: + type: string + format: uuid + alias: + type: string + required: + - deviceId + - externalDeviceId + - alias getCustomerPreference: type: object properties: @@ -2267,7 +2516,7 @@ components: $ref: "#/components/schemas/getCustomerStatusInstance" person: $ref: "#/components/schemas/getPerson" - ovChipcards: + ovChipCards: type: array items: $ref: "#/components/schemas/getOvChipcards" @@ -2329,6 +2578,17 @@ components: type: integer isPreferred: type: boolean + devicePostEntity: + required: + - externalDeviceId + - alias + type: object + properties: + externalDeviceId: + type: string + format: uuid + alias: + type: string defaultCustomerProfileResponse: type: object properties: @@ -2352,6 +2612,10 @@ components: type: array items: $ref: "#/components/schemas/postPhoneEntity" + devices: + type: array + items: + $ref: "#/components/schemas/devicePostEntity" postCustomerAddress: type: object properties: @@ -2538,7 +2802,7 @@ components: type: string replacedByTokenId: type: integer - ovChipcardEntity: + ovChipCardEntity: type: object properties: ovChipCardId: @@ -2578,6 +2842,38 @@ components: ovPayTokenId: type: integer example: 1 + getDevicesResponse: + type: object + properties: + devices: + type: array + items: + $ref: "#/components/schemas/getDeviceEntity" + getDeviceEntity: + type: object + properties: + deviceId: + type: string + format: uuid + customerProfileId: + type: integer + externalDeviceId: + type: string + format: uuid + alias: + type: string + required: + - deviceId + - customerProfileId + - externalDeviceId + - alias + postCustomerDevice: + $ref: "#/components/schemas/devicePostEntity" + patchCustomerDevice: + type: object + properties: + alias: + type: string ErrorResponse: type: object properties: diff --git a/src/openapi/customers/notifications-crud.yaml b/src/openapi/customers/notifications-crud.yaml new file mode 100644 index 0000000..8c54ff7 --- /dev/null +++ b/src/openapi/customers/notifications-crud.yaml @@ -0,0 +1,1237 @@ +openapi: '3.0.3' +info: + title: ABT Notifications CRUD APIs + version: '1.0' + description: CRUD APIs for ABT Notification tables. These are NOT the functional APIs from Service Engine. +servers: + - url: https://services.acc.api.htm.nl/abt/notifications/1.0 +paths: + /notificationsubscriptions: + get: + summary: Find one or more notification subscriptions + tags: + - Notification Subscriptions + parameters: + - name: notificationSubscriptionId + in: query + required: false + schema: + type: string + format: uuid + description: Filter by notification subscription ID + - name: eventTypeChannelId + in: query + required: false + schema: + type: string + format: uuid + description: Filter by event type channel ID + - name: eventTypeId + in: query + required: false + schema: + type: array + items: + type: integer + explode: false + description: Filter by event type IDs + - name: eventOriginId + in: query + required: false + schema: + type: array + items: + type: integer + description: Filter by event origin IDs + - name: channelId + in: query + required: false + schema: + type: array + items: + type: integer + description: Filter by channel IDs + - name: customerProfileId + in: query + required: false + schema: + type: integer + description: Filter by customer profile ID + - name: ovpayTokenId + in: query + required: false + schema: + type: integer + description: Filter by OVPay token ID + - name: deviceId + in: query + required: false + schema: + type: string + format: uuid + description: Filter by device ID + - name: createdAfter + in: query + required: false + schema: + type: string + format: date-time + description: Filter by creation date (after) + - name: createdBefore + in: query + required: false + schema: + type: string + format: date-time + description: Filter by creation date (before) + - name: updatedAfter + in: query + required: false + schema: + type: string + format: date-time + description: Filter by update date (after) + - name: updatedBefore + in: query + required: false + schema: + type: string + format: date-time + description: Filter by update date (before) + - name: isActive + in: query + required: false + schema: + type: boolean + description: Filter by active status + responses: + '200': + description: A list of notification subscriptions + content: + application/json: + schema: + $ref: '#/components/schemas/GetNotificationSubscriptionsResponse' + examples: + emptyNotificationSubscriptionResponse: + value: + notificationSubscriptions: [] + href: null + minimalNotificationSubscriptionResponse: + value: + notificationSubscriptions: + - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + eventTypeChannel: + eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + customerProfileId: null + ovpayTokenId: null + deviceId: null + createdAt: '2025-10-01T12:00:00Z' + createdBy: system + updatedAt: null + updatedBy: null + isActive: true + _links: + edit: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: PATCH + delete: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: DELETE + - notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + eventTypeChannel: + eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 + eventType: + eventTypeId: 16 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKI + prettyName: Checkin gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + createdAt: '2025-09-15T08:30:00Z' + createdBy: system + isActive: false + _links: + edit: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: PATCH + delete: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: DELETE + href: null + fullNotificationSubscriptionResponse: + value: + notificationSubscriptions: + - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + eventTypeChannel: + eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + customerProfileId: 1337 + ovpayTokenId: 42 + deviceId: 7122a988-a00a-417d-a5b4-da2d91354976 + createdAt: '2025-10-01T12:00:00Z' + createdBy: system + updatedAt: '2025-10-02T12:00:00Z' + updatedBy: user + isActive: true + _links: + edit: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: PATCH + delete: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: DELETE + - notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + eventTypeChannel: + eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 + eventType: + eventTypeId: 16 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKI + prettyName: Checkin gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + customerProfileId: 1338 + ovpayTokenId: 43 + deviceId: c4b8e1f3-8f4e-4d2a-9f3e-1c2b3a4d5e6f + createdAt: '2025-09-15T08:30:00Z' + createdBy: system + updatedAt: '2025-09-16T09:45:00Z' + updatedBy: user + isActive: false + _links: + edit: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: PATCH + delete: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: DELETE + href: null + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + post: + summary: Create a new notification subscription + tags: + - Notification Subscriptions + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PostNotificationSubscriptionRequest' + examples: + minimalNotificationSubscriptionRequest: + value: + eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + createdAt: '2025-10-01T12:00:00Z' + createdBy: system + isActive: true + fullNotificationSubscriptionRequest: + value: + eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + customerProfileId: 1337 + ovpayTokenId: 42 + deviceId: 7122a988-a00a-417d-a5b4-da2d91354976 + createdAt: '2025-10-01T12:00:00Z' + createdBy: system + isActive: true + responses: + '201': + description: Notification subscription created successfully + content: + application/json: + schema: + $ref: '#/components/schemas/PostNotificationSubscriptionResponse' + examples: + minimalNotificationSubscriptionResponse: + value: + notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + eventTypeChannel: + eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + createdAt: '2025-10-01T12:00:00Z' + createdBy: system + isActive: true + fullNotificationSubscriptionResponse: + value: + notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + eventTypeChannel: + eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + customerProfileId: 1337 + ovpayTokenId: 42 + deviceId: 7122a988-a00a-417d-a5b4-da2d91354976 + createdAt: '2025-10-01T12:00:00Z' + createdBy: system + isActive: true + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /notificationsubscriptions/{notificationSubscriptionId}: + patch: + summary: Update a notification subscription by ID + tags: + - Notification Subscriptions + parameters: + - name: notificationSubscriptionId + in: path + required: true + schema: + type: string + format: uuid + example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PatchNotificationSubscriptionRequest' + examples: + notificationSubscriptionRequest: + value: + updatedAt: '2025-10-01T12:00:00Z' + updatedBy: user + isActive: false + responses: + '200': + description: Notification subscription updated successfully + content: + application/json: + schema: + $ref: '#/components/schemas/PatchNotificationSubscriptionResponse' + examples: + minimalNotificationSubscriptionResponse: + value: + notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + eventTypeChannel: + eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + createdAt: '2025-10-01T12:00:00Z' + createdBy: system + updatedAt: '2025-10-02T12:00:00Z' + updatedBy: user + isActive: false + fullNotificationSubscriptionResponse: + value: + notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + eventTypeChannel: + eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + customerProfileId: 1337 + ovpayTokenId: 42 + deviceId: 7122a988-a00a-417d-a5b4-da2d91354976 + createdAt: '2025-10-01T12:00:00Z' + createdBy: system + updatedAt: '2025-10-02T12:00:00Z' + updatedBy: user + isActive: false + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + delete: + summary: Delete a notification subscription by ID + tags: + - Notification Subscriptions + parameters: + - name: notificationSubscriptionId + in: path + required: true + schema: + type: string + format: uuid + example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + responses: + '204': + description: No content + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /eventorigins: + get: + summary: Get all event origins + tags: + - References + responses: + '200': + description: A list of event origins + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventOriginsResponse' + examples: + eventOriginsResponse: + value: + eventOrigins: + - eventOriginId: 1 + name: GBO + description: Events originated at GBO + - eventOriginId: 2 + name: Website + description: Events originated at the website + - eventOriginId: 3 + name: Payt + description: Events originated at Payt + - eventOriginId: 4 + name: Twikey + description: Events originated at Twikey + - eventOriginId: 5 + name: TapConnect + description: Events originated at TapConnect + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /channels: + get: + summary: Get all channels + tags: + - References + responses: + '200': + description: A list of channels + content: + application/json: + schema: + $ref: '#/components/schemas/GetChannelsResponse' + examples: + channelsResponse: + value: + channels: + - channelId: 1 + name: push + - channelId: 2 + name: email + - channelId: 3 + name: sms + - channelId: 4 + name: mail + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /notificationcategories: + get: + summary: Get all notification categories + tags: + - References + responses: + '200': + description: A list of notification categories + content: + application/json: + schema: + $ref: '#/components/schemas/GetNotificationCategoriesResponse' + examples: + notificationCategoriesResponse: + value: + notificationCategories: + - notifcationCategoryId: 1 + name: Mijn Reizen + - notifcationCategoryId: 2 + name: Mijn Passen + - notifcationCategoryId: 3 + name: Service Alerts + - notifcationCategoryId: 4 + name: Service Berichten + - notifcationCategoryId: 5 + name: Mijn Betalingen + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /eventtypes: + get: + summary: Get all event types + tags: + - References + responses: + '200': + description: A list of event types + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventTypesResponse' + examples: + eventTypesResponse: + value: + eventTypes: + - eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + - eventTypeId: 16 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKI + prettyName: Checkin gemist + optInRequired: true + - eventTypeId: 25 + eventOrigin: + eventOriginId: 3 + name: Payt + description: Events originated at Payt + name: Payment + subname: Failed Payment + prettyName: Betaling mislukt + optInRequired: false + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /eventtypecategories: + get: + summary: Get all event type categories + tags: + - References + responses: + '200': + description: A list of event type categories + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventTypeCategoriesResponse' + examples: + eventTypeCategoriesResponse: + value: + eventTypeCategories: + - eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + notificationCategory: + notifcationCategoryId: 1 + name: Mijn Reizen + - eventType: + eventTypeId: 16 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKI + prettyName: Checkin gemist + optInRequired: true + notificationCategory: + notifcationCategoryId: 1 + name: Mijn Reizen + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' + /eventtypechannels: + get: + summary: Get all event type channels + tags: + - References + responses: + '200': + description: A list of event type channels + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventTypeChannelResponse' + examples: + eventTypeChannelsResponse: + value: + eventTypeChannels: + - eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + - eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 + eventType: + eventTypeId: 16 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKI + prettyName: Checkin gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + '400': + description: Bad request + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/401Response' + '404': + description: Not found + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/404Response' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/500Response' +components: + schemas: + GetNotificationSubscriptionsResponse: + type: object + properties: + notificationSubscriptions: + type: array + items: + $ref: '#/components/schemas/NotificationSubscription' + href: + type: string + required: + - notificationSubscriptions + - href + NotificationSubscription: + type: object + properties: + notificationSubscriptionId: + type: string + format: uuid + example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + eventTypeChannel: + $ref: '#/components/schemas/EventTypeChannel' + customerProfileId: + type: integer + example: 1337 + ovpayTokenId: + type: integer + example: 42 + deviceId: + type: string + format: uuid + example: 7122a988-a00a-417d-a5b4-da2d91354976 + createdAt: + type: string + format: date-time + example: '2025-10-01T12:00:00Z' + createdBy: + type: string + example: system + updatedAt: + type: string + format: date-time + example: '2025-10-02T12:00:00Z' + updatedBy: + type: string + example: user + isActive: + type: boolean + example: true + required: + - notificationSubscriptionId + - eventTypeChannel + - createdAt + - createdBy + - isActive + PostNotificationSubscriptionRequest: + type: object + properties: + eventTypeChannelId: + type: string + format: uuid + example: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + customerProfileId: + type: integer + example: 1337 + ovpayTokenId: + type: integer + example: 42 + deviceId: + type: string + format: uuid + example: 7122a988-a00a-417d-a5b4-da2d91354976 + createdAt: + type: string + format: date-time + example: '2025-10-01T12:00:00Z' + createdBy: + type: string + example: system + isActive: + type: boolean + example: true + required: + - eventTypeChannelId + - createdAt + - createdBy + PostNotificationSubscriptionResponse: + $ref: '#/components/schemas/NotificationSubscription' + PatchNotificationSubscriptionRequest: + type: object + properties: + updatedAt: + type: string + format: date-time + example: '2025-10-01T12:00:00Z' + updatedBy: + type: string + example: user + isActive: + type: boolean + example: false + PatchNotificationSubscriptionResponse: + $ref: '#/components/schemas/NotificationSubscription' + GetEventOriginsResponse: + type: object + properties: + eventOrigins: + type: array + items: + $ref: '#/components/schemas/EventOrigin' + GetChannelsResponse: + type: object + properties: + channels: + type: array + items: + $ref: '#/components/schemas/Channel' + GetNotificationCategoriesResponse: + type: object + properties: + notificationCategories: + type: array + items: + $ref: '#/components/schemas/NotificationCategory' + GetEventTypesResponse: + type: object + properties: + eventTypes: + type: array + items: + $ref: '#/components/schemas/EventType' + GetEventTypeCategoriesResponse: + type: object + properties: + eventTypeCategories: + type: array + items: + type: object + properties: + eventType: + $ref: '#/components/schemas/EventType' + notificationCategory: + $ref: '#/components/schemas/NotificationCategory' + GetEventTypeChannelResponse: + type: object + properties: + eventTypeChannels: + type: array + items: + $ref: '#/components/schemas/EventTypeChannel' + EventTypeChannel: + type: object + properties: + eventTypeChannelId: + type: string + format: uuid + example: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + $ref: '#/components/schemas/EventType' + channel: + $ref: '#/components/schemas/Channel' + isDefault: + type: boolean + example: true + isMandatory: + type: boolean + example: false + required: + - eventTypeChannelId + - eventType + - channel + - isDefault + - isMandatory + EventType: + type: object + properties: + eventTypeId: + type: integer + example: 15 + eventOrigin: + $ref: '#/components/schemas/EventOrigin' + name: + type: string + example: Travel + subname: + type: string + example: Missing CKO + prettyName: + type: string + example: Checkout gemist + optInRequired: + type: boolean + example: true + required: + - eventTypeId + - eventOrigin + - name + - prettyName + - optInRequired + EventOrigin: + type: object + properties: + eventOriginId: + type: integer + example: 1 + name: + type: string + example: GBO + description: + type: string + example: Events originated at GBO + required: + - eventOriginId + - name + Channel: + type: object + properties: + channelId: + type: integer + example: 1 + name: + type: string + example: push + required: + - channelId + - name + NotificationCategory: + type: object + properties: + notifcationCategoryId: + type: integer + example: 1 + name: + type: string + example: Mijn Reizen + required: + - notifcationCategoryId + - name + 400Response: + type: object + properties: + code: + type: string + example: '400' + type: + type: string + message: + type: string + example: Bad Request + description: + type: string + example: >- + 'Bad Request: Input parameters missing! Please fill in at least 1 + valid input parameter. + 401Response: + type: object + properties: + code: + type: string + example: '401' + type: + type: string + message: + type: string + example: Invalid Credentials + description: + type: string + example: >- + Invalid Credentials. Make sure you have provided the correct + security credentials + 404Response: + type: object + properties: + code: + type: string + example: '404' + type: + type: string + example: Status report + message: + type: string + example: Not Found + description: + type: string + example: The requested resource is not available. + 500Response: + type: object + properties: + code: + type: string + example: '500' + type: + type: string + message: + type: string + example: Internal Server Error + description: + type: string + securitySchemes: + default: + type: oauth2 + flows: + implicit: + authorizationUrl: https://services.acc.api.htm.nl/authorize + scopes: {} \ No newline at end of file diff --git a/src/openapi/fiko/fiko-crud.yaml b/src/openapi/fiko/fiko-crud.yaml index 81c5de9..c4309bf 100644 --- a/src/openapi/fiko/fiko-crud.yaml +++ b/src/openapi/fiko/fiko-crud.yaml @@ -657,8 +657,8 @@ paths: status: failed description: Validation XYZ failed. correlationId: null - ? List containing multiple transaction audit trails of one transaction item - : summary: List containing multiple audit trails of one transaction item + List containing multiple transaction audit trails of one transaction item: + summary: List containing multiple audit trails of one transaction item description: List containing multiple audit trail records of one transaction item (with id `d667d293-aa82-4c9e-9b10-77cffc9058a1`). value: "@odata.context": "$metadata#TransactionAuditTrail" @@ -703,8 +703,8 @@ paths: status: created description: Transaction created. correlationId: null - ? List containing multiple audit trails of different failed transactions - : summary: List containing multiple audit trails of different failed transactions + List containing multiple audit trails of different failed transactions: + summary: List containing multiple audit trails of different failed transactions description: List containing multiple audit trails of different failed transactions (status = failed). value: "@odata.context": "$metadata#TransactionAuditTrail" @@ -2979,6 +2979,164 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited + /transactionitems/reject: + post: + summary: Reject transaction items to source in bulk. + description: Reject transaction items to source in bulk. + tags: + - Bulk processing v2.2 + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionItemsBulkRequestBody" + examples: + List of transaction item ids to reject: + summary: List of transaction item ids to reject to source + description: List of transaction item ids to reject to source. + value: + transactionItemIds: + - afce35b2-1dff-4ace-98d0-4b9ac405c87d + - b1c4f8e7-3f4e-4d2a-9c6e-2f5e6d7c8b9a + - c2d5e6f7-4g5h-5i6j-0k1l-3m4n5o6p7q8r + responses: + "202": + description: Accepted + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionItemsPostResponseBody" + examples: + Array of transaction items accepted: + summary: Array of transaction item ids accepted + description: | + The array of transaction item ids was accepted successfully. + The transaction items will be processed asynchronously. + In the response body the consumer will find information on how to retrieve the processing status. + value: + startTime: 2025-02-14T05:32:47.0672237Z + status: Running + clientTrackingId: 08584620957189579629541919368CU00 + callbackurl: https://api.integratielaag.nl/transactionitems/reject/responsestatus/runtime/webhooks/workflow/scaleUnits/prod-00/workflows/6fd466916c + retryAfter: 10 + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /transactionitems/responsestatus/reject/{clientTrackingId}: + get: + tags: + - Bulk processing v2.2 + summary: Get the status of the transaction item bulk reject. + description: Get the status of the asynchronous transaction item bulk reject. + parameters: + - in: path + name: clientTrackingId + schema: + type: string + required: true + description: The clientTrackingId of the transaction item bulk reject. + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionItemsRejectResponseStatusGetResponseBody" + examples: + Batch successfully processed: + summary: Batch successfully processed + description: | + Body of a batch of transaction items that was successfully rejected. + A number of transaction items were rejected. + value: + summary: + rejected: 15 + total: 15 + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /transactionitems/return: + post: + summary: Return transaction items to trx db in bulk. + description: Return transaction items to trx db in bulk. + tags: + - Bulk processing v2.2 + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionItemsBulkRequestBody" + examples: + List of transaction item ids to reject: + summary: List of transaction item ids to return to trx db + description: List of transaction item ids to return to trx db. + value: + transactionItemIds: + - afce35b2-1dff-4ace-98d0-4b9ac405c87d + - b1c4f8e7-3f4e-4d2a-9c6e-2f5e6d7c8b9a + - c2d5e6f7-4g5h-5i6j-0k1l-3m4n5o6p7q8r + responses: + "202": + description: Accepted + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionItemsPostResponseBody" + examples: + Array of transaction items accepted: + summary: Array of transaction item ids accepted + description: | + The array of transaction item ids was accepted successfully. + The transaction items will be processed asynchronously. + In the response body the consumer will find information on how to retrieve the processing status. + value: + startTime: 2025-02-14T05:32:47.0672237Z + status: Running + clientTrackingId: 08584620957189579629541919368CU00 + callbackurl: https://api.integratielaag.nl/transactionitems/return/responsestatus/runtime/webhooks/workflow/scaleUnits/prod-00/workflows/6fd466916c + retryAfter: 10 + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /transactionitems/responsestatus/return/{clientTrackingId}: + get: + tags: + - Bulk processing v2.2 + summary: Get the status of the transaction item bulk return. + description: Get the status of the asynchronous transaction item bulk return. + parameters: + - in: path + name: clientTrackingId + schema: + type: string + required: true + description: The clientTrackingId of the transaction item bulk return. + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionItemsReturnResponseStatusGetResponseBody" + examples: + Batch successfully processed: + summary: Batch successfully processed + description: | + Body of a batch of transaction items that was successfully returned to trx db. + A number of transaction items were returned to trx db. + value: + summary: + returned: 15 + total: 15 + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited components: securitySchemes: default: @@ -4801,6 +4959,51 @@ components: transactionLineId: type: string example: fee907dd-e59d-44f5-a63b-bbdec38f79b7 + TransactionItemsBulkRequestBody: + type: object + properties: + transactionItemIds: + type: array + items: + type: string + format: uuid + example: 1ad109d3-fd7d-4b6f-872b-220d492f385f + required: + - transactionItemIds + TransactionItemsRejectResponseStatusGetResponseBody: + type: object + properties: + summary: + type: object + properties: + rejected: + type: integer + example: 3 + total: + type: integer + example: 3 + required: + - rejected + - total + required: + - summary + TransactionItemsReturnResponseStatusGetResponseBody: + type: object + properties: + summary: + type: object + properties: + returned: + type: integer + example: 3 + total: + type: integer + example: 3 + required: + - returned + - total + required: + - summary rfc9457: type: object properties: