openapi: 3.0.1 info: title: ABTCustomers version: '1.0' servers: - url: https://services.acc.api.htm.nl/abt/abtcustomers/1.0 security: - default: [] tags: - name: ABTCustomers - name: ABTCustomersSelfService - name: ABTCustomersFinancials - name: ABTCustomersFinancialsSelfService paths: /customers/{customerNumber}/financials/directdebitmandates/{directDebitMandateId}: patch: tags: - ABTCustomersFinancials summary: Modify direct debit mandate information for a customer profile. description: Modify direct debit mandate for a customer profile. parameters: - name: customerNumber in: path required: true style: simple explode: false schema: type: integer - name: directDebitMandateId in: path required: true style: simple explode: false schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/directDebitMandatePatch' examples: updateFullDirectDebitMandate: value: directDebitMandate: directDebitMandateTypeId: 1 billingInformationId: 1 mandateReference: Dit is een test Reference mandateState: SIGNED updateDirectDebitMandateType: value: directDebitMandate: directDebitMandateTypeId: 1 updateBillingInformationId: value: directDebitMandate: billingInformationId: 2 updateMandateReference: value: directDebitMandate: mandateReference: Updated Reference updateMandateState: value: directDebitMandate: mandateState: PREPARED required: true responses: '201': description: Successful created financial information for a customer profile. content: application/json: schema: $ref: >- #/components/schemas/patchCustomerProfileCustomerNumberResponse '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/400Response' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401Response' '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}/financials/billinginformation/{billingInformationId}: patch: tags: - ABTCustomersFinancials summary: Modify billing information for a customer profile. description: Modify billing information for a customer profile. parameters: - name: customerNumber in: path required: true style: simple explode: false schema: type: integer - name: billingInformationId in: path required: true style: simple explode: false schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/billingInformationPatch' examples: updateFullBillingInformation: value: billingInformation: iban: '1234567890' bic: ING ascription: Dit is een Test alias: Alias Test updateIban: value: billingInformation: iban: '0987654321' updateBic: value: billingInformation: bic: DEUT updateAscription: value: billingInformation: ascription: Updated Ascription updateAlias: value: billingInformation: alias: Updated Alias required: true responses: '201': description: Successful created financial information for a customer profile. content: application/json: schema: $ref: >- #/components/schemas/patchCustomerProfileCustomerNumberResponse '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/400Response' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401Response' '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}/financials/billinginformation: post: tags: - ABTCustomersFinancials summary: Create billing information for a customer profile. description: Create billing information for a customer profile. parameters: - name: customerNumber in: path required: true style: simple explode: false schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/billingInformationPost' examples: fullFinancialInformation: value: billingInformation: iban: '1234567890' bic: ING ascription: Dit is een Test alias: Alias Test minimumBillingInformation: value: billingInformation: iban: '1234567890' ascription: Dit is een Test alias: Alias Test required: true responses: '201': description: Successful created financial information for a customer profile. content: application/json: schema: $ref: >- #/components/schemas/postCustomerProfileBillingInformationResponse '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/400Response' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401Response' '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}/financials/directdebitmandates: post: tags: - ABTCustomersFinancials summary: Create direct debit mandate for a customer profile. description: Create direct debit mandate for a customer profile. parameters: - name: customerNumber in: path required: true style: simple explode: false schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/directDebitMandatePost' examples: fullFinancialInformation: value: directDebitMandate: directDebitMandateTypeId: 1 billingInformationId: 1 mandateReference: Dit is een test Reference minimumdirectDebitMandate: value: directDebitMandate: directDebitMandateTypeId: 1 billingInformationId: 1 mandateReference: Dit is een test Reference required: true responses: '201': description: Successful created financial information for a customer profile. content: application/json: schema: $ref: >- #/components/schemas/postCustomerProfileDirectDebitMandateResponse '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/400Response' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401Response' '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}/financials: get: tags: - ABTCustomersFinancials summary: Search for customer profile financial information description: 'search for a customer profile in the ABT database with query parameters ' parameters: - name: customerNumber in: path required: true style: simple explode: false schema: type: integer responses: '200': description: Successful retrieved a customer profile content: application/json: schema: $ref: '#/components/schemas/getCustomerProfileFinancials' examples: fullFinancialInformation: value: customerNumber: 1000003 billingInformation: - billingInformationId: 1 iban: '1234567890' bic: ING ascription: Dit is een Test alias: Alias Test created: "2024-06-02T15:03:460" - billingInformationId: 2 iban: '0987654321' bic: null ascription: Dit is een Test alias: Alias Test created: "2024-06-02T15:03:460" directDebitMandate: - directDebitMandateId: 1 directDebitMandateTypeName: PIN Transaction billingInformationId: 1 created: '1900-01-01T00:00:00.000' mandateReference: Dit is een test Reference mandateState: SIGNED updateTimestamp: '2024-01-01T00:00:00.000' - directDebitMandateId: 2 directDebitMandateTypeName: Paper Contract billingInformationId: 1 created: '1900-01-01T00:00:00.000' mandateReference: Dit is een test Reference mandateState: CANCELLED updateTimestamp: '2024-01-01T00:00:00.000' missingBillingInformation: value: customerNumber: 1000003 billingInformation: [] directDebitMandate: - directDebitMandateId: 1 directDebitMandateTypeName: PIN transaction billingInformationId: 1 created: '1900-01-01T00:00:00.000' mandateReference: Dit is een test Reference updateTimestamp: '1900-01-01T00:00:00.000' - directDebitMandateId: 2 directDebitMandateTypeName: Paper Contract billingInformationId: 1 created: '1900-01-01T00:00:00.000' mandateReference: Dit is een test Reference updateTimestamp: '1900-01-01T00:00:00.000' missingDebitMandateInformation: value: customerNumber: 1000003 billingInformation: - billingInformationId: 1 iban: '1234567890' bic: ING ascription: Dit is een Test alias: Alias Test created: "2024-06-02T15:03:460" - billingInformationId: 2 iban: '0987654321' bic: null ascription: Dit is een Test alias: Alias Test created: "2024-06-02T15:03:460" directDebitMandate: [] minimumFinancialInformation: value: customerNumber: 1000003 billingInformation: [] directDebitMandate: [] '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 /selfservice/customers/{customerNumber}/financials/directdebitmandates/{directDebitMandateId}: patch: tags: - ABTCustomersFinancialsSelfService summary: Modify direct debit mandate information for a customer profile. description: Modify direct debit mandate for a customer profile. parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - name: customerNumber in: path required: true style: simple explode: false schema: type: integer - name: directDebitMandateId in: path required: true style: simple explode: false schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/directDebitMandatePatch' examples: updateFullDirectDebitMandate: value: directDebitMandate: directDebitMandateTypeId: 1 billingInformationId: 1 mandateReference: Dit is een test Reference mandateState: SIGNED updateDirectDebitMandateType: value: directDebitMandate: directDebitMandateTypeId: 1 updateBillingInformationId: value: directDebitMandate: billingInformationId: 2 updateMandateReference: value: directDebitMandate: mandateReference: Updated Reference updateMandateState: value: directDebitMandate: mandateState: PREPARED required: true responses: '201': description: Successful created financial information for a customer profile. content: application/json: schema: $ref: >- #/components/schemas/patchCustomerProfileCustomerNumberResponse '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/400Response' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401Response' '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 /selfservice/customers/{customerNumber}/financials/billinginformation/{billingInformationId}: patch: tags: - ABTCustomersFinancialsSelfService summary: Modify billing information for a customer profile. description: Modify billing information for a customer profile. parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - name: customerNumber in: path required: true style: simple explode: false schema: type: integer - name: billingInformationId in: path required: true style: simple explode: false schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/billingInformationPatch' examples: updateFullBillingInformation: value: billingInformation: iban: '1234567890' bic: ING ascription: Dit is een Test alias: Alias Test updateIban: value: billingInformation: iban: '0987654321' updateBic: value: billingInformation: bic: DEUT updateAscription: value: billingInformation: ascription: Updated Ascription updateAlias: value: billingInformation: alias: Updated Alias updateBillingAddressId: value: billingInformation: billingAddressId: 3 required: true responses: '201': description: Successful created financial information for a customer profile. content: application/json: schema: $ref: >- #/components/schemas/patchCustomerProfileCustomerNumberResponse '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/400Response' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401Response' '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 /selfservice/customers/{customerNumber}/financials/billinginformation: post: tags: - ABTCustomersFinancialsSelfService summary: Create billing information for a customer profile. description: Create billing information for a customer profile. parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - name: customerNumber in: path required: true style: simple explode: false schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/billingInformationPost' examples: fullFinancialInformation: value: billingInformation: iban: '1234567890' bic: ING ascription: Dit is een Test alias: Alias Test billingAddressId: 2 minimumBillingInformation: value: billingInformation: iban: '1234567890' ascription: Dit is een Test alias: Alias Test billingAddressId: 2 required: true responses: '201': description: Successful created financial information for a customer profile. content: application/json: schema: $ref: >- #/components/schemas/postCustomerProfileBillingInformationResponse '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/400Response' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401Response' '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 /selfservice/customers/{customerNumber}/financials/directdebitmandates: post: tags: - ABTCustomersFinancialsSelfService summary: Create direct debit mandate for a customer profile. description: Create direct debit mandate for a customer profile. parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - name: customerNumber in: path required: true style: simple explode: false schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/directDebitMandatePost' examples: fullFinancialInformation: value: directDebitMandate: directDebitMandateTypeId: 1 billingInformationId: 1 mandateReference: Dit is een test Reference minimumdirectDebitMandate: value: directDebitMandate: directDebitMandateTypeId: 1 billingInformationId: 1 mandateReference: Dit is een test Reference required: true responses: '201': description: Successful created financial information for a customer profile. content: application/json: schema: $ref: >- #/components/schemas/postCustomerProfileDirectDebitMandateResponse '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/400Response' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401Response' '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 /selfservice/customers/{customerNumber}/financials: get: tags: - ABTCustomersFinancialsSelfService summary: Search for customer profile financial information description: 'search for a customer profile in the ABT database with query parameters ' parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - name: customerNumber in: path required: true style: simple explode: false schema: type: integer responses: '200': description: Successful retrieved a customer profile content: application/json: schema: $ref: '#/components/schemas/getCustomerProfileFinancials' examples: fullFinancialInformation: value: customerNumber: 1000003 billingInformation: - billingInformationId: 1 iban: '1234567890' bic: ING ascription: Dit is een Test alias: Alias Test billingAddressId: 2 created: '2024-01-01T00:00:00.000' - billingInformationId: 2 iban: '0987654321' bic: null ascription: Dit is een Test alias: Alias Test billingAddressId: 3 created: '2024-01-01T00:00:00.000' directDebitMandate: - directDebitMandateId: 1 directDebitMandateTypeName: PIN transaction billingInformationId: 1 created: '1900-01-01T00:00:00.000' mandateReference: Dit is een test Reference mandateState: SIGNED updateTimestamp: '2024-01-01T00:00:00.000' - directDebitMandateId: 2 directDebitMandateTypeName: Paper Contract billingInformationId: 1 created: '1900-01-01T00:00:00.000' mandateReference: Dit is een test Reference mandateState: CANCELLED updateTimestamp: '2024-01-01T00:00:00.000' missingBillingInformation: value: customerNumber: 1000003 billingInformation: [] directDebitMandate: - directDebitMandateId: 1 directDebitMandateTypeName: PIN transaction billingInformationId: 1 created: '1900-01-01T00:00:00.000' mandateReference: Dit is een test Reference updateTimestamp: '1900-01-01T00:00:00.000' - directDebitMandateId: 2 directDebitMandateTypeName: Paper Contract billingInformationId: 1 created: '1900-01-01T00:00:00.000' mandateReference: Dit is een test Reference updateTimestamp: '1900-01-01T00:00:00.000' missingDebitMandateInformation: value: customerNumber: 1000003 billingInformation: - billingInformationId: 1 iban: '1234567890' bic: ING ascription: Dit is een Test alias: Alias Test created: "2024-06-02T15:03:460" - billingInformationId: 2 iban: '0987654321' bic: null ascription: Dit is een Test alias: Alias Test created: "2024-06-02T15:03:460" directDebitMandate: [] minimumFinancialInformation: value: customerNumber: 1000003 billingInformation: [] directDebitMandate: [] '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/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 addressType: Billing - addressId: 2 street: mystreet 33 houseNumber: 1 houseNumberSuffix: null postalCode: 4455CA city: Den BOSCH country: NL addressType: Shipping 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 addressType: Billing - addressId: 2 street: mystreet 33 houseNumber: 1 houseNumberSuffix: null postalCode: 4455CA city: Den BOSCH country: NL addressType: Shipping 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 addressType: Billing - addressId: 2 street: mystreet 33 houseNumber: 1 houseNumberSuffix: null postalCode: 4455CA city: Den BOSCH country: NL addressType: Shipping 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 addressTypeId: 1 - street: Beeklaan houseNumber: 30 houseNumberSuffix: B postalCode: 2500AA city: Den Haag country: NL 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 addressTypeId: 1 addMinimumAddress: value: address: street: Laan van Meerdervoort houseNumber: 5 postalCode: 2500AA city: Den Haag country: NL 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 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: 1 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 /selfservice/customers: get: tags: - ABTCustomersSelfService summary: Search for customer profile description: Search for a customer profile based on the sub element from JWT parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string responses: '200': description: Successful retrieved a customer profile content: application/json: schema: $ref: '#/components/schemas/getCustomerProfile' examples: fullCustomerProfile: value: 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 addressType: Billing - addressId: 2 street: mystreet 33 houseNumber: 1 houseNumberSuffix: null postalCode: 4455CA city: Den BOSCH country: NL addressType: Shipping 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: - ABTCustomersSelfService summary: Create for customer profile description: Create a customer profile based on the sub element from JWT parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/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 addressTypeId: 1 - street: Beeklaan houseNumber: 30 houseNumberSuffix: B postalCode: 2500AA city: Den Haag country: NL 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' '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 /selfservice/customers/{customerNumber}: patch: tags: - ABTCustomersSelfService summary: Modify customer profile elements description: Modify customer profile fields parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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\ security: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited /selfservice/customers/{customerNumber}/customerpreferences: patch: tags: - ABTCustomersSelfService summary: Modify customer preference elements description: Modify customer preference fields parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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\ '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 /selfservice/customers/{customerNumber}/ovchipcards: post: tags: - ABTCustomersSelfService summary: Create a new OV chipcard for a customerProfile. description: Create a new OV chipcard in the database for a given customer. parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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 /selfservice/customers/{customerNumber}/ovchipcards/{ovChipCardId}: delete: tags: - ABTCustomersSelfService 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 /selfservice/customers/{customerNumber}/ovpaytokens: post: tags: - ABTCustomersSelfService summary: Create a new OV paytoken for a customerProfile. description: Create a new OV paytoken in the database for a given customer. parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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 OV paytoken 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 /selfservice/customers/{customerNumber}/statuses: post: tags: - ABTCustomersSelfService 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: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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/postCustomerProfileCustomerNumberResponse' '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 /selfservice/customers/{customerNumber}/persons: patch: tags: - ABTCustomersSelfService summary: Partial update customer person details description: Partial update a customer person details in the ABT database parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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 /selfservice/customers/{customerNumber}/ovpaytokens/{ovPayTokenId}: delete: tags: - ABTCustomersSelfService summary: Delete a OV PayToken for a customerProfile. description: Delete a OV PayToken in the database for a given customer. parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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: - ABTCustomersSelfService summary: Partial update customer ovpaytokens description: Partial update of a customer ovpaytokens in the ABT database parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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 /selfservice/customers/{customerNumber}/addresses: post: tags: - ABTCustomersSelfService summary: Create a single customer address description: Create a single customer address in the ABT database parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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 addressTypeId: 1 addMinimumAddress: value: address: street: Laan van Meerdervoort houseNumber: 5 postalCode: 2500AA city: Den Haag country: NL 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 /selfservice/customers/{customerNumber}/phones: post: tags: - ABTCustomersSelfService summary: Create a single customer phonenumber description: Create a single customer phonenumber in the ABT database parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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 /selfservice/customers/{customerNumber}/addresses/{addressId}: delete: tags: - ABTCustomersSelfService summary: Delete a customer address description: Delete a customer address from the ABT database parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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: - ABTCustomersSelfService 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 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: 1 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 /selfservice/customers/{customerNumber}/phones/{phoneId}: delete: tags: - ABTCustomersSelfService summary: Delete a customer phone description: Delete a customer phone from the ABT database parameters: - name: X-HTM-JWT-AUTH-HEADER in: header required: true style: simple explode: false schema: type: string - 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: - ABTCustomersSelfService 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 components: schemas: 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 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 - mandateReference type: object properties: directDebitMandateTypeName: type: string billingInformationId: type: integer mandateReference: type: string directDebitMandatePost: type: object properties: directDebitMandate: $ref: '#/components/schemas/directDebitMandatePostEntity' directDebitMandatePatchEntity: type: object properties: directDebitMandateTypeName: type: string billingInformationId: 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 created: type: string mandateReference: type: string mandateState: type: string updateTimestamp: type: string billingInformationGETEntity: required: - alias - ascription - bic - billingInformationId - iban - created type: object properties: billingInformationId: type: integer iban: type: string bic: type: string ascription: type: string alias: type: string created: type: string billingInformationPostEntity: required: - alias - ascription - billingAddressId - iban type: object properties: iban: type: string bic: type: string ascription: type: string alias: type: string created: type: string billingInformationPost: type: object properties: billingInformation: $ref: '#/components/schemas/billingInformationPostEntity' billingInformationPatchEntity: type: object properties: iban: type: string bic: type: string ascription: type: string alias: type: string 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 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 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 securitySchemes: default: type: oauth2 flows: implicit: authorizationUrl: https://services.acc.api.htm.nl/authorize scopes: {}