diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 27bf74d..acd9d10 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -7,107 +7,6 @@ servers: - url: https://api.integratielaag.nl/abt/abtcustomers/2.0 paths: /customers: - post: - tags: - - Customer - summary: Create a customer profile - description: >- - Create a customer profile in the ABT database with status ACTIVE and - debtorStatus Inactive with a start date based on the timestamp of this - post call. - - - Requested format for postal code: - - 0000AA - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/postCustomerProfile" - examples: - minimumProfile: - value: {} - basicCustomerProfile: - value: - debtorStatusId: 2 - person: - birthname: Jan - surname: Jansen - emailAddress: j.jansen@hatseflats.nl - fullCustomerProfile: - value: - customerPreference: - languageId: 1 - debtorStatusId: 2 - person: - birthname: Jan - surname: Jansen - prefix: dhr - suffix: jr - dateOfBirth: "1970-01-01" - emailAddress: j.jansen@hatseflats.nl - addresses: - - street: Laan van Meerdervoort - houseNumber: 5 - houseNumberSuffix: B - postalCode: 2500AA - city: Den Haag - country: NL - isPreferred: true - addressTypeId: 1 - - street: Beeklaan - houseNumber: 30 - houseNumberSuffix: B - postalCode: 2500AA - city: Den Haag - country: NL - isPreferred: false - addressTypeId: 2 - phones: - - number: "6123456789" - countryCode: "+31" - phoneTypeId: 1 - isPreferred: true - - number: "7012345678" - countryCode: "+31" - phoneTypeId: 2 - isPreferred: false - required: true - responses: - 201: - description: Successful created a customer profile - content: - application/json: - schema: - $ref: "#/components/schemas/postCustomerProfileResponse" - examples: - customerProfileCreated: - summary: customerProfileCreated - description: >- - Successfully created a customer profile - value: - customerProfileId: 1 - customerNumber: 1000001 - 400: - description: Bad Request - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - examples: - invalidDataTypeError: - summary: invalidDataTypeError - description: >- - The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). - value: - type: https://htm.nl/api/v1/probs/bad-request - title: Your request contains an invalid datatype - detail: '''2023-02-01 00:00:00'' is not a valid Datetime' - instance: urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b - security: - - default: [] - x-auth-type: Application & Application User - x-throttling-tier: Unlimited get: tags: - Customer @@ -275,7 +174,16 @@ paths: in: query schema: type: string - example: Mijn ING bankrekening + example: Mijn ING bankrekening + - name: offset + in: query + schema: + type: integer + - name: limit + in: query + schema: + type: integer + example: 20 responses: 200: description: Ok @@ -399,9 +307,16 @@ paths: user: user timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - - customerProfileId: 2 + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", + "method": "GET" + } + } + - customerProfileId: 12 customerNumber: 1000002 - debtorNumber: TEST001 + debtorNumber: DB100121 debtorStatus: debtorStatusId: 1 name: Inactive @@ -518,7 +433,28 @@ paths: user: user timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - href: null + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=12", + "method": "GET" + } + } + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?offset=20", + "method": "GET" + }, + "prev":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers", + "method": "GET" + }, + "next":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?offset=40", + "method": "GET" + } + } getCustomerActive: summary: getCustomerActive description: >- @@ -634,7 +570,20 @@ paths: user: user timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - href: null + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", + "method": "GET" + } + } + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers", + "method": "GET" + } + } getCustomerBlocked: summary: getCustomerBlocked description: >- @@ -755,7 +704,20 @@ paths: user: user timestamp: "2023-10-20T17:05:52.000+02:00" correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95 - href: null + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers?customerProfileId=1", + "method": "GET" + } + } + _links: + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/customers", + "method": "GET" + } + } 400: description: Bad Request content: @@ -776,6 +738,107 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited + post: + tags: + - Customer + summary: Create a customer profile + description: >- + Create a customer profile in the ABT database with status ACTIVE and + debtorStatus Inactive with a start date based on the timestamp of this + post call. + + - Requested format for postal code: + - 0000AA + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/postCustomerProfile" + examples: + minimumProfile: + value: {} + basicCustomerProfile: + value: + debtorStatusId: 2 + person: + birthname: Jan + surname: Jansen + emailAddress: j.jansen@hatseflats.nl + fullCustomerProfile: + value: + customerPreference: + languageId: 1 + debtorStatusId: 2 + person: + birthname: Jan + surname: Jansen + prefix: dhr + suffix: jr + dateOfBirth: "1970-01-01" + emailAddress: j.jansen@hatseflats.nl + addresses: + - street: Laan van Meerdervoort + houseNumber: 5 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: true + addressTypeId: 1 + - street: Beeklaan + houseNumber: 30 + houseNumberSuffix: B + postalCode: 2500AA + city: Den Haag + country: NL + isPreferred: false + addressTypeId: 2 + phones: + - number: "6123456789" + countryCode: "+31" + phoneTypeId: 1 + isPreferred: true + - number: "7012345678" + countryCode: "+31" + phoneTypeId: 2 + isPreferred: false + required: true + responses: + 201: + description: Successful created a customer profile + content: + application/json: + schema: + $ref: "#/components/schemas/postCustomerProfileResponse" + examples: + customerProfileCreated: + summary: customerProfileCreated + description: >- + Successfully created a customer profile + value: + customerProfileId: 1 + customerNumber: 1000001 + 400: + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + invalidDataTypeError: + summary: invalidDataTypeError + description: >- + The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + value: + type: https://htm.nl/api/v1/probs/bad-request + title: Your request contains an invalid datatype + detail: '''2023-02-01 00:00:00'' is not a valid Datetime' + instance: urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b + security: + - default: [] + x-auth-type: Application & Application User + x-throttling-tier: Unlimited /customers/{customerProfileId}: patch: tags: @@ -811,7 +874,7 @@ paths: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited - /customers/{customerProfileId}/customerStatus: + /customers/{customerProfileId}/customerStatusInstances: post: tags: - Customer @@ -1214,6 +1277,15 @@ paths: example: 12 required: false description: The id of the token that replaced this token. + - name: offset + in: query + schema: + type: integer + - name: limit + in: query + schema: + type: integer + example: 20 responses: 200: description: OK @@ -1239,8 +1311,22 @@ paths: "expirationDate": "2029-03-22T09:00:00", "replacedByTokenId": 12, }, - ], - "href": null, + ], + "_links": + { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/ovPayTokens?offset=20", + "method": "GET" + }, + "prev":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/ovPayTokens", + "method": "GET" + }, + "next":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/ovPayTokens?offset=40", + "method": "GET" + } + } } /customers/{customerProfileId}/ovpaytokens: post: @@ -1501,6 +1587,15 @@ paths: schema: type: integer example: 1 + - name: offset + in: query + schema: + type: integer + - name: limit + in: query + schema: + type: integer + example: 20 responses: 200: description: OK @@ -1779,6 +1874,15 @@ paths: example: 2020-01-01T00:00:00 required: false description: Filter on updated after. + - name: offset + in: query + schema: + type: integer + - name: limit + in: query + schema: + type: integer + example: 20 responses: 200: description: OK @@ -1786,25 +1890,75 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - [ - { - "directDebitMandateId": 71, - "customerProfileId": 12, - "billingInformationId": 51, - "directDebitMandateType": - { - "directDebitMandateTypeId": 1, - "name": "import", - "description": "import", - }, - "mandateAddressId": 21, - "created": "2024-03-22T08:55:00", - "mandateReference": "CORE01", - "mandateState": "SINGED", - "updateTimestamp": "2024-03-22T08:55:00", - }, - ] + examples: + getDirectDebitMandateWithNextPage: + value: + { + "directDebitMandates": [ + { + "directDebitMandateId": 71, + "customerProfileId": 12, + "billingInformationId": 51, + "directDebitMandateType": + { + "directDebitMandateTypeId": 1, + "name": "import", + "description": "import", + }, + "mandateAddressId": 21, + "created": "2024-03-22T08:55:00", + "mandateReference": "CORE01", + "mandateState": "SINGED", + "updateTimestamp": "2024-03-22T08:55:00", + } + ], + "_links": { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates", + "method": "GET" + }, + "next":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=20", + "method": "GET" + } + } + } + getDirectDebitMandateWithNextPageandPreviousPage: + value: + { + "directDebitMandates": [ + { + "directDebitMandateId": 71, + "customerProfileId": 12, + "billingInformationId": 51, + "directDebitMandateType": + { + "directDebitMandateTypeId": 1, + "name": "import", + "description": "import", + }, + "mandateAddressId": 21, + "created": "2024-03-22T08:55:00", + "mandateReference": "CORE01", + "mandateState": "SINGED", + "updateTimestamp": "2024-03-22T08:55:00", + } + ], + "_links": { + "self":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=20", + "method": "GET" + }, + "prev":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates", + "method": "GET" + }, + "next":{ + "href": "https://api.integratielaag.nl/abt/abtcustomers/2.0/directdebitmandates?offset=40", + "method": "GET" + } + } + } /billingInformation/{billingInformationId}/directdebitmandates: post: tags: