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: