openapi: '3.0.2' info: title: DKB PSD2 CertCheck API description: >- version: '1.0.0' servers: - url: 'https://certcheck.dkb.de/api/v1' paths: '/validation': post: tags: - Validation summary: Validate TPP certificate description: >- Validate TPP QWAC certificate operationId: validateCertificate parameters: - in: header name: X-Request-ID required: true description: Unique UUID as correlator. schema: type: string format: uuid requestBody: description: >- Certificate validation request required: true content: 'application/json': schema: $ref: '#/components/schemas/ValidationRequest' responses: '200': description: Validation successful content: application/json: schema: $ref: '#/components/responses/CertificateValidationResponse' examples: validation-success: $ref: '#/components/examples/validationSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/responses/ErrorResponse' examples: validation-badrequest: $ref: '#/components/examples/validationBadRequest' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/responses/ErrorResponse' examples: validation-unauthorized: $ref: '#/components/examples/validationUnauthorized' '403': description: Forbidden content: application/json: schema: $ref: '#/components/responses/ErrorResponse' examples: validation-forbidden: $ref: '#/components/examples/validationForbidden' '409': description: Conflict content: application/json: schema: $ref: '#/components/responses/ErrorResponse' examples: validation-forbidden: $ref: '#/components/examples/validationConflict' '500': description: Internal server error content: application/json: schema: $ref: '#/components/responses/ErrorResponse' examples: validation-server-error: $ref: '#/components/examples/validationServerError' '503': description: Service unavailable content: application/json: schema: $ref: '#/components/responses/CertificateValidationResponse' examples: validation-unavailable: $ref: '#/components/examples/validationUnavailable' components: responses: CertificateValidationResponse: description: >- Successful Validation response content: 'application/json': schema: $ref: '#/components/schemas/ValidationResponse' ErrorResponse: description: >- Error Response content: 'application/json': schema: $ref: '#/components/schemas/ErrorResponse' schemas: ValidationRequest: description: >- Certificate validation request type: object nullable: true ValidationResponse: description: Certificate validation response type: object properties: scopes: type: array description: The scopes of the tpp certificate (AIS,PIS, PIIS). items: $ref: '#/components/schemas/Scope' loginUrl: type: string format: uri description: URL to bank login ErrorResponse: description: Error response type: object properties: errorCode: $ref: '#/components/schemas/ErrorCode' errorMessage: type: string Scope: type: string enum: - AIS - PIS - PIIS ErrorCode: type: string enum: - CERTIFICATE_INVALID - CERTIFICATE_EXPIRED - CERTIFICATE_BLOCKED - CERTIFICATE_REVOKED - TPP_BLOCKED - BAD_REQUEST - GENERIC_ERROR examples: validationSuccess: value: { "scopes": [ 'AIS','PIS','PIIS' ] , "loginUrl": "https://www.dkb.de/banking" } validationBadRequest: value: { "errorCode": "BAD_REQUEST", "errorMessage": "Invalid type for property: X-Request-ID" } validationUnauthorized: value: { "errorCode": "CERTIFICATE_INVALID", "errorMessage": "The certificate is invalid." } validationForbidden: value: { "errorCode": "TPP_BLOCKED", "errorMessage": "Tpp is blocked." } validationUnavailable: value: { "errorCode": "GENERIC_ERROR", "errorMessage": "Service is currently not available." } validationServerError: value: { "errorCode": "GENERIC_ERROR", "errorMessage": "Unspecified error." } validationConflict: value: { "errorCode": "GENERIC_ERROR", "errorMessage": "Unspecified error." }