From 1f04619ff7e632d056f6a1c2084f05cd20e7147c Mon Sep 17 00:00:00 2001 From: Herald Date: Wed, 18 Dec 2024 16:04:37 +0100 Subject: [PATCH 01/30] added current state of customers CRUD as on WSO2 atm --- src/openapi/customers/customers-crud-v2.yaml | 2900 +++++++++++++++++- 1 file changed, 2898 insertions(+), 2 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 72ef1eb..e3e2650 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -3,9 +3,2124 @@ info: title: ABT Customers CRUD APIs v2 version: "1.0" description: CRUD APIs for ABT Customer database. These are NOT the functional APIs from Service Engine. -servers: - - url: https://api.integratielaag.nl/v1 +servers: + - url: https://api.integratielaag.nl/v2 paths: + /customers/list: + get: + tags: + - ABTCustomers + summary: Search for customer profile list + description: >- + search for a customer profile list in the ABT database with query + parameters + parameters: + - name: customerProfileId + in: query + required: false + style: form + explode: true + schema: + type: number + - name: customerNumber + in: query + required: false + style: form + explode: true + schema: + type: number + - name: emailAddress + in: query + required: false + style: form + explode: true + schema: + type: string + - name: chipCardNumber + in: query + required: false + style: form + explode: true + schema: + type: string + - name: ovPasNumber + in: query + required: false + style: form + explode: true + schema: + type: string + - name: phoneNumber + in: query + required: false + style: form + explode: true + schema: + type: string + - name: phoneCountryCode + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressStreet + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressHouseNumber + in: query + required: false + style: form + explode: true + schema: + type: number + - name: addressHouseNumberSuffix + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressPostalCode + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressCity + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressCountry + in: query + required: false + style: form + explode: true + schema: + type: string + - name: birthname + in: query + required: false + style: form + explode: true + schema: + type: string + - name: surname + in: query + required: false + style: form + explode: true + schema: + type: string + - name: dateOfBirth + in: query + required: false + style: form + explode: true + schema: + type: string + - name: customerStatus + in: query + required: false + style: form + explode: true + schema: + type: string + responses: + '200': + description: Successful retrieved a customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/getCustomerProfileList' + examples: + fullCustomerProfile: + value: + Entries: + - customerProfileId: 1 + customerNumber: 1000001 + debtorNumber: TEST001 + debtorStateId: 1 + vascustomerNumber: CST005 + customerPreference: + languageId: 1 + customerStatus: + - name: active + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: '2022-08-05 15:01:00.000' + - name: blocked + fromInclusive: '2022-08-05 15:01:00.000' + toInclusive: null + person: + birthname: Pieter + surname: De valen + prefix: dhr + suffix: De + dateOfBirth: '2002-10-29' + emailAddress: TEST@HTM.NL + address: + - addressId: 1 + street: mystreet + houseNumber: 1 + houseNumberSuffix: null + postalCode: 0000AA + city: Den Haag + country: NL + isPreferred: true + addressType: Office + - addressId: 2 + street: mystreet 33 + houseNumber: 1 + houseNumberSuffix: null + postalCode: 4455CA + city: Den BOSCH + country: NL + isPreferred: true + addressType: Office + phone: + - phoneId: 1 + number: '3112345678' + countryCode: NL + phoneType: TestNaam + isPreferred: true + - phoneId: 2 + number: '333225588' + countryCode: ES + phoneType: TestNaam + isPreferred: false + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + - customerNumber: 1000002 + debtorNumber: TEST001 + debtorStateId: 1 + vascustomerNumber: CST005 + customerPreference: + languageId: 1 + customerStatus: + - name: active + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: '2022-08-05 15:01:00.000' + - name: blocked + fromInclusive: '2022-08-05 15:01:00.000' + toInclusive: null + person: + birthname: Pieter + surname: De valen + prefix: dhr + suffix: De + dateOfBirth: '2002-10-29' + emailAddress: TEST@HTM.NL + address: + - addressId: 1 + street: mystreet + houseNumber: 1 + houseNumberSuffix: null + postalCode: 0000AA + city: Den Haag + country: NL + isPreferred: true + addressType: Office + - addressId: 2 + street: mystreet 33 + houseNumber: 1 + houseNumberSuffix: null + postalCode: 4455CA + city: Den BOSCH + country: NL + isPreferred: true + addressType: Office + phone: + - phoneId: 1 + number: '3112345678' + countryCode: NL + phoneType: TestNaam + isPreferred: true + - phoneId: 2 + number: '333225588' + countryCode: ES + phoneType: TestNaam + isPreferred: false + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + href: null + minimumCustomerProfile: + value: + Entries: + - customerNumber: 1000008 + debtorNumber: null + debtorStateId: null + vascustomerNumber: null + customerPreference: + languageId: null + customerStatus: + - name: active + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: null + person: + birthname: null + surname: null + prefix: null + suffix: null + dateOfBirth: null + emailAddress: TEST@TEST1.NL + address: [] + phone: [] + ovChipCard: [] + ovPayToken: [] + audit: [] + missingPersonDetailsCustomerProfile: + value: + Entries: + - emailAddress: TEST04@HTM.NL + customerNumber: 1000005 + debtorNumber: TEST004 + debtorStateId: 1 + vascustomerNumber: CST005 + customerPreference: + languageId: 1 + customerStatus: + - name: inactive + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: null + person: + birthname: Sophie + surname: Haardenburg + prefix: Mw + suffix: null + dateOfBirth: 1955-09-05+01:00 + emailAddress: TEST@TEST1.NL + address: [] + phone: [] + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers: + get: + tags: + - ABTCustomers + summary: Search for customer profile + description: 'search for a customer profile in the ABT database with query parameters ' + parameters: + - name: customerProfileId + in: query + required: false + style: form + explode: true + schema: + type: number + - name: customerNumber + in: query + required: false + style: form + explode: true + schema: + type: number + - name: emailAddress + in: query + required: false + style: form + explode: true + schema: + type: string + - name: chipCardNumber + in: query + required: false + style: form + explode: true + schema: + type: string + - name: ovPasNumber + in: query + required: false + style: form + explode: true + schema: + type: string + - name: phoneNumber + in: query + required: false + style: form + explode: true + schema: + type: string + - name: phoneCountryCode + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressStreet + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressHouseNumber + in: query + required: false + style: form + explode: true + schema: + type: number + - name: addressHouseNumberSuffix + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressPostalCode + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressCity + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressCountry + in: query + required: false + style: form + explode: true + schema: + type: string + - name: birthname + in: query + required: false + style: form + explode: true + schema: + type: string + - name: surname + in: query + required: false + style: form + explode: true + schema: + type: string + - name: dateOfBirth + in: query + required: false + style: form + explode: true + schema: + type: string + - name: customerStatus + in: query + required: false + style: form + explode: true + schema: + type: string + responses: + '200': + description: Successful retrieved a customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/getCustomerProfile' + examples: + fullCustomerProfile: + value: + customerProfileId: 1 + customerNumber: 1000001 + debtorNumber: TEST001 + vascustomerNumber: CST005 + debtorStateId: 1 + customerPreference: + languageId: 1 + customerStatus: + - name: active + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: '2022-08-05 15:01:00.000' + - name: blocked + fromInclusive: '2022-08-05 15:01:00.000' + toInclusive: null + person: + birthname: Pieter + surname: De valen + prefix: dhr + suffix: De + dateOfBirth: '2002-10-29' + emailAddress: TEST@HTM.NL + address: + - addressId: 1 + street: mystreet + houseNumber: 1 + houseNumberSuffix: null + postalCode: 0000AA + city: Den Haag + country: NL + isPreferred: true + addressType: Office + - addressId: 2 + street: mystreet 33 + houseNumber: 1 + houseNumberSuffix: null + postalCode: 4455CA + city: Den BOSCH + country: NL + isPreferred: true + addressType: Office + phone: + - phoneId: 1 + number: '3112345678' + countryCode: NL + phoneType: TestNaam + isPreferred: true + - phoneId: 2 + number: '333225588' + countryCode: ES + phoneType: TestNaam + isPreferred: false + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + minimumCustomerProfile: + value: + customerNumber: 1000008 + debtorNumber: null + debtorStateId: null + vascustomerNumber: null + customerPreference: + languageId: 1 + customerStatus: + - name: active + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: null + person: + birthname: null + surname: null + prefix: null + suffix: null + dateOfBirth: null + emailAddress: TEST@TEST1.NL + address: [] + phone: [] + ovChipCard: [] + ovPayToken: [] + audit: [] + missingPersonDetailsCustomerProfile: + value: + emailAddress: TEST04@HTM.NL + customerNumber: 1000005 + debtorNumber: TEST004 + debtorStateId: 1 + vascustomerNumber: CST008 + customerPreference: + languageId: 1 + customerStatus: + - name: inactive + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: null + person: + birthname: Sophie + surname: Haardenburg + prefix: Mw + suffix: null + dateOfBirth: '1955-09-05' + emailAddress: TEST@TEST1.NL + address: [] + phone: [] + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + post: + tags: + - ABTCustomers + summary: Create a customer profile + description: >- + Create a customer profile in the ABT database with status ACTIVE and + debtorStatus Inactive with a start date based on the timestamp of this + post call. + + - Requested format for postal code: + - 0000AA + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfile' + examples: + minimumProfile: + value: {} + basicCustomerProfile: + value: + debtorStatusId: 2 + person: + birthname: Jan + surname: Jansen + emailAddress: j.jansen@hatseflats.nl + fullCustomerProfile: + value: + customerPreference: + languageId: 1 + debtorStatusId: 2 + person: + birthname: Jan + surname: Jansen + prefix: dhr + suffix: jr + dateOfBirth: '1970-01-01' + emailAddress: j.jansen@hatseflats.nl + addresses: + - street: Laan van Meerdervoort + houseNumber: 5 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: true + addressTypeId: 1 + - street: Beeklaan + houseNumber: 30 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: false + addressTypeId: 2 + phones: + - number: '6123456789' + countryCode: '0031' + phoneTypeId: 1 + isPreferred: true + - number: '7012345678' + countryCode: '0031' + phoneTypeId: 2 + isPreferred: false + required: true + responses: + '201': + description: Successful created a customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfileCustomerNumberResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidPostalCodeFormatForAddressCountryNLError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter for country validation (NL). + description: >- + ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match + input string \"2500 AA\ + MissingRequiredParameterError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + object has missing required properties + ([\"addressTypeId\"]) + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"id\ + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/409Response' + examples: + emailAddressAlreadyPresent: + value: + code: '409' + type: Conflict + message: emailAddress already exists. + description: '' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/customerpreferences: + patch: + tags: + - ABTCustomers + summary: Modify customer preference elements + description: Modify customer preference fields + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchCustomerPreferences' + examples: + PatchCustomerPreferences: + value: + customerPreference: + languageId: 2 + responses: + '202': + description: Successful modified the customer preferences + content: + application/json: + schema: + $ref: '#/components/schemas/patchCustomerPreferencesResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"languageId\ + InvalidReferenceIdError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request: Update Or Delete failed as conflicted with + foreign Key constraint 'languageId' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}: + patch: + tags: + - ABTCustomers + summary: Modify customer profile elements + description: Modify customer profile fields + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchCustomerProfile' + examples: + PatchCustomerProfile: + value: + debtorStatusId: 2 + responses: + '202': + description: Successful modified the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/patchCustomerProfileResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"debtorStatusId\ + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/ovchipcards: + post: + tags: + - ABTCustomers + summary: Create a new OV chipcard for a customerProfile. + description: Create a new OV chipcard in the database for a given customer. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postOvChipCard' + examples: + postNewOvChipCard: + value: + ovChipCard: + chipCardNumber: 1234123412341234 + validUntil: '2024-01-01' + alias: alias + responses: + '201': + description: Successful created an OV chipcard + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfileOvChipCardResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + chipCardNumberInvalidTooSmall: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + numeric instance is lower than the required minimum + (minimum: 1000000000000000, found: 999999999999999) + chipCardNumberInvalidTooLarge: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + numeric instance is greater than the required maximum + (maximum: 9999999999999999, found: 10000000000000000) + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/ovchipcards/{ovChipCardId}: + delete: + tags: + - ABTCustomers + summary: Delete a OV chipcard for a customerProfile. + description: Delete a OV chipcard in the database for a given customer. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: ovChipCardId + in: path + required: true + style: simple + explode: false + schema: + type: integer + responses: + '202': + description: Deleted record successfully + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/ovpaytokens: + get: + tags: + - ABTCustomers + summary: Get a OV paytoken for a customerProfile. + description: Get a new OV paytoken in the database for a given customer. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: ovPayTokenId + in: query + required: false + style: form + explode: false + schema: + type: integer + - name: xbot + in: query + required: false + style: form + explode: false + schema: + type: string + - name: xtat + in: query + required: false + style: form + explode: false + schema: + type: string + - name: ovPasNumber + in: query + required: false + style: form + explode: false + schema: + type: string + responses: + '200': + description: Successfully retrieved an OVPay token + content: + application/json: + schema: + $ref: '#/components/schemas/getCustomerProfileOvPayTokenResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + post: + tags: + - ABTCustomers + summary: Create a new OV paytoken for a customerProfile. + description: Create a new OV paytoken in the database for a given customer. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postOvPayToken' + examples: + postNewOvPayTokenCard: + value: + ovPayToken: + tokenTypeId: 2 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 2 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + responses: + '201': + description: Successful created an OVPay token + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfileOvPayTokenResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/statuses: + post: + tags: + - ABTCustomers + summary: Create a new customer status for a customerProfile. + description: >- + Create a new customer status for a customerProfile. The call will do the + following in the given order: a new status will be created with + fromInclusive equal to the time of the call. ToInclusive in the old, now + historic, status will also be set equal to the time of the call, deeming + it 'not currently active'. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerStatus' + examples: + postNewStatus: + value: + customerStatus: + name: blocked + responses: + '201': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/defaultCustomerProfileResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '422': + description: Unprocessable entity + content: + application/json: + schema: + $ref: '#/components/schemas/422Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/persons: + patch: + tags: + - ABTCustomers + summary: Partial update customer person details + description: Partial update a customer person details in the ABT database + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchPerson' + examples: + updatePerson: + value: + person: + birthname: Jan + surname: Jansen + prefix: dhr + suffix: jr + dateOfBirth: '1970-01-01' + emailAddress: TEST@TEST1.NL + updatePersonBirthname: + value: + person: + birthname: Jan + updatePersonSurname: + value: + person: + surname: Jansen + updatePersonPrefix: + value: + person: + prefix: dhr + updatePersonSuffix: + value: + person: + suffix: jr + updatePersonDateOfBirth: + value: + person: + dateOfBirth: '1970-01-01' + updatePersonEmailAddress: + value: + person: + emailAddress: TEST@TEST1.NL + responses: + '202': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/defaultCustomerProfileResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/ovpaytokens/{ovPayTokenId}: + delete: + tags: + - ABTCustomers + summary: Delete a OV PayToken for a customerProfile. + description: Delete a OV PayToken in the database for a given customer. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: ovPayTokenId + in: path + required: true + style: simple + explode: false + schema: + type: integer + responses: + '202': + description: Deleted record successfully + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + patch: + tags: + - ABTCustomers + summary: Partial update customer ovpaytokens + description: Partial update of a customer ovpaytokens in the ABT database + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: ovPayTokenId + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchOvPayToken' + examples: + updateOvPayTokens: + value: + ovPayToken: + tokenTypeId: 2 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 2 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + updateOvPayTokenTypeId: + value: + ovPayToken: + tokenTypeId: 2 + updateOvPayTokenXTat: + value: + ovPayToken: + xTat: twioq73033 + updateOvPayTokenXBot: + value: + ovPayToken: + xBot: hjihwqui27 + updateOvPayTokenAlias: + value: + ovPayToken: + alias: alias + updateOvPayTokenLastDigits: + value: + ovPayToken: + lastDigits: '5678' + updateOvPayTokenOvpasNumber: + value: + ovPayToken: + ovpasNumber: OV34567 + updateOvPayTokenStatusId: + value: + ovPayToken: + tokenStatusId: 1 + updateOvPayTokenExpirationDate: + value: + ovPayToken: + expirationDate: '2025-04-20T17:05:52.000+02:00' + updateOvPayTokenReplacedByTokenId: + value: + ovPayToken: + replacedByTokenId: 1 + responses: + '202': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/defaultCustomerProfileResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/addresses: + post: + tags: + - ABTCustomers + summary: Create a single customer address + description: Create a single customer address in the ABT database + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postAddress' + examples: + addFullAddress: + value: + address: + street: Laan van Meerdervoort + houseNumber: 5 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: true + addressTypeId: 1 + addMinimumAddress: + value: + address: + street: Laan van Meerdervoort + houseNumber: 5 + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: true + addressTypeId: 1 + responses: + '201': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfileAddressResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidPostalCodeFormatForAddressCountryNLError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter for country validation (NL). + description: >- + ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match + input string \"2500 AA\ + MissingRequiredParameterError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + object has missing required properties + ([\"addressTypeId\"]) + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"id\ + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/phones: + post: + tags: + - ABTCustomers + summary: Create a single customer phonenumber + description: Create a single customer phonenumber in the ABT database + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postPhone' + examples: + addPhone: + value: + phone: + number: '06123456789' + countryCode: '0031' + phoneTypeId: 1 + isPreferred: true + responses: + '201': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfilePhoneResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/addresses/{addressId}: + delete: + tags: + - ABTCustomers + summary: Delete a customer address + description: Delete a customer address from the ABT database + parameters: + - name: addressId + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + responses: + '202': + description: Deleted record successfully + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + patch: + tags: + - ABTCustomers + summary: Partial update customer addresses + description: Partial update a customer address in the ABT database + parameters: + - name: addressId + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchAddress' + examples: + updateAddress: + value: + address: + street: Laan van Meerdervoort + houseNumber: 5 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + addressTypeId: 2 + isPreferred: true + updateStreet: + value: + address: + street: Nieuwe Parklaan + updateHouseNumber: + value: + address: + houseNumber: 10 + updateHouseNumberSuffix: + value: + address: + houseNumberSuffix: C + updatePostalCode: + value: + address: + postalCode: 2597LG + updateCity: + value: + address: + city: Amsterdam + updateCountry: + value: + address: + country: UK + updateAddressTypeId: + value: + address: + addressTypeId: 3 + updateIsPreferred: + value: + address: + isPreferred: false + responses: + '202': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/addressPatchOKResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidPostalCodeFormatForAddressCountryNLError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter for country validation (NL). + description: >- + ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match + input string \"2500 AA\ + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"id\ + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/409Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/phones/{phoneId}: + delete: + tags: + - ABTCustomers + summary: Delete a customer phone + description: Delete a customer phone from the ABT database + parameters: + - name: phoneId + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + responses: + '202': + description: Deleted record successfully + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + patch: + tags: + - ABTCustomers + summary: Partial update customer phones + description: Partial update a customer phone in the ABT database + parameters: + - name: phoneId + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchPhone' + examples: + updatePhone: + value: + phone: + number: '06123456789' + countryCode: '0031' + phoneTypeId: 2 + isPreferred: true + updatePhoneNumber: + value: + phone: + number: '06987654321' + updateCountryCode: + value: + phone: + countryCode: '0044' + updatePhoneTypeId: + value: + phone: + phoneTypeId: 2 + updateisPreferred: + value: + phone: + isPreferred: true + responses: + '202': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/phonePatchOKResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/409Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /ovpaytokens: get: tags: @@ -250,6 +2365,12 @@ paths: ] components: securitySchemes: + default: + type: oauth2 + flows: + implicit: + authorizationUrl: https://services.acc.api.htm.nl/authorize + scopes: {} bearerToken: type: http scheme: bearer @@ -283,3 +2404,778 @@ components: example: - /account/12345 - /account/67890 + audit: + type: object + properties: + auditTrailId: + type: integer + customerProfileId: + type: integer + action: + type: string + user: + type: string + timestamp: + type: string + format: datetime + correlationId: + type: string + ovPayToken: + type: object + properties: + ovPayTokenId: + type: integer + tokenTypeId: + type: integer + xTat: + type: string + xBot: + type: string + alias: + type: string + lastDigits: + type: integer + ovpasNumber: + type: string + tokenStatusId: + type: integer + expirationDate: + type: string + replacedByTokenId: + type: integer + getOvChipCard: + type: object + properties: + ovChipCardId: + type: integer + chipCardNumber: + type: integer + validUntil: + type: string + format: date + alias: + type: string + getCustomerStatus: + type: object + properties: + name: + type: string + fromInclusive: + type: string + format: date + toInclusive: + type: string + format: date + getPerson: + type: object + properties: + birthname: + type: string + surname: + type: string + prefix: + type: string + suffix: + type: string + dateOfBirth: + type: string + format: date + emailAddress: + type: string + format: email + address: + type: array + items: + $ref: '#/components/schemas/getAddress' + phone: + type: array + items: + $ref: '#/components/schemas/getPhone' + getAddress: + type: object + properties: + addressId: + type: integer + street: + type: string + houseNumber: + type: integer + houseNumberSuffix: + type: string + postalCode: + type: string + city: + type: string + country: + type: string + isPreferred: + type: boolean + addressType: + type: string + getPhone: + type: object + properties: + phoneId: + type: integer + number: + type: string + countryCode: + type: string + phoneType: + type: string + isPreferred: + type: boolean + getCustomerPreference: + type: object + properties: + languageId: + type: integer + getCustomerProfileList: + type: object + properties: + Entries: + type: array + items: + $ref: '#/components/schemas/getCustomerProfile' + getCustomerProfile: + type: object + properties: + customerNumber: + type: integer + debtorNumber: + type: integer + debtorStateId: + type: integer + vascustomerNumber: + type: integer + customerPreference: + $ref: '#/components/schemas/getCustomerPreference' + customerStatus: + type: array + items: + $ref: '#/components/schemas/getCustomerStatus' + person: + $ref: '#/components/schemas/getPerson' + ovChipCard: + type: array + items: + $ref: '#/components/schemas/getOvChipCard' + ovPayToken: + type: array + items: + $ref: '#/components/schemas/ovPayToken' + audit: + type: array + items: + $ref: '#/components/schemas/audit' + directDebitMandatePostEntity: + required: + - billingInformationId + - created + - directDebitMandateTypeName + - mandateAddressId + - mandateReference + type: object + properties: + directDebitMandateTypeName: + type: string + billingInformationId: + type: integer + mandateAddressId: + type: integer + created: + type: string + mandateReference: + type: string + directDebitMandatePost: + type: object + properties: + directDebitMandate: + $ref: '#/components/schemas/directDebitMandatePostEntity' + directDebitMandatePatchEntity: + type: object + properties: + directDebitMandateTypeName: + type: string + billingInformationId: + type: integer + mandateAddressId: + type: integer + mandateReference: + type: string + mandateState: + type: string + enum: + - SIGNED + - CANCELLED + - PREPARED + directDebitMandatePatch: + type: object + properties: + directDebitMandate: + $ref: '#/components/schemas/directDebitMandatePatchEntity' + directDebitMandateGETEntity: + type: object + properties: + directDebitMandateId: + type: integer + directDebitMandateTypeId: + type: integer + billingInformationId: + type: integer + mandateAddressId: + type: integer + created: + type: string + mandateReference: + type: string + mandateState: + type: string + updateTimestamp: + type: string + billingInformationGETEntity: + required: + - alias + - ascription + - bic + - billingAddressId + - billingInformationId + - iban + - issuerCountry + - swift + type: object + properties: + billingInformationId: + type: integer + issuerCountry: + type: string + iban: + type: string + bic: + type: string + swift: + type: string + ascription: + type: string + alias: + type: string + billingAddressId: + type: integer + billingInformationPostEntity: + required: + - alias + - ascription + - billingAddressId + - iban + - issuerCountry + type: object + properties: + issuerCountry: + type: string + iban: + type: string + bic: + type: string + swift: + type: string + ascription: + type: string + alias: + type: string + billingAddressId: + type: integer + billingInformationPost: + type: object + properties: + billingInformation: + $ref: '#/components/schemas/billingInformationPostEntity' + billingInformationPatchEntity: + type: object + properties: + issuerCountry: + type: string + iban: + type: string + bic: + type: string + swift: + type: string + ascription: + type: string + alias: + type: string + billingAddressId: + type: integer + billingInformationPatch: + type: object + properties: + billingInformation: + $ref: '#/components/schemas/billingInformationPatchEntity' + getCustomerProfileFinancials: + type: object + properties: + customerNumber: + type: integer + billingInformation: + type: array + items: + $ref: '#/components/schemas/billingInformationGETEntity' + directDebitMandate: + type: array + items: + $ref: '#/components/schemas/directDebitMandateGETEntity' + customerPreferencesEntity: + type: object + properties: + languageId: + type: string + postCustomerProfile: + type: object + properties: + debtorStatusId: + type: integer + customerPreference: + $ref: '#/components/schemas/customerPreferencesEntity' + person: + $ref: '#/components/schemas/personEntity' + addresses: + type: array + items: + $ref: '#/components/schemas/addressPostEntity' + phones: + type: array + items: + $ref: '#/components/schemas/phonePostEntity' + postCustomerStatusEntity: + type: object + properties: + name: + type: string + postCustomerStatus: + type: object + properties: + customerStatus: + $ref: '#/components/schemas/postCustomerStatusEntity' + postOvChipCardEntity: + required: + - chipCardNumber + type: object + properties: + chipCardNumber: + type: integer + validUntil: + type: string + format: date + alias: + type: string + patchCustomerProfile: + type: object + properties: + debtorStatusId: + type: integer + patchCustomerPreferencesEntity: + type: object + properties: + languageId: + type: string + patchCustomerPreferences: + type: object + properties: + customerPreference: + $ref: '#/components/schemas/patchCustomerPreferencesEntity' + postOvChipCard: + type: object + properties: + ovChipCard: + $ref: '#/components/schemas/postOvChipCardEntity' + postOvPayToken: + required: + - alias + - lastDigits + - tokenTypeId + - xBot + - xTat + type: object + properties: + ovPayToken: + type: object + properties: + tokenTypeId: + type: string + xTat: + type: string + xBot: + type: string + alias: + type: string + lastDigits: + type: integer + ovpasNumber: + type: string + tokenStatusId: + type: integer + expirationDate: + type: string + replacedByTokenId: + type: integer + ovPayTokenEntity: + type: object + properties: + tokenTypeId: + type: string + xTat: + type: string + xBot: + type: string + alias: + type: string + lastDigits: + type: integer + ovpasNumber: + type: string + tokenStatusId: + type: integer + expirationDate: + type: string + replacedByTokenId: + type: integer + patchOvPayToken: + type: object + properties: + ovPayToken: + $ref: '#/components/schemas/ovPayTokenEntity' + patchPerson: + type: object + properties: + person: + $ref: '#/components/schemas/personEntity' + patchAddress: + type: object + properties: + address: + $ref: '#/components/schemas/addressPatchEntity' + patchPhone: + type: object + properties: + phone: + $ref: '#/components/schemas/phonePatchEntity' + postAddress: + type: object + properties: + address: + $ref: '#/components/schemas/addressPostEntity' + postPhone: + type: object + properties: + phone: + $ref: '#/components/schemas/phonePostEntity' + personEntity: + type: object + properties: + birthname: + type: string + surname: + type: string + prefix: + type: string + suffix: + type: string + dateOfBirth: + type: string + format: date + emailAddress: + type: string + addressPostEntity: + required: + - addressTypeId + - city + - country + - houseNumber + - postalCode + - street + type: object + properties: + street: + type: string + houseNumber: + type: integer + houseNumberSuffix: + type: string + postalCode: + type: string + city: + type: string + country: + type: string + isPreferred: + type: boolean + addressTypeId: + type: integer + addressPatchEntity: + type: object + properties: + street: + type: string + houseNumber: + type: integer + houseNumberSuffix: + type: string + postalCode: + type: string + city: + type: string + country: + type: string + addressTypeId: + type: integer + isPreferred: + type: boolean + phonePostEntity: + required: + - countryCode + - number + - phoneTypeId + type: object + properties: + number: + type: string + countryCode: + type: string + phoneTypeId: + type: integer + isPreferred: + type: boolean + phonePatchEntity: + type: object + properties: + number: + type: string + countryCode: + type: string + phoneTypeId: + type: integer + isPreferred: + type: boolean + defaultCustomerProfileResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + phonePatchOKResponse: + type: object + properties: + id: + type: integer + example: 1 + addressPatchOKResponse: + type: object + properties: + id: + type: integer + example: 1 + postCustomerProfileCustomerNumberResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + postCustomerProfileAddressResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + addressId: + type: integer + example: 1 + postCustomerProfilePhoneResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + phoneId: + type: integer + example: 1 + postCustomerProfileBillingInformationResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + billingInformationId: + type: integer + example: 1 + postCustomerProfileDirectDebitMandateResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + directDebitMandateId: + type: integer + example: 1 + postCustomerProfileOvChipCardResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + ovChipCardId: + type: integer + example: 1 + patchCustomerProfileResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + patchCustomerPreferencesResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + ovPayTokenGetEntity: + type: object + properties: + ovPayTokenId: + type: integer + example: 1 + tokenTypeId: + type: integer + example: 1 + xTat: + type: string + example: 0044831b-8e80c-4f82-r989a-8d85ee1996 + xBot: + type: string + example: 0044831b-8e80c-4f82-r989a-8d85ee1996 + lastDigits: + type: string + example: '0001' + ovpasNumber: + type: integer + example: 1 + alias: + type: string + example: alias + tokenStatusId: + type: integer + expirationDate: + type: string + replacedByTokenId: + type: integer + getCustomerProfileOvPayTokenResponse: + type: object + properties: + ovPayToken: + type: array + items: + $ref: '#/components/schemas/ovPayTokenGetEntity' + postCustomerProfileOvPayTokenResponse: + type: object + properties: + ovPaytoken: + type: object + example: 10000001 + ovPayTokenId: + type: integer + example: 1 + patchCustomerProfileCustomerNumberResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + 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: '900901' + 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. + 409Response: + type: object + properties: + code: + type: string + example: '409' + type: + type: string + example: Conflict + message: + type: string + example: Entry already exists + description: + type: string + 422Response: + type: object + properties: + code: + type: string + example: '422' + type: + type: string + example: Unprocessable entity + message: + type: string + example: >- + Forbidden state transition requested! From Active to Cleared not + allowed. + description: + type: string + 500Response: + type: object + properties: + code: + type: string + example: '500' + type: + type: string + message: + type: string + example: Internal Server Error + description: + type: string \ No newline at end of file From 6526db8a1de8412ee16b5dd22fad012531912f69 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Wed, 18 Dec 2024 21:28:12 +0100 Subject: [PATCH 02/30] updated get customer list + get customer to include all query params and correct ref objects in response --- src/openapi/customers/customers-crud-v2.yaml | 2325 ++++-------------- 1 file changed, 521 insertions(+), 1804 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index e3e2650..6d717a6 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -3,144 +3,141 @@ info: title: ABT Customers CRUD APIs v2 version: "1.0" description: CRUD APIs for ABT Customer database. These are NOT the functional APIs from Service Engine. -servers: +servers: - url: https://api.integratielaag.nl/v2 paths: /customers/list: get: tags: - ABTCustomers - summary: Search for customer profile list + summary: Search for customer profiles description: >- - search for a customer profile list in the ABT database with query - parameters + Search for all customer profile list in the ABT database matching certain query parameters parameters: - name: customerProfileId - in: query - required: false - style: form - explode: true + in: query schema: - type: number + type: integer + example: 1 - name: customerNumber in: query - required: false - style: form - explode: true schema: - type: number - - name: emailAddress + type: integer + example: 1000001 + - name: customerStatusId in: query - required: false - style: form - explode: true schema: - type: string - - name: chipCardNumber + type: integer + example: 1 + - name: debtorNumber in: query - required: false - style: form - explode: true schema: - type: string - - name: ovPasNumber + type: integer + example: 100001 + - name: debtorStatusId in: query - required: false - style: form - explode: true schema: - type: string - - name: phoneNumber - in: query - required: false - style: form - explode: true - schema: - type: string - - name: phoneCountryCode - in: query - required: false - style: form - explode: true - schema: - type: string - - name: addressStreet - in: query - required: false - style: form - explode: true - schema: - type: string - - name: addressHouseNumber - in: query - required: false - style: form - explode: true - schema: - type: number - - name: addressHouseNumberSuffix - in: query - required: false - style: form - explode: true - schema: - type: string - - name: addressPostalCode - in: query - required: false - style: form - explode: true - schema: - type: string - - name: addressCity - in: query - required: false - style: form - explode: true - schema: - type: string - - name: addressCountry - in: query - required: false - style: form - explode: true - schema: - type: string + type: integer + example: 1 - name: birthname in: query - required: false - style: form - explode: true schema: type: string + example: John - name: surname in: query - required: false - style: form - explode: true schema: type: string + example: Doe + - name: emailAddress + in: query + schema: + type: string + format: email + example: john.doe@mymailprovider.com - name: dateOfBirth in: query - required: false - style: form - explode: true schema: type: string - - name: customerStatus + format: date + example: "2000-01-01" + - name: addressStreet in: query - required: false - style: form - explode: true schema: type: string + example: Sesamestreet + - name: addressHouseNumber + in: query + schema: + type: integer + example: 1 + - name: addressHouseNumberSuffix + in: query + schema: + type: string + example: A + - name: addressPostalCode + in: query + schema: + type: string + example: 1234 AB + - name: addressCity + in: query + schema: + type: string + example: The Hague + - name: addressCountry + in: query + schema: + type: string + example: The Netherlands + - name: phoneNumber + in: query + schema: + type: string + example: "0123456789" + - name: phoneCountryCode + in: query + schema: + type: string + example: "+31" + - name: ovChipcardNumber + in: query + schema: + type: integer + example: 0123456789 + - name: ovChipcardAlias + in: query + schema: + type: string + example: My ovchipcard + - name: ovPayTokenNumber + in: query + schema: + type: integer + example: 0123456789 + - name: ovPayTokenAlias + in: query + schema: + type: string + example: My Ov Pay Token + - name: ovPayTokenXTat + in: query + schema: + type: string + example: 180d04e0-a721-447e-a1d9-b416937b43bc + - name: ovPayTokenXBot + in: query + schema: + type: string + example: e1307c73-676a-4d07-967b-6141276f7c7c responses: - '200': + "200": description: Successful retrieved a customer profile content: application/json: schema: - $ref: '#/components/schemas/getCustomerProfileList' + $ref: "#/components/schemas/getCustomerProfileList" examples: fullCustomerProfile: value: @@ -148,23 +145,29 @@ paths: - customerProfileId: 1 customerNumber: 1000001 debtorNumber: TEST001 - debtorStateId: 1 + debtorStatus: + debtorStatusId: 1 + name: Inactive vascustomerNumber: CST005 customerPreference: languageId: 1 - customerStatus: - - name: active - fromInclusive: '2022-08-04 15:01:00.000' - toInclusive: '2022-08-05 15:01:00.000' - - name: blocked - fromInclusive: '2022-08-05 15:01:00.000' + customerStatusInstance: + - customerStatus: + name: Active + customerStatusId: 2 + fromInclusive: "2022-08-04 15:01:00.000" + toInclusive: "2022-08-05 15:01:00.000" + - customerStatus: + name: Blocked + customerStatusId: 3 + fromInclusive: "2022-08-05 15:01:00.000" toInclusive: null person: birthname: Pieter surname: De valen prefix: dhr suffix: De - dateOfBirth: '2002-10-29' + dateOfBirth: "2002-10-29" emailAddress: TEST@HTM.NL address: - addressId: 1 @@ -174,8 +177,10 @@ paths: postalCode: 0000AA city: Den Haag country: NL - isPreferred: true - addressType: Office + isPreferred: false + addressType: + addressTypeId: 2 + name: Office - addressId: 2 street: mystreet 33 houseNumber: 1 @@ -184,74 +189,95 @@ paths: city: Den BOSCH country: NL isPreferred: true - addressType: Office + addressType: + addressTypeId: 2 + name: Office phone: - phoneId: 1 - number: '3112345678' + number: "3112345678" countryCode: NL - phoneType: TestNaam + phoneType: + phoneTypeId: 1 + name: Home isPreferred: true - phoneId: 2 - number: '333225588' + number: "333225588" countryCode: ES - phoneType: TestNaam + phoneType: + phoneTypeId: 2 + name: Work isPreferred: false - ovChipCard: + ovChipCard: - ovChipCardId: 1 chipCardNumber: 1234123412341234 - validUntil: '2023-01-01' + validUntil: "2023-01-01" alias: alias - ovChipCardId: 2 chipCardNumber: 1234123412341235 - validUntil: '2025-01-01' + validUntil: "2025-01-01" alias: alias - ovPayToken: + ovPayToken: - ovPayTokenId: 126 - tokenTypeId: 1 + tokenType: + tokenTypeId: 1 + name: EMV xTat: twioq73033 xBot: hjihwqui27 alias: alias - lastDigits: '5678' - ovpasNumber: OV34567 - tokenStatusId: 1 - expirationDate: '2025-04-20T17:05:52.000+02:00' + lastDigits: "5678" + ovpasNumber: null + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2025-04-20T17:05:52.000+02:00" replacedByTokenId: 1 - ovPayTokenId: 127 - tokenTypeId: 1 + tokenType: + tokenTypeId: 2 + name: OV-pas physical xTat: hhe2830283 xBot: jdhd828033 alias: alias - lastDigits: '5674' - ovpasNumber: OV34568 - tokenStatusId: 1 - expirationDate: '2024-04-20T17:05:52.000+02:00' + lastDigits: "5674" + ovpasNumber: OV34568 + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2024-04-20T17:05:52.000+02:00" replacedByTokenId: 2 - audit: + audit: - auditTrailId: 1 customerProfileId: 1 action: insert user: user - timestamp: '2023-10-20T17:05:52.000+02:00' + timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - - customerNumber: 1000002 + - customerProfileId: 2 + customerNumber: 1000002 debtorNumber: TEST001 - debtorStateId: 1 + debtorStatus: + debtorStatusId: 1 + name: Inactive vascustomerNumber: CST005 customerPreference: languageId: 1 - customerStatus: - - name: active - fromInclusive: '2022-08-04 15:01:00.000' - toInclusive: '2022-08-05 15:01:00.000' - - name: blocked - fromInclusive: '2022-08-05 15:01:00.000' + customerStatusInstance: + - customerStatus: + name: Active + customerStatusId: 2 + fromInclusive: "2022-08-04 15:01:00.000" + toInclusive: "2022-08-05 15:01:00.000" + - customerStatus: + name: Blocked + customerStatusId: 3 + fromInclusive: "2022-08-05 15:01:00.000" toInclusive: null person: birthname: Pieter surname: De valen prefix: dhr suffix: De - dateOfBirth: '2002-10-29' + dateOfBirth: "2002-10-29" emailAddress: TEST@HTM.NL address: - addressId: 1 @@ -261,8 +287,10 @@ paths: postalCode: 0000AA city: Den Haag country: NL - isPreferred: true - addressType: Office + isPreferred: false + addressType: + addressTypeId: 2 + name: Office - addressId: 2 street: mystreet 33 houseNumber: 1 @@ -271,165 +299,94 @@ paths: city: Den BOSCH country: NL isPreferred: true - addressType: Office + addressType: + addressTypeId: 2 + name: Office phone: - phoneId: 1 - number: '3112345678' + number: "3112345678" countryCode: NL - phoneType: TestNaam + phoneType: + phoneTypeId: 1 + name: Home isPreferred: true - phoneId: 2 - number: '333225588' + number: "333225588" countryCode: ES - phoneType: TestNaam + phoneType: + phoneTypeId: 2 + name: Work isPreferred: false - ovChipCard: + ovChipCard: - ovChipCardId: 1 chipCardNumber: 1234123412341234 - validUntil: '2023-01-01' + validUntil: "2023-01-01" alias: alias - ovChipCardId: 2 chipCardNumber: 1234123412341235 - validUntil: '2025-01-01' + validUntil: "2025-01-01" alias: alias - ovPayToken: + ovPayToken: - ovPayTokenId: 126 - tokenTypeId: 1 + tokenType: + tokenTypeId: 2 + name: OV-pas physical xTat: twioq73033 xBot: hjihwqui27 alias: alias - lastDigits: '5678' + lastDigits: "5678" ovpasNumber: OV34567 - tokenStatusId: 1 - expirationDate: '2025-04-20T17:05:52.000+02:00' + tokenStatus: + tokenStatusId: 2 + name: active + expirationDate: "2025-04-20T17:05:52.000+02:00" replacedByTokenId: 1 - ovPayTokenId: 127 - tokenTypeId: 1 + tokenType: + tokenTypeId: 2 + name: OV-pas physical xTat: hhe2830283 xBot: jdhd828033 alias: alias - lastDigits: '5674' + lastDigits: "5674" ovpasNumber: OV34568 - tokenStatusId: 1 - expirationDate: '2024-04-20T17:05:52.000+02:00' + tokenStatus: + tokenStatusId: 2 + name: active + expirationDate: "2024-04-20T17:05:52.000+02:00" replacedByTokenId: 2 - audit: + audit: - auditTrailId: 1 customerProfileId: 1 action: insert user: user - timestamp: '2023-10-20T17:05:52.000+02:00' + timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 href: null - minimumCustomerProfile: - value: - Entries: - - customerNumber: 1000008 - debtorNumber: null - debtorStateId: null - vascustomerNumber: null - customerPreference: - languageId: null - customerStatus: - - name: active - fromInclusive: '2022-08-04 15:01:00.000' - toInclusive: null - person: - birthname: null - surname: null - prefix: null - suffix: null - dateOfBirth: null - emailAddress: TEST@TEST1.NL - address: [] - phone: [] - ovChipCard: [] - ovPayToken: [] - audit: [] - missingPersonDetailsCustomerProfile: - value: - Entries: - - emailAddress: TEST04@HTM.NL - customerNumber: 1000005 - debtorNumber: TEST004 - debtorStateId: 1 - vascustomerNumber: CST005 - customerPreference: - languageId: 1 - customerStatus: - - name: inactive - fromInclusive: '2022-08-04 15:01:00.000' - toInclusive: null - person: - birthname: Sophie - surname: Haardenburg - prefix: Mw - suffix: null - dateOfBirth: 1955-09-05+01:00 - emailAddress: TEST@TEST1.NL - address: [] - phone: [] - ovChipCard: - - ovChipCardId: 1 - chipCardNumber: 1234123412341234 - validUntil: '2023-01-01' - alias: alias - - ovChipCardId: 2 - chipCardNumber: 1234123412341235 - validUntil: '2025-01-01' - alias: alias - ovPayToken: - - ovPayTokenId: 126 - tokenTypeId: 1 - xTat: twioq73033 - xBot: hjihwqui27 - alias: alias - lastDigits: '5678' - ovpasNumber: OV34567 - tokenStatusId: 1 - expirationDate: '2025-04-20T17:05:52.000+02:00' - replacedByTokenId: 1 - - ovPayTokenId: 127 - tokenTypeId: 1 - xTat: hhe2830283 - xBot: jdhd828033 - alias: alias - lastDigits: '5674' - ovpasNumber: OV34568 - tokenStatusId: 1 - expirationDate: '2024-04-20T17:05:52.000+02:00' - replacedByTokenId: 2 - audit: - - auditTrailId: 1 - customerProfileId: 1 - action: insert - user: user - timestamp: '2023-10-20T17:05:52.000+02:00' - correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - '400': + "400": description: Bad Request content: application/json: schema: - $ref: '#/components/schemas/400Response' - '401': + $ref: "#/components/schemas/400Response" + "401": description: Unauthorized content: application/json: schema: - $ref: '#/components/schemas/401Response' - '404': + $ref: "#/components/schemas/401Response" + "404": description: Not Found content: application/json: schema: - $ref: '#/components/schemas/404Response' - '500': + $ref: "#/components/schemas/404Response" + "500": description: Internal Server Error content: application/json: schema: - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" security: - default: [] x-auth-type: Application & Application User @@ -439,332 +396,269 @@ paths: tags: - ABTCustomers summary: Search for customer profile - description: 'search for a customer profile in the ABT database with query parameters ' + description: "Search for a unique customer profile in the ABT database with query parameters " parameters: - name: customerProfileId - in: query - required: false - style: form - explode: true + in: query schema: - type: number + type: integer + example: 1 - name: customerNumber in: query - required: false - style: form - explode: true schema: - type: number - - name: emailAddress + type: integer + example: 1000001 + - name: customerStatusId in: query - required: false - style: form - explode: true schema: - type: string - - name: chipCardNumber + type: integer + example: 1 + - name: debtorNumber in: query - required: false - style: form - explode: true schema: - type: string - - name: ovPasNumber + type: integer + example: 100001 + - name: debtorStatusId in: query - required: false - style: form - explode: true schema: - type: string - - name: phoneNumber - in: query - required: false - style: form - explode: true - schema: - type: string - - name: phoneCountryCode - in: query - required: false - style: form - explode: true - schema: - type: string - - name: addressStreet - in: query - required: false - style: form - explode: true - schema: - type: string - - name: addressHouseNumber - in: query - required: false - style: form - explode: true - schema: - type: number - - name: addressHouseNumberSuffix - in: query - required: false - style: form - explode: true - schema: - type: string - - name: addressPostalCode - in: query - required: false - style: form - explode: true - schema: - type: string - - name: addressCity - in: query - required: false - style: form - explode: true - schema: - type: string - - name: addressCountry - in: query - required: false - style: form - explode: true - schema: - type: string + type: integer + example: 1 - name: birthname in: query - required: false - style: form - explode: true schema: type: string + example: John - name: surname in: query - required: false - style: form - explode: true schema: type: string + example: Doe + - name: emailAddress + in: query + schema: + type: string + format: email + example: john.doe@mymailprovider.com - name: dateOfBirth in: query - required: false - style: form - explode: true schema: type: string - - name: customerStatus + format: date + example: "2000-01-01" + - name: addressStreet in: query - required: false - style: form - explode: true schema: type: string + example: Sesamestreet + - name: addressHouseNumber + in: query + schema: + type: integer + example: 1 + - name: addressHouseNumberSuffix + in: query + schema: + type: string + example: A + - name: addressPostalCode + in: query + schema: + type: string + example: 1234 AB + - name: addressCity + in: query + schema: + type: string + example: The Hague + - name: addressCountry + in: query + schema: + type: string + example: The Netherlands + - name: phoneNumber + in: query + schema: + type: string + example: "0123456789" + - name: phoneCountryCode + in: query + schema: + type: string + example: "+31" + - name: ovChipcardNumber + in: query + schema: + type: integer + example: 0123456789 + - name: ovChipcardAlias + in: query + schema: + type: string + example: My ovchipcard + - name: ovPayTokenNumber + in: query + schema: + type: integer + example: 0123456789 + - name: ovPayTokenAlias + in: query + schema: + type: string + example: My Ov Pay Token + - name: ovPayTokenXTat + in: query + schema: + type: string + example: 180d04e0-a721-447e-a1d9-b416937b43bc + - name: ovPayTokenXBot + in: query + schema: + type: string + example: e1307c73-676a-4d07-967b-6141276f7c7c responses: - '200': + "200": description: Successful retrieved a customer profile content: application/json: schema: - $ref: '#/components/schemas/getCustomerProfile' + $ref: "#/components/schemas/getCustomerProfile" examples: fullCustomerProfile: value: - customerProfileId: 1 - customerNumber: 1000001 - debtorNumber: TEST001 - vascustomerNumber: CST005 - debtorStateId: 1 - customerPreference: - languageId: 1 - customerStatus: - - name: active - fromInclusive: '2022-08-04 15:01:00.000' - toInclusive: '2022-08-05 15:01:00.000' - - name: blocked - fromInclusive: '2022-08-05 15:01:00.000' - toInclusive: null - person: - birthname: Pieter - surname: De valen - prefix: dhr - suffix: De - dateOfBirth: '2002-10-29' - emailAddress: TEST@HTM.NL - address: - - addressId: 1 - street: mystreet - houseNumber: 1 - houseNumberSuffix: null - postalCode: 0000AA - city: Den Haag - country: NL - isPreferred: true - addressType: Office - - addressId: 2 - street: mystreet 33 - houseNumber: 1 - houseNumberSuffix: null - postalCode: 4455CA - city: Den BOSCH - country: NL - isPreferred: true - addressType: Office - phone: - - phoneId: 1 - number: '3112345678' - countryCode: NL - phoneType: TestNaam - isPreferred: true - - phoneId: 2 - number: '333225588' - countryCode: ES - phoneType: TestNaam - isPreferred: false + customerProfileId: 1 + customerNumber: 1000001 + debtorNumber: TEST001 + debtorStatus: + debtorStatusId: 1 + name: Inactive + vascustomerNumber: CST005 + customerPreference: + languageId: 1 + customerStatusInstance: + - customerStatus: + name: Active + customerStatusId: 2 + fromInclusive: "2022-08-04 15:01:00.000" + toInclusive: "2022-08-05 15:01:00.000" + - customerStatus: + name: Blocked + customerStatusId: 3 + fromInclusive: "2022-08-05 15:01:00.000" + toInclusive: null + person: + birthname: Pieter + surname: De valen + prefix: dhr + suffix: De + dateOfBirth: "2002-10-29" + emailAddress: TEST@HTM.NL + address: + - addressId: 1 + street: mystreet + houseNumber: 1 + houseNumberSuffix: null + postalCode: 0000AA + city: Den Haag + country: NL + isPreferred: false + addressType: + addressTypeId: 2 + name: Office + - addressId: 2 + street: mystreet 33 + houseNumber: 1 + houseNumberSuffix: null + postalCode: 4455CA + city: Den BOSCH + country: NL + isPreferred: true + addressType: + addressTypeId: 2 + name: Office + phone: + - phoneId: 1 + number: "3112345678" + countryCode: NL + phoneType: + phoneTypeId: 1 + name: Home + isPreferred: true + - phoneId: 2 + number: "333225588" + countryCode: ES + phoneType: + phoneTypeId: 2 + name: Work + isPreferred: false ovChipCard: - ovChipCardId: 1 chipCardNumber: 1234123412341234 - validUntil: '2023-01-01' + validUntil: "2023-01-01" alias: alias - ovChipCardId: 2 chipCardNumber: 1234123412341235 - validUntil: '2025-01-01' + validUntil: "2025-01-01" alias: alias ovPayToken: - ovPayTokenId: 126 - tokenTypeId: 1 + tokenType: + tokenTypeId: 1 + name: EMV xTat: twioq73033 xBot: hjihwqui27 alias: alias - lastDigits: '5678' - ovpasNumber: OV34567 - tokenStatusId: 1 - expirationDate: '2025-04-20T17:05:52.000+02:00' + lastDigits: "5678" + ovpasNumber: null + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2025-04-20T17:05:52.000+02:00" replacedByTokenId: 1 - ovPayTokenId: 127 - tokenTypeId: 1 + tokenType: + tokenTypeId: 2 + name: OV-pas physical xTat: hhe2830283 xBot: jdhd828033 alias: alias - lastDigits: '5674' - ovpasNumber: OV34568 - tokenStatusId: 1 - expirationDate: '2024-04-20T17:05:52.000+02:00' + lastDigits: "5674" + ovpasNumber: OV34568 + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2024-04-20T17:05:52.000+02:00" replacedByTokenId: 2 audit: - - auditTrailId: 1 - customerProfileId: 1 - action: insert - user: user - timestamp: '2023-10-20T17:05:52.000+02:00' - correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - minimumCustomerProfile: - value: - customerNumber: 1000008 - debtorNumber: null - debtorStateId: null - vascustomerNumber: null - customerPreference: - languageId: 1 - customerStatus: - - name: active - fromInclusive: '2022-08-04 15:01:00.000' - toInclusive: null - person: - birthname: null - surname: null - prefix: null - suffix: null - dateOfBirth: null - emailAddress: TEST@TEST1.NL - address: [] - phone: [] - ovChipCard: [] - ovPayToken: [] - audit: [] - missingPersonDetailsCustomerProfile: - value: - emailAddress: TEST04@HTM.NL - customerNumber: 1000005 - debtorNumber: TEST004 - debtorStateId: 1 - vascustomerNumber: CST008 - customerPreference: - languageId: 1 - customerStatus: - - name: inactive - fromInclusive: '2022-08-04 15:01:00.000' - toInclusive: null - person: - birthname: Sophie - surname: Haardenburg - prefix: Mw - suffix: null - dateOfBirth: '1955-09-05' - emailAddress: TEST@TEST1.NL - address: [] - phone: [] - ovChipCard: - - ovChipCardId: 1 - chipCardNumber: 1234123412341234 - validUntil: '2023-01-01' - alias: alias - - ovChipCardId: 2 - chipCardNumber: 1234123412341235 - validUntil: '2025-01-01' - alias: alias - ovPayToken: - - ovPayTokenId: 126 - tokenTypeId: 1 - xTat: twioq73033 - xBot: hjihwqui27 - alias: alias - lastDigits: '5678' - ovpasNumber: OV34567 - tokenStatusId: 1 - expirationDate: '2025-04-20T17:05:52.000+02:00' - replacedByTokenId: 1 - - ovPayTokenId: 127 - tokenTypeId: 1 - xTat: hhe2830283 - xBot: jdhd828033 - alias: alias - lastDigits: '5674' - ovpasNumber: OV34568 - tokenStatusId: 1 - expirationDate: '2024-04-20T17:05:52.000+02:00' - replacedByTokenId: 2 - audit: - - auditTrailId: 1 - customerProfileId: 1 - action: insert - user: user - timestamp: '2023-10-20T17:05:52.000+02:00' - correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - '400': + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: "2023-10-20T17:05:52.000+02:00" + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + "400": description: Bad Request content: application/json: schema: - $ref: '#/components/schemas/400Response' - '401': + $ref: "#/components/schemas/400Response" + "401": description: Unauthorized content: application/json: schema: - $ref: '#/components/schemas/401Response' - '404': + $ref: "#/components/schemas/401Response" + "404": description: Not Found content: application/json: schema: - $ref: '#/components/schemas/404Response' - '500': + $ref: "#/components/schemas/404Response" + "500": description: Internal Server Error content: application/json: schema: - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" security: - default: [] x-auth-type: Application & Application User @@ -785,7 +679,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/postCustomerProfile' + $ref: "#/components/schemas/postCustomerProfile" examples: minimumProfile: value: {} @@ -806,7 +700,7 @@ paths: surname: Jansen prefix: dhr suffix: jr - dateOfBirth: '1970-01-01' + dateOfBirth: "1970-01-01" emailAddress: j.jansen@hatseflats.nl addresses: - street: Laan van Meerdervoort @@ -826,32 +720,32 @@ paths: isPreferred: false addressTypeId: 2 phones: - - number: '6123456789' - countryCode: '0031' + - number: "6123456789" + countryCode: "0031" phoneTypeId: 1 isPreferred: true - - number: '7012345678' - countryCode: '0031' + - number: "7012345678" + countryCode: "0031" phoneTypeId: 2 isPreferred: false required: true responses: - '201': + "201": description: Successful created a customer profile content: application/json: schema: - $ref: '#/components/schemas/postCustomerProfileCustomerNumberResponse' - '400': + $ref: "#/components/schemas/postCustomerProfileCustomerNumberResponse" + "400": description: Bad Request content: application/json: schema: - $ref: '#/components/schemas/400Response' + $ref: "#/components/schemas/400Response" examples: InvalidPostalCodeFormatForAddressCountryNLError: value: - code: '400' + code: "400" type: Bad Request - Input parameters message: Invalid input parameter for country validation (NL). description: >- @@ -859,7 +753,7 @@ paths: input string \"2500 AA\ MissingRequiredParameterError: value: - code: '400' + code: "400" type: Bad Request - Input parameters message: Invalid input parameter. description: >- @@ -867,1256 +761,37 @@ paths: ([\"addressTypeId\"]) InvalidDataTypeError: value: - code: '400' + code: "400" type: Bad Request - Input parameters message: Invalid input parameter. description: >- Bad Request - please verify the value for the following field \"id\ - '401': + "401": description: Unauthorized content: application/json: schema: - $ref: '#/components/schemas/401Response' - '409': + $ref: "#/components/schemas/401Response" + "409": description: Conflict content: application/json: schema: - $ref: '#/components/schemas/409Response' + $ref: "#/components/schemas/409Response" examples: emailAddressAlreadyPresent: value: - code: '409' + code: "409" type: Conflict message: emailAddress already exists. - description: '' - '500': + description: "" + "500": description: Internal Server Error content: application/json: schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}/customerpreferences: - patch: - tags: - - ABTCustomers - summary: Modify customer preference elements - description: Modify customer preference fields - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/patchCustomerPreferences' - examples: - PatchCustomerPreferences: - value: - customerPreference: - languageId: 2 - responses: - '202': - description: Successful modified the customer preferences - content: - application/json: - schema: - $ref: '#/components/schemas/patchCustomerPreferencesResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - examples: - InvalidDataTypeError: - value: - code: '400' - type: Bad Request - Input parameters - message: Invalid input parameter. - description: >- - Bad Request - please verify the value for the following - field \"languageId\ - InvalidReferenceIdError: - value: - code: '400' - type: Bad Request - Input parameters - message: Invalid input parameter. - description: >- - Bad Request: Update Or Delete failed as conflicted with - foreign Key constraint 'languageId' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}: - patch: - tags: - - ABTCustomers - summary: Modify customer profile elements - description: Modify customer profile fields - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/patchCustomerProfile' - examples: - PatchCustomerProfile: - value: - debtorStatusId: 2 - responses: - '202': - description: Successful modified the customer profile - content: - application/json: - schema: - $ref: '#/components/schemas/patchCustomerProfileResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - examples: - InvalidDataTypeError: - value: - code: '400' - type: Bad Request - Input parameters - message: Invalid input parameter. - description: >- - Bad Request - please verify the value for the following - field \"debtorStatusId\ - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}/ovchipcards: - post: - tags: - - ABTCustomers - summary: Create a new OV chipcard for a customerProfile. - description: Create a new OV chipcard in the database for a given customer. - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/postOvChipCard' - examples: - postNewOvChipCard: - value: - ovChipCard: - chipCardNumber: 1234123412341234 - validUntil: '2024-01-01' - alias: alias - responses: - '201': - description: Successful created an OV chipcard - content: - application/json: - schema: - $ref: '#/components/schemas/postCustomerProfileOvChipCardResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - examples: - chipCardNumberInvalidTooSmall: - value: - code: '400' - type: Bad Request - Input parameters - message: Invalid input parameter. - description: >- - numeric instance is lower than the required minimum - (minimum: 1000000000000000, found: 999999999999999) - chipCardNumberInvalidTooLarge: - value: - code: '400' - type: Bad Request - Input parameters - message: Invalid input parameter. - description: >- - numeric instance is greater than the required maximum - (maximum: 9999999999999999, found: 10000000000000000) - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}/ovchipcards/{ovChipCardId}: - delete: - tags: - - ABTCustomers - summary: Delete a OV chipcard for a customerProfile. - description: Delete a OV chipcard in the database for a given customer. - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - - name: ovChipCardId - in: path - required: true - style: simple - explode: false - schema: - type: integer - responses: - '202': - description: Deleted record successfully - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}/ovpaytokens: - get: - tags: - - ABTCustomers - summary: Get a OV paytoken for a customerProfile. - description: Get a new OV paytoken in the database for a given customer. - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - - name: ovPayTokenId - in: query - required: false - style: form - explode: false - schema: - type: integer - - name: xbot - in: query - required: false - style: form - explode: false - schema: - type: string - - name: xtat - in: query - required: false - style: form - explode: false - schema: - type: string - - name: ovPasNumber - in: query - required: false - style: form - explode: false - schema: - type: string - responses: - '200': - description: Successfully retrieved an OVPay token - content: - application/json: - schema: - $ref: '#/components/schemas/getCustomerProfileOvPayTokenResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - post: - tags: - - ABTCustomers - summary: Create a new OV paytoken for a customerProfile. - description: Create a new OV paytoken in the database for a given customer. - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/postOvPayToken' - examples: - postNewOvPayTokenCard: - value: - ovPayToken: - tokenTypeId: 2 - xTat: twioq73033 - xBot: hjihwqui27 - alias: alias - lastDigits: '5678' - ovpasNumber: OV34567 - tokenStatusId: 2 - expirationDate: '2025-04-20T17:05:52.000+02:00' - replacedByTokenId: 1 - responses: - '201': - description: Successful created an OVPay token - content: - application/json: - schema: - $ref: '#/components/schemas/postCustomerProfileOvPayTokenResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}/statuses: - post: - tags: - - ABTCustomers - summary: Create a new customer status for a customerProfile. - description: >- - Create a new customer status for a customerProfile. The call will do the - following in the given order: a new status will be created with - fromInclusive equal to the time of the call. ToInclusive in the old, now - historic, status will also be set equal to the time of the call, deeming - it 'not currently active'. - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/postCustomerStatus' - examples: - postNewStatus: - value: - customerStatus: - name: blocked - responses: - '201': - description: Successful updated the customer profile - content: - application/json: - schema: - $ref: '#/components/schemas/defaultCustomerProfileResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '422': - description: Unprocessable entity - content: - application/json: - schema: - $ref: '#/components/schemas/422Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}/persons: - patch: - tags: - - ABTCustomers - summary: Partial update customer person details - description: Partial update a customer person details in the ABT database - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/patchPerson' - examples: - updatePerson: - value: - person: - birthname: Jan - surname: Jansen - prefix: dhr - suffix: jr - dateOfBirth: '1970-01-01' - emailAddress: TEST@TEST1.NL - updatePersonBirthname: - value: - person: - birthname: Jan - updatePersonSurname: - value: - person: - surname: Jansen - updatePersonPrefix: - value: - person: - prefix: dhr - updatePersonSuffix: - value: - person: - suffix: jr - updatePersonDateOfBirth: - value: - person: - dateOfBirth: '1970-01-01' - updatePersonEmailAddress: - value: - person: - emailAddress: TEST@TEST1.NL - responses: - '202': - description: Successful updated the customer profile - content: - application/json: - schema: - $ref: '#/components/schemas/defaultCustomerProfileResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}/ovpaytokens/{ovPayTokenId}: - delete: - tags: - - ABTCustomers - summary: Delete a OV PayToken for a customerProfile. - description: Delete a OV PayToken in the database for a given customer. - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - - name: ovPayTokenId - in: path - required: true - style: simple - explode: false - schema: - type: integer - responses: - '202': - description: Deleted record successfully - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - patch: - tags: - - ABTCustomers - summary: Partial update customer ovpaytokens - description: Partial update of a customer ovpaytokens in the ABT database - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - - name: ovPayTokenId - in: path - required: true - style: simple - explode: false - schema: - type: integer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/patchOvPayToken' - examples: - updateOvPayTokens: - value: - ovPayToken: - tokenTypeId: 2 - xTat: twioq73033 - xBot: hjihwqui27 - alias: alias - lastDigits: '5678' - ovpasNumber: OV34567 - tokenStatusId: 2 - expirationDate: '2025-04-20T17:05:52.000+02:00' - replacedByTokenId: 1 - updateOvPayTokenTypeId: - value: - ovPayToken: - tokenTypeId: 2 - updateOvPayTokenXTat: - value: - ovPayToken: - xTat: twioq73033 - updateOvPayTokenXBot: - value: - ovPayToken: - xBot: hjihwqui27 - updateOvPayTokenAlias: - value: - ovPayToken: - alias: alias - updateOvPayTokenLastDigits: - value: - ovPayToken: - lastDigits: '5678' - updateOvPayTokenOvpasNumber: - value: - ovPayToken: - ovpasNumber: OV34567 - updateOvPayTokenStatusId: - value: - ovPayToken: - tokenStatusId: 1 - updateOvPayTokenExpirationDate: - value: - ovPayToken: - expirationDate: '2025-04-20T17:05:52.000+02:00' - updateOvPayTokenReplacedByTokenId: - value: - ovPayToken: - replacedByTokenId: 1 - responses: - '202': - description: Successful updated the customer profile - content: - application/json: - schema: - $ref: '#/components/schemas/defaultCustomerProfileResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}/addresses: - post: - tags: - - ABTCustomers - summary: Create a single customer address - description: Create a single customer address in the ABT database - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/postAddress' - examples: - addFullAddress: - value: - address: - street: Laan van Meerdervoort - houseNumber: 5 - houseNumberSuffix: B - postalCode: 2500AA - city: Den Haag - country: NL - isPreferred: true - addressTypeId: 1 - addMinimumAddress: - value: - address: - street: Laan van Meerdervoort - houseNumber: 5 - postalCode: 2500AA - city: Den Haag - country: NL - isPreferred: true - addressTypeId: 1 - responses: - '201': - description: Successful updated the customer profile - content: - application/json: - schema: - $ref: '#/components/schemas/postCustomerProfileAddressResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - examples: - InvalidPostalCodeFormatForAddressCountryNLError: - value: - code: '400' - type: Bad Request - Input parameters - message: Invalid input parameter for country validation (NL). - description: >- - ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match - input string \"2500 AA\ - MissingRequiredParameterError: - value: - code: '400' - type: Bad Request - Input parameters - message: Invalid input parameter. - description: >- - object has missing required properties - ([\"addressTypeId\"]) - InvalidDataTypeError: - value: - code: '400' - type: Bad Request - Input parameters - message: Invalid input parameter. - description: >- - Bad Request - please verify the value for the following - field \"id\ - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}/phones: - post: - tags: - - ABTCustomers - summary: Create a single customer phonenumber - description: Create a single customer phonenumber in the ABT database - parameters: - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/postPhone' - examples: - addPhone: - value: - phone: - number: '06123456789' - countryCode: '0031' - phoneTypeId: 1 - isPreferred: true - responses: - '201': - description: Successful updated the customer profile - content: - application/json: - schema: - $ref: '#/components/schemas/postCustomerProfilePhoneResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}/addresses/{addressId}: - delete: - tags: - - ABTCustomers - summary: Delete a customer address - description: Delete a customer address from the ABT database - parameters: - - name: addressId - in: path - required: true - style: simple - explode: false - schema: - type: integer - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - responses: - '202': - description: Deleted record successfully - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - patch: - tags: - - ABTCustomers - summary: Partial update customer addresses - description: Partial update a customer address in the ABT database - parameters: - - name: addressId - in: path - required: true - style: simple - explode: false - schema: - type: integer - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/patchAddress' - examples: - updateAddress: - value: - address: - street: Laan van Meerdervoort - houseNumber: 5 - houseNumberSuffix: B - postalCode: 2500AA - city: Den Haag - country: NL - addressTypeId: 2 - isPreferred: true - updateStreet: - value: - address: - street: Nieuwe Parklaan - updateHouseNumber: - value: - address: - houseNumber: 10 - updateHouseNumberSuffix: - value: - address: - houseNumberSuffix: C - updatePostalCode: - value: - address: - postalCode: 2597LG - updateCity: - value: - address: - city: Amsterdam - updateCountry: - value: - address: - country: UK - updateAddressTypeId: - value: - address: - addressTypeId: 3 - updateIsPreferred: - value: - address: - isPreferred: false - responses: - '202': - description: Successful updated the customer profile - content: - application/json: - schema: - $ref: '#/components/schemas/addressPatchOKResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - examples: - InvalidPostalCodeFormatForAddressCountryNLError: - value: - code: '400' - type: Bad Request - Input parameters - message: Invalid input parameter for country validation (NL). - description: >- - ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match - input string \"2500 AA\ - InvalidDataTypeError: - value: - code: '400' - type: Bad Request - Input parameters - message: Invalid input parameter. - description: >- - Bad Request - please verify the value for the following - field \"id\ - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '409': - description: Conflict - content: - application/json: - schema: - $ref: '#/components/schemas/409Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers/{customerNumber}/phones/{phoneId}: - delete: - tags: - - ABTCustomers - summary: Delete a customer phone - description: Delete a customer phone from the ABT database - parameters: - - name: phoneId - in: path - required: true - style: simple - explode: false - schema: - type: integer - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - responses: - '202': - description: Deleted record successfully - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - patch: - tags: - - ABTCustomers - summary: Partial update customer phones - description: Partial update a customer phone in the ABT database - parameters: - - name: phoneId - in: path - required: true - style: simple - explode: false - schema: - type: integer - - name: customerNumber - in: path - required: true - style: simple - explode: false - schema: - type: integer - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/patchPhone' - examples: - updatePhone: - value: - phone: - number: '06123456789' - countryCode: '0031' - phoneTypeId: 2 - isPreferred: true - updatePhoneNumber: - value: - phone: - number: '06987654321' - updateCountryCode: - value: - phone: - countryCode: '0044' - updatePhoneTypeId: - value: - phone: - phoneTypeId: 2 - updateisPreferred: - value: - phone: - isPreferred: true - responses: - '202': - description: Successful updated the customer profile - content: - application/json: - schema: - $ref: '#/components/schemas/phonePatchOKResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/401Response' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/404Response' - '409': - description: Conflict - content: - application/json: - schema: - $ref: '#/components/schemas/409Response' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" security: - default: [] x-auth-type: Application & Application User @@ -2351,16 +1026,17 @@ paths: "directDebitMandateId": 71, "customerProfileId": 12, "billingInformationId": 51, - "directDebitMandateType": { - "directDebitMandateTypeId": 1, - "name": "import", - "description": "import" - }, + "directDebitMandateType": + { + "directDebitMandateTypeId": 1, + "name": "import", + "description": "import", + }, "mandateAddressId": 21, "created": "2024-03-22T08:55:00", "mandateReference": "CORE01", "mandateState": "SINGED", - "updateTimestamp": "2024-03-22T08:55:00" + "updateTimestamp": "2024-03-22T08:55:00", }, ] components: @@ -2455,17 +1131,34 @@ components: format: date alias: type: string + getCustomerStatusInstance: + type: object + properties: + Entries: + type: array + properties: + customerStatus: + $ref: "#/components/schemas/getCustomerStatus" + fromInclusive: + type: string + format: date + toInclusive: + type: string + format: date getCustomerStatus: type: object properties: + customerStatusId: + type: integer name: type: string - fromInclusive: + getDebtorStatus: + type: object + properties: + debtorStatusId: + type: integer + name: type: string - format: date - toInclusive: - type: string - format: date getPerson: type: object properties: @@ -2486,11 +1179,11 @@ components: address: type: array items: - $ref: '#/components/schemas/getAddress' + $ref: "#/components/schemas/getAddress" phone: type: array items: - $ref: '#/components/schemas/getPhone' + $ref: "#/components/schemas/getPhone" getAddress: type: object properties: @@ -2511,6 +1204,13 @@ components: isPreferred: type: boolean addressType: + $ref: "#/components/schemas/getAddressType" + getAddressType: + type: object + properties: + addressTypeId: + type: integer + name: type: string getPhone: type: object @@ -2522,9 +1222,16 @@ components: countryCode: type: string phoneType: - type: string + $ref: "#/components/schemas/getPhoneType" isPreferred: type: boolean + getPhoneType: + type: object + properties: + phoneTypeId: + type: integer + name: + type: string getCustomerPreference: type: object properties: @@ -2536,7 +1243,7 @@ components: Entries: type: array items: - $ref: '#/components/schemas/getCustomerProfile' + $ref: "#/components/schemas/getCustomerProfile" getCustomerProfile: type: object properties: @@ -2544,30 +1251,30 @@ components: type: integer debtorNumber: type: integer - debtorStateId: - type: integer + debtorStatus: + $ref: "#/components/schemas/getDebtorStatus" vascustomerNumber: type: integer customerPreference: - $ref: '#/components/schemas/getCustomerPreference' + $ref: "#/components/schemas/getCustomerPreference" customerStatus: type: array items: - $ref: '#/components/schemas/getCustomerStatus' + $ref: "#/components/schemas/getCustomerStatusInstance" person: - $ref: '#/components/schemas/getPerson' + $ref: "#/components/schemas/getPerson" ovChipCard: type: array items: - $ref: '#/components/schemas/getOvChipCard' + $ref: "#/components/schemas/getOvChipCard" ovPayToken: type: array items: - $ref: '#/components/schemas/ovPayToken' + $ref: "#/components/schemas/ovPayToken" audit: type: array items: - $ref: '#/components/schemas/audit' + $ref: "#/components/schemas/audit" directDebitMandatePostEntity: required: - billingInformationId @@ -2591,7 +1298,7 @@ components: type: object properties: directDebitMandate: - $ref: '#/components/schemas/directDebitMandatePostEntity' + $ref: "#/components/schemas/directDebitMandatePostEntity" directDebitMandatePatchEntity: type: object properties: @@ -2613,7 +1320,7 @@ components: type: object properties: directDebitMandate: - $ref: '#/components/schemas/directDebitMandatePatchEntity' + $ref: "#/components/schemas/directDebitMandatePatchEntity" directDebitMandateGETEntity: type: object properties: @@ -2688,7 +1395,7 @@ components: type: object properties: billingInformation: - $ref: '#/components/schemas/billingInformationPostEntity' + $ref: "#/components/schemas/billingInformationPostEntity" billingInformationPatchEntity: type: object properties: @@ -2710,7 +1417,7 @@ components: type: object properties: billingInformation: - $ref: '#/components/schemas/billingInformationPatchEntity' + $ref: "#/components/schemas/billingInformationPatchEntity" getCustomerProfileFinancials: type: object properties: @@ -2719,11 +1426,11 @@ components: billingInformation: type: array items: - $ref: '#/components/schemas/billingInformationGETEntity' + $ref: "#/components/schemas/billingInformationGETEntity" directDebitMandate: type: array items: - $ref: '#/components/schemas/directDebitMandateGETEntity' + $ref: "#/components/schemas/directDebitMandateGETEntity" customerPreferencesEntity: type: object properties: @@ -2735,17 +1442,17 @@ components: debtorStatusId: type: integer customerPreference: - $ref: '#/components/schemas/customerPreferencesEntity' + $ref: "#/components/schemas/customerPreferencesEntity" person: - $ref: '#/components/schemas/personEntity' + $ref: "#/components/schemas/personEntity" addresses: type: array items: - $ref: '#/components/schemas/addressPostEntity' + $ref: "#/components/schemas/addressPostEntity" phones: type: array items: - $ref: '#/components/schemas/phonePostEntity' + $ref: "#/components/schemas/phonePostEntity" postCustomerStatusEntity: type: object properties: @@ -2755,7 +1462,7 @@ components: type: object properties: customerStatus: - $ref: '#/components/schemas/postCustomerStatusEntity' + $ref: "#/components/schemas/postCustomerStatusEntity" postOvChipCardEntity: required: - chipCardNumber @@ -2782,12 +1489,12 @@ components: type: object properties: customerPreference: - $ref: '#/components/schemas/patchCustomerPreferencesEntity' + $ref: "#/components/schemas/patchCustomerPreferencesEntity" postOvChipCard: type: object properties: ovChipCard: - $ref: '#/components/schemas/postOvChipCardEntity' + $ref: "#/components/schemas/postOvChipCardEntity" postOvPayToken: required: - alias @@ -2821,8 +1528,13 @@ components: ovPayTokenEntity: type: object properties: - tokenTypeId: - type: string + tokenType: + type: object + properties: + tokenTypeId: + type: string + name: + type: string xTat: type: string xBot: @@ -2833,8 +1545,13 @@ components: type: integer ovpasNumber: type: string - tokenStatusId: - type: integer + tokenStatus: + type: object + properties: + tokenStatusId: + type: integer + name: + type: string expirationDate: type: string replacedByTokenId: @@ -2843,32 +1560,32 @@ components: type: object properties: ovPayToken: - $ref: '#/components/schemas/ovPayTokenEntity' + $ref: "#/components/schemas/ovPayTokenEntity" patchPerson: type: object properties: person: - $ref: '#/components/schemas/personEntity' + $ref: "#/components/schemas/personEntity" patchAddress: type: object properties: address: - $ref: '#/components/schemas/addressPatchEntity' + $ref: "#/components/schemas/addressPatchEntity" patchPhone: type: object properties: phone: - $ref: '#/components/schemas/phonePatchEntity' + $ref: "#/components/schemas/phonePatchEntity" postAddress: type: object properties: address: - $ref: '#/components/schemas/addressPostEntity' + $ref: "#/components/schemas/addressPostEntity" postPhone: type: object properties: phone: - $ref: '#/components/schemas/phonePostEntity' + $ref: "#/components/schemas/phonePostEntity" personEntity: type: object properties: @@ -3054,7 +1771,7 @@ components: example: 0044831b-8e80c-4f82-r989a-8d85ee1996 lastDigits: type: string - example: '0001' + example: "0001" ovpasNumber: type: integer example: 1 @@ -3073,7 +1790,7 @@ components: ovPayToken: type: array items: - $ref: '#/components/schemas/ovPayTokenGetEntity' + $ref: "#/components/schemas/ovPayTokenGetEntity" postCustomerProfileOvPayTokenResponse: type: object properties: @@ -3094,7 +1811,7 @@ components: properties: code: type: string - example: '400' + example: "400" type: type: string message: @@ -3110,7 +1827,7 @@ components: properties: code: type: string - example: '900901' + example: "900901" type: type: string message: @@ -3126,7 +1843,7 @@ components: properties: code: type: string - example: '404' + example: "404" type: type: string example: Status report @@ -3141,7 +1858,7 @@ components: properties: code: type: string - example: '409' + example: "409" type: type: string example: Conflict @@ -3155,7 +1872,7 @@ components: properties: code: type: string - example: '422' + example: "422" type: type: string example: Unprocessable entity @@ -3171,11 +1888,11 @@ components: properties: code: type: string - example: '500' + example: "500" type: type: string message: type: string example: Internal Server Error description: - type: string \ No newline at end of file + type: string From 10a4147869e33a4357739bc18cd736d150fc4d50 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Thu, 19 Dec 2024 09:48:48 +0100 Subject: [PATCH 03/30] fixed semantic error --- src/openapi/customers/customers-crud-v2.yaml | 23 +++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 6d717a6..d3942fc 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -151,7 +151,7 @@ paths: vascustomerNumber: CST005 customerPreference: languageId: 1 - customerStatusInstance: + customerStatusInstances: - customerStatus: name: Active customerStatusId: 2 @@ -261,7 +261,7 @@ paths: vascustomerNumber: CST005 customerPreference: languageId: 1 - customerStatusInstance: + customerStatusInstances: - customerStatus: name: Active customerStatusId: 2 @@ -534,7 +534,7 @@ paths: vascustomerNumber: CST005 customerPreference: languageId: 1 - customerStatusInstance: + customerStatusInstances: - customerStatus: name: Active customerStatusId: 2 @@ -1132,17 +1132,14 @@ components: alias: type: string getCustomerStatusInstance: - type: object - properties: - Entries: - type: array - properties: - customerStatus: - $ref: "#/components/schemas/getCustomerStatus" - fromInclusive: + type: object + properties: + customerStatus: + $ref: "#/components/schemas/getCustomerStatus" + fromInclusive: type: string format: date - toInclusive: + toInclusive: type: string format: date getCustomerStatus: @@ -1257,7 +1254,7 @@ components: type: integer customerPreference: $ref: "#/components/schemas/getCustomerPreference" - customerStatus: + customerStatusInstances: type: array items: $ref: "#/components/schemas/getCustomerStatusInstance" From 0c6c93a507243bc21357e2d2c6eac53ca04f8023 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Thu, 19 Dec 2024 09:56:15 +0100 Subject: [PATCH 04/30] removed unnecessary schema's --- src/openapi/customers/customers-crud-v2.yaml | 528 +------------------ 1 file changed, 12 insertions(+), 516 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index d3942fc..3a332f2 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -132,8 +132,8 @@ paths: type: string example: e1307c73-676a-4d07-967b-6141276f7c7c responses: - "200": - description: Successful retrieved a customer profile + 200: + description: Successfully retrieved customer profile(s) content: application/json: schema: @@ -363,25 +363,25 @@ paths: timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 href: null - "400": + 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/400Response" - "401": + 401: description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/401Response" - "404": + 404: description: Not Found content: application/json: schema: $ref: "#/components/schemas/404Response" - "500": + 500: description: Internal Server Error content: application/json: @@ -516,8 +516,8 @@ paths: type: string example: e1307c73-676a-4d07-967b-6141276f7c7c responses: - "200": - description: Successful retrieved a customer profile + 200: + description: Successfully retrieved a customer profile content: application/json: schema: @@ -635,25 +635,25 @@ paths: user: user timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - "400": + 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/400Response" - "401": + 401: description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/401Response" - "404": + 404: description: Not Found content: application/json: schema: $ref: "#/components/schemas/404Response" - "500": + 500: description: Internal Server Error content: application/json: @@ -1047,10 +1047,6 @@ components: implicit: authorizationUrl: https://services.acc.api.htm.nl/authorize scopes: {} - bearerToken: - type: http - scheme: bearer - bearerFormat: JWT schemas: unavailable: type: object @@ -1272,256 +1268,6 @@ components: type: array items: $ref: "#/components/schemas/audit" - directDebitMandatePostEntity: - required: - - billingInformationId - - created - - directDebitMandateTypeName - - mandateAddressId - - mandateReference - type: object - properties: - directDebitMandateTypeName: - type: string - billingInformationId: - type: integer - mandateAddressId: - type: integer - created: - type: string - mandateReference: - type: string - directDebitMandatePost: - type: object - properties: - directDebitMandate: - $ref: "#/components/schemas/directDebitMandatePostEntity" - directDebitMandatePatchEntity: - type: object - properties: - directDebitMandateTypeName: - type: string - billingInformationId: - type: integer - mandateAddressId: - type: integer - mandateReference: - type: string - mandateState: - type: string - enum: - - SIGNED - - CANCELLED - - PREPARED - directDebitMandatePatch: - type: object - properties: - directDebitMandate: - $ref: "#/components/schemas/directDebitMandatePatchEntity" - directDebitMandateGETEntity: - type: object - properties: - directDebitMandateId: - type: integer - directDebitMandateTypeId: - type: integer - billingInformationId: - type: integer - mandateAddressId: - type: integer - created: - type: string - mandateReference: - type: string - mandateState: - type: string - updateTimestamp: - type: string - billingInformationGETEntity: - required: - - alias - - ascription - - bic - - billingAddressId - - billingInformationId - - iban - - issuerCountry - - swift - type: object - properties: - billingInformationId: - type: integer - issuerCountry: - type: string - iban: - type: string - bic: - type: string - swift: - type: string - ascription: - type: string - alias: - type: string - billingAddressId: - type: integer - billingInformationPostEntity: - required: - - alias - - ascription - - billingAddressId - - iban - - issuerCountry - type: object - properties: - issuerCountry: - type: string - iban: - type: string - bic: - type: string - swift: - type: string - ascription: - type: string - alias: - type: string - billingAddressId: - type: integer - billingInformationPost: - type: object - properties: - billingInformation: - $ref: "#/components/schemas/billingInformationPostEntity" - billingInformationPatchEntity: - type: object - properties: - issuerCountry: - type: string - iban: - type: string - bic: - type: string - swift: - type: string - ascription: - type: string - alias: - type: string - billingAddressId: - type: integer - billingInformationPatch: - type: object - properties: - billingInformation: - $ref: "#/components/schemas/billingInformationPatchEntity" - getCustomerProfileFinancials: - type: object - properties: - customerNumber: - type: integer - billingInformation: - type: array - items: - $ref: "#/components/schemas/billingInformationGETEntity" - directDebitMandate: - type: array - items: - $ref: "#/components/schemas/directDebitMandateGETEntity" - customerPreferencesEntity: - type: object - properties: - languageId: - type: string - postCustomerProfile: - type: object - properties: - debtorStatusId: - type: integer - customerPreference: - $ref: "#/components/schemas/customerPreferencesEntity" - person: - $ref: "#/components/schemas/personEntity" - addresses: - type: array - items: - $ref: "#/components/schemas/addressPostEntity" - phones: - type: array - items: - $ref: "#/components/schemas/phonePostEntity" - postCustomerStatusEntity: - type: object - properties: - name: - type: string - postCustomerStatus: - type: object - properties: - customerStatus: - $ref: "#/components/schemas/postCustomerStatusEntity" - postOvChipCardEntity: - required: - - chipCardNumber - type: object - properties: - chipCardNumber: - type: integer - validUntil: - type: string - format: date - alias: - type: string - patchCustomerProfile: - type: object - properties: - debtorStatusId: - type: integer - patchCustomerPreferencesEntity: - type: object - properties: - languageId: - type: string - patchCustomerPreferences: - type: object - properties: - customerPreference: - $ref: "#/components/schemas/patchCustomerPreferencesEntity" - postOvChipCard: - type: object - properties: - ovChipCard: - $ref: "#/components/schemas/postOvChipCardEntity" - postOvPayToken: - required: - - alias - - lastDigits - - tokenTypeId - - xBot - - xTat - type: object - properties: - ovPayToken: - type: object - properties: - tokenTypeId: - type: string - xTat: - type: string - xBot: - type: string - alias: - type: string - lastDigits: - type: integer - ovpasNumber: - type: string - tokenStatusId: - type: integer - expirationDate: - type: string - replacedByTokenId: - type: integer ovPayTokenEntity: type: object properties: @@ -1553,256 +1299,6 @@ components: type: string replacedByTokenId: type: integer - patchOvPayToken: - type: object - properties: - ovPayToken: - $ref: "#/components/schemas/ovPayTokenEntity" - patchPerson: - type: object - properties: - person: - $ref: "#/components/schemas/personEntity" - patchAddress: - type: object - properties: - address: - $ref: "#/components/schemas/addressPatchEntity" - patchPhone: - type: object - properties: - phone: - $ref: "#/components/schemas/phonePatchEntity" - postAddress: - type: object - properties: - address: - $ref: "#/components/schemas/addressPostEntity" - postPhone: - type: object - properties: - phone: - $ref: "#/components/schemas/phonePostEntity" - personEntity: - type: object - properties: - birthname: - type: string - surname: - type: string - prefix: - type: string - suffix: - type: string - dateOfBirth: - type: string - format: date - emailAddress: - type: string - addressPostEntity: - required: - - addressTypeId - - city - - country - - houseNumber - - postalCode - - street - type: object - properties: - street: - type: string - houseNumber: - type: integer - houseNumberSuffix: - type: string - postalCode: - type: string - city: - type: string - country: - type: string - isPreferred: - type: boolean - addressTypeId: - type: integer - addressPatchEntity: - type: object - properties: - street: - type: string - houseNumber: - type: integer - houseNumberSuffix: - type: string - postalCode: - type: string - city: - type: string - country: - type: string - addressTypeId: - type: integer - isPreferred: - type: boolean - phonePostEntity: - required: - - countryCode - - number - - phoneTypeId - type: object - properties: - number: - type: string - countryCode: - type: string - phoneTypeId: - type: integer - isPreferred: - type: boolean - phonePatchEntity: - type: object - properties: - number: - type: string - countryCode: - type: string - phoneTypeId: - type: integer - isPreferred: - type: boolean - defaultCustomerProfileResponse: - type: object - properties: - customerNumber: - type: integer - example: 10000001 - phonePatchOKResponse: - type: object - properties: - id: - type: integer - example: 1 - addressPatchOKResponse: - type: object - properties: - id: - type: integer - example: 1 - postCustomerProfileCustomerNumberResponse: - type: object - properties: - customerNumber: - type: integer - example: 10000001 - postCustomerProfileAddressResponse: - type: object - properties: - customerNumber: - type: integer - example: 10000001 - addressId: - type: integer - example: 1 - postCustomerProfilePhoneResponse: - type: object - properties: - customerNumber: - type: integer - example: 10000001 - phoneId: - type: integer - example: 1 - postCustomerProfileBillingInformationResponse: - type: object - properties: - customerNumber: - type: integer - example: 10000001 - billingInformationId: - type: integer - example: 1 - postCustomerProfileDirectDebitMandateResponse: - type: object - properties: - customerNumber: - type: integer - example: 10000001 - directDebitMandateId: - type: integer - example: 1 - postCustomerProfileOvChipCardResponse: - type: object - properties: - customerNumber: - type: integer - example: 10000001 - ovChipCardId: - type: integer - example: 1 - patchCustomerProfileResponse: - type: object - properties: - customerNumber: - type: integer - example: 10000001 - patchCustomerPreferencesResponse: - type: object - properties: - customerNumber: - type: integer - example: 10000001 - ovPayTokenGetEntity: - type: object - properties: - ovPayTokenId: - type: integer - example: 1 - tokenTypeId: - type: integer - example: 1 - xTat: - type: string - example: 0044831b-8e80c-4f82-r989a-8d85ee1996 - xBot: - type: string - example: 0044831b-8e80c-4f82-r989a-8d85ee1996 - lastDigits: - type: string - example: "0001" - ovpasNumber: - type: integer - example: 1 - alias: - type: string - example: alias - tokenStatusId: - type: integer - expirationDate: - type: string - replacedByTokenId: - type: integer - getCustomerProfileOvPayTokenResponse: - type: object - properties: - ovPayToken: - type: array - items: - $ref: "#/components/schemas/ovPayTokenGetEntity" - postCustomerProfileOvPayTokenResponse: - type: object - properties: - ovPaytoken: - type: object - example: 10000001 - ovPayTokenId: - type: integer - example: 1 - patchCustomerProfileCustomerNumberResponse: - type: object - properties: - customerNumber: - type: integer - example: 10000001 400Response: type: object properties: From cb0c79f68cc8a87513d45ba3faea2b285dd9e03c Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Thu, 19 Dec 2024 11:47:23 +0100 Subject: [PATCH 05/30] removed to much --- src/openapi/customers/customers-crud-v2.yaml | 177 +++++++++++++++++++ 1 file changed, 177 insertions(+) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 3a332f2..00c7d03 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -1299,6 +1299,183 @@ components: type: string replacedByTokenId: type: integer + postPhone: + type: object + properties: + phone: + $ref: "#/components/schemas/phonePostEntity" + personEntity: + type: object + properties: + birthname: + type: string + surname: + type: string + prefix: + type: string + suffix: + type: string + dateOfBirth: + type: string + format: date + emailAddress: + type: string + addressPostEntity: + required: + - addressTypeId + - city + - country + - houseNumber + - postalCode + - street + type: object + properties: + street: + type: string + houseNumber: + type: integer + houseNumberSuffix: + type: string + postalCode: + type: string + city: + type: string + country: + type: string + isPreferred: + type: boolean + addressTypeId: + type: integer + phonePostEntity: + required: + - countryCode + - number + - phoneTypeId + type: object + properties: + number: + type: string + countryCode: + type: string + phoneTypeId: + type: integer + isPreferred: + type: boolean + defaultCustomerProfileResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + postCustomerProfileCustomerNumberResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + postCustomerProfileAddressResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + addressId: + type: integer + example: 1 + postCustomerProfilePhoneResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + phoneId: + type: integer + example: 1 + postCustomerProfileBillingInformationResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + billingInformationId: + type: integer + example: 1 + postCustomerProfileDirectDebitMandateResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + directDebitMandateId: + type: integer + example: 1 + postCustomerProfileOvChipCardResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + ovChipCardId: + type: integer + example: 1 + patchCustomerProfileResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + patchCustomerPreferencesResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + ovPayTokenGetEntity: + type: object + properties: + ovPayTokenId: + type: integer + example: 1 + tokenTypeId: + type: integer + example: 1 + xTat: + type: string + example: 0044831b-8e80c-4f82-r989a-8d85ee1996 + xBot: + type: string + example: 0044831b-8e80c-4f82-r989a-8d85ee1996 + lastDigits: + type: string + example: "0001" + ovpasNumber: + type: integer + example: 1 + alias: + type: string + example: alias + tokenStatusId: + type: integer + expirationDate: + type: string + replacedByTokenId: + type: integer + getCustomerProfileOvPayTokenResponse: + type: object + properties: + ovPayToken: + type: array + items: + $ref: "#/components/schemas/ovPayTokenGetEntity" + postCustomerProfileOvPayTokenResponse: + type: object + properties: + ovPaytoken: + type: object + example: 10000001 + ovPayTokenId: + type: integer + example: 1 400Response: type: object properties: From c5fa6746a221c221e3fa76c8b73dd16e57310d2b Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Thu, 19 Dec 2024 11:49:39 +0100 Subject: [PATCH 06/30] hoofdentiteit volgens specs --- src/openapi/customers/customers-crud-v2.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 00c7d03..eaea554 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -141,7 +141,7 @@ paths: examples: fullCustomerProfile: value: - Entries: + customers: - customerProfileId: 1 customerNumber: 1000001 debtorNumber: TEST001 @@ -1233,7 +1233,7 @@ components: getCustomerProfileList: type: object properties: - Entries: + customers: type: array items: $ref: "#/components/schemas/getCustomerProfile" From dad9ece54668522a07111101d7284870a53d05da Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Thu, 19 Dec 2024 11:55:25 +0100 Subject: [PATCH 07/30] stuff --- src/openapi/customers/customers-crud-v2.yaml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index eaea554..65d5586 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -10,7 +10,7 @@ paths: get: tags: - ABTCustomers - summary: Search for customer profiles + summary: Search customer profiles description: >- Search for all customer profile list in the ABT database matching certain query parameters parameters: @@ -1367,6 +1367,24 @@ components: customerNumber: type: integer example: 10000001 + postCustomerProfile: + type: object + properties: + debtorStatusId: + type: integer + customerPreference: + $ref: '#/components/schemas/customerPreferencesEntity' + person: + $ref: '#/components/schemas/personEntity' + addresses: + type: array + items: + $ref: '#/components/schemas/addressPostEntity' + phones: + type: array + items: + $ref: '#/components/schemas/phonePostEntity' + postCustomerProfileCustomerNumberResponse: type: object properties: From 27351f1101ed62216a8d8e0c104850264f3e04ea Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Thu, 19 Dec 2024 11:58:36 +0100 Subject: [PATCH 08/30] more stuff --- src/openapi/customers/customers-crud-v2.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 65d5586..1f93378 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -1384,7 +1384,11 @@ components: type: array items: $ref: '#/components/schemas/phonePostEntity' - + customerPreferencesEntity: + type: object + properties: + languageId: + type: string postCustomerProfileCustomerNumberResponse: type: object properties: From 42dce39642fc42875304aac1c7f1f76a4bd42b99 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 6 Jan 2025 12:41:45 +0100 Subject: [PATCH 09/30] first fixes --- src/openapi/customers/customers-crud-v2.yaml | 389 ++++--------------- 1 file changed, 69 insertions(+), 320 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 1f93378..f907126 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -4,15 +4,15 @@ info: version: "1.0" description: CRUD APIs for ABT Customer database. These are NOT the functional APIs from Service Engine. servers: - - url: https://api.integratielaag.nl/v2 + - url: https://api.integratielaag.nl paths: - /customers/list: + /customers: get: tags: - ABTCustomers summary: Search customer profiles description: >- - Search for all customer profile list in the ABT database matching certain query parameters + Search for all customer profile list in the ABT database matching given query parameters parameters: - name: customerProfileId in: query @@ -32,13 +32,15 @@ paths: - name: debtorNumber in: query schema: - type: integer - example: 100001 + type: string + example: DB100001 - name: debtorStatusId in: query schema: - type: integer - example: 1 + type: array + items: + type: integer + description: Filter on possible debtor status. 1 = active, 2 = inactive - name: birthname in: query schema: @@ -80,7 +82,7 @@ paths: in: query schema: type: string - example: 1234 AB + example: 1234AB - name: addressCity in: query schema: @@ -90,7 +92,7 @@ paths: in: query schema: type: string - example: The Netherlands + example: NL - name: phoneNumber in: query schema: @@ -111,10 +113,10 @@ paths: schema: type: string example: My ovchipcard - - name: ovPayTokenNumber + - name: ovPasNumber in: query schema: - type: integer + type: string example: 0123456789 - name: ovPayTokenAlias in: query @@ -144,13 +146,17 @@ paths: customers: - customerProfileId: 1 customerNumber: 1000001 - debtorNumber: TEST001 + debtorNumber: DB100001 debtorStatus: debtorStatusId: 1 name: Inactive vascustomerNumber: CST005 customerPreference: - languageId: 1 + language: + languageId: 1 + name: Dutch + ietfCode: nl-NL + iso639Code: nl customerStatusInstances: - customerStatus: name: Active @@ -165,11 +171,11 @@ paths: person: birthname: Pieter surname: De valen - prefix: dhr - suffix: De + prefix: De + suffix: dhr dateOfBirth: "2002-10-29" - emailAddress: TEST@HTM.NL - address: + emailAddresses: TEST@HTM.NL + addresses: - addressId: 1 street: mystreet houseNumber: 1 @@ -192,22 +198,22 @@ paths: addressType: addressTypeId: 2 name: Office - phone: + phones: - phoneId: 1 number: "3112345678" - countryCode: NL + countryCode: "+31" phoneType: phoneTypeId: 1 name: Home isPreferred: true - phoneId: 2 number: "333225588" - countryCode: ES + countryCode: "+31" phoneType: phoneTypeId: 2 name: Work isPreferred: false - ovChipCard: + ovChipcards: - ovChipCardId: 1 chipCardNumber: 1234123412341234 validUntil: "2023-01-01" @@ -216,7 +222,7 @@ paths: chipCardNumber: 1234123412341235 validUntil: "2025-01-01" alias: alias - ovPayToken: + ovPayTokens: - ovPayTokenId: 126 tokenType: tokenTypeId: 1 @@ -260,7 +266,11 @@ paths: name: Inactive vascustomerNumber: CST005 customerPreference: - languageId: 1 + language: + languageId: 1 + name: Dutch + ietfCode: nl-NL + iso639Code: nl customerStatusInstances: - customerStatus: name: Active @@ -275,10 +285,10 @@ paths: person: birthname: Pieter surname: De valen - prefix: dhr - suffix: De + prefix: De + suffix: Dhr dateOfBirth: "2002-10-29" - emailAddress: TEST@HTM.NL + emailAddresses: TEST@HTM.NL address: - addressId: 1 street: mystreet @@ -302,22 +312,22 @@ paths: addressType: addressTypeId: 2 name: Office - phone: + phones: - phoneId: 1 number: "3112345678" - countryCode: NL + countryCode: "+31" phoneType: phoneTypeId: 1 name: Home isPreferred: true - phoneId: 2 number: "333225588" - countryCode: ES + countryCode: "+31" phoneType: phoneTypeId: 2 name: Work isPreferred: false - ovChipCard: + ovChipcards: - ovChipCardId: 1 chipCardNumber: 1234123412341234 validUntil: "2023-01-01" @@ -326,7 +336,7 @@ paths: chipCardNumber: 1234123412341235 validUntil: "2025-01-01" alias: alias - ovPayToken: + ovPayTokens: - ovPayTokenId: 126 tokenType: tokenTypeId: 2 @@ -390,279 +400,7 @@ paths: security: - default: [] x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /customers: - get: - tags: - - ABTCustomers - summary: Search for customer profile - description: "Search for a unique customer profile in the ABT database with query parameters " - parameters: - - name: customerProfileId - in: query - schema: - type: integer - example: 1 - - name: customerNumber - in: query - schema: - type: integer - example: 1000001 - - name: customerStatusId - in: query - schema: - type: integer - example: 1 - - name: debtorNumber - in: query - schema: - type: integer - example: 100001 - - name: debtorStatusId - in: query - schema: - type: integer - example: 1 - - name: birthname - in: query - schema: - type: string - example: John - - name: surname - in: query - schema: - type: string - example: Doe - - name: emailAddress - in: query - schema: - type: string - format: email - example: john.doe@mymailprovider.com - - name: dateOfBirth - in: query - schema: - type: string - format: date - example: "2000-01-01" - - name: addressStreet - in: query - schema: - type: string - example: Sesamestreet - - name: addressHouseNumber - in: query - schema: - type: integer - example: 1 - - name: addressHouseNumberSuffix - in: query - schema: - type: string - example: A - - name: addressPostalCode - in: query - schema: - type: string - example: 1234 AB - - name: addressCity - in: query - schema: - type: string - example: The Hague - - name: addressCountry - in: query - schema: - type: string - example: The Netherlands - - name: phoneNumber - in: query - schema: - type: string - example: "0123456789" - - name: phoneCountryCode - in: query - schema: - type: string - example: "+31" - - name: ovChipcardNumber - in: query - schema: - type: integer - example: 0123456789 - - name: ovChipcardAlias - in: query - schema: - type: string - example: My ovchipcard - - name: ovPayTokenNumber - in: query - schema: - type: integer - example: 0123456789 - - name: ovPayTokenAlias - in: query - schema: - type: string - example: My Ov Pay Token - - name: ovPayTokenXTat - in: query - schema: - type: string - example: 180d04e0-a721-447e-a1d9-b416937b43bc - - name: ovPayTokenXBot - in: query - schema: - type: string - example: e1307c73-676a-4d07-967b-6141276f7c7c - responses: - 200: - description: Successfully retrieved a customer profile - content: - application/json: - schema: - $ref: "#/components/schemas/getCustomerProfile" - examples: - fullCustomerProfile: - value: - customerProfileId: 1 - customerNumber: 1000001 - debtorNumber: TEST001 - debtorStatus: - debtorStatusId: 1 - name: Inactive - vascustomerNumber: CST005 - customerPreference: - languageId: 1 - customerStatusInstances: - - customerStatus: - name: Active - customerStatusId: 2 - fromInclusive: "2022-08-04 15:01:00.000" - toInclusive: "2022-08-05 15:01:00.000" - - customerStatus: - name: Blocked - customerStatusId: 3 - fromInclusive: "2022-08-05 15:01:00.000" - toInclusive: null - person: - birthname: Pieter - surname: De valen - prefix: dhr - suffix: De - dateOfBirth: "2002-10-29" - emailAddress: TEST@HTM.NL - address: - - addressId: 1 - street: mystreet - houseNumber: 1 - houseNumberSuffix: null - postalCode: 0000AA - city: Den Haag - country: NL - isPreferred: false - addressType: - addressTypeId: 2 - name: Office - - addressId: 2 - street: mystreet 33 - houseNumber: 1 - houseNumberSuffix: null - postalCode: 4455CA - city: Den BOSCH - country: NL - isPreferred: true - addressType: - addressTypeId: 2 - name: Office - phone: - - phoneId: 1 - number: "3112345678" - countryCode: NL - phoneType: - phoneTypeId: 1 - name: Home - isPreferred: true - - phoneId: 2 - number: "333225588" - countryCode: ES - phoneType: - phoneTypeId: 2 - name: Work - isPreferred: false - ovChipCard: - - ovChipCardId: 1 - chipCardNumber: 1234123412341234 - validUntil: "2023-01-01" - alias: alias - - ovChipCardId: 2 - chipCardNumber: 1234123412341235 - validUntil: "2025-01-01" - alias: alias - ovPayToken: - - ovPayTokenId: 126 - tokenType: - tokenTypeId: 1 - name: EMV - xTat: twioq73033 - xBot: hjihwqui27 - alias: alias - lastDigits: "5678" - ovpasNumber: null - tokenStatus: - tokenStatusId: 2 - name: Active - expirationDate: "2025-04-20T17:05:52.000+02:00" - replacedByTokenId: 1 - - ovPayTokenId: 127 - tokenType: - tokenTypeId: 2 - name: OV-pas physical - xTat: hhe2830283 - xBot: jdhd828033 - alias: alias - lastDigits: "5674" - ovpasNumber: OV34568 - tokenStatus: - tokenStatusId: 2 - name: Active - expirationDate: "2024-04-20T17:05:52.000+02:00" - replacedByTokenId: 2 - audit: - - auditTrailId: 1 - customerProfileId: 1 - action: insert - user: user - timestamp: "2023-10-20T17:05:52.000+02:00" - correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - 400: - description: Bad Request - content: - application/json: - schema: - $ref: "#/components/schemas/400Response" - 401: - description: Unauthorized - content: - application/json: - schema: - $ref: "#/components/schemas/401Response" - 404: - description: Not Found - content: - application/json: - schema: - $ref: "#/components/schemas/404Response" - 500: - description: Internal Server Error - content: - application/json: - schema: - $ref: "#/components/schemas/500Response" - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited + x-throttling-tier: Unlimited post: tags: - ABTCustomers @@ -721,11 +459,11 @@ paths: addressTypeId: 2 phones: - number: "6123456789" - countryCode: "0031" + countryCode: "+31" phoneTypeId: 1 isPreferred: true - number: "7012345678" - countryCode: "0031" + countryCode: "+31" phoneTypeId: 2 isPreferred: false required: true @@ -1092,7 +830,7 @@ components: format: datetime correlationId: type: string - ovPayToken: + getOvPayTokens: type: object properties: ovPayTokenId: @@ -1115,7 +853,7 @@ components: type: string replacedByTokenId: type: integer - getOvChipCard: + getOvChipcards: type: object properties: ovChipCardId: @@ -1166,18 +904,18 @@ components: dateOfBirth: type: string format: date - emailAddress: + emailAddresses: type: string format: email - address: + addresses: type: array items: - $ref: "#/components/schemas/getAddress" - phone: + $ref: "#/components/schemas/getAddresses" + phones: type: array items: - $ref: "#/components/schemas/getPhone" - getAddress: + $ref: "#/components/schemas/getPhones" + getAddresses: type: object properties: addressId: @@ -1205,7 +943,7 @@ components: type: integer name: type: string - getPhone: + getPhones: type: object properties: phoneId: @@ -1226,11 +964,22 @@ components: name: type: string getCustomerPreference: + type: object + properties: + language: + $ref: "#/components/schemas/getCustomerLanguage" + getCustomerLanguage: type: object properties: languageId: type: integer - getCustomerProfileList: + name: + type: string + ietfCode: + type: string + iso639Code: + type: string + getCustomerProfiles: type: object properties: customers: @@ -1256,14 +1005,14 @@ components: $ref: "#/components/schemas/getCustomerStatusInstance" person: $ref: "#/components/schemas/getPerson" - ovChipCard: + ovChipcards: type: array items: - $ref: "#/components/schemas/getOvChipCard" - ovPayToken: + $ref: "#/components/schemas/getOvChipcards" + ovPayTokens: type: array items: - $ref: "#/components/schemas/ovPayToken" + $ref: "#/components/schemas/getOvPayTokens" audit: type: array items: From fcc0740130fd0147fc6ee184eabcdd41cbe7fb92 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 6 Jan 2025 15:16:27 +0100 Subject: [PATCH 10/30] query params --- src/openapi/customers/customers-crud-v2.yaml | 50 +++++++++++++------- 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index f907126..8e3a05a 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -27,8 +27,10 @@ paths: - name: customerStatusId in: query schema: - type: integer - example: 1 + type: array + items: + type: integer + description: Filter on possible customer statuses. 1 = Inactive, 2 = Active, 3 = Blocked, 4 = Frozen, 5 = Cleaned - name: debtorNumber in: query schema: @@ -40,7 +42,7 @@ paths: type: array items: type: integer - description: Filter on possible debtor status. 1 = active, 2 = inactive + description: Filter on possible debtor statuses. 1 = Active, 2 = Inactive - name: birthname in: query schema: @@ -51,6 +53,22 @@ paths: schema: type: string example: Doe + - name: prefix + in: query + schema: + type: string + example: De + - name: suffix + in: query + schema: + type: string + example: dhr + - name: emailAddress + in: query + schema: + type: string + format: email + example: john.doe@mymailprovider.com - name: emailAddress in: query schema: @@ -227,8 +245,8 @@ paths: tokenType: tokenTypeId: 1 name: EMV - xTat: twioq73033 - xBot: hjihwqui27 + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 alias: alias lastDigits: "5678" ovpasNumber: null @@ -241,8 +259,8 @@ paths: tokenType: tokenTypeId: 2 name: OV-pas physical - xTat: hhe2830283 - xBot: jdhd828033 + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 alias: alias lastDigits: "5674" ovpasNumber: OV34568 @@ -251,7 +269,7 @@ paths: name: Active expirationDate: "2024-04-20T17:05:52.000+02:00" replacedByTokenId: 2 - audit: + auditTrails: - auditTrailId: 1 customerProfileId: 1 action: insert @@ -341,8 +359,8 @@ paths: tokenType: tokenTypeId: 2 name: OV-pas physical - xTat: twioq73033 - xBot: hjihwqui27 + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 alias: alias lastDigits: "5678" ovpasNumber: OV34567 @@ -355,8 +373,8 @@ paths: tokenType: tokenTypeId: 2 name: OV-pas physical - xTat: hhe2830283 - xBot: jdhd828033 + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 alias: alias lastDigits: "5674" ovpasNumber: OV34568 @@ -365,7 +383,7 @@ paths: name: active expirationDate: "2024-04-20T17:05:52.000+02:00" replacedByTokenId: 2 - audit: + auditTrails: - auditTrailId: 1 customerProfileId: 1 action: insert @@ -814,7 +832,7 @@ components: example: - /account/12345 - /account/67890 - audit: + getAuditTrails: type: object properties: auditTrailId: @@ -1013,10 +1031,10 @@ components: type: array items: $ref: "#/components/schemas/getOvPayTokens" - audit: + auditTrails: type: array items: - $ref: "#/components/schemas/audit" + $ref: "#/components/schemas/getAuditTrails" ovPayTokenEntity: type: object properties: From 3994e0ea90048f1ea54151d908786c8a884bff0d Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 6 Jan 2025 15:19:00 +0100 Subject: [PATCH 11/30] semantic errors --- src/openapi/customers/customers-crud-v2.yaml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 8e3a05a..4ccb2d1 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -69,12 +69,6 @@ paths: type: string format: email example: john.doe@mymailprovider.com - - name: emailAddress - in: query - schema: - type: string - format: email - example: john.doe@mymailprovider.com - name: dateOfBirth in: query schema: @@ -157,7 +151,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/getCustomerProfileList" + $ref: "#/components/schemas/getCustomerProfiles" examples: fullCustomerProfile: value: From 8a5aba4bf59846d7e68a7ceee6a14af7dcd3a3d0 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 6 Jan 2025 15:46:35 +0100 Subject: [PATCH 12/30] added additional query params --- src/openapi/customers/customers-crud-v2.yaml | 36 ++++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 4ccb2d1..17d78e6 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -62,7 +62,7 @@ paths: in: query schema: type: string - example: dhr + example: PhD - name: emailAddress in: query schema: @@ -145,6 +145,36 @@ paths: schema: type: string example: e1307c73-676a-4d07-967b-6141276f7c7c + - name: mandateReference + in: query + schema: + type: string + example: PAYT-1 + - name: iban + in: query + schema: + type: string + example: NL20INGB0001234567 + - name: bic + in: query + schema: + type: string + example: NL20INGB + - name: swift + in: query + schema: + type: string + example: NL20INGB + - name: ascription + in: query + schema: + type: string + example: j.jansen + - name: billingAlias + in: query + schema: + type: string + example: j.jansen responses: 200: description: Successfully retrieved customer profile(s) @@ -184,7 +214,7 @@ paths: birthname: Pieter surname: De valen prefix: De - suffix: dhr + suffix: PhD dateOfBirth: "2002-10-29" emailAddresses: TEST@HTM.NL addresses: @@ -298,7 +328,7 @@ paths: birthname: Pieter surname: De valen prefix: De - suffix: Dhr + suffix: PhD dateOfBirth: "2002-10-29" emailAddresses: TEST@HTM.NL address: From f44cb89138788160e91138bb060089a9b141870f Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 6 Jan 2025 16:50:16 +0100 Subject: [PATCH 13/30] billing alias example updated --- src/openapi/customers/customers-crud-v2.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 17d78e6..755d2c9 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -174,7 +174,7 @@ paths: in: query schema: type: string - example: j.jansen + example: Mijn ING bankrekening responses: 200: description: Successfully retrieved customer profile(s) From 5ebc012ceb1637bcc5d6b335108cfef2bca28270 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 10 Feb 2025 17:46:17 +0100 Subject: [PATCH 14/30] updated existing CRUD with valid examples for stub --- src/openapi/customers/customers-crud-v2.yaml | 699 +++++++++++++------ 1 file changed, 472 insertions(+), 227 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 755d2c9..d94b1ca 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -1,15 +1,116 @@ openapi: "3.0.3" info: title: ABT Customers CRUD APIs v2 - version: "1.0" + version: "2.0" description: CRUD APIs for ABT Customer database. These are NOT the functional APIs from Service Engine. servers: - - url: https://api.integratielaag.nl + - url: https://api.integratielaag.nl/abt/abtcustomers/2.0 paths: /customers: + post: + tags: + - Customer + summary: Create a customer profile + description: >- + Create a customer profile in the ABT database with status ACTIVE and + debtorStatus Inactive with a start date based on the timestamp of this + post call. + + - Requested format for postal code: + - 0000AA + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/postCustomerProfile" + examples: + minimumProfile: + value: {} + basicCustomerProfile: + value: + debtorStatusId: 2 + person: + birthname: Jan + surname: Jansen + emailAddress: j.jansen@hatseflats.nl + fullCustomerProfile: + value: + customerPreference: + languageId: 1 + debtorStatusId: 2 + person: + birthname: Jan + surname: Jansen + prefix: dhr + suffix: jr + dateOfBirth: "1970-01-01" + emailAddress: j.jansen@hatseflats.nl + addresses: + - street: Laan van Meerdervoort + houseNumber: 5 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: true + addressTypeId: 1 + - street: Beeklaan + houseNumber: 30 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: false + addressTypeId: 2 + phones: + - number: "6123456789" + countryCode: "+31" + phoneTypeId: 1 + isPreferred: true + - number: "7012345678" + countryCode: "+31" + phoneTypeId: 2 + isPreferred: false + required: true + responses: + "201": + description: Successful created a customer profile + content: + application/json: + schema: + $ref: "#/components/schemas/postCustomerProfileResponse" + examples: + customerProfileCreated: + summary: customerProfileCreated + description: >- + Successfully created a customer profile + value: + customerProfileId: 1 + customerNumber: 1000001 + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + invalidDataTypeError: + summary: invalidDataTypeError + description: >- + The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + value: + type: https://htm.nl/api/v1/probs/bad-request + title: Your request contains an invalid datatype + detail: '''2023-02-01 00:00:00'' is not a valid Datetime' + instance: urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited get: tags: - - ABTCustomers + - Customer summary: Search customer profiles description: >- Search for all customer profile list in the ABT database matching given query parameters @@ -177,13 +278,16 @@ paths: example: Mijn ING bankrekening responses: 200: - description: Successfully retrieved customer profile(s) + description: Ok content: application/json: schema: $ref: "#/components/schemas/getCustomerProfiles" examples: - fullCustomerProfile: + getCustomersMultiple: + summary: getCustomersMultiple + description: >- + Found multiple customer profiles matching the search parameters, does not return the financial details value: customers: - customerProfileId: 1 @@ -205,11 +309,6 @@ paths: customerStatusId: 2 fromInclusive: "2022-08-04 15:01:00.000" toInclusive: "2022-08-05 15:01:00.000" - - customerStatus: - name: Blocked - customerStatusId: 3 - fromInclusive: "2022-08-05 15:01:00.000" - toInclusive: null person: birthname: Pieter surname: De valen @@ -323,6 +422,11 @@ paths: name: Blocked customerStatusId: 3 fromInclusive: "2022-08-05 15:01:00.000" + toInclusive: "2023-08-05 15:01:00.000" + - customerStatus: + name: Active + customerStatusId: 2 + fromInclusive: "2023-08-05 15:01:00.000" toInclusive: null person: birthname: Pieter @@ -415,163 +519,366 @@ paths: timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 href: null + getCustomerActive: + summary: getCustomerActive + description: >- + Found a single customerProfile with an active status + value: + customers: + - customerProfileId: 1 + customerNumber: 1000001 + debtorNumber: DB100001 + debtorStatus: + debtorStatusId: 1 + name: Inactive + vascustomerNumber: CST005 + customerPreference: + language: + languageId: 1 + name: Dutch + ietfCode: nl-NL + iso639Code: nl + customerStatusInstances: + - customerStatus: + name: Active + customerStatusId: 2 + fromInclusive: "2022-08-04 15:01:00.000" + toInclusive: null + person: + birthname: Pieter + surname: De valen + prefix: De + suffix: PhD + dateOfBirth: "2002-10-29" + emailAddresses: TEST@HTM.NL + addresses: + - addressId: 1 + street: mystreet + houseNumber: 1 + houseNumberSuffix: null + postalCode: 0000AA + city: Den Haag + country: NL + isPreferred: false + addressType: + addressTypeId: 2 + name: Office + - addressId: 2 + street: mystreet 33 + houseNumber: 1 + houseNumberSuffix: null + postalCode: 4455CA + city: Den BOSCH + country: NL + isPreferred: true + addressType: + addressTypeId: 2 + name: Office + phones: + - phoneId: 1 + number: "3112345678" + countryCode: "+31" + phoneType: + phoneTypeId: 1 + name: Home + isPreferred: true + - phoneId: 2 + number: "333225588" + countryCode: "+31" + phoneType: + phoneTypeId: 2 + name: Work + isPreferred: false + ovChipcards: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: "2023-01-01" + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: "2025-01-01" + alias: alias + ovPayTokens: + - ovPayTokenId: 126 + tokenType: + tokenTypeId: 1 + name: EMV + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5678" + ovpasNumber: null + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2025-04-20T17:05:52.000+02:00" + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenType: + tokenTypeId: 2 + name: OV-pas physical + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5674" + ovpasNumber: OV34568 + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2024-04-20T17:05:52.000+02:00" + replacedByTokenId: 2 + auditTrails: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: "2023-10-20T17:05:52.000+02:00" + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + href: null + getCustomerBlocked: + summary: getCustomerBlocked + description: >- + Found a single customerProfile with a blocked status + value: + customers: + - customerProfileId: 1 + customerNumber: 1000001 + debtorNumber: DB100001 + debtorStatus: + debtorStatusId: 2 + name: Active + vascustomerNumber: CST005 + customerPreference: + language: + languageId: 1 + name: Dutch + ietfCode: nl-NL + iso639Code: nl + customerStatusInstances: + - customerStatus: + name: Active + customerStatusId: 2 + fromInclusive: "2022-08-04 15:01:00.000" + toInclusive: "2022-08-05 15:01:00.000" + - customerStatus: + name: Blocked + customerStatusId: 3 + fromInclusive: "2022-08-05 15:01:00.000" + toInclusive: null + person: + birthname: Pieter + surname: De valen + prefix: De + suffix: PhD + dateOfBirth: "2002-10-29" + emailAddresses: TEST@HTM.NL + addresses: + - addressId: 1 + street: mystreet + houseNumber: 1 + houseNumberSuffix: null + postalCode: 0000AA + city: Den Haag + country: NL + isPreferred: false + addressType: + addressTypeId: 2 + name: Office + - addressId: 2 + street: mystreet 33 + houseNumber: 1 + houseNumberSuffix: null + postalCode: 4455CA + city: Den BOSCH + country: NL + isPreferred: true + addressType: + addressTypeId: 2 + name: Office + phones: + - phoneId: 1 + number: "3112345678" + countryCode: "+31" + phoneType: + phoneTypeId: 1 + name: Home + isPreferred: true + - phoneId: 2 + number: "333225588" + countryCode: "+31" + phoneType: + phoneTypeId: 2 + name: Work + isPreferred: false + ovChipcards: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: "2023-01-01" + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: "2025-01-01" + alias: alias + ovPayTokens: + - ovPayTokenId: 126 + tokenType: + tokenTypeId: 1 + name: EMV + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5678" + ovpasNumber: null + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2025-04-20T17:05:52.000+02:00" + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenType: + tokenTypeId: 2 + name: OV-pas physical + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5674" + ovpasNumber: OV34568 + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2024-04-20T17:05:52.000+02:00" + replacedByTokenId: 2 + auditTrails: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: "2023-10-20T17:05:52.000+02:00" + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + href: null 400: description: Bad Request content: application/json: schema: - $ref: "#/components/schemas/400Response" - 401: - description: Unauthorized - content: - application/json: - schema: - $ref: "#/components/schemas/401Response" - 404: - description: Not Found - content: - application/json: - schema: - $ref: "#/components/schemas/404Response" - 500: - description: Internal Server Error - content: - application/json: - schema: - $ref: "#/components/schemas/500Response" + $ref: "#/components/schemas/ErrorResponse" + examples: + invalidDataTypeError: + summary: invalidDataTypeError + description: >- + The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + value: + type: https://htm.nl/api/v1/probs/bad-request + title: Your request contains an invalid datatype + detail: '''2023-02-01 00:00:00'' is not a valid Datetime' + instance: urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b security: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - post: + /customers/{customerProfileId}: + patch: tags: - - ABTCustomers - summary: Create a customer profile + - Customer + summary: Modify a customer element description: >- - Create a customer profile in the ABT database with status ACTIVE and - debtorStatus Inactive with a start date based on the timestamp of this - post call. - - Requested format for postal code: - - 0000AA - parameters: [] + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 requestBody: content: application/json: schema: - $ref: "#/components/schemas/postCustomerProfile" + $ref: "#/components/schemas/customersEntity" examples: - minimumProfile: - value: {} - basicCustomerProfile: + customers: value: debtorStatusId: 2 - person: - birthname: Jan - surname: Jansen - emailAddress: j.jansen@hatseflats.nl - fullCustomerProfile: - value: - customerPreference: - languageId: 1 - debtorStatusId: 2 - person: - birthname: Jan - surname: Jansen - prefix: dhr - suffix: jr - dateOfBirth: "1970-01-01" - emailAddress: j.jansen@hatseflats.nl - addresses: - - street: Laan van Meerdervoort - houseNumber: 5 - houseNumberSuffix: B - postalCode: 2500AA - city: Den Haag - country: NL - isPreferred: true - addressTypeId: 1 - - street: Beeklaan - houseNumber: 30 - houseNumberSuffix: B - postalCode: 2500AA - city: Den Haag - country: NL - isPreferred: false - addressTypeId: 2 - phones: - - number: "6123456789" - countryCode: "+31" - phoneTypeId: 1 - isPreferred: true - - number: "7012345678" - countryCode: "+31" - phoneTypeId: 2 - isPreferred: false required: true responses: "201": - description: Successful created a customer profile + description: Successfully modified a customer content: application/json: schema: - $ref: "#/components/schemas/postCustomerProfileCustomerNumberResponse" - "400": - description: Bad Request + $ref: "#/components/schemas/patchCustomerProfileResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerProfileId}/customerPreferences: + post: + tags: + - CustomerPreferences + summary: Create a customer preference element + description: >- + + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/customerPreferencesEntity" + examples: + customerPreference: + value: + customerPreference: + languageId: 1 + required: true + responses: + "201": + description: Successfully created a customer preference content: application/json: schema: - $ref: "#/components/schemas/400Response" - examples: - InvalidPostalCodeFormatForAddressCountryNLError: - value: - code: "400" - type: Bad Request - Input parameters - message: Invalid input parameter for country validation (NL). - description: >- - ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match - input string \"2500 AA\ - MissingRequiredParameterError: - value: - code: "400" - type: Bad Request - Input parameters - message: Invalid input parameter. - description: >- - object has missing required properties - ([\"addressTypeId\"]) - InvalidDataTypeError: - value: - code: "400" - type: Bad Request - Input parameters - message: Invalid input parameter. - description: >- - Bad Request - please verify the value for the following - field \"id\ - "401": - description: Unauthorized + $ref: "#/components/schemas/postCustomerPreferencesResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customerPreferences/{customerPreferenceId}: + patch: + tags: + - CustomerPreferences + summary: Modify a customer preference element + description: >- + + parameters: + - name: customerPreferenceId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/customerPreferencesEntity" + examples: + customerPreference: + value: + customerPreference: + languageId: 1 + required: true + responses: + "200": + description: Successfully modified a customer preference content: application/json: schema: - $ref: "#/components/schemas/401Response" - "409": - description: Conflict - content: - application/json: - schema: - $ref: "#/components/schemas/409Response" - examples: - emailAddressAlreadyPresent: - value: - code: "409" - type: Conflict - message: emailAddress already exists. - description: "" - "500": - description: Internal Server Error - content: - application/json: - schema: - $ref: "#/components/schemas/500Response" + $ref: "#/components/schemas/patchCustomerPreferencesResponse" security: - default: [] x-auth-type: Application & Application User @@ -1179,13 +1486,21 @@ components: type: object properties: languageId: - type: string - postCustomerProfileCustomerNumberResponse: + type: integer + customersEntity: + type: object + properties: + debtorStatusId: + type: integer + postCustomerProfileResponse: type: object properties: customerNumber: type: integer - example: 10000001 + example: 10000001 + customerProfileId: + type: integer + example: 1 postCustomerProfileAddressResponse: type: object properties: @@ -1234,15 +1549,24 @@ components: patchCustomerProfileResponse: type: object properties: - customerNumber: + customerProfileId: type: integer - example: 10000001 + example: 1 + postCustomerPreferencesResponse: + type: object + properties: + customerPreferenceId: + type: integer + example: 1 patchCustomerPreferencesResponse: type: object properties: - customerNumber: + customerPreferenceId: type: integer - example: 10000001 + example: 1 + customerLanguageId: + type: integer + example: 1 ovPayTokenGetEntity: type: object properties: @@ -1289,93 +1613,14 @@ components: ovPayTokenId: type: integer example: 1 - 400Response: + ErrorResponse: type: object properties: - code: - type: string - example: "400" type: type: string - message: + title: 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: "900901" - 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. - 409Response: - type: object - properties: - code: - type: string - example: "409" - type: - type: string - example: Conflict - message: - type: string - example: Entry already exists - description: - type: string - 422Response: - type: object - properties: - code: - type: string - example: "422" - type: - type: string - example: Unprocessable entity - message: - type: string - example: >- - Forbidden state transition requested! From Active to Cleared not - allowed. - description: - type: string - 500Response: - type: object - properties: - code: - type: string - example: "500" - type: - type: string - message: - type: string - example: Internal Server Error - description: + detail: type: string + instance: + type: string \ No newline at end of file From 96f77d8f2f038e512b5444d8f29f43354f640b3f Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 17 Feb 2025 11:16:55 +0100 Subject: [PATCH 15/30] customerStatus --- src/openapi/customers/customers-crud-v2.yaml | 58 ++++++++++++++++++-- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index d94b1ca..1c3b420 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -18,7 +18,7 @@ paths: - Requested format for postal code: - 0000AA - parameters: [] + parameters: [] requestBody: content: application/json: @@ -794,9 +794,9 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/customersEntity" + $ref: "#/components/schemas/customerEntity" examples: - customers: + customer: value: debtorStatusId: 2 required: true @@ -811,10 +811,47 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited + /customers/{customerProfileId}/customerStatus: + post: + tags: + - Customer + summary: Create a new customerStatus + description: >- + + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/customerStatusEntity" + examples: + customerStatus: + value: + customerStatus: + customerStatusId: 2 + required: true + responses: + "201": + description: Successfully created a customer Status + content: + application/json: + schema: + $ref: "#/components/schemas/postCustomerPreferencesResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerProfileId}/customerPreferences: post: tags: - - CustomerPreferences + - Customer summary: Create a customer preference element description: >- @@ -850,7 +887,7 @@ paths: /customerPreferences/{customerPreferenceId}: patch: tags: - - CustomerPreferences + - Customer summary: Modify a customer preference element description: >- @@ -1487,6 +1524,11 @@ components: properties: languageId: type: integer + customerStatusEntity: + type: object + properties: + customerStatusId: + type: integer customersEntity: type: object properties: @@ -1552,6 +1594,12 @@ components: customerProfileId: type: integer example: 1 + postCustomerStatusResponse: + type: object + properties: + customerPreferenceId: + type: integer + example: 1 postCustomerPreferencesResponse: type: object properties: From 0ea5d1532a5ff0bb35ed643fe74a35ffb387c55f Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 17 Feb 2025 11:55:32 +0100 Subject: [PATCH 16/30] address --- src/openapi/customers/customers-crud-v2.yaml | 169 +++++++++++++++++-- 1 file changed, 151 insertions(+), 18 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 1c3b420..5fea95b 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -794,7 +794,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/customerEntity" + $ref: "#/components/schemas/customersEntity" examples: customer: value: @@ -815,7 +815,7 @@ paths: post: tags: - Customer - summary: Create a new customerStatus + summary: Create a new customer status element description: >- parameters: @@ -846,8 +846,7 @@ paths: security: - default: [] x-auth-type: Application & Application User - x-throttling-tier: Unlimited - + x-throttling-tier: Unlimited /customers/{customerProfileId}/customerPreferences: post: tags: @@ -885,41 +884,156 @@ paths: x-auth-type: Application & Application User x-throttling-tier: Unlimited /customerPreferences/{customerPreferenceId}: + patch: + tags: + - Customer + summary: Modify a customer preference element + description: >- + + parameters: + - name: customerPreferenceId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/customerPreferencesEntity" + examples: + customerPreference: + value: + customerPreference: + languageId: 1 + required: true + responses: + "200": + description: Successfully modified a customer preference + content: + application/json: + schema: + $ref: "#/components/schemas/patchCustomerPreferencesResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerProfileId}/addresses: + post: + tags: + - Customer + summary: Add a customer address + description: >- + + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/postCustomerAddress" + examples: + customerAddress: + value: + customerAddress: + addressTypeId: 1 + street: Sesamstraat + houseNumber: 1 + houseNumberSuffix: A + postalCode: 1234 AB + city: Den Haag + country: NL + isPreferred: true + required: true + responses: + "201": + description: Successfully created a customer address + content: + application/json: + schema: + $ref: "#/components/schemas/postCustomerProfileAddressResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /addresses/{addressId}: patch: tags: - Customer - summary: Modify a customer preference element + summary: Edit a customer address description: >- - + parameters: - - name: customerPreferenceId + - name: addressId in: path required: true schema: type: integer - example: 1 + example: 2 requestBody: content: application/json: schema: - $ref: "#/components/schemas/customerPreferencesEntity" + $ref: "#/components/schemas/patchCustomerAddress" examples: - customerPreference: + updateAddressTypeId: value: - customerPreference: - languageId: 1 + address: + addressTypeId: 2 required: true responses: "200": - description: Successfully modified a customer preference + description: Successfully modified a customer Address content: application/json: schema: - $ref: "#/components/schemas/patchCustomerPreferencesResponse" + $ref: "#/components/schemas/patchCustomerProfileAddressResponse" security: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited + delete: + tags: + - Customer + summary: Delete a customer address + description: >- + + parameters: + - name: addressId + in: path + required: true + schema: + type: integer + example: 2 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/patchCustomerAddress" + examples: + updateAddressTypeId: + value: + address: + addressTypeId: 2 + required: true + responses: + "200": + description: Successfully modified a customer Address + content: + application/json: + schema: + $ref: "#/components/schemas/patchCustomerProfileAddressResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /ovpaytokens: get: tags: @@ -1519,6 +1633,25 @@ components: type: array items: $ref: '#/components/schemas/phonePostEntity' + postCustomerAddress: + type: object + properties: + street: + type: string + houseNumber: + type: integer + houseNumberSuffix: + type: string + postalCode: + type: string + city: + type: string + country: + type: string + isPreferred: + type: boolean + addressType: + type: integer customerPreferencesEntity: type: object properties: @@ -1546,12 +1679,12 @@ components: postCustomerProfileAddressResponse: type: object properties: - customerNumber: - type: integer - example: 10000001 - addressId: + customerProfileId: type: integer example: 1 + addressId: + type: integer + example: 3 postCustomerProfilePhoneResponse: type: object properties: From dcb7d1b5640a1846a2103e0d183a57b47e6d35bb Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 17 Feb 2025 12:04:17 +0100 Subject: [PATCH 17/30] address --- src/openapi/customers/customers-crud-v2.yaml | 35 ++++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 5fea95b..b15cea2 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -1011,24 +1011,12 @@ paths: schema: type: integer example: 2 - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/patchCustomerAddress" - examples: - updateAddressTypeId: - value: - address: - addressTypeId: 2 - required: true responses: "200": - description: Successfully modified a customer Address + description: Successfully deleted a customer Address content: application/json: - schema: - $ref: "#/components/schemas/patchCustomerProfileAddressResponse" + {} security: - default: [] x-auth-type: Application & Application User @@ -1652,6 +1640,25 @@ components: type: boolean addressType: type: integer + patchCustomerAddress: + type: object + properties: + street: + type: string + houseNumber: + type: integer + houseNumberSuffix: + type: string + postalCode: + type: string + city: + type: string + country: + type: string + isPreferred: + type: boolean + addressType: + type: integer customerPreferencesEntity: type: object properties: From 6c229b48b38eaba9c91d73173c8247083bfc90db Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 17 Feb 2025 12:35:20 +0100 Subject: [PATCH 18/30] phone --- src/openapi/customers/customers-crud-v2.yaml | 126 +++++++++++++++++-- 1 file changed, 113 insertions(+), 13 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index b15cea2..1c684ed 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -993,7 +993,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/patchCustomerProfileAddressResponse" + $ref: "#/components/schemas/postCustomerProfileAddressResponse" security: - default: [] x-auth-type: Application & Application User @@ -1021,7 +1021,104 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - + /customers/{customerProfileId}/phones: + post: + tags: + - Customer + summary: Add a customer phonenumber + description: >- + + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/postPhoneEntity" + examples: + customerPhone: + value: + customerPhone: + number: 0701112233 + countryCode: 0031 + phoneTypeId: 1 + isPreferred: true + required: true + responses: + "201": + description: Successfully created a customer phone + content: + application/json: + schema: + $ref: "#/components/schemas/postPhoneResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /phones/{phoneId}: + patch: + tags: + - Customer + summary: Edit a customer phone + description: >- + + parameters: + - name: phoneId + in: path + required: true + schema: + type: integer + example: 2 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/patchPhoneEntity" + examples: + updateAddressTypeId: + value: + address: + addressTypeId: 2 + required: true + responses: + "200": + description: Successfully modified a customer phonenumber + content: + application/json: + schema: + $ref: "#/components/schemas/postPhoneResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + delete: + tags: + - Customer + summary: Delete a customer phone + description: >- + + parameters: + - name: phoneId + in: path + required: true + schema: + type: integer + example: 2 + responses: + "200": + description: Successfully deleted a customer phonenumber + content: + application/json: + {} + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /ovpaytokens: get: tags: @@ -1536,11 +1633,6 @@ components: type: string replacedByTokenId: type: integer - postPhone: - type: object - properties: - phone: - $ref: "#/components/schemas/phonePostEntity" personEntity: type: object properties: @@ -1583,7 +1675,7 @@ components: type: boolean addressTypeId: type: integer - phonePostEntity: + postPhoneEntity: required: - countryCode - number @@ -1598,6 +1690,17 @@ components: type: integer isPreferred: type: boolean + patchPostEntity: + type: object + properties: + number: + type: string + countryCode: + type: string + phoneTypeId: + type: integer + isPreferred: + type: boolean defaultCustomerProfileResponse: type: object properties: @@ -1692,15 +1795,12 @@ components: addressId: type: integer example: 3 - postCustomerProfilePhoneResponse: + postPhoneResponse: type: object properties: - customerNumber: - type: integer - example: 10000001 phoneId: type: integer - example: 1 + example: 2 postCustomerProfileBillingInformationResponse: type: object properties: From c6b53d46accdd69749ebc95221c4f67331273363 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 17 Feb 2025 12:37:13 +0100 Subject: [PATCH 19/30] phones --- src/openapi/customers/customers-crud-v2.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 1c684ed..8937e5b 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -1690,7 +1690,7 @@ components: type: integer isPreferred: type: boolean - patchPostEntity: + patchPhoneEntity: type: object properties: number: From b3d8d0d053c916800fc7d28017686fdd310b59cd Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 17 Feb 2025 12:38:13 +0100 Subject: [PATCH 20/30] phones --- src/openapi/customers/customers-crud-v2.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 8937e5b..7ac8913 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -1723,7 +1723,7 @@ components: phones: type: array items: - $ref: '#/components/schemas/phonePostEntity' + $ref: '#/components/schemas/postPhoneEntity' postCustomerAddress: type: object properties: From 8463961f606c72c90ae28845a20e3fd8006ebbbb Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 17 Feb 2025 12:43:19 +0100 Subject: [PATCH 21/30] phones --- src/openapi/customers/customers-crud-v2.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 7ac8913..6b353ad 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -1043,7 +1043,7 @@ paths: examples: customerPhone: value: - customerPhone: + phone: number: 0701112233 countryCode: 0031 phoneTypeId: 1 @@ -1051,7 +1051,7 @@ paths: required: true responses: "201": - description: Successfully created a customer phone + description: Successfully created a customer phonenumber content: application/json: schema: @@ -1064,7 +1064,7 @@ paths: patch: tags: - Customer - summary: Edit a customer phone + summary: Edit a customer phonenumber description: >- parameters: @@ -1080,10 +1080,10 @@ paths: schema: $ref: "#/components/schemas/patchPhoneEntity" examples: - updateAddressTypeId: + updatePhoneTypeId: value: - address: - addressTypeId: 2 + phone: + phoneTypeId: 2 required: true responses: "200": From 028f970130f0cc32f5b0d7e8a976203a8a526fda Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 17 Feb 2025 14:22:39 +0100 Subject: [PATCH 22/30] tokens --- src/openapi/customers/customers-crud-v2.yaml | 389 +++++++++++++++++-- 1 file changed, 365 insertions(+), 24 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 6b353ad..69bb821 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -74,7 +74,7 @@ paths: isPreferred: false required: true responses: - "201": + 201: description: Successful created a customer profile content: application/json: @@ -88,7 +88,7 @@ paths: value: customerProfileId: 1 customerNumber: 1000001 - "400": + 400: description: Bad Request content: application/json: @@ -801,7 +801,7 @@ paths: debtorStatusId: 2 required: true responses: - "201": + 201: description: Successfully modified a customer content: application/json: @@ -837,7 +837,7 @@ paths: customerStatusId: 2 required: true responses: - "201": + 201: description: Successfully created a customer Status content: application/json: @@ -873,7 +873,7 @@ paths: languageId: 1 required: true responses: - "201": + 201: description: Successfully created a customer preference content: application/json: @@ -909,7 +909,7 @@ paths: languageId: 1 required: true responses: - "200": + 200: description: Successfully modified a customer preference content: application/json: @@ -952,7 +952,7 @@ paths: isPreferred: true required: true responses: - "201": + 201: description: Successfully created a customer address content: application/json: @@ -988,7 +988,7 @@ paths: addressTypeId: 2 required: true responses: - "200": + 200: description: Successfully modified a customer Address content: application/json: @@ -1012,7 +1012,7 @@ paths: type: integer example: 2 responses: - "200": + 200: description: Successfully deleted a customer Address content: application/json: @@ -1039,7 +1039,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/postPhoneEntity" + $ref: "#/components/schemas/phoneEntity" examples: customerPhone: value: @@ -1050,7 +1050,7 @@ paths: isPreferred: true required: true responses: - "201": + 201: description: Successfully created a customer phonenumber content: application/json: @@ -1078,7 +1078,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/patchPhoneEntity" + $ref: "#/components/schemas/phoneEntity" examples: updatePhoneTypeId: value: @@ -1086,7 +1086,7 @@ paths: phoneTypeId: 2 required: true responses: - "200": + 200: description: Successfully modified a customer phonenumber content: application/json: @@ -1110,7 +1110,7 @@ paths: type: integer example: 2 responses: - "200": + 200: description: Successfully deleted a customer phonenumber content: application/json: @@ -1119,10 +1119,347 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited + /customers/{customerProfileId}/ovpaytokens: + post: + tags: + - Ovpay Token + summary: Create a new OVpay token + description: >- + + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ovPayTokenEntity" + examples: + EMV token: + value: + ovpaytoken: + tokenTypeId: 1 + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: Mijn Rabo Pas + tokenStatusId: 2 + expirationDate: "2026-04-20T17:05:52.000+02:00" + OVpas token physical: + value: + ovpaytoken: + tokenTypeId: 2 + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: Mijn OV Pas + ovpasNumber: 4048453105891361 + tokenStatusId: 2 + expirationDate: "2026-04-20T17:05:52.000+02:00" + required: true + responses: + 201: + description: Successfully created a customer ovpaytoken + content: + application/json: + schema: + $ref: "#/components/schemas/postOvPayTokenResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /ovpaytokens/{ovpaytokenId}: + patch: + tags: + - Ovpay Token + summary: Create a new OVpay token + description: >- + + parameters: + - name: ovpaytokenId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ovPayTokenEntity" + examples: + updateTokenAlias: + value: + ovpaytoken: + alias: "ING pas mobiel" + updateTokenStatus to removed: + value: + ovpaytoken: + tokenStatusId: 6 + replaceToken: + value: + ovpaytoken: + tokenStatusId: 3 + replacedByTokenId: 8 + required: true + responses: + 200: + description: Successfully updated a customer ovpaytoken + content: + application/json: + schema: + $ref: "#/components/schemas/postOvPayTokenResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + delete: + tags: + - Ovpay Token + summary: Delete an Ovpay token + description: >- + + parameters: + - name: ovpaytokenId + in: path + required: true + schema: + type: integer + example: 2 + responses: + 200: + description: Successfully deleted a customer ovpaytoken + content: + application/json: + {} + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /ovpaytokens: get: tags: - - Token + - Ovpay Token + summary: Find OVpay tokens. + description: Find OVpay tokens. + parameters: + - in: query + name: ovPayTokenId + schema: + type: integer + example: 71 + required: false + description: The id of the token. + - in: query + name: customerProfileId + schema: + type: integer + example: 12 + required: false + description: The id of the customer profile. + - in: query + name: tokenTypeId + schema: + type: array + items: + type: integer + example: [1, 2] + explode: false + required: false + description: Filter on possible token types. 1 = EMV, 2 = OV-pas physical, 3 = OV-pas digital. + - in: query + name: xTat + schema: + type: string + format: uuid + example: 700b0516-bf8b-4e6e-bf16-13bfeb078e23 + explode: false + required: false + description: The XTAT of the token. + - in: query + name: xBot + schema: + type: string + format: uuid + example: de1a9a7a-a777-4473-889c-44a3bb07daae + explode: false + required: false + description: The XBOT of the token. + - in: query + name: alias + schema: + type: string + example: Mijn OV-pas + required: false + description: The alias of the token. + - in: query + name: lastDigits + schema: + type: integer + example: 3301 + required: false + description: The last digits of the token. + - in: query + name: ovpasNumber + schema: + type: string + example: 63AW974 + required: false + description: Number of the OVpas. + - in: query + name: tokenStatusId + schema: + type: array + items: + type: integer + example: [1, 2] + explode: false + required: false + description: Filter on possible token statuses. 1 = expired, 2 = active, 3 = replaced, 4 = inactive, 5 = suspended, 6 = removed by customer. + - in: query + name: expirationDate + schema: + type: string + format: date-time + example: 2029-03-22T09:00:00 + required: false + description: The expiration date of the token. + - in: query + name: replacedByTokenId + schema: + type: integer + example: 12 + required: false + description: The id of the token that replaced this token. + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + example: + { + "ovPayTokens": + [ + { + "ovPayTokenId": 71, + "customerProfileId": 12, + "tokenType": + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "xTat": "700b0516-bf8b-4e6e-bf16-13bfeb078e23", + "xBot": "de1a9a7a-a777-4473-889c-44a3bb07daae", + "alias": "Mijn OV-pas", + "lastDigits": 3301, + "ovpasNumber": "63AW974", + "tokenStatus": { "tokenStatusId": 2, "name": "Active" }, + "expirationDate": "2029-03-22T09:00:00", + "replacedByTokenId": 12, + }, + ], + "href": null, + } + /customers/{customerProfileId}/ovchipcards: + post: + tags: + - Ovchipcard + summary: Create a new OVchipcard + description: >- + + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ovChipcardEntity" + examples: + ovChipcards: + value: + ovChipcard: + chipCardNumber: 1234123412341234 + validUntil: "2027-01-01" + alias: Mijn chipkaart + required: true + responses: + 201: + description: Successfully created a customer ovchipcard + content: + application/json: + schema: + $ref: "#/components/schemas/postOvChipCardResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /ovchipcards/{ovchipcardId}: + patch: + tags: + - Ovchipcard + summary: Update an ovchipcard + description: >- + + parameters: + - name: ovchipcardId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ovChipcardEntity" + examples: + updateOvChipCardAlias: + value: + ovChipCard: + alias: "Zoon 1 chipkaart" + required: true + responses: + 200: + description: Successfully updated a customer ovchipcard + content: + application/json: + schema: + $ref: "#/components/schemas/postOvChipCardResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + delete: + tags: + - Ovchipcard + summary: Delete an Ovpay token + description: >- + + parameters: + - name: ovpaytokenId + in: path + required: true + schema: + type: integer + example: 2 + responses: + 200: + description: Successfully deleted a customer ovpaytoken + content: + application/json: + {} + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + tags: + - Ovpay Token summary: Find OVpay tokens. description: Find OVpay tokens. parameters: @@ -1633,6 +1970,16 @@ components: type: string replacedByTokenId: type: integer + ovChipcardEntity: + type: object + properties: + chipCardNumber: + type: integer + validUntil: + type: string + format: date + alias: + type: string personEntity: type: object properties: @@ -1690,7 +2037,7 @@ components: type: integer isPreferred: type: boolean - patchPhoneEntity: + phoneEntity: type: object properties: number: @@ -1819,12 +2166,9 @@ components: directDebitMandateId: type: integer example: 1 - postCustomerProfileOvChipCardResponse: + postOvChipCardResponse: type: object properties: - customerNumber: - type: integer - example: 10000001 ovChipCardId: type: integer example: 1 @@ -1892,12 +2236,9 @@ components: type: array items: $ref: "#/components/schemas/ovPayTokenGetEntity" - postCustomerProfileOvPayTokenResponse: + postOvPayTokenResponse: type: object properties: - ovPaytoken: - type: object - example: 10000001 ovPayTokenId: type: integer example: 1 From 8f8a044fdea27ef774a32d8daae1a181a220a52e Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 17 Feb 2025 14:26:37 +0100 Subject: [PATCH 23/30] tokens --- src/openapi/customers/customers-crud-v2.yaml | 139 ++----------------- 1 file changed, 9 insertions(+), 130 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 69bb821..969281a 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -1123,7 +1123,7 @@ paths: post: tags: - Ovpay Token - summary: Create a new OVpay token + summary: Create a new ovpay token description: >- parameters: @@ -1174,7 +1174,7 @@ paths: patch: tags: - Ovpay Token - summary: Create a new OVpay token + summary: Update an ovpay token description: >- parameters: @@ -1218,7 +1218,7 @@ paths: delete: tags: - Ovpay Token - summary: Delete an Ovpay token + summary: Delete an ovpay token description: >- parameters: @@ -1242,8 +1242,8 @@ paths: get: tags: - Ovpay Token - summary: Find OVpay tokens. - description: Find OVpay tokens. + summary: Find ovpay tokens. + description: Find ovpay tokens. parameters: - in: query name: ovPayTokenId @@ -1365,7 +1365,7 @@ paths: post: tags: - Ovchipcard - summary: Create a new OVchipcard + summary: Create a new ovchipcard description: >- parameters: @@ -1438,11 +1438,11 @@ paths: delete: tags: - Ovchipcard - summary: Delete an Ovpay token + summary: Delete an ovchipcard description: >- parameters: - - name: ovpaytokenId + - name: ovchipcardId in: path required: true schema: @@ -1450,7 +1450,7 @@ paths: example: 2 responses: 200: - description: Successfully deleted a customer ovpaytoken + description: Successfully deleted a customer ovchipcard content: application/json: {} @@ -1458,127 +1458,6 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - tags: - - Ovpay Token - summary: Find OVpay tokens. - description: Find OVpay tokens. - parameters: - - in: query - name: ovPayTokenId - schema: - type: integer - example: 71 - required: false - description: The id of the token. - - in: query - name: customerProfileId - schema: - type: integer - example: 12 - required: false - description: The id of the customer profile. - - in: query - name: tokenTypeId - schema: - type: array - items: - type: integer - example: [1, 2] - explode: false - required: false - description: Filter on possible token types. 1 = EMV, 2 = OV-pas physical, 3 = OV-pas digital. - - in: query - name: xTat - schema: - type: string - format: uuid - example: 700b0516-bf8b-4e6e-bf16-13bfeb078e23 - explode: false - required: false - description: The XTAT of the token. - - in: query - name: xBot - schema: - type: string - format: uuid - example: de1a9a7a-a777-4473-889c-44a3bb07daae - explode: false - required: false - description: The XBOT of the token. - - in: query - name: alias - schema: - type: string - example: Mijn OV-pas - required: false - description: The alias of the token. - - in: query - name: lastDigits - schema: - type: integer - example: 3301 - required: false - description: The last digits of the token. - - in: query - name: ovpasNumber - schema: - type: string - example: 63AW974 - required: false - description: Number of the OVpas. - - in: query - name: tokenStatusId - schema: - type: array - items: - type: integer - example: [1, 2] - explode: false - required: false - description: Filter on possible token statuses. 1 = expired, 2 = active, 3 = replaced, 4 = inactive, 5 = suspended, 6 = removed by customer. - - in: query - name: expirationDate - schema: - type: string - format: date-time - example: 2029-03-22T09:00:00 - required: false - description: The expiration date of the token. - - in: query - name: replacedByTokenId - schema: - type: integer - example: 12 - required: false - description: The id of the token that replaced this token. - responses: - 200: - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/unavailable" - example: - { - "ovPayTokens": - [ - { - "ovPayTokenId": 71, - "customerProfileId": 12, - "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, - "xTat": "700b0516-bf8b-4e6e-bf16-13bfeb078e23", - "xBot": "de1a9a7a-a777-4473-889c-44a3bb07daae", - "alias": "Mijn OV-pas", - "lastDigits": 3301, - "ovpasNumber": "63AW974", - "tokenStatus": { "tokenStatusId": 2, "name": "Active" }, - "expirationDate": "2029-03-22T09:00:00", - "replacedByTokenId": 12, - }, - ], - "href": null, - } /directdebitmandates: get: tags: From 683b12f6ebd2c9e649ecc0d964243d3d75e8a94f Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 17 Feb 2025 17:44:50 +0100 Subject: [PATCH 24/30] started on mandates --- src/openapi/customers/customers-crud-v2.yaml | 103 +++++++++++-------- 1 file changed, 62 insertions(+), 41 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 969281a..b4327ae 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -922,7 +922,7 @@ paths: /customers/{customerProfileId}/addresses: post: tags: - - Customer + - Customer address summary: Add a customer address description: >- @@ -965,7 +965,7 @@ paths: /addresses/{addressId}: patch: tags: - - Customer + - Customer address summary: Edit a customer address description: >- @@ -1000,7 +1000,7 @@ paths: x-throttling-tier: Unlimited delete: tags: - - Customer + - Customer address summary: Delete a customer address description: >- @@ -1024,7 +1024,7 @@ paths: /customers/{customerProfileId}/phones: post: tags: - - Customer + - Customer phoneNumber summary: Add a customer phonenumber description: >- @@ -1063,7 +1063,7 @@ paths: /phones/{phoneId}: patch: tags: - - Customer + - Customer phoneNumber summary: Edit a customer phonenumber description: >- @@ -1098,7 +1098,7 @@ paths: x-throttling-tier: Unlimited delete: tags: - - Customer + - Customer phoneNumber summary: Delete a customer phone description: >- @@ -1578,6 +1578,45 @@ paths: "updateTimestamp": "2024-03-22T08:55:00", }, ] + /billingInformation/{billingInformationId}/directdebitmandates: + post: + tags: + - Mandates + summary: Add a customer direct debitmandate + description: >- + + parameters: + - name: billingInformationId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/mandateEntity" + examples: + customerDirectDebitMandatePrepared: + value: + directDebitMandate: + directDebitMandateTypeId: 1 + mandateAddressId: 1 + mandateReference: HTM-mandate-001 + mandateState: PREPARED + required: true + responses: + 201: + description: Successfully created a customer mandate + content: + application/json: + schema: + $ref: "#/components/schemas/postDirectDebitMandateResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited components: securitySchemes: default: @@ -1821,6 +1860,8 @@ components: ovPayTokenEntity: type: object properties: + ovPayTokenId: + type: integer tokenType: type: object properties: @@ -2036,12 +2077,9 @@ components: billingInformationId: type: integer example: 1 - postCustomerProfileDirectDebitMandateResponse: + postDirectDebitMandateResponse: type: object properties: - customerNumber: - type: integer - example: 10000001 directDebitMandateId: type: integer example: 1 @@ -2078,43 +2116,26 @@ components: customerLanguageId: type: integer example: 1 - ovPayTokenGetEntity: - type: object - properties: - ovPayTokenId: - type: integer - example: 1 - tokenTypeId: - type: integer - example: 1 - xTat: - type: string - example: 0044831b-8e80c-4f82-r989a-8d85ee1996 - xBot: - type: string - example: 0044831b-8e80c-4f82-r989a-8d85ee1996 - lastDigits: - type: string - example: "0001" - ovpasNumber: - type: integer - example: 1 - alias: - type: string - example: alias - tokenStatusId: - type: integer - expirationDate: - type: string - replacedByTokenId: - type: integer getCustomerProfileOvPayTokenResponse: type: object properties: ovPayToken: type: array items: - $ref: "#/components/schemas/ovPayTokenGetEntity" + $ref: "#/components/schemas/ovPayTokenEntity" + mandateEntity: + type: object + properties: + directDebitMandateId: + type: integer + directDebitMandateTypeId: + type: integer + mandateAddressId: + type: integer + mandateReference: + type: string + mandateState: + type: string postOvPayTokenResponse: type: object properties: From 298f089d6c365c2d5c1abb9ce9613b5e1298f009 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Fri, 21 Feb 2025 11:33:54 +0100 Subject: [PATCH 25/30] added billing information CRUD en some tidying --- src/openapi/customers/customers-crud-v2.yaml | 681 +++++++++++++------ 1 file changed, 483 insertions(+), 198 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index b4327ae..27bf74d 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -1119,125 +1119,6 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - /customers/{customerProfileId}/ovpaytokens: - post: - tags: - - Ovpay Token - summary: Create a new ovpay token - description: >- - - parameters: - - name: customerProfileId - in: path - required: true - schema: - type: integer - example: 1 - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ovPayTokenEntity" - examples: - EMV token: - value: - ovpaytoken: - tokenTypeId: 1 - xTat: 0115b0df-db38-4702-8811-6f7de00db3ac - xBot: 71a88843-32b8-4d52-ac25-de2458c47775 - alias: Mijn Rabo Pas - tokenStatusId: 2 - expirationDate: "2026-04-20T17:05:52.000+02:00" - OVpas token physical: - value: - ovpaytoken: - tokenTypeId: 2 - xTat: 0115b0df-db38-4702-8811-6f7de00db3ac - xBot: 71a88843-32b8-4d52-ac25-de2458c47775 - alias: Mijn OV Pas - ovpasNumber: 4048453105891361 - tokenStatusId: 2 - expirationDate: "2026-04-20T17:05:52.000+02:00" - required: true - responses: - 201: - description: Successfully created a customer ovpaytoken - content: - application/json: - schema: - $ref: "#/components/schemas/postOvPayTokenResponse" - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - /ovpaytokens/{ovpaytokenId}: - patch: - tags: - - Ovpay Token - summary: Update an ovpay token - description: >- - - parameters: - - name: ovpaytokenId - in: path - required: true - schema: - type: integer - example: 1 - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ovPayTokenEntity" - examples: - updateTokenAlias: - value: - ovpaytoken: - alias: "ING pas mobiel" - updateTokenStatus to removed: - value: - ovpaytoken: - tokenStatusId: 6 - replaceToken: - value: - ovpaytoken: - tokenStatusId: 3 - replacedByTokenId: 8 - required: true - responses: - 200: - description: Successfully updated a customer ovpaytoken - content: - application/json: - schema: - $ref: "#/components/schemas/postOvPayTokenResponse" - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - delete: - tags: - - Ovpay Token - summary: Delete an ovpay token - description: >- - - parameters: - - name: ovpaytokenId - in: path - required: true - schema: - type: integer - example: 2 - responses: - 200: - description: Successfully deleted a customer ovpaytoken - content: - application/json: - {} - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited /ovpaytokens: get: tags: @@ -1361,6 +1242,125 @@ paths: ], "href": null, } + /customers/{customerProfileId}/ovpaytokens: + post: + tags: + - Ovpay Token + summary: Create a new ovpay token + description: >- + + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ovPayTokenEntity" + examples: + EMV token: + value: + ovpaytoken: + tokenTypeId: 1 + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: Mijn Rabo Pas + tokenStatusId: 2 + expirationDate: "2026-04-20T17:05:52.000+02:00" + OVpas token physical: + value: + ovpaytoken: + tokenTypeId: 2 + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: Mijn OV Pas + ovpasNumber: 4048453105891361 + tokenStatusId: 2 + expirationDate: "2026-04-20T17:05:52.000+02:00" + required: true + responses: + 201: + description: Successfully created a customer ovpaytoken + content: + application/json: + schema: + $ref: "#/components/schemas/postOvPayTokenResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /ovpaytokens/{ovpaytokenId}: + patch: + tags: + - Ovpay Token + summary: Update an ovpay token + description: >- + + parameters: + - name: ovpaytokenId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ovPayTokenEntity" + examples: + updateTokenAlias: + value: + ovpaytoken: + alias: "ING pas mobiel" + updateTokenStatus to removed: + value: + ovpaytoken: + tokenStatusId: 6 + replaceToken: + value: + ovpaytoken: + tokenStatusId: 3 + replacedByTokenId: 8 + required: true + responses: + 200: + description: Successfully updated a customer ovpaytoken + content: + application/json: + schema: + $ref: "#/components/schemas/postOvPayTokenResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + delete: + tags: + - Ovpay Token + summary: Delete an ovpay token + description: >- + + parameters: + - name: ovpaytokenId + in: path + required: true + schema: + type: integer + example: 2 + responses: + 200: + description: Successfully deleted a customer ovpaytoken + content: + application/json: + {} + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /customers/{customerProfileId}/ovchipcards: post: tags: @@ -1458,6 +1458,233 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited + /billingInformations: + get: + tags: + - Billing Information + summary: Find billing information + description: >- + + parameters: + - name: customerProfileId + in: query + schema: + type: integer + example: 1 + - name: issuerCountry + in: query + schema: + type: string + example: "NL" + - name: iban + in: query + schema: + type: string + example: "NL73RABO2677424363" + - name: swift + in: query + schema: + type: string + example: "GHJZIEJSKVM" + - name: ascription + in: query + schema: + type: string + example: "J. Doe" + - name: alias + in: query + schema: + type: string + example: "John's billing details" + - name: billingAddressID + in: query + schema: + type: integer + example: 1 + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + getBillingInformationMultipleSpecificCustomer: + summary: Get multiple billing information entities for a specific customers + description: >- + Found multiple billing informations matching the search parameters + value: + { + "billingInformations":[ + { + "billingInformationId": 1, + "customerProfileId": 1, + "issuerCountry": "NL", + "iban": "NL06RABO8902022560", + "ascription": "J. Doe", + "alias": null, + "billingAddressId": 3 + }, + { + "billingInformationId": 2, + "customerProfileId": 1, + "issuerCountry": "NL", + "iban": "NL27ABNA4458972219", + "swift": "GHJZIEJSKVM", + "ascription": "J. Doe", + "alias": "John's billing details", + "billingAddressId": 4 + } + ] + } + getBillingInformationSingleSpecificCustomer: + summary: Get singel billing information entity for a specific customers + description: >- + Found one billing information matching the search parameters + value: + { + "billingInformations":[ + { + "billingInformationId": 1, + "customerProfileId": 1, + "issuerCountry": "NL", + "iban": "NL06RABO8902022560", + "ascription": "J. Doe", + "alias": null, + "billingAddressId": 3 + } + ] + } + getBillingInformationIssuerCountry: + summary: Get multiple billing information entities for a specific issuer country + description: >- + Found multiple billing informations matching the search parameters + value: + { + "billingInformations":[ + { + "billingInformationId": 1, + "customerProfileId": 1, + "issuerCountry": "NL", + "iban": "NL06RABO8902022560", + "ascription": "J. Doe", + "alias": null, + "billingAddressId": 3 + }, + { + "billingInformationId": 2, + "customerProfileId": 5, + "issuerCountry": "NL", + "iban": "NL27ABNA4458972219", + "swift": "GHJZIEJSKVM", + "ascription": "J. Doe", + "alias": null, + "billingAddressId": 42 + }, + { + "billingInformationId": 11, + "customerProfileId": 9, + "issuerCountry": "NL", + "iban": "NL27ABNA4458972219", + "swift": "GHJZIEJSKVM", + "ascription": "J. Doe", + "alias": null, + "billingAddressId": 84 + } + ] + } + /customers/{customerProfileId}/billingInformations: + post: + tags: + - Billing Information + summary: Add billing information for a customer + description: >- + + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/billingInformationEntity" + examples: + customerBillinginformationMandatoryFields: + value: + billingInformation: + issuerCountry: "NL" + iban: "NL73RABO2677424363" + ascription: "J. Doe" + billingAddressId: 1 + customerBillinginformationMandatoryFull: + value: + billingInformation: + issuerCountry: "NL" + iban: "NL73RABO2677424363" + swift: "GHJZIEJSKVM" + ascription: "J. Doe" + alias: "John's billing details" + billingAddressId: 1 + required: true + responses: + 201: + description: Successfully created a customer billingInformation + content: + application/json: + schema: + $ref: "#/components/schemas/postBillingInformationResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /billingInformations/{billingInformationId}: + patch: + tags: + - Billing Information + summary: Update a billing information + description: >- + + parameters: + - name: billingInformationId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/billingInformationEntity" + examples: + updateBillingInformationAlias: + value: + billingInformation: + alias: "Mijn rekening details" + updateBillingInformationAdressId: + value: + billingInformation: + billingAddressId: 4 + updateBillingInformation: + value: + billingInformation: + alias: "Mijn rekening details" + billingAddressId: 4 + required: true + responses: + 200: + description: Successfully updated a customer billing information + content: + application/json: + {} + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /directdebitmandates: get: tags: @@ -1582,7 +1809,7 @@ paths: post: tags: - Mandates - summary: Add a customer direct debitmandate + summary: Add a customer direct debit mandate description: >- parameters: @@ -1617,6 +1844,42 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited + /directdebitmandates/{directdebitmandateId}: + patch: + tags: + - Mandates + summary: Update a customer direct debit mandate + description: >- + + parameters: + - name: directdebitmandateId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/mandateEntity" + examples: + customerDirectDebitMandatePrepared: + value: + directDebitMandate: + mandateState: CANCELLED + required: true + responses: + 200: + description: Successfully updated a customer mandate + content: + application/json: + {} + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + components: securitySchemes: default: @@ -1857,65 +2120,6 @@ components: type: array items: $ref: "#/components/schemas/getAuditTrails" - ovPayTokenEntity: - type: object - properties: - ovPayTokenId: - type: integer - tokenType: - type: object - properties: - tokenTypeId: - type: string - name: - type: string - xTat: - type: string - xBot: - type: string - alias: - type: string - lastDigits: - type: integer - ovpasNumber: - type: string - tokenStatus: - type: object - properties: - tokenStatusId: - type: integer - name: - type: string - expirationDate: - type: string - replacedByTokenId: - type: integer - ovChipcardEntity: - type: object - properties: - chipCardNumber: - type: integer - validUntil: - type: string - format: date - alias: - type: string - personEntity: - type: object - properties: - birthname: - type: string - surname: - type: string - prefix: - type: string - suffix: - type: string - dateOfBirth: - type: string - format: date - emailAddress: - type: string addressPostEntity: required: - addressTypeId @@ -2029,21 +2233,6 @@ components: type: boolean addressType: type: integer - customerPreferencesEntity: - type: object - properties: - languageId: - type: integer - customerStatusEntity: - type: object - properties: - customerStatusId: - type: integer - customersEntity: - type: object - properties: - debtorStatusId: - type: integer postCustomerProfileResponse: type: object properties: @@ -2068,12 +2257,9 @@ components: phoneId: type: integer example: 2 - postCustomerProfileBillingInformationResponse: + postBillingInformationResponse: type: object properties: - customerNumber: - type: integer - example: 10000001 billingInformationId: type: integer example: 1 @@ -2123,6 +2309,42 @@ components: type: array items: $ref: "#/components/schemas/ovPayTokenEntity" + customerPreferencesEntity: + type: object + properties: + customerPreferenceId: + type: integer + languageId: + type: integer + customerStatusEntity: + type: object + properties: + customerStatusId: + type: integer + customersEntity: + type: object + properties: + debtorStatusId: + type: integer + billingInformationEntity: + type: object + properties: + billingInformationId: + type: integer + issuerCountry: + type: string + iban: + type: string + bic: + type: string + swift: + type: string + ascription: + type: string + alias: + type: string + billingAddressId: + type: integer mandateEntity: type: object properties: @@ -2136,6 +2358,69 @@ components: type: string mandateState: type: string + ovPayTokenEntity: + type: object + properties: + ovPayTokenId: + type: integer + tokenType: + type: object + properties: + tokenTypeId: + type: string + name: + type: string + xTat: + type: string + xBot: + type: string + alias: + type: string + lastDigits: + type: integer + ovpasNumber: + type: string + tokenStatus: + type: object + properties: + tokenStatusId: + type: integer + name: + type: string + expirationDate: + type: string + replacedByTokenId: + type: integer + ovChipcardEntity: + type: object + properties: + ovChipCardId: + type: integer + chipCardNumber: + type: integer + validUntil: + type: string + format: date + alias: + type: string + personEntity: + type: object + properties: + personId: + type: integer + birthname: + type: string + surname: + type: string + prefix: + type: string + suffix: + type: string + dateOfBirth: + type: string + format: date + emailAddress: + type: string postOvPayTokenResponse: type: object properties: From 67109e72175986b9b140b9a09635dde5d55502c5 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Fri, 21 Feb 2025 12:43:12 +0100 Subject: [PATCH 26/30] pagination examples --- src/openapi/customers/customers-crud-v2.yaml | 412 +++++++++++++------ 1 file changed, 283 insertions(+), 129 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 27bf74d..acd9d10 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -7,107 +7,6 @@ servers: - url: https://api.integratielaag.nl/abt/abtcustomers/2.0 paths: /customers: - post: - tags: - - Customer - summary: Create a customer profile - description: >- - Create a customer profile in the ABT database with status ACTIVE and - debtorStatus Inactive with a start date based on the timestamp of this - post call. - - - Requested format for postal code: - - 0000AA - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/postCustomerProfile" - examples: - minimumProfile: - value: {} - basicCustomerProfile: - value: - debtorStatusId: 2 - person: - birthname: Jan - surname: Jansen - emailAddress: j.jansen@hatseflats.nl - fullCustomerProfile: - value: - customerPreference: - languageId: 1 - debtorStatusId: 2 - person: - birthname: Jan - surname: Jansen - prefix: dhr - suffix: jr - dateOfBirth: "1970-01-01" - emailAddress: j.jansen@hatseflats.nl - addresses: - - street: Laan van Meerdervoort - houseNumber: 5 - houseNumberSuffix: B - postalCode: 2500AA - city: Den Haag - country: NL - isPreferred: true - addressTypeId: 1 - - street: Beeklaan - houseNumber: 30 - houseNumberSuffix: B - postalCode: 2500AA - city: Den Haag - country: NL - isPreferred: false - addressTypeId: 2 - phones: - - number: "6123456789" - countryCode: "+31" - phoneTypeId: 1 - isPreferred: true - - number: "7012345678" - countryCode: "+31" - phoneTypeId: 2 - isPreferred: false - required: true - responses: - 201: - description: Successful created a customer profile - content: - application/json: - schema: - $ref: "#/components/schemas/postCustomerProfileResponse" - examples: - customerProfileCreated: - summary: customerProfileCreated - description: >- - Successfully created a customer profile - value: - customerProfileId: 1 - customerNumber: 1000001 - 400: - description: Bad Request - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - examples: - invalidDataTypeError: - summary: invalidDataTypeError - description: >- - The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). - value: - type: https://htm.nl/api/v1/probs/bad-request - title: Your request contains an invalid datatype - detail: '''2023-02-01 00:00:00'' is not a valid Datetime' - instance: urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited get: tags: - Customer @@ -275,7 +174,16 @@ paths: in: query schema: type: string - example: Mijn ING bankrekening + example: Mijn ING bankrekening + - name: offset + in: query + schema: + type: integer + - name: limit + in: query + schema: + type: integer + example: 20 responses: 200: description: Ok @@ -399,9 +307,16 @@ paths: user: user timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - - customerProfileId: 2 + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", + "method": "GET" + } + } + - customerProfileId: 12 customerNumber: 1000002 - debtorNumber: TEST001 + debtorNumber: DB100121 debtorStatus: debtorStatusId: 1 name: Inactive @@ -518,7 +433,28 @@ paths: user: user timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - href: null + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=12", + "method": "GET" + } + } + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?offset=20", + "method": "GET" + }, + "prev":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers", + "method": "GET" + }, + "next":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?offset=40", + "method": "GET" + } + } getCustomerActive: summary: getCustomerActive description: >- @@ -634,7 +570,20 @@ paths: user: user timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - href: null + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", + "method": "GET" + } + } + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers", + "method": "GET" + } + } getCustomerBlocked: summary: getCustomerBlocked description: >- @@ -755,7 +704,20 @@ paths: user: user timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - href: null + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", + "method": "GET" + } + } + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers", + "method": "GET" + } + } 400: description: Bad Request content: @@ -776,6 +738,107 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited + post: + tags: + - Customer + summary: Create a customer profile + description: >- + Create a customer profile in the ABT database with status ACTIVE and + debtorStatus Inactive with a start date based on the timestamp of this + post call. + + - Requested format for postal code: + - 0000AA + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/postCustomerProfile" + examples: + minimumProfile: + value: {} + basicCustomerProfile: + value: + debtorStatusId: 2 + person: + birthname: Jan + surname: Jansen + emailAddress: j.jansen@hatseflats.nl + fullCustomerProfile: + value: + customerPreference: + languageId: 1 + debtorStatusId: 2 + person: + birthname: Jan + surname: Jansen + prefix: dhr + suffix: jr + dateOfBirth: "1970-01-01" + emailAddress: j.jansen@hatseflats.nl + addresses: + - street: Laan van Meerdervoort + houseNumber: 5 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: true + addressTypeId: 1 + - street: Beeklaan + houseNumber: 30 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: false + addressTypeId: 2 + phones: + - number: "6123456789" + countryCode: "+31" + phoneTypeId: 1 + isPreferred: true + - number: "7012345678" + countryCode: "+31" + phoneTypeId: 2 + isPreferred: false + required: true + responses: + 201: + description: Successful created a customer profile + content: + application/json: + schema: + $ref: "#/components/schemas/postCustomerProfileResponse" + examples: + customerProfileCreated: + summary: customerProfileCreated + description: >- + Successfully created a customer profile + value: + customerProfileId: 1 + customerNumber: 1000001 + 400: + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + invalidDataTypeError: + summary: invalidDataTypeError + description: >- + The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + value: + type: https://htm.nl/api/v1/probs/bad-request + title: Your request contains an invalid datatype + detail: '''2023-02-01 00:00:00'' is not a valid Datetime' + instance: urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /customers/{customerProfileId}: patch: tags: @@ -811,7 +874,7 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - /customers/{customerProfileId}/customerStatus: + /customers/{customerProfileId}/customerStatusInstances: post: tags: - Customer @@ -1214,6 +1277,15 @@ paths: example: 12 required: false description: The id of the token that replaced this token. + - name: offset + in: query + schema: + type: integer + - name: limit + in: query + schema: + type: integer + example: 20 responses: 200: description: OK @@ -1239,8 +1311,22 @@ paths: "expirationDate": "2029-03-22T09:00:00", "replacedByTokenId": 12, }, - ], - "href": null, + ], + "_links": + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/ovPayTokens?offset=20", + "method": "GET" + }, + "prev":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/ovPayTokens", + "method": "GET" + }, + "next":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/ovPayTokens?offset=40", + "method": "GET" + } + } } /customers/{customerProfileId}/ovpaytokens: post: @@ -1501,6 +1587,15 @@ paths: schema: type: integer example: 1 + - name: offset + in: query + schema: + type: integer + - name: limit + in: query + schema: + type: integer + example: 20 responses: 200: description: OK @@ -1779,6 +1874,15 @@ paths: example: 2020-01-01T00:00:00 required: false description: Filter on updated after. + - name: offset + in: query + schema: + type: integer + - name: limit + in: query + schema: + type: integer + example: 20 responses: 200: description: OK @@ -1786,25 +1890,75 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - [ - { - "directDebitMandateId": 71, - "customerProfileId": 12, - "billingInformationId": 51, - "directDebitMandateType": - { - "directDebitMandateTypeId": 1, - "name": "import", - "description": "import", - }, - "mandateAddressId": 21, - "created": "2024-03-22T08:55:00", - "mandateReference": "CORE01", - "mandateState": "SINGED", - "updateTimestamp": "2024-03-22T08:55:00", - }, - ] + examples: + getDirectDebitMandateWithNextPage: + value: + { + "directDebitMandates": [ + { + "directDebitMandateId": 71, + "customerProfileId": 12, + "billingInformationId": 51, + "directDebitMandateType": + { + "directDebitMandateTypeId": 1, + "name": "import", + "description": "import", + }, + "mandateAddressId": 21, + "created": "2024-03-22T08:55:00", + "mandateReference": "CORE01", + "mandateState": "SINGED", + "updateTimestamp": "2024-03-22T08:55:00", + } + ], + "_links": { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates", + "method": "GET" + }, + "next":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=20", + "method": "GET" + } + } + } + getDirectDebitMandateWithNextPageandPreviousPage: + value: + { + "directDebitMandates": [ + { + "directDebitMandateId": 71, + "customerProfileId": 12, + "billingInformationId": 51, + "directDebitMandateType": + { + "directDebitMandateTypeId": 1, + "name": "import", + "description": "import", + }, + "mandateAddressId": 21, + "created": "2024-03-22T08:55:00", + "mandateReference": "CORE01", + "mandateState": "SINGED", + "updateTimestamp": "2024-03-22T08:55:00", + } + ], + "_links": { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=20", + "method": "GET" + }, + "prev":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates", + "method": "GET" + }, + "next":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=40", + "method": "GET" + } + } + } /billingInformation/{billingInformationId}/directdebitmandates: post: tags: From 12126253ac3a3aa3ca847a971546d64be578f450 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Fri, 21 Feb 2025 14:29:32 +0100 Subject: [PATCH 27/30] changed swift to bic inline with orders --- src/openapi/customers/customers-crud-v2.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index acd9d10..7499913 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -160,7 +160,7 @@ paths: schema: type: string example: NL20INGB - - name: swift + - name: bic in: query schema: type: string @@ -1567,7 +1567,7 @@ paths: schema: type: string example: "NL73RABO2677424363" - - name: swift + - name: bic in: query schema: type: string @@ -1625,7 +1625,7 @@ paths: "customerProfileId": 1, "issuerCountry": "NL", "iban": "NL27ABNA4458972219", - "swift": "GHJZIEJSKVM", + "bic": "GHJZIEJSKVM", "ascription": "J. Doe", "alias": "John's billing details", "billingAddressId": 4 @@ -1671,7 +1671,7 @@ paths: "customerProfileId": 5, "issuerCountry": "NL", "iban": "NL27ABNA4458972219", - "swift": "GHJZIEJSKVM", + "bic": "GHJZIEJSKVM", "ascription": "J. Doe", "alias": null, "billingAddressId": 42 @@ -1681,7 +1681,7 @@ paths: "customerProfileId": 9, "issuerCountry": "NL", "iban": "NL27ABNA4458972219", - "swift": "GHJZIEJSKVM", + "bic": "GHJZIEJSKVM", "ascription": "J. Doe", "alias": null, "billingAddressId": 84 @@ -1720,7 +1720,7 @@ paths: billingInformation: issuerCountry: "NL" iban: "NL73RABO2677424363" - swift: "GHJZIEJSKVM" + bic: "GHJZIEJSKVM" ascription: "J. Doe" alias: "John's billing details" billingAddressId: 1 @@ -2491,7 +2491,7 @@ components: type: string bic: type: string - swift: + bic: type: string ascription: type: string From c9b445b54b58ed52a213e546824f07b554edb5bd Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Fri, 21 Feb 2025 14:57:42 +0100 Subject: [PATCH 28/30] removed duplicate bic --- src/openapi/customers/customers-crud-v2.yaml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 7499913..eaedd01 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -159,12 +159,7 @@ paths: in: query schema: type: string - example: NL20INGB - - name: bic - in: query - schema: - type: string - example: NL20INGB + example: NL20INGB - name: ascription in: query schema: From db12ae5f62224272981ff18d052be9ea86a9dda2 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Fri, 21 Feb 2025 16:53:17 +0100 Subject: [PATCH 29/30] added sort query param --- src/openapi/customers/customers-crud-v2.yaml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index eaedd01..db38de9 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -170,6 +170,10 @@ paths: schema: type: string example: Mijn ING bankrekening + - name: sort + in: query + schema: + type: string - name: offset in: query schema: @@ -1272,6 +1276,10 @@ paths: example: 12 required: false description: The id of the token that replaced this token. + - name: sort + in: query + schema: + type: string - name: offset in: query schema: @@ -1582,6 +1590,10 @@ paths: schema: type: integer example: 1 + - name: sort + in: query + schema: + type: string - name: offset in: query schema: @@ -1869,6 +1881,10 @@ paths: example: 2020-01-01T00:00:00 required: false description: Filter on updated after. + - name: sort + in: query + schema: + type: string - name: offset in: query schema: @@ -2486,8 +2502,6 @@ components: type: string bic: type: string - bic: - type: string ascription: type: string alias: From efb62a6abd90795804b30d0860cf7774353054f9 Mon Sep 17 00:00:00 2001 From: "b.boterman@htm.nl" Date: Mon, 17 Mar 2025 10:57:15 +0100 Subject: [PATCH 30/30] OVPAY-1293 - Processed review remarks myself. --- src/openapi/customers/customers-crud-v2.yaml | 1532 +++++++++--------- 1 file changed, 802 insertions(+), 730 deletions(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index db38de9..83c7a68 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -15,7 +15,7 @@ paths: Search for all customer profile list in the ABT database matching given query parameters parameters: - name: customerProfileId - in: query + in: query schema: type: integer example: 1 @@ -43,6 +43,23 @@ paths: items: type: integer description: Filter on possible debtor statuses. 1 = Active, 2 = Inactive + - name: vasCustomerNumber + in: query + schema: + type: string + example: VAS100001 + - name: lastLoginBefore + in: query + schema: + type: string + format: date-time + example: "2022-08-04 15:01:00.000" + - name: lastLoginAfter + in: query + schema: + type: string + format: date-time + example: "2022-08-04 15:01:00.000" - name: birthname in: query schema: @@ -57,7 +74,7 @@ paths: in: query schema: type: string - example: De + example: de - name: suffix in: query schema: @@ -79,67 +96,67 @@ paths: in: query schema: type: string - example: Sesamestreet + example: Sesamestreet - name: addressHouseNumber in: query schema: type: integer - example: 1 + example: 1 - name: addressHouseNumberSuffix in: query schema: type: string - example: A + example: A - name: addressPostalCode in: query schema: type: string - example: 1234AB + example: 1234AB - name: addressCity in: query schema: type: string - example: The Hague + example: The Hague - name: addressCountry in: query schema: type: string - example: NL + example: NL - name: phoneNumber in: query schema: type: string - example: "0123456789" + example: "0123456789" - name: phoneCountryCode in: query schema: type: string - example: "+31" + example: "+31" - name: ovChipcardNumber in: query schema: type: integer - example: 0123456789 + example: 0123456789 - name: ovChipcardAlias in: query schema: type: string - example: My ovchipcard + example: My ovchipcard - name: ovPasNumber in: query schema: type: string - example: 0123456789 + example: 0123456789 - name: ovPayTokenAlias in: query schema: type: string - example: My Ov Pay Token + example: My Ov Pay Token - name: ovPayTokenXTat in: query schema: type: string - example: 180d04e0-a721-447e-a1d9-b416937b43bc + example: 180d04e0-a721-447e-a1d9-b416937b43bc - name: ovPayTokenXBot in: query schema: @@ -154,33 +171,33 @@ paths: in: query schema: type: string - example: NL20INGB0001234567 + example: NL20INGB0001234567 - name: bic in: query schema: type: string - example: NL20INGB + example: NL20INGB - name: ascription in: query schema: type: string - example: j.jansen + example: j.jansen - name: billingAlias in: query schema: type: string - example: Mijn ING bankrekening + example: Mijn ING bankrekening - name: sort in: query - schema: + schema: type: string - name: offset in: query - schema: - type: integer + schema: + type: integer - name: limit in: query - schema: + schema: type: integer example: 20 responses: @@ -203,7 +220,7 @@ paths: debtorStatus: debtorStatusId: 1 name: Inactive - vascustomerNumber: CST005 + vasCustomerNumber: CST005 customerPreference: language: languageId: 1 @@ -218,8 +235,8 @@ paths: toInclusive: "2022-08-05 15:01:00.000" person: birthname: Pieter - surname: De valen - prefix: De + surname: Valen + prefix: de suffix: PhD dateOfBirth: "2002-10-29" emailAddresses: TEST@HTM.NL @@ -262,66 +279,67 @@ paths: name: Work isPreferred: false ovChipcards: - - ovChipCardId: 1 - chipCardNumber: 1234123412341234 - validUntil: "2023-01-01" - alias: alias - - ovChipCardId: 2 - chipCardNumber: 1234123412341235 - validUntil: "2025-01-01" - alias: alias + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: "2023-01-01" + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: "2025-01-01" + alias: alias ovPayTokens: - - ovPayTokenId: 126 - tokenType: - tokenTypeId: 1 - name: EMV - xTat: 0115b0df-db38-4702-8811-6f7de00db3ac - xBot: 71a88843-32b8-4d52-ac25-de2458c47775 - alias: alias - lastDigits: "5678" - ovpasNumber: null - tokenStatus: - tokenStatusId: 2 - name: Active - expirationDate: "2025-04-20T17:05:52.000+02:00" - replacedByTokenId: 1 - - ovPayTokenId: 127 - tokenType: - tokenTypeId: 2 - name: OV-pas physical - xTat: 0115b0df-db38-4702-8811-6f7de00db3ac - xBot: 71a88843-32b8-4d52-ac25-de2458c47775 - alias: alias - lastDigits: "5674" - ovpasNumber: OV34568 - tokenStatus: - tokenStatusId: 2 - name: Active - expirationDate: "2024-04-20T17:05:52.000+02:00" - replacedByTokenId: 2 + - ovPayTokenId: 126 + tokenType: + tokenTypeId: 1 + name: EMV + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5678" + ovpasNumber: null + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2025-04-20T17:05:52.000+02:00" + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenType: + tokenTypeId: 2 + name: OV-pas physical + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5674" + ovpasNumber: OV34568 + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2024-04-20T17:05:52.000+02:00" + replacedByTokenId: 2 auditTrails: - - auditTrailId: 1 - customerProfileId: 1 - action: insert - user: user - timestamp: "2023-10-20T17:05:52.000+02:00" - correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: "2023-10-20T17:05:52.000+02:00" + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 _links: { - "self":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", - "method": "GET" - } - } + "self": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", + "method": "GET", + }, + } - customerProfileId: 12 customerNumber: 1000002 debtorNumber: DB100121 debtorStatus: debtorStatusId: 1 name: Inactive - vascustomerNumber: CST005 + vasCustomerNumber: CST005 customerPreference: - language: + language: languageId: 1 name: Dutch ietfCode: nl-NL @@ -344,8 +362,8 @@ paths: toInclusive: null person: birthname: Pieter - surname: De valen - prefix: De + surname: Valen + prefix: de suffix: PhD dateOfBirth: "2002-10-29" emailAddresses: TEST@HTM.NL @@ -388,71 +406,75 @@ paths: name: Work isPreferred: false ovChipcards: - - ovChipCardId: 1 - chipCardNumber: 1234123412341234 - validUntil: "2023-01-01" - alias: alias - - ovChipCardId: 2 - chipCardNumber: 1234123412341235 - validUntil: "2025-01-01" - alias: alias + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: "2023-01-01" + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: "2025-01-01" + alias: alias ovPayTokens: - - ovPayTokenId: 126 - tokenType: - tokenTypeId: 2 - name: OV-pas physical - xTat: 0115b0df-db38-4702-8811-6f7de00db3ac - xBot: 71a88843-32b8-4d52-ac25-de2458c47775 - alias: alias - lastDigits: "5678" - ovpasNumber: OV34567 - tokenStatus: - tokenStatusId: 2 - name: active - expirationDate: "2025-04-20T17:05:52.000+02:00" - replacedByTokenId: 1 - - ovPayTokenId: 127 - tokenType: - tokenTypeId: 2 - name: OV-pas physical - xTat: 0115b0df-db38-4702-8811-6f7de00db3ac - xBot: 71a88843-32b8-4d52-ac25-de2458c47775 - alias: alias - lastDigits: "5674" - ovpasNumber: OV34568 - tokenStatus: - tokenStatusId: 2 - name: active - expirationDate: "2024-04-20T17:05:52.000+02:00" - replacedByTokenId: 2 + - ovPayTokenId: 126 + tokenType: + tokenTypeId: 2 + name: OV-pas physical + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5678" + ovpasNumber: OV34567 + tokenStatus: + tokenStatusId: 2 + name: active + expirationDate: "2025-04-20T17:05:52.000+02:00" + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenType: + tokenTypeId: 2 + name: OV-pas physical + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5674" + ovpasNumber: OV34568 + tokenStatus: + tokenStatusId: 2 + name: active + expirationDate: "2024-04-20T17:05:52.000+02:00" + replacedByTokenId: 2 auditTrails: - - auditTrailId: 1 - customerProfileId: 1 - action: insert - user: user - timestamp: "2023-10-20T17:05:52.000+02:00" - correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: "2023-10-20T17:05:52.000+02:00" + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 _links: { - "self":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=12", - "method": "GET" - } - } - _links: - { - "self":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?offset=20", - "method": "GET" - }, - "prev":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers", - "method": "GET" - }, - "next":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?offset=40", - "method": "GET" - } + "self": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=12", + "method": "GET", + }, + } + _links: + { + "self": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?offset=20", + "method": "GET", + }, + "prev": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers", + "method": "GET", + }, + "next": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?offset=40", + "method": "GET", + }, } getCustomerActive: summary: getCustomerActive @@ -466,7 +488,7 @@ paths: debtorStatus: debtorStatusId: 1 name: Inactive - vascustomerNumber: CST005 + vasCustomerNumber: CST005 customerPreference: language: languageId: 1 @@ -481,8 +503,8 @@ paths: toInclusive: null person: birthname: Pieter - surname: De valen - prefix: De + surname: Valen + prefix: de suffix: PhD dateOfBirth: "2002-10-29" emailAddresses: TEST@HTM.NL @@ -525,64 +547,66 @@ paths: name: Work isPreferred: false ovChipcards: - - ovChipCardId: 1 - chipCardNumber: 1234123412341234 - validUntil: "2023-01-01" - alias: alias - - ovChipCardId: 2 - chipCardNumber: 1234123412341235 - validUntil: "2025-01-01" - alias: alias + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: "2023-01-01" + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: "2025-01-01" + alias: alias ovPayTokens: - - ovPayTokenId: 126 - tokenType: - tokenTypeId: 1 - name: EMV - xTat: 0115b0df-db38-4702-8811-6f7de00db3ac - xBot: 71a88843-32b8-4d52-ac25-de2458c47775 - alias: alias - lastDigits: "5678" - ovpasNumber: null - tokenStatus: - tokenStatusId: 2 - name: Active - expirationDate: "2025-04-20T17:05:52.000+02:00" - replacedByTokenId: 1 - - ovPayTokenId: 127 - tokenType: - tokenTypeId: 2 - name: OV-pas physical - xTat: 0115b0df-db38-4702-8811-6f7de00db3ac - xBot: 71a88843-32b8-4d52-ac25-de2458c47775 - alias: alias - lastDigits: "5674" - ovpasNumber: OV34568 - tokenStatus: - tokenStatusId: 2 - name: Active - expirationDate: "2024-04-20T17:05:52.000+02:00" - replacedByTokenId: 2 + - ovPayTokenId: 126 + tokenType: + tokenTypeId: 1 + name: EMV + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5678" + ovpasNumber: null + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2025-04-20T17:05:52.000+02:00" + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenType: + tokenTypeId: 2 + name: OV-pas physical + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5674" + ovpasNumber: OV34568 + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2024-04-20T17:05:52.000+02:00" + replacedByTokenId: 2 auditTrails: - - auditTrailId: 1 - customerProfileId: 1 - action: insert - user: user - timestamp: "2023-10-20T17:05:52.000+02:00" - correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: "2023-10-20T17:05:52.000+02:00" + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 _links: { - "self":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", - "method": "GET" - } + "self": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", + "method": "GET", + }, } _links: - { - "self":{ + { + "self": + { "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers", - "method": "GET" - } - } + "method": "GET", + }, + } getCustomerBlocked: summary: getCustomerBlocked description: >- @@ -595,7 +619,7 @@ paths: debtorStatus: debtorStatusId: 2 name: Active - vascustomerNumber: CST005 + vasCustomerNumber: CST005 customerPreference: language: languageId: 1 @@ -615,8 +639,8 @@ paths: toInclusive: null person: birthname: Pieter - surname: De valen - prefix: De + surname: Valen + prefix: de suffix: PhD dateOfBirth: "2002-10-29" emailAddresses: TEST@HTM.NL @@ -659,64 +683,66 @@ paths: name: Work isPreferred: false ovChipcards: - - ovChipCardId: 1 - chipCardNumber: 1234123412341234 - validUntil: "2023-01-01" - alias: alias - - ovChipCardId: 2 - chipCardNumber: 1234123412341235 - validUntil: "2025-01-01" - alias: alias + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: "2023-01-01" + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: "2025-01-01" + alias: alias ovPayTokens: - - ovPayTokenId: 126 - tokenType: - tokenTypeId: 1 - name: EMV - xTat: 0115b0df-db38-4702-8811-6f7de00db3ac - xBot: 71a88843-32b8-4d52-ac25-de2458c47775 - alias: alias - lastDigits: "5678" - ovpasNumber: null - tokenStatus: - tokenStatusId: 2 - name: Active - expirationDate: "2025-04-20T17:05:52.000+02:00" - replacedByTokenId: 1 - - ovPayTokenId: 127 - tokenType: - tokenTypeId: 2 - name: OV-pas physical - xTat: 0115b0df-db38-4702-8811-6f7de00db3ac - xBot: 71a88843-32b8-4d52-ac25-de2458c47775 - alias: alias - lastDigits: "5674" - ovpasNumber: OV34568 - tokenStatus: - tokenStatusId: 2 - name: Active - expirationDate: "2024-04-20T17:05:52.000+02:00" - replacedByTokenId: 2 + - ovPayTokenId: 126 + tokenType: + tokenTypeId: 1 + name: EMV + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5678" + ovpasNumber: null + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2025-04-20T17:05:52.000+02:00" + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenType: + tokenTypeId: 2 + name: OV-pas physical + xTat: 0115b0df-db38-4702-8811-6f7de00db3ac + xBot: 71a88843-32b8-4d52-ac25-de2458c47775 + alias: alias + lastDigits: "5674" + ovpasNumber: OV34568 + tokenStatus: + tokenStatusId: 2 + name: Active + expirationDate: "2024-04-20T17:05:52.000+02:00" + replacedByTokenId: 2 auditTrails: - - auditTrailId: 1 - customerProfileId: 1 - action: insert - user: user - timestamp: "2023-10-20T17:05:52.000+02:00" - correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: "2023-10-20T17:05:52.000+02:00" + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 _links: { - "self":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", - "method": "GET" - } + "self": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", + "method": "GET", + }, } _links: - { - "self":{ + { + "self": + { "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers", - "method": "GET" - } - } + "method": "GET", + }, + } 400: description: Bad Request content: @@ -731,12 +757,12 @@ paths: value: type: https://htm.nl/api/v1/probs/bad-request title: Your request contains an invalid datatype - detail: '''2023-02-01 00:00:00'' is not a valid Datetime' + detail: "'2023-02-01 00:00:00' is not a valid Datetime" instance: urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b security: - default: [] x-auth-type: Application & Application User - x-throttling-tier: Unlimited + x-throttling-tier: Unlimited post: tags: - Customer @@ -748,7 +774,9 @@ paths: - Requested format for postal code: - 0000AA - parameters: [] + - Requested format for country: + - NL + parameters: [] requestBody: content: application/json: @@ -772,7 +800,7 @@ paths: person: birthname: Jan surname: Jansen - prefix: dhr + prefix: de suffix: jr dateOfBirth: "1970-01-01" emailAddress: j.jansen@hatseflats.nl @@ -814,10 +842,11 @@ paths: customerProfileCreated: summary: customerProfileCreated description: >- - Successfully created a customer profile + Successfully created a customer profile value: customerProfileId: 1 customerNumber: 1000001 + debtorNumber: DB100001 400: description: Bad Request content: @@ -832,12 +861,12 @@ paths: value: type: https://htm.nl/api/v1/probs/bad-request title: Your request contains an invalid datatype - detail: '''2023-02-01 00:00:00'' is not a valid Datetime' - instance: urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b + detail: "'2023-02-01 00:00:00' is not a valid Datetime" + instance: urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b security: - default: [] x-auth-type: Application & Application User - x-throttling-tier: Unlimited + x-throttling-tier: Unlimited /customers/{customerProfileId}: patch: tags: @@ -848,7 +877,7 @@ paths: parameters: - name: customerProfileId in: path - required: true + required: true schema: type: integer example: 1 @@ -864,7 +893,7 @@ paths: required: true responses: 201: - description: Successfully modified a customer + description: Successfully modified a customer content: application/json: schema: @@ -879,11 +908,11 @@ paths: - Customer summary: Create a new customer status element description: >- - + parameters: - name: customerProfileId in: path - required: true + required: true schema: type: integer example: 1 @@ -904,22 +933,22 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/postCustomerPreferencesResponse" + $ref: "#/components/schemas/postCustomerStatusResponse" security: - default: [] x-auth-type: Application & Application User - x-throttling-tier: Unlimited + x-throttling-tier: Unlimited /customers/{customerProfileId}/customerPreferences: post: tags: - Customer summary: Create a customer preference element description: >- - + parameters: - name: customerProfileId in: path - required: true + required: true schema: type: integer example: 1 @@ -944,97 +973,97 @@ paths: security: - default: [] x-auth-type: Application & Application User - x-throttling-tier: Unlimited + x-throttling-tier: Unlimited /customerPreferences/{customerPreferenceId}: - patch: - tags: - - Customer - summary: Modify a customer preference element - description: >- - - parameters: - - name: customerPreferenceId - in: path - required: true + patch: + tags: + - Customer + summary: Modify a customer preference element + description: >- + + parameters: + - name: customerPreferenceId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: schema: - type: integer - example: 1 - requestBody: + $ref: "#/components/schemas/customerPreferencesEntity" + examples: + customerPreference: + value: + customerPreference: + languageId: 1 + required: true + responses: + 200: + description: Successfully modified a customer preference content: application/json: schema: - $ref: "#/components/schemas/customerPreferencesEntity" - examples: - customerPreference: - value: - customerPreference: - languageId: 1 - required: true - responses: - 200: - description: Successfully modified a customer preference - content: - application/json: - schema: - $ref: "#/components/schemas/patchCustomerPreferencesResponse" - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited + $ref: "#/components/schemas/patchCustomerPreferencesResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /customers/{customerProfileId}/addresses: - post: - tags: - - Customer address - summary: Add a customer address - description: >- - - parameters: - - name: customerProfileId - in: path - required: true + post: + tags: + - Customer address + summary: Add a customer address + description: >- + + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: schema: - type: integer - example: 1 - requestBody: + $ref: "#/components/schemas/postCustomerAddress" + examples: + customerAddress: + value: + customerAddress: + addressTypeId: 1 + street: Sesamstraat + houseNumber: 1 + houseNumberSuffix: A + postalCode: 1234 AB + city: Den Haag + country: NL + isPreferred: true + required: true + responses: + 201: + description: Successfully created a customer address content: application/json: schema: - $ref: "#/components/schemas/postCustomerAddress" - examples: - customerAddress: - value: - customerAddress: - addressTypeId: 1 - street: Sesamstraat - houseNumber: 1 - houseNumberSuffix: A - postalCode: 1234 AB - city: Den Haag - country: NL - isPreferred: true - required: true - responses: - 201: - description: Successfully created a customer address - content: - application/json: - schema: - $ref: "#/components/schemas/postCustomerProfileAddressResponse" - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited + $ref: "#/components/schemas/postCustomerProfileAddressResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /addresses/{addressId}: patch: tags: - Customer address summary: Edit a customer address description: >- - + parameters: - name: addressId in: path - required: true + required: true schema: type: integer example: 2 @@ -1065,11 +1094,11 @@ paths: - Customer address summary: Delete a customer address description: >- - + parameters: - name: addressId in: path - required: true + required: true schema: type: integer example: 2 @@ -1077,62 +1106,61 @@ paths: 200: description: Successfully deleted a customer Address content: - application/json: - {} + application/json: {} security: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited /customers/{customerProfileId}/phones: - post: - tags: - - Customer phoneNumber - summary: Add a customer phonenumber - description: >- - - parameters: - - name: customerProfileId - in: path - required: true + post: + tags: + - Customer phoneNumber + summary: Add a customer phonenumber + description: >- + + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: schema: - type: integer - example: 1 - requestBody: + $ref: "#/components/schemas/phoneEntity" + examples: + customerPhone: + value: + phone: + number: 0701112233 + countryCode: 0031 + phoneTypeId: 1 + isPreferred: true + required: true + responses: + 201: + description: Successfully created a customer phonenumber content: application/json: schema: - $ref: "#/components/schemas/phoneEntity" - examples: - customerPhone: - value: - phone: - number: 0701112233 - countryCode: 0031 - phoneTypeId: 1 - isPreferred: true - required: true - responses: - 201: - description: Successfully created a customer phonenumber - content: - application/json: - schema: - $ref: "#/components/schemas/postPhoneResponse" - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited + $ref: "#/components/schemas/postPhoneResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /phones/{phoneId}: patch: tags: - Customer phoneNumber summary: Edit a customer phonenumber description: >- - + parameters: - name: phoneId in: path - required: true + required: true schema: type: integer example: 2 @@ -1163,11 +1191,11 @@ paths: - Customer phoneNumber summary: Delete a customer phone description: >- - + parameters: - name: phoneId in: path - required: true + required: true schema: type: integer example: 2 @@ -1175,8 +1203,7 @@ paths: 200: description: Successfully deleted a customer phonenumber content: - application/json: - {} + application/json: {} security: - default: [] x-auth-type: Application & Application User @@ -1278,15 +1305,15 @@ paths: description: The id of the token that replaced this token. - name: sort in: query - schema: + schema: type: string - name: offset in: query - schema: - type: integer + schema: + type: integer - name: limit in: query - schema: + schema: type: integer example: 20 responses: @@ -1314,26 +1341,29 @@ paths: "expirationDate": "2029-03-22T09:00:00", "replacedByTokenId": 12, }, - ], - "_links": + ], + "_links": + { + "self": { - "self":{ "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/ovPayTokens?offset=20", - "method": "GET" + "method": "GET", }, - "prev":{ + "prev": + { "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/ovPayTokens", - "method": "GET" + "method": "GET", }, - "next":{ + "next": + { "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/ovPayTokens?offset=40", - "method": "GET" - } - } + "method": "GET", + }, + }, } /customers/{customerProfileId}/ovpaytokens: post: - tags: + tags: - Ovpay Token summary: Create a new ovpay token description: >- @@ -1341,7 +1371,7 @@ paths: parameters: - name: customerProfileId in: path - required: true + required: true schema: type: integer example: 1 @@ -1384,7 +1414,7 @@ paths: x-throttling-tier: Unlimited /ovpaytokens/{ovpaytokenId}: patch: - tags: + tags: - Ovpay Token summary: Update an ovpay token description: >- @@ -1392,7 +1422,7 @@ paths: parameters: - name: ovpaytokenId in: path - required: true + required: true schema: type: integer example: 1 @@ -1432,11 +1462,11 @@ paths: - Ovpay Token summary: Delete an ovpay token description: >- - + parameters: - name: ovpaytokenId in: path - required: true + required: true schema: type: integer example: 2 @@ -1444,15 +1474,14 @@ paths: 200: description: Successfully deleted a customer ovpaytoken content: - application/json: - {} + application/json: {} security: - default: [] x-auth-type: Application & Application User - x-throttling-tier: Unlimited + x-throttling-tier: Unlimited /customers/{customerProfileId}/ovchipcards: post: - tags: + tags: - Ovchipcard summary: Create a new ovchipcard description: >- @@ -1460,7 +1489,7 @@ paths: parameters: - name: customerProfileId in: path - required: true + required: true schema: type: integer example: 1 @@ -1472,7 +1501,7 @@ paths: examples: ovChipcards: value: - ovChipcard: + ovChipcard: chipCardNumber: 1234123412341234 validUntil: "2027-01-01" alias: Mijn chipkaart @@ -1490,15 +1519,15 @@ paths: x-throttling-tier: Unlimited /ovchipcards/{ovchipcardId}: patch: - tags: - - Ovchipcard + tags: + - Ovchipcard summary: Update an ovchipcard description: >- parameters: - name: ovchipcardId in: path - required: true + required: true schema: type: integer example: 1 @@ -1529,11 +1558,11 @@ paths: - Ovchipcard summary: Delete an ovchipcard description: >- - + parameters: - name: ovchipcardId in: path - required: true + required: true schema: type: integer example: 2 @@ -1541,14 +1570,13 @@ paths: 200: description: Successfully deleted a customer ovchipcard content: - application/json: - {} + application/json: {} security: - default: [] x-auth-type: Application & Application User - x-throttling-tier: Unlimited + x-throttling-tier: Unlimited /billingInformations: - get: + get: tags: - Billing Information summary: Find billing information @@ -1556,33 +1584,33 @@ paths: parameters: - name: customerProfileId - in: query + in: query schema: type: integer example: 1 - name: issuerCountry in: query - schema: + schema: type: string example: "NL" - name: iban in: query - schema: + schema: type: string example: "NL73RABO2677424363" - name: bic in: query - schema: + schema: type: string - example: "GHJZIEJSKVM" + example: "GHJZIEJSKVM" - name: ascription in: query - schema: + schema: type: string example: "J. Doe" - name: alias in: query - schema: + schema: type: string example: "John's billing details" - name: billingAddressID @@ -1592,15 +1620,15 @@ paths: example: 1 - name: sort in: query - schema: + schema: type: string - name: offset in: query - schema: - type: integer + schema: + type: integer - name: limit in: query - schema: + schema: type: integer example: 20 responses: @@ -1615,178 +1643,190 @@ paths: summary: Get multiple billing information entities for a specific customers description: >- Found multiple billing informations matching the search parameters - value: + value: { - "billingInformations":[ - { - "billingInformationId": 1, - "customerProfileId": 1, - "issuerCountry": "NL", - "iban": "NL06RABO8902022560", - "ascription": "J. Doe", - "alias": null, - "billingAddressId": 3 - }, - { - "billingInformationId": 2, - "customerProfileId": 1, - "issuerCountry": "NL", - "iban": "NL27ABNA4458972219", - "bic": "GHJZIEJSKVM", - "ascription": "J. Doe", - "alias": "John's billing details", - "billingAddressId": 4 - } - ] - } + "billingInformations": + [ + { + "billingInformationId": 1, + "customerProfileId": 1, + "issuerCountry": "NL", + "iban": "NL06RABO8902022560", + "ascription": "J. Doe", + "alias": null, + "billingAddressId": 3, + }, + { + "billingInformationId": 2, + "customerProfileId": 1, + "issuerCountry": "NL", + "iban": "NL27ABNA4458972219", + "bic": "GHJZIEJSKVM", + "ascription": "J. Doe", + "alias": "John's billing details", + "billingAddressId": 4, + }, + ], + } getBillingInformationSingleSpecificCustomer: summary: Get singel billing information entity for a specific customers description: >- Found one billing information matching the search parameters - value: + value: { - "billingInformations":[ - { - "billingInformationId": 1, - "customerProfileId": 1, - "issuerCountry": "NL", - "iban": "NL06RABO8902022560", - "ascription": "J. Doe", - "alias": null, - "billingAddressId": 3 - } - ] - } + "billingInformations": + [ + { + "billingInformationId": 1, + "customerProfileId": 1, + "issuerCountry": "NL", + "iban": "NL06RABO8902022560", + "ascription": "J. Doe", + "alias": null, + "billingAddressId": 3, + }, + ], + } getBillingInformationIssuerCountry: summary: Get multiple billing information entities for a specific issuer country description: >- Found multiple billing informations matching the search parameters - value: + value: { - "billingInformations":[ - { - "billingInformationId": 1, - "customerProfileId": 1, - "issuerCountry": "NL", - "iban": "NL06RABO8902022560", - "ascription": "J. Doe", - "alias": null, - "billingAddressId": 3 - }, - { - "billingInformationId": 2, - "customerProfileId": 5, - "issuerCountry": "NL", - "iban": "NL27ABNA4458972219", - "bic": "GHJZIEJSKVM", - "ascription": "J. Doe", - "alias": null, - "billingAddressId": 42 - }, - { - "billingInformationId": 11, - "customerProfileId": 9, - "issuerCountry": "NL", - "iban": "NL27ABNA4458972219", - "bic": "GHJZIEJSKVM", - "ascription": "J. Doe", - "alias": null, - "billingAddressId": 84 - } - ] - } + "billingInformations": + [ + { + "billingInformationId": 1, + "customerProfileId": 1, + "issuerCountry": "NL", + "iban": "NL06RABO8902022560", + "ascription": "J. Doe", + "alias": null, + "billingAddressId": 3, + }, + { + "billingInformationId": 2, + "customerProfileId": 5, + "issuerCountry": "NL", + "iban": "NL27ABNA4458972219", + "bic": "GHJZIEJSKVM", + "ascription": "J. Doe", + "alias": null, + "billingAddressId": 42, + }, + { + "billingInformationId": 11, + "customerProfileId": 9, + "issuerCountry": "NL", + "iban": "NL27ABNA4458972219", + "bic": "GHJZIEJSKVM", + "ascription": "J. Doe", + "alias": null, + "billingAddressId": 84, + }, + ], + } /customers/{customerProfileId}/billingInformations: - post: - tags: - - Billing Information - summary: Add billing information for a customer - description: >- + post: + tags: + - Billing Information + summary: Add billing information for a customer + description: >- - parameters: - - name: customerProfileId - in: path - required: true + parameters: + - name: customerProfileId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: schema: - type: integer - example: 1 - requestBody: + $ref: "#/components/schemas/billingInformationEntity" + examples: + customerBillinginformationMandatoryFields: + value: + billingInformation: + issuerCountry: "NL" + iban: "NL73RABO2677424363" + ascription: "J. Doe" + billingAddressId: 1 + customerBillinginformationMandatoryFull: + value: + billingInformation: + issuerCountry: "NL" + iban: "NL73RABO2677424363" + bic: "GHJZIEJSKVM" + ascription: "J. Doe" + alias: "John's billing details" + billingAddressId: 1 + required: true + responses: + 201: + description: Successfully created a customer billingInformation content: application/json: schema: - $ref: "#/components/schemas/billingInformationEntity" - examples: - customerBillinginformationMandatoryFields: - value: - billingInformation: - issuerCountry: "NL" - iban: "NL73RABO2677424363" - ascription: "J. Doe" - billingAddressId: 1 - customerBillinginformationMandatoryFull: - value: - billingInformation: - issuerCountry: "NL" - iban: "NL73RABO2677424363" - bic: "GHJZIEJSKVM" - ascription: "J. Doe" - alias: "John's billing details" - billingAddressId: 1 - required: true - responses: - 201: - description: Successfully created a customer billingInformation - content: - application/json: - schema: - $ref: "#/components/schemas/postBillingInformationResponse" - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited + $ref: "#/components/schemas/postBillingInformationResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /billingInformations/{billingInformationId}: patch: - tags: - - Billing Information - summary: Update a billing information - description: >- - - parameters: - - name: billingInformationId - in: path - required: true + tags: + - Billing Information + summary: Update a billing information + description: >- + + parameters: + - name: billingInformationId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: schema: - type: integer - example: 1 - requestBody: + $ref: "#/components/schemas/billingInformationEntity" + examples: + updateBillingInformationAlias: + value: + billingInformation: + alias: "Mijn rekening details" + updateBillingInformationAdressId: + value: + billingInformation: + billingAddressId: 4 + updateBillingInformation: + value: + billingInformation: + alias: "Mijn rekening details" + billingAddressId: 4 + required: true + responses: + 200: + description: Successfully updated a customer billing information content: application/json: - schema: - $ref: "#/components/schemas/billingInformationEntity" - examples: - updateBillingInformationAlias: - value: - billingInformation: - alias: "Mijn rekening details" - updateBillingInformationAdressId: - value: - billingInformation: - billingAddressId: 4 - updateBillingInformation: - value: - billingInformation: - alias: "Mijn rekening details" - billingAddressId: 4 - required: true - responses: - 200: - description: Successfully updated a customer billing information - content: - application/json: - {} - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited + example: + { + "billingInformationId": 1, + "customerProfileId": 1, + "issuerCountry": "NL", + "iban": "NL06RABO8902022560", + "ascription": "J. Doe", + "alias": "Mijn rekening details", + "billingAddressId": 4, + } + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /directdebitmandates: get: tags: @@ -1883,15 +1923,15 @@ paths: description: Filter on updated after. - name: sort in: query - schema: + schema: type: string - name: offset in: query - schema: - type: integer + schema: + type: integer - name: limit in: query - schema: + schema: type: integer example: 20 responses: @@ -1905,146 +1945,170 @@ paths: getDirectDebitMandateWithNextPage: value: { - "directDebitMandates": [ + "directDebitMandates": + [ + { + "directDebitMandateId": 71, + "customerProfileId": 12, + "billingInformationId": 51, + "directDebitMandateType": + { + "directDebitMandateTypeId": 1, + "name": "import", + "description": "import", + }, + "mandateAddressId": 21, + "created": "2024-03-22T08:55:00", + "mandateReference": "CORE01", + "mandateState": "SINGED", + "updateTimestamp": "2024-03-22T08:55:00", + }, + ], + "_links": { - "directDebitMandateId": 71, - "customerProfileId": 12, - "billingInformationId": 51, - "directDebitMandateType": + "self": { - "directDebitMandateTypeId": 1, - "name": "import", - "description": "import", + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates", + "method": "GET", + }, + "next": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=20", + "method": "GET", }, - "mandateAddressId": 21, - "created": "2024-03-22T08:55:00", - "mandateReference": "CORE01", - "mandateState": "SINGED", - "updateTimestamp": "2024-03-22T08:55:00", - } - ], - "_links": { - "self":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates", - "method": "GET" }, - "next":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=20", - "method": "GET" - } - } } getDirectDebitMandateWithNextPageandPreviousPage: value: { - "directDebitMandates": [ + "directDebitMandates": + [ + { + "directDebitMandateId": 71, + "customerProfileId": 12, + "billingInformationId": 51, + "directDebitMandateType": + { + "directDebitMandateTypeId": 1, + "name": "import", + "description": "import", + }, + "mandateAddressId": 21, + "created": "2024-03-22T08:55:00", + "mandateReference": "CORE01", + "mandateState": "SINGED", + "updateTimestamp": "2024-03-22T08:55:00", + }, + ], + "_links": { - "directDebitMandateId": 71, - "customerProfileId": 12, - "billingInformationId": 51, - "directDebitMandateType": + "self": { - "directDebitMandateTypeId": 1, - "name": "import", - "description": "import", + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=20", + "method": "GET", + }, + "prev": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates", + "method": "GET", + }, + "next": + { + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=40", + "method": "GET", }, - "mandateAddressId": 21, - "created": "2024-03-22T08:55:00", - "mandateReference": "CORE01", - "mandateState": "SINGED", - "updateTimestamp": "2024-03-22T08:55:00", - } - ], - "_links": { - "self":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=20", - "method": "GET" }, - "prev":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates", - "method": "GET" - }, - "next":{ - "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=40", - "method": "GET" - } - } } /billingInformation/{billingInformationId}/directdebitmandates: - post: - tags: - - Mandates - summary: Add a customer direct debit mandate - description: >- - - parameters: - - name: billingInformationId - in: path - required: true + post: + tags: + - Mandates + summary: Add a customer direct debit mandate + description: >- + + parameters: + - name: billingInformationId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: schema: - type: integer - example: 1 - requestBody: + $ref: "#/components/schemas/mandateEntity" + examples: + customerDirectDebitMandatePrepared: + value: + directDebitMandate: + directDebitMandateTypeId: 1 + mandateAddressId: 1 + mandateReference: HTM-mandate-001 + mandateState: PREPARED + required: true + responses: + 201: + description: Successfully created a customer mandate content: application/json: schema: - $ref: "#/components/schemas/mandateEntity" - examples: - customerDirectDebitMandatePrepared: - value: - directDebitMandate: - directDebitMandateTypeId: 1 - mandateAddressId: 1 - mandateReference: HTM-mandate-001 - mandateState: PREPARED - required: true - responses: - 201: - description: Successfully created a customer mandate - content: - application/json: - schema: - $ref: "#/components/schemas/postDirectDebitMandateResponse" - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited + $ref: "#/components/schemas/postDirectDebitMandateResponse" + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /directdebitmandates/{directdebitmandateId}: patch: - tags: - - Mandates - summary: Update a customer direct debit mandate - description: >- - - parameters: - - name: directdebitmandateId - in: path - required: true + tags: + - Mandates + summary: Update a customer direct debit mandate + description: >- + + parameters: + - name: directdebitmandateId + in: path + required: true + schema: + type: integer + example: 1 + requestBody: + content: + application/json: schema: - type: integer - example: 1 - requestBody: + $ref: "#/components/schemas/mandateEntity" + examples: + customerDirectDebitMandateCancelled: + value: + directDebitMandate: + mandateState: CANCELLED + required: true + responses: + 200: + description: Successfully updated a customer mandate content: application/json: - schema: - $ref: "#/components/schemas/mandateEntity" - examples: - customerDirectDebitMandatePrepared: - value: - directDebitMandate: - mandateState: CANCELLED - required: true - responses: - 200: - description: Successfully updated a customer mandate - content: - application/json: - {} - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited - + example: + { + "directDebitMandateId": 1, + "customerProfileId": 12, + "billingInformationId": 51, + "directDebitMandateType": + { + "directDebitMandateTypeId": 1, + "name": "import", + "description": "import", + }, + "mandateAddressId": 21, + "created": "2024-03-22T08:55:00", + "mandateReference": "CORE01", + "mandateState": "CANCELLED", + "updateTimestamp": "2025-03-22T08:55:00", + } + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited components: securitySchemes: default: @@ -2134,16 +2198,16 @@ components: alias: type: string getCustomerStatusInstance: - type: object - properties: - customerStatus: - $ref: "#/components/schemas/getCustomerStatus" - fromInclusive: - type: string - format: date - toInclusive: - type: string - format: date + type: object + properties: + customerStatus: + $ref: "#/components/schemas/getCustomerStatus" + fromInclusive: + type: string + format: date + toInclusive: + type: string + format: date getCustomerStatus: type: object properties: @@ -2163,12 +2227,16 @@ components: properties: birthname: type: string + description: voornaam surname: type: string + description: achternaam prefix: type: string + description: tussenvoegsel suffix: type: string + description: achtervoegsel dateOfBirth: type: string format: date @@ -2235,7 +2303,7 @@ components: type: object properties: language: - $ref: "#/components/schemas/getCustomerLanguage" + $ref: "#/components/schemas/getCustomerLanguage" getCustomerLanguage: type: object properties: @@ -2263,7 +2331,7 @@ components: type: integer debtorStatus: $ref: "#/components/schemas/getDebtorStatus" - vascustomerNumber: + vasCustomerNumber: type: integer customerPreference: $ref: "#/components/schemas/getCustomerPreference" @@ -2326,7 +2394,7 @@ components: type: integer isPreferred: type: boolean - phoneEntity: + phoneEntity: type: object properties: number: @@ -2349,17 +2417,17 @@ components: debtorStatusId: type: integer customerPreference: - $ref: '#/components/schemas/customerPreferencesEntity' + $ref: "#/components/schemas/customerPreferencesEntity" person: - $ref: '#/components/schemas/personEntity' + $ref: "#/components/schemas/personEntity" addresses: type: array items: - $ref: '#/components/schemas/addressPostEntity' + $ref: "#/components/schemas/addressPostEntity" phones: type: array items: - $ref: '#/components/schemas/postPhoneEntity' + $ref: "#/components/schemas/postPhoneEntity" postCustomerAddress: type: object properties: @@ -2403,7 +2471,7 @@ components: properties: customerNumber: type: integer - example: 10000001 + example: 10000001 customerProfileId: type: integer example: 1 @@ -2480,44 +2548,44 @@ components: customerPreferenceId: type: integer languageId: - type: integer + type: integer customerStatusEntity: type: object properties: customerStatusId: - type: integer + type: integer customersEntity: type: object properties: debtorStatusId: - type: integer + type: integer billingInformationEntity: type: object properties: - billingInformationId: + billingInformationId: type: integer issuerCountry: type: string iban: type: string - bic: + bic: type: string ascription: type: string - alias: + alias: type: string billingAddressId: type: integer mandateEntity: type: object properties: - directDebitMandateId: + directDebitMandateId: type: integer - directDebitMandateTypeId: - type: integer - mandateAddressId: - type: integer - mandateReference: + directDebitMandateTypeId: + type: integer + mandateAddressId: + type: integer + mandateReference: type: string mandateState: type: string @@ -2525,8 +2593,8 @@ components: type: object properties: ovPayTokenId: - type: integer - tokenType: + type: integer + tokenType: type: object properties: tokenTypeId: @@ -2565,7 +2633,7 @@ components: type: string format: date alias: - type: string + type: string personEntity: type: object properties: @@ -2573,17 +2641,21 @@ components: type: integer birthname: type: string + description: voornaam surname: type: string + description: achternaam prefix: type: string + description: tussenvoegsel suffix: type: string + description: achtervoegsel dateOfBirth: type: string format: date emailAddress: - type: string + type: string postOvPayTokenResponse: type: object properties: @@ -2600,4 +2672,4 @@ components: detail: type: string instance: - type: string \ No newline at end of file + type: string