From 345a12fa902e3b6c8a72cbe233e921f5a756ff99 Mon Sep 17 00:00:00 2001 From: Max Martens Date: Thu, 8 May 2025 19:04:38 +0200 Subject: [PATCH] Add 1211 to PADP Swagger; token compare/replace is added to SE-customers in OVPAY-1742 feature branch and PR --- src/openapi/apim/TP-PAD.yaml | 187 ++++++++++++++++++++++++++++++++++- 1 file changed, 185 insertions(+), 2 deletions(-) diff --git a/src/openapi/apim/TP-PAD.yaml b/src/openapi/apim/TP-PAD.yaml index fe2ae98..5c522d7 100644 --- a/src/openapi/apim/TP-PAD.yaml +++ b/src/openapi/apim/TP-PAD.yaml @@ -1,8 +1,8 @@ openapi: 3.0.1 info: - title: Personal Account Data (PAD) APIs for touchpoints + title: Personal Account Data (PAD) APIs for touchpoints and Service Engine description: |- - APIs for touchpoints to manage Personal Account Data (PAD) on OVpay tokens (xTATs).\ + APIs for touchpoints and Service Engine to manage Personal Account Data (PAD) on OVpay tokens (xTATs).\ These APIs connect directly to the PADP APIs in GBO APIM and are implemented in Logic Apps in the Integration Layer. version: '1.0' @@ -11,6 +11,8 @@ servers: tags: - name: Personal Data APIs for touchpoints description: Personal Data APIs for touchpoints, no Service Engine in between! + - name: Personal Data APIs for Service Engine + description: Personal Data APIs for Service Engine, not to be exposed to touchpoints! paths: /personal-data/{xtat}: post: @@ -230,8 +232,189 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /personal-data/{xtat}/administrative-data: + get: + tags: + - Personal Data APIs for Service Engine + summary: API 1211 - Get Administrative Data + description: Integration Layer utilizes PAD management V2 in GBO APIM (`/pad-management/v2/..`) + operationId: GetAdministrativeData + parameters: + - name: xtat + description: xTAT to get administrative data for + in: path + required: true + schema: + type: string + format: uuid + example: 'c3a6c0f2-3b6a-4b9a-9c5d-5d9c6b3a4c5d' + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/AdministrativeData" + examples: + Valid and complete PAD: + summary: Valid and complete PAD + value: + name: + inaccuracyFlag: false + inaccuracyFlagReason: null + inaccuracyFlagCounter: 0 + changeCounter: 0 + maxUpdatesVerificationCount: 1 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + photo: + inaccuracyFlag: false + inaccuracyFlagReason: null + inaccuracyFlagCounter: 0 + changeCounter: 0 + maxUpdatesVerificationCount: 5 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + birthdate: + inaccuracyFlag: false + inaccuracyFlagReason: null + inaccuracyFlagCounter: 0 + changeCounter: 0 + maxUpdatesVerificationCount: 3 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + Partially filled PAD (no photo): + summary: Partially filled PAD (no photo) + value: + name: + inaccuracyFlag: false + inaccuracyFlagReason: null + inaccuracyFlagCounter: 0 + changeCounter: 0 + maxUpdatesVerificationCount: 1 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + photo: null + birthdate: + inaccuracyFlag: false + inaccuracyFlagReason: null + inaccuracyFlagCounter: 0 + changeCounter: 0 + maxUpdatesVerificationCount: 3 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + Flagged PAD: + summary: Flagged PAD + value: + name: + inaccuracyFlag: true + inaccuracyFlagReason: "Invalid name" + inaccuracyFlagCounter: 1 + changeCounter: 1 + maxUpdatesVerificationCount: 1 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + photo: + inaccuracyFlag: true + inaccuracyFlagReason: "Invalid photo" + inaccuracyFlagCounter: 1 + changeCounter: 0 + maxUpdatesVerificationCount: 5 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + birthdate: + inaccuracyFlag: true + inaccuracyFlagReason: "Invalid birthdate" + inaccuracyFlagCounter: 1 + changeCounter: 2 + maxUpdatesVerificationCount: 3 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + Invalid UUID: + summary: Invalid UUID + value: + errors: + code: "0x03000103" + data: [ + "geen-uuid" + ] + message: "The provided scTat is not a valid UUID" + exceptionClassName: "PadpConstraintViolationException" + exceptionStackTrace: "not available because debug mode is turned off" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + No PAD found for xTAT: + summary: No PAD found for xTAT + value: + errors: + code: "0x03000105" + data: [] + message: "Transit account not found" + exceptionClassName: "PadpEntityNotFoundException" + exceptionStackTrace: "not available because debug mode is turned off" + "500": + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + Unknown xTAT: + summary: Unknown xTAT + value: + errors: + code: "0x00000001" + data: null + message: "400 : \"{\"errorMessage\":{\"referenceId\":\"076f0de4-df33-42a3-add0-def971ab6679\",\"message\":\"Unknown external transit account token.\"},\"businessExceptions\":[{\"code\":\"TM0207\",\"message\":\"Unknown external transit account token.\"}]}\"" + exceptionClassName: "BadRequest" + exceptionStackTrace: "not available because debug mode is turned off" components: schemas: + AdministrativeData: + type: object + properties: + name: + $ref: '#/components/schemas/AdministrativeDataElement' + photo: + $ref: '#/components/schemas/AdministrativeDataElement' + birthdate: + $ref: '#/components/schemas/AdministrativeDataElement' + additionalProperties: false + AdministrativeDataElement: + type: object + properties: + inaccuracyFlag: + type: boolean + inaccuracyFlagReason: + type: string + nullable: true + inaccuracyFlagCounter: + type: integer + format: int32 + changeCounter: + type: integer + format: int32 + maxUpdatesVerificationCount: + type: integer + format: int32 + lastChangeDate: + type: string + format: date-time + isValidated: + type: boolean + additionalProperties: false DecryptedData: type: object properties: