diff --git a/src/openapi/contracts/contracts-se.yaml b/src/openapi/contracts/contracts-se.yaml index b6d636d..424821d 100644 --- a/src/openapi/contracts/contracts-se.yaml +++ b/src/openapi/contracts/contracts-se.yaml @@ -27,58 +27,65 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - [ - { - "contractId": "5a3876a1-e9a1-4278-8983-4679a8d583c2", - "contractNumber": "D123456", - "customerProfileId": 42, - "orderId": "eb3d08f7-7feb-4f31-9f5b-daa634e51f48", - "orderLineId": "52efbbfc-8c28-4016-9ece-dc3ef9a70bd8", - "touchpointId": 2, - "contractStatus": - { "contractStatusId": 2, "name": "active" }, - "productId": 1, - "productName": "HTM Maand 20% korting", - "termDuration": "P0Y1M0D", - "billingDay": 15, - "highestInvoiceTerm": 1, - "created": "2024-08-01 15:01:00.000", - "ovPayTokenId": 1337, - "_links": + examples: + List all contracts for a single customer profile: + summary: List all contracts for a single customer profile + description: | + List all contracts for single customer profile with customer + number 'D123456'. + value: + [ { - "get_token": + "contractId": "5a3876a1-e9a1-4278-8983-4679a8d583c2", + "contractNumber": "D123456", + "customerProfileId": 42, + "orderId": "eb3d08f7-7feb-4f31-9f5b-daa634e51f48", + "orderLineId": "52efbbfc-8c28-4016-9ece-dc3ef9a70bd8", + "touchpointId": 2, + "contractStatus": + { "contractStatusId": 2, "name": "active" }, + "productId": 1, + "productName": "HTM Maand 20% korting", + "termDuration": "P0Y1M0D", + "billingDay": 15, + "highestInvoiceTerm": 1, + "created": "2024-08-01 15:01:00.000", + "ovPayTokenId": 1337, + "_links": { - "href": "https://api.integratielaag.nl/abt/touchpoint/1.0/tokens?ovPayTokenId=1337", - "method": "GET", + "get_token": + { + "href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/tokens?ovPayTokenId=1337", + "method": "GET", + }, }, }, - }, - { - "contractId": "f07253e6-c364-474c-a342-a10a4a7cf305", - "contractNumber": "D123456", - "customerProfileId": 42, - "orderId": "945d43e6-516e-425b-8847-9aba41289acd", - "orderLineId": "42f68042-908f-41f4-9d9b-4cab843ff0e8", - "touchpointId": 2, - "contractStatus": { "contractStatusId": 1, "name": "new" }, - "productId": 1, - "productName": "HTM Maand 20% korting", - "termDuration": "P0Y1M0D", - "billingDay": 15, - "highestInvoiceTerm": 1, - "created": "2024-08-01 15:01:00.000", - "ovPayTokenId": 1338, - "_links": { - "get_token": + "contractId": "f07253e6-c364-474c-a342-a10a4a7cf305", + "contractNumber": "D123456", + "customerProfileId": 42, + "orderId": "945d43e6-516e-425b-8847-9aba41289acd", + "orderLineId": "42f68042-908f-41f4-9d9b-4cab843ff0e8", + "touchpointId": 2, + "contractStatus": + { "contractStatusId": 1, "name": "new" }, + "productId": 1, + "productName": "HTM Maand 20% korting", + "termDuration": "P0Y1M0D", + "billingDay": 15, + "highestInvoiceTerm": 1, + "created": "2024-08-01 15:01:00.000", + "ovPayTokenId": 1338, + "_links": { - "href": "https://api.integratielaag.nl/abt/touchpoint/1.0/tokens?ovPayTokenId=1338", - "method": "GET", + "get_token": + { + "href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/tokens?ovPayTokenId=1338", + "method": "GET", + }, }, }, - }, - ] + ] /customers/contracts/{contractId}: parameters: - in: header @@ -130,84 +137,93 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - { - "contractId": "5a3876a1-e9a1-4278-8983-4679a8d583c2", - "contractNumber": "D123456", - "customerProfileId": 42, - "orderId": "eb3d08f7-7feb-4f31-9f5b-daa634e51f48", - "orderLineId": "52efbbfc-8c28-4016-9ece-dc3ef9a70bd8", - "touchpointId": 2, - "contractStatus": { "contractStatusId": 2, "name": "active" }, - "productId": 1, - "productName": "HTM Maand 20% korting", - "termDuration": "P0Y1M0D", - "billingDay": 15, - "highestInvoiceTerm": 1, - "ovPayTokenId": 1337, - "contractVersions": - [ - { - "contractVersionId": 1, - "termsAndConditions": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-maandkorting/", - "termAmountExclTax": 1200, - "taxCode": "V21", - "taxAmount": 108, - "termAmountInclTax": 1308, - "start": "2024-07-04 15:01:00.000", - "end": "2024-12-31 15:01:00.000", - }, - { - "contractVersionId": 2, - "termsAndConditions": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-maandkorting/", - "termAmountExclTax": 1300, - "taxCode": "V21", - "taxAmount": 117, - "termAmountInclTax": 1417, - "start": "2025-01-01 15:01:00.000", - }, - ], - "contractActions": - [ - { - "contractActionId": "67687851-59dd-4bbc-aa74-0f7abd26c883", - "actionType": { "actionTypeId": 1, "name": "create" }, - "user": "subid123456", - "timestamp": "2024-07-02 15:01:00.000", - "details": "Contract created", - "correlationId": "976e7a4c-bf24-43d2-b444-55817556e7ee", - }, - { - "contractActionId": "ea9ad287-9cd3-4e76-bcb9-d71db551cf55", - "actionType": { "actionTypeId": 2, "name": "change" }, - "user": "subid123456", - "timestamp": "2024-07-03 15:01:00.000", - "details": "Contract changed", - "correlationId": "e2462347-6749-4841-b42a-cf8de19ec727", - }, - ], - "contractInvoices": - [ - { - "contractInvoiceId": "8699d72a-cf4d-4e6b-9e9c-549d837ca51f", - "externalReference": "F2024-0001", - "term": 1, - "created": "2024-07-02 15:01:00.000", - "updated": "2024-07-02 15:01:00.000", - "state": "invoice_created", - "data": "{json}", - "isCredit": false, - }, - ], - "_links": + examples: + Full contract details of a single contract: + summary: Full contract details of a single contract + description: | + Full contract details of a single contract with contract + number 'D123456'. + value: { - "get_token": + "contractId": "5a3876a1-e9a1-4278-8983-4679a8d583c2", + "contractNumber": "D123456", + "customerProfileId": 42, + "orderId": "eb3d08f7-7feb-4f31-9f5b-daa634e51f48", + "orderLineId": "52efbbfc-8c28-4016-9ece-dc3ef9a70bd8", + "touchpointId": 2, + "contractStatus": + { "contractStatusId": 2, "name": "active" }, + "productId": 1, + "productName": "HTM Maand 20% korting", + "termDuration": "P0Y1M0D", + "billingDay": 15, + "highestInvoiceTerm": 1, + "ovPayTokenId": 1337, + "contractVersions": + [ + { + "contractVersionId": 1, + "termsAndConditions": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-maandkorting/", + "termAmountExclTax": 1200, + "taxCode": "V21", + "taxAmount": 108, + "termAmountInclTax": 1308, + "start": "2024-07-04 15:01:00.000", + "end": "2024-12-31 15:01:00.000", + }, + { + "contractVersionId": 2, + "termsAndConditions": "https://www.htm.nl/reisproducten/productvoorwaarden/htm-maandkorting/", + "termAmountExclTax": 1300, + "taxCode": "V21", + "taxAmount": 117, + "termAmountInclTax": 1417, + "start": "2025-01-01 15:01:00.000", + }, + ], + "contractActions": + [ + { + "contractActionId": "67687851-59dd-4bbc-aa74-0f7abd26c883", + "actionType": + { "actionTypeId": 1, "name": "create" }, + "user": "subid123456", + "timestamp": "2024-07-02 15:01:00.000", + "details": "Contract created", + "correlationId": "976e7a4c-bf24-43d2-b444-55817556e7ee", + }, + { + "contractActionId": "ea9ad287-9cd3-4e76-bcb9-d71db551cf55", + "actionType": + { "actionTypeId": 2, "name": "change" }, + "user": "subid123456", + "timestamp": "2024-07-03 15:01:00.000", + "details": "Contract changed", + "correlationId": "e2462347-6749-4841-b42a-cf8de19ec727", + }, + ], + "contractInvoices": + [ + { + "contractInvoiceId": "8699d72a-cf4d-4e6b-9e9c-549d837ca51f", + "externalReference": "F2024-0001", + "term": 1, + "created": "2024-07-02 15:01:00.000", + "updated": "2024-07-02 15:01:00.000", + "state": "invoice_created", + "data": "{json}", + "isCredit": false, + }, + ], + "_links": { - "href": "https://api.integratielaag.nl/abt/touchpoint/1.0/tokens?ovPayTokenId=1337", - "method": "GET", + "get_token": + { + "href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/tokens?ovPayTokenId=1337", + "method": "GET", + }, }, - }, - } + } /customers/contracts/{contractId}/invoices: parameters: - in: header @@ -237,31 +253,37 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - [ - { - "contractInvoiceId": "8699d72a-cf4d-4e6b-9e9c-549d837ca51f", - "contractId": "9e224750-3065-471d-af57-85b9cffa7c89", - "externalReference": "F2024-0001", - "term": 1, - "created": "2024-07-02 15:01:34.000", - "updated": "2024-07-04 00:04:56.000", - "state": "invoice_created", - "public_link": "http://mijnfactuurinzien.nl/F2024-0001", - "isCredit": false, - }, - { - "contractInvoiceId": "0e729101-2c84-44db-8b18-d8f759e968e0", - "contractId": "9e224750-3065-471d-af57-85b9cffa7c89", - "externalReference": "F2024-0002", - "term": 2, - "created": "2024-08-02 15:01:34.000", - "updated": "2024-08-04 00:04:56.000", - "state": "invoice_created", - "public_link": "http://mijnfactuurinzien.nl/F2024-0002", - "isCredit": false, - }, - ] + examples: + Get all invoices of a single contract: + summary: Get all invoices of a single contract + description: | + Get all invoices of a single contract with contract number + 'D123456'. + value: + [ + { + "contractInvoiceId": "8699d72a-cf4d-4e6b-9e9c-549d837ca51f", + "contractId": "9e224750-3065-471d-af57-85b9cffa7c89", + "externalReference": "F2024-0001", + "term": 1, + "created": "2024-07-02 15:01:34.000", + "updated": "2024-07-04 00:04:56.000", + "state": "invoice_created", + "public_link": "http://mijnfactuurinzien.nl/F2024-0001", + "isCredit": false, + }, + { + "contractInvoiceId": "0e729101-2c84-44db-8b18-d8f759e968e0", + "contractId": "9e224750-3065-471d-af57-85b9cffa7c89", + "externalReference": "F2024-0002", + "term": 2, + "created": "2024-08-02 15:01:34.000", + "updated": "2024-08-04 00:04:56.000", + "state": "invoice_created", + "public_link": "http://mijnfactuurinzien.nl/F2024-0002", + "isCredit": false, + }, + ] /contracts/{contractId}/cancellationmoments: parameters: - in: header @@ -291,14 +313,19 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - { - "cancellationMoment": "termBound", - "termDuration": "P1M", - "billingDay": 18, - "cancellationFrom": "2024-08-10T00:00:00", - "cancellationUntil": "2026-08-10T00:00:00", - } + examples: + All cancellation moments of a term bound contract: + summary: All cancellation moments of a term bound contract + description: | + All cancellation moments of a term bound contract. + value: + { + "cancellationMoment": "termBound", + "termDuration": "P1M", + "billingDay": 18, + "cancellationFrom": "2024-08-10T00:00:00", + "cancellationUntil": "2026-08-10T00:00:00", + } /contracts/{contractId}/cancellationvalidation: parameters: - in: header @@ -327,7 +354,12 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: { "end": "2024-08-10T00:00:00" } + examples: + Validate a cancellation of a given end date: + summary: Validate a cancellation of a given end date + description: | + Validate a cancellation of a given end date. + value: { "end": "2024-08-10T00:00:00" } responses: "200": description: OK @@ -335,14 +367,32 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - { - "validationResult": "true", - "validationMessage": "", - "end": "2024-08-10T03:59:59", - "refundAmount": "2489", - "refundMethods": ["creditInvoice", "iDeal"], - } + examples: + Successfully validated cancellation: + summary: Successfully validated cancellation + description: | + Successfully validated a cancellation. The response contains + the refund amount and refund methods. + value: + { + "validationResult": true, + "validationMessage": "", + "end": "2024-08-10T03:59:59", + "refundAmount": 2489, + "refundMethods": ["creditInvoice", "iDeal"], + } + Unsuccesful validation: + summary: Unsuccesful validation + description: | + Unsuccesful validation. The response contains the error message. + value: + { + "validationResult": false, + "validationMessage": "Cancellation end date not allowed", + "end": null, + "refundAmount": null, + "refundMethods": [], + } /contracts/{contractId}/cancellation: parameters: - in: header @@ -371,8 +421,13 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - { "end": "2024-08-10T00:00:00", "refundMethod": "creditInvoice" } + examples: + Cancellation request for credit invoice: + summary: Cancellation request for credit invoice + description: | + Cancellation request for credit invoice. + value: + { "end": "2024-08-10T00:00:00", "refundMethod": "creditInvoice" } responses: "200": description: OK @@ -380,12 +435,18 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - { - "end": "2024-08-10T03:59:59", - "refundAmount": "2489", - "refundMethod": "creditInvoice", - } + examples: + Successfully cancelled contract: + summary: Successfully cancelled contract + description: | + Successfully cancelled a contract. The response contains + the refund amount and refund method. + value: + { + "end": "2024-08-10T03:59:59", + "refundAmount": 2489, + "refundMethod": "creditInvoice", + } components: securitySchemes: bearerToken: