├── .env
├── .github
├── ci-cd-workflows.png
└── workflows
│ ├── daily-heavy-tests.yml
│ ├── deploy-to-ghcr.yml
│ ├── deploy-to-integ.yml
│ ├── develop-push-merge.yml
│ ├── jar-publish.yml
│ ├── manual-heavy-tests.yml
│ ├── pull-requests.yml
│ ├── tag-release-candidate-push.yml
│ └── tag-release-push.yml
├── .gitignore
├── .mvn
└── wrapper
│ ├── MavenWrapperDownloader.java
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── .prettierignore
├── LICENSE
├── Makefile
├── README.md
├── README_DOCKERHUB.md
├── backend.checkstyle.xml
├── backend.pmd-ruleset.xml
├── consent-ui
├── .browserslist
├── .editorconfig
├── .eslintrc.js
├── .gitignore
├── .prettierignore
├── .prettierrc
├── Dockerfile
├── README.md
├── angular.json
├── cypress.config.ts
├── cypress
│ ├── e2e
│ │ └── spec.cy.ts
│ ├── fixtures
│ │ └── example.json
│ ├── support
│ │ ├── commands.ts
│ │ ├── component.ts
│ │ └── e2e.ts
│ └── tsconfig.json
├── entry.sh
├── eslint.config.js
├── jest.config.js
├── nginx.conf
├── package.json
├── proxy-conf-dev-backend.js
├── proxy-conf-docker-backend.json
├── proxy-conf-local-backend.json
├── src
│ ├── app
│ │ ├── ais
│ │ │ ├── ais-routing.module.ts
│ │ │ ├── ais.module.ts
│ │ │ ├── common
│ │ │ │ ├── consent-util.ts
│ │ │ │ ├── constant
│ │ │ │ │ └── constant.ts
│ │ │ │ ├── cookie-renewal
│ │ │ │ │ ├── CookieRenewalService.spec.ts
│ │ │ │ │ └── CookieRenewalService.ts
│ │ │ │ ├── date-util.ts
│ │ │ │ ├── dto
│ │ │ │ │ ├── ais-consent.ts
│ │ │ │ │ └── auth-state.ts
│ │ │ │ └── stub-util-tests.ts
│ │ │ ├── components
│ │ │ │ └── consent-info
│ │ │ │ │ ├── consent-info.component.html
│ │ │ │ │ ├── consent-info.component.scss
│ │ │ │ │ ├── consent-info.component.spec.ts
│ │ │ │ │ └── consent-info.component.ts
│ │ │ ├── enter-pin-page
│ │ │ │ ├── enter-pin-page.component.html
│ │ │ │ ├── enter-pin-page.component.scss
│ │ │ │ ├── enter-pin-page.component.spec.ts
│ │ │ │ └── enter-pin-page.component.ts
│ │ │ ├── enter-tan-page
│ │ │ │ ├── enter-tan-page.component.html
│ │ │ │ ├── enter-tan-page.component.scss
│ │ │ │ ├── enter-tan-page.component.spec.ts
│ │ │ │ └── enter-tan-page.component.ts
│ │ │ ├── entry-page
│ │ │ │ ├── entry-page.component.html
│ │ │ │ ├── entry-page.component.scss
│ │ │ │ ├── entry-page.component.spec.ts
│ │ │ │ ├── entry-page.component.ts
│ │ │ │ └── initiation
│ │ │ │ │ ├── accounts
│ │ │ │ │ ├── accounts-consent-review
│ │ │ │ │ │ ├── accounts-consent-review.component.html
│ │ │ │ │ │ ├── accounts-consent-review.component.scss
│ │ │ │ │ │ ├── accounts-consent-review.component.spec.ts
│ │ │ │ │ │ └── accounts-consent-review.component.ts
│ │ │ │ │ └── entry-page-accounts
│ │ │ │ │ │ ├── entry-page-accounts.component.html
│ │ │ │ │ │ ├── entry-page-accounts.component.scss
│ │ │ │ │ │ ├── entry-page-accounts.component.spec.ts
│ │ │ │ │ │ └── entry-page-accounts.component.ts
│ │ │ │ │ ├── common
│ │ │ │ │ ├── accounts-reference
│ │ │ │ │ │ ├── accounts-reference.component.html
│ │ │ │ │ │ ├── accounts-reference.component.scss
│ │ │ │ │ │ ├── accounts-reference.component.spec.ts
│ │ │ │ │ │ └── accounts-reference.component.ts
│ │ │ │ │ ├── dedicated-access
│ │ │ │ │ │ ├── dedicated-access.component.html
│ │ │ │ │ │ ├── dedicated-access.component.scss
│ │ │ │ │ │ ├── dedicated-access.component.spec.ts
│ │ │ │ │ │ └── dedicated-access.component.ts
│ │ │ │ │ ├── dynamic-inputs
│ │ │ │ │ │ ├── dynamic-inputs.component.html
│ │ │ │ │ │ ├── dynamic-inputs.component.scss
│ │ │ │ │ │ ├── dynamic-inputs.component.spec.ts
│ │ │ │ │ │ └── dynamic-inputs.component.ts
│ │ │ │ │ ├── initial-consent
│ │ │ │ │ │ ├── consent-account-access-selection.component.html
│ │ │ │ │ │ ├── consent-account-access-selection.component.scss
│ │ │ │ │ │ ├── consent-account-access-selection.component.spec.ts
│ │ │ │ │ │ └── consent-account-access-selection.component.ts
│ │ │ │ │ └── shared-routes.ts
│ │ │ │ │ ├── consent-initiate
│ │ │ │ │ ├── consent-initiate.component.html
│ │ │ │ │ ├── consent-initiate.component.scss
│ │ │ │ │ ├── consent-initiate.component.spec.ts
│ │ │ │ │ └── consent-initiate.component.ts
│ │ │ │ │ ├── consent-sharing
│ │ │ │ │ ├── consent-sharing.component.html
│ │ │ │ │ ├── consent-sharing.component.scss
│ │ │ │ │ ├── consent-sharing.component.spec.ts
│ │ │ │ │ └── consent-sharing.component.ts
│ │ │ │ │ └── transactions
│ │ │ │ │ ├── entry-page-transactions
│ │ │ │ │ ├── entry-page-transactions.component.html
│ │ │ │ │ ├── entry-page-transactions.component.scss
│ │ │ │ │ ├── entry-page-transactions.component.spec.ts
│ │ │ │ │ └── entry-page-transactions.component.ts
│ │ │ │ │ └── transactions-consent-review
│ │ │ │ │ ├── transactions-consent-review.component.html
│ │ │ │ │ ├── transactions-consent-review.component.scss
│ │ │ │ │ ├── transactions-consent-review.component.spec.ts
│ │ │ │ │ └── transactions-consent-review.component.ts
│ │ │ ├── error-page
│ │ │ │ ├── error-page.component.html
│ │ │ │ ├── error-page.component.scss
│ │ │ │ ├── error-page.component.spec.ts
│ │ │ │ └── error-page.component.ts
│ │ │ ├── restore-session-page
│ │ │ │ ├── restore-session-page.component.html
│ │ │ │ ├── restore-session-page.component.scss
│ │ │ │ └── restore-session-page.component.ts
│ │ │ ├── result-page
│ │ │ │ ├── result-page.component.html
│ │ │ │ ├── result-page.component.scss
│ │ │ │ ├── result-page.component.spec.ts
│ │ │ │ └── result-page.component.ts
│ │ │ ├── route-based-card-with-sidebar
│ │ │ │ ├── route-based-card-with-sidebar.component.html
│ │ │ │ ├── route-based-card-with-sidebar.component.scss
│ │ │ │ ├── route-based-card-with-sidebar.component.spec.ts
│ │ │ │ └── route-based-card-with-sidebar.component.ts
│ │ │ ├── sca-select-page
│ │ │ │ ├── sca-select-page.component.html
│ │ │ │ ├── sca-select-page.component.scss
│ │ │ │ ├── sca-select-page.component.spec.ts
│ │ │ │ └── sca-select-page.component.ts
│ │ │ ├── sidebar
│ │ │ │ ├── sidebar.component.html
│ │ │ │ ├── sidebar.component.scss
│ │ │ │ ├── sidebar.component.spec.ts
│ │ │ │ └── sidebar.component.ts
│ │ │ ├── to-aspsp-page
│ │ │ │ ├── to-aspsp-redirection.component.html
│ │ │ │ ├── to-aspsp-redirection.component.scss
│ │ │ │ ├── to-aspsp-redirection.component.spec.ts
│ │ │ │ └── to-aspsp-redirection.component.ts
│ │ │ └── wait-for-decoupled
│ │ │ │ ├── wait-for-decoupled.component.html
│ │ │ │ ├── wait-for-decoupled.component.scss
│ │ │ │ └── wait-for-decoupled.component.ts
│ │ ├── api-auth
│ │ │ ├── .gitignore
│ │ │ ├── .openapi-generator-ignore
│ │ │ ├── .openapi-generator
│ │ │ │ └── VERSION
│ │ │ ├── README.md
│ │ │ ├── api.module.ts
│ │ │ ├── api
│ │ │ │ ├── api.ts
│ │ │ │ ├── psuAuthentication.service.ts
│ │ │ │ └── psuAuthenticationAndConsentApproval.service.ts
│ │ │ ├── configuration.ts
│ │ │ ├── encoder.ts
│ │ │ ├── git_push.sh
│ │ │ ├── index.ts
│ │ │ ├── model
│ │ │ │ ├── generalError.ts
│ │ │ │ ├── loginResponse.ts
│ │ │ │ ├── models.ts
│ │ │ │ └── psuAuthBody.ts
│ │ │ └── variables.ts
│ │ ├── api
│ │ │ ├── .gitignore
│ │ │ ├── .openapi-generator-ignore
│ │ │ ├── .openapi-generator
│ │ │ │ └── VERSION
│ │ │ ├── README.md
│ │ │ ├── api.headers.ts
│ │ │ ├── api.module.ts
│ │ │ ├── api
│ │ │ │ ├── api.ts
│ │ │ │ ├── authStateConsentAuthorization.service.ts
│ │ │ │ ├── fromASPSPConsentAuthorization.service.ts
│ │ │ │ └── updateConsentAuthorization.service.ts
│ │ │ ├── configuration.ts
│ │ │ ├── encoder.ts
│ │ │ ├── git_push.sh
│ │ │ ├── index.ts
│ │ │ ├── model
│ │ │ │ ├── accountBalance.ts
│ │ │ │ ├── accountDetails.ts
│ │ │ │ ├── accountReference.ts
│ │ │ │ ├── accountStatus.ts
│ │ │ │ ├── accountType.ts
│ │ │ │ ├── address.ts
│ │ │ │ ├── aisAccountAccessInfo.ts
│ │ │ │ ├── aisConsentRequest.ts
│ │ │ │ ├── amount.ts
│ │ │ │ ├── authViolation.ts
│ │ │ │ ├── balanceType.ts
│ │ │ │ ├── bulkPayment.ts
│ │ │ │ ├── challengeData.ts
│ │ │ │ ├── consentAuth.ts
│ │ │ │ ├── models.ts
│ │ │ │ ├── paymentProduct.ts
│ │ │ │ ├── paymentStatus.ts
│ │ │ │ ├── periodicPayment.ts
│ │ │ │ ├── psuAuthRequest.ts
│ │ │ │ ├── psuMessage.ts
│ │ │ │ ├── scaStatus.ts
│ │ │ │ ├── scaUserData.ts
│ │ │ │ └── singlePayment.ts
│ │ │ └── variables.ts
│ │ ├── app-routing.module.ts
│ │ ├── app.component.html
│ │ ├── app.component.scss
│ │ ├── app.component.spec.ts
│ │ ├── app.component.ts
│ │ ├── app.module.ts
│ │ ├── auth
│ │ │ ├── anonymous
│ │ │ │ ├── anonymous.component.html
│ │ │ │ ├── anonymous.component.spec.ts
│ │ │ │ └── anonymous.component.ts
│ │ │ ├── auth-routing.module.ts
│ │ │ ├── auth.component.scss
│ │ │ ├── auth.module.ts
│ │ │ ├── login
│ │ │ │ ├── login.component.html
│ │ │ │ ├── login.component.spec.ts
│ │ │ │ └── login.component.ts
│ │ │ └── register
│ │ │ │ ├── register.component.html
│ │ │ │ ├── register.component.spec.ts
│ │ │ │ └── register.component.ts
│ │ ├── common
│ │ │ ├── auth.service.spec.ts
│ │ │ ├── auth.service.ts
│ │ │ ├── enter-pin
│ │ │ │ ├── enter-pin.component.html
│ │ │ │ ├── enter-pin.component.scss
│ │ │ │ ├── enter-pin.component.spec.ts
│ │ │ │ └── enter-pin.component.ts
│ │ │ ├── enter-tan
│ │ │ │ ├── enter-tan.component.html
│ │ │ │ ├── enter-tan.component.scss
│ │ │ │ ├── enter-tan.component.spec.ts
│ │ │ │ └── enter-tan.component.ts
│ │ │ ├── restore-session
│ │ │ │ ├── restore-session.component.html
│ │ │ │ ├── restore-session.component.scss
│ │ │ │ ├── restore-session.component.spec.ts
│ │ │ │ └── restore-session.component.ts
│ │ │ ├── result
│ │ │ │ ├── result.component.html
│ │ │ │ ├── result.component.scss
│ │ │ │ ├── result.component.spec.ts
│ │ │ │ └── result.component.ts
│ │ │ ├── select-sca
│ │ │ │ ├── select-sca.component.html
│ │ │ │ ├── select-sca.component.scss
│ │ │ │ ├── select-sca.component.spec.ts
│ │ │ │ └── select-sca.component.ts
│ │ │ ├── session.service.spec.ts
│ │ │ ├── session.service.ts
│ │ │ ├── shared.module.ts
│ │ │ ├── to-aspsp
│ │ │ │ ├── to-aspsp.component.html
│ │ │ │ ├── to-aspsp.component.scss
│ │ │ │ ├── to-aspsp.component.spec.ts
│ │ │ │ └── to-aspsp.component.ts
│ │ │ └── utils
│ │ │ │ ├── action.ts
│ │ │ │ └── stub-util.ts
│ │ ├── errorsHandler
│ │ │ ├── error.service.spec.ts
│ │ │ ├── error.service.ts
│ │ │ ├── global-errors-handler.ts
│ │ │ └── info
│ │ │ │ ├── info-options.ts
│ │ │ │ ├── info.component.html
│ │ │ │ ├── info.component.scss
│ │ │ │ ├── info.component.ts
│ │ │ │ ├── info.module.ts
│ │ │ │ └── info.service.ts
│ │ ├── guards
│ │ │ ├── auth.guard.spec.ts
│ │ │ └── auth.guard.ts
│ │ ├── pis
│ │ │ ├── common
│ │ │ │ ├── models
│ │ │ │ │ └── pis-payment.model.ts
│ │ │ │ └── payment-util.ts
│ │ │ ├── consent-payment-access-selection
│ │ │ │ ├── consent-payment-access-selection.component.html
│ │ │ │ ├── consent-payment-access-selection.component.scss
│ │ │ │ ├── consent-payment-access-selection.component.spec.ts
│ │ │ │ └── consent-payment-access-selection.component.ts
│ │ │ ├── dynamic-inputs
│ │ │ │ ├── dynamic-inputs.component.html
│ │ │ │ ├── dynamic-inputs.component.scss
│ │ │ │ ├── dynamic-inputs.component.spec.ts
│ │ │ │ └── dynamic-inputs.component.ts
│ │ │ ├── enter-pin-page
│ │ │ │ ├── enter-pin-page.component.html
│ │ │ │ ├── enter-pin-page.component.scss
│ │ │ │ ├── enter-pin-page.component.spec.ts
│ │ │ │ └── enter-pin-page.component.ts
│ │ │ ├── enter-tan-page
│ │ │ │ ├── enter-tan-page.component.html
│ │ │ │ ├── enter-tan-page.component.scss
│ │ │ │ ├── enter-tan-page.component.spec.ts
│ │ │ │ └── enter-tan-page.component.ts
│ │ │ ├── entry-page-payments
│ │ │ │ ├── entry-page-payments.component.html
│ │ │ │ ├── entry-page-payments.component.scss
│ │ │ │ ├── entry-page-payments.component.spec.ts
│ │ │ │ └── entry-page-payments.component.ts
│ │ │ ├── entry-page
│ │ │ │ ├── entry-page.component.html
│ │ │ │ ├── entry-page.component.scss
│ │ │ │ ├── entry-page.component.spec.ts
│ │ │ │ └── entry-page.component.ts
│ │ │ ├── initiation
│ │ │ │ ├── payment-initiate.component.html
│ │ │ │ ├── payment-initiate.component.scss
│ │ │ │ ├── payment-initiate.component.spec.ts
│ │ │ │ └── payment-initiate.component.ts
│ │ │ ├── payment-info
│ │ │ │ ├── payment-info.component.html
│ │ │ │ ├── payment-info.component.scss
│ │ │ │ ├── payment-info.component.spec.ts
│ │ │ │ └── payment-info.component.ts
│ │ │ ├── payments-consent-review
│ │ │ │ ├── payments-consent-review.component.html
│ │ │ │ ├── payments-consent-review.component.scss
│ │ │ │ ├── payments-consent-review.component.spec.ts
│ │ │ │ └── payments-consent-review.component.ts
│ │ │ ├── pis-routing.module.ts
│ │ │ ├── pis.module.ts
│ │ │ ├── restore-session-page
│ │ │ │ ├── restore-session-page.component.html
│ │ │ │ ├── restore-session-page.component.scss
│ │ │ │ └── restore-session-page.component.ts
│ │ │ ├── result-page
│ │ │ │ ├── result-page.component.html
│ │ │ │ ├── result-page.component.scss
│ │ │ │ ├── result-page.component.spec.ts
│ │ │ │ └── result-page.component.ts
│ │ │ ├── select-sca-page
│ │ │ │ ├── select-sca-page.component.html
│ │ │ │ ├── select-sca-page.component.scss
│ │ │ │ ├── select-sca-page.component.spec.ts
│ │ │ │ └── select-sca-page.component.ts
│ │ │ ├── to-aspsp-page
│ │ │ │ ├── to-aspsp-page.component.html
│ │ │ │ ├── to-aspsp-page.component.scss
│ │ │ │ ├── to-aspsp-page.component.spec.ts
│ │ │ │ └── to-aspsp-page.component.ts
│ │ │ └── wait-for-decoupled
│ │ │ │ ├── wait-for-decoupled.component.html
│ │ │ │ ├── wait-for-decoupled.component.scss
│ │ │ │ └── wait-for-decoupled.component.ts
│ │ ├── services
│ │ │ ├── customize.service.spec.ts
│ │ │ └── customize.service.ts
│ │ └── utilities
│ │ │ ├── customValidators.spec.ts
│ │ │ ├── customValidators.ts
│ │ │ ├── ngx-chiptan
│ │ │ ├── flicker.ts
│ │ │ └── ngx-chiptan.component.ts
│ │ │ └── simple-timer.ts
│ ├── assets
│ │ ├── UI
│ │ │ └── Logo_OPBA.png
│ │ ├── custom
│ │ │ └── favicon.png
│ │ ├── fonts
│ │ │ └── Geometric
│ │ │ │ ├── URWGeometric-Bold.otf
│ │ │ │ ├── URWGeometric-Light.otf
│ │ │ │ ├── URWGeometric-Medium.otf
│ │ │ │ ├── URWGeometric-Regular.otf
│ │ │ │ ├── URWGeometric-SemiBold.otf
│ │ │ │ ├── URWGeometricCond-Bold.otf
│ │ │ │ ├── URWGeometricCond-ExtraBold.otf
│ │ │ │ ├── URWGeometricCond-Medium.otf
│ │ │ │ ├── URWGeometricCond-Regular.otf
│ │ │ │ └── URWGeometricCond-SemiBold.otf
│ │ ├── icons
│ │ │ ├── card_payment.png
│ │ │ ├── icons8-approval.png
│ │ │ ├── icons8-bank_cards.svg
│ │ │ ├── icons8-checked.png
│ │ │ ├── icons8-last_24_hours.png
│ │ │ ├── icons8-mark_view_as_non_hidden.png
│ │ │ ├── minus.png
│ │ │ ├── plus.png
│ │ │ └── receive_dollar.png
│ │ └── themes
│ │ │ ├── _bootstrap-overrides.scss
│ │ │ ├── _fonts.scss
│ │ │ ├── _mobile.scss
│ │ │ ├── _variables.scss
│ │ │ └── base-card.scss
│ ├── environments
│ │ ├── environment.prod.ts
│ │ └── environment.ts
│ ├── favicon.ico
│ ├── index.html
│ ├── main.ts
│ ├── polyfills.ts
│ └── styles.scss
├── tsconfig.app.json
├── tsconfig.cypress.json
├── tsconfig.json
└── tsconfig.spec.json
├── docker-compose-dev.yml
├── docker-compose.yml
├── docs
├── ContributionGuidelines.md
├── architecture
│ ├── 1-loginWithFinTech.md
│ ├── 2-searchBank.md
│ ├── 3-selectBank.md
│ ├── 4a-aisListOfAccounts.md
│ ├── 4b-aisListOfTransactions.md
│ ├── 5-redirectPsuToConsentAPI.md
│ ├── 5a-psuAuthEmbeddedConsent.md
│ ├── 5b-psuAuthRedirectConsent.md
│ ├── 6-consume_api.md
│ ├── big-picture.drawio
│ ├── building_blocks
│ │ ├── 01.Application_context.md
│ │ ├── 01.application_context.puml
│ │ ├── 02.Component_diagrams.md
│ │ ├── 02.whitebox_overall.puml
│ │ └── 021.whitebox_bankingprotocol.puml
│ ├── concepts
│ │ ├── fundamentals-of-redirect.md
│ │ ├── psu-device-redirection.md
│ │ └── psu-security-concept.md
│ ├── diagrams
│ │ ├── components
│ │ │ ├── ideal-result-mappings.svg
│ │ │ ├── psu-identities.puml
│ │ │ └── redirect.puml
│ │ ├── service-request.puml
│ │ └── useCases
│ │ │ ├── 1-loginWithFinTech.puml
│ │ │ ├── 2-searchBank.puml
│ │ │ ├── 2a-searchBankLocal.puml
│ │ │ ├── 3-selectBank.puml
│ │ │ ├── 4a-aisListOfAccounts.puml
│ │ │ ├── 4b-aisListOfTransactions.puml
│ │ │ ├── 5-redirectPsuToConsentAPI.puml
│ │ │ ├── 5a-psuAuthEmbeddedConsent.puml
│ │ │ ├── 5b-psuAuthRedirectConsent.puml
│ │ │ ├── 6-consume_api.puml
│ │ │ ├── psu-security attack.puml
│ │ │ └── psu-security.puml
│ ├── dictionary-sort-script.sh
│ ├── dictionary.md
│ ├── drafts
│ │ ├── implementation-draft-v0.puml
│ │ ├── implementation-v0-bird-view.puml
│ │ ├── implementation-v0-consent.puml
│ │ ├── implementation-v0-full-flow-payment.puml
│ │ ├── implementation-v0-full-flow-tx-list.puml
│ │ ├── implementation-v0-generic.puml
│ │ ├── implementation-v0-tx-list.puml
│ │ ├── initial_requirements.md
│ │ ├── payment-dynamic-param.puml
│ │ ├── payment-static-param.puml
│ │ └── session-cookie.puml
│ ├── error-response-layer-diagram.drawio
│ ├── framework-security.md
│ ├── technical-details.md
│ └── use_cases.md
├── deliverables_deployment.md
├── demo_env.md
├── getting_started.md
├── img
│ ├── big-picture.png
│ ├── demo
│ │ ├── fintech-cookie-handling.drawio
│ │ ├── fintech-cookie-handling.png
│ │ ├── fintech-get-account-list.png
│ │ ├── fintech-login.png
│ │ ├── fintech-redirect-to-opba.png
│ │ ├── fintech-select-accounts.png
│ │ ├── fintech-select-bank.png
│ │ ├── opba-consent-granted.png
│ │ ├── opba-consent.png
│ │ ├── opba-login.png
│ │ ├── opba-register.png
│ │ └── opba-review-consent.png
│ ├── open-banking-gateway-arch-14-01-2020.png
│ ├── open-banking-gateway-psu-interface.png
│ ├── redir
│ │ ├── API-Redir-Browser-NativeApp.png
│ │ ├── API-Redir-In-Browser.png
│ │ ├── All-Redirs.png
│ │ ├── RedirectAbstract.png
│ │ ├── UI-Redir-Browser-NativeApp.png
│ │ ├── UI-Redir-In-Browser.png
│ │ ├── client-server.png
│ │ ├── idp-client-server.png
│ │ └── oauth2-flow.png
│ ├── security-concept.png
│ ├── security-details
│ │ ├── anonymous-security-concept-details.png
│ │ └── authenticated-security-concept-details.png
│ └── technical-architecture.svg
├── initial_requirements.md
├── opba-register.png
│ └── Selection_058.png
├── release-notes
│ ├── releasenotes-1.0.2.md
│ └── releasenotes.md
├── release_process.md
├── releasenotes.md
├── roadmap.md
└── version_policy.md
├── fintech-examples
├── CookieManagement.md
├── README.md
├── fintech-api
│ ├── README.md
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── fintech
│ │ │ └── api
│ │ │ ├── config
│ │ │ ├── EnableFinTechApi.java
│ │ │ └── FinTechApiConfig.java
│ │ │ └── resource
│ │ │ ├── AccountInformationResource.java
│ │ │ ├── AuthorizationResource.java
│ │ │ └── BankSearchResource.java
│ │ └── resources
│ │ └── static
│ │ └── fintech_api.yml
├── fintech-db-schema
│ ├── .gitignore
│ ├── README.md
│ ├── liquibase.example.properties
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── resources
│ │ ├── init.sql
│ │ └── migration
│ │ ├── master.xml
│ │ └── migrations
│ │ ├── 0000-init-schema.xml
│ │ └── README.txt
├── fintech-example-tests
│ ├── pom.xml
│ └── src
│ │ └── test
│ │ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── fintech
│ │ │ └── tests
│ │ │ └── e2e
│ │ │ ├── FintechConsentUiSmokeE2ETest.java
│ │ │ ├── FintechPaymentSmokeE2ETest.java
│ │ │ ├── JGivenConfig.java
│ │ │ ├── config
│ │ │ ├── ConsentAuthApproachState.java
│ │ │ ├── FintechCookieProperties.java
│ │ │ ├── RetryableConfig.java
│ │ │ └── SmokeConfig.java
│ │ │ └── steps
│ │ │ ├── FintechServer.java
│ │ │ ├── FintechStagesUtils.java
│ │ │ ├── UserInformationResult.java
│ │ │ └── WebDriverBasedUserInfoFintech.java
│ │ └── resources
│ │ └── application-test-smoke-fintech.yml
├── fintech-impl
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── fintech
│ │ │ └── impl
│ │ │ ├── config
│ │ │ ├── DateTimeFormatConfig.java
│ │ │ ├── EnableFinTechImplConfig.java
│ │ │ ├── FeignConfig.java
│ │ │ ├── FeignDateTimeFormatConfig.java
│ │ │ ├── FinTechImplConfig.java
│ │ │ ├── FintechRequestSigningConfig.java
│ │ │ ├── FintechUiConfig.java
│ │ │ ├── GmailOauth2Config.java
│ │ │ ├── Oauth2Config.java
│ │ │ ├── Oauth2Provider.java
│ │ │ ├── PasswordEncoderConfig.java
│ │ │ ├── RestRequestContextConfig.java
│ │ │ ├── ServiceAccountsConfig.java
│ │ │ └── UserRegistrationConfig.java
│ │ │ ├── controller
│ │ │ ├── FinTechAccountInformationImpl.java
│ │ │ ├── FinTechAuthorizationImpl.java
│ │ │ ├── FinTechBankSearchImpl.java
│ │ │ ├── FinTechIbanSearchImpl.java
│ │ │ ├── FinTechOauth2AuthenticationImpl.java
│ │ │ ├── FintechRetrievalConsentImpl.java
│ │ │ ├── FintechRetrieveAllSinglePaymentsImpl.java
│ │ │ ├── FintechSinglePaymentInitiationImpl.java
│ │ │ ├── GenericControllerAdvice.java
│ │ │ └── utils
│ │ │ │ ├── LoARetrievalInformation.java
│ │ │ │ ├── LoTRetrievalInformation.java
│ │ │ │ ├── OkOrNotOk.java
│ │ │ │ └── RestRequestContext.java
│ │ │ ├── database
│ │ │ ├── entities
│ │ │ │ ├── ConsentEntity.java
│ │ │ │ ├── LoginEntity.java
│ │ │ │ ├── OauthSessionEntity.java
│ │ │ │ ├── PaymentEntity.java
│ │ │ │ ├── RedirectUrlsEntity.java
│ │ │ │ ├── SessionEntity.java
│ │ │ │ └── UserEntity.java
│ │ │ ├── hibernate
│ │ │ │ └── PrefixAndSnakeCasePhysicalNamingStrategy.java
│ │ │ └── repositories
│ │ │ │ ├── ConsentRepository.java
│ │ │ │ ├── LoginRepository.java
│ │ │ │ ├── OauthSessionEntityRepository.java
│ │ │ │ ├── PaymentRepository.java
│ │ │ │ ├── RedirectUrlRepository.java
│ │ │ │ ├── SessionRepository.java
│ │ │ │ └── UserRepository.java
│ │ │ ├── exceptions
│ │ │ ├── ConsentException.java
│ │ │ ├── EmailNotAllowed.java
│ │ │ ├── EmailNotVerified.java
│ │ │ ├── GlobalExceptionHandler.java
│ │ │ ├── InvalidIbanException.java
│ │ │ └── Oauth2UnauthorizedException.java
│ │ │ ├── mapper
│ │ │ ├── AccountListMapper.java
│ │ │ ├── BankDescriptorMapper.java
│ │ │ ├── BankInfoMapper.java
│ │ │ ├── BankProfileDescriptorMapper.java
│ │ │ ├── ManualMapper.java
│ │ │ ├── PaymentInitiationWithStatusResponseMapper.java
│ │ │ └── TransactionsResponseMapper.java
│ │ │ ├── properties
│ │ │ ├── CookieConfigProperties.java
│ │ │ ├── CookieConfigPropertiesSpecific.java
│ │ │ └── TppProperties.java
│ │ │ ├── service
│ │ │ ├── AccountService.java
│ │ │ ├── AuthorizeService.java
│ │ │ ├── BankSearchService.java
│ │ │ ├── ConsentRetrievalService.java
│ │ │ ├── ConsentService.java
│ │ │ ├── FinTechTokenService.java
│ │ │ ├── HandleAcceptedService.java
│ │ │ ├── IbanSearchService.java
│ │ │ ├── PaymentService.java
│ │ │ ├── RedirectHandlerService.java
│ │ │ ├── ServiceAccountsOper.java
│ │ │ ├── SessionLogicService.java
│ │ │ ├── TransactionService.java
│ │ │ └── oauth2
│ │ │ │ ├── BaseOauth2AuthorizationCodeAuthenticator.java
│ │ │ │ ├── GmailOauth2AuthenticateService.java
│ │ │ │ ├── Oauth2AuthResult.java
│ │ │ │ ├── Oauth2Authenticator.java
│ │ │ │ └── Oauth2Const.java
│ │ │ └── tppclients
│ │ │ ├── Actions.java
│ │ │ ├── AisErrorDecoder.java
│ │ │ ├── ConsentType.java
│ │ │ ├── Consts.java
│ │ │ ├── HeaderFields.java
│ │ │ ├── QueryFields.java
│ │ │ ├── TppAisClient.java
│ │ │ ├── TppBankSearchClient.java
│ │ │ ├── TppConsentClient.java
│ │ │ ├── TppIbanSearchClient.java
│ │ │ ├── TppPaymentClient.java
│ │ │ ├── TppPisPaymentStatusClient.java
│ │ │ └── TppPisSinglePaymentClient.java
│ │ └── test
│ │ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── fintech
│ │ │ └── impl
│ │ │ ├── ReplaceAuthIDTest.java
│ │ │ ├── database
│ │ │ ├── DatabaseTest.java
│ │ │ ├── RedirectUrlDatabaseTest.java
│ │ │ └── entities
│ │ │ │ └── TestHashing.java
│ │ │ ├── mapper
│ │ │ └── MapperTest.java
│ │ │ └── service
│ │ │ ├── BankSearchServiceTest.java
│ │ │ └── RedirectHandlerServiceTest.java
│ │ └── resources
│ │ ├── application.yml
│ │ └── logback-test.xml
├── fintech-last-module-codecoverage
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── dtd
│ │ └── jacoco
│ │ │ └── report.dtd
│ │ └── xsl
│ │ └── analyse.jacoco.result.xsl
├── fintech-server
│ ├── Dockerfile
│ ├── README.md
│ ├── pom.xml
│ └── src
│ │ ├── deb
│ │ └── control
│ │ │ ├── control
│ │ │ └── postinst
│ │ ├── main
│ │ ├── java
│ │ │ └── de
│ │ │ │ └── adorsys
│ │ │ │ └── opba
│ │ │ │ └── fintech
│ │ │ │ └── server
│ │ │ │ └── FinTechServer.java
│ │ └── resources
│ │ │ ├── application.yml
│ │ │ ├── logback.xml
│ │ │ └── static
│ │ │ └── index.html
│ │ └── test
│ │ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── fintech
│ │ │ └── server
│ │ │ ├── AuthorizationApiTest.java
│ │ │ ├── AuthorizationServiceAccountApiTest.java
│ │ │ ├── FinTechApiBaseTest.java
│ │ │ ├── FinTechBankSearchApiTest.java
│ │ │ ├── FinTechIbanSearchApiTest.java
│ │ │ ├── FinTechListAccountsTest.java
│ │ │ ├── FinTechListTransactionsTest.java
│ │ │ ├── GmailOAuth2AuthenticationTest.java
│ │ │ ├── LoginBody.java
│ │ │ ├── OffsetDateTimeAdapter.java
│ │ │ ├── config
│ │ │ └── TestConfig.java
│ │ │ └── feignmocks
│ │ │ ├── TppAisClientFeignMock.java
│ │ │ └── TppBankSearchClientFeignMock.java
│ │ └── resources
│ │ ├── TPP_BankProfileResponse-356938ab-9561-408f-ac7a-a9089c1623b7.json
│ │ ├── TPP_BankProfileResponse-af062b06-ee6e-45f9-9163-b97320c6881a.json
│ │ ├── TPP_BankSearchResponse-affe-1-2.json
│ │ ├── TPP_LIST_ACCOUNTS.json
│ │ ├── TPP_LIST_TRANSACTIONS.json
│ │ ├── application-service-account.yml
│ │ ├── application.yml
│ │ ├── init.sql
│ │ └── wiremock
│ │ └── gmail-oauth
│ │ ├── __files
│ │ └── body-token-RbOSS.json
│ │ └── mappings
│ │ └── mapping-token-RbOSS.json
├── fintech-ui
│ ├── .browserslist
│ ├── .dockerignore
│ ├── .editorconfig
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .prettierignore
│ ├── .prettierrc
│ ├── Dockerfile
│ ├── README.md
│ ├── angular.json
│ ├── cypress.config.ts
│ ├── cypress
│ │ ├── e2e
│ │ │ └── spec.cy.ts
│ │ ├── fixtures
│ │ │ └── example.json
│ │ ├── support
│ │ │ ├── commands.ts
│ │ │ ├── component-index.html
│ │ │ ├── component.ts
│ │ │ └── e2e.ts
│ │ └── tsconfig.json
│ ├── docker-root
│ │ ├── entry.sh
│ │ └── etc
│ │ │ └── nginx
│ │ │ └── conf.d
│ │ │ └── default.conf.erb
│ ├── eslint.config.js
│ ├── karma.conf.js
│ ├── package.json
│ ├── proxy-conf-dev-backend.js
│ ├── proxy-dev.conf.json
│ ├── proxy-docker.conf.json
│ ├── proxy.conf.json
│ ├── src
│ │ ├── app
│ │ │ ├── api
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .openapi-generator-ignore
│ │ │ │ ├── .openapi-generator
│ │ │ │ │ └── VERSION
│ │ │ │ ├── README.md
│ │ │ │ ├── api.module.ts
│ │ │ │ ├── api
│ │ │ │ │ ├── api.ts
│ │ │ │ │ ├── finTechAccountInformation.service.ts
│ │ │ │ │ ├── finTechAuthorization.service.ts
│ │ │ │ │ ├── finTechBankSearch.service.ts
│ │ │ │ │ ├── finTechGmailAuthentication.service.ts
│ │ │ │ │ ├── finTechOauth2Authentication.service.ts
│ │ │ │ │ ├── fintechRetrieveAllSinglePayments.service.ts
│ │ │ │ │ ├── fintechRetrieveConsent.service.ts
│ │ │ │ │ └── fintechSinglePaymentInitiation.service.ts
│ │ │ │ ├── configuration.ts
│ │ │ │ ├── encoder.ts
│ │ │ │ ├── git_push.sh
│ │ │ │ ├── index.ts
│ │ │ │ ├── model-classes
│ │ │ │ │ └── ClassSinglePaymentInitiationRequest.ts
│ │ │ │ ├── model
│ │ │ │ │ ├── accountBalance.ts
│ │ │ │ │ ├── accountDetails.ts
│ │ │ │ │ ├── accountList.ts
│ │ │ │ │ ├── accountReference.ts
│ │ │ │ │ ├── accountReport.ts
│ │ │ │ │ ├── accountStatus.ts
│ │ │ │ │ ├── address.ts
│ │ │ │ │ ├── aisAccountAccessInfo.ts
│ │ │ │ │ ├── aisConsentRequest.ts
│ │ │ │ │ ├── amount.ts
│ │ │ │ │ ├── analyticsReportDetails.ts
│ │ │ │ │ ├── balanceAccount.ts
│ │ │ │ │ ├── bankDescriptor.ts
│ │ │ │ │ ├── bankProfile.ts
│ │ │ │ │ ├── errorResponse.ts
│ │ │ │ │ ├── generalError.ts
│ │ │ │ │ ├── hrefType.ts
│ │ │ │ │ ├── inlineResponse200.ts
│ │ │ │ │ ├── inlineResponse2001.ts
│ │ │ │ │ ├── inlineResponse2002.ts
│ │ │ │ │ ├── inlineResponse2003.ts
│ │ │ │ │ ├── inlineResponse2004.ts
│ │ │ │ │ ├── linksAccountDetails.ts
│ │ │ │ │ ├── loginRequest.ts
│ │ │ │ │ ├── models.ts
│ │ │ │ │ ├── paymentInitiationWithStatusResponse.ts
│ │ │ │ │ ├── psuMessage.ts
│ │ │ │ │ ├── purposeCode.ts
│ │ │ │ │ ├── reportExchangeRate.ts
│ │ │ │ │ ├── searchInput.ts
│ │ │ │ │ ├── searchMaxResult.ts
│ │ │ │ │ ├── searchStartIndex.ts
│ │ │ │ │ ├── searchTotalResult.ts
│ │ │ │ │ ├── singlePaymentInitiationRequest.ts
│ │ │ │ │ ├── transactionDetails.ts
│ │ │ │ │ ├── transactionsResponse.ts
│ │ │ │ │ └── userProfile.ts
│ │ │ │ └── variables.ts
│ │ │ ├── app.component.html
│ │ │ ├── app.component.scss
│ │ │ ├── app.component.spec.ts
│ │ │ ├── app.component.ts
│ │ │ ├── app.module.ts
│ │ │ ├── app.routes.ts
│ │ │ ├── bank-search
│ │ │ │ ├── bank-search.component.html
│ │ │ │ ├── bank-search.component.scss
│ │ │ │ ├── bank-search.component.spec.ts
│ │ │ │ ├── bank-search.component.ts
│ │ │ │ └── services
│ │ │ │ │ ├── bank-profile.service.spec.ts
│ │ │ │ │ ├── bank-profile.service.ts
│ │ │ │ │ ├── bank-search.service.spec.ts
│ │ │ │ │ └── bank-search.service.ts
│ │ │ ├── bank
│ │ │ │ ├── bank.component.html
│ │ │ │ ├── bank.component.scss
│ │ │ │ ├── bank.component.spec.ts
│ │ │ │ ├── bank.component.ts
│ │ │ │ ├── bank.routes.ts
│ │ │ │ ├── common
│ │ │ │ │ ├── account-card
│ │ │ │ │ │ ├── account-card.component.html
│ │ │ │ │ │ ├── account-card.component.scss
│ │ │ │ │ │ ├── account-card.component.spec.ts
│ │ │ │ │ │ └── account-card.component.ts
│ │ │ │ │ ├── payment-card
│ │ │ │ │ │ ├── payment-card.component.html
│ │ │ │ │ │ ├── payment-card.component.spec.ts
│ │ │ │ │ │ └── payment-card.component.ts
│ │ │ │ │ ├── payment-transaction-card.scss
│ │ │ │ │ └── transaction-card
│ │ │ │ │ │ ├── transaction-card.component.html
│ │ │ │ │ │ ├── transaction-card.component.spec.ts
│ │ │ │ │ │ └── transaction-card.component.ts
│ │ │ │ ├── list-accounts
│ │ │ │ │ ├── list-accounts.component.html
│ │ │ │ │ ├── list-accounts.component.scss
│ │ │ │ │ ├── list-accounts.component.ts
│ │ │ │ │ ├── list-accounts.routes.ts
│ │ │ │ │ └── list.accounts.component.spec.ts
│ │ │ │ ├── list-transactions
│ │ │ │ │ ├── list-transactions.component.html
│ │ │ │ │ ├── list-transactions.component.scss
│ │ │ │ │ ├── list-transactions.component.ts
│ │ │ │ │ └── list.transactions.component.spec.ts
│ │ │ │ ├── payment
│ │ │ │ │ ├── payment-account-payments
│ │ │ │ │ │ ├── payment-account-payments.component.html
│ │ │ │ │ │ ├── payment-account-payments.component.scss
│ │ │ │ │ │ ├── payment-account-payments.component.spec.ts
│ │ │ │ │ │ └── payment-account-payments.component.ts
│ │ │ │ │ ├── payment-account
│ │ │ │ │ │ ├── payment-account.component.html
│ │ │ │ │ │ ├── payment-account.component.scss
│ │ │ │ │ │ ├── payment-account.component.spec.ts
│ │ │ │ │ │ └── payment-account.component.ts
│ │ │ │ │ ├── payment-accounts
│ │ │ │ │ │ ├── payment-accounts.component.html
│ │ │ │ │ │ ├── payment-accounts.component.scss
│ │ │ │ │ │ ├── payment-accounts.component.spec.ts
│ │ │ │ │ │ └── payment-accounts.component.ts
│ │ │ │ │ ├── payment-confirm
│ │ │ │ │ │ ├── confirm.component.html
│ │ │ │ │ │ ├── confirm.component.scss
│ │ │ │ │ │ ├── confirm.component.spec.ts
│ │ │ │ │ │ ├── confirm.component.ts
│ │ │ │ │ │ └── confirm.data.ts
│ │ │ │ │ ├── payment-initiate
│ │ │ │ │ │ ├── initiate.component.html
│ │ │ │ │ │ ├── initiate.component.scss
│ │ │ │ │ │ ├── initiate.component.spec.ts
│ │ │ │ │ │ └── initiate.component.ts
│ │ │ │ │ ├── payment-result
│ │ │ │ │ │ ├── result.component.html
│ │ │ │ │ │ ├── result.component.scss
│ │ │ │ │ │ ├── result.component.spec.ts
│ │ │ │ │ │ └── result.component.ts
│ │ │ │ │ ├── payment.component.html
│ │ │ │ │ ├── payment.component.scss
│ │ │ │ │ ├── payment.component.spec.ts
│ │ │ │ │ ├── payment.component.ts
│ │ │ │ │ └── payment.routes.ts
│ │ │ │ ├── redirect-page
│ │ │ │ │ ├── redirect-page.component.html
│ │ │ │ │ ├── redirect-page.component.scss
│ │ │ │ │ ├── redirect-page.component.spec.ts
│ │ │ │ │ ├── redirect-page.component.ts
│ │ │ │ │ └── redirect-struct.ts
│ │ │ │ ├── services
│ │ │ │ │ ├── ais.service.spec.ts
│ │ │ │ │ ├── ais.service.ts
│ │ │ │ │ ├── consent-authorization.service.spec.ts
│ │ │ │ │ └── consent-authorization.service.ts
│ │ │ │ ├── settings
│ │ │ │ │ ├── settings.component.html
│ │ │ │ │ ├── settings.component.scss
│ │ │ │ │ ├── settings.component.spec.ts
│ │ │ │ │ └── settings.component.ts
│ │ │ │ └── sidebar
│ │ │ │ │ ├── sidebar.component.html
│ │ │ │ │ ├── sidebar.component.scss
│ │ │ │ │ ├── sidebar.component.spec.ts
│ │ │ │ │ └── sidebar.component.ts
│ │ │ ├── common
│ │ │ │ ├── modal-card
│ │ │ │ │ ├── modal-card.component.html
│ │ │ │ │ ├── modal-card.component.scss
│ │ │ │ │ ├── modal-card.component.spec.ts
│ │ │ │ │ └── modal-card.component.ts
│ │ │ │ ├── navbar
│ │ │ │ │ ├── navbar.component.html
│ │ │ │ │ ├── navbar.component.scss
│ │ │ │ │ ├── navbar.component.spec.ts
│ │ │ │ │ └── navbar.component.ts
│ │ │ │ ├── search
│ │ │ │ │ ├── search.component.html
│ │ │ │ │ ├── search.component.scss
│ │ │ │ │ ├── search.component.spec.ts
│ │ │ │ │ └── search.component.ts
│ │ │ │ └── shared.module.ts
│ │ │ ├── errorsHandler
│ │ │ │ ├── error.service.spec.ts
│ │ │ │ ├── error.service.ts
│ │ │ │ ├── global-errors-handler.ts
│ │ │ │ └── info
│ │ │ │ │ ├── info-options.ts
│ │ │ │ │ ├── info.component.html
│ │ │ │ │ ├── info.component.scss
│ │ │ │ │ ├── info.component.ts
│ │ │ │ │ └── info.service.ts
│ │ │ ├── guards
│ │ │ │ ├── auth.guard.spec.ts
│ │ │ │ ├── auth.guard.ts
│ │ │ │ └── guest.guard.ts
│ │ │ ├── interceptors
│ │ │ │ └── auth.interceptor.ts
│ │ │ ├── invalid-oauth2
│ │ │ │ ├── forbidden-oauth2.component.html
│ │ │ │ ├── forbidden-oauth2.component.scss
│ │ │ │ └── forbidden-oauth2.component.ts
│ │ │ ├── login
│ │ │ │ ├── login.component.html
│ │ │ │ ├── login.component.scss
│ │ │ │ ├── login.component.spec.ts
│ │ │ │ └── login.component.ts
│ │ │ ├── models
│ │ │ │ ├── LogException.ts
│ │ │ │ ├── consts.ts
│ │ │ │ ├── credentials.model.ts
│ │ │ │ ├── modalCard.model.ts
│ │ │ │ ├── routing-path.model.ts
│ │ │ │ └── timer.model.ts
│ │ │ ├── oauth2-login
│ │ │ │ ├── oauth2-login.component.html
│ │ │ │ ├── oauth2-login.component.scss
│ │ │ │ └── oauth2-login.component.ts
│ │ │ ├── redirect-after-consent-denied
│ │ │ │ ├── redirect-after-consent-denied.component.html
│ │ │ │ ├── redirect-after-consent-denied.component.scss
│ │ │ │ └── redirect-after-consent-denied.component.ts
│ │ │ ├── redirect-after-consent
│ │ │ │ ├── redirect-after-consent.component.html
│ │ │ │ ├── redirect-after-consent.component.scss
│ │ │ │ └── redirect-after-consent.component.ts
│ │ │ ├── redirect-after-payment-denied
│ │ │ │ ├── redirect-after-payment-denied.component.html
│ │ │ │ ├── redirect-after-payment-denied.component.scss
│ │ │ │ └── redirect-after-payment-denied.component.ts
│ │ │ ├── redirect-after-payment
│ │ │ │ ├── redirect-after-payment.component.html
│ │ │ │ ├── redirect-after-payment.component.scss
│ │ │ │ └── redirect-after-payment.component.ts
│ │ │ ├── services
│ │ │ │ ├── auth.service.spec.ts
│ │ │ │ ├── auth.service.ts
│ │ │ │ ├── document-cookie.service.spec.ts
│ │ │ │ ├── document-cookie.service.ts
│ │ │ │ ├── route-utils.service.ts
│ │ │ │ ├── session.service.spec.ts
│ │ │ │ ├── simple-timer.ts
│ │ │ │ ├── storage.service.ts
│ │ │ │ ├── timer.service.spec.ts
│ │ │ │ └── timer.service.ts
│ │ │ └── session-expired
│ │ │ │ ├── session-expired.component.html
│ │ │ │ ├── session-expired.component.scss
│ │ │ │ └── session-expired.component.ts
│ │ ├── assets
│ │ │ ├── custom
│ │ │ │ └── favicon.png
│ │ │ ├── fonts
│ │ │ │ └── Geometric
│ │ │ │ │ ├── URWGeometric-Light.otf
│ │ │ │ │ ├── URWGeometric-Medium.otf
│ │ │ │ │ ├── URWGeometric-Regular.otf
│ │ │ │ │ └── URWGeometric-SemiBold.otf
│ │ │ ├── icons
│ │ │ │ ├── 1200px-N26_(Direktbank)_2018_logo.svg.svg
│ │ │ │ ├── 1400-1400-icon-spardaapp_365w.svg
│ │ │ │ ├── Sparkasse.svg.svg
│ │ │ │ ├── Volksbank_Logo.svg
│ │ │ │ ├── bank-search.png
│ │ │ │ ├── btn_google_light_normal_ios.svg
│ │ │ │ ├── card_payment.png
│ │ │ │ ├── icons8-bank_cards.svg
│ │ │ │ ├── icons8-checked.svg
│ │ │ │ ├── icons8-maintenance.svg
│ │ │ │ ├── icons8-network 2.png
│ │ │ │ ├── icons8-sent.svg
│ │ │ │ └── receive_dollar.png
│ │ │ └── themes
│ │ │ │ ├── _bootstrap-overrides.scss
│ │ │ │ ├── _fonts.scss
│ │ │ │ └── _variables.scss
│ │ ├── environments
│ │ │ ├── environment.prod.ts
│ │ │ └── environment.ts
│ │ ├── favicon.ico
│ │ ├── index.html
│ │ ├── main.ts
│ │ ├── polyfills.ts
│ │ ├── styles.scss
│ │ └── test.ts
│ ├── tsconfig.app.json
│ ├── tsconfig.json
│ └── tsconfig.spec.json
└── pom.xml
├── firefly-exporter
├── Dockerfile
├── README.md
├── firefly-docker-demo
│ ├── .env
│ ├── README.md
│ └── docker-compose.yml
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── fireflyexporter
│ │ │ ├── FireflyExporterApplication.java
│ │ │ ├── client
│ │ │ ├── FeignTppErrorDecoder.java
│ │ │ ├── FireFlyClientConfig.java
│ │ │ ├── FireflyAccountsApiClient.java
│ │ │ ├── FireflyTransactionsApiClient.java
│ │ │ ├── ObjectMapperConfig.java
│ │ │ ├── TppAisClient.java
│ │ │ ├── TppBankSearchClient.java
│ │ │ ├── TppClientConfig.java
│ │ │ └── TppConsentConfirmationClient.java
│ │ │ ├── config
│ │ │ ├── ApiConfig.java
│ │ │ ├── DateTimeFormatConfig.java
│ │ │ ├── FireFlyConfig.java
│ │ │ ├── HeaderFields.java
│ │ │ ├── OpenBankingConfig.java
│ │ │ └── OpenBankingRequestSigningConfig.java
│ │ │ ├── controller
│ │ │ ├── exceptions
│ │ │ │ └── ConsentException.java
│ │ │ ├── mvc
│ │ │ │ └── ViewController.java
│ │ │ └── rest
│ │ │ │ ├── BankConsentController.java
│ │ │ │ ├── Consts.java
│ │ │ │ ├── ExportController.java
│ │ │ │ ├── ExportableAccountsController.java
│ │ │ │ └── SearchController.java
│ │ │ ├── dto
│ │ │ ├── AnalyzeableTransaction.java
│ │ │ └── ExportableAccount.java
│ │ │ ├── entity
│ │ │ ├── AccountExportJob.java
│ │ │ ├── BankConsent.java
│ │ │ ├── RedirectState.java
│ │ │ └── TransactionExportJob.java
│ │ │ ├── repository
│ │ │ ├── AccountExportJobRepository.java
│ │ │ ├── BankConsentRepository.java
│ │ │ ├── RedirectStateRepository.java
│ │ │ └── TransactionExportJobRepository.java
│ │ │ └── service
│ │ │ ├── AccountExportService.java
│ │ │ ├── ConsentService.java
│ │ │ ├── ExportableAccountService.java
│ │ │ ├── FireFlyAccountExporter.java
│ │ │ ├── FireFlyTokenProvider.java
│ │ │ ├── FireFlyTransactionExporter.java
│ │ │ ├── TransactionCategorizer.java
│ │ │ └── TransactionExportService.java
│ └── resources
│ │ ├── application.yml
│ │ ├── categorization
│ │ ├── rules-de.drl
│ │ ├── rules-en.drl
│ │ └── rules-sandbox.drl
│ │ ├── firefly-exporter-migration
│ │ ├── master.xml
│ │ └── migrations
│ │ │ └── 0000-create-firefly-exporter-iii-tables.xml
│ │ ├── firefly
│ │ └── firefly-api.yml
│ │ ├── migrator
│ │ └── migrator.groovy
│ │ ├── static
│ │ ├── css
│ │ │ └── style.css
│ │ ├── favicon.ico
│ │ └── js
│ │ │ ├── import.js
│ │ │ └── search.js
│ │ └── templates
│ │ └── firefly-uploader.html
│ └── test
│ └── java
│ └── de
│ └── adorsys
│ └── opba
│ └── fireflyexporter
│ └── FireflyExporterApplicationTests.java
├── generate_site_script.sh
├── helpers
└── docker-wiremock.yml
├── how-to-start-with-project
├── README.md
└── xs2a-sandbox-only
│ ├── .env
│ ├── docker-compose-debug-on.yml
│ └── docker-compose.yml
├── index.html
├── last-module-codecoverage
├── pom.xml
└── src
│ └── main
│ ├── dtd
│ └── jacoco
│ │ └── report.dtd
│ └── xsl
│ └── analyse.jacoco.result.xsl
├── lombok.config
├── mkdocs.yml
├── mvnw
├── mvnw.cmd
├── opba-admin-management
├── pom.xml
└── src
│ └── main
│ └── java
│ └── de
│ └── adorsys
│ └── opba
│ └── adminapi
│ └── service
│ └── AdminApiService.java
├── opba-admin-rest-api
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── adminapi
│ │ └── config
│ │ ├── AdminApiConfig.java
│ │ ├── Const.java
│ │ └── EnableAdminApi.java
│ └── resources
│ └── static
│ └── tpp_admin_api.yml
├── opba-admin-rest-impl
├── pom.xml
└── src
│ └── main
│ └── java
│ └── de
│ └── adorsys
│ └── opba
│ └── adminapi
│ ├── config
│ ├── AdminApiSecurityFilter.java
│ └── AdminApiSecurityFilterConfig.java
│ └── controller
│ └── AdminApiController.java
├── opba-analytics
├── opba-analytics-api
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── analytics
│ │ ├── GlobalConst.java
│ │ ├── TransactionAnalyzer.java
│ │ └── dto
│ │ └── AnalyticsRequest.java
└── pom.xml
├── opba-api-security-signer-generator
├── README.md
├── opba-api-security-signer-generator-api
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── api
│ │ └── security
│ │ └── generator
│ │ └── api
│ │ ├── DataToSignProvider.java
│ │ ├── GeneratedDataToSignNormalizer.java
│ │ ├── MatcherUtil.java
│ │ ├── RequestDataToSignNormalizer.java
│ │ └── RequestToSign.java
├── opba-api-security-signer-generator-impl
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── api
│ │ │ └── security
│ │ │ └── generator
│ │ │ ├── DataToSignGeneratingProcessor.java
│ │ │ └── normalizer
│ │ │ ├── DataToSignProviderGenerator.java
│ │ │ ├── RequestDataToGeneratorGenerator.java
│ │ │ └── RequestDataToSignNormalizerGenerator.java
│ │ └── test
│ │ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── api
│ │ │ └── security
│ │ │ └── RequestNormalizerGenerationTest.java
│ │ └── resources
│ │ ├── DataToSignConfigurer.java
│ │ ├── api
│ │ └── tpp_banking_api_ais.yml
│ │ └── expected
│ │ ├── ExpectedDataToSignProvider.java
│ │ └── ExpectedGetTransactions.java
└── pom.xml
├── opba-api-security
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── api
│ │ └── security
│ │ ├── SecurityGlobalConst.java
│ │ ├── external
│ │ ├── EnableOpenBankingRequestSigning.java
│ │ ├── config
│ │ │ └── RequestSigningConfig.java
│ │ ├── domain
│ │ │ ├── FilterValidationHeaderValues.java
│ │ │ ├── HttpHeaders.java
│ │ │ └── MultiReadHttpServletRequest.java
│ │ └── service
│ │ │ ├── RequestSigningService.java
│ │ │ └── RsaJwtsSigningServiceImpl.java
│ │ ├── internal
│ │ ├── EnableSignatureBasedApiSecurity.java
│ │ ├── EnableTokenBasedApiSecurity.java
│ │ ├── config
│ │ │ ├── AuthorizationSessionKeyConfig.java
│ │ │ ├── ConfigConst.java
│ │ │ ├── CookieProperties.java
│ │ │ ├── RequestFilterConfig.java
│ │ │ ├── TppTokenConfig.java
│ │ │ └── TppTokenProperties.java
│ │ ├── filter
│ │ │ ├── HttpBodyCachingFilter.java
│ │ │ ├── RequestCookieFilter.java
│ │ │ └── RequestSignatureValidationFilter.java
│ │ └── service
│ │ │ ├── CookieBuilderTemplate.java
│ │ │ ├── RequestVerifyingService.java
│ │ │ ├── RsaJwtsVerifyingServiceImpl.java
│ │ │ └── TokenBasedAuthService.java
│ │ └── requestsigner
│ │ └── DataToSignNormalizerConfigurer.java
│ └── test
│ ├── java
│ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── api
│ │ └── security
│ │ └── service
│ │ └── TokenSignVerifyTest.java
│ └── resources
│ └── application-test.yml
├── opba-auth-rest-api
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── tppauthapi
│ │ └── config
│ │ ├── EnableTppAuthApi.java
│ │ └── TppAuthApiConfig.java
│ └── resources
│ └── static
│ └── tpp_auth_api.yml
├── opba-auth-rest-impl
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── tppauthapi
│ │ │ ├── config
│ │ │ └── TppPsuAuthConfig.java
│ │ │ └── controller
│ │ │ ├── GenericControllerAdvice.java
│ │ │ └── PsuAuthController.java
│ └── resources
│ │ └── logback.xml
│ └── test
│ ├── java
│ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── tppauthapi
│ │ ├── config
│ │ └── ApplicationTest.java
│ │ └── controller
│ │ └── PsuAuthControllerTest.java
│ └── resources
│ ├── application.yml
│ ├── example-keyset.json
│ └── logback-test.xml
├── opba-banking-protocol-facade
├── README.md
├── docs
│ ├── consent-sharing
│ │ └── consent-sharing.png
│ └── facade-ideal-result-mappings.svg
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── protocol
│ │ │ └── facade
│ │ │ ├── config
│ │ │ ├── ConfigConst.java
│ │ │ ├── FacadeGenericConfig.java
│ │ │ ├── FacadeTransientDataConfig.java
│ │ │ ├── NoSecurityConfig.java
│ │ │ ├── SecurityConfig.java
│ │ │ ├── auth
│ │ │ │ ├── FacadeConsentAuthConfig.java
│ │ │ │ ├── PasswordGenRandomConfig.java
│ │ │ │ └── UriExpandConst.java
│ │ │ └── encryption
│ │ │ │ ├── ASN1ObjectIdentifierConverter.java
│ │ │ │ ├── CmsEncSpec.java
│ │ │ │ ├── CmsEncryptionOper.java
│ │ │ │ ├── ConsentAuthorizationEncryptionServiceProvider.java
│ │ │ │ ├── ConsentSpecSecretKeyConfig.java
│ │ │ │ ├── DatasafeConfigurer.java
│ │ │ │ ├── EncryptionConfigurationConfig.java
│ │ │ │ ├── EncryptionProviderConfig.java
│ │ │ │ ├── EncryptionWithInitVectorOper.java
│ │ │ │ ├── FintechOnlyEncryptionServiceProvider.java
│ │ │ │ ├── FintechOnlyKeyPairConfig.java
│ │ │ │ ├── PsuEncryptionServiceProvider.java
│ │ │ │ ├── PsuKeyPairConfig.java
│ │ │ │ ├── SecretKeyWithIv.java
│ │ │ │ ├── SymmetricEncSpec.java
│ │ │ │ ├── datasafe
│ │ │ │ ├── BaseDatasafeDbStorageService.java
│ │ │ │ ├── DatasafeDataStorage.java
│ │ │ │ └── DatasafeMetadataStorage.java
│ │ │ │ └── impl
│ │ │ │ ├── FintechPsuAspspTuple.java
│ │ │ │ ├── FintechUserAuthSessionTuple.java
│ │ │ │ ├── PairIdPsuAspspTuple.java
│ │ │ │ ├── fintech
│ │ │ │ ├── FintechConsentSpecDatasafeStorage.java
│ │ │ │ ├── FintechConsentSpecSecureStorage.java
│ │ │ │ ├── FintechDatasafeStorage.java
│ │ │ │ ├── FintechOnlyPrvKeyTuple.java
│ │ │ │ └── FintechSecureStorage.java
│ │ │ │ └── psu
│ │ │ │ ├── PsuDatasafeStorage.java
│ │ │ │ └── PsuSecureStorage.java
│ │ │ ├── dto
│ │ │ ├── ActionWithProtocolId.java
│ │ │ ├── PubAndPrivKey.java
│ │ │ └── result
│ │ │ │ └── torest
│ │ │ │ ├── FacadeResult.java
│ │ │ │ ├── redirectable
│ │ │ │ ├── FacadeRedirectErrorResult.java
│ │ │ │ ├── FacadeRedirectResult.java
│ │ │ │ ├── FacadeResultHeaders.java
│ │ │ │ ├── FacadeResultRedirectable.java
│ │ │ │ ├── FacadeRuntimeErrorResult.java
│ │ │ │ ├── FacadeRuntimeErrorResultWithOwnResponseCode.java
│ │ │ │ └── FacadeStartAuthorizationResult.java
│ │ │ │ └── staticres
│ │ │ │ ├── FacadeErrorResult.java
│ │ │ │ └── FacadeSuccessResult.java
│ │ │ ├── exceptions
│ │ │ ├── NoProtocolRegisteredException.java
│ │ │ ├── PsuDoesNotExist.java
│ │ │ ├── PsuRegisterException.java
│ │ │ └── PsuWrongCredentials.java
│ │ │ ├── result
│ │ │ └── InternalAuthorizationRequiredResult.java
│ │ │ ├── services
│ │ │ ├── AuthSessionHandler.java
│ │ │ ├── EncryptionKeySerde.java
│ │ │ ├── FacadeOptionalService.java
│ │ │ ├── FacadeService.java
│ │ │ ├── GetAuthorizationStatusService.java
│ │ │ ├── InternalContext.java
│ │ │ ├── ProtocolResultHandler.java
│ │ │ ├── ProtocolSelector.java
│ │ │ ├── ProtocolWithCtx.java
│ │ │ ├── ais
│ │ │ │ ├── DeleteConsentService.java
│ │ │ │ ├── GetAisAuthorizationStatusService.java
│ │ │ │ ├── ListAccountsService.java
│ │ │ │ ├── ListTransactionsService.java
│ │ │ │ └── UpdateExternalAisSessionService.java
│ │ │ ├── authorization
│ │ │ │ ├── DenyAuthorizationService.java
│ │ │ │ ├── FromAspspRedirectHandler.java
│ │ │ │ ├── GetAuthorizationStateService.java
│ │ │ │ ├── OnLoginService.java
│ │ │ │ ├── PsuLoginService.java
│ │ │ │ ├── UpdateAuthorizationService.java
│ │ │ │ └── internal
│ │ │ │ │ └── psuauth
│ │ │ │ │ └── PsuFintechAssociationService.java
│ │ │ ├── context
│ │ │ │ ├── NoRedirectCodeValidationServiceContextProvider.java
│ │ │ │ ├── ServiceContextProvider.java
│ │ │ │ ├── ServiceContextProviderForAspsp.java
│ │ │ │ └── ServiceContextProviderForFintech.java
│ │ │ ├── fintech
│ │ │ │ ├── FintechAuthenticator.java
│ │ │ │ └── registrar
│ │ │ │ │ └── FintechRegistrar.java
│ │ │ ├── password
│ │ │ │ └── FintechUserPasswordGenerator.java
│ │ │ ├── pis
│ │ │ │ ├── GetPaymentInformationService.java
│ │ │ │ ├── GetPaymentStatusService.java
│ │ │ │ ├── GetPisAuthorizationStatusService.java
│ │ │ │ └── SinglePaymentService.java
│ │ │ ├── psu
│ │ │ │ └── PsuAuthService.java
│ │ │ └── scoped
│ │ │ │ ├── ConsentAccessUtil.java
│ │ │ │ ├── FieldsToIgnoreLoaderImpl.java
│ │ │ │ ├── IgnoreFieldsLoaderFactory.java
│ │ │ │ ├── IgnoreValidationRuleImpl.java
│ │ │ │ ├── RequestScopedProvider.java
│ │ │ │ ├── consentaccess
│ │ │ │ ├── AnonymousPsuConsentAccess.java
│ │ │ │ ├── ConsentAccessFactory.java
│ │ │ │ ├── FintechConsentAccessImpl.java
│ │ │ │ ├── ProtocolFacingConsentImpl.java
│ │ │ │ └── PsuConsentAccess.java
│ │ │ │ └── paymentaccess
│ │ │ │ ├── AnonymousPsuPaymentAccess.java
│ │ │ │ ├── FintechPaymentAccess.java
│ │ │ │ ├── PaymentAccessFactory.java
│ │ │ │ ├── ProtocolFacingPaymentImpl.java
│ │ │ │ └── PsuPaymentAccess.java
│ │ │ └── util
│ │ │ └── logresolver
│ │ │ ├── FacadeLogResolver.java
│ │ │ └── domain
│ │ │ ├── ActionLog.java
│ │ │ ├── ProtocolWithCtxLog.java
│ │ │ ├── context
│ │ │ └── ServiceContextLog.java
│ │ │ ├── request
│ │ │ ├── FacadeServiceableRequestLog.java
│ │ │ └── RequestLog.java
│ │ │ └── response
│ │ │ └── ResultLog.java
│ └── resources
│ │ ├── example-keyset.json
│ │ └── mock-ais-get-accounts-response.json
│ └── test
│ ├── java
│ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── protocol
│ │ └── facade
│ │ ├── config
│ │ ├── ApplicationTest.java
│ │ └── encryption
│ │ │ └── DatasafeStorageIntegrationCheckTest.java
│ │ └── services
│ │ ├── DbDropper.java
│ │ ├── ais
│ │ ├── ListAccountsServiceTest.java
│ │ ├── ListTransactionsServiceTest.java
│ │ └── ServiceContextProviderTest.java
│ │ └── authorization
│ │ ├── AbstractServiceSessionTest.java
│ │ └── ServiceAndAuthorizationSessionTest.java
│ └── resources
│ ├── application-test.yml
│ ├── logback-test.xml
│ └── sample-qwac.keystore
├── opba-banking-rest-api-ymls
├── pom.xml
└── src
│ └── main
│ └── resources
│ └── static
│ ├── tpp_banking_api_ais.yml
│ ├── tpp_banking_api_bank_info.yml
│ ├── tpp_banking_api_bank_search.yml
│ ├── tpp_banking_api_callback.yml
│ ├── tpp_banking_api_commons.yml
│ ├── tpp_banking_api_orchestrated_pis.yml
│ ├── tpp_banking_api_pis.yml
│ └── tpp_banking_api_token.yml
├── opba-banking-rest-api
├── .gitignore
├── pom.xml
└── src
│ └── main
│ └── java
│ └── de
│ └── adorsys
│ └── opba
│ └── tppbankingapi
│ └── config
│ ├── BankingApiConfig.java
│ ├── ConfigConst.java
│ ├── DateTimeFormatConfig.java
│ └── EnableBankingApi.java
├── opba-banking-rest-impl
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── tppbankingapi
│ │ │ ├── Const.java
│ │ │ ├── config
│ │ │ ├── ApiConsumerConfigImpl.java
│ │ │ ├── RequestVerifyingConfig.java
│ │ │ └── TppTokenPropertiesConfig.java
│ │ │ ├── controller
│ │ │ ├── BankingGenericControllerAdvice.java
│ │ │ ├── MissingDataProtectionPassword.java
│ │ │ ├── PasswordExtractingUtil.java
│ │ │ ├── TppBankInfoController.java
│ │ │ ├── TppBankSearchController.java
│ │ │ ├── TppBankingApiAisController.java
│ │ │ ├── TppBankingApiOrchestratedPayment.java
│ │ │ ├── TppBankingApiPisController.java
│ │ │ ├── TppBankingApiPisInfoController.java
│ │ │ ├── TppBankingCallBackController.java
│ │ │ ├── TppBankingConsentConfirmationController.java
│ │ │ ├── TppBankingPaymentConfirmationController.java
│ │ │ └── UuidMapper.java
│ │ │ └── service
│ │ │ ├── BankInfoService.java
│ │ │ ├── BankService.java
│ │ │ ├── CallbackContextBridge.java
│ │ │ ├── CallbackService.java
│ │ │ ├── ConsentConfirmationService.java
│ │ │ ├── PaymentConfirmationService.java
│ │ │ ├── PaymentOrchestratedService.java
│ │ │ └── SessionService.java
│ └── resources
│ │ └── logback.xml
│ └── test
│ ├── java
│ └── de
│ │ └── adorsys
│ │ └── opba
│ │ ├── db
│ │ └── domain
│ │ │ └── MappersTest.java
│ │ └── tppbankingapi
│ │ ├── ApplicationTest.java
│ │ ├── BaseMockitoTest.java
│ │ ├── TestProfiles.java
│ │ ├── config
│ │ └── FintechRequestSigningTestConfig.java
│ │ ├── controller
│ │ ├── BaseTppBankSearchControllerTest.java
│ │ ├── SignaturePostProcessor.java
│ │ ├── TestBankSearchPerformance.java
│ │ ├── TestTppBankInfoController.java
│ │ ├── TestTppBankSearchController.java
│ │ └── TppBankSearchControllerFieldsNotRevealedTest.java
│ │ ├── dto
│ │ └── TestResult.java
│ │ ├── mapper
│ │ └── FacadeResponseBodyToRestBodyMapperTest.java
│ │ ├── service
│ │ ├── BankInfoServiceTest.java
│ │ └── BankServiceTest.java
│ │ └── services
│ │ └── StatisticService.java
│ └── resources
│ ├── application-test-one-time-postgres-disk-volume.yml
│ ├── application-test-one-time-postgres-ramfs.yml
│ ├── application-test-search.yml
│ ├── application.yml
│ ├── example-keyset.json
│ ├── logback-test.xml
│ └── mapper-test-fixtures
│ ├── facade_to_rest_response_mapper_accounts_input.json
│ ├── facade_to_rest_response_mapper_accounts_output.json
│ ├── facade_to_rest_response_mapper_transactions_input.json
│ └── facade_to_rest_response_mapper_transactions_output.json
├── opba-consent-rest-api
├── README.md
├── flow.puml
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── consentapi
│ │ └── config
│ │ ├── ConfigConst.java
│ │ ├── ConsentApiConfig.java
│ │ └── EnableConsentApi.java
│ └── resources
│ └── static
│ ├── img
│ └── open-banking-consent-authorisation-api.png
│ └── tpp_consent_api.yml
├── opba-consent-rest-impl
├── README.md
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── consentapi
│ │ │ ├── Const.java
│ │ │ ├── config
│ │ │ └── ConsentAuthConfig.java
│ │ │ ├── controller
│ │ │ ├── AuthStateConsentServiceController.java
│ │ │ ├── FromAspspConsentServiceController.java
│ │ │ └── UpdateAuthConsentServiceController.java
│ │ │ └── service
│ │ │ ├── FromAspspMapper.java
│ │ │ └── mapper
│ │ │ ├── AisConsentMapper.java
│ │ │ ├── AisExtrasMapper.java
│ │ │ └── PisSinglePaymentMapper.java
│ └── resources
│ │ └── static
│ │ └── img
│ │ └── open-banking-consent-authorisation-api.png
│ └── test
│ └── java
│ └── de
│ └── adorsys
│ └── opba
│ └── consentapi
│ └── service
│ └── mapper
│ └── AisConsentMapperTest.java
├── opba-db
├── README.md
├── mock-data-generate.groovy
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── db
│ │ │ ├── config
│ │ │ ├── BankingPersistenceConfig.java
│ │ │ └── EnableBankingPersistence.java
│ │ │ ├── domain
│ │ │ ├── converter
│ │ │ │ ├── ResultContentTypeConverter.java
│ │ │ │ ├── ScaApproachConverter.java
│ │ │ │ └── SupportedConsentTypeConverter.java
│ │ │ ├── entity
│ │ │ │ ├── Bank.java
│ │ │ │ ├── BankAction.java
│ │ │ │ ├── BankProfile.java
│ │ │ │ ├── BankSubAction.java
│ │ │ │ ├── BasePubKey.java
│ │ │ │ ├── Consent.java
│ │ │ │ ├── DatasafeConfig.java
│ │ │ │ ├── IdAssignable.java
│ │ │ │ ├── IgnoreValidationRule.java
│ │ │ │ ├── Payment.java
│ │ │ │ ├── ValidationRule.java
│ │ │ │ ├── baba.xml
│ │ │ │ ├── fintech
│ │ │ │ │ ├── Fintech.java
│ │ │ │ │ ├── FintechConsentSpec.java
│ │ │ │ │ ├── FintechPrvKey.java
│ │ │ │ │ ├── FintechPsuAspspKey.java
│ │ │ │ │ ├── FintechPsuAspspPrvKey.java
│ │ │ │ │ ├── FintechPsuAspspPrvKeyInbox.java
│ │ │ │ │ ├── FintechPubKey.java
│ │ │ │ │ └── FintechUser.java
│ │ │ │ ├── helpers
│ │ │ │ │ └── UuidMapper.java
│ │ │ │ ├── psu
│ │ │ │ │ ├── Psu.java
│ │ │ │ │ ├── PsuAspspPrvKey.java
│ │ │ │ │ └── PsuAspspPubKey.java
│ │ │ │ └── sessions
│ │ │ │ │ ├── AuthSession.java
│ │ │ │ │ ├── ServiceSession.java
│ │ │ │ │ └── SessionFromAspsp.java
│ │ │ └── generators
│ │ │ │ └── AssignedUuidGenerator.java
│ │ │ ├── hibernate
│ │ │ └── PrefixAndSnakeCasePhysicalNamingStrategy.java
│ │ │ └── repository
│ │ │ ├── BankInfoRepositoryImpl.java
│ │ │ ├── BankProfileRepositoryImpl.java
│ │ │ ├── BankSearchRepositoryImpl.java
│ │ │ └── jpa
│ │ │ ├── AuthorizationSessionRepository.java
│ │ │ ├── BankActionRepository.java
│ │ │ ├── BankProfileJpaRepository.java
│ │ │ ├── BankRepository.java
│ │ │ ├── ConsentRepository.java
│ │ │ ├── DatasafeConfigRepository.java
│ │ │ ├── IgnoreValidationRuleRepository.java
│ │ │ ├── PaymentRepository.java
│ │ │ ├── ServiceSessionRepository.java
│ │ │ ├── SessionRepository.java
│ │ │ ├── fintech
│ │ │ ├── FintechConsentSpecRepository.java
│ │ │ ├── FintechOnlyPrvKeyRepository.java
│ │ │ ├── FintechOnlyPubKeyRepository.java
│ │ │ ├── FintechPsuAspspPrvKeyInboxRepository.java
│ │ │ ├── FintechPsuAspspPrvKeyRepository.java
│ │ │ ├── FintechRepository.java
│ │ │ └── FintechUserRepository.java
│ │ │ └── psu
│ │ │ ├── PsuAspspPrvKeyRepository.java
│ │ │ ├── PsuAspspPubKeyRepository.java
│ │ │ └── PsuRepository.java
│ └── resources
│ │ ├── init.sql
│ │ └── migration
│ │ ├── master.xml
│ │ └── migrations
│ │ ├── 0000-create-table-banks.xml
│ │ ├── 0001-init-protocol-facade.xml
│ │ ├── 0002-mock-data.xml
│ │ ├── 0003-add-staging-bank-configuration.xml
│ │ ├── 0004-add-skip-auth-for-deutsche-bank.xml
│ │ ├── 0005-enable-finapi-test-bank.xml
│ │ ├── 0009-add-consent-cache.xml
│ │ ├── 0010-update-dkb-adapter.xml
│ │ ├── 0011-add-validation-ignore-decoupled.xml
│ │ ├── 0012-add-is-active-field-to-bank.xml
│ │ ├── 0013-add-auth-session-status.xml
│ │ ├── 0014-update-sparkasse-adapter.xml
│ │ ├── 0017-add-consent-type-support.xml
│ │ ├── 0018-add-skip-psu-auth-for-verlag-bank.xml
│ │ ├── 0019-set-start-consent-auth-with-pin-fiducia.xml
│ │ ├── 0020-add-skip-auth-for-ing.xml
│ │ ├── 0022-add-protocol-configuration.xml
│ │ ├── 0023-change-unique-constraint.xml
│ │ ├── 0024-add-consent-supplementary-key.xml
│ │ ├── 0025-create-table-session-for-aspsp.xml
│ │ └── csv
│ │ └── v0
│ │ ├── 0-banks.csv
│ │ ├── 0-hbci_bank-action.csv
│ │ ├── 0-hbci_bank-sub-action.csv
│ │ ├── 0-hbci_bank_bank-profile.csv
│ │ ├── 0-mock-banks.csv
│ │ ├── 0-mock_bank_profile.csv
│ │ ├── 0-xs2a_bank-action.csv
│ │ ├── 0-xs2a_bank-profile.csv
│ │ ├── 0-xs2a_bank-sub-action.csv
│ │ ├── banks_random_data.csv
│ │ └── xs2a-adapter-banks.csv
│ └── test
│ ├── java
│ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── db
│ │ ├── BankProtocolActionsSqlGeneratorTest.java
│ │ └── config
│ │ └── TestConfig.java
│ └── resources
│ └── application.yml
├── opba-embedded-starter-tests
├── README.md
├── pom.xml
└── src
│ └── test
│ ├── java
│ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── starter
│ │ ├── AdminApiModyfingTest.java
│ │ ├── AdminApiSecurityTest.java
│ │ ├── AdminApiTest.java
│ │ ├── BasicOpenBankingStartupTest.java
│ │ ├── FintechPasswordApplyTest.java
│ │ ├── RequestScopedStub.java
│ │ ├── Xs2aSensitiveDataTest.java
│ │ ├── config
│ │ └── FintechRequestSigningTestConfig.java
│ │ └── redirectcode
│ │ ├── OpenBankingRedirectCodeRequestWideTest.java
│ │ ├── OpenBankingRedirectCodeSessionWideTest.java
│ │ └── OpenBankingRedirectCodeTest.java
│ └── resources
│ ├── adapter.config.properties
│ ├── adminapi
│ ├── 20a55c80-fd8c-42f0-b782-8188662aa89f-new.json
│ ├── adadadad-1000-0000-0000-b0b0b0b0b0b0-profiles-removed.json
│ ├── adadadad-1000-0000-0000-b0b0b0b0b0b0-profiles-replaced.json
│ ├── adadadad-1000-0000-0000-b0b0b0b0b0b0-updated.json
│ ├── adadadad-1000-0000-0000-b0b0b0b0b0b0.json
│ └── adadadad-4000-0000-0000-b0b0b0b0b0b0-profiles-replaced.json
│ ├── anton-brueckner-single-sepa-payment.json
│ ├── application-test-separate-db.yml
│ ├── application-test.yml
│ ├── example-keyset.json
│ ├── logback-test.xml
│ └── sample-qwac.keystore
├── opba-embedded-starter
├── Dockerfile
├── README.md
├── pom.xml
├── src
│ ├── deb
│ │ └── control
│ │ │ └── control
│ └── main
│ │ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── starter
│ │ │ ├── OpenBankingEmbeddedApplication.java
│ │ │ └── config
│ │ │ ├── WebConfig.java
│ │ │ └── extensions
│ │ │ ├── OpbaFinapiExtensionConfig.java
│ │ │ └── OpbaSmartAnalyticsExtensionConfig.java
│ │ └── resources
│ │ ├── adapter.config.properties
│ │ ├── application.yml
│ │ ├── example-keyset.json
│ │ ├── logback.xml
│ │ ├── sample-qwac.keystore
│ │ └── static
│ │ └── index.html
└── suppressions.xml
├── opba-facade-protocol-api-shared
├── pom.xml
└── src
│ └── main
│ └── java
│ └── de
│ └── adorsys
│ └── opba
│ └── protocol
│ └── api
│ ├── Constants.java
│ ├── common
│ ├── Approach.java
│ ├── CurrentBankProfile.java
│ ├── CurrentFintechProfile.java
│ ├── ProtocolAction.java
│ ├── ResultContentType.java
│ ├── SessionStatus.java
│ └── SupportedConsentType.java
│ ├── dto
│ ├── NotSensitiveData.java
│ ├── codes
│ │ └── FieldCode.java
│ ├── context
│ │ ├── Context.java
│ │ ├── ServiceContext.java
│ │ ├── UserAgentContext.java
│ │ └── UserAgentExtras.java
│ ├── headers
│ │ └── ResponseHeaders.java
│ ├── parameters
│ │ ├── ExtraAuthRequestParam.java
│ │ ├── ExtraRequestParam.java
│ │ └── ScaConst.java
│ ├── payment
│ │ └── PaymentType.java
│ ├── request
│ │ ├── Analytics.java
│ │ ├── ChallengeData.java
│ │ ├── FacadeServiceableGetter.java
│ │ ├── FacadeServiceableRequest.java
│ │ ├── OtpFormat.java
│ │ ├── accounts
│ │ │ ├── AisAuthorizationStatusRequest.java
│ │ │ ├── ListAccountsRequest.java
│ │ │ ├── UpdateExternalAisSessionRequest.java
│ │ │ └── UpdateMetadataDetails.java
│ │ ├── authorization
│ │ │ ├── AisAccountAccess.java
│ │ │ ├── AisConsent.java
│ │ │ ├── AuthorizationRequest.java
│ │ │ ├── DeleteConsentRequest.java
│ │ │ ├── DenyAuthorizationRequest.java
│ │ │ ├── OnLoginRequest.java
│ │ │ └── fromaspsp
│ │ │ │ └── FromAspspRequest.java
│ │ ├── payments
│ │ │ ├── InitiateSinglePaymentRequest.java
│ │ │ ├── PaymentInfoBody.java
│ │ │ ├── PaymentInfoRequest.java
│ │ │ ├── PaymentStatusBody.java
│ │ │ ├── PaymentStatusRequest.java
│ │ │ ├── PisAuthorizationStatusRequest.java
│ │ │ └── SinglePaymentBody.java
│ │ └── transactions
│ │ │ └── ListTransactionsRequest.java
│ └── result
│ │ ├── body
│ │ ├── AccountListBody.java
│ │ ├── AccountListDetailBody.java
│ │ ├── AccountReference.java
│ │ ├── AccountReport.java
│ │ ├── Address.java
│ │ ├── AisAuthorizationStatusBody.java
│ │ ├── Amount.java
│ │ ├── AnalyticsResult.java
│ │ ├── AuthRequestData.java
│ │ ├── AuthStateBody.java
│ │ ├── AuthorizationStatusBody.java
│ │ ├── Balance.java
│ │ ├── DeleteConsentBody.java
│ │ ├── DenyAuthBody.java
│ │ ├── DetailedSessionStatus.java
│ │ ├── Paging.java
│ │ ├── PaymentProductDetails.java
│ │ ├── PisAuthorizationStatusBody.java
│ │ ├── ResultBody.java
│ │ ├── ReturnableProcessErrorResult.java
│ │ ├── ScaMethod.java
│ │ ├── TransactionDetailsBody.java
│ │ ├── TransactionListBody.java
│ │ ├── TransactionsResponseBody.java
│ │ ├── UpdateAuthBody.java
│ │ ├── UpdateExternalAisSessionBody.java
│ │ └── ValidationError.java
│ │ └── fromprotocol
│ │ ├── Result.java
│ │ ├── dialog
│ │ ├── AuthorizationDeniedResult.java
│ │ ├── AuthorizationRequiredResult.java
│ │ ├── ConsentAcquiredResult.java
│ │ ├── ConsentIncompatibleResult.java
│ │ ├── RedirectToAspspResult.java
│ │ ├── RedirectionResult.java
│ │ └── ValidationErrorResult.java
│ │ ├── error
│ │ └── ErrorResult.java
│ │ └── ok
│ │ └── SuccessResult.java
│ ├── fintechspec
│ ├── ApiConsumer.java
│ └── ApiConsumerConfig.java
│ └── services
│ ├── EncryptionService.java
│ ├── ResultBodyPostProcessor.java
│ └── scoped
│ ├── RequestScoped.java
│ ├── RequestScopedServicesProvider.java
│ ├── UsesRequestScoped.java
│ ├── aspsp
│ └── UsesCurrentAspspProfile.java
│ ├── consent
│ ├── ConsentAccess.java
│ ├── FintechConsentAccess.java
│ ├── PaymentAccess.java
│ ├── ProtocolFacingConsent.java
│ ├── ProtocolFacingPayment.java
│ ├── UsesConsentAccess.java
│ └── UsesPaymentAccess.java
│ ├── encryption
│ └── UsesEncryptionService.java
│ ├── fintech
│ └── UsesCurrentFintechProfile.java
│ ├── transientdata
│ ├── TransientStorage.java
│ └── UsesTransientStorage.java
│ └── validation
│ ├── FieldsToIgnoreLoader.java
│ ├── IgnoreValidationRule.java
│ ├── UsesValidation.java
│ └── ValidationRule.java
├── opba-protocols
├── hbci-protocol-tests
│ ├── hbci-bdd-sandbox
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── de
│ │ │ │ └── adorsys
│ │ │ │ └── opba
│ │ │ │ └── protocol
│ │ │ │ └── hbci
│ │ │ │ └── tests
│ │ │ │ └── e2e
│ │ │ │ └── sandbox
│ │ │ │ ├── Const.java
│ │ │ │ ├── HbciJGivenConfig.java
│ │ │ │ ├── HbciProtocolApplication.java
│ │ │ │ ├── HbciSandboxConsentE2EHbciProtocolTest.java
│ │ │ │ ├── HbciSandboxPaymentAndTransactionsAfterE2EHbciProtocolTest.java
│ │ │ │ ├── HbciSandboxPaymentE2EHbciProtocolTest.java
│ │ │ │ ├── config
│ │ │ │ ├── FintechRequestSigningTestConfig.java
│ │ │ │ └── FlowableTestConfig.java
│ │ │ │ └── hbcisteps
│ │ │ │ ├── FixtureConst.java
│ │ │ │ ├── HbciAccountInformationRequest.java
│ │ │ │ ├── HbciAccountInformationResult.java
│ │ │ │ ├── HbciPaymentInitiationRequest.java
│ │ │ │ ├── HbciPaymentInitiationResult.java
│ │ │ │ └── HbciServers.java
│ │ │ └── resources
│ │ │ ├── application-hbci-sandbox-config.yml
│ │ │ ├── bdd-migration
│ │ │ └── migration.xml
│ │ │ ├── logback-test.xml
│ │ │ └── restrecord-input-params
│ │ │ ├── hbci-max-musterman-instant-sepa-payment.json
│ │ │ └── hbci-max-musterman-single-sepa-payment.json
│ └── pom.xml
├── hbci-protocol
│ ├── README.md
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── de
│ │ │ │ └── adorsys
│ │ │ │ └── opba
│ │ │ │ └── protocol
│ │ │ │ └── hbci
│ │ │ │ ├── EnableHbciProtocol.java
│ │ │ │ ├── HbciProtocolConfiguration.java
│ │ │ │ ├── HbciUuidMapper.java
│ │ │ │ ├── config
│ │ │ │ ├── ConfigConst.java
│ │ │ │ ├── HbciAdapterConfig.java
│ │ │ │ ├── HbciAdapterProperties.java
│ │ │ │ ├── HbciJacksonConfig.java
│ │ │ │ ├── HbciProtocolConfiguration.java
│ │ │ │ └── HbciScaConfiguration.java
│ │ │ │ ├── constant
│ │ │ │ └── GlobalConst.java
│ │ │ │ ├── context
│ │ │ │ ├── AccountListHbciContext.java
│ │ │ │ ├── HbciContext.java
│ │ │ │ ├── LastViolations.java
│ │ │ │ ├── PaymentHbciContext.java
│ │ │ │ └── TransactionListHbciContext.java
│ │ │ │ ├── domain
│ │ │ │ └── ValidationIssueException.java
│ │ │ │ ├── entrypoint
│ │ │ │ ├── HbciExtendWithServiceContext.java
│ │ │ │ ├── HbciOutcomeMapper.java
│ │ │ │ ├── HbciResultBodyExtractor.java
│ │ │ │ ├── HbciTransactionsToFacadeMapper.java
│ │ │ │ ├── ais
│ │ │ │ │ ├── HbciDeleteConsent.java
│ │ │ │ │ ├── HbciListAccountsEntrypoint.java
│ │ │ │ │ └── HbciListTransactionsEntrypoint.java
│ │ │ │ ├── authorization
│ │ │ │ │ ├── HbciDenyAuthorization.java
│ │ │ │ │ ├── HbciGetAuthorizationState.java
│ │ │ │ │ └── HbciUpdateAuthorization.java
│ │ │ │ ├── helpers
│ │ │ │ │ ├── HbciAuthorizationContinuationService.java
│ │ │ │ │ └── HbciContextUpdateService.java
│ │ │ │ └── pis
│ │ │ │ │ ├── HbciGetPaymentEntrypoint.java
│ │ │ │ │ ├── HbciGetPaymentInfoEntrypoint.java
│ │ │ │ │ ├── HbciGetPaymentStatusEntrypoint.java
│ │ │ │ │ ├── HbciInitiateSinglePaymentEntrypoint.java
│ │ │ │ │ └── HbciPreparePaymentContext.java
│ │ │ │ ├── service
│ │ │ │ ├── HbciRedirectExecutor.java
│ │ │ │ ├── consent
│ │ │ │ │ ├── HbciAisConsentService.java
│ │ │ │ │ ├── HbciCachedResultAccessor.java
│ │ │ │ │ ├── HbciConsentInfo.java
│ │ │ │ │ ├── HbciLoadConsentUnderFinTechKey.java
│ │ │ │ │ ├── HbciReadAccountListFromCache.java
│ │ │ │ │ ├── HbciReadTransactionListFromCache.java
│ │ │ │ │ ├── HbciScaRequiredUtil.java
│ │ │ │ │ ├── HbciStoreAccountListToCache.java
│ │ │ │ │ ├── HbciStoreTransactionListToCache.java
│ │ │ │ │ ├── ReportConsentAuthorizationFinished.java
│ │ │ │ │ └── authentication
│ │ │ │ │ │ ├── HbciAskForPin.java
│ │ │ │ │ │ ├── HbciAskForTan.java
│ │ │ │ │ │ ├── HbciAskToSelectTanChallenge.java
│ │ │ │ │ │ ├── HbciAuthorizationPossibleErrorHandler.java
│ │ │ │ │ │ ├── HbciInitiateSendPinAndPsuId.java
│ │ │ │ │ │ ├── HbciReportConsentIncompatible.java
│ │ │ │ │ │ ├── HbciSendTanChallenge.java
│ │ │ │ │ │ └── HbciSubmitSelectedMethodAndAskForTanChallenge.java
│ │ │ │ ├── protocol
│ │ │ │ │ ├── HbciFillBpmnContext.java
│ │ │ │ │ ├── HbciFlowNameSelector.java
│ │ │ │ │ ├── HbciUpdateToRealModeBpmnContext.java
│ │ │ │ │ ├── HbciUtil.java
│ │ │ │ │ ├── ais
│ │ │ │ │ │ ├── HbciAccountListing.java
│ │ │ │ │ │ ├── HbciTransactionListing.java
│ │ │ │ │ │ ├── dto
│ │ │ │ │ │ │ ├── AisListAccountsResult.java
│ │ │ │ │ │ │ ├── AisListTransactionsResult.java
│ │ │ │ │ │ │ └── HbciResultCache.java
│ │ │ │ │ │ └── publish
│ │ │ │ │ │ │ ├── HbciPublishAccountListResult.java
│ │ │ │ │ │ │ └── HbciPublishTransactionListResult.java
│ │ │ │ │ ├── errorhandlers
│ │ │ │ │ │ └── HbciExecutionErrorHandler.java
│ │ │ │ │ └── pis
│ │ │ │ │ │ ├── HbciPayment.java
│ │ │ │ │ │ ├── HbciPaymentStatus.java
│ │ │ │ │ │ ├── HbciPersistPaymentToDb.java
│ │ │ │ │ │ ├── dto
│ │ │ │ │ │ ├── PaymentInitiateBody.java
│ │ │ │ │ │ ├── PaymentInitiateBodyWithPayment.java
│ │ │ │ │ │ └── PisSinglePaymentResult.java
│ │ │ │ │ │ └── publish
│ │ │ │ │ │ └── HbciPublishPaymentStatusResult.java
│ │ │ │ ├── storage
│ │ │ │ │ └── TransientDataEntry.java
│ │ │ │ └── validation
│ │ │ │ │ ├── HbciReportValidationError.java
│ │ │ │ │ ├── HbciRestorePreValidationContext.java
│ │ │ │ │ ├── HbciStorePreValidationContext.java
│ │ │ │ │ └── HbciValidationErrors.java
│ │ │ │ └── util
│ │ │ │ └── logresolver
│ │ │ │ ├── HbciLogResolver.java
│ │ │ │ ├── domain
│ │ │ │ ├── AccountListHbciContextLog.java
│ │ │ │ ├── BaseContextLog.java
│ │ │ │ ├── HbciContextLog.java
│ │ │ │ ├── HbciExecutionLog.java
│ │ │ │ ├── PaymentHbciContextLog.java
│ │ │ │ ├── TransactionListHbciContextLog.java
│ │ │ │ ├── request
│ │ │ │ │ ├── RequestLog.java
│ │ │ │ │ └── TransactionRequestLog.java
│ │ │ │ └── response
│ │ │ │ │ └── ResponseLog.java
│ │ │ │ └── mapper
│ │ │ │ └── HbciDtoToLogObjectsMapper.java
│ │ └── resources
│ │ │ └── processes
│ │ │ └── hbci
│ │ │ ├── accounts
│ │ │ ├── hbci-list-accounts.bpmn20.xml
│ │ │ └── hbci-list-transactions.bpmn20.xml
│ │ │ ├── payment
│ │ │ ├── hbci-payment-status.bpmn20.xml
│ │ │ └── hbci-single-payment.bpmn20.xml
│ │ │ └── saga
│ │ │ └── hbci-request-saga.bpmn20.xml
│ │ └── test
│ │ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── protocol
│ │ │ └── hbci
│ │ │ ├── config
│ │ │ ├── MapperTestConfig.java
│ │ │ └── ObjectMapperConfig.java
│ │ │ ├── entrypoint
│ │ │ └── authorization
│ │ │ │ └── HbciUpdateAuthorizationTest.java
│ │ │ ├── service
│ │ │ └── protocol
│ │ │ │ └── pis
│ │ │ │ └── PaymentProtocolToMultibankingMapperTest.java
│ │ │ └── util
│ │ │ └── FixtureProvider.java
│ │ └── resources
│ │ └── application-test.yml
├── opba-protocol-api
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── protocol
│ │ └── api
│ │ ├── Action.java
│ │ ├── ais
│ │ ├── DeleteConsent.java
│ │ ├── GetAisAuthorizationStatus.java
│ │ ├── ListAccounts.java
│ │ ├── ListTransactions.java
│ │ └── UpdateExternalAisSession.java
│ │ ├── authorization
│ │ ├── DenyAuthorization.java
│ │ ├── FromAspspRedirect.java
│ │ ├── GetAuthorizationState.java
│ │ ├── OnLogin.java
│ │ └── UpdateAuthorization.java
│ │ ├── dto
│ │ ├── ValidationIssue.java
│ │ └── codes
│ │ │ ├── ScopeObject.java
│ │ │ └── TypeCode.java
│ │ ├── errors
│ │ ├── ProcessErrorConsentGone.java
│ │ └── ReturnableException.java
│ │ └── pis
│ │ ├── GetPaymentInfoState.java
│ │ ├── GetPaymentStatusState.java
│ │ ├── GetPisAuthorizationStatus.java
│ │ └── SinglePayment.java
├── opba-protocol-testing-helper
│ ├── Dockerfile
│ ├── README.md
│ ├── pom.xml
│ ├── postman
│ │ └── OBG-HELPER-XS2A-EMBEDDED.postman_collection.json
│ ├── src
│ │ └── main
│ │ │ ├── java
│ │ │ └── de
│ │ │ │ └── adorsys
│ │ │ │ └── opba
│ │ │ │ └── helpers
│ │ │ │ └── protocol
│ │ │ │ └── testing
│ │ │ │ ├── OpenBankingTestingHelperApplication.java
│ │ │ │ ├── config
│ │ │ │ ├── DevProfile.java
│ │ │ │ └── WebConfig.java
│ │ │ │ ├── controller
│ │ │ │ └── ProtocolTestingController.java
│ │ │ │ └── service
│ │ │ │ ├── MapBasedAspspRepository.java
│ │ │ │ └── MapBasedRequestScopedServicesProvider.java
│ │ │ └── resources
│ │ │ ├── adapter.config.properties
│ │ │ ├── application.yml
│ │ │ ├── logback.xml
│ │ │ └── sample-qwac.keystore
│ └── suppressions.xml
├── pom.xml
├── protocol-bpmn-shared
│ ├── README.md
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── protocol
│ │ │ └── bpmnshared
│ │ │ ├── EnableSharedFlowableBpmn.java
│ │ │ ├── GlobalConst.java
│ │ │ ├── config
│ │ │ └── flowable
│ │ │ │ ├── ConfigConst.java
│ │ │ │ ├── FlowableConfig.java
│ │ │ │ ├── FlowableJobEventListener.java
│ │ │ │ ├── FlowableObjectMapper.java
│ │ │ │ ├── FlowableProperties.java
│ │ │ │ ├── JacksonMixin.java
│ │ │ │ ├── JsonCustomSerializer.java
│ │ │ │ ├── LargeJsonCustomSerializer.java
│ │ │ │ ├── SerializerUtil.java
│ │ │ │ └── expirable
│ │ │ │ └── ExpirableDataConfig.java
│ │ │ ├── dto
│ │ │ ├── ContextBasedConsentIncompatibleWithValidationErrorResult.java
│ │ │ ├── ContextBasedValidationErrorResult.java
│ │ │ ├── DtoMapper.java
│ │ │ ├── DtoUpdatingMapper.java
│ │ │ ├── context
│ │ │ │ ├── BaseContext.java
│ │ │ │ ├── ContextMode.java
│ │ │ │ ├── LastRedirectionTarget.java
│ │ │ │ └── ProtocolResultCache.java
│ │ │ └── messages
│ │ │ │ ├── ConsentAcquired.java
│ │ │ │ ├── InternalProcessResult.java
│ │ │ │ ├── InternalReturnableConsentGoneProcessError.java
│ │ │ │ ├── PaymentAcquired.java
│ │ │ │ ├── ProcessError.java
│ │ │ │ ├── ProcessErrorWithRootProcessId.java
│ │ │ │ ├── ProcessResponse.java
│ │ │ │ ├── Redirect.java
│ │ │ │ ├── RedirectToAspsp.java
│ │ │ │ └── ValidationProblem.java
│ │ │ ├── outcome
│ │ │ └── OutcomeMapper.java
│ │ │ ├── service
│ │ │ ├── SafeCacheSerDeUtil.java
│ │ │ ├── TransactionUtil.java
│ │ │ ├── cache
│ │ │ │ └── CachedResultAccessor.java
│ │ │ ├── context
│ │ │ │ └── ContextUtil.java
│ │ │ ├── eventbus
│ │ │ │ ├── ProcessEventHandlerRegistrar.java
│ │ │ │ └── ProcessResultEventHandler.java
│ │ │ └── exec
│ │ │ │ └── ValidatedExecution.java
│ │ │ └── util
│ │ │ └── logResolver
│ │ │ ├── LogResolver.java
│ │ │ ├── domain
│ │ │ ├── ContextLog.java
│ │ │ └── ExecutionLog.java
│ │ │ └── mapper
│ │ │ └── DtoToLogObjectsMapper.java
│ │ └── test
│ │ └── java
│ │ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── protocol
│ │ └── bpmnshared
│ │ └── config
│ │ └── flowable
│ │ ├── JsonCustomSerializerTest.java
│ │ └── LargeJsonCustomSerializerTest.java
├── sandboxes
│ ├── hbci-sandbox
│ │ ├── Dockerfile
│ │ ├── Dockerfile-no-java-needed
│ │ ├── FLOWS.md
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── de
│ │ │ │ │ └── adorsys
│ │ │ │ │ └── opba
│ │ │ │ │ └── protocol
│ │ │ │ │ └── sandbox
│ │ │ │ │ └── hbci
│ │ │ │ │ ├── HbciServerApplication.java
│ │ │ │ │ ├── config
│ │ │ │ │ ├── HbciConfig.java
│ │ │ │ │ ├── HbciJpaAuditConfig.java
│ │ │ │ │ ├── HbciJsonCustomSerializer.java
│ │ │ │ │ ├── HbciSandboxFlowableConfig.java
│ │ │ │ │ ├── HbciSandboxMapperConfig.java
│ │ │ │ │ └── dto
│ │ │ │ │ │ ├── Account.java
│ │ │ │ │ │ ├── Bank.java
│ │ │ │ │ │ ├── BankSecurity.java
│ │ │ │ │ │ ├── BpdAuthLevel.java
│ │ │ │ │ │ ├── SensitiveAuthLevel.java
│ │ │ │ │ │ ├── Transaction.java
│ │ │ │ │ │ └── User.java
│ │ │ │ │ ├── controller
│ │ │ │ │ └── HbciRestController.java
│ │ │ │ │ ├── domain
│ │ │ │ │ └── HbciSandboxPayment.java
│ │ │ │ │ ├── protocol
│ │ │ │ │ ├── Const.java
│ │ │ │ │ ├── DecisionSwitch.java
│ │ │ │ │ ├── MapRegexUtil.java
│ │ │ │ │ ├── Operation.java
│ │ │ │ │ ├── OperationHandler.java
│ │ │ │ │ ├── RequestStatusUtil.java
│ │ │ │ │ ├── TemplateBasedOperationHandler.java
│ │ │ │ │ ├── anonymous
│ │ │ │ │ │ ├── AnonymousDialogEnd.java
│ │ │ │ │ │ ├── AnonymousDialogInitBpd.java
│ │ │ │ │ │ └── AnonymousDialogInitNotSupported.java
│ │ │ │ │ ├── authenticated
│ │ │ │ │ │ ├── authorized
│ │ │ │ │ │ │ ├── AuthorizedAuthLost.java
│ │ │ │ │ │ │ ├── AuthorizedCustomMsg.java
│ │ │ │ │ │ │ ├── AuthorizedDialogEnd.java
│ │ │ │ │ │ │ ├── AuthorizedDialogInit.java
│ │ │ │ │ │ │ └── AuthorizedSynchronization.java
│ │ │ │ │ │ └── nonauthorized
│ │ │ │ │ │ │ ├── AuthenticatedAuthLost.java
│ │ │ │ │ │ │ ├── AuthenticatedCustomMsg.java
│ │ │ │ │ │ │ ├── AuthenticatedDialogEnd.java
│ │ │ │ │ │ │ ├── AuthenticatedDialogInit.java
│ │ │ │ │ │ │ ├── AuthenticatedDialogInitSca.java
│ │ │ │ │ │ │ ├── AuthenticatedLostAuth.java
│ │ │ │ │ │ │ └── AuthenticatedSynchronization.java
│ │ │ │ │ ├── common
│ │ │ │ │ │ ├── ExtractBankAndUserIfAvailable.java
│ │ │ │ │ │ ├── SetDialogId.java
│ │ │ │ │ │ ├── WrongPinTanOrLogin.java
│ │ │ │ │ │ └── WrongScaMethodId.java
│ │ │ │ │ ├── context
│ │ │ │ │ │ └── HbciSandboxContext.java
│ │ │ │ │ ├── interpolation
│ │ │ │ │ │ └── JsonTemplateInterpolation.java
│ │ │ │ │ └── parsing
│ │ │ │ │ │ └── ParsingUtil.java
│ │ │ │ │ ├── repository
│ │ │ │ │ └── HbciSandboxPaymentRepository.java
│ │ │ │ │ ├── service
│ │ │ │ │ ├── HbciMockService.java
│ │ │ │ │ └── HbciSandboxPaymentService.java
│ │ │ │ │ └── util
│ │ │ │ │ └── logresolver
│ │ │ │ │ ├── HbciSandboxLogResolver.java
│ │ │ │ │ ├── domain
│ │ │ │ │ ├── HbciSandboxContextLog.java
│ │ │ │ │ └── HbciSandboxExecutionLog.java
│ │ │ │ │ └── mapper
│ │ │ │ │ └── HbciSandboxDtoToLogObjectsMapper.java
│ │ │ └── resources
│ │ │ │ ├── application-postgres.yml
│ │ │ │ ├── application.yml
│ │ │ │ ├── hbci-non-sensitive-fields.txt
│ │ │ │ ├── hbci-sandbox-migration
│ │ │ │ ├── master.xml
│ │ │ │ └── migrations
│ │ │ │ │ └── 0000-create-hbci-tables.xml
│ │ │ │ ├── hbci-sensitive-fields.txt
│ │ │ │ ├── processes
│ │ │ │ └── hbci
│ │ │ │ │ └── hbci-sandbox-mock-dialog.bpmn20.xml
│ │ │ │ └── response-templates
│ │ │ │ ├── anonymous
│ │ │ │ ├── dialog-end.json
│ │ │ │ ├── dialog-init-anon-not-supported.json
│ │ │ │ └── dialog-init-bpd.json
│ │ │ │ ├── authenticated
│ │ │ │ ├── custom-message-authorization-required-payment-status.json
│ │ │ │ ├── custom-message-authorization-required-payment.json
│ │ │ │ ├── custom-message-authorization-required.json
│ │ │ │ ├── custom-message-konto-mt940.json
│ │ │ │ ├── custom-message-payment-status.json
│ │ │ │ ├── custom-message-sepa-info.json
│ │ │ │ ├── dialog-end.json
│ │ │ │ ├── dialog-init-sca.json
│ │ │ │ ├── dialog-init-upd-acc.json
│ │ │ │ ├── synch-bpd-sca.json
│ │ │ │ └── synch-bpd.json
│ │ │ │ ├── authorized
│ │ │ │ ├── custom-message-konto-mt940.json
│ │ │ │ ├── custom-message-payment-response.json
│ │ │ │ ├── custom-message-payment-status.json
│ │ │ │ ├── custom-message-sepa-info.json
│ │ │ │ ├── dialog-end.json
│ │ │ │ ├── dialog-init-upd-acc.json
│ │ │ │ └── synch.json
│ │ │ │ ├── wrong-pin.json
│ │ │ │ ├── wrong-sca-id.json
│ │ │ │ └── wrong-tan.json
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── de
│ │ │ │ └── adorsys
│ │ │ │ └── opba
│ │ │ │ └── protocol
│ │ │ │ ├── hbci
│ │ │ │ └── service
│ │ │ │ │ └── consent
│ │ │ │ │ └── authentication
│ │ │ │ │ └── HbciStubGenerator.java
│ │ │ │ └── sandbox
│ │ │ │ └── hbci
│ │ │ │ └── protocol
│ │ │ │ └── interpolation
│ │ │ │ └── JsonTemplateInterpolationTest.java
│ │ │ └── resources
│ │ │ └── interpolation
│ │ │ ├── loop.json
│ │ │ └── simple.json
│ ├── pom.xml
│ └── xs2a-sandbox
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── de
│ │ │ │ └── adorsys
│ │ │ │ └── opba
│ │ │ │ └── protocol
│ │ │ │ └── xs2a
│ │ │ │ └── testsandbox
│ │ │ │ └── Const.java
│ │ └── resources
│ │ │ ├── docker-compose-with-wiremock.yml
│ │ │ ├── sandbox-old
│ │ │ ├── application-test-aspsp-profile.yml
│ │ │ ├── application-test-cert-generator.yml
│ │ │ ├── application-test-common.yml
│ │ │ ├── application-test-consent-mgmt.yml
│ │ │ ├── application-test-db-local-postgres.yml
│ │ │ ├── application-test-db-test-containers-postgres.yml
│ │ │ ├── application-test-ledgers-app.yml
│ │ │ ├── application-test-ledgers-gateway.yml
│ │ │ ├── application-test-online-banking-ui.yml
│ │ │ ├── application-test-online-banking.yml
│ │ │ └── application-test-tpp-rest.yml
│ │ │ ├── sandbox
│ │ │ ├── application-test-aspsp-profile.yml
│ │ │ ├── application-test-cert-generator.yml
│ │ │ ├── application-test-common.yml
│ │ │ ├── application-test-consent-mgmt.yml
│ │ │ ├── application-test-db-local-postgres.yml
│ │ │ ├── application-test-db-test-containers-postgres.yml
│ │ │ ├── application-test-ledgers-app.yml
│ │ │ ├── application-test-ledgers-gateway.yml
│ │ │ ├── application-test-online-banking-ui.yml
│ │ │ ├── application-test-online-banking.yml
│ │ │ ├── application-test-tpp-rest.yml
│ │ │ └── prepare-postgres.sql
│ │ │ └── wiremock-fixtures
│ │ │ ├── __files
│ │ │ ├── body-v1-accounts-24398.json
│ │ │ ├── body-v1-accounts-45006.json
│ │ │ ├── body-v1-accounts-55313.json
│ │ │ ├── body-v1-consents-11732.json
│ │ │ ├── body-v1-consents-11733.json
│ │ │ ├── body-v1-consents-35190.json
│ │ │ ├── body-v1-consents-35191.json
│ │ │ ├── body-v1-consents-356567.json
│ │ │ ├── body-v1-consents-39334.json
│ │ │ ├── body-v1-consents-456567.json
│ │ │ ├── body-v1-consents-48037.json
│ │ │ ├── body-v1-consents-50625.json
│ │ │ ├── body-v1-consents-5252.json
│ │ │ ├── body-v1-consents-54083.json
│ │ │ ├── body-v1-consents-63123.json
│ │ │ ├── body-v1-consents-63823.json
│ │ │ ├── body-v1-consents-65272.json
│ │ │ ├── body-v1-consents-7913.json
│ │ │ ├── body-v1-payments-sepa-credit-transfers-12221.json
│ │ │ ├── body-v1-payments-sepa-credit-transfers-FbTj8.json
│ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-12345.json
│ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-NdAgb.json
│ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-RQwOJ.json
│ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-W96vG.json
│ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-fU95X.json
│ │ │ └── body-v1-payments-sepa-credit-transfers-j08oa.json
│ │ │ └── mappings
│ │ │ ├── mapping-v1-accounts-24398.json
│ │ │ ├── mapping-v1-accounts-45006.json
│ │ │ ├── mapping-v1-accounts-55313.json
│ │ │ ├── mapping-v1-consents-11732.json
│ │ │ ├── mapping-v1-consents-11733.json
│ │ │ ├── mapping-v1-consents-1243223.json
│ │ │ ├── mapping-v1-consents-1243225.json
│ │ │ ├── mapping-v1-consents-1243999.json
│ │ │ ├── mapping-v1-consents-150625.json
│ │ │ ├── mapping-v1-consents-15252.json
│ │ │ ├── mapping-v1-consents-35190.json
│ │ │ ├── mapping-v1-consents-35191.json
│ │ │ ├── mapping-v1-consents-356567.json
│ │ │ ├── mapping-v1-consents-39334.json
│ │ │ ├── mapping-v1-consents-456567.json
│ │ │ ├── mapping-v1-consents-48037.json
│ │ │ ├── mapping-v1-consents-50625.json
│ │ │ ├── mapping-v1-consents-5252.json
│ │ │ ├── mapping-v1-consents-54083.json
│ │ │ ├── mapping-v1-consents-54084.json
│ │ │ ├── mapping-v1-consents-63123.json
│ │ │ ├── mapping-v1-consents-63823.json
│ │ │ ├── mapping-v1-consents-65272.json
│ │ │ ├── mapping-v1-consents-7913.json
│ │ │ ├── mapping-v1-consents-83823.json
│ │ │ ├── mapping-v1-payments-sepa-credit-transfers-0gs9c.json
│ │ │ ├── mapping-v1-payments-sepa-credit-transfers-12345.json
│ │ │ ├── mapping-v1-payments-sepa-credit-transfers-4556.json
│ │ │ ├── mapping-v1-payments-sepa-credit-transfers-FbTj8.json
│ │ │ ├── mapping-v1-payments-sepa-credit-transfers-NdAgb.json
│ │ │ ├── mapping-v1-payments-sepa-credit-transfers-XWE3m.json
│ │ │ ├── mapping-v1-payments-sepa-credit-transfers-fU95X.json
│ │ │ └── mapping-v1-payments-sepa-credit-transfers-mMOS.json
│ │ └── test
│ │ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── protocol
│ │ │ └── xs2a
│ │ │ └── testsandbox
│ │ │ ├── BaseMockitoTest.java
│ │ │ └── BasicTest.java
│ │ └── resources
│ │ └── logback-test.xml
├── xs2a-protocol-tests
│ ├── pom.xml
│ ├── xs2a-bdd-sandbox
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ └── java
│ │ │ │ └── de
│ │ │ │ └── adorsys
│ │ │ │ └── opba
│ │ │ │ └── protocol
│ │ │ │ └── xs2a
│ │ │ │ └── tests
│ │ │ │ └── e2e
│ │ │ │ └── sandbox
│ │ │ │ └── servers
│ │ │ │ ├── SandboxServers.java
│ │ │ │ ├── WebDriverBasedAccountInformation.java
│ │ │ │ ├── WebDriverBasedPaymentInitiation.java
│ │ │ │ └── config
│ │ │ │ └── RetryableConfig.java
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── de
│ │ │ │ └── adorsys
│ │ │ │ └── opba
│ │ │ │ └── protocol
│ │ │ │ └── xs2a
│ │ │ │ └── tests
│ │ │ │ └── e2e
│ │ │ │ └── sandbox
│ │ │ │ ├── SandboxCommonTest.java
│ │ │ │ ├── SandboxE2EProtocolAisOauth2Test.java
│ │ │ │ ├── SandboxE2EProtocolAisTest.java
│ │ │ │ ├── SandboxE2EProtocolPisOauth2Test.java
│ │ │ │ ├── SandboxE2EProtocolPisTest.java
│ │ │ │ ├── Xs2aRealSandboxProtocolApplication.java
│ │ │ │ └── config
│ │ │ │ └── FintechRequestSigningTestConfig.java
│ │ │ └── resources
│ │ │ ├── application-test-mocked-sandbox.yml
│ │ │ └── logback-test.xml
│ ├── xs2a-bdd-tests-common
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── de
│ │ │ │ └── adorsys
│ │ │ │ └── opba
│ │ │ │ └── protocol
│ │ │ │ └── xs2a
│ │ │ │ └── tests
│ │ │ │ ├── BaseMockitoTest.java
│ │ │ │ ├── Const.java
│ │ │ │ ├── HeaderNames.java
│ │ │ │ ├── TestProfiles.java
│ │ │ │ └── e2e
│ │ │ │ ├── JGivenConfig.java
│ │ │ │ ├── LocationExtractorUtil.java
│ │ │ │ ├── ResourceUtil.java
│ │ │ │ └── stages
│ │ │ │ ├── AccountInformationRequestCommon.java
│ │ │ │ ├── AccountInformationResult.java
│ │ │ │ ├── AdminUtil.java
│ │ │ │ ├── CommonGivenStages.java
│ │ │ │ ├── NonHappyPaymentResult.java
│ │ │ │ ├── PaymentRequestCommon.java
│ │ │ │ ├── PaymentResult.java
│ │ │ │ ├── PaymentStagesCommonUtil.java
│ │ │ │ ├── RedirectCapturingTransformer.java
│ │ │ │ ├── RequestCommon.java
│ │ │ │ ├── RequestStatusUtil.java
│ │ │ │ └── StagesCommonUtil.java
│ │ │ └── resources
│ │ │ ├── adapter.config.properties
│ │ │ ├── application-test-one-time-postgres-disk-volume.yml
│ │ │ ├── application-test-one-time-postgres-ramfs.yml
│ │ │ ├── example-keyset.json
│ │ │ ├── init.sql
│ │ │ ├── restrecord
│ │ │ └── tpp-ui-input
│ │ │ │ └── params
│ │ │ │ ├── anton-brueckner-account-all-accounts-consent-without-psu-id.json
│ │ │ │ ├── anton-brueckner-account-all-accounts-consent.json
│ │ │ │ ├── anton-brueckner-account-wrong-ibans.json
│ │ │ │ ├── anton-brueckner-dedicated-account-consent.json
│ │ │ │ ├── anton-brueckner-in-extras.json
│ │ │ │ ├── anton-brueckner-password.json
│ │ │ │ ├── anton-brueckner-payments-authorize.json
│ │ │ │ ├── anton-brueckner-psu-id-parameter.json
│ │ │ │ ├── anton-brueckner-single-payment-response.json
│ │ │ │ ├── anton-brueckner-single-sepa-payment.json
│ │ │ │ ├── anton-brueckner-transactions-all-accounts-psd2-consent.json
│ │ │ │ ├── anton-brueckner-transactions-no-consent.json
│ │ │ │ ├── anton-brueckner-transactions-single-account-consent.json
│ │ │ │ ├── anton-brueckner-wrong-password.json
│ │ │ │ ├── max-musterman-account-all-accounts-consent.json
│ │ │ │ ├── max-musterman-account-all-accounts-consent_with_ip_address.json
│ │ │ │ ├── max-musterman-account-all-accounts-consent_with_psu_ip_port.json
│ │ │ │ ├── max-musterman-dedicated-account-consent-wrong-iban.json
│ │ │ │ ├── max-musterman-dedicated-account-consent.json
│ │ │ │ ├── max-musterman-embedded-consent-challenge-data.json
│ │ │ │ ├── max-musterman-embedded-payment-challenge-data.json
│ │ │ │ ├── max-musterman-in-extras.json
│ │ │ │ ├── max-musterman-password.json
│ │ │ │ ├── max-musterman-sca-challenge-result.json
│ │ │ │ ├── max-musterman-single-sepa-payment.json
│ │ │ │ ├── max-musterman-transactions-all-accounts-psd2-consent.json
│ │ │ │ ├── max-musterman-transactions-single-account-consent.json
│ │ │ │ ├── max-musterman-wrong-password.json
│ │ │ │ ├── max-musterman-wrong-sca-challenge-result.json
│ │ │ │ ├── new-user-account-all-accounts-consent.json
│ │ │ │ ├── new-user-deposit-account-custom-currency.json
│ │ │ │ ├── new-user-deposit-account.json
│ │ │ │ ├── new-user-new-account-registration.json
│ │ │ │ ├── new-user-new-account-with-custom-currency-registration.json
│ │ │ │ ├── new-user-password.json
│ │ │ │ ├── new-user-registration-body.json
│ │ │ │ ├── new-user-sca-challenge-result.json
│ │ │ │ ├── new-user-transactions-single-account-consent.json
│ │ │ │ ├── single-sepa-payment-ing.json
│ │ │ │ ├── unknown-user-all-accounts-consent.json
│ │ │ │ └── unknown-user-transactions-single-account-consent.json
│ │ │ └── sample-qwac.keystore
│ ├── xs2a-bdd-wiremock
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── de
│ │ │ │ │ └── adorsys
│ │ │ │ │ └── opba
│ │ │ │ │ └── protocol
│ │ │ │ │ └── xs2a
│ │ │ │ │ └── tests
│ │ │ │ │ └── e2e
│ │ │ │ │ └── wiremock
│ │ │ │ │ └── mocks
│ │ │ │ │ ├── MockServers.java
│ │ │ │ │ ├── WiremockAccountInformationRequest.java
│ │ │ │ │ ├── WiremockConst.java
│ │ │ │ │ ├── WiremockPaymentRequest.java
│ │ │ │ │ ├── Xs2aProtocolApplication.java
│ │ │ │ │ └── config
│ │ │ │ │ └── FintechRequestSigningTestConfig.java
│ │ │ └── resources
│ │ │ │ ├── application-test-mocked-sandbox.yml
│ │ │ │ └── mockedsandbox
│ │ │ │ ├── restrecord-nonhappy
│ │ │ │ ├── embedded
│ │ │ │ │ └── multi-sca
│ │ │ │ │ │ ├── accounts
│ │ │ │ │ │ └── sandbox
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-v1-accounts-55313.json
│ │ │ │ │ │ │ ├── body-v1-consents-35190.json
│ │ │ │ │ │ │ ├── body-v1-consents-456567.json
│ │ │ │ │ │ │ ├── body-v1-consents-48037.json
│ │ │ │ │ │ │ ├── body-v1-consents-5252.json
│ │ │ │ │ │ │ ├── body-v1-consents-54083.json
│ │ │ │ │ │ │ └── body-v1-consents-7913.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── mapping-v1-accounts-55313.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-1243223.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-1243225.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-15252.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-35190.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-456567.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-48037.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-5252.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-54083.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-54084.json
│ │ │ │ │ │ │ └── mapping-v1-consents-7913.json
│ │ │ │ │ │ └── transactions
│ │ │ │ │ │ └── sandbox
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-v1-accounts-24398.json
│ │ │ │ │ │ ├── body-v1-accounts-45006.json
│ │ │ │ │ │ ├── body-v1-consents-11732.json
│ │ │ │ │ │ ├── body-v1-consents-356567.json
│ │ │ │ │ │ ├── body-v1-consents-39334.json
│ │ │ │ │ │ ├── body-v1-consents-50625.json
│ │ │ │ │ │ ├── body-v1-consents-63123.json
│ │ │ │ │ │ ├── body-v1-consents-63823.json
│ │ │ │ │ │ └── body-v1-consents-65272.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── mapping-v1-accounts-24398.json
│ │ │ │ │ │ ├── mapping-v1-accounts-45006.json
│ │ │ │ │ │ ├── mapping-v1-consents-11732.json
│ │ │ │ │ │ ├── mapping-v1-consents-1243223.json
│ │ │ │ │ │ ├── mapping-v1-consents-150625.json
│ │ │ │ │ │ ├── mapping-v1-consents-356567.json
│ │ │ │ │ │ ├── mapping-v1-consents-39334.json
│ │ │ │ │ │ ├── mapping-v1-consents-50625.json
│ │ │ │ │ │ ├── mapping-v1-consents-63123.json
│ │ │ │ │ │ ├── mapping-v1-consents-63823.json
│ │ │ │ │ │ ├── mapping-v1-consents-65272.json
│ │ │ │ │ │ └── mapping-v1-consents-83823.json
│ │ │ │ └── redirect
│ │ │ │ │ └── accounts
│ │ │ │ │ ├── sandbox
│ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-v1-accounts-12388.json
│ │ │ │ │ │ ├── body-v1-consents-2059.json
│ │ │ │ │ │ └── body-v1-consents-24281.json
│ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── mapping-v1-accounts-12388.json
│ │ │ │ │ │ ├── mapping-v1-consents-1243243.json
│ │ │ │ │ │ ├── mapping-v1-consents-2059.json
│ │ │ │ │ │ ├── mapping-v1-consents-24281.json
│ │ │ │ │ │ └── mapping-v1-consents-24283.json
│ │ │ │ │ └── sandboxnopsu
│ │ │ │ │ └── mappings
│ │ │ │ │ ├── mapping-v1-accounts-1.json
│ │ │ │ │ ├── mapping-v1-consents-2.json
│ │ │ │ │ ├── mapping-v1-consents-3.json
│ │ │ │ │ ├── mapping-v1-consents-4.json
│ │ │ │ │ └── mapping-v1-consents-5.json
│ │ │ │ └── restrecord
│ │ │ │ ├── decoupled-sca
│ │ │ │ ├── decoupled-mode
│ │ │ │ │ ├── accounts
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-v1-accounts-55313.json
│ │ │ │ │ │ │ ├── body-v1-consents-2059236999.json
│ │ │ │ │ │ │ ├── body-v1-consents-3192330705.json
│ │ │ │ │ │ │ ├── body-v1-consents-3258146603.json
│ │ │ │ │ │ │ ├── body-v1-consents-3496770420.json
│ │ │ │ │ │ │ └── body-v1-consents-370291184.json
│ │ │ │ │ │ ├── mappings
│ │ │ │ │ │ │ ├── mapping-v1-accounts-55313.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-2059235614.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-2059235615.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-2059236656.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-3192330705.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-3258146603.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-3496770420.json
│ │ │ │ │ │ │ └── mapping-v1-consents-370291184.json
│ │ │ │ │ │ └── targobank
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── create-consent.json
│ │ │ │ │ │ │ ├── get-accounts.json
│ │ │ │ │ │ │ ├── get-consent-status.json
│ │ │ │ │ │ │ ├── get-sca-finalized-status.json
│ │ │ │ │ │ │ ├── get-sca-scaMethodSelected-status.json
│ │ │ │ │ │ │ └── update-psu-authentication.json
│ │ │ │ │ └── payments
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-v1-1063823569.json
│ │ │ │ │ │ ├── body-v1-1063823571.json
│ │ │ │ │ │ ├── body-v1-3832098252.json
│ │ │ │ │ │ ├── body-v1-492790064.json
│ │ │ │ │ │ ├── body-v1-916399554.json
│ │ │ │ │ │ └── body-v1-payments-sepa-credit-transfers-12221.json
│ │ │ │ │ │ ├── mappings
│ │ │ │ │ │ ├── mapping-v1-1063823569.json
│ │ │ │ │ │ ├── mapping-v1-1063823570.json
│ │ │ │ │ │ ├── mapping-v1-1063823571.json
│ │ │ │ │ │ ├── mapping-v1-3832098252.json
│ │ │ │ │ │ ├── mapping-v1-492790064.json
│ │ │ │ │ │ ├── mapping-v1-916399554.json
│ │ │ │ │ │ └── mapping-v1-payments-sepa-credit-transfers-4556.json
│ │ │ │ │ │ └── targobank
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── payments-sct-get-payment-status.json
│ │ │ │ │ │ ├── payments-sct-get-sca-finalized-status.json
│ │ │ │ │ │ ├── payments-sct-get-sca-status.json
│ │ │ │ │ │ ├── payments-sct-initiate-payment.json
│ │ │ │ │ │ └── payments-sct-update-psu-authentication.json
│ │ │ │ └── embedded-mode-decoupled-sca
│ │ │ │ │ ├── accounts
│ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-v1-accounts-55313.json
│ │ │ │ │ │ ├── body-v1-consents-2059236824.json
│ │ │ │ │ │ ├── body-v1-consents-2059236999.json
│ │ │ │ │ │ ├── body-v1-consents-2145005849.json
│ │ │ │ │ │ ├── body-v1-consents-328937491.json
│ │ │ │ │ │ └── body-v1-consents-3657373201.json
│ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── mapping-v1-accounts-55313.json
│ │ │ │ │ │ ├── mapping-v1-consents-2059235614.json
│ │ │ │ │ │ ├── mapping-v1-consents-2059235615.json
│ │ │ │ │ │ ├── mapping-v1-consents-2059236656.json
│ │ │ │ │ │ ├── mapping-v1-consents-2059236824.json
│ │ │ │ │ │ ├── mapping-v1-consents-2145005849.json
│ │ │ │ │ │ ├── mapping-v1-consents-328937491.json
│ │ │ │ │ │ └── mapping-v1-consents-3657373201.json
│ │ │ │ │ └── payments
│ │ │ │ │ ├── __files
│ │ │ │ │ ├── body-v1-1063823569.json
│ │ │ │ │ ├── body-v1-1063823571.json
│ │ │ │ │ ├── body-v1-3832098252.json
│ │ │ │ │ ├── body-v1-492790064.json
│ │ │ │ │ ├── body-v1-916399554.json
│ │ │ │ │ └── body-v1-payments-sepa-credit-transfers-12221.json
│ │ │ │ │ └── mappings
│ │ │ │ │ ├── mapping-v1-1063823569.json
│ │ │ │ │ ├── mapping-v1-1063823570.json
│ │ │ │ │ ├── mapping-v1-1063823571.json
│ │ │ │ │ ├── mapping-v1-3832098252.json
│ │ │ │ │ ├── mapping-v1-492790064.json
│ │ │ │ │ ├── mapping-v1-916399554.json
│ │ │ │ │ └── mapping-v1-payments-sepa-credit-transfers-4556.json
│ │ │ │ ├── embedded
│ │ │ │ ├── multi-sca
│ │ │ │ │ ├── accounts-with-balance
│ │ │ │ │ │ └── sandbox
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-v1-accounts-with-balance-false.json
│ │ │ │ │ │ │ └── body-v1-accounts-with-balance-true.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── mapping-v1-accounts-with-balance-false.json
│ │ │ │ │ │ │ └── mapping-v1-accounts-with-balance-true.json
│ │ │ │ │ ├── accounts
│ │ │ │ │ │ ├── postbank
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ │ ├── create-consent.json
│ │ │ │ │ │ │ │ ├── get-accounts-with-balances.json
│ │ │ │ │ │ │ │ ├── get-accounts.json
│ │ │ │ │ │ │ │ ├── get-balances.json
│ │ │ │ │ │ │ │ ├── get-certificate-pem.json
│ │ │ │ │ │ │ │ ├── get-consent-status.json
│ │ │ │ │ │ │ │ ├── get-transactions.json
│ │ │ │ │ │ │ │ ├── select-sca-method.json
│ │ │ │ │ │ │ │ ├── send-otp.json
│ │ │ │ │ │ │ │ └── update-psu-authentication.json
│ │ │ │ │ │ ├── sandbox
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ │ ├── body-v1-accounts-55313.json
│ │ │ │ │ │ │ │ ├── body-v1-consents-35190.json
│ │ │ │ │ │ │ │ ├── body-v1-consents-35191.json
│ │ │ │ │ │ │ │ ├── body-v1-consents-456567.json
│ │ │ │ │ │ │ │ ├── body-v1-consents-48037.json
│ │ │ │ │ │ │ │ ├── body-v1-consents-5252.json
│ │ │ │ │ │ │ │ ├── body-v1-consents-54083.json
│ │ │ │ │ │ │ │ └── body-v1-consents-7913.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ │ ├── mapping-v1-accounts-55313.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-1243223.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-1243225.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-15252.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-35190.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-35191.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-456567.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-48037.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-5252.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-54083.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-54084.json
│ │ │ │ │ │ │ │ └── mapping-v1-consents-7913.json
│ │ │ │ │ │ └── volksbank
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── response-body-get-accounts.json
│ │ │ │ │ │ │ ├── response-body-get-transactions.json
│ │ │ │ │ │ │ └── response-body-start-psu-authentication.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── create-consent.json
│ │ │ │ │ │ │ ├── get-accounts.json
│ │ │ │ │ │ │ ├── get-transactions.json
│ │ │ │ │ │ │ ├── select-sca-method.json
│ │ │ │ │ │ │ ├── send-otp.json
│ │ │ │ │ │ │ └── start-psu-authentication.json
│ │ │ │ │ ├── payments
│ │ │ │ │ │ ├── postbank
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ │ ├── payments-sct-get-payment-status.json
│ │ │ │ │ │ │ │ ├── payments-sct-get-sca-status.json
│ │ │ │ │ │ │ │ ├── payments-sct-initiate-payment.json
│ │ │ │ │ │ │ │ ├── payments-sct-select-sca-method.json
│ │ │ │ │ │ │ │ ├── payments-sct-send-otp.json
│ │ │ │ │ │ │ │ └── payments-sct-update-psu-authentication.json
│ │ │ │ │ │ └── sandbox
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-12221.json
│ │ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-FbTj8.json
│ │ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-12345.json
│ │ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-NdAgb.json
│ │ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-RQwOJ.json
│ │ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-W96vG.json
│ │ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-fU95X.json
│ │ │ │ │ │ │ └── body-v1-payments-sepa-credit-transfers-j08oa.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-0gs9c.json
│ │ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-12345.json
│ │ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-4556.json
│ │ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-FbTj8.json
│ │ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-NdAgb.json
│ │ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-XWE3m.json
│ │ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-fU95X.json
│ │ │ │ │ │ │ └── mapping-v1-payments-sepa-credit-transfers-mMOS.json
│ │ │ │ │ ├── stateless
│ │ │ │ │ │ ├── accounts
│ │ │ │ │ │ │ └── sandbox
│ │ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ │ ├── body-v1-accounts-55313.json
│ │ │ │ │ │ │ │ ├── body-v1-consents-35190.json
│ │ │ │ │ │ │ │ ├── body-v1-consents-456567.json
│ │ │ │ │ │ │ │ ├── body-v1-consents-48037.json
│ │ │ │ │ │ │ │ ├── body-v1-consents-5252.json
│ │ │ │ │ │ │ │ ├── body-v1-consents-54083.json
│ │ │ │ │ │ │ │ └── body-v1-consents-7913.json
│ │ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ │ ├── mapping-v1-accounts-55313.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-1243223.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-1243225.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-15252.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-35190.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-456567.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-48037.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-5252.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-54083.json
│ │ │ │ │ │ │ │ ├── mapping-v1-consents-54084.json
│ │ │ │ │ │ │ │ └── mapping-v1-consents-7913.json
│ │ │ │ │ │ └── transactions
│ │ │ │ │ │ │ └── sandbox
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-v1-accounts-24398.json
│ │ │ │ │ │ │ ├── body-v1-accounts-45006.json
│ │ │ │ │ │ │ ├── body-v1-consents-11732.json
│ │ │ │ │ │ │ ├── body-v1-consents-356567.json
│ │ │ │ │ │ │ ├── body-v1-consents-39334.json
│ │ │ │ │ │ │ ├── body-v1-consents-50625.json
│ │ │ │ │ │ │ ├── body-v1-consents-63123.json
│ │ │ │ │ │ │ ├── body-v1-consents-63823.json
│ │ │ │ │ │ │ └── body-v1-consents-65272.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── mapping-v1-accounts-24398.json
│ │ │ │ │ │ │ ├── mapping-v1-accounts-45006.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-11732.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-1243223.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-150625.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-356567.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-39334.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-50625.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-63123.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-63823.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-65272.json
│ │ │ │ │ │ │ └── mapping-v1-consents-83823.json
│ │ │ │ │ └── transactions
│ │ │ │ │ │ └── sandbox
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-v1-accounts-24398.json
│ │ │ │ │ │ ├── body-v1-accounts-45006.json
│ │ │ │ │ │ ├── body-v1-consents-11732.json
│ │ │ │ │ │ ├── body-v1-consents-11733.json
│ │ │ │ │ │ ├── body-v1-consents-356567.json
│ │ │ │ │ │ ├── body-v1-consents-39334.json
│ │ │ │ │ │ ├── body-v1-consents-50625.json
│ │ │ │ │ │ ├── body-v1-consents-63123.json
│ │ │ │ │ │ ├── body-v1-consents-63823.json
│ │ │ │ │ │ └── body-v1-consents-65272.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── mapping-v1-accounts-24398.json
│ │ │ │ │ │ ├── mapping-v1-accounts-45006.json
│ │ │ │ │ │ ├── mapping-v1-consents-11732.json
│ │ │ │ │ │ ├── mapping-v1-consents-11733.json
│ │ │ │ │ │ ├── mapping-v1-consents-1243223.json
│ │ │ │ │ │ ├── mapping-v1-consents-150625.json
│ │ │ │ │ │ ├── mapping-v1-consents-356567.json
│ │ │ │ │ │ ├── mapping-v1-consents-39334.json
│ │ │ │ │ │ ├── mapping-v1-consents-50625.json
│ │ │ │ │ │ ├── mapping-v1-consents-63123.json
│ │ │ │ │ │ ├── mapping-v1-consents-63823.json
│ │ │ │ │ │ ├── mapping-v1-consents-65272.json
│ │ │ │ │ │ └── mapping-v1-consents-83823.json
│ │ │ │ ├── one-sca
│ │ │ │ │ ├── accounts
│ │ │ │ │ │ └── sandbox
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-v1-accounts-1828828.json
│ │ │ │ │ │ │ ├── body-v1-accounts-34849.json
│ │ │ │ │ │ │ ├── body-v1-consents-182893.json
│ │ │ │ │ │ │ ├── body-v1-consents-182939.json
│ │ │ │ │ │ │ ├── body-v1-consents-55858.json
│ │ │ │ │ │ │ └── body-v1-consents-599403.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── mapping-v1-accounts-1828828.json
│ │ │ │ │ │ │ ├── mapping-v1-accounts-34849.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-182893.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-182939.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-55858.json
│ │ │ │ │ │ │ └── mapping-v1-consents-599403.json
│ │ │ │ │ └── payments
│ │ │ │ │ │ └── sandbox
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-CDRF6.json
│ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-DNg0h.json
│ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-Qjgvn.json
│ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-S8p45.json
│ │ │ │ │ │ └── body-v1-payments-sepa-credit-transfers-Y6VfP.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-4556.json
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-CDRF6.json
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-DNg0h.json
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-Qjgvn.json
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-S8p45.json
│ │ │ │ │ │ └── mapping-v1-payments-sepa-credit-transfers-Y6VfP.json
│ │ │ │ ├── pre-step
│ │ │ │ │ ├── accounts
│ │ │ │ │ │ └── dkb
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── select-sca-method-response-body.json
│ │ │ │ │ │ │ └── start-psu-authentication-response-body.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── create-allPsd2-consent.json
│ │ │ │ │ │ │ ├── create-consent-error.json
│ │ │ │ │ │ │ ├── create-consent.json
│ │ │ │ │ │ │ ├── get-accounts.json
│ │ │ │ │ │ │ ├── get-consent-status.json
│ │ │ │ │ │ │ ├── oauth-token.json
│ │ │ │ │ │ │ ├── select-sca-method.json
│ │ │ │ │ │ │ ├── send-otp.json
│ │ │ │ │ │ │ └── start-psu-authentication.json
│ │ │ │ │ └── payments
│ │ │ │ │ │ └── dkb
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── initiate-payment-response-body.json
│ │ │ │ │ │ ├── select-sca-method-response-body.json
│ │ │ │ │ │ └── start-psu-authentication-response-body.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── get-payment-status.json
│ │ │ │ │ │ ├── initiate-payment.json
│ │ │ │ │ │ ├── pre-aus-token.json
│ │ │ │ │ │ ├── select-sca-method.json
│ │ │ │ │ │ ├── send-otp.json
│ │ │ │ │ │ └── start-psu-authentication.json
│ │ │ │ ├── sparkasse
│ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── ais-create-consent.json
│ │ │ │ │ │ ├── ais-get-accounts.json
│ │ │ │ │ │ ├── ais-get-transactions.json
│ │ │ │ │ │ ├── ais-select-sca-method.json
│ │ │ │ │ │ ├── ais-send-otp.json
│ │ │ │ │ │ ├── ais-start-psu-authentication.json
│ │ │ │ │ │ └── update-psu-authentication.json
│ │ │ │ └── zero-sca
│ │ │ │ │ ├── accounts
│ │ │ │ │ └── sandbox
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-v1-accounts-55313.json
│ │ │ │ │ │ ├── body-v1-consents-48037.json
│ │ │ │ │ │ ├── body-v1-consents-54083.json
│ │ │ │ │ │ └── body-v1-consents-7913.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── mapping-v1-accounts-55313.json
│ │ │ │ │ │ ├── mapping-v1-consents-48037.json
│ │ │ │ │ │ ├── mapping-v1-consents-54083.json
│ │ │ │ │ │ └── mapping-v1-consents-7913.json
│ │ │ │ │ ├── payments
│ │ │ │ │ └── sandbox
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-12221.json
│ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-FbTj8.json
│ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-RQwOJ.json
│ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-authorisations-fU95X.json
│ │ │ │ │ │ └── body-v1-payments-sepa-credit-transfers-j08oa.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-0gs9c.json
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-4556.json
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-FbTj8.json
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-XWE3m.json
│ │ │ │ │ │ └── mapping-v1-payments-sepa-credit-transfers-fU95X.json
│ │ │ │ │ └── transactions
│ │ │ │ │ └── sandbox
│ │ │ │ │ ├── __files
│ │ │ │ │ ├── body-v1-accounts-24398.json
│ │ │ │ │ ├── body-v1-consents-39334.json
│ │ │ │ │ ├── body-v1-consents-63823.json
│ │ │ │ │ └── body-v1-consents-65272.json
│ │ │ │ │ └── mappings
│ │ │ │ │ ├── mapping-v1-accounts-24398.json
│ │ │ │ │ ├── mapping-v1-consents-39334.json
│ │ │ │ │ ├── mapping-v1-consents-63823.json
│ │ │ │ │ └── mapping-v1-consents-65272.json
│ │ │ │ ├── howto-record.md
│ │ │ │ ├── oauth2
│ │ │ │ ├── integrated
│ │ │ │ │ ├── accounts
│ │ │ │ │ │ ├── commerzbank
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ │ ├── body-account-response.json
│ │ │ │ │ │ │ │ └── create-consent-body.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ │ ├── create-consent.json
│ │ │ │ │ │ │ │ ├── get-accounts.json
│ │ │ │ │ │ │ │ ├── get-oauth-authorization-endpoint.json
│ │ │ │ │ │ │ │ └── get-oauth-token.json
│ │ │ │ │ │ ├── results-oauth2
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ │ ├── body-oauth-authorization-server-12693.json
│ │ │ │ │ │ │ │ ├── body-oauth-authorization-server-9082.json
│ │ │ │ │ │ │ │ └── body-oauth-token-29004.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ │ ├── mapping-oauth-authorization-server-45420.json
│ │ │ │ │ │ │ │ ├── mapping-oauth-authorization-server-65220.json
│ │ │ │ │ │ │ │ └── mapping-oauth-token-4783.json
│ │ │ │ │ │ ├── results-xs2a
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ │ ├── body-v1-accounts-27115.json
│ │ │ │ │ │ │ │ ├── body-v1-accounts-32638.json
│ │ │ │ │ │ │ │ ├── body-v1-accounts-8054.json
│ │ │ │ │ │ │ │ └── body-v1-consents-14841.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ │ ├── mapping-v1-accounts-27115.json
│ │ │ │ │ │ │ │ ├── mapping-v1-accounts-32638.json
│ │ │ │ │ │ │ │ ├── mapping-v1-accounts-8054.json
│ │ │ │ │ │ │ │ └── mapping-v1-consents-14841.json
│ │ │ │ │ │ └── santander
│ │ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-account-response.json
│ │ │ │ │ │ │ └── create-consent-body.json
│ │ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── create-consent.json
│ │ │ │ │ │ │ ├── get-access-token.json
│ │ │ │ │ │ │ ├── get-accounts.json
│ │ │ │ │ │ │ ├── get-oauth-authorization-endpoint.json
│ │ │ │ │ │ │ └── get-oauth-token.json
│ │ │ │ │ └── payments
│ │ │ │ │ │ ├── commerzbank
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ └── created-payment-body.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── create-payment.json
│ │ │ │ │ │ │ ├── get-oauth-authorization-endpoint.json
│ │ │ │ │ │ │ ├── get-oauth-token.json
│ │ │ │ │ │ │ └── get-payment-status.json
│ │ │ │ │ │ ├── results-oauth2
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-oauth-authorization-server-32275.json
│ │ │ │ │ │ │ ├── body-oauth-authorization-server-4479.json
│ │ │ │ │ │ │ └── body-oauth-token-51726.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── mapping-oauth-authorization-server-32275.json
│ │ │ │ │ │ │ ├── mapping-oauth-authorization-server-4479.json
│ │ │ │ │ │ │ └── mapping-oauth-token-51726.json
│ │ │ │ │ │ ├── results-xs2a
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-v1-27380.json
│ │ │ │ │ │ │ └── body-v1-7026.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── mapping-v1-27380.json
│ │ │ │ │ │ │ └── mapping-v1-7026.json
│ │ │ │ │ │ └── santander
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-payment-status-response.json
│ │ │ │ │ │ └── created-payment-body.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── create-payment.json
│ │ │ │ │ │ ├── get-access-token.json
│ │ │ │ │ │ ├── get-oauth-authorization-endpoint.json
│ │ │ │ │ │ ├── get-oauth-token.json
│ │ │ │ │ │ └── get-payment-status.json
│ │ │ │ └── prestep
│ │ │ │ │ ├── accounts
│ │ │ │ │ ├── results-oauth2
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-oauth-authorization-server-4297.json
│ │ │ │ │ │ │ └── body-oauth-token-19228.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── mapping-oauth-authorization-server-4297.json
│ │ │ │ │ │ │ └── mapping-oauth-token-19228.json
│ │ │ │ │ └── results-xs2a
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-v1-accounts-1042.json
│ │ │ │ │ │ ├── body-v1-accounts-12324.json
│ │ │ │ │ │ ├── body-v1-accounts-1367.json
│ │ │ │ │ │ ├── body-v1-consents-47431.json
│ │ │ │ │ │ ├── body-v1-consents-55757.json
│ │ │ │ │ │ └── body-v1-consents-57125.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── mapping-v1-accounts-1042.json
│ │ │ │ │ │ ├── mapping-v1-accounts-12324.json
│ │ │ │ │ │ ├── mapping-v1-accounts-1367.json
│ │ │ │ │ │ ├── mapping-v1-consents-47431.json
│ │ │ │ │ │ ├── mapping-v1-consents-55757.json
│ │ │ │ │ │ └── mapping-v1-consents-57125.json
│ │ │ │ │ ├── ing
│ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── ais-get-accounts-response-body.json
│ │ │ │ │ │ └── get-token-client-credentials-response-body.json
│ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── ais-get-accounts.json
│ │ │ │ │ │ ├── ais-get-authorization-code.json
│ │ │ │ │ │ ├── ais-get-authorization-request-uri.json
│ │ │ │ │ │ ├── ais-get-token-authorization-code.json
│ │ │ │ │ │ ├── ais-get-transactions.json
│ │ │ │ │ │ ├── get-token-client-credentials.json
│ │ │ │ │ │ ├── pis-payments-sct-get-payment-status.json
│ │ │ │ │ │ ├── pis-payments-sct-initiate-payment.json
│ │ │ │ │ │ ├── pis-periodic-sct-get-payment-status.json
│ │ │ │ │ │ ├── pis-periodic-sct-initiate-payment.json
│ │ │ │ │ │ └── pis-sca-redirect.json
│ │ │ │ │ └── payments
│ │ │ │ │ ├── results-oauth2
│ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-oauth-authorization-server-4485.json
│ │ │ │ │ │ └── body-oauth-token-38529.json
│ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── mapping-oauth-authorization-server-4485.json
│ │ │ │ │ │ └── mapping-oauth-token-38529.json
│ │ │ │ │ └── results-xs2a
│ │ │ │ │ ├── __files
│ │ │ │ │ ├── body-v1-11840.json
│ │ │ │ │ ├── body-v1-53661.json
│ │ │ │ │ ├── body-v1-54020.json
│ │ │ │ │ └── body-v1-58960.json
│ │ │ │ │ └── mappings
│ │ │ │ │ ├── mapping-v1-11840.json
│ │ │ │ │ ├── mapping-v1-53661.json
│ │ │ │ │ ├── mapping-v1-54020.json
│ │ │ │ │ └── mapping-v1-58960.json
│ │ │ │ ├── redirect
│ │ │ │ ├── accounts
│ │ │ │ │ ├── consorsbank
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-account-response.json
│ │ │ │ │ │ │ └── create-consent-body.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── create-consent.json
│ │ │ │ │ │ │ └── get-accounts.json
│ │ │ │ │ ├── db
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-account-response.json
│ │ │ │ │ │ │ └── create-consent-redirect-response-body.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── create-consent-redirect.json
│ │ │ │ │ │ │ └── get-accounts.json
│ │ │ │ │ ├── sandbox
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-v1-accounts-12388.json
│ │ │ │ │ │ │ ├── body-v1-consents-2059.json
│ │ │ │ │ │ │ └── body-v1-consents-24281.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── mapping-v1-accounts-12388.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-1243243.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-2059.json
│ │ │ │ │ │ │ ├── mapping-v1-consents-24281.json
│ │ │ │ │ │ │ └── mapping-v1-consents-24283.json
│ │ │ │ │ └── sandboxnopsu
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── mapping-v1-accounts-1.json
│ │ │ │ │ │ ├── mapping-v1-consents-2.json
│ │ │ │ │ │ ├── mapping-v1-consents-3.json
│ │ │ │ │ │ ├── mapping-v1-consents-4.json
│ │ │ │ │ │ └── mapping-v1-consents-5.json
│ │ │ │ ├── payments
│ │ │ │ │ ├── consorsbank
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ │ ├── body-acsp-payments-sepa-credit-transfers.json
│ │ │ │ │ │ │ ├── body-payments-sepa-credit-transfers-authorization.json
│ │ │ │ │ │ │ └── body-rcvd-payments-sepa-credit-transfers.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ │ ├── get-payments-authorization.json
│ │ │ │ │ │ │ ├── get-payments-status.json
│ │ │ │ │ │ │ └── initiate-payments.json
│ │ │ │ │ └── sandbox
│ │ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-11246.json
│ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-4556.json
│ │ │ │ │ │ ├── body-v1-payments-sepa-credit-transfers-authorization-11123.json
│ │ │ │ │ │ └── body-v1-payments-sepa-credit-transfers-j081a.json
│ │ │ │ │ │ └── mappings
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-0gs1c.json
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-11246.json
│ │ │ │ │ │ ├── mapping-v1-payments-sepa-credit-transfers-4556.json
│ │ │ │ │ │ └── mapping-v1-payments-sepa-credit-transfers-authorization-11123.json
│ │ │ │ └── transactions
│ │ │ │ │ └── sandbox
│ │ │ │ │ ├── __files
│ │ │ │ │ ├── body-v1-accounts-2625.json
│ │ │ │ │ ├── body-v1-accounts-65004.json
│ │ │ │ │ ├── body-v1-consents-50421.json
│ │ │ │ │ └── body-v1-consents-9071.json
│ │ │ │ │ └── mappings
│ │ │ │ │ ├── mapping-v1-accounts-2625.json
│ │ │ │ │ ├── mapping-v1-accounts-65004.json
│ │ │ │ │ ├── mapping-v1-consents-1243243.json
│ │ │ │ │ ├── mapping-v1-consents-50421.json
│ │ │ │ │ ├── mapping-v1-consents-8071.json
│ │ │ │ │ └── mapping-v1-consents-9071.json
│ │ │ │ └── shorten-filenames-helper.groovy
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── de
│ │ │ │ └── adorsys
│ │ │ │ └── opba
│ │ │ │ └── protocol
│ │ │ │ └── xs2a
│ │ │ │ └── tests
│ │ │ │ └── e2e
│ │ │ │ └── wiremock
│ │ │ │ ├── Const.java
│ │ │ │ ├── WiremockAnonymousConsentE2EXs2aProtocolTest.java
│ │ │ │ ├── WiremockAnonymousPaymentE2EXs2aProtocolTest.java
│ │ │ │ ├── WiremockAuthenticatedPaymentE2EXs2aProtocolTest.java
│ │ │ │ ├── WiremockAuthenticatedPaymentNonHappyPathE2EXs2aProtocolTest.java
│ │ │ │ ├── WiremockConsentE2EXs2aProtocolTest.java
│ │ │ │ ├── WiremockConsentNonHappyPathE2EXs2aProtocolTest.java
│ │ │ │ ├── WiremockDeleteBankAfterAnonymousPaymentE2EXs2aProtocolTest.java
│ │ │ │ ├── WiremockDeleteBankAfterConsentE2EXs2aProtocolTest.java
│ │ │ │ └── WiremockE2EXs2aProtocolAuthorizationDenyTest.java
│ │ │ └── resources
│ │ │ └── logback-test.xml
│ └── xs2a-stress-test
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src
│ │ └── test
│ │ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── protocol
│ │ │ └── xs2a
│ │ │ └── tests
│ │ │ └── e2e
│ │ │ └── wiremock
│ │ │ └── stress
│ │ │ ├── E2EStress.java
│ │ │ └── WiremockE2EStressXs2aProtocolTest.java
│ │ └── resources
│ │ ├── load_generation.properties
│ │ └── logback-test.xml
├── xs2a-protocol
│ ├── README.md
│ ├── docs
│ │ ├── language-injections.xml
│ │ ├── result-mappings.svg
│ │ └── unexclude_dir.gif
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── de
│ │ │ │ └── adorsys
│ │ │ │ └── opba
│ │ │ │ └── protocol
│ │ │ │ └── xs2a
│ │ │ │ ├── EnableXs2aProtocol.java
│ │ │ │ ├── Xs2aProtocolConfiguration.java
│ │ │ │ ├── config
│ │ │ │ ├── ConfigConst.java
│ │ │ │ ├── I18NConfig.java
│ │ │ │ ├── RetryConfig.java
│ │ │ │ ├── Xs2aFlowableConfig.java
│ │ │ │ ├── aspspmessages
│ │ │ │ │ └── AspspMessages.java
│ │ │ │ ├── protocol
│ │ │ │ │ └── ProtocolUrlsConfiguration.java
│ │ │ │ └── xs2aadapter
│ │ │ │ │ └── Xs2aAdapterConfiguration.java
│ │ │ │ ├── constant
│ │ │ │ └── GlobalConst.java
│ │ │ │ ├── context
│ │ │ │ ├── LastViolations.java
│ │ │ │ ├── Xs2aContext.java
│ │ │ │ ├── Xs2aResultCache.java
│ │ │ │ ├── ais
│ │ │ │ │ ├── AccountListXs2aContext.java
│ │ │ │ │ ├── TransactionListXs2aContext.java
│ │ │ │ │ └── Xs2aAisContext.java
│ │ │ │ └── pis
│ │ │ │ │ ├── SinglePaymentXs2aContext.java
│ │ │ │ │ └── Xs2aPisContext.java
│ │ │ │ ├── domain
│ │ │ │ ├── ValidationIssueException.java
│ │ │ │ └── dto
│ │ │ │ │ └── forms
│ │ │ │ │ └── ScaMethod.java
│ │ │ │ ├── entrypoint
│ │ │ │ ├── AccountStatementMapper.java
│ │ │ │ ├── ExtendWithServiceContext.java
│ │ │ │ ├── Xs2aOutcomeMapper.java
│ │ │ │ ├── Xs2aResultBodyExtractor.java
│ │ │ │ ├── ais
│ │ │ │ │ ├── ConsentContextLoadingService.java
│ │ │ │ │ ├── Xs2aDeleteConsent.java
│ │ │ │ │ ├── Xs2aListAccountsEntrypoint.java
│ │ │ │ │ └── Xs2aListTransactionsEntrypoint.java
│ │ │ │ ├── authorization
│ │ │ │ │ ├── Xs2aDenyAuthorization.java
│ │ │ │ │ ├── Xs2aFromAspspRedirect.java
│ │ │ │ │ ├── Xs2aGetAuthorizationState.java
│ │ │ │ │ ├── Xs2aUpdateAuthorization.java
│ │ │ │ │ └── common
│ │ │ │ │ │ ├── AuthorizationContinuationService.java
│ │ │ │ │ │ └── UpdateAuthMapper.java
│ │ │ │ ├── helpers
│ │ │ │ │ └── Xs2aUuidMapper.java
│ │ │ │ ├── parsers
│ │ │ │ │ └── XmlTransactionsParser.java
│ │ │ │ └── pis
│ │ │ │ │ ├── Xs2aGetPaymentInfoEntrypoint.java
│ │ │ │ │ ├── Xs2aGetPaymentStatusEntrypoint.java
│ │ │ │ │ ├── Xs2aInitiateSinglePaymentEntrypoint.java
│ │ │ │ │ └── Xs2aPaymentContextLoader.java
│ │ │ │ ├── service
│ │ │ │ ├── ContextUpdateService.java
│ │ │ │ ├── Xs2aCachedResultAccessor.java
│ │ │ │ ├── dto
│ │ │ │ │ ├── HeadersBodyToValidate.java
│ │ │ │ │ ├── PathHeadersBodyToValidate.java
│ │ │ │ │ ├── PathHeadersToValidate.java
│ │ │ │ │ ├── PathQueryHeadersToValidate.java
│ │ │ │ │ ├── QueryHeadersToValidate.java
│ │ │ │ │ ├── ValidatedHeadersBody.java
│ │ │ │ │ ├── ValidatedPathHeaders.java
│ │ │ │ │ ├── ValidatedPathHeadersBody.java
│ │ │ │ │ ├── ValidatedPathQueryHeaders.java
│ │ │ │ │ └── ValidatedQueryHeaders.java
│ │ │ │ ├── mapper
│ │ │ │ │ ├── HeadersBodyMapperTemplate.java
│ │ │ │ │ ├── PathHeadersBodyMapperTemplate.java
│ │ │ │ │ ├── PathHeadersMapperTemplate.java
│ │ │ │ │ ├── PathQueryHeadersMapperTemplate.java
│ │ │ │ │ └── QueryHeadersMapperTemplate.java
│ │ │ │ ├── protocol
│ │ │ │ │ ├── Xs2aFillBpmnContext.java
│ │ │ │ │ ├── Xs2aFlowNameSelector.java
│ │ │ │ │ ├── Xs2aUpdateToRealModeBpmnContext.java
│ │ │ │ │ └── errorhandlers
│ │ │ │ │ │ └── Xs2aExecutionErrorHandler.java
│ │ │ │ ├── storage
│ │ │ │ │ └── TransientDataEntry.java
│ │ │ │ ├── validation
│ │ │ │ │ ├── Xs2aReportValidationError.java
│ │ │ │ │ ├── Xs2aRestorePreValidationContext.java
│ │ │ │ │ ├── Xs2aStorePreValidationContext.java
│ │ │ │ │ └── Xs2aValidationErrors.java
│ │ │ │ └── xs2a
│ │ │ │ │ ├── Xs2aApiVersionSupport.java
│ │ │ │ │ ├── Xs2aRedirectExecutor.java
│ │ │ │ │ ├── ais
│ │ │ │ │ ├── Xs2aAccountListingService.java
│ │ │ │ │ ├── Xs2aConsentErrorHandler.java
│ │ │ │ │ └── Xs2aTransactionListingService.java
│ │ │ │ │ ├── annotations
│ │ │ │ │ ├── ContextCode.java
│ │ │ │ │ ├── ExternalValidationModeDeclaration.java
│ │ │ │ │ ├── FrontendCode.java
│ │ │ │ │ ├── ValidConsentBody.java
│ │ │ │ │ └── ValidationInfo.java
│ │ │ │ │ ├── authenticate
│ │ │ │ │ ├── ScaUtil.java
│ │ │ │ │ ├── StartAuthorizationHandlerUtil.java
│ │ │ │ │ ├── StartConsentAuthorization.java
│ │ │ │ │ ├── StartConsentAuthorizationWithPin.java
│ │ │ │ │ ├── StartPaymentAuthorization.java
│ │ │ │ │ ├── StartPaymentAuthorizationWithPin.java
│ │ │ │ │ ├── TppRedirectPreferredResolver.java
│ │ │ │ │ ├── decoupled
│ │ │ │ │ │ ├── DecoupledUtil.java
│ │ │ │ │ │ ├── Xs2aAisCheckDecoupledAuthorisationStatus.java
│ │ │ │ │ │ ├── Xs2aAskForDecoupledFinalization.java
│ │ │ │ │ │ └── Xs2aPisCheckDecoupledAuthorisationStatus.java
│ │ │ │ │ ├── embedded
│ │ │ │ │ │ ├── AuthorizationPossibleErrorHandler.java
│ │ │ │ │ │ ├── Xs2aAisAuthenticateConsentWithScaChallenge.java
│ │ │ │ │ │ ├── Xs2aAisAuthenticateUserConsentWithPin.java
│ │ │ │ │ │ ├── Xs2aAisReportSelectedScaMethod.java
│ │ │ │ │ │ ├── Xs2aAskForIban.java
│ │ │ │ │ │ ├── Xs2aAskForPassword.java
│ │ │ │ │ │ ├── Xs2aAskForScaChallenge.java
│ │ │ │ │ │ ├── Xs2aAskForSelectedScaMethod.java
│ │ │ │ │ │ ├── Xs2aPisAuthenticatePaymentWithScaChallenge.java
│ │ │ │ │ │ ├── Xs2aPisAuthenticateUserConsentWithPin.java
│ │ │ │ │ │ └── Xs2aPisReportSelectedScaMethod.java
│ │ │ │ │ └── redirect
│ │ │ │ │ │ ├── Xs2aDoScaRedirectToAspspForScaChallenge.java
│ │ │ │ │ │ └── Xs2aDoScaRedirectToAspspForScaChallengeAfterCreate.java
│ │ │ │ │ ├── consent
│ │ │ │ │ ├── AbortConsent.java
│ │ │ │ │ ├── AisConsentInitiateExtractor.java
│ │ │ │ │ ├── AisConsentInitiateV139Extractor.java
│ │ │ │ │ ├── AspspConsentDrop.java
│ │ │ │ │ ├── BaseCreateAisConsentService.java
│ │ │ │ │ ├── ConsentConst.java
│ │ │ │ │ ├── ConsentFinder.java
│ │ │ │ │ ├── CreateAisAccountListConsentService.java
│ │ │ │ │ ├── CreateAisConsentService.java
│ │ │ │ │ ├── CreateAisTransactionListConsentService.java
│ │ │ │ │ ├── CreateConsentOrPaymentPossibleErrorHandler.java
│ │ │ │ │ ├── DefaultXs2aAccountListConsentService.java
│ │ │ │ │ ├── ReportConsentAuthorizationDenied.java
│ │ │ │ │ ├── ReportConsentAuthorizationFinished.java
│ │ │ │ │ ├── Xs2aAccountListConsentService.java
│ │ │ │ │ ├── Xs2aAccountListConsentServiceProvider.java
│ │ │ │ │ ├── Xs2aAccountListConsentServiceV139.java
│ │ │ │ │ ├── Xs2aConsentInfo.java
│ │ │ │ │ ├── Xs2aLoadConsentAndContextFromDb.java
│ │ │ │ │ └── Xs2aPersistConsentAndContext.java
│ │ │ │ │ ├── dto
│ │ │ │ │ ├── ResponseTokenMapper.java
│ │ │ │ │ ├── ValidationMode.java
│ │ │ │ │ ├── WithBasicInfo.java
│ │ │ │ │ ├── Xs2aAuthorizedConsentParameters.java
│ │ │ │ │ ├── Xs2aAuthorizedPaymentParameters.java
│ │ │ │ │ ├── Xs2aInitialConsentParameters.java
│ │ │ │ │ ├── Xs2aInitialPaymentParameters.java
│ │ │ │ │ ├── Xs2aResourceParameters.java
│ │ │ │ │ ├── Xs2aStandardHeaders.java
│ │ │ │ │ ├── Xs2aStartPaymentAuthorizationParameters.java
│ │ │ │ │ ├── Xs2aTransactionParameters.java
│ │ │ │ │ ├── Xs2aWithBalanceParameters.java
│ │ │ │ │ ├── Xs2aWithConsentIdHeaders.java
│ │ │ │ │ ├── authenticate
│ │ │ │ │ │ └── embedded
│ │ │ │ │ │ │ ├── ProvidePsuIdAndPsuPasswordBody.java
│ │ │ │ │ │ │ ├── ProvidePsuPasswordBody.java
│ │ │ │ │ │ │ ├── ProvideScaChallengeResultBody.java
│ │ │ │ │ │ │ └── SelectScaChallengeBody.java
│ │ │ │ │ ├── consent
│ │ │ │ │ │ ├── AccountAccessType.java
│ │ │ │ │ │ ├── AisConsentInitiateBody.java
│ │ │ │ │ │ ├── ConsentInitiateHeaders.java
│ │ │ │ │ │ ├── ConsentInitiateParameters.java
│ │ │ │ │ │ └── ConsentInitiateV139Headers.java
│ │ │ │ │ ├── oauth2
│ │ │ │ │ │ ├── Xs2aOauth2Headers.java
│ │ │ │ │ │ ├── Xs2aOauth2Parameters.java
│ │ │ │ │ │ └── Xs2aOauth2WithCodeParameters.java
│ │ │ │ │ └── payment
│ │ │ │ │ │ ├── PaymentInfoHeaders.java
│ │ │ │ │ │ ├── PaymentInfoParameters.java
│ │ │ │ │ │ ├── PaymentInitiateBody.java
│ │ │ │ │ │ ├── PaymentInitiateHeaders.java
│ │ │ │ │ │ ├── PaymentInitiateV139Headers.java
│ │ │ │ │ │ ├── PaymentStateHeaders.java
│ │ │ │ │ │ └── PaymentStateParameters.java
│ │ │ │ │ ├── oauth2
│ │ │ │ │ ├── OAuth2Util.java
│ │ │ │ │ ├── Xs2aEmbeddedPreAuthorization.java
│ │ │ │ │ ├── Xs2aOauth2ExchangeCodeToToken.java
│ │ │ │ │ └── Xs2aRedirectUserToOauth2AuthorizationServer.java
│ │ │ │ │ ├── payment
│ │ │ │ │ ├── CreateSinglePaymentService.java
│ │ │ │ │ ├── DefaultSinglePaymentInitiationService.java
│ │ │ │ │ ├── ReportPaymentAuthorizationDenied.java
│ │ │ │ │ ├── ReportPaymentAuthorizationFinished.java
│ │ │ │ │ ├── SinglePaymentInitiationService.java
│ │ │ │ │ ├── SinglePaymentInitiationServiceProvider.java
│ │ │ │ │ ├── SinglePaymentInitiationServiceV139.java
│ │ │ │ │ └── Xs2aPisPersistPaymentAndContext.java
│ │ │ │ │ ├── quirks
│ │ │ │ │ └── QuirkUtil.java
│ │ │ │ │ └── validation
│ │ │ │ │ ├── AccountAccessBodyValidator.java
│ │ │ │ │ └── Xs2aValidator.java
│ │ │ │ └── util
│ │ │ │ └── logresolver
│ │ │ │ ├── Xs2aLogResolver.java
│ │ │ │ ├── domain
│ │ │ │ ├── ValidatedPathHeadersBodyLog.java
│ │ │ │ ├── ValidatedPathHeadersLog.java
│ │ │ │ ├── ValidatedPathQueryHeadersLog.java
│ │ │ │ ├── ValidatedQueryHeadersLog.java
│ │ │ │ ├── Xs2aExecutionLog.java
│ │ │ │ ├── common
│ │ │ │ │ ├── PsuDataLog.java
│ │ │ │ │ ├── SelectPsuAuthenticationMethodLog.java
│ │ │ │ │ ├── StartScaprocessResponseLog.java
│ │ │ │ │ ├── TransactionAuthorisationLog.java
│ │ │ │ │ ├── UpdatePsuAuthenticationLog.java
│ │ │ │ │ ├── Xs2aOauth2HeadersLog.java
│ │ │ │ │ ├── Xs2aOauth2ParametersLog.java
│ │ │ │ │ ├── Xs2aOauth2WithCodeParametersLog.java
│ │ │ │ │ ├── Xs2aResourceParametersLog.java
│ │ │ │ │ ├── Xs2aStandardHeadersLog.java
│ │ │ │ │ ├── Xs2aTransactionParametersLog.java
│ │ │ │ │ ├── Xs2aWithBalanceParametersLog.java
│ │ │ │ │ └── Xs2aWithConsentIdHeadersLog.java
│ │ │ │ ├── consent
│ │ │ │ │ ├── AccountAccessLog.java
│ │ │ │ │ ├── AccountReferenceLog.java
│ │ │ │ │ ├── ConsentInitiateHeadersLog.java
│ │ │ │ │ ├── ConsentInitiateParametersLog.java
│ │ │ │ │ ├── ConsentsLog.java
│ │ │ │ │ ├── Xs2aAuthorizedConsentParametersLog.java
│ │ │ │ │ └── Xs2aInitialConsentParametersLog.java
│ │ │ │ ├── context
│ │ │ │ │ ├── AuthenticationObjectLog.java
│ │ │ │ │ ├── BaseContextLog.java
│ │ │ │ │ ├── ChallengeDataLog.java
│ │ │ │ │ ├── ServiceContextLog.java
│ │ │ │ │ ├── StartScaprocessResponseLog.java
│ │ │ │ │ ├── TransactionListXs2aContextLog.java
│ │ │ │ │ ├── Xs2aContextLog.java
│ │ │ │ │ └── Xs2aPisContextLog.java
│ │ │ │ ├── payment
│ │ │ │ │ ├── AddressLog.java
│ │ │ │ │ ├── AmountLog.java
│ │ │ │ │ ├── PaymentInitiateHeadersLog.java
│ │ │ │ │ ├── PaymentInitiationJsonLog.java
│ │ │ │ │ ├── Xs2aAuthorizedPaymentParametersLog.java
│ │ │ │ │ ├── Xs2aInitialPaymentParametersLog.java
│ │ │ │ │ └── Xs2aStartPaymentAuthorizationParametersLog.java
│ │ │ │ └── response
│ │ │ │ │ ├── ResponseLog.java
│ │ │ │ │ ├── TokenResponseLog.java
│ │ │ │ │ └── URILog.java
│ │ │ │ └── mapper
│ │ │ │ └── Xs2aDtoToLogObjectsMapper.java
│ │ └── resources
│ │ │ ├── ValidationMessages.properties
│ │ │ ├── adapter.config.properties
│ │ │ ├── application.yml
│ │ │ ├── context.properties
│ │ │ ├── logback.xml
│ │ │ ├── messages.properties
│ │ │ ├── processes
│ │ │ └── xs2a
│ │ │ │ ├── accounts
│ │ │ │ ├── xs2a-list-accounts.bpmn20.xml
│ │ │ │ └── xs2a-list-transactions.bpmn20.xml
│ │ │ │ ├── authorization
│ │ │ │ ├── consent
│ │ │ │ │ └── xs2a-authorize-consent.bpmn20.xml
│ │ │ │ ├── oauth2
│ │ │ │ │ └── xs2a-oauth2-step.bpmn20.xml
│ │ │ │ └── payment
│ │ │ │ │ └── xs2a-authorize-payment.bpmn20.xml
│ │ │ │ ├── payment
│ │ │ │ └── xs2a-payment.bpmn20.xml
│ │ │ │ └── saga
│ │ │ │ └── xs2a-request-saga.bpmn20.xml
│ │ │ └── sample-qwac.keystore
│ │ └── test
│ │ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── protocol
│ │ │ └── xs2a
│ │ │ ├── BaseMockitoTest.java
│ │ │ ├── TestProfiles.java
│ │ │ ├── config
│ │ │ ├── MapperTestConfig.java
│ │ │ ├── ObjectMapperConfig.java
│ │ │ └── Xs2aSensitiveDataTest.java
│ │ │ ├── domain
│ │ │ └── dto
│ │ │ │ └── forms
│ │ │ │ └── ScaMethodFromAuthObjectTest.java
│ │ │ ├── entrypoint
│ │ │ ├── Xs2AToFacadeMapperTest.java
│ │ │ ├── ais
│ │ │ │ ├── Xs2aListAccountsEntrypointFromRequestTest.java
│ │ │ │ └── Xs2aListTransactionsEntrypointFromRequestTest.java
│ │ │ ├── authorization
│ │ │ │ ├── Xs2aGetAuthorizationStateScaMethodsMapperTest.java
│ │ │ │ ├── Xs2aGetAuthorizationStateViolationsMapperTest.java
│ │ │ │ └── common
│ │ │ │ │ ├── UpdateAuthMapperAisMapperTest.java
│ │ │ │ │ ├── UpdateAuthMapperFromAisRequestAccountListTest.java
│ │ │ │ │ └── UpdateAuthMapperFromAisRequestTransactionListTest.java
│ │ │ └── pis
│ │ │ │ └── Xs2aInitiateSinglePaymentEntrypointFromRequestTest.java
│ │ │ ├── generators
│ │ │ └── CertGeneratorTest.java
│ │ │ ├── service
│ │ │ ├── ContextUpdateServiceTest.java
│ │ │ └── xs2a
│ │ │ │ ├── authenticate
│ │ │ │ └── embedded
│ │ │ │ │ ├── Xs2AAuthenticateConsentWithScaChallengeClearsScaTest.java
│ │ │ │ │ └── Xs2AAuthenticateWithPinUserConsentClearsPasswordTest.java
│ │ │ │ ├── consent
│ │ │ │ ├── RequestScopedStub.java
│ │ │ │ └── Xs2aLoadConsentAndContextFromDbContextMergerTest.java
│ │ │ │ ├── dto
│ │ │ │ ├── Xs2aAuthorizedConsentParametersFromCtxTest.java
│ │ │ │ ├── Xs2aInitialConsentParametersFromCtxTest.java
│ │ │ │ ├── Xs2aResourceParametersFromCtxTest.java
│ │ │ │ ├── Xs2aStandardHeadersFromAisCtxTest.java
│ │ │ │ ├── Xs2aTransactionParametersFromCtxTest.java
│ │ │ │ ├── Xs2aWithBalanceParametersFromCtxTest.java
│ │ │ │ ├── Xs2aWithConsentIdHeadersFromCtxTest.java
│ │ │ │ ├── authenticate
│ │ │ │ │ └── embedded
│ │ │ │ │ │ ├── ProvidePsuPasswordBodyFromCtxTest.java
│ │ │ │ │ │ ├── ProvidePsuPasswordBodyToXs2aApiTest.java
│ │ │ │ │ │ ├── ProvideScaChallengeResultBodyFromCtxTest.java
│ │ │ │ │ │ ├── ProvideScaChallengeResultBodyToXs2aApiTest.java
│ │ │ │ │ │ ├── SelectScaChallengeBodyFromCtxTest.java
│ │ │ │ │ │ └── SelectScaChallengeBodyToXs2aApiTest.java
│ │ │ │ ├── consent
│ │ │ │ │ ├── AisConsentInitiateBodyFromCtxTest.java
│ │ │ │ │ ├── AisConsentInitiateBodyToXs2aApiTest.java
│ │ │ │ │ └── ConsentInitiateHeadersFromAisCtxTest.java
│ │ │ │ └── oauth2
│ │ │ │ │ └── Xs2aOauth2WithCodeParametersFromCtxTest.java
│ │ │ │ └── validation
│ │ │ │ └── AccountAccessBodyValidatorTest.java
│ │ │ └── util
│ │ │ └── FixtureProvider.java
│ │ └── resources
│ │ ├── application-test-one-time-postgres-ramfs.yml
│ │ ├── dummykeys
│ │ ├── qseal
│ │ │ ├── qseal.pem
│ │ │ └── qseal.pub
│ │ └── qwac
│ │ │ ├── qwac.pem
│ │ │ └── qwac.pub
│ │ ├── logback-test.xml
│ │ ├── mapper-test-fixtures
│ │ ├── account_list_context_from_ctx_authorization_request_input.json
│ │ ├── account_list_context_from_ctx_authorization_request_output.json
│ │ ├── account_list_context_from_ctx_list_account_request_input.json
│ │ ├── account_list_context_from_ctx_list_account_request_output.json
│ │ ├── account_list_context_from_ctx_list_account_request_with_extras_input.json
│ │ ├── account_list_context_from_ctx_list_account_request_with_extras_output.json
│ │ ├── consent_body_from_ctx_ais_consent_empty_body_input.json
│ │ ├── consent_body_from_ctx_ais_consent_empty_body_output.json
│ │ ├── consent_body_from_ctx_ais_consent_non_empty_body_input.json
│ │ ├── consent_body_from_ctx_ais_consent_non_empty_body_output.json
│ │ ├── consent_body_to_xs2a_api_ais_consent_input.json
│ │ ├── consent_body_to_xs2a_api_ais_consent_output.json
│ │ ├── consent_initiate_body_from_ctx_ais_consent_input.json
│ │ ├── consent_initiate_body_from_ctx_ais_consent_output.json
│ │ ├── consent_initiate_headers_from_xs2a_ais_consent_input.json
│ │ ├── consent_initiate_headers_from_xs2a_ais_consent_output.json
│ │ ├── context_merger_account_to_transaction_list_input.json
│ │ ├── context_merger_account_to_transaction_list_output.json
│ │ ├── context_merger_transaction_to_transaction_list_input.json
│ │ ├── context_merger_transaction_to_transaction_list_output.json
│ │ ├── context_merger_xs2a_to_transaction_list_input.json
│ │ ├── context_merger_xs2a_to_transaction_list_output.json
│ │ ├── context_merger_xs2a_to_xs2a_input.json
│ │ ├── context_merger_xs2a_to_xs2a_output.json
│ │ ├── payment_initiation_xs2a_context_from_initiated_single_payment_request_input.json
│ │ ├── payment_initiation_xs2a_context_from_initiated_single_payment_request_output.json
│ │ ├── provide_psu_password_body_from_xs2a_context_input.json
│ │ ├── provide_psu_password_body_from_xs2a_context_output.json
│ │ ├── provide_sca_challenge_result_body_from_xs2a_context_input.json
│ │ ├── provide_sca_challenge_result_body_from_xs2a_context_output.json
│ │ ├── sca_method_from_auth_object_sca_method_input.json
│ │ ├── sca_method_from_auth_object_sca_method_output.json
│ │ ├── sca_method_set_from_sca_method_list_input.json
│ │ ├── sca_method_set_from_sca_method_list_output.json
│ │ ├── select_psu_authentication_method_from_select_sca_challenge_body_input.json
│ │ ├── select_psu_authentication_method_from_select_sca_challenge_body_output.json
│ │ ├── select_sca_challenge_body_from_xs2a_context_input.json
│ │ ├── select_sca_challenge_body_from_xs2a_context_output.json
│ │ ├── transaction_authorisation_from_provide_sca_challenge_result_body_input.json
│ │ ├── transaction_authorisation_from_provide_sca_challenge_result_body_output.json
│ │ ├── transaction_list_context_from_ctx_authorization_request_input.json
│ │ ├── transaction_list_context_from_ctx_authorization_request_output.json
│ │ ├── transaction_list_xs2a_context_from_list_transactions_request_input.json
│ │ ├── transaction_list_xs2a_context_from_list_transactions_request_output.json
│ │ ├── transaction_list_xs2a_context_from_list_transactions_request_with_extras_input.json
│ │ ├── transaction_list_xs2a_context_from_list_transactions_request_with_extras_output.json
│ │ ├── transaction_parameters_from_ctx_transaction_list_input.json
│ │ ├── transaction_parameters_from_ctx_transaction_list_output.json
│ │ ├── update_psu_authentication_from_provide_psu_password_body_input.json
│ │ ├── update_psu_authentication_from_provide_psu_password_body_output.json
│ │ ├── validation_error_set_from_validation_issue_input.json
│ │ ├── validation_error_set_from_validation_issue_output.json
│ │ ├── with_consentId_headers_from_ctx_xs2s_context_input.json
│ │ ├── with_consentId_headers_from_ctx_xs2s_context_output.json
│ │ ├── xs2a_authorized_consent_parameters_from_xs2a_consent_input.json
│ │ ├── xs2a_authorized_consent_parameters_from_xs2a_consent_output.json
│ │ ├── xs2a_initial_consent_parameters_from_xs2a_context_input.json
│ │ ├── xs2a_initial_consent_parameters_from_xs2a_context_output.json
│ │ ├── xs2a_oauth2_with_code_parameters_from_xs2a_context_input.json
│ │ ├── xs2a_oauth2_with_code_parameters_from_xs2a_context_output.json
│ │ ├── xs2a_oauth2_with_code_parameters_from_xs2a_context_to_parameters_output.json
│ │ ├── xs2a_resource_parameters_from_transaction_list_context_input.json
│ │ ├── xs2a_resource_parameters_from_transaction_list_context_output.json
│ │ ├── xs2a_standard_headers_from_xs2a_consent_input.json
│ │ ├── xs2a_standard_headers_from_xs2a_consent_output.json
│ │ ├── xs2a_to_facade_response_mapper_accounts_input.json
│ │ ├── xs2a_to_facade_response_mapper_accounts_output.json
│ │ ├── xs2a_to_facade_response_mapper_list_transactions_request_input.json
│ │ ├── xs2a_to_facade_response_mapper_list_transactions_request_with_paging_input.json
│ │ ├── xs2a_to_facade_response_mapper_transactions_input.json
│ │ ├── xs2a_to_facade_response_mapper_transactions_output.json
│ │ ├── xs2a_to_facade_response_mapper_transactions_with_paging_input.json
│ │ ├── xs2a_to_facade_response_mapper_transactions_with_paging_output.json
│ │ ├── xs2a_with_balance_parameters_from_xs2a_consent_input.json
│ │ ├── xs2a_with_balance_parameters_from_xs2a_consent_output.json
│ │ ├── xs2a_without_balance_parameters_from_xs2a_consent_input.json
│ │ └── xs2a_without_balance_parameters_from_xs2a_consent_output.json
│ │ ├── validator-test-fixtures
│ │ ├── bank_offered_consent.json
│ │ ├── dedicated_with_accounts_consent.json
│ │ ├── dedicated_without_accounts_consent_with_balances.json
│ │ ├── dedicated_without_accounts_consent_without_balances.json
│ │ ├── global_consent.json
│ │ └── invalid_available_accounts_consent.json
│ │ └── xml-mapper-test-fixtures
│ │ ├── camt-multibanking.xml
│ │ ├── camt-sparkasse.xml
│ │ ├── multibanking-output.json
│ │ └── sparkasse-output.json
└── xs2a-sandbox-protocol
│ ├── README.md
│ ├── pom.xml
│ └── src
│ ├── main
│ ├── java
│ │ └── de
│ │ │ └── adorsys
│ │ │ └── opba
│ │ │ └── protocol
│ │ │ └── xs2a
│ │ │ ├── EnableXs2aSandboxProtocol.java
│ │ │ ├── entrypoint
│ │ │ └── ais
│ │ │ │ └── Xs2aSandboxListTransactionsEntrypoint.java
│ │ │ └── service
│ │ │ └── xs2a
│ │ │ └── ais
│ │ │ └── sandbox
│ │ │ ├── NoResponseXs2aAccountListingService.java
│ │ │ └── SandboxXs2aTransactionListingService.java
│ └── resources
│ │ └── context.properties
│ └── test
│ ├── java
│ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── protocol
│ │ └── xs2a
│ │ └── tests
│ │ └── e2e
│ │ └── sandbox
│ │ └── wiremock
│ │ ├── WiremockE2EXs2aSandboxProtocolTest.java
│ │ └── config
│ │ └── Xs2aSandboxProtocolApplication.java
│ └── resources
│ └── logback-test.xml
├── opba-rest-api-shared
├── pom.xml
└── src
│ └── main
│ └── java
│ └── de
│ └── adorsys
│ └── opba
│ └── restapi
│ └── shared
│ ├── GlobalConst.java
│ ├── HttpHeaders.java
│ ├── config
│ └── UserAgentContextProviderConfig.java
│ ├── mapper
│ └── FacadeResponseBodyToRestBodyMapper.java
│ └── service
│ ├── FacadeResponseMapper.java
│ └── RedirectionOnlyToOkMapper.java
├── pom.xml
├── postman
├── collections
│ ├── OPBA-AIS-HBCI-2-SCA-METHODS.postman_collection.json
│ ├── OPBA-AIS-XS2A-EMBEDDED-2-SCA-METHODS.postman_collection.json
│ └── OPBA-PIS-SEPA-XS2A-EMBEDDED-2-SCA-METHODS-NO-LOGIN.postman_collection.json
└── environments
│ ├── OPBA-DEV-NO-SIG.postman_environment.json
│ ├── OPBA-DEV.postman_environment.json
│ └── OPBA-LOCAL.postman_environment.json
├── request-collections
├── firefly
│ └── firefly-iii.http
└── update-aspsp-profile.http
├── scripts
├── TESTING.md
├── build_and_test.sh
├── build_firefly_exporter_mvn.sh
├── build_mvn.sh
├── build_npm.sh
├── deploy_doc.sh
├── deploy_javadoc.sh
├── deploy_mvn.sh
├── deploy_mvn_release_candidate.sh
├── deploy_openshift.sh
├── deploy_openshift_release_candidate.sh
├── deploy_to_ghcr.sh
├── firefly-service.list
├── install_mvn.sh
├── mvn-release-settings.xml
├── mvn_deploy_check_develop.sh
├── plugins
│ ├── gitflow-helper-maven-plugin-3.0.1-SKIP-CATALOG-SNAPSHOT-pom.xml
│ └── gitflow-helper-maven-plugin-3.0.1-SKIP-CATALOG-SNAPSHOT.jar
├── promote_oc_image_to_dockerhub.sh
├── release-scripts
│ ├── .common-util.sh
│ ├── .hooks-default.sh
│ ├── .release-scripts-hooks.sh
│ ├── .version.sh
│ ├── hotfix_finish.argbash.generated.sh
│ ├── hotfix_finish.sh
│ ├── hotfix_start.argbash.generated.sh
│ ├── hotfix_start.sh
│ ├── release.argbash.generated.sh
│ ├── release.sh
│ └── revert_release.sh
├── release_deploy.sh
├── service.list
└── validate_dev_deploy.sh
├── smoke-tests
├── pom.xml
└── src
│ └── test
│ ├── java
│ └── de
│ │ └── adorsys
│ │ └── opba
│ │ └── smoketests
│ │ ├── OpbaApiSmokeE2ETest.java
│ │ ├── OpbaApiWithHbciConsentUiSmokeE2ETest.java
│ │ ├── OpbaApiWithXs2aConsentUiSmokeE2ETest.java
│ │ ├── config
│ │ ├── FintechRequestSigningTestConfig.java
│ │ ├── SandboxConsentAuthApproachState.java
│ │ ├── SmokeConfig.java
│ │ └── WebDriverErrorReportAspectAndWatcher.java
│ │ └── steps
│ │ └── SmokeSandboxServers.java
│ └── resources
│ ├── META-INF
│ └── aop.xml
│ ├── application-test-smoke-local.yml
│ └── application-test-smoke.yml
└── ui-test-scripts
├── README.md
└── sca-oauth2.http
/.env:
--------------------------------------------------------------------------------
1 | WIREMOCK_STUBS_DIR=./opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/main/resources/mockedsandbox/restrecord/embedded/multi-sca/accounts/postbank
--------------------------------------------------------------------------------
/.github/ci-cd-workflows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/adorsys/open-banking-gateway/0cc0782b186cc0c70fd37b103323d2d784abc0e1/.github/ci-cd-workflows.png
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/adorsys/open-banking-gateway/0cc0782b186cc0c70fd37b103323d2d784abc0e1/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
3 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | package.json
2 | package-lock.json
3 | dist
4 | .angulardoc.json
5 | .vscode/*
6 | api
--------------------------------------------------------------------------------
/consent-ui/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/consent-ui/.prettierignore:
--------------------------------------------------------------------------------
1 | package.json
2 | package-lock.json
3 | dist
4 | **/api/*
5 | **/api-auth/*
6 | .angulardoc.json
7 | .vscode/*
8 |
--------------------------------------------------------------------------------
/consent-ui/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120,
3 | "singleQuote": true,
4 | "useTabs": false,
5 | "tabWidth": 2,
6 | "semi": true,
7 | "trailingComma": "none",
8 | "bracketSpacing": true
9 | }
10 |
--------------------------------------------------------------------------------
/consent-ui/cypress.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'cypress';
2 |
3 | export default defineConfig({
4 | e2e: {
5 | specPattern: 'cypress/e2e/**/*.cy.ts',
6 | supportFile: 'cypress/support/e2e.ts',
7 | baseUrl: 'http://localhost:4200'
8 | },
9 |
10 | component: {
11 | devServer: {
12 | framework: 'angular',
13 | bundler: 'webpack'
14 | },
15 | specPattern: '**/*.cy.ts'
16 | }
17 | });
18 |
--------------------------------------------------------------------------------
/consent-ui/cypress/e2e/spec.cy.ts:
--------------------------------------------------------------------------------
1 | describe('workspace-project App', () => {
2 |
3 | beforeEach(() => {
4 | cy.spy(console, 'error').as('consoleError');
5 | });
6 |
7 | it('should have title', () => {
8 | cy.visit('/');
9 | cy.title().should('eq', 'ConsentUi');
10 | });
11 |
12 | afterEach(() => {
13 | cy.get('@consoleError').should('not.be.called');
14 | });
15 | });
16 |
--------------------------------------------------------------------------------
/consent-ui/cypress/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io"
4 | }
5 |
--------------------------------------------------------------------------------
/consent-ui/cypress/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "include": ["**/*.ts"],
4 | "compilerOptions": {
5 | "sourceMap": false,
6 | "types": ["cypress"]
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/consent-ui/entry.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | export DOLLAR='$'
3 | export BACKEND_URL=${BACKEND_URL:-"http://localhost:8085"}
4 | envsubst < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf
5 | nginx -g "daemon off;"
6 |
--------------------------------------------------------------------------------
/consent-ui/proxy-conf-docker-backend.json:
--------------------------------------------------------------------------------
1 | {
2 | "/embedded-server/*": {
3 | "target": "http://localhost:18085",
4 | "secure": false,
5 | "changeOrigin": true,
6 | "pathRewrite": {
7 | "^/embedded-server/": ""
8 | },
9 | "logLevel": "debug",
10 | "headers": { "Access-Control-Expose-Headers": "*" }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/consent-ui/proxy-conf-local-backend.json:
--------------------------------------------------------------------------------
1 | {
2 | "/embedded-server/**": {
3 | "target": "http://localhost:8085",
4 | "secure": false,
5 | "changeOrigin": true,
6 | "pathRewrite": {
7 | "^/embedded-server/": ""
8 | },
9 | "logLevel": "debug",
10 | "headers": { "Access-Control-Expose-Headers": "*" }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/consent-ui/src/app/ais/common/constant/constant.ts:
--------------------------------------------------------------------------------
1 | export const DATA_PATTERN = '\\d{4}-\\d{2}-\\d{2}';
2 | // The consent can be used max times per day
3 | export const MAX_FREQUENCY_PER_DAY = 999;
4 |
5 | export const DEFAULT_CURRENCY = 'EUR';
6 |
--------------------------------------------------------------------------------
/consent-ui/src/app/ais/common/stub-util-tests.ts:
--------------------------------------------------------------------------------
1 | export class StubUtilTests {
2 | public static AUTH_ID = 'AUTH_ID';
3 | public static REDIRECT_ID = 'REDIRECT_ID';
4 | public static SCA_METHOD_VALUE = '1234';
5 | public static DUMMY_INPUT = '12345';
6 | }
7 |
--------------------------------------------------------------------------------
/consent-ui/src/app/ais/components/consent-info/consent-info.component.scss:
--------------------------------------------------------------------------------
1 | @use 'src/styles';
2 |
3 | $info-color: #aabcd3;
4 |
5 | .text-secondary {
6 | color: $info-color !important;
7 | }
8 |
--------------------------------------------------------------------------------
/consent-ui/src/app/ais/enter-pin-page/enter-pin-page.component.html:
--------------------------------------------------------------------------------
1 |
Initiating consent session... Please wait
2 | -------------------------------------------------------------------------------- /consent-ui/src/app/ais/entry-page/initiation/consent-initiate/consent-initiate.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adorsys/open-banking-gateway/0cc0782b186cc0c70fd37b103323d2d784abc0e1/consent-ui/src/app/ais/entry-page/initiation/consent-initiate/consent-initiate.component.scss -------------------------------------------------------------------------------- /consent-ui/src/app/ais/entry-page/initiation/consent-sharing/consent-sharing.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adorsys/open-banking-gateway/0cc0782b186cc0c70fd37b103323d2d784abc0e1/consent-ui/src/app/ais/entry-page/initiation/consent-sharing/consent-sharing.component.scss -------------------------------------------------------------------------------- /consent-ui/src/app/ais/entry-page/initiation/transactions/entry-page-transactions/entry-page-transactions.component.html: -------------------------------------------------------------------------------- 1 |6 | {{ authResponse?.scaMethodSelected.explanation }} 7 |
8 |Initiating payment...Please wait
2 | -------------------------------------------------------------------------------- /consent-ui/src/app/pis/initiation/payment-initiate.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adorsys/open-banking-gateway/0cc0782b186cc0c70fd37b103323d2d784abc0e1/consent-ui/src/app/pis/initiation/payment-initiate.component.scss -------------------------------------------------------------------------------- /consent-ui/src/app/pis/payment-info/payment-info.component.html: -------------------------------------------------------------------------------- 1 |2 | Transfer of {{ singlePayment?.instructedAmount?.amount }} {{ singlePayment?.instructedAmount?.currency }} from 3 | {{ singlePayment?.debtorAccount?.iban }} to {{ singlePayment?.creditorAccount?.iban }} 4 |
5 | -------------------------------------------------------------------------------- /consent-ui/src/app/pis/payment-info/payment-info.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adorsys/open-banking-gateway/0cc0782b186cc0c70fd37b103323d2d784abc0e1/consent-ui/src/app/pis/payment-info/payment-info.component.scss -------------------------------------------------------------------------------- /consent-ui/src/app/pis/payments-consent-review/payments-consent-review.component.scss: -------------------------------------------------------------------------------- 1 | .title { 2 | font-size: 1.3rem; 3 | font-family: geometric-SemiBold, sans-serif; 4 | } 5 | 6 | .title, 7 | .description { 8 | padding-top: 0; 9 | } 10 | -------------------------------------------------------------------------------- /consent-ui/src/app/pis/restore-session-page/restore-session-page.component.html: -------------------------------------------------------------------------------- 1 |6 | {{ authResponse?.scaMethodSelected.explanation }} 7 |
8 |