From 51386625566cb707404cd9a648fd605480bb0a1d Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Thu, 27 Mar 2025 16:14:55 +0100 Subject: [PATCH 01/10] first version --- src/openapi/customers/SE-customers.yaml | 867 +++++++++++++++++++++++- 1 file changed, 836 insertions(+), 31 deletions(-) diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index 7238481..04494cf 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -4,11 +4,11 @@ info: description: >- Service Engine APIs for HTM Customers. These are NOT the CRUD APIs to access raw data in the database. To be used by touchpoints to get information about HTM customers. - version: 'x.x' + version: '1.0' servers: - - url: https://api.integratielaag.nl/abt/serviceengine/customers/x.x + - url: https://api.integratielaag.nl/v1/touchpoint tags: - - name: ServiceEngine Customers + - name: Customers description: >- Service Engine APIs for HTM Customers. These are NOT the CRUD APIs to access raw data in the database. To be used by touchpoints to get information about HTM customers. @@ -16,7 +16,7 @@ paths: /customers: get: tags: - - ServiceEngine Customers + - Customers summary: Get a single customer profile based on search parameters description: Get a single customer profile based on search parameters. Only returns a profile if a single result matches the parameters; when multiple results are found, additional seach parameters are required to disambiguate. parameters: @@ -145,7 +145,7 @@ paths: application/json: example: { - "type": "https://api.integratielaag.nl/abt/serviceengine/x.x/customers", + "type": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers", "apiErrorCode": "400.1", "title": "Niet gevonden", "detail": "Klant niet gevonden", @@ -162,7 +162,7 @@ paths: application/json: example: { - "type": "https://api.integratielaag.nl/abt/serviceengine/x.x/customers", + "type": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers", "apiErrorCode": "409.1", "title": "Meer dan 1 klantprofiel gevonden", "detail": "Meer dan 1 klantprofiel gevonden. Verfijn je zoekcriteria.", @@ -171,16 +171,819 @@ paths: /customers/tokens: get: tags: - - ServiceEngine Customers - summary: Get a list of all OvPayTokens for a certain customer - description: Get a list of all OvPayTokens for a certain customer. + - Customers + parameters: + - name: X-HTM-JWT-AUTH-HEADER + in: header + schema: + type: string + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c + required: false + description: The JWT of a customer in case of touchpoint were customer logs in themselves + - name: X-HTM-CUSTOMER-PROFILE-ID-HEADER + in: header + schema: + type: string + example: feaaef83-a551-4283-8419-340b1ada3b55 + required: false + description: The customerProfileId of a customer in the case of the SMP + - name: X-HTM-ROLE-HEADER + in: header + schema: + type: string + example: Customer + required: false + description: The role of the HTM employee in the case of the SMP + - name: ovpayTokenId + in: query + schema: + type: integer + example: 1 + required: false + description: The ovpaytoken id of a specific customer token + - name: tokenTypeId + in: query + schema: + type: array + items: + type: integer + explode: false + description: Filter on tokentype. 1 = EMV, 2 = OV-pas physical, 3 = OV-pas digital + required: false + - name: xTat + in: query + schema: + type: string + example: 4c2d60e2-cd03-4c80-ae70-573a301f0bff + required: false + description: Filter on the xTat of a customer token + - name: xBot + in: query + schema: + type: string + example: 91641b54-056c-49ea-b598-ccde81d6c45a + required: false + description: Filter on the xBot of a customer token + - name: ovPasNumber + in: query + schema: + type: string + example: 56HYRTL + required: false + description: Filter on the ovPasNumber of a customer token of type OV Pas + - name: lastDigits + in: query + schema: + type: string + example: 1234 + required: false + description: Filter on the last digits of a customer token of type EMV + - name: tokenStatusId + in: query + schema: + type: array + items: + type: integer + explode: false + description: Filter on token status. 1 = Expired, 2 = Active, 3 = Replaced, 4 = Inactive, 5 = Suspended, 6 = Removed by customer + required: false + - name: expirationDate + in: query + schema: + type: string + format: date-time + example: 2027-01-01T09:00:00Z + required: false + description: Filter on the expirationDate of a customer token + - name: replaceByTokenId + in: query + schema: + type: integer + example: 2 + required: false + description: Filter on the replaceByTokenId of a customer token + summary: Get a list of all OvPayTokens for a certain customer. + description: Get a list of all OvPayTokens for a certain customer, only returns the tokens for an identified customer through JWT or customerProfileId in the headers. responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/OvPayTokensResponse' + $ref: "#/components/schemas/unavailable" + examples: + EMV without PAD: + summary: EMV without PAD + description: EMV without PAD + value: + { + "ovPayTokens": [ + { + "ovPayTokenId": 1, + "tokenType": { + "tokenTypeId": 1, + "name": "EMV" + }, + "alias": "MyToken", + "tokenStatus": { + "tokenStatusId": 1, + "name": "Active" + }, + "expirationDate": "2023-02-01", + "replacedByTokenId": 2, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData":{ + "name": null, + "birthDate": null, + "photo": null + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips", + "method": "GET" + }, + "create_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/tokenPersonalizations?ovpaytokenId=1", + "method": "POST" + } + } + } + ] + } + OVPAS without PAD: + summary: OVPAS without PAD + description: OVPAS without PAD + value: + { + "ovPayTokens": [ + { + "ovPayTokenId": 1, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, + "alias": "MyToken", + "tokenStatus": { + "tokenStatusId": 1, + "name": "Active" + }, + "expirationDate": "2023-02-01", + "replacedByTokenId": 2, + "autoReloadRegistration": null, + "ePurse": { + "e-PurseBalance": { + "currency": "EUR", + "amount": 350 + }, + "status": "ACTIVE", + "originDate": "2019-07-16T11:00:00+02:00" + }, + "personalAccountData":{ + "name": null, + "birthDate": null, + "photo": null + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips", + "method": "GET" + }, + "create_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "method": "POST" + } + } + } + ] + } + OVPAS with PAD: + summary: OVPAS with PAD + description: OVPAS with PAD + value: + { + "ovPayTokens": [ + { + "ovPayTokenId": 1, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, + "alias": "MyToken", + "tokenStatus": { + "tokenStatusId": 1, + "name": "Active" + }, + "expirationDate": "2023-02-01", + "replacedByTokenId": 2, + "autoReloadRegistration": { + "autoReloadAmount": 500, + "retailerReferenceId": "abc", + "arrit": "425f7fc2-1103-4822-9c79-7c4aaa2fb6aa", + "autoReloadRegistrationStatus": "ACTIVE", + "autoReloadRegistrationStartDateTime": "2024-06-02T15:03:46Z" + }, + "ePurse": { + "e-PurseBalance": { + "currency": "EUR", + "amount": 350 + }, + "status": "ACTIVE", + "originDate": "2019-07-16T11:00:00+02:00" + }, + "personalAccountData":{ + "name": { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2019-08-24T14:15:22Z" + }, + "birthDate": { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2019-08-24T14:15:22Z" + }, + "photo": { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2019-08-24T14:15:22Z" + } + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips", + "method": "GET" + }, + "update_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "method": "PUT" + } + } + } + ] + } + OVPAS with partial PAD: + summary: OVPAS with partial PAD + description: OVPAS with partial PAD + value: + { + "ovPayTokens": [ + { + "ovPayTokenId": 1, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, + "alias": "MyToken", + "tokenStatus": { + "tokenStatusId": 1, + "name": "Active" + }, + "expirationDate": "2023-02-01", + "replacedByTokenId": 2, + "autoReloadRegistration": null, + "ePurse": { + "e-PurseBalance": { + "currency": "EUR", + "amount": 350 + }, + "status": "ACTIVE", + "originDate": "2019-07-16T11:00:00+02:00" + }, + "personalAccountData":{ + "name": { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2019-08-24T14:15:22Z" + }, + "birthDate": { + "inaccuracyFlag": true, + "inaccuracyFlagReason": "Invalid birthDate", + "inaccuracyFlagSetCounter": 1, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2019-08-24T14:15:22Z" + }, + "photo": { + "inaccuracyFlag": false, + "inaccuracyFlagReason": null, + "inaccuracyFlagSetCounter": 0, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2019-08-24T14:15:22Z" + } + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips", + "method": "GET" + }, + "update_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "method": "PUT" + } + } + } + ] + } + OVPAS with invalid PAD: + summary: OVPAS with invalid PAD + description: OVPAS with invalid PAD + value: + { + "ovPayTokens": [ + { + "ovPayTokenId": 1, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, + "alias": "MyToken", + "tokenStatus": { + "tokenStatusId": 1, + "name": "Active" + }, + "expirationDate": "2023-02-01", + "replacedByTokenId": 2, + "autoReloadRegistration": null, + "ePurse": { + "e-PurseBalance": { + "currency": "EUR", + "amount": 350 + }, + "status": "ACTIVE", + "originDate": "2019-07-16T11:00:00+02:00" + }, + "personalAccountData":{ + "name": { + "inaccuracyFlag": true, + "inaccuracyFlagReason": "T.B.D", + "inaccuracyFlagSetCounter": 1, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2019-08-24T14:15:22Z" + }, + "birthDate": { + "inaccuracyFlag": true, + "inaccuracyFlagReason": "T.B.D", + "inaccuracyFlagSetCounter": 1, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2019-08-24T14:15:22Z" + }, + "photo": { + "inaccuracyFlag": true, + "inaccuracyFlagReason": "T.B.D", + "inaccuracyFlagSetCounter": 1, + "isValidated": false, + "changeCounter": 0, + "maxUpdatesVerificationCount": 0, + "lastChangeDate": "2019-08-24T14:15:22Z" + } + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips", + "method": "GET" + }, + "update_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "method": "PUT" + } + } + } + ] + } + post: + tags: + - Customers + parameters: + - name: X-HTM-JWT-AUTH-HEADER + in: header + schema: + type: string + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c + required: false + description: The JWT of a customer in case of touchpoint were customer logs in themselves + - name: X-HTM-CUSTOMER-PROFILE-ID-HEADER + in: header + schema: + type: string + example: feaaef83-a551-4283-8419-340b1ada3b55 + required: false + description: The customerProfileId of a customer in the case of the SMP + - name: X-HTM-ROLE-HEADER + in: header + schema: + type: string + example: Customer + required: false + summary: Create a new OV paytoken in the database for a given customer + description: Create a new OV paytoken for a customerProfile + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Add EMV token: + summary: Add EMV token + description: Add EMV token + value: + { + "ovPayToken": { + "tokenTypeId": 1, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 200, + "alias": "Mijn token" + } + } + Add OVpas physical token: + summary: Add OVpas physical token + description: Add OVpas physical token + value: + { + "ovPayToken": { + "tokenTypeId": 2, + "ovpasNumber": "OV34567", + "verificationCode": "211", + "alias": "Mijn token" + } + } + responses: + "201": + description: Created + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Add EMV token: + summary: Add EMV token + description: Add EMV token + value: + { + "ovPayToken": { + "customerProfileId": 8, + "ovPayTokenId": 1, + "tokenTypeId": 1, + "lastDigits": null, + "ovpasNumber": null, + "alias": "Mijn token", + "tokenStatusId": 2, + "expirationDate": "2028-08-31T23:59:00+02:00", + "replacedByTokenId": null, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData":{ + "name": null, + "birthDate": null, + "photo": null + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips", + "method": "GET" + }, + "create_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "method": "POST" + } + } + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "POST" + } + } + } + Add OVpas physical token: + summary: Add EMV token + description: Add EMV token + value: + { + "ovPayToken": { + "customerProfileId": 8, + "ovPayTokenId": 1, + "tokenTypeId": 2, + "lastDigits": null, + "ovpasNumber": "OV34567", + "alias": "Mijn token", + "tokenStatusId": 2, + "expirationDate": "2028-08-31T23:59:00+02:00", + "replacedByTokenId": null, + "autoReloadRegistration": null, + "ePurse": { + "e-PurseBalance": { + "currency": "EUR", + "amount": 00 + }, + "status": "INACTIVE", + "originDate": "2019-07-16T11:00:00+02:00" + }, + "personalAccountData":{ + "name": null, + "birthDate": null, + "photo": null + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips", + "method": "GET" + }, + "create_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "method": "POST" + } + } + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "POST" + } + } + } + /customers/tokens/{ovpayTokenId}: + post: + tags: + - Customers + parameters: + - name: X-HTM-JWT-AUTH-HEADER + in: header + schema: + type: string + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c + required: false + description: The JWT of a customer in case of touchpoint were customer logs in themselves + - name: X-HTM-CUSTOMER-PROFILE-ID-HEADER + in: header + schema: + type: string + example: feaaef83-a551-4283-8419-340b1ada3b55 + required: false + description: The customerProfileId of a customer in the case of the SMP + - name: X-HTM-ROLE-HEADER + in: header + schema: + type: string + example: Customer + required: false + - name: ovpayTokenId + in: path + schema: + type: integer + example: 1 + required: true + summary: Replace an OV paytoken for a customerProfile + description: Replace an OV paytoken in the database for a given customer with another token + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Replace with new EMV token: + summary: Replace with new token + description: Replace with new token + value: + { + "ovPayToken": { + "newTokenId": null, + "tokenTypeId": 1, + "serviceReferenceId": "NLOV1234567ABCDEFG", + "amount": 230, + "alias": "Nieuw token" + } + } + responses: + "201": + description: Created + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Replace with new EMV token: + summary: Replace with new EMV token + description: Replace with new EMV token + value: + { + "ovPayToken": { + "customerProfileId": 8, + "ovPayTokenId": 5, + "tokenTypeId": 1, + "lastDigits": null, + "ovpasNumber": null, + "alias": "Mijn token", + "tokenStatusId": 2, + "expirationDate": "2028-08-31T23:59:00+02:00", + "replacedByTokenId": null, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData":{ + "name": null, + "birthDate": null, + "photo": null + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=5", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/replace", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/trips", + "method": "GET" + }, + "create_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=5", + "method": "POST" + } + } + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "POST" + } + } + } /customers/tokens/{ovPayTokenId}/productinstances: get: tags: @@ -232,15 +1035,15 @@ paths: "contractId": "56B17EF-C436-9043-B76C-481797WEB464F", "_links": { "self": { - "href": "https://api.integratielaag.nl/abt/serviceengine/x.x/customers/tokens/1/productinstances/1", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances/1", "method": "GET" }, "get_order": { - "href": "https://api.integratielaag.nl/abt/serviceengine/x.x/orders/501B17EF-36C4-4039-B92C-6517969B464E", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/orders/501B17EF-36C4-4039-B92C-6517969B464E", "method": "GET" }, "get_contract": { - "href": "https://api.integratielaag.nl/abt/serviceengine/x.x/customers/contracts/56B17EF-C436-9043-B76C-481797WEB464F", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/contracts/56B17EF-C436-9043-B76C-481797WEB464F", "method": "GET" } } @@ -249,6 +1052,8 @@ paths: } components: schemas: + unavailable: + type: object CustomersResponse: type: object properties: @@ -348,7 +1153,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/addresses/1 + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/addresses/1 method: type: string example: GET @@ -357,7 +1162,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/addresses/1 + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/addresses/1 method: type: string example: DELETE @@ -395,7 +1200,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/phones/1 + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/phones/1 method: type: string example: GET @@ -404,7 +1209,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/phones/1 + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/phones/1 method: type: string example: DELETE @@ -416,7 +1221,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers method: type: string example: GET @@ -426,7 +1231,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/statuses + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/statuses method: type: string example: POST @@ -435,7 +1240,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers method: type: string example: PATCH @@ -444,7 +1249,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/tokens + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens method: type: string example: GET @@ -453,7 +1258,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/tokens + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens method: type: string example: POST @@ -506,7 +1311,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/tokens/1 + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1 method: type: string example: GET @@ -516,7 +1321,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/tokens/1 + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1 method: type: string example: PATCH @@ -525,7 +1330,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/tokens/1/replace + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace method: type: string example: POST @@ -534,7 +1339,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/tokens/1 + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1 method: type: string example: DELETE @@ -543,7 +1348,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/tokens/1/productinstances + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances method: type: string example: GET @@ -552,7 +1357,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/tokens/1/trips + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips method: type: string example: GET @@ -618,7 +1423,7 @@ components: properties: href: type: string - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/tokens/1/productinstances + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances method: type: string example: GET @@ -628,7 +1433,7 @@ components: href: type: string description: Always present for any HTM product-instance - example: https://api.integratielaag.nl/abt/serviceengine/x.x/orders/501B17EF-36C4-4039-B92C-6517969B464E + example: https://api.integratielaag.nl/abt/1.0/touchpoint/orders/501B17EF-36C4-4039-B92C-6517969B464E method: type: string example: GET @@ -638,7 +1443,7 @@ components: href: type: string description: Only present for subscriptions/contracts - example: https://api.integratielaag.nl/abt/serviceengine/x.x/customers/contracts/56B17EF-C436-9043-B76C-481797WEB464F + example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/contracts/56B17EF-C436-9043-B76C-481797WEB464F method: type: string example: GET From 07f69e089b4f7b9561bffd33bb559d6d80f711a4 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Thu, 27 Mar 2025 17:01:48 +0100 Subject: [PATCH 02/10] example for pesonalization hateoas link --- src/openapi/customers/SE-customers.yaml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index 04494cf..6e184ee 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -325,7 +325,16 @@ paths: }, "create_tokenPersonalization": { "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/tokenPersonalizations?ovpaytokenId=1", - "method": "POST" + "method": "POST", + "schema": { + "type": "object", + "properties": { + "photo": { "type": "image" }, + "name": { "type": "string" }, + "birthDate": { "type": "string" }, + "oneTimePassword": { "type": "string" } + } + } } } } From f6766f922554138df9f21c710221fa9ab661a1a7 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Fri, 28 Mar 2025 10:32:24 +0100 Subject: [PATCH 03/10] all token endpoints added in swagger --- src/openapi/customers/SE-customers.yaml | 493 ++++++++++++++++++++++-- 1 file changed, 469 insertions(+), 24 deletions(-) diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index 6e184ee..171c6f4 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -224,13 +224,13 @@ paths: example: 91641b54-056c-49ea-b598-ccde81d6c45a required: false description: Filter on the xBot of a customer token - - name: ovPasNumber + - name: OV pasNumber in: query schema: type: string example: 56HYRTL required: false - description: Filter on the ovPasNumber of a customer token of type OV Pas + description: Filter on the OV pasNumber of a customer token of type OV Pas - name: lastDigits in: query schema: @@ -340,9 +340,9 @@ paths: } ] } - OVPAS without PAD: - summary: OVPAS without PAD - description: OVPAS without PAD + OV pas without PAD: + summary: OV pas without PAD + description: OV pas without PAD value: { "ovPayTokens": [ @@ -406,9 +406,9 @@ paths: } ] } - OVPAS with PAD: - summary: OVPAS with PAD - description: OVPAS with PAD + OV pas with PAD and autoReload: + summary: OV pas with PAD and autoReload + description: OV pas with PAD and autoReload value: { "ovPayTokens": [ @@ -502,9 +502,9 @@ paths: } ] } - OVPAS with partial PAD: - summary: OVPAS with partial PAD - description: OVPAS with partial PAD + OV pas with partial PAD: + summary: OV pas with partial PAD + description: OV pas with partial PAD value: { "ovPayTokens": [ @@ -592,9 +592,9 @@ paths: } ] } - OVPAS with invalid PAD: - summary: OVPAS with invalid PAD - description: OVPAS with invalid PAD + OV pas with invalid PAD: + summary: OV pas with invalid PAD + description: OV pas with invalid PAD value: { "ovPayTokens": [ @@ -726,9 +726,9 @@ paths: "alias": "Mijn token" } } - Add OVpas physical token: - summary: Add OVpas physical token - description: Add OVpas physical token + Add OV pas physical token: + summary: Add OV pas physical token + description: Add OV pas physical token value: { "ovPayToken": { @@ -756,7 +756,7 @@ paths: "ovPayTokenId": 1, "tokenTypeId": 1, "lastDigits": null, - "ovpasNumber": null, + "OV pasNumber": null, "alias": "Mijn token", "tokenStatusId": 2, "expirationDate": "2028-08-31T23:59:00+02:00", @@ -806,7 +806,7 @@ paths: } } } - Add OVpas physical token: + Add OV pas physical token: summary: Add EMV token description: Add EMV token value: @@ -816,7 +816,7 @@ paths: "ovPayTokenId": 1, "tokenTypeId": 2, "lastDigits": null, - "ovpasNumber": "OV34567", + "OV pasNumber": "OV34567", "alias": "Mijn token", "tokenStatusId": 2, "expirationDate": "2028-08-31T23:59:00+02:00", @@ -904,7 +904,7 @@ paths: type: integer example: 1 required: true - summary: Replace an OV paytoken for a customerProfile + summary: Replace an OV paytoken with another description: Replace an OV paytoken in the database for a given customer with another token requestBody: content: @@ -912,7 +912,7 @@ paths: schema: $ref: "#/components/schemas/unavailable" examples: - Replace with new EMV token: + Replace with new EMV token: summary: Replace with new token description: Replace with new token value: @@ -925,6 +925,27 @@ paths: "alias": "Nieuw token" } } + Replace with existing EMV token: + summary: Replace with existing token + description: Replace with existing token + value: + { + "ovPayToken": { + "newTokenId": 10 + } + } + Replace with new OV pas token: + summary: Replace with new OV pas token + description: Replace with new OV pas token + value: + { + "ovPayToken": { + "tokenTypeId": 2, + "ovpasNumber": "OV34567", + "verificationCode": "211", + "alias": "Mijn token" + } + } responses: "201": description: Created @@ -943,7 +964,7 @@ paths: "ovPayTokenId": 5, "tokenTypeId": 1, "lastDigits": null, - "ovpasNumber": null, + "OV pasNumber": null, "alias": "Mijn token", "tokenStatusId": 2, "expirationDate": "2028-08-31T23:59:00+02:00", @@ -965,7 +986,7 @@ paths: "method": "PATCH" }, "replace_token": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/replace", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", "method": "POST" }, "delete_token": { @@ -993,6 +1014,430 @@ paths: } } } + Replace with new OV pas token: + summary: Replace with new OV pas token + description: Replace with new OV pas token + value: + { + "ovPayToken": { + "customerProfileId": 8, + "ovPayTokenId": 5, + "tokenTypeId": 2, + "lastDigits": null, + "OV pasNumber":"OV34567", + "alias": "Mijn token", + "tokenStatusId": 2, + "expirationDate": "2028-08-31T23:59:00+02:00", + "replacedByTokenId": null, + "autoReloadRegistration": null, + "ePurse": { + "e-PurseBalance": { + "currency": "EUR", + "amount": 350 + }, + "status": "ACTIVE", + "originDate": "2024-07-16T11:00:00+02:00" + }, + + "personalAccountData":{ + "name": null, + "birthDate": null, + "photo": null + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=5", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/trips", + "method": "GET" + }, + "create_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=5", + "method": "POST" + } + } + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "POST" + } + } + } + "200": + description: Ok + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Replace with existing EMV token: + summary: Replace with existing EMV token + description: Replace with existing EMV token + value: + { + "ovPayToken": { + "customerProfileId": 8, + "ovPayTokenId": 10, + "tokenTypeId": 1, + "lastDigits": null, + "OV pasNumber": null, + "alias": "Mijn bestaandetoken", + "tokenStatusId": 2, + "expirationDate": "2028-08-31T23:59:00+02:00", + "replacedByTokenId": null, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData":{ + "name": null, + "birthDate": null, + "photo": null + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=5", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/trips", + "method": "GET" + }, + "create_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=5", + "method": "POST" + } + } + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "POST" + } + } + } + patch: + tags: + - Customers + parameters: + - name: X-HTM-JWT-AUTH-HEADER + in: header + schema: + type: string + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c + required: false + description: The JWT of a customer in case of touchpoint were customer logs in themselves + - name: X-HTM-CUSTOMER-PROFILE-ID-HEADER + in: header + schema: + type: string + example: feaaef83-a551-4283-8419-340b1ada3b55 + required: false + description: The customerProfileId of a customer in the case of the SMP + - name: X-HTM-ROLE-HEADER + in: header + schema: + type: string + example: Customer + required: false + - name: ovpayTokenId + in: path + schema: + type: integer + example: 1 + required: true + summary: Edit an existing OV paytoken + description: Edit an existing OV paytoken in the database for a given customer + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Update an OV pay token status: + summary: Update an OV pay token status + description: Update an OV pay token status + value: + { + "ovPayToken": { + "tokenStatusId": 4 + } + } + Update an OV pay token alias: + summary: Update an OV pay token alias + description: Update an OV pay token alias + value: + { + "ovPayToken": { + "alias": "Mijn nieuwe tokennaam" + } + } + Update an OV pay token full: + summary: Update an OV pay token full + description: Update an OV pay token full + value: + { + "ovPayToken": { + "tokenStatusId": 4, + "alias": "Mijn verloren pas" + } + } + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: "#/components/schemas/unavailable" + examples: + Update an OV pay token status: + summary: Update an OV pay token status + description: Update an OV pay token status + value: + { + "ovPayToken": { + "customerProfileId": 8, + "ovPayTokenId": 1, + "tokenTypeId": 1, + "lastDigits": null, + "OV pasNumber": null, + "alias": "Mijn token", + "tokenStatusId": 4, + "expirationDate": "2028-08-31T23:59:00+02:00", + "replacedByTokenId": null, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData":{ + "name": null, + "birthDate": null, + "photo": null + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=5", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/trips", + "method": "GET" + }, + "create_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=5", + "method": "POST" + } + } + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "POST" + } + } + } + Update an OV pay token alias: + summary: Update an OV pay token alias + description: Update an OV pay token alias + value: + { + "ovPayToken": { + "customerProfileId": 8, + "ovPayTokenId": 1, + "tokenTypeId": 1, + "lastDigits": null, + "OV pasNumber": null, + "alias": "Mijn nieuwe tokennaam", + "tokenStatusId": 2, + "expirationDate": "2028-08-31T23:59:00+02:00", + "replacedByTokenId": null, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData":{ + "name": null, + "birthDate": null, + "photo": null + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=5", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/trips", + "method": "GET" + }, + "create_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=5", + "method": "POST" + } + } + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "POST" + } + } + } + Update an OV pay token full: + summary: Update an OV pay token full + description: Update an OV pay token full + value: + { + "ovPayToken": { + "customerProfileId": 8, + "ovPayTokenId": 1, + "tokenTypeId": 1, + "lastDigits": null, + "OV pasNumber": null, + "alias": "Mijn verloren pas", + "tokenStatusId": 4, + "expirationDate": "2028-08-31T23:59:00+02:00", + "replacedByTokenId": null, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData":{ + "name": null, + "birthDate": null, + "photo": null + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=5", + "method": "GET" + }, + "partial_edit": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "PATCH" + }, + "replace_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "POST" + }, + "delete_token": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "method": "DELETE" + }, + "get_productinstances": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/productinstances", + "method": "GET" + }, + "get_trips": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/trips", + "method": "GET" + }, + "create_tokenPersonalization": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=5", + "method": "POST" + } + } + }, + "_links": { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "POST" + } + } + } + delete: + tags: + - Customers + parameters: + - name: X-HTM-JWT-AUTH-HEADER + in: header + schema: + type: string + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c + required: false + description: The JWT of a customer in case of touchpoint were customer logs in themselves + - name: X-HTM-CUSTOMER-PROFILE-ID-HEADER + in: header + schema: + type: string + example: feaaef83-a551-4283-8419-340b1ada3b55 + required: false + description: The customerProfileId of a customer in the case of the SMP + - name: X-HTM-ROLE-HEADER + in: header + schema: + type: string + example: Customer + required: false + - name: ovpayTokenId + in: path + schema: + type: integer + example: 1 + required: true + summary: Delete an existing OV paytoken + description: Delete an existing OV paytoken for a given customer + responses: + "200": + description: Ok /customers/tokens/{ovPayTokenId}/productinstances: get: tags: From 976e24775e601b199124c2c4cb10041df13bdbb5 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Fri, 28 Mar 2025 10:42:44 +0100 Subject: [PATCH 04/10] cleaned op hateoas linksv --- src/openapi/customers/SE-customers.yaml | 111 +++++++++++++----------- 1 file changed, 59 insertions(+), 52 deletions(-) diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index 171c6f4..e3c8493 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -272,6 +272,20 @@ paths: schema: $ref: "#/components/schemas/unavailable" examples: + Empty token list: + summary: Empty token list + description: Empty token list + value: + { + "ovPayTokens": [ + ], + _links: { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "GET" + } + } + } EMV without PAD: summary: EMV without PAD description: EMV without PAD @@ -338,7 +352,13 @@ paths: } } } - ] + ], + _links: { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "GET" + } + } } OV pas without PAD: summary: OV pas without PAD @@ -404,7 +424,13 @@ paths: } } } - ] + ], + _links: { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "GET" + } + } } OV pas with PAD and autoReload: summary: OV pas with PAD and autoReload @@ -500,7 +526,13 @@ paths: } } } - ] + ], + _links: { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "GET" + } + } } OV pas with partial PAD: summary: OV pas with partial PAD @@ -590,7 +622,13 @@ paths: } } } - ] + ], + _links: { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "GET" + } + } } OV pas with invalid PAD: summary: OV pas with invalid PAD @@ -680,8 +718,14 @@ paths: } } } - ] - } + ], + _links: { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "GET" + } + } + } post: tags: - Customers @@ -1006,12 +1050,6 @@ paths: "method": "POST" } } - }, - "_links": { - "self": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", - "method": "POST" - } } } Replace with new OV pas token: @@ -1037,8 +1075,7 @@ paths: }, "status": "ACTIVE", "originDate": "2024-07-16T11:00:00+02:00" - }, - + }, "personalAccountData":{ "name": null, "birthDate": null, @@ -1074,12 +1111,6 @@ paths: "method": "POST" } } - }, - "_links": { - "self": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", - "method": "POST" - } } } "200": @@ -1113,40 +1144,34 @@ paths: }, "_links": { "self": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=5", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=10", "method": "GET" }, "partial_edit": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/10", "method": "PATCH" }, "replace_token": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/10", "method": "POST" }, "delete_token": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/10", "method": "DELETE" }, "get_productinstances": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/productinstances", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/10/productinstances", "method": "GET" }, "get_trips": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/trips", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/10/trips", "method": "GET" }, "create_tokenPersonalization": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=5", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=10", "method": "POST" } } - }, - "_links": { - "self": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", - "method": "POST" - } } } patch: @@ -1275,12 +1300,6 @@ paths: "method": "POST" } } - }, - "_links": { - "self": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", - "method": "POST" - } } } Update an OV pay token alias: @@ -1335,12 +1354,6 @@ paths: "method": "POST" } } - }, - "_links": { - "self": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", - "method": "POST" - } } } Update an OV pay token full: @@ -1395,12 +1408,6 @@ paths: "method": "POST" } } - }, - "_links": { - "self": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", - "method": "POST" - } } } delete: @@ -1441,7 +1448,7 @@ paths: /customers/tokens/{ovPayTokenId}/productinstances: get: tags: - - ServiceEngine Customers + - Customers summary: Get a list of all HTM products instantiated on the given OvPayToken description: |- Get a list of all HTM products instantiated on the given OvPayToken. From c0df05301b214b4ba1cb1694d89b8c68789a3e72 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Fri, 28 Mar 2025 12:27:31 +0100 Subject: [PATCH 05/10] added tokenStatus updates --- src/openapi/customers/SE-customers.yaml | 332 ++++++++++++++++++++---- 1 file changed, 277 insertions(+), 55 deletions(-) diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index e3c8493..62657fa 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -245,7 +245,7 @@ paths: items: type: integer explode: false - description: Filter on token status. 1 = Expired, 2 = Active, 3 = Replaced, 4 = Inactive, 5 = Suspended, 6 = Removed by customer + description: Filter on token status. 1 = Retired, 2 = Active, 3 = Replaced (*), 4 = On Stock, 5 = Suspended, 6 = Removed by customer (*), 7 = Renewed Active required: false - name: expirationDate in: query @@ -293,6 +293,7 @@ paths: { "ovPayTokens": [ { + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 1, @@ -300,10 +301,10 @@ paths: }, "alias": "MyToken", "tokenStatus": { - "tokenStatusId": 1, + "tokenStatusId": 2, "name": "Active" }, - "expirationDate": "2023-02-01", + "expirationDate": "2028-02-01", "replacedByTokenId": 2, "autoReloadRegistration": null, "ePurse": null, @@ -367,6 +368,7 @@ paths: { "ovPayTokens": [ { + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 2, @@ -374,10 +376,10 @@ paths: }, "alias": "MyToken", "tokenStatus": { - "tokenStatusId": 1, + "tokenStatusId": 2, "name": "Active" }, - "expirationDate": "2023-02-01", + "expirationDate": "2028-02-01", "replacedByTokenId": 2, "autoReloadRegistration": null, "ePurse": { @@ -439,6 +441,7 @@ paths: { "ovPayTokens": [ { + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 2, @@ -446,10 +449,10 @@ paths: }, "alias": "MyToken", "tokenStatus": { - "tokenStatusId": 1, + "tokenStatusId": 2, "name": "Active" }, - "expirationDate": "2023-02-01", + "expirationDate": "2028-02-01", "replacedByTokenId": 2, "autoReloadRegistration": { "autoReloadAmount": 500, @@ -474,7 +477,7 @@ paths: "isValidated": false, "changeCounter": 0, "maxUpdatesVerificationCount": 0, - "lastChangeDate": "2019-08-24T14:15:22Z" + "lastChangeDate": "2024-08-24T14:15:22Z" }, "birthDate": { "inaccuracyFlag": false, @@ -483,7 +486,7 @@ paths: "isValidated": false, "changeCounter": 0, "maxUpdatesVerificationCount": 0, - "lastChangeDate": "2019-08-24T14:15:22Z" + "lastChangeDate": "2024-08-24T14:15:22Z" }, "photo": { "inaccuracyFlag": false, @@ -492,7 +495,7 @@ paths: "isValidated": false, "changeCounter": 0, "maxUpdatesVerificationCount": 0, - "lastChangeDate": "2019-08-24T14:15:22Z" + "lastChangeDate": "2024-08-24T14:15:22Z" } }, "_links": { @@ -541,6 +544,7 @@ paths: { "ovPayTokens": [ { + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 2, @@ -548,10 +552,10 @@ paths: }, "alias": "MyToken", "tokenStatus": { - "tokenStatusId": 1, + "tokenStatusId": 2, "name": "Active" }, - "expirationDate": "2023-02-01", + "expirationDate": "2028-02-01", "replacedByTokenId": 2, "autoReloadRegistration": null, "ePurse": { @@ -570,7 +574,7 @@ paths: "isValidated": false, "changeCounter": 0, "maxUpdatesVerificationCount": 0, - "lastChangeDate": "2019-08-24T14:15:22Z" + "lastChangeDate": "2024-08-24T14:15:22Z" }, "birthDate": { "inaccuracyFlag": true, @@ -579,7 +583,7 @@ paths: "isValidated": false, "changeCounter": 0, "maxUpdatesVerificationCount": 0, - "lastChangeDate": "2019-08-24T14:15:22Z" + "lastChangeDate": "2024-08-24T14:15:22Z" }, "photo": { "inaccuracyFlag": false, @@ -588,7 +592,7 @@ paths: "isValidated": false, "changeCounter": 0, "maxUpdatesVerificationCount": 0, - "lastChangeDate": "2019-08-24T14:15:22Z" + "lastChangeDate": "2024-08-24T14:15:22Z" } }, "_links": { @@ -637,6 +641,7 @@ paths: { "ovPayTokens": [ { + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 2, @@ -644,10 +649,10 @@ paths: }, "alias": "MyToken", "tokenStatus": { - "tokenStatusId": 1, + "tokenStatusId": 2, "name": "Active" }, - "expirationDate": "2023-02-01", + "expirationDate": "2028-02-01", "replacedByTokenId": 2, "autoReloadRegistration": null, "ePurse": { @@ -666,7 +671,7 @@ paths: "isValidated": false, "changeCounter": 0, "maxUpdatesVerificationCount": 0, - "lastChangeDate": "2019-08-24T14:15:22Z" + "lastChangeDate": "2024-08-24T14:15:22Z" }, "birthDate": { "inaccuracyFlag": true, @@ -675,16 +680,16 @@ paths: "isValidated": false, "changeCounter": 0, "maxUpdatesVerificationCount": 0, - "lastChangeDate": "2019-08-24T14:15:22Z" + "lastChangeDate": "2024-08-24T14:15:22Z" }, "photo": { "inaccuracyFlag": true, - "inaccuracyFlagReason": "T.B.D", + "inaccuracyFlagReason": null, "inaccuracyFlagSetCounter": 1, "isValidated": false, "changeCounter": 0, "maxUpdatesVerificationCount": 0, - "lastChangeDate": "2019-08-24T14:15:22Z" + "lastChangeDate": "2024-08-24T14:15:22Z" } }, "_links": { @@ -726,6 +731,175 @@ paths: } } } + Token list with every status for tokenTypeId = 2, role = KlantenService : + summary: Token list with every status for tokenTypeId = 2, role = KlantenService + description: Token list with every status for tokenTypeId = 2, role = KlantenService + value: + { + "ovPayTokens": [ + { + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "ovPayTokenId": 1, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, + "alias": "MyToken", + "tokenStatus": { + "tokenStatusId": 2, + "name": "Active" + }, + "expirationDate": "2028-02-01", + "replacedByTokenId": 0, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData": { + "name": null, + "birthDate": null, + "photo": null, + } + }, + { + "customerProfileId": "71ec7a57-7892-4412-afee-5fb35a6f3164", + "ovPayTokenId": 6, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, + "alias": "MyToken", + "tokenStatus": { + "tokenStatusId": 3, + "name": "Replaced (*)" + }, + "expirationDate": "2028-02-01", + "replacedByTokenId": 2, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData": { + "name": null, + "birthDate": null, + "photo": null + } + }, + { + "customerProfileId": "71ec7a57-7892-4412-afee-5fb35a6f3164", + "ovPayTokenId": 13, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, + "alias": "MyToken", + "tokenStatus": { + "tokenStatusId": 4, + "name": "On stock" + }, + "expirationDate": "2028-02-01", + "replacedByTokenId": 2, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData":{ + "name": null, + "birthDate": null, + "photo": null + } + }, + { + "customerProfileId": "ece2d43c-738d-4ba8-a699-55f7e7c3a8e9", + "ovPayTokenId": 21, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, + "alias": "Mijn OV Pas", + "tokenStatus": { + "tokenStatusId": 5, + "name": "Suspended" + }, + "expirationDate": "2028-02-01", + "replacedByTokenId": 0, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData": { + "name": null, + "birthDate": null, + "photo": null, + } + }, + { + "customerProfileId": "ece2d43c-738d-4ba8-a699-55f7e7c3a8e9", + "ovPayTokenId": 28, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, + "alias": "Mijn OV Pas", + "tokenStatus": { + "tokenStatusId": 6, + "name": "Removed by customer (*)" + }, + "expirationDate": "2028-02-01", + "replacedByTokenId": 0, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData": { + "name": null, + "birthDate": null, + "photo": null, + } + }, + { + "customerProfileId": "9c961d08-7304-4bf5-8294-d7247c57555a", + "ovPayTokenId": 115, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, + "alias": "My retired token", + "tokenStatus": { + "tokenStatusId": 1, + "name": "Retired" + }, + "expirationDate": "2025-02-01", + "replacedByTokenId": 0, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData": { + "name": null, + "birthDate": null, + "photo": null, + } + }, + { + "customerProfileId": "9c961d08-7304-4bf5-8294-d7247c57555a", + "ovPayTokenId": 118, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, + "alias": "My found token", + "tokenStatus": { + "tokenStatusId": 7, + "name": "Renewed Active" + }, + "expirationDate": "2028-02-01", + "replacedByTokenId": 0, + "autoReloadRegistration": null, + "ePurse": null, + "personalAccountData": { + "name": null, + "birthDate": null, + "photo": null, + } + } + ], + _links: { + "self": { + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens", + "method": "GET" + } + } + } + post: tags: - Customers @@ -796,15 +970,21 @@ paths: value: { "ovPayToken": { - "customerProfileId": 8, + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 1, - "tokenTypeId": 1, + "tokenType": { + "tokenTypeId": 1, + "name": "EMV" + }, "lastDigits": null, "OV pasNumber": null, "alias": "Mijn token", - "tokenStatusId": 2, + "tokenStatus": { + "tokenStatusId": 2, + "name": "Active" + }, "expirationDate": "2028-08-31T23:59:00+02:00", - "replacedByTokenId": null, + "replacedByTokenId": 0, "autoReloadRegistration": null, "ePurse": null, "personalAccountData":{ @@ -856,15 +1036,21 @@ paths: value: { "ovPayToken": { - "customerProfileId": 8, + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 1, - "tokenTypeId": 2, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, "lastDigits": null, "OV pasNumber": "OV34567", "alias": "Mijn token", - "tokenStatusId": 2, + "tokenStatus": { + "tokenStatusId": 2, + "name": "Active" + }, "expirationDate": "2028-08-31T23:59:00+02:00", - "replacedByTokenId": null, + "replacedByTokenId": 0, "autoReloadRegistration": null, "ePurse": { "e-PurseBalance": { @@ -1004,15 +1190,21 @@ paths: value: { "ovPayToken": { - "customerProfileId": 8, + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 5, - "tokenTypeId": 1, + "tokenType": { + "tokenTypeId": 1, + "name": "EMV" + }, "lastDigits": null, "OV pasNumber": null, "alias": "Mijn token", - "tokenStatusId": 2, + "tokenStatus": { + "tokenStatusId": 2, + "name": "Active" + }, "expirationDate": "2028-08-31T23:59:00+02:00", - "replacedByTokenId": null, + "replacedByTokenId": 0, "autoReloadRegistration": null, "ePurse": null, "personalAccountData":{ @@ -1058,15 +1250,21 @@ paths: value: { "ovPayToken": { - "customerProfileId": 8, + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 5, - "tokenTypeId": 2, + "tokenType": { + "tokenTypeId": 2, + "name": "OV-pas physical" + }, "lastDigits": null, "OV pasNumber":"OV34567", "alias": "Mijn token", - "tokenStatusId": 2, + "tokenStatus": { + "tokenStatusId": 2, + "name": "Active" + }, "expirationDate": "2028-08-31T23:59:00+02:00", - "replacedByTokenId": null, + "replacedByTokenId": 0, "autoReloadRegistration": null, "ePurse": { "e-PurseBalance": { @@ -1126,15 +1324,21 @@ paths: value: { "ovPayToken": { - "customerProfileId": 8, + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 10, - "tokenTypeId": 1, + "tokenType": { + "tokenTypeId": 1, + "name": "EMV" + }, "lastDigits": null, "OV pasNumber": null, "alias": "Mijn bestaandetoken", - "tokenStatusId": 2, + "tokenStatus": { + "tokenStatusId": 2, + "name": "Active" + }, "expirationDate": "2028-08-31T23:59:00+02:00", - "replacedByTokenId": null, + "replacedByTokenId": 0, "autoReloadRegistration": null, "ePurse": null, "personalAccountData":{ @@ -1218,7 +1422,7 @@ paths: value: { "ovPayToken": { - "tokenStatusId": 4 + "tokenStatusId": 5 } } Update an OV pay token alias: @@ -1236,7 +1440,7 @@ paths: value: { "ovPayToken": { - "tokenStatusId": 4, + "tokenStatusId": 5, "alias": "Mijn verloren pas" } } @@ -1254,15 +1458,21 @@ paths: value: { "ovPayToken": { - "customerProfileId": 8, + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 1, - "tokenTypeId": 1, + "tokenType": { + "tokenTypeId": 1, + "name": "EMV" + }, "lastDigits": null, "OV pasNumber": null, "alias": "Mijn token", - "tokenStatusId": 4, + "tokenStatus": { + "tokenStatusId": 5, + "name": "Suspended" + }, "expirationDate": "2028-08-31T23:59:00+02:00", - "replacedByTokenId": null, + "replacedByTokenId": 0, "autoReloadRegistration": null, "ePurse": null, "personalAccountData":{ @@ -1308,15 +1518,21 @@ paths: value: { "ovPayToken": { - "customerProfileId": 8, + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 1, - "tokenTypeId": 1, + "tokenType": { + "tokenTypeId": 1, + "name": "EMV" + }, "lastDigits": null, "OV pasNumber": null, "alias": "Mijn nieuwe tokennaam", - "tokenStatusId": 2, + "tokenStatus": { + "tokenStatusId": 2, + "name": "Active" + }, "expirationDate": "2028-08-31T23:59:00+02:00", - "replacedByTokenId": null, + "replacedByTokenId": 0, "autoReloadRegistration": null, "ePurse": null, "personalAccountData":{ @@ -1362,15 +1578,21 @@ paths: value: { "ovPayToken": { - "customerProfileId": 8, + "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", "ovPayTokenId": 1, - "tokenTypeId": 1, + "tokenType": { + "tokenTypeId": 1, + "name": "EMV" + }, "lastDigits": null, "OV pasNumber": null, "alias": "Mijn verloren pas", - "tokenStatusId": 4, + "tokenStatus": { + "tokenStatusId": 5, + "name": "Suspended" + }, "expirationDate": "2028-08-31T23:59:00+02:00", - "replacedByTokenId": null, + "replacedByTokenId": 0, "autoReloadRegistration": null, "ePurse": null, "personalAccountData":{ From f3474dc10fc1cfcdfad91ac40eb3e2fce67eafee Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Fri, 28 Mar 2025 12:33:54 +0100 Subject: [PATCH 06/10] updated crud customers with token status update --- src/openapi/customers/customers-crud-v2.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml index 83c7a68..e30fa2c 100644 --- a/src/openapi/customers/customers-crud-v2.yaml +++ b/src/openapi/customers/customers-crud-v2.yaml @@ -1287,7 +1287,7 @@ paths: 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. + description: Filter on possible token statuses. Filter on token status. 1 = Retired, 2 = Active, 3 = Replaced (*), 4 = On Stock, 5 = Suspended, 6 = Removed by customer (*), 7 = Renewed Active - in: query name: expirationDate schema: From 88ec45425d4c9e39f2e862808fcbd4846f394fbf Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Fri, 28 Mar 2025 15:49:32 +0100 Subject: [PATCH 07/10] removed schema from hateoas link example --- src/openapi/customers/SE-customers.yaml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index 62657fa..27098f2 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -340,16 +340,7 @@ paths: }, "create_tokenPersonalization": { "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/tokenPersonalizations?ovpaytokenId=1", - "method": "POST", - "schema": { - "type": "object", - "properties": { - "photo": { "type": "image" }, - "name": { "type": "string" }, - "birthDate": { "type": "string" }, - "oneTimePassword": { "type": "string" } - } - } + "method": "POST" } } } From 68464bbb789d8e3066e65823f278851ae5abced1 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Fri, 28 Mar 2025 16:54:11 +0100 Subject: [PATCH 08/10] fixed typos --- src/openapi/customers/SE-customers.yaml | 46 ++++++++++++------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index 27098f2..2e25f10 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -224,7 +224,7 @@ paths: example: 91641b54-056c-49ea-b598-ccde81d6c45a required: false description: Filter on the xBot of a customer token - - name: OV pasNumber + - name: ovpasNumber in: query schema: type: string @@ -255,13 +255,13 @@ paths: example: 2027-01-01T09:00:00Z required: false description: Filter on the expirationDate of a customer token - - name: replaceByTokenId + - name: replacedByTokenId in: query schema: type: integer example: 2 required: false - description: Filter on the replaceByTokenId of a customer token + description: Filter on the replacedByTokenId of a customer token summary: Get a list of all OvPayTokens for a certain customer. description: Get a list of all OvPayTokens for a certain customer, only returns the tokens for an identified customer through JWT or customerProfileId in the headers. responses: @@ -293,7 +293,7 @@ paths: { "ovPayTokens": [ { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 1, @@ -359,7 +359,7 @@ paths: { "ovPayTokens": [ { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 2, @@ -432,7 +432,7 @@ paths: { "ovPayTokens": [ { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 2, @@ -535,7 +535,7 @@ paths: { "ovPayTokens": [ { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 2, @@ -632,7 +632,7 @@ paths: { "ovPayTokens": [ { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 2, @@ -729,7 +729,7 @@ paths: { "ovPayTokens": [ { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 2, @@ -751,7 +751,7 @@ paths: } }, { - "customerProfileId": "71ec7a57-7892-4412-afee-5fb35a6f3164", + "customerProfileId": 1, "ovPayTokenId": 6, "tokenType": { "tokenTypeId": 2, @@ -773,7 +773,7 @@ paths: } }, { - "customerProfileId": "71ec7a57-7892-4412-afee-5fb35a6f3164", + "customerProfileId": 18, "ovPayTokenId": 13, "tokenType": { "tokenTypeId": 2, @@ -795,7 +795,7 @@ paths: } }, { - "customerProfileId": "ece2d43c-738d-4ba8-a699-55f7e7c3a8e9", + "customerProfileId": 132, "ovPayTokenId": 21, "tokenType": { "tokenTypeId": 2, @@ -817,7 +817,7 @@ paths: } }, { - "customerProfileId": "ece2d43c-738d-4ba8-a699-55f7e7c3a8e9", + "customerProfileId": 166, "ovPayTokenId": 28, "tokenType": { "tokenTypeId": 2, @@ -839,7 +839,7 @@ paths: } }, { - "customerProfileId": "9c961d08-7304-4bf5-8294-d7247c57555a", + "customerProfileId": 166, "ovPayTokenId": 115, "tokenType": { "tokenTypeId": 2, @@ -861,7 +861,7 @@ paths: } }, { - "customerProfileId": "9c961d08-7304-4bf5-8294-d7247c57555a", + "customerProfileId": 1, "ovPayTokenId": 118, "tokenType": { "tokenTypeId": 2, @@ -961,7 +961,7 @@ paths: value: { "ovPayToken": { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 1, @@ -1027,7 +1027,7 @@ paths: value: { "ovPayToken": { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 2, @@ -1181,7 +1181,7 @@ paths: value: { "ovPayToken": { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 5, "tokenType": { "tokenTypeId": 1, @@ -1241,7 +1241,7 @@ paths: value: { "ovPayToken": { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 5, "tokenType": { "tokenTypeId": 2, @@ -1315,7 +1315,7 @@ paths: value: { "ovPayToken": { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 10, "tokenType": { "tokenTypeId": 1, @@ -1449,7 +1449,7 @@ paths: value: { "ovPayToken": { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 1, @@ -1509,7 +1509,7 @@ paths: value: { "ovPayToken": { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 1, @@ -1569,7 +1569,7 @@ paths: value: { "ovPayToken": { - "customerProfileId": "feaaef83-a551-4283-8419-340b1ada3b55", + "customerProfileId": 1, "ovPayTokenId": 1, "tokenType": { "tokenTypeId": 1, From af52cf93cd64c506ed8549c4fbaec65cfbd448f4 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 31 Mar 2025 11:31:39 +0200 Subject: [PATCH 09/10] fixes --- src/openapi/customers/SE-customers.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index 2e25f10..7b81a12 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -194,13 +194,13 @@ paths: example: Customer required: false description: The role of the HTM employee in the case of the SMP - - name: ovpayTokenId + - name: ovPayTokenId in: query schema: type: integer example: 1 required: false - description: The ovpaytoken id of a specific customer token + description: The ovpay token id of a specific customer token - name: tokenTypeId in: query schema: @@ -412,7 +412,7 @@ paths: "method": "GET" }, "create_tokenPersonalization": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenid=1", "method": "POST" } } @@ -515,7 +515,7 @@ paths: "method": "GET" }, "update_tokenPersonalization": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenid=1", "method": "PUT" } } @@ -612,7 +612,7 @@ paths: "method": "GET" }, "update_tokenPersonalization": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenid=1", "method": "PUT" } } @@ -709,7 +709,7 @@ paths: "method": "GET" }, "update_tokenPersonalization": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenid=1", "method": "PUT" } } @@ -1009,7 +1009,7 @@ paths: "method": "GET" }, "create_tokenPersonalization": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenid=1", "method": "POST" } } @@ -1082,7 +1082,7 @@ paths: "method": "GET" }, "create_tokenPersonalization": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenid=1", "method": "POST" } } @@ -1363,7 +1363,7 @@ paths: "method": "GET" }, "create_tokenPersonalization": { - "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=10", + "href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenid=10", "method": "POST" } } From 6a4a571da7b0d1c184247137f1738c7ac152c617 Mon Sep 17 00:00:00 2001 From: Mirjam Herald Date: Mon, 31 Mar 2025 13:15:59 +0200 Subject: [PATCH 10/10] ovpasnumber --- src/openapi/customers/SE-customers.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index 7b81a12..01434dd 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -968,7 +968,7 @@ paths: "name": "EMV" }, "lastDigits": null, - "OV pasNumber": null, + "ovPpasNumber": null, "alias": "Mijn token", "tokenStatus": { "tokenStatusId": 2, @@ -1034,7 +1034,7 @@ paths: "name": "OV-pas physical" }, "lastDigits": null, - "OV pasNumber": "OV34567", + "ovpasNumber": "OV34567", "alias": "Mijn token", "tokenStatus": { "tokenStatusId": 2, @@ -1188,7 +1188,7 @@ paths: "name": "EMV" }, "lastDigits": null, - "OV pasNumber": null, + "ovpasNumber": null, "alias": "Mijn token", "tokenStatus": { "tokenStatusId": 2, @@ -1248,7 +1248,7 @@ paths: "name": "OV-pas physical" }, "lastDigits": null, - "OV pasNumber":"OV34567", + "ovpasNumber":"OV34567", "alias": "Mijn token", "tokenStatus": { "tokenStatusId": 2, @@ -1322,7 +1322,7 @@ paths: "name": "EMV" }, "lastDigits": null, - "OV pasNumber": null, + "ovpasNumber": null, "alias": "Mijn bestaandetoken", "tokenStatus": { "tokenStatusId": 2, @@ -1456,7 +1456,7 @@ paths: "name": "EMV" }, "lastDigits": null, - "OV pasNumber": null, + "ovpasNumber": null, "alias": "Mijn token", "tokenStatus": { "tokenStatusId": 5, @@ -1516,7 +1516,7 @@ paths: "name": "EMV" }, "lastDigits": null, - "OV pasNumber": null, + "ovpasNumber": null, "alias": "Mijn nieuwe tokennaam", "tokenStatus": { "tokenStatusId": 2, @@ -1576,7 +1576,7 @@ paths: "name": "EMV" }, "lastDigits": null, - "OV pasNumber": null, + "ovpasNumber": null, "alias": "Mijn verloren pas", "tokenStatus": { "tokenStatusId": 5,