diff --git a/src/openapi/contracts/contracts-crud.yaml b/src/openapi/contracts/contracts-crud.yaml index 09e1de6..0c3e90e 100644 --- a/src/openapi/contracts/contracts-crud.yaml +++ b/src/openapi/contracts/contracts-crud.yaml @@ -27,7 +27,7 @@ paths: type: integer example: 1 required: false - description: Filter on possible contract status. 1 = new, 2 = active, 3 = suspended, 4 = cancelled, 5 = terminated. + description: Filter on possible contract status. 1 = new, 2 = active, 3 = suspended, 4 = cancelled, 5 = terminated, 6 = pending cancellation, 7 = pending termination. responses: "200": description: OK @@ -53,7 +53,6 @@ paths: "termDuration": "P0Y1M0D", "billingDay": 15, "highestInvoiceTerm": 1, - "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355", "created": "2024-08-01 15:01:00.000", }, { @@ -70,7 +69,6 @@ paths: "termDuration": "P0Y1M0D", "billingDay": 15, "highestInvoiceTerm": 1, - "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355", "created": "2024-08-01 15:01:00.000", }, ], @@ -98,7 +96,6 @@ paths: "termDuration": "P0Y1M0D", "billingDay": 15, "highestInvoiceTerm": 0, - "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355", "contractVersions": [ { @@ -152,7 +149,7 @@ paths: type: integer explode: false required: false - description: Filter on possible contract status. 1 = new, 2 = active, 3 = suspended, 4 = cancelled, 5 = terminated. + description: Filter on possible contract status. 1 = new, 2 = active, 3 = suspended, 4 = cancelled, 5 = terminated, 6 = pending cancellation, 7 = pending termination. - in: query name: billingDay schema: @@ -206,7 +203,6 @@ paths: "termDuration": "P0Y1M0D", "billingDay": 15, "highestInvoiceTerm": 1, - "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355", "contractInvoices": [ { @@ -265,7 +261,6 @@ paths: "termDuration": "P0Y1M0D", "billingDay": 15, "highestInvoiceTerm": 1, - "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355", "contractInvoices": [ { @@ -351,7 +346,6 @@ paths: "termDuration": "P0Y1M0D", "billingDay": 15, "highestInvoiceTerm": 1, - "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355", "contractVersions": [ { @@ -429,7 +423,6 @@ paths: "productName": "HTM 20% korting 2024", "billingDay": 15, "highestInvoiceTerm": 2, - "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355", }, } responses: @@ -878,6 +871,8 @@ paths: { "contractStatusId": 3, "name": "suspended" }, { "contractStatusId": 4, "name": "cancelled" }, { "contractStatusId": 5, "name": "terminated" }, + { "contractStatusId": 6, "name": "pending cancellation" }, + { "contractStatusId": 7, "name": "pending termination" }, ], } /actiontypes: @@ -892,7 +887,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ContractStatus" + $ref: "#/components/schemas/ActionType" example: { "actionTypes": @@ -957,10 +952,6 @@ components: highestInvoiceTerm: type: integer example: 1 - xSpit: - type: string - format: uuid - example: 1c345237-4d84-47f0-93c2-7b94338e3355 contractVersions: type: array items: @@ -1077,7 +1068,7 @@ components: example: 2 name: type: string - enum: [new, active, suspended, cancelled, terminated] + enum: [new, active, suspended, cancelled, terminated, pending cancellation, pending termination] example: active ActionType: type: object diff --git a/src/openapi/contracts/contracts-se.yaml b/src/openapi/contracts/contracts-se.yaml index 98ac462..934903f 100644 --- a/src/openapi/contracts/contracts-se.yaml +++ b/src/openapi/contracts/contracts-se.yaml @@ -43,7 +43,6 @@ paths: "termDuration": "P0Y1M0D", "billingDay": 15, "highestInvoiceTerm": 1, - "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355", "created": "2024-08-01 15:01:00.000", }, { @@ -59,7 +58,6 @@ paths: "termDuration": "P0Y1M0D", "billingDay": 15, "highestInvoiceTerm": 1, - "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355", "created": "2024-08-01 15:01:00.000", }, ] @@ -128,7 +126,6 @@ paths: "termDuration": "P0Y1M0D", "billingDay": 15, "highestInvoiceTerm": 1, - "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355", "contractVersions": [ { diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml new file mode 100644 index 0000000..72ef1eb --- /dev/null +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -0,0 +1,285 @@ +openapi: "3.0.3" +info: + title: ABT Customers CRUD APIs v2 + version: "1.0" + description: CRUD APIs for ABT Customer database. These are NOT the functional APIs from Service Engine. +servers: + - url: https://api.integratielaag.nl/v1 +paths: + /ovpaytokens: + get: + tags: + - Token + summary: Find OVpay tokens. + description: Find OVpay tokens. + parameters: + - in: query + name: ovPayTokenId + schema: + type: integer + example: 71 + required: false + description: The id of the token. + - in: query + name: customerProfileId + schema: + type: integer + example: 12 + required: false + description: The id of the customer profile. + - in: query + name: tokenTypeId + schema: + type: array + items: + type: integer + example: [1, 2] + explode: false + required: false + description: Filter on possible token types. 1 = EMV, 2 = OV-pas physical, 3 = OV-pas digital. + - in: query + name: xTat + schema: + type: string + format: uuid + example: 700b0516-bf8b-4e6e-bf16-13bfeb078e23 + explode: false + required: false + description: The XTAT of the token. + - in: query + name: xBot + schema: + type: string + format: uuid + example: de1a9a7a-a777-4473-889c-44a3bb07daae + explode: false + required: false + description: The XBOT of the token. + - in: query + name: alias + schema: + type: string + example: Mijn OV-pas + required: false + description: The alias of the token. + - in: query + name: lastDigits + schema: + type: integer + example: 3301 + required: false + description: The last digits of the token. + - in: query + name: ovpasNumber + schema: + type: string + example: 63AW974 + required: false + description: Number of the OVpas. + - in: query + name: tokenStatusId + schema: + type: array + items: + type: integer + example: [1, 2] + explode: false + required: false + description: Filter on possible token statuses. 1 = expired, 2 = active, 3 = replaced, 4 = inactive, 5 = suspended, 6 = removed by customer. + - in: query + name: expirationDate + schema: + type: string + format: date-time + example: 2029-03-22T09:00:00 + required: false + description: The expiration date of the token. + - in: query + name: replacedByTokenId + schema: + type: integer + example: 12 + required: false + description: The id of the token that replaced this token. + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + example: + { + "ovPayTokens": + [ + { + "ovPayTokenId": 71, + "customerProfileId": 12, + "tokenType": + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "xTat": "700b0516-bf8b-4e6e-bf16-13bfeb078e23", + "xBot": "de1a9a7a-a777-4473-889c-44a3bb07daae", + "alias": "Mijn OV-pas", + "lastDigits": 3301, + "ovpasNumber": "63AW974", + "tokenStatus": { "tokenStatusId": 2, "name": "Active" }, + "expirationDate": "2029-03-22T09:00:00", + "replacedByTokenId": 12, + }, + ], + "href": null, + } + /directdebitmandates: + get: + tags: + - Mandates + summary: Find direct debit mandates. + description: Find direct debit mandates. + parameters: + - in: query + name: directDebitMandateId + schema: + type: integer + example: 71 + required: false + description: The id of the direct debit mandate. + - in: query + name: customerProfileId + schema: + type: integer + example: 12 + required: false + description: The id of the customer related to the mandate. + - in: query + name: billingInformationId + schema: + type: integer + example: 51 + required: false + description: The id of the billing information related to the mandate. + - in: query + name: directDebitMandateTypeId + schema: + type: array + items: + type: integer + example: [1, 2] + explode: false + required: false + description: The id of the direct debit mandate type. 1 = Paper contract, 2 = PIN transaction, 3 = SEPA eMandate, 4 = Digital signature, 5 = iDEAL transaction. + - in: query + name: mandateAddressId + schema: + type: integer + example: 21 + required: false + description: The id of the address related to the mandate. + - in: query + name: createdBefore + schema: + type: string + format: date-time + example: 2020-12-31T23:59:59 + required: false + description: Filter on created before. + - in: query + name: createdAfter + schema: + type: string + format: date-time + example: 2020-01-01T00:00:00 + required: false + description: Filter on created after. + - in: query + name: mandateReference + schema: + type: string + example: CORE01 + required: false + description: Filter on mandate reference. + - in: query + name: mandateState + schema: + type: array + items: + type: string + example: [SIGNED, PREPARED] + explode: false + required: false + description: Filter on possible states of the mandate. SIGNED = signed, PREPARED = prepared, CANCELLED = cancelled. + - in: query + name: updatedBefore + schema: + type: string + format: date-time + example: 2020-12-31T23:59:59 + required: false + description: Filter on updated before. + - in: query + name: updatedAfter + schema: + type: string + format: date-time + example: 2020-01-01T00:00:00 + required: false + description: Filter on updated after. + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + example: + [ + { + "directDebitMandateId": 71, + "customerProfileId": 12, + "billingInformationId": 51, + "directDebitMandateType": { + "directDebitMandateTypeId": 1, + "name": "import", + "description": "import" + }, + "mandateAddressId": 21, + "created": "2024-03-22T08:55:00", + "mandateReference": "CORE01", + "mandateState": "SINGED", + "updateTimestamp": "2024-03-22T08:55:00" + }, + ] +components: + securitySchemes: + bearerToken: + type: http + scheme: bearer + bearerFormat: JWT + schemas: + unavailable: + type: object + rfc9457: + type: object + properties: + type: + type: string + format: url + example: https://example.com/probs/out-of-credit + title: + type: string + example: You do not have enough credit. + detail: + type: string + example: Your current balance is 30, but that costs 50. + instance: + type: string + example: /account/12345/msgs/abc + balance: + type: string + example: 30 + accounts: + type: array + items: + type: string + example: + - /account/12345 + - /account/67890 diff --git a/src/openapi/customers/customers.yaml b/src/openapi/customers/customers.yaml new file mode 100644 index 0000000..65a9763 --- /dev/null +++ b/src/openapi/customers/customers.yaml @@ -0,0 +1,5376 @@ +openapi: 3.0.1 +info: + title: ABTCustomers + version: '1.0' +servers: + - url: https://services.acc.api.htm.nl/abt/abtcustomers/1.0 + - url: http://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 + mandateAddressId: 2 + mandateReference: Dit is een test Reference + mandateState: SIGNED + updateDirectDebitMandateType: + value: + directDebitMandate: + directDebitMandateTypeId: 1 + updateBillingInformationId: + value: + directDebitMandate: + billingInformationId: 2 + updateMandateAddressId: + value: + directDebitMandate: + mandateAddressId: 3 + 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: + issuerCountry: NL + iban: '1234567890' + bic: ING + swift: Swift + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 2 + updateIssuerCountry: + value: + billingInformation: + issuerCountry: DE + updateIban: + value: + billingInformation: + iban: '0987654321' + updateBic: + value: + billingInformation: + bic: DEUT + updateSwift: + value: + billingInformation: + swift: UpdatedSwift + 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 + /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: + issuerCountry: NL + iban: '1234567890' + bic: ING + swift: Swift + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 2 + minimumBillingInformation: + value: + billingInformation: + issuerCountry: NL + 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 + /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 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + mandateReference: Dit is een test Reference + minimumdirectDebitMandate: + value: + directDebitMandate: + directDebitMandateTypeId: 1 + billingInformationId: 1 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + 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 + issuerCountry: NL + iban: '1234567890' + bic: ING + swift: Swift + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 2 + - billingInformationId: 2 + issuerCountry: BE + iban: '0987654321' + bic: null + swift: null + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 3 + directDebitMandate: + - directDebitMandateId: 1 + directDebitMandateTypeName: PIN Transaction + billingInformationId: 1 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + mandateReference: Dit is een test Reference + mandateState: SIGNED + updateTimestamp: '2024-01-01T00:00:00.00' + - directDebitMandateId: 2 + directDebitMandateTypeName: Paper Contract + billingInformationId: 1 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + mandateReference: Dit is een test Reference + mandateState: CANCELLED + updateTimestamp: '2024-01-01T00:00:00.00' + missingBillingInformation: + value: + customerNumber: 1000003 + billingInformation: [] + directDebitMandate: + - directDebitMandateId: 1 + directDebitMandateTypeName: PIN transaction + billingInformationId: 1 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + mandateReference: Dit is een test Reference + - directDebitMandateId: 2 + directDebitMandateTypeName: Paper Contract + billingInformationId: 1 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + mandateReference: Dit is een test Reference + missingDebitMandateInformation: + value: + customerNumber: 1000003 + billingInformation: + - billingInformationId: 1 + issuerCountry: NL + iban: '1234567890' + bic: ING + swift: Swift + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 2 + - billingInformationId: 2 + issuerCountry: BE + iban: '0987654321' + bic: null + swift: null + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 3 + 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 + mandateAddressId: 2 + mandateReference: Dit is een test Reference + mandateState: SIGNED + updateDirectDebitMandateType: + value: + directDebitMandate: + directDebitMandateTypeId: 1 + updateBillingInformationId: + value: + directDebitMandate: + billingInformationId: 2 + updateMandateAddressId: + value: + directDebitMandate: + mandateAddressId: 3 + 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: + issuerCountry: NL + iban: '1234567890' + bic: ING + swift: Swift + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 2 + updateIssuerCountry: + value: + billingInformation: + issuerCountry: DE + updateIban: + value: + billingInformation: + iban: '0987654321' + updateBic: + value: + billingInformation: + bic: DEUT + updateSwift: + value: + billingInformation: + swift: UpdatedSwift + 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: + issuerCountry: NL + iban: '1234567890' + bic: ING + swift: Swift + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 2 + minimumBillingInformation: + value: + billingInformation: + issuerCountry: NL + 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 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + mandateReference: Dit is een test Reference + minimumdirectDebitMandate: + value: + directDebitMandate: + directDebitMandateTypeId: 1 + billingInformationId: 1 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + 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 + issuerCountry: NL + iban: '1234567890' + bic: ING + swift: Swift + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 2 + updateTimestamp: '2024-01-01T00:00:00.00' + - billingInformationId: 2 + issuerCountry: BE + iban: '0987654321' + bic: null + swift: null + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 3 + updateTimestamp: '2024-01-01T00:00:00.00' + directDebitMandate: + - directDebitMandateId: 1 + directDebitMandateTypeName: PIN transaction + billingInformationId: 1 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + mandateReference: Dit is een test Reference + mandateState: SIGNED + - directDebitMandateId: 2 + directDebitMandateTypeName: Paper Contract + billingInformationId: 1 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + mandateReference: Dit is een test Reference + mandateState: CANCELLED + missingBillingInformation: + value: + customerNumber: 1000003 + billingInformation: [] + directDebitMandate: + - directDebitMandateId: 1 + directDebitMandateTypeName: PIN transaction + billingInformationId: 1 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + mandateReference: Dit is een test Reference + - directDebitMandateId: 2 + directDebitMandateTypeName: Paper Contract + billingInformationId: 1 + mandateAddressId: 2 + created: '1900-01-01T00:00:00.000' + mandateReference: Dit is een test Reference + missingDebitMandateInformation: + value: + customerNumber: 1000003 + billingInformation: + - billingInformationId: 1 + issuerCountry: NL + iban: '1234567890' + bic: ING + swift: Swift + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 2 + - billingInformationId: 2 + issuerCountry: BE + iban: '0987654321' + bic: null + swift: null + ascription: Dit is een Test + alias: Alias Test + billingAddressId: 3 + 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 + isPreferred: true + addressType: Office + - addressId: 2 + street: mystreet 33 + houseNumber: 1 + houseNumberSuffix: null + postalCode: 4455CA + city: Den BOSCH + country: NL + isPreferred: true + addressType: Office + phone: + - phoneId: 1 + number: '3112345678' + countryCode: NL + phoneType: TestNaam + isPreferred: true + - phoneId: 2 + number: '333225588' + countryCode: ES + phoneType: TestNaam + isPreferred: false + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + - customerNumber: 1000002 + debtorNumber: TEST001 + debtorStateId: 1 + vascustomerNumber: CST005 + customerPreference: + languageId: 1 + customerStatus: + - name: active + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: '2022-08-05 15:01:00.000' + - name: blocked + fromInclusive: '2022-08-05 15:01:00.000' + toInclusive: null + person: + birthname: Pieter + surname: De valen + prefix: dhr + suffix: De + dateOfBirth: '2002-10-29' + emailAddress: TEST@HTM.NL + address: + - addressId: 1 + street: mystreet + houseNumber: 1 + houseNumberSuffix: null + postalCode: 0000AA + city: Den Haag + country: NL + isPreferred: true + addressType: Office + - addressId: 2 + street: mystreet 33 + houseNumber: 1 + houseNumberSuffix: null + postalCode: 4455CA + city: Den BOSCH + country: NL + isPreferred: true + addressType: Office + phone: + - phoneId: 1 + number: '3112345678' + countryCode: NL + phoneType: TestNaam + isPreferred: true + - phoneId: 2 + number: '333225588' + countryCode: ES + phoneType: TestNaam + isPreferred: false + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + href: null + minimumCustomerProfile: + value: + Entries: + - customerNumber: 1000008 + debtorNumber: null + debtorStateId: null + vascustomerNumber: null + customerPreference: + languageId: null + customerStatus: + - name: active + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: null + person: + birthname: null + surname: null + prefix: null + suffix: null + dateOfBirth: null + emailAddress: TEST@TEST1.NL + address: [] + phone: [] + ovChipCard: [] + ovPayToken: [] + audit: [] + missingPersonDetailsCustomerProfile: + value: + Entries: + - emailAddress: TEST04@HTM.NL + customerNumber: 1000005 + debtorNumber: TEST004 + debtorStateId: 1 + vascustomerNumber: CST005 + customerPreference: + languageId: 1 + customerStatus: + - name: inactive + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: null + person: + birthname: Sophie + surname: Haardenburg + prefix: Mw + suffix: null + dateOfBirth: 1955-09-05+01:00 + emailAddress: TEST@TEST1.NL + address: [] + phone: [] + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers: + get: + tags: + - ABTCustomers + summary: Search for customer profile + description: 'search for a customer profile in the ABT database with query parameters ' + parameters: + - name: customerProfileId + in: query + required: false + style: form + explode: true + schema: + type: number + - name: customerNumber + in: query + required: false + style: form + explode: true + schema: + type: number + - name: emailAddress + in: query + required: false + style: form + explode: true + schema: + type: string + - name: chipCardNumber + in: query + required: false + style: form + explode: true + schema: + type: string + - name: ovPasNumber + in: query + required: false + style: form + explode: true + schema: + type: string + - name: phoneNumber + in: query + required: false + style: form + explode: true + schema: + type: string + - name: phoneCountryCode + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressStreet + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressHouseNumber + in: query + required: false + style: form + explode: true + schema: + type: number + - name: addressHouseNumberSuffix + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressPostalCode + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressCity + in: query + required: false + style: form + explode: true + schema: + type: string + - name: addressCountry + in: query + required: false + style: form + explode: true + schema: + type: string + - name: birthname + in: query + required: false + style: form + explode: true + schema: + type: string + - name: surname + in: query + required: false + style: form + explode: true + schema: + type: string + - name: dateOfBirth + in: query + required: false + style: form + explode: true + schema: + type: string + - name: customerStatus + in: query + required: false + style: form + explode: true + schema: + type: string + responses: + '200': + description: Successful retrieved a customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/getCustomerProfile' + examples: + fullCustomerProfile: + value: + customerProfileId: 1 + customerNumber: 1000001 + debtorNumber: TEST001 + vascustomerNumber: CST005 + debtorStateId: 1 + customerPreference: + languageId: 1 + customerStatus: + - name: active + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: '2022-08-05 15:01:00.000' + - name: blocked + fromInclusive: '2022-08-05 15:01:00.000' + toInclusive: null + person: + birthname: Pieter + surname: De valen + prefix: dhr + suffix: De + dateOfBirth: '2002-10-29' + emailAddress: TEST@HTM.NL + address: + - addressId: 1 + street: mystreet + houseNumber: 1 + houseNumberSuffix: null + postalCode: 0000AA + city: Den Haag + country: NL + isPreferred: true + addressType: Office + - addressId: 2 + street: mystreet 33 + houseNumber: 1 + houseNumberSuffix: null + postalCode: 4455CA + city: Den BOSCH + country: NL + isPreferred: true + addressType: Office + phone: + - phoneId: 1 + number: '3112345678' + countryCode: NL + phoneType: TestNaam + isPreferred: true + - phoneId: 2 + number: '333225588' + countryCode: ES + phoneType: TestNaam + isPreferred: false + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + minimumCustomerProfile: + value: + customerNumber: 1000008 + debtorNumber: null + debtorStateId: null + vascustomerNumber: null + customerPreference: + languageId: 1 + customerStatus: + - name: active + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: null + person: + birthname: null + surname: null + prefix: null + suffix: null + dateOfBirth: null + emailAddress: TEST@TEST1.NL + address: [] + phone: [] + ovChipCard: [] + ovPayToken: [] + audit: [] + missingPersonDetailsCustomerProfile: + value: + emailAddress: TEST04@HTM.NL + customerNumber: 1000005 + debtorNumber: TEST004 + debtorStateId: 1 + vascustomerNumber: CST008 + customerPreference: + languageId: 1 + customerStatus: + - name: inactive + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: null + person: + birthname: Sophie + surname: Haardenburg + prefix: Mw + suffix: null + dateOfBirth: '1955-09-05' + emailAddress: TEST@TEST1.NL + address: [] + phone: [] + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + post: + tags: + - ABTCustomers + summary: Create a customer profile + description: >- + Create a customer profile in the ABT database with status ACTIVE and + debtorStatus Inactive with a start date based on the timestamp of this + post call. + + - Requested format for postal code: + - 0000AA + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfile' + examples: + minimumProfile: + value: {} + basicCustomerProfile: + value: + debtorStatusId: 2 + person: + birthname: Jan + surname: Jansen + emailAddress: j.jansen@hatseflats.nl + fullCustomerProfile: + value: + customerPreference: + languageId: 1 + debtorStatusId: 2 + person: + birthname: Jan + surname: Jansen + prefix: dhr + suffix: jr + dateOfBirth: '1970-01-01' + emailAddress: j.jansen@hatseflats.nl + addresses: + - street: Laan van Meerdervoort + houseNumber: 5 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: true + addressTypeId: 1 + - street: Beeklaan + houseNumber: 30 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: false + addressTypeId: 2 + phones: + - number: '6123456789' + countryCode: '0031' + phoneTypeId: 1 + isPreferred: true + - number: '7012345678' + countryCode: '0031' + phoneTypeId: 2 + isPreferred: false + required: true + responses: + '201': + description: Successful created a customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfileCustomerNumberResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidPostalCodeFormatForAddressCountryNLError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter for country validation (NL). + description: >- + ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match + input string \"2500 AA\ + MissingRequiredParameterError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + object has missing required properties + ([\"addressTypeId\"]) + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"id\ + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/409Response' + examples: + emailAddressAlreadyPresent: + value: + code: '409' + type: Conflict + message: emailAddress already exists. + description: '' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/customerpreferences: + patch: + tags: + - ABTCustomers + summary: Modify customer preference elements + description: Modify customer preference fields + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchCustomerPreferences' + examples: + PatchCustomerPreferences: + value: + customerPreference: + languageId: 2 + responses: + '202': + description: Successful modified the customer preferences + content: + application/json: + schema: + $ref: '#/components/schemas/patchCustomerPreferencesResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"languageId\ + InvalidReferenceIdError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request: Update Or Delete failed as conflicted with + foreign Key constraint 'languageId' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}: + patch: + tags: + - ABTCustomers + summary: Modify customer profile elements + description: Modify customer profile fields + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchCustomerProfile' + examples: + PatchCustomerProfile: + value: + debtorStatusId: 2 + responses: + '202': + description: Successful modified the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/patchCustomerProfileResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"debtorStatusId\ + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/ovchipcards: + post: + tags: + - ABTCustomers + summary: Create a new OV chipcard for a customerProfile. + description: Create a new OV chipcard in the database for a given customer. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postOvChipCard' + examples: + postNewOvChipCard: + value: + ovChipCard: + chipCardNumber: 1234123412341234 + validUntil: '2024-01-01' + alias: alias + responses: + '201': + description: Successful created an OV chipcard + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfileOvChipCardResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + chipCardNumberInvalidTooSmall: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + numeric instance is lower than the required minimum + (minimum: 1000000000000000, found: 999999999999999) + chipCardNumberInvalidTooLarge: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + numeric instance is greater than the required maximum + (maximum: 9999999999999999, found: 10000000000000000) + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/ovchipcards/{ovChipCardId}: + delete: + tags: + - ABTCustomers + summary: Delete a OV chipcard for a customerProfile. + description: Delete a OV chipcard in the database for a given customer. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: ovChipCardId + in: path + required: true + style: simple + explode: false + schema: + type: integer + responses: + '202': + description: Deleted record successfully + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/ovpaytokens: + get: + tags: + - ABTCustomers + summary: Get a OV paytoken for a customerProfile. + description: Get a new OV paytoken in the database for a given customer. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: ovPayTokenId + in: query + required: false + style: form + explode: false + schema: + type: integer + - name: xbot + in: query + required: false + style: form + explode: false + schema: + type: string + - name: xtat + in: query + required: false + style: form + explode: false + schema: + type: string + - name: ovPasNumber + in: query + required: false + style: form + explode: false + schema: + type: string + responses: + '200': + description: Successfully retrieved an OVPay token + content: + application/json: + schema: + $ref: '#/components/schemas/getCustomerProfileOvPayTokenResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + post: + tags: + - ABTCustomers + summary: Create a new OV paytoken for a customerProfile. + description: Create a new OV paytoken in the database for a given customer. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postOvPayToken' + examples: + postNewOvPayTokenCard: + value: + ovPayToken: + tokenTypeId: 2 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 2 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + responses: + '201': + description: Successful created an OVPay token + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfileOvPayTokenResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/statuses: + post: + tags: + - ABTCustomers + summary: Create a new customer status for a customerProfile. + description: >- + Create a new customer status for a customerProfile. The call will do the + following in the given order: a new status will be created with + fromInclusive equal to the time of the call. ToInclusive in the old, now + historic, status will also be set equal to the time of the call, deeming + it 'not currently active'. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerStatus' + examples: + postNewStatus: + value: + customerStatus: + name: blocked + responses: + '201': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/defaultCustomerProfileResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '422': + description: Unprocessable entity + content: + application/json: + schema: + $ref: '#/components/schemas/422Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/persons: + patch: + tags: + - ABTCustomers + summary: Partial update customer person details + description: Partial update a customer person details in the ABT database + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchPerson' + examples: + updatePerson: + value: + person: + birthname: Jan + surname: Jansen + prefix: dhr + suffix: jr + dateOfBirth: '1970-01-01' + emailAddress: TEST@TEST1.NL + updatePersonBirthname: + value: + person: + birthname: Jan + updatePersonSurname: + value: + person: + surname: Jansen + updatePersonPrefix: + value: + person: + prefix: dhr + updatePersonSuffix: + value: + person: + suffix: jr + updatePersonDateOfBirth: + value: + person: + dateOfBirth: '1970-01-01' + updatePersonEmailAddress: + value: + person: + emailAddress: TEST@TEST1.NL + responses: + '202': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/defaultCustomerProfileResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/ovpaytokens/{ovPayTokenId}: + delete: + tags: + - ABTCustomers + summary: Delete a OV PayToken for a customerProfile. + description: Delete a OV PayToken in the database for a given customer. + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: ovPayTokenId + in: path + required: true + style: simple + explode: false + schema: + type: integer + responses: + '202': + description: Deleted record successfully + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + patch: + tags: + - ABTCustomers + summary: Partial update customer ovpaytokens + description: Partial update of a customer ovpaytokens in the ABT database + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: ovPayTokenId + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchOvPayToken' + examples: + updateOvPayTokens: + value: + ovPayToken: + tokenTypeId: 2 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 2 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + updateOvPayTokenTypeId: + value: + ovPayToken: + tokenTypeId: 2 + updateOvPayTokenXTat: + value: + ovPayToken: + xTat: twioq73033 + updateOvPayTokenXBot: + value: + ovPayToken: + xBot: hjihwqui27 + updateOvPayTokenAlias: + value: + ovPayToken: + alias: alias + updateOvPayTokenLastDigits: + value: + ovPayToken: + lastDigits: '5678' + updateOvPayTokenOvpasNumber: + value: + ovPayToken: + ovpasNumber: OV34567 + updateOvPayTokenStatusId: + value: + ovPayToken: + tokenStatusId: 1 + updateOvPayTokenExpirationDate: + value: + ovPayToken: + expirationDate: '2025-04-20T17:05:52.000+02:00' + updateOvPayTokenReplacedByTokenId: + value: + ovPayToken: + replacedByTokenId: 1 + responses: + '202': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/defaultCustomerProfileResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/addresses: + post: + tags: + - ABTCustomers + summary: Create a single customer address + description: Create a single customer address in the ABT database + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postAddress' + examples: + addFullAddress: + value: + address: + street: Laan van Meerdervoort + houseNumber: 5 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: true + addressTypeId: 1 + addMinimumAddress: + value: + address: + street: Laan van Meerdervoort + houseNumber: 5 + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: true + addressTypeId: 1 + responses: + '201': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfileAddressResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidPostalCodeFormatForAddressCountryNLError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter for country validation (NL). + description: >- + ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match + input string \"2500 AA\ + MissingRequiredParameterError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + object has missing required properties + ([\"addressTypeId\"]) + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"id\ + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/phones: + post: + tags: + - ABTCustomers + summary: Create a single customer phonenumber + description: Create a single customer phonenumber in the ABT database + parameters: + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/postPhone' + examples: + addPhone: + value: + phone: + number: '06123456789' + countryCode: '0031' + phoneTypeId: 1 + isPreferred: true + responses: + '201': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfilePhoneResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/addresses/{addressId}: + delete: + tags: + - ABTCustomers + summary: Delete a customer address + description: Delete a customer address from the ABT database + parameters: + - name: addressId + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + responses: + '202': + description: Deleted record successfully + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + patch: + tags: + - ABTCustomers + summary: Partial update customer addresses + description: Partial update a customer address in the ABT database + parameters: + - name: addressId + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchAddress' + examples: + updateAddress: + value: + address: + street: Laan van Meerdervoort + houseNumber: 5 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + addressTypeId: 2 + isPreferred: true + updateStreet: + value: + address: + street: Nieuwe Parklaan + updateHouseNumber: + value: + address: + houseNumber: 10 + updateHouseNumberSuffix: + value: + address: + houseNumberSuffix: C + updatePostalCode: + value: + address: + postalCode: 2597LG + updateCity: + value: + address: + city: Amsterdam + updateCountry: + value: + address: + country: UK + updateAddressTypeId: + value: + address: + addressTypeId: 3 + updateIsPreferred: + value: + address: + isPreferred: false + responses: + '202': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/addressPatchOKResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidPostalCodeFormatForAddressCountryNLError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter for country validation (NL). + description: >- + ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match + input string \"2500 AA\ + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"id\ + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/409Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /customers/{customerNumber}/phones/{phoneId}: + delete: + tags: + - ABTCustomers + summary: Delete a customer phone + description: Delete a customer phone from the ABT database + parameters: + - name: phoneId + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + responses: + '202': + description: Deleted record successfully + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + patch: + tags: + - ABTCustomers + summary: Partial update customer phones + description: Partial update a customer phone in the ABT database + parameters: + - name: phoneId + in: path + required: true + style: simple + explode: false + schema: + type: integer + - name: customerNumber + in: path + required: true + style: simple + explode: false + schema: + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/patchPhone' + examples: + updatePhone: + value: + phone: + number: '06123456789' + countryCode: '0031' + phoneTypeId: 2 + isPreferred: true + updatePhoneNumber: + value: + phone: + number: '06987654321' + updateCountryCode: + value: + phone: + countryCode: '0044' + updatePhoneTypeId: + value: + phone: + phoneTypeId: 2 + updateisPreferred: + value: + phone: + isPreferred: true + responses: + '202': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/phonePatchOKResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/409Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /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 + isPreferred: true + addressType: Office + - addressId: 2 + street: mystreet 33 + houseNumber: 1 + houseNumberSuffix: null + postalCode: 4455CA + city: Den BOSCH + country: NL + isPreferred: true + addressType: Office + phone: + - phoneId: 1 + number: '3112345678' + countryCode: NL + phoneType: TestNaam + isPreferred: true + - phoneId: 2 + number: '333225588' + countryCode: ES + phoneType: TestNaam + isPreferred: false + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + minimumCustomerProfile: + value: + customerNumber: 1000008 + debtorNumber: null + debtorStateId: null + vascustomerNumber: null + customerPreference: + languageId: 1 + customerStatus: + - name: active + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: null + person: + birthname: null + surname: null + prefix: null + suffix: null + dateOfBirth: null + emailAddress: TEST@TEST1.NL + address: [] + phone: [] + ovChipCard: [] + ovPayToken: [] + audit: [] + missingPersonDetailsCustomerProfile: + value: + emailAddress: TEST04@HTM.NL + customerNumber: 1000005 + debtorNumber: TEST004 + debtorStateId: 1 + vascustomerNumber: CST008 + customerPreference: + languageId: 1 + customerStatus: + - name: inactive + fromInclusive: '2022-08-04 15:01:00.000' + toInclusive: null + person: + birthname: Sophie + surname: Haardenburg + prefix: Mw + suffix: null + dateOfBirth: '1955-09-05' + emailAddress: TEST@TEST1.NL + address: [] + phone: [] + ovChipCard: + - ovChipCardId: 1 + chipCardNumber: 1234123412341234 + validUntil: '2023-01-01' + alias: alias + - ovChipCardId: 2 + chipCardNumber: 1234123412341235 + validUntil: '2025-01-01' + alias: alias + ovPayToken: + - ovPayTokenId: 126 + tokenTypeId: 1 + xTat: twioq73033 + xBot: hjihwqui27 + alias: alias + lastDigits: '5678' + ovpasNumber: OV34567 + tokenStatusId: 1 + expirationDate: '2025-04-20T17:05:52.000+02:00' + replacedByTokenId: 1 + - ovPayTokenId: 127 + tokenTypeId: 1 + xTat: hhe2830283 + xBot: jdhd828033 + alias: alias + lastDigits: '5674' + ovpasNumber: OV34568 + tokenStatusId: 1 + expirationDate: '2024-04-20T17:05:52.000+02:00' + replacedByTokenId: 2 + audit: + - auditTrailId: 1 + customerProfileId: 1 + action: insert + user: user + timestamp: '2023-10-20T17:05:52.000+02:00' + correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + post: + tags: + - 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 + isPreferred: true + addressTypeId: 1 + - street: Beeklaan + houseNumber: 30 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: false + addressTypeId: 2 + phones: + - number: '6123456789' + countryCode: '0031' + phoneTypeId: 1 + isPreferred: true + - number: '7012345678' + countryCode: '0031' + phoneTypeId: 2 + isPreferred: false + required: true + responses: + '201': + description: Successful created a customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfileCustomerNumberResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + '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 + isPreferred: true + addressTypeId: 1 + addMinimumAddress: + value: + address: + street: Laan van Meerdervoort + houseNumber: 5 + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: true + addressTypeId: 1 + responses: + '201': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/postCustomerProfileAddressResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidPostalCodeFormatForAddressCountryNLError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter for country validation (NL). + description: >- + ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match + input string \"2500 AA\ + MissingRequiredParameterError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + object has missing required properties + ([\"addressTypeId\"]) + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"id\ + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /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 + isPreferred: true + updateStreet: + value: + address: + street: Nieuwe Parklaan + updateHouseNumber: + value: + address: + houseNumber: 10 + updateHouseNumberSuffix: + value: + address: + houseNumberSuffix: C + updatePostalCode: + value: + address: + postalCode: 2597LG + updateCity: + value: + address: + city: Amsterdam + updateCountry: + value: + address: + country: UK + updateAddressTypeId: + value: + address: + addressTypeId: 3 + updateIsPreferred: + value: + address: + isPreferred: false + responses: + '202': + description: Successful updated the customer profile + content: + application/json: + schema: + $ref: '#/components/schemas/addressPatchOKResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/400Response' + examples: + InvalidPostalCodeFormatForAddressCountryNLError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter for country validation (NL). + description: >- + ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match + input string \"2500 AA\ + InvalidDataTypeError: + value: + code: '400' + type: Bad Request - Input parameters + message: Invalid input parameter. + description: >- + Bad Request - please verify the value for the following + field \"id\ + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/401Response' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/404Response' + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/409Response' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/500Response' + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited + /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 + isPreferred: + type: boolean + addressType: + type: string + getPhone: + type: object + properties: + phoneId: + type: integer + number: + type: string + countryCode: + type: string + phoneType: + type: string + isPreferred: + type: boolean + getCustomerPreference: + type: object + properties: + languageId: + type: integer + getCustomerProfileList: + type: object + properties: + Entries: + type: array + items: + $ref: '#/components/schemas/getCustomerProfile' + getCustomerProfile: + type: object + properties: + customerNumber: + type: integer + debtorNumber: + type: integer + debtorStateId: + type: integer + vascustomerNumber: + type: integer + customerPreference: + $ref: '#/components/schemas/getCustomerPreference' + customerStatus: + type: array + items: + $ref: '#/components/schemas/getCustomerStatus' + person: + $ref: '#/components/schemas/getPerson' + ovChipCard: + type: array + items: + $ref: '#/components/schemas/getOvChipCard' + ovPayToken: + type: array + items: + $ref: '#/components/schemas/ovPayToken' + audit: + type: array + items: + $ref: '#/components/schemas/audit' + directDebitMandatePostEntity: + required: + - billingInformationId + - created + - directDebitMandateTypeName + - mandateAddressId + - mandateReference + type: object + properties: + directDebitMandateTypeName: + type: string + billingInformationId: + type: integer + mandateAddressId: + type: integer + created: + type: string + mandateReference: + type: string + directDebitMandatePost: + type: object + properties: + directDebitMandate: + $ref: '#/components/schemas/directDebitMandatePostEntity' + directDebitMandatePatchEntity: + type: object + properties: + directDebitMandateTypeName: + type: string + billingInformationId: + type: integer + mandateAddressId: + type: integer + mandateReference: + type: string + mandateState: + type: string + enum: + - SIGNED + - CANCELLED + - PREPARED + directDebitMandatePatch: + type: object + properties: + directDebitMandate: + $ref: '#/components/schemas/directDebitMandatePatchEntity' + directDebitMandateGETEntity: + type: object + properties: + directDebitMandateId: + type: integer + directDebitMandateTypeId: + type: integer + billingInformationId: + type: integer + mandateAddressId: + type: integer + created: + type: string + mandateReference: + type: string + mandateState: + type: string + updateTimestamp: + type: string + billingInformationGETEntity: + required: + - alias + - ascription + - bic + - billingAddressId + - billingInformationId + - iban + - issuerCountry + - swift + type: object + properties: + billingInformationId: + type: integer + issuerCountry: + type: string + iban: + type: string + bic: + type: string + swift: + type: string + ascription: + type: string + alias: + type: string + billingAddressId: + type: integer + billingInformationPostEntity: + required: + - alias + - ascription + - billingAddressId + - iban + - issuerCountry + type: object + properties: + issuerCountry: + type: string + iban: + type: string + bic: + type: string + swift: + type: string + ascription: + type: string + alias: + type: string + billingAddressId: + type: integer + billingInformationPost: + type: object + properties: + billingInformation: + $ref: '#/components/schemas/billingInformationPostEntity' + billingInformationPatchEntity: + type: object + properties: + issuerCountry: + type: string + iban: + type: string + bic: + type: string + swift: + type: string + ascription: + type: string + alias: + type: string + billingAddressId: + type: integer + billingInformationPatch: + type: object + properties: + billingInformation: + $ref: '#/components/schemas/billingInformationPatchEntity' + getCustomerProfileFinancials: + type: object + properties: + customerNumber: + type: integer + billingInformation: + type: array + items: + $ref: '#/components/schemas/billingInformationGETEntity' + directDebitMandate: + type: array + items: + $ref: '#/components/schemas/directDebitMandateGETEntity' + customerPreferencesEntity: + type: object + properties: + languageId: + type: string + postCustomerProfile: + type: object + properties: + debtorStatusId: + type: integer + customerPreference: + $ref: '#/components/schemas/customerPreferencesEntity' + person: + $ref: '#/components/schemas/personEntity' + addresses: + type: array + items: + $ref: '#/components/schemas/addressPostEntity' + phones: + type: array + items: + $ref: '#/components/schemas/phonePostEntity' + postCustomerStatusEntity: + type: object + properties: + name: + type: string + postCustomerStatus: + type: object + properties: + customerStatus: + $ref: '#/components/schemas/postCustomerStatusEntity' + postOvChipCardEntity: + required: + - chipCardNumber + type: object + properties: + chipCardNumber: + type: integer + validUntil: + type: string + format: date + alias: + type: string + patchCustomerProfile: + type: object + properties: + debtorStatusId: + type: integer + patchCustomerPreferencesEntity: + type: object + properties: + languageId: + type: string + patchCustomerPreferences: + type: object + properties: + customerPreference: + $ref: '#/components/schemas/patchCustomerPreferencesEntity' + postOvChipCard: + type: object + properties: + ovChipCard: + $ref: '#/components/schemas/postOvChipCardEntity' + postOvPayToken: + required: + - alias + - lastDigits + - tokenTypeId + - xBot + - xTat + type: object + properties: + ovPayToken: + type: object + properties: + tokenTypeId: + type: string + xTat: + type: string + xBot: + type: string + alias: + type: string + lastDigits: + type: integer + ovpasNumber: + type: string + tokenStatusId: + type: integer + expirationDate: + type: string + replacedByTokenId: + type: integer + ovPayTokenEntity: + type: object + properties: + tokenTypeId: + type: string + xTat: + type: string + xBot: + type: string + alias: + type: string + lastDigits: + type: integer + ovpasNumber: + type: string + tokenStatusId: + type: integer + expirationDate: + type: string + replacedByTokenId: + type: integer + patchOvPayToken: + type: object + properties: + ovPayToken: + $ref: '#/components/schemas/ovPayTokenEntity' + patchPerson: + type: object + properties: + person: + $ref: '#/components/schemas/personEntity' + patchAddress: + type: object + properties: + address: + $ref: '#/components/schemas/addressPatchEntity' + patchPhone: + type: object + properties: + phone: + $ref: '#/components/schemas/phonePatchEntity' + postAddress: + type: object + properties: + address: + $ref: '#/components/schemas/addressPostEntity' + postPhone: + type: object + properties: + phone: + $ref: '#/components/schemas/phonePostEntity' + personEntity: + type: object + properties: + birthname: + type: string + surname: + type: string + prefix: + type: string + suffix: + type: string + dateOfBirth: + type: string + format: date + emailAddress: + type: string + addressPostEntity: + required: + - addressTypeId + - city + - country + - houseNumber + - postalCode + - street + type: object + properties: + street: + type: string + houseNumber: + type: integer + houseNumberSuffix: + type: string + postalCode: + type: string + city: + type: string + country: + type: string + isPreferred: + type: boolean + addressTypeId: + type: integer + addressPatchEntity: + type: object + properties: + street: + type: string + houseNumber: + type: integer + houseNumberSuffix: + type: string + postalCode: + type: string + city: + type: string + country: + type: string + addressTypeId: + type: integer + isPreferred: + type: boolean + phonePostEntity: + required: + - countryCode + - number + - phoneTypeId + type: object + properties: + number: + type: string + countryCode: + type: string + phoneTypeId: + type: integer + isPreferred: + type: boolean + phonePatchEntity: + type: object + properties: + number: + type: string + countryCode: + type: string + phoneTypeId: + type: integer + isPreferred: + type: boolean + defaultCustomerProfileResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + phonePatchOKResponse: + type: object + properties: + id: + type: integer + example: 1 + addressPatchOKResponse: + type: object + properties: + id: + type: integer + example: 1 + postCustomerProfileCustomerNumberResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + postCustomerProfileAddressResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + addressId: + type: integer + example: 1 + postCustomerProfilePhoneResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + phoneId: + type: integer + example: 1 + postCustomerProfileBillingInformationResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + billingInformationId: + type: integer + example: 1 + postCustomerProfileDirectDebitMandateResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + directDebitMandateId: + type: integer + example: 1 + postCustomerProfileOvChipCardResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + ovChipCardId: + type: integer + example: 1 + patchCustomerProfileResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + patchCustomerPreferencesResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + ovPayTokenGetEntity: + type: object + properties: + ovPayTokenId: + type: integer + example: 1 + tokenTypeId: + type: integer + example: 1 + xTat: + type: string + example: 0044831b-8e80c-4f82-r989a-8d85ee1996 + xBot: + type: string + example: 0044831b-8e80c-4f82-r989a-8d85ee1996 + lastDigits: + type: string + example: '0001' + ovpasNumber: + type: integer + example: 1 + alias: + type: string + example: alias + tokenStatusId: + type: integer + expirationDate: + type: string + replacedByTokenId: + type: integer + getCustomerProfileOvPayTokenResponse: + type: object + properties: + ovPayToken: + type: array + items: + $ref: '#/components/schemas/ovPayTokenGetEntity' + postCustomerProfileOvPayTokenResponse: + type: object + properties: + ovPaytoken: + type: object + example: 10000001 + ovPayTokenId: + type: integer + example: 1 + patchCustomerProfileCustomerNumberResponse: + type: object + properties: + customerNumber: + type: integer + example: 10000001 + 400Response: + type: object + properties: + code: + type: string + example: '400' + type: + type: string + message: + type: string + example: Bad Request + description: + type: string + example: >- + 'Bad Request: Input parameters missing! Please fill in at least 1 + valid input parameter. + 401Response: + type: object + properties: + code: + type: string + example: '900901' + type: + type: string + message: + type: string + example: Invalid Credentials + description: + type: string + example: >- + Invalid Credentials. Make sure you have provided the correct + security credentials + 404Response: + type: object + properties: + code: + type: string + example: '404' + type: + type: string + example: Status report + message: + type: string + example: Not Found + description: + type: string + example: The requested resource is not available. + 409Response: + type: object + properties: + code: + type: string + example: '409' + type: + type: string + example: Conflict + message: + type: string + example: Entry already exists + description: + type: string + 422Response: + type: object + properties: + code: + type: string + example: '422' + type: + type: string + example: Unprocessable entity + message: + type: string + example: >- + Forbidden state transition requested! From Active to Cleared not + allowed. + description: + type: string + 500Response: + type: object + properties: + code: + type: string + example: '500' + type: + type: string + message: + type: string + example: Internal Server Error + description: + type: string + securitySchemes: + default: + type: oauth2 + flows: + implicit: + authorizationUrl: https://services.acc.api.htm.nl/authorize + scopes: {} diff --git a/src/openapi/customers/customers_reference-crud.yaml b/src/openapi/customers/customers_reference-crud.yaml new file mode 100644 index 0000000..ffb2500 --- /dev/null +++ b/src/openapi/customers/customers_reference-crud.yaml @@ -0,0 +1,1047 @@ +openapi: 3.0.1 +info: + title: ABTCustomerReference + version: '1.0' +servers: + - url: https://services.dev.api.htm.nl/abt/customerreference/1.0 + - url: http://services.dev.api.htm.nl/abt/customerreference/1.0 +security: + - default: [] +tags: + - name: ABTCustomerReference +paths: + /directdebitmandatetype: + get: + tags: + - ABTCustomerReference + summary: List of direct debit mandate types + description: gives list of direct debit mandate types + parameters: [] + responses: + '200': + description: Successful retrieved list of direct debit mandate types + content: + application/json: + schema: + $ref: '#/components/schemas/directDebitMandateTypes' + '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 + /phonetype: + get: + tags: + - ABTCustomerReference + summary: List of phone types + description: gives list of phone types + parameters: [] + responses: + '200': + description: Successful retrieved list of phoneTypes + content: + application/json: + schema: + $ref: '#/components/schemas/phoneTypes' + '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: + - ABTCustomerReference + summary: Create a phone type + description: Create a phone type with a specific value + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/phoneType' + required: true + responses: + '201': + description: Successful created a new phone type + content: + application/json: + schema: + type: object + properties: + id: + type: integer + example: 1 + '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 + /phonetype/{phoneTypeId}: + put: + tags: + - ABTCustomerReference + summary: Update a phone type + description: Update an existing phone type with a specific value + parameters: + - name: phoneTypeId + in: path + required: true + style: simple + explode: false + schema: + type: integer + format: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/phoneType' + required: true + responses: + '202': + description: Successful updated an existing a phone type + content: + application/json: + schema: + type: object + properties: + id: + type: integer + example: 1 + '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 + delete: + tags: + - ABTCustomerReference + summary: Remove a phone type + description: Remove an existing phone type with a specific value + parameters: + - name: phoneTypeId + in: path + required: true + style: simple + explode: false + schema: + type: integer + format: integer + responses: + '202': + description: Successful removed a phone type + '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: + oneOf: + - $ref: '#/components/schemas/404ResponseId' + - $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 + /addresstype: + get: + tags: + - ABTCustomerReference + summary: List of address types + description: gives list of address types + parameters: [] + responses: + '200': + description: Successful retrieved list of addressTypes + content: + application/json: + schema: + $ref: '#/components/schemas/addressTypes' + '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: + - ABTCustomerReference + summary: Create a address type + description: Create a address type with a specific value + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/addressType' + required: true + responses: + '201': + description: Successful created a new address type + content: + application/json: + schema: + type: object + properties: + id: + type: integer + example: 1 + '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 + /addresstype/{addressTypeId}: + put: + tags: + - ABTCustomerReference + summary: Update a address type + description: Update an existing address type with a specific value + parameters: + - name: addressTypeId + in: path + required: true + style: simple + explode: false + schema: + type: integer + format: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/addressType' + required: true + responses: + '202': + description: Successful updated an existing a address type + content: + application/json: + schema: + type: object + properties: + id: + type: integer + example: 1 + '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 + delete: + tags: + - ABTCustomerReference + summary: Remove a address type + description: Remove an existing address type with a specific value + parameters: + - name: addressTypeId + in: path + required: true + style: simple + explode: false + schema: + type: integer + format: integer + responses: + '202': + description: Successful removed a address type + '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: + oneOf: + - $ref: '#/components/schemas/404ResponseId' + - $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 + /customerstatus: + get: + tags: + - ABTCustomerReference + summary: List of customer status + description: gives list of customer status + parameters: [] + responses: + '200': + description: Successful retrieved list of customer status + content: + application/json: + schema: + $ref: '#/components/schemas/customerStatus' + example: + Entries: + - customerStatusId: 1 + name: Inactive + - customerStatusId: 2 + name: Active + - customerStatusId: 3 + name: Blocked + - customerStatusId: 4 + name: Frozen + - customerStatusId: 5 + name: Cleared + '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 + /tokentype: + get: + tags: + - ABTCustomerReference + summary: List of token types + description: gives list of token types + parameters: [] + responses: + '200': + description: Successful retrieved list of customer status + content: + application/json: + schema: + $ref: '#/components/schemas/tokenType' + example: + Entries: + - tokenTypeId: 1 + name: Debit card + - tokenTypeId: 2 + name: Credit card + - tokenTypeId: 3 + name: OVPas physical + - tokenTypeId: 4 + name: OVPas digital + '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 + /customerreferences: + get: + tags: + - ABTCustomerReference + summary: List of all possible customer reference values + description: gives list of all possible customer reference values availbale + parameters: [] + responses: + '200': + description: Successful retrieved list of all possible customer reference values + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/customerReferences' + example: + Entries: + phoneTypes: + - name: mobile + id: 1 + - name: fixed line + id: 2 + addressTypes: + - name: home + id: 1 + - name: office + id: 2 + customerStatuses: + - name: active + id: 1 + - name: blocked + id: 2 + - name: inactive + id: 3 + - name: new + id: 4 + tokenTypes: + - name: Debit card + id: 1 + - name: Credit card + id: 2 + - name: OVPas physical + id: 3 + - name: OVPas digital + id: 4 + directDebitMandateTypes: + - name: Paper Contract + id: 1 + - name: PIN transaction + id: 2 + tokenStatuses: + - name: Expired + id: 1 + - name: Active + id: 2 + - name: Replaced + id: 3 + - name: Inactive + id: 4 + - name: Suspended + id: 5 + - name: Removed by customer + id: 6 + debtorStatuses: + - name: Inactive + id: 1 + - name: Active + id: 2 + languages: + - id: 1 + name: Nederlands + ietfCode: nl-Nl + iso639Code: nl + - id: 2 + name: English + ietfCode: en-US + iso639Code: en + '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 + /tokenstatus: + get: + tags: + - ABTCustomerReference + summary: List of all token status + description: gives list of all token statuses + parameters: [] + responses: + '200': + description: Successful retrieved list of customer status + content: + application/json: + schema: + $ref: '#/components/schemas/language' + example: + Entries: + - tokenStatusId: 1 + name: Expired + - tokenStatusId: 2 + name: Active + - tokenStatusId: 3 + name: Replaced + - tokenStatusId: 4 + name: Inactive + - tokenStatusId: 5 + name: Suspended + - tokenStatusId: 6 + name: Removed by customer + '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 + /language: + get: + tags: + - ABTCustomerReference + summary: List of all languages + description: gives list of all languages + parameters: [] + responses: + '200': + description: Successful retrieved list of languages + content: + application/json: + schema: + $ref: '#/components/schemas/language' + example: + Entries: + - languageId: 1 + name: Expired + ietfCode: nl-NL + iso639Code: nl + - languageId: 2 + name: Expired + ietfCode: en-US + iso639Code: en + '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 + /debtorstatus: + get: + tags: + - ABTCustomerReference + summary: List of all debtorstatuses + description: gives list of all debtorstatuses + parameters: [] + responses: + '200': + description: Successful retrieved list of debtorstatuses + content: + application/json: + schema: + $ref: '#/components/schemas/tokenStatus' + example: + Entries: + - debtorStatusId: 1 + name: Inactive + - debtorStatusId: 2 + name: Active + '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 +components: + schemas: + directDebitMandateTypeList: + type: array + items: + properties: + directDebitMandateTypeId: + type: integer + example: 1 + name: + type: string + example: name + directDebitMandateType: + properties: + name: + type: string + example: name + id: + type: integer + example: 1 + directDebitMandateTypes: + type: object + properties: + Entries: + $ref: '#/components/schemas/directDebitMandateTypeList' + phoneType: + properties: + name: + type: string + example: name + phoneTypeIdList: + type: array + items: + properties: + phoneTypeId: + type: integer + example: 123 + name: + type: string + example: name + phoneTypes: + type: object + properties: + Entries: + $ref: '#/components/schemas/phoneTypeIdList' + addressType: + properties: + name: + type: string + example: name + addressTypeIdList: + type: array + items: + properties: + addressTypeId: + type: integer + example: 123 + name: + type: string + example: name + addressTypes: + type: object + properties: + Entries: + $ref: '#/components/schemas/addressTypeIdList' + customerStatuses: + type: object + properties: + Entries: + $ref: '#/components/schemas/customerStatusIdList' + customerStatusIdList: + type: array + items: + properties: + customerStatusId: + type: integer + name: + type: string + customerStatus: + properties: + name: + type: string + example: name + tokenTypes: + type: object + properties: + Entries: + $ref: '#/components/schemas/customerStatusIdList' + tokenTypeIdList: + type: array + items: + properties: + tokenTypeId: + type: integer + name: + type: string + tokenType: + properties: + name: + type: string + example: name + tokenStatuses: + type: object + properties: + Entries: + $ref: '#/components/schemas/customerStatusIdList' + tokenStatusIdList: + type: array + items: + properties: + tokenStatusId: + type: integer + name: + type: string + tokenStatus: + properties: + tokenStatusId: + type: integer + example: 1 + name: + type: string + example: name + debtorStatus: + properties: + debtorStatusId: + type: integer + example: 1 + name: + type: string + example: name + language: + properties: + languageId: + type: integer + example: 1 + name: + type: string + example: name + ietfCode: + type: string + example: nl-NL + iso639Code: + type: string + example: nl + customerReferences: + type: object + properties: + Entries: + oneOf: + - $ref: '#/components/schemas/addressType' + - $ref: '#/components/schemas/phoneType' + - $ref: '#/components/schemas/customerStatus' + - $ref: '#/components/schemas/tokenType' + - $ref: '#/components/schemas/directDebitMandateType' + - $ref: '#/components/schemas/tokenStatus' + 400Response: + type: object + properties: + code: + type: string + example: '400' + type: + type: string + message: + type: string + example: Bad Request + description: + type: string + example: '''2023-02-01 00:00:00'' is not a valid Datetime' + 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. + 404ResponseId: + type: object + properties: + error: + type: string + example: 'No record found for id: 5' + 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.dev.api.htm.nl/authorize + scopes: {} diff --git a/src/openapi/orders/service_engine_orders.yaml b/src/openapi/orders/service_engine_orders.yaml index 0070185..31c4e6b 100644 --- a/src/openapi/orders/service_engine_orders.yaml +++ b/src/openapi/orders/service_engine_orders.yaml @@ -9,217 +9,291 @@ paths: /orders/validation: post: tags: - - Order Validation v2 + - Order Validation v1 & v2 summary: Validate order. description: Validate order. parameters: - in: header name: X-HTM-JWT-AUTH-HEADER - required: true + required: false style: simple explode: false schema: type: string + - in: header + name: Accept-version + required: false + style: simple + explode: false + schema: + type: string + example: "2.0" + description: The version of the API. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - { - "purchaseDate": "2024-03-22", - "customerProfileId": 1337, - "languageId": 1, - "billingAddressId": 1, - "shippingAddressId": 1, - "contents": + examples: + v1: + summary: Order validation v1 + description: Order validation v1 + value: [ { - "productId": 1, - "quantity": 5, - "validFrom": "2024-03-22T09:00:00", - "validUntil": null, - "tokens": - [ - { - "tokenTypeId": 1, - "ovPayTokenId": 1, - "serviceReferenceId": "NLOV1234567ABCDEFG", - "amount": 34, - "ovpasNumber": "OV34567", - "verificationCode": "A7H6", - "personalAccountData": - { - "name": "Jan de Vries", - "dateOfBirth": "01-01-1970", - "photoReference": "DSC_0502.JPG", - "fileType": "image/jpg", - "challengeTypeId": 1, - "oneTimePassword": "H5Iiz3JTaQeIV8p", - }, - }, - ], + "ovPayTokenId": 2, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 34, + "ovpasNumber": "OV34567", + "productId": 2, + "startDate": "2024-03-22T09:00:00z", + "quantity": 1, }, { - "productId": 2, - "quantity": 3, - "validFrom": "2024-03-22T09:00:00", - "validUntil": null, + "ovPayTokenId": 3, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 89, + "ovpasNumber": "OV34567", + "productId": 4, + "startDate": "2024-03-22T09:00:00z", + "quantity": 4, }, - ], - "customer": + ] + v2: + summary: Order validation v2 + description: Order validation v2 + value: { - "birthname": "Jan", - "surname": "Vries", - "prefix": "de", - "emailAddress": "jandevries@outlook.com", - "dateOfBirth": "1970-01-01", - "addresses": + "purchaseDate": "2024-03-22", + "customerProfileId": 1337, + "languageId": 1, + "billingAddressId": 1, + "shippingAddressId": 1, + "contents": [ { - "addressTypeId": 1, - "street": "Kon. Julianaplein", - "houseNumber": 10, - "houseNumberSuffix": "a", - "postalCode": "2595 AA", - "city": "Den Haag", - "country": "NL", + "productId": 1, + "quantity": 5, + "validFrom": "2024-03-22T09:00:00", + "validUntil": null, + "tokens": + [ + { + "tokenTypeId": 1, + "ovPayTokenId": 1, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 34, + "ovpasNumber": "OV34567", + "verificationCode": "A7H6", + "personalAccountData": + { + "name": "Jan de Vries", + "dateOfBirth": "01-01-1970", + "photoReference": "DSC_0502.JPG", + "fileType": "image/jpg", + "challengeTypeId": 1, + "oneTimePassword": "H5Iiz3JTaQeIV8p", + }, + }, + ], + }, + { + "productId": 2, + "quantity": 3, + "validFrom": "2024-03-22T09:00:00", + "validUntil": null, }, ], - }, - } + "customer": + { + "birthname": "Jan", + "surname": "Vries", + "prefix": "de", + "emailAddress": "jandevries@outlook.com", + "dateOfBirth": "1970-01-01", + "addresses": + [ + { + "addressTypeId": 1, + "street": "Kon. Julianaplein", + "houseNumber": 10, + "houseNumberSuffix": "a", + "postalCode": "2595 AA", + "city": "Den Haag", + "country": "NL", + }, + ], + }, + } responses: - "201": - description: Created + "200": + description: OK content: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - { - "validContents": true, - "purchaseDate": "2024-03-22", - "customerProfileId": 1337, - "languageId": 1, - "billingAddressId": 1, - "shippingAddressId": 1, - "totalAmount": 121, - "contents": - [ - { - "productId": 1, - "quantity": 5, - "validFrom": "2024-03-22T09:00:00", - "validUntil": null, - "taxAmount": 21, - "taxCode": "V21", - "amountExclTax": 100, - "amountInclTax": 121, - "isRenewable": true, - "nextDebitDate": "2024-04-22", - "termAmountExclTax": 100, - "termAmountInclTax": 121, - "tokens": - [ - { - "tokenTypeId": 1, - "ovPayTokenId": 1, - "serviceReferenceId": "NLOV1234567ABCDEFG", - "amount": 34, - "ovpasNumber": "OV34567", - "verificationCode": "A7H6", - "personalAccountData": - { - "name": "Jan de Vries", - "dateOfBirth": "01-01-1970", - "photoReference": "DSC_0502.JPG", - "fileType": "image/jpg", - "challengeTypeId": 1, - "oneTimePassword": "H5Iiz3JTaQeIV8p", - }, - }, - ], - "additionalRemarks": [], - "validationErrors": - [ - { - "detail": "Startdate of this product should be at most 60 days in the future.", - "pointer": "#/contents[0]/validFrom", - }, - { - "detail": "Combination of product and token type is not valid.", - "pointer": "#/contents[0]/tokens[0]/ovPayTokenId", - }, - ], - }, - { - "productId": 2, - "quantity": 3, - "validFrom": "2024-03-22T09:00:00", - "validUntil": null, - "taxAmount": 21, - "taxCode": "V21", - "amountExclTax": 100, - "amountInclTax": 121, - "isRenewable": true, - "nextDebitDate": "2024-04-22", - "termAmountExclTax": 100, - "termAmountInclTax": 121, - }, - ], - "customer": + examples: + v1: + summary: Order validation v1 + description: Order validation v1 + value: { - "birthname": "Jan", - "surname": "Vries", - "prefix": "de", - "emailAddress": "jandevries@outlook.com", - "dateOfBirth": "1970-01-01", - "addresses": + "validContents": true, + "amountExclTax": 0, + "taxPercentage": 0, + "amountInclTax": 0, + "contents": [ { - "addressTypeId": 1, - "street": "Kon. Julianaplein", - "houseNumber": 10, - "houseNumberSuffix": "a", - "postalCode": "2595 AA", - "city": "Den Haag", - "country": "NL", + "ovPayTokenId": 0, + "serviceReferenceId": "string", + "ovpasNumber": "string", + "productId": 0, + "quantity": 0, + "amountExclTax": 0, + "taxPercentage": 0, + "amountInclTax": 0, + "startDate": "string", + "endDate": "string", + "isRenewable": true, + "nextDebitDate": "string", + "termAmountExclTax": 0, + "termAmountInclTax": 0, + "additionalRemarks": + [{ "code": "string", "parameter": "string" }], + "validationErrors": + [{ "detail": "string", "pointer": "string" }], }, ], - "additionalRemarks": + } + v2: + summary: Order validation v2 + description: Order validation v2 + value: + { + "validContents": true, + "purchaseDate": "2024-03-22", + "customerProfileId": 1337, + "languageId": 1, + "billingAddressId": 1, + "shippingAddressId": 1, + "totalAmount": 121, + "contents": [ { - "code": "PERSONAL_DATA_NEEDED", - "parameter": "dateOfBirth", + "productId": 1, + "quantity": 5, + "validFrom": "2024-03-22T09:00:00", + "validUntil": null, + "taxAmount": 21, + "taxCode": "V21", + "amountExclTax": 100, + "amountInclTax": 121, + "isRenewable": true, + "nextDebitDate": "2024-04-22", + "termAmountExclTax": 100, + "termAmountInclTax": 121, + "tokens": + [ + { + "tokenTypeId": 1, + "ovPayTokenId": 1, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 34, + "ovpasNumber": "OV34567", + "verificationCode": "A7H6", + "personalAccountData": + { + "name": "Jan de Vries", + "dateOfBirth": "01-01-1970", + "photoReference": "DSC_0502.JPG", + "fileType": "image/jpg", + "challengeTypeId": 1, + "oneTimePassword": "H5Iiz3JTaQeIV8p", + }, + }, + ], + "additionalRemarks": [], + "validationErrors": + [ + { + "detail": "Startdate of this product should be at most 60 days in the future.", + "pointer": "#/contents[0]/validFrom", + }, + { + "detail": "Combination of product and token type is not valid.", + "pointer": "#/contents[0]/tokens[0]/ovPayTokenId", + }, + ], }, { - "code": "PERSONAL_DATA_NEEDED", - "parameter": "photo", - }, - { - "code": "MANDATE_REQUIRED", - "parameter": "directDebitMandateId", + "productId": 2, + "quantity": 3, + "validFrom": "2024-03-22T09:00:00", + "validUntil": null, + "taxAmount": 21, + "taxCode": "V21", + "amountExclTax": 100, + "amountInclTax": 121, + "isRenewable": true, + "nextDebitDate": "2024-04-22", + "termAmountExclTax": 100, + "termAmountInclTax": 121, }, ], - "validationErrors": - [ - { - "detail": "Startdate of this product should be at most 60 days in the future.", - "pointer": "#/contents[1]/validFrom", - }, - ], - }, - } + "customer": + { + "birthname": "Jan", + "surname": "Vries", + "prefix": "de", + "emailAddress": "jandevries@outlook.com", + "dateOfBirth": "1970-01-01", + "addresses": + [ + { + "addressTypeId": 1, + "street": "Kon. Julianaplein", + "houseNumber": 10, + "houseNumberSuffix": "a", + "postalCode": "2595 AA", + "city": "Den Haag", + "country": "NL", + }, + ], + "additionalRemarks": + [ + { + "code": "PERSONAL_DATA_NEEDED", + "parameter": "dateOfBirth", + }, + { + "code": "PERSONAL_DATA_NEEDED", + "parameter": "photo", + }, + { + "code": "MANDATE_REQUIRED", + "parameter": "directDebitMandateId", + }, + ], + "validationErrors": + [ + { + "detail": "Startdate of this product should be at most 60 days in the future.", + "pointer": "#/contents[1]/validFrom", + }, + ], + }, + } /orders/{orderId}/fulfillment: post: tags: - - Order Fulfillment v2 + - Order Fulfillment v1 & v2 summary: Fulfill an order. description: Fulfill an order. parameters: - in: header name: X-HTM-JWT-AUTH-HEADER - required: true + required: false style: simple explode: false schema: @@ -233,116 +307,168 @@ paths: type: string format: uuid example: a0ef57fa-395c-4a03-96e9-234c26dccea9 + - in: header + name: Accept-version + required: false + style: simple + explode: false + schema: + type: string + example: "2.0" + description: The version of the API. requestBody: content: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - { - "orderId": "a0ef57fa-395c-4a03-96e9-234c26dccea9", - "customerProfileId": 1337, - "totalAmount": 121, - "languageId": 1, - "billingAddressId": 1, - "shippingAddressId": 1, - "createdOn": "2024-03-22T09:00:00", - "orderStatusId": 4, - "orderLines": - [ - { - "orderLineId": "2ba39cae-c401-446b-ae5c-2d6d85b3df1f", - "productId": 1, - "productName": "HTM Maandkorting 20%", - "productCode": "HTM-MND-20", - "productDescription": "HTM Maandkorting 20%", - "taxAmount": 21, - "taxCode": "V21", - "amountExclTax": 100, - "amountInclTax": 121, - "quantity": 1, - "terms": - [ - "generalTermsAndConditions.pdf", - "productTermsAndConditions.pdf", - ], - "createdOn": "2024-03-22T09:00:00", - "validFrom": "2024-03-22T09:00:00", - "validUntil": null, - "orderLineStatusId": 4, - "tokens": - [ - { - "tokenTypeId": 1, - "ovPayTokenId": 1, - "serviceReferenceId": "NLOV1234567ABCDEFG", - "amount": 34, - "ovpasNumber": "OV34567", - "verificationCode": "A7H6", - "personalAccountData": - { - "name": "Jan de Vries", - "dateOfBirth": "01-01-1970", - "photoReference": "DSC_0502.JPG", - "fileType": "image/jpg", - "challengeTypeId": 1, - "oneTimePassword": "H5Iiz3JTaQeIV8p", - }, - }, - ], - }, - ], - "payments": - [ - { - "createdOn": "2024-03-22T09:00:00", - "amountDebit": 121, - "paymentMethodId": 1, - "touchPointId": 1, - "isRefund": false, - "htmPaymentReference": "HTM-1234", - "pspPaymentReference": "Buckaroo-1234", - "paymentStatuses": - [ - { - "createdOn": "2024-03-22T09:00:00", - "statusCode": "190", - "statusDescription": "Success", - "statusSubCode": "S001", - "statusSubDescription": "PaymentSuccessFul", - }, - ], - "payPush": - { - "consumerIssuer": "ABN AMRO", - "transactionId": "0000000000000001", - "consumerName": "J. de Vries", - "consumerIBAN": "NL44RABO0123456789", - "consumerBIC": "RABONL2U", - }, - }, - ], - "customer": + examples: + v1: + summary: Order fulfillment v1 + description: Order fulfillment v1 + value: { - "birthname": "Jan", - "surname": "Vries", - "prefix": "de", - "emailAddress": "jandevries@outlook.com", - "dateOfBirth": "1970-01-01", - "addresses": + "customerProfileID": 123415, + "customerProfileData": { "dateOfBirth": "09-03-1989" }, + "personalAccountData": { "birthdate": "09-03-1989" }, + "directDebitMandate": + { + "consumerName": "J. de Tèster", + "consumerBic": "RABONL2U", + "consumerIban": "NL44RABO0123456789", + }, + "orderContents": [ { - "addressTypeId": 1, - "street": "Kon. Julianaplein", - "houseNumber": 10, - "houseNumberSuffix": "a", - "postalCode": "2595 AA", - "city": "Den Haag", - "country": "NL", + "ovPayTokenId": 123, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 450, + "ovpasNumber": "63AW974", + "productId": 2, + "startDate": "2024-03-22T09:00:00Z", + "quantity": 1, + "orderlineId": "2d7fadc9-b64b-4516-9a7d-cf550f201372", + }, + { + "ovPayTokenId": 123, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 450, + "ovpasNumber": "63AW974", + "productId": 3, + "startDate": "2024-03-16T09:00:00Z", + "quantity": 1, + "orderlineId": "9d7fadc9-b64b-4516-9a7d-cf550f201378", }, ], - }, - } + "orderStatus": "succeededPayment", + } + v2: + summary: Order fulfillment v2 + description: Order fulfillment v2 + value: + { + "orderId": "a0ef57fa-395c-4a03-96e9-234c26dccea9", + "customerProfileId": 1337, + "totalAmount": 121, + "languageId": 1, + "billingAddressId": 1, + "shippingAddressId": 1, + "createdOn": "2024-03-22T09:00:00", + "orderStatusId": 4, + "orderLines": + [ + { + "orderLineId": "2ba39cae-c401-446b-ae5c-2d6d85b3df1f", + "productId": 1, + "productName": "HTM Maandkorting 20%", + "productCode": "HTM-MND-20", + "productDescription": "HTM Maandkorting 20%", + "taxAmount": 21, + "taxCode": "V21", + "amountExclTax": 100, + "amountInclTax": 121, + "quantity": 1, + "terms": + [ + "generalTermsAndConditions.pdf", + "productTermsAndConditions.pdf", + ], + "createdOn": "2024-03-22T09:00:00", + "validFrom": "2024-03-22T09:00:00", + "validUntil": null, + "orderLineStatusId": 4, + "tokens": + [ + { + "tokenTypeId": 1, + "ovPayTokenId": 1, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 34, + "ovpasNumber": "OV34567", + "verificationCode": "A7H6", + "personalAccountData": + { + "name": "Jan de Vries", + "dateOfBirth": "01-01-1970", + "photoReference": "DSC_0502.JPG", + "fileType": "image/jpg", + "challengeTypeId": 1, + "oneTimePassword": "H5Iiz3JTaQeIV8p", + }, + }, + ], + }, + ], + "payments": + [ + { + "createdOn": "2024-03-22T09:00:00", + "amountDebit": 121, + "paymentMethodId": 1, + "touchPointId": 1, + "isRefund": false, + "htmPaymentReference": "HTM-1234", + "pspPaymentReference": "Buckaroo-1234", + "paymentStatuses": + [ + { + "createdOn": "2024-03-22T09:00:00", + "statusCode": "190", + "statusDescription": "Success", + "statusSubCode": "S001", + "statusSubDescription": "PaymentSuccessFul", + }, + ], + "payPush": + { + "consumerIssuer": "ABN AMRO", + "transactionId": "0000000000000001", + "consumerName": "J. de Vries", + "consumerIBAN": "NL44RABO0123456789", + "consumerBIC": "RABONL2U", + }, + }, + ], + "customer": + { + "birthname": "Jan", + "surname": "Vries", + "prefix": "de", + "emailAddress": "jandevries@outlook.com", + "dateOfBirth": "1970-01-01", + "addresses": + [ + { + "addressTypeId": 1, + "street": "Kon. Julianaplein", + "houseNumber": 10, + "houseNumberSuffix": "a", + "postalCode": "2595 AA", + "city": "Den Haag", + "country": "NL", + }, + ], + }, + } responses: "201": description: Created @@ -350,112 +476,120 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - { - "orderId": "a0ef57fa-395c-4a03-96e9-234c26dccea9", - "orderNumber": "123456", - "customerProfileId": 1337, - "totalAmount": 121, - "languageId": 1, - "billingAddressId": 1, - "shippingAddressId": 1, - "createdOn": "2024-03-22T09:00:00", - "orderStatusId": 4, - "orderLines": - [ - { - "orderLineId": "2ba39cae-c401-446b-ae5c-2d6d85b3df1f", - "productId": 1, - "productName": "HTM Maandkorting 20%", - "productCode": "HTM-MND-20", - "productDescription": "HTM Maandkorting 20%", - "taxAmount": 21, - "taxCode": "V21", - "amountExclTax": 100, - "amountInclTax": 121, - "quantity": 1, - "terms": - [ - "generalTermsAndConditions.pdf", - "productTermsAndConditions.pdf", - ], - "createdOn": "2024-03-22T09:00:00", - "validFrom": "2024-03-22T09:00:00", - "validUntil": null, - "orderLineStatusId": 4, - "tokens": - [ - { - "tokenTypeId": 1, - "ovPayTokenId": 1, - "serviceReferenceId": "NLOV1234567ABCDEFG", - "amount": 34, - "ovpasNumber": "OV34567", - "verificationCode": "A7H6", - "personalAccountData": - { - "name": "Jan de Vries", - "dateOfBirth": "01-01-1970", - "photoReference": "DSC_0502.JPG", - "fileType": "image/jpg", - "challengeTypeId": 1, - "oneTimePassword": "H5Iiz3JTaQeIV8p", - }, - }, - ], - }, - ], - "payments": - [ - { - "createdOn": "2024-03-22T09:00:00", - "amountDebit": 121, - "paymentMethodId": 1, - "touchPointId": 1, - "isRefund": false, - "htmPaymentReference": "HTM-1234", - "pspPaymentReference": "Buckaroo-1234", - "paymentStatuses": - [ - { - "createdOn": "2024-03-22T09:00:00", - "statusCode": "190", - "statusDescription": "Success", - "statusSubCode": "S001", - "statusSubDescription": "PaymentSuccessFul", - }, - ], - "payPush": - { - "consumerIssuer": "ABN AMRO", - "transactionId": "0000000000000001", - "consumerName": "J. de Vries", - "consumerIBAN": "NL44RABO0123456789", - "consumerBIC": "RABONL2U", - }, - }, - ], - "customer": + examples: + v1: + summary: Order fulfillment v1 + description: Order fulfillment v1 + value: {} + v2: + summary: Order fulfillment v2 + description: Order fulfillment v2 + value: { - "birthname": "Jan", - "surname": "Vries", - "prefix": "de", - "emailAddress": "jandevries@outlook.com", - "dateOfBirth": "1970-01-01", - "addresses": + "orderId": "a0ef57fa-395c-4a03-96e9-234c26dccea9", + "orderNumber": "123456", + "customerProfileId": 1337, + "totalAmount": 121, + "languageId": 1, + "billingAddressId": 1, + "shippingAddressId": 1, + "createdOn": "2024-03-22T09:00:00", + "orderStatusId": 4, + "orderLines": [ { - "addressTypeId": 1, - "street": "Kon. Julianaplein", - "houseNumber": 10, - "houseNumberSuffix": "a", - "postalCode": "2595 AA", - "city": "Den Haag", - "country": "NL", + "orderLineId": "2ba39cae-c401-446b-ae5c-2d6d85b3df1f", + "productId": 1, + "productName": "HTM Maandkorting 20%", + "productCode": "HTM-MND-20", + "productDescription": "HTM Maandkorting 20%", + "taxAmount": 21, + "taxCode": "V21", + "amountExclTax": 100, + "amountInclTax": 121, + "quantity": 1, + "terms": + [ + "generalTermsAndConditions.pdf", + "productTermsAndConditions.pdf", + ], + "createdOn": "2024-03-22T09:00:00", + "validFrom": "2024-03-22T09:00:00", + "validUntil": null, + "orderLineStatusId": 4, + "tokens": + [ + { + "tokenTypeId": 1, + "ovPayTokenId": 1, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 34, + "ovpasNumber": "OV34567", + "verificationCode": "A7H6", + "personalAccountData": + { + "name": "Jan de Vries", + "dateOfBirth": "01-01-1970", + "photoReference": "DSC_0502.JPG", + "fileType": "image/jpg", + "challengeTypeId": 1, + "oneTimePassword": "H5Iiz3JTaQeIV8p", + }, + }, + ], }, ], - }, - } + "payments": + [ + { + "createdOn": "2024-03-22T09:00:00", + "amountDebit": 121, + "paymentMethodId": 1, + "touchPointId": 1, + "isRefund": false, + "htmPaymentReference": "HTM-1234", + "pspPaymentReference": "Buckaroo-1234", + "paymentStatuses": + [ + { + "createdOn": "2024-03-22T09:00:00", + "statusCode": "190", + "statusDescription": "Success", + "statusSubCode": "S001", + "statusSubDescription": "PaymentSuccessFul", + }, + ], + "payPush": + { + "consumerIssuer": "ABN AMRO", + "transactionId": "0000000000000001", + "consumerName": "J. de Vries", + "consumerIBAN": "NL44RABO0123456789", + "consumerBIC": "RABONL2U", + }, + }, + ], + "customer": + { + "birthname": "Jan", + "surname": "Vries", + "prefix": "de", + "emailAddress": "jandevries@outlook.com", + "dateOfBirth": "1970-01-01", + "addresses": + [ + { + "addressTypeId": 1, + "street": "Kon. Julianaplein", + "houseNumber": 10, + "houseNumberSuffix": "a", + "postalCode": "2595 AA", + "city": "Den Haag", + "country": "NL", + }, + ], + }, + } /customers/{customerProfileId}/orders: parameters: - in: path @@ -485,179 +619,94 @@ paths: schema: $ref: "#/components/schemas/unavailable" example: - [ - { - "orderId": "afce35b2-1dff-4ace-98d0-4b9ac405c87d", - "externalOrderId": "bac3958b-804a-43e3-b5f7-0b0fffaae5b7", - "orderNumber": "123456", - "customerProfileId": 42, - "totalAmount": 121, - "touchPointId": 1, - "language": + { + "orders": + [ { - "languageId": 1, - "name": "Nederlands", - "iso639Code": "nl-NL", - "ietfCode": "nl", - }, - "billingAddressId": 1, - "shippingAddressId": 1, - "createdOn": "2024-03-22T09:00:00", - "lastUpdatedOn": "2024-03-22T09:00:00", - "order_OrderStatus": - [ - { - "order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f", - "orderStatus": { "orderStatusId": 4, "name": "paid" }, - "createdOn": "2024-03-22T09:00:00", - "description": "Order succesvol betaald", - }, - { - "order_orderStatusId": "2b9b7943-3a74-4f2e-ad65-012b62c80821", - "orderStatus": - { "orderStatusId": 3, "name": "pendingPayment" }, - "createdOn": "2024-03-22T08:55:00", - "description": "Betaling in behandeling", - }, - ], - "orderLines": - [ - { - "orderLineId": "7a7a9d1a-3fc8-4058-a28b-082860aaa311", - "externalOrderLineId": "f5fddff0-7fbd-4285-bccb-e584f431ea69", - "productId": 1, - "productName": "HTM Maandkorting 20%", - "productCode": "HTM-MND-20", - "productDescription": "HTM Maandkorting 20%", - "taxAmount": 21, - "taxMetadata": - { - "taxMetadataId": "06270769-a263-4325-82d6-f49396f39d03", - "taxCode": "V21", - "taxPercentageAmount": 21, - "description": "21% BTW", - }, - "amountExclTax": 100, - "amountInclTax": 121, - "quantity": 1, - "orderLineTerms": - [ - { - "orderLineTermsId": "fe354db7-12ad-4fc1-bc63-a704c4e0d91e", - "termsUrl": "generalTermsAndConditions.pdf", - }, - ], - "validFrom": "2024-03-22T09:00:00", - "validUntil": "2025-03-22T09:00:00", - "orderLineStatus": - { "orderLineStatusId": 4, "name": "delivered" }, - "createdOn": "2024-03-22T09:00:00", - "lastUpdatedOn": "2024-03-22T09:00:00", - "customerTokens": - [ - { - "customerTokenId": "878ad7c1-cd8f-4bcf-a983-1bd8c6e6975e", - "tokenType": - { "tokenTypeId": 1, "name": "EMV" }, - - "ovPayTokenId": 1, - "serviceReferenceId": "NLOV1234567ABCDEFG", - "amount": 34, - "ovpasNumber": "OV34567", - "verificationCode": "A7H6", - "personalAccountData": - { - "personalAccountDataId": "47db8a40-3238-4bf5-9284-759e3888bd47", - "name": "Jan de Vries", - "dateOfBirth": "01-01-1970", - "photoReference": "DSC_0502.JPG", - "fileType": "image/jpg", - "challengeType": - { "challengeTypeId": 1, "name": "email" }, - "oneTimePassword": "H5Iiz3JTaQeIV8p", - }, - }, - ], - "orderAccountingStatuses": - [ - { - "orderAccountingStatusId": "7c5118d0-8535-4464-9239-83a7ba8fd2db", - "accountingStatus": - { "accountingStatusId": 1, "name": "open" }, - "createdOn": "2024-03-22T09:00:00", - "description": "Financiele transactie voor de FIKO.", - }, - ], - }, - ], - "payments": - [ - { - "paymentId": "3ba4a3c7-0803-4214-800b-365851b8903d", - "createdOn": "2024-03-22T09:00:00", - "amountDebit": 121, - "paymentMethod": - { - "paymentMethodId": 1, - "name": "ideal", - "provider": "Buckaroo", - }, - "touchPointId": 1, - "isRefund": false, - "htmPaymentReference": "HTM-1234", - "pspPaymentReference": "Buckaroo-1234", - "paymentStatuses": - [ - { - "paymentStatusId": 1, - "createdOn": "2024-03-22T09:00:00", - "statusCode": "190", - "statusDescription": "Success", - "statusSubCode": "S001", - "statusSubDescription": "PaymentSuccessFul", - }, - ], - "mandateInput": - { - "mandateInputId": "0a875e67-dc9f-4825-a030-d732a2adbfbc", - "directDebitMandateType": - { - "directDebitMandateTypeId": 1, - "name": "import", - }, - "createdOn": "2024-03-22T09:00:00", - "bic": "RABONL2U", - "iban": "NL44RABO0123456789", - "ascription": "J. de Vries", - "place": "Den Haag", - }, - }, - ], - "orderCustomer": - { - "orderCustomerId": "19ef6882-8eda-43bf-b48e-9b4ff8745a50", - "birthname": "Jan", - "surname": "Vries", - "prefix": "de", - "emailAddress": "jandevries@outlook.com", - "dateOfBirth": "1970-01-01", - "orderCustomerAddresses": + "orderId": "afce35b2-1dff-4ace-98d0-4b9ac405c87d", + "externalOrderId": "bac3958b-804a-43e3-b5f7-0b0fffaae5b7", + "orderNumber": "123456", + "customerProfileId": 42, + "totalAmount": 121, + "touchPoint": + { + "salesTouchpointId": 3, + "name": "Website (Perplex)", + "isActive": true, + "retailerId": 1001, + }, + "language": + { + "languageId": 1, + "name": "Nederlands", + "iso639Code": "nl-NL", + "ietfCode": "nl", + }, + "billingAddressId": 1, + "shippingAddressId": 1, + "createdOn": "2024-03-22T09:00:00", + "lastUpdatedOn": "2024-03-22T09:00:00", + "order_OrderStatus": + { + "order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f", + "orderStatus": + { "orderStatusId": 4, "name": "paid" }, + "createdOn": "2024-03-22T09:00:00", + "description": "Order succesvol betaald", + }, + "payments": [ { - "orderCustomerAddressId": "aa50047c-58ac-4f15-9448-ee000dfc6893", - "addressType": - { "addressTypeId": 1, "name": "Billing" }, - "street": "Kon. Julianaplein", - "houseNumber": 10, - "houseNumberSuffix": "a", - "postalCode": "2595 AA", - "city": "Den Haag", - "country": "NL", + "createdOn": "2024-03-22T09:00:00", + "amountDebit": 121, + "paymentMethodId": 1, + "touchPointId": 1, + "isRefund": false, + "htmPaymentReference": "HTM-1234", + "pspPaymentReference": "Buckaroo-1234", + "paymentStatuses": + [ + { + "createdOn": "2024-03-22T09:00:00", + "statusCode": "190", + "statusDescription": "Success", + "statusSubCode": "S001", + "statusSubDescription": "PaymentSuccessFul", + }, + ], + "mandateInput": + { + "directDebitMandateTypeId": 1, + "createdOn": "2024-03-22T09:00:00", + "bic": "RABONL2U", + "iban": "NL44RABO0123456789", + "ascription": "J. de Vries", + "place": "Den Haag", + }, }, ], + "_links": + { + "self": + { + "href": "https://api.example.com/items/1", + "method": "GET", + "templated": true, + }, + }, }, - }, - ] + ], + "_links": + { + "self": + { + "href": "https://api.example.com/items", + "method": "GET", + "templated": true, + }, + }, + "href": "string", + } /orders: parameters: - in: header @@ -681,7 +730,13 @@ paths: "externalOrderId": null, "customerProfileId": 1337, "totalAmount": 121, - "touchPointId": 1, + "touchPoint": + { + "salesTouchpointId": 3, + "name": "Website (Perplex)", + "isActive": true, + "retailerId": 1001, + }, "languageId": 1, "billingAddressId": 1, "shippingAddressId": 1, @@ -1036,7 +1091,7 @@ paths: example: { "orderId": "1e441d7d-50d6-4006-aca7-5e87e2f218df", - "orderNumber": "ORD-123456" + "orderNumber": "ORD-123456", } delete: tags: diff --git a/src/openapi/products/products-crud-v2.2.yaml b/src/openapi/products/products-crud-v2.2.yaml index d73bc24..0f69225 100644 --- a/src/openapi/products/products-crud-v2.2.yaml +++ b/src/openapi/products/products-crud-v2.2.yaml @@ -59,6 +59,12 @@ paths: "isTravelProduct": true, "name": "Kortingsabonnement" }, + "tokenTypes": [ + { + "tokenTypeId": 1, + "name": "EMV" + } + ], "sellableTouchPointIds": null, "amountInclTax": null, "imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg", @@ -83,6 +89,7 @@ paths: "isTravelProduct": false, "name": "Barcode" }, + "tokenTypes": null, "sellableTouchPointIds": [ 1, 2, @@ -112,6 +119,7 @@ paths: "isTravelProduct": false, "name": "Barcode" }, + "tokenTypes": null, "sellableTouchPointIds": [ 3, 4 @@ -139,6 +147,12 @@ paths: "isTravelProduct": true, "name": "Kortingsabonnement" }, + "tokenTypes": [ + { + "tokenTypeId": 1, + "name": "EMV" + } + ], "sellableTouchPointIds": null, "amountInclTax": null, "imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg", @@ -154,6 +168,7 @@ paths: "isTravelProduct": false, "name": "Barcode" }, + "tokenTypes": null, "sellableTouchPointIds": [ 1, 2, @@ -174,6 +189,12 @@ paths: "isTravelProduct": true, "name": "Kortingsabonnement" }, + "tokenTypes": [ + { + "tokenTypeId": 1, + "name": "EMV" + } + ], "sellableTouchPointIds": [ 1, 2 @@ -192,6 +213,12 @@ paths: "isTravelProduct": true, "name": "Kortingsabonnement" }, + "tokenTypes": [ + { + "tokenTypeId": 1, + "name": "EMV" + } + ], "sellableTouchPointIds": [ 3, 4 @@ -219,6 +246,7 @@ paths: "isTravelProduct": false, "name": "Barcode" }, + "tokenTypes": null, "sellableTouchPointIds": [ 3, 4 @@ -237,6 +265,12 @@ paths: "isTravelProduct": true, "name": "Kortingsabonnement" }, + "tokenTypes": [ + { + "tokenTypeId": 1, + "name": "EMV" + } + ], "sellableTouchPointIds": [ 3, 4 @@ -2074,6 +2108,20 @@ components: name: type: string example: Kortingsabonnement + tokenTypes: + type: array + items: + type: object + required: + - tokenTypeId + - name + properties: + tokenTypeId: + type: integer + example: 1 + name: + type: string + example: EMV sellableTouchPointIds: type: array items: diff --git a/src/openapi/util/util-crud.yaml b/src/openapi/util/util-crud.yaml index bb881b2..ddf015c 100644 --- a/src/openapi/util/util-crud.yaml +++ b/src/openapi/util/util-crud.yaml @@ -86,6 +86,20 @@ paths: example: 65ad5520-4e62-41b7-89dd-a01be6cb78bf required: false description: Pointer to executor of this action (e.g. the batch job). + - in: query + name: role + schema: + type: string + example: customer + required: false + description: Role of the user or process that initiated the action. + - in: query + name: user + schema: + type: string + example: 1255ab39-2f10-409a-bf61-38c07e1b8a9e + required: false + description: User that initiated the action. In case of a customer this is the customer id. - in: query name: resourceName schema: @@ -123,6 +137,8 @@ paths: "created": "2024-07-02 15:01:00.000", "updated": "2024-07-02 15:01:00.000", "correlationId": "fb4443c6-5a6a-47a3-adf0-db3dfc183399", + "role": "customer", + "user": "1255ab39-2f10-409a-bf61-38c07e1b8a9e", "scheduledActionResources": [ { @@ -157,6 +173,8 @@ paths: "created": "2024-07-02 15:01:00.000", "updated": "2024-07-02 15:01:00.000", "correlationId": "fb4443c6-5a6a-47a3-adf0-db3dfc183399", + "role": "customer", + "user": "1255ab39-2f10-409a-bf61-38c07e1b8a9e", "scheduledActionResources": [ { @@ -217,6 +235,8 @@ paths: "created": "2024-07-02 15:01:00.000", "updated": "2024-07-02 15:01:00.000", "correlationId": "fb4443c6-5a6a-47a3-adf0-db3dfc183399", + "role": "customer", + "user": "1255ab39-2f10-409a-bf61-38c07e1b8a9e", "scheduledActionResources": [ { @@ -390,6 +410,12 @@ components: type: string format: uuid example: 8699d72a-cf4d-4e6b-9e9c-549d837ca51f + role: + type: string + example: customer + user: + type: string + example: 1255ab39-2f10-409a-bf61-38c07e1b8a9e ScheduledActionType: type: object properties: