### Start FinTech UI Development Server Source: https://github.com/adorsys/open-banking-gateway/blob/develop/fintech-examples/README.md Commands to install dependencies and start the FinTech UI development server. The app reloads automatically on source file changes. ```bash > cd fintech-ui > npm install > npm run start ``` -------------------------------- ### Start Frontend Service Source: https://github.com/adorsys/open-banking-gateway/blob/develop/docs/getting_started.md Run this command from the fintech-ui directory to start the frontend development server. ```bash npm serve ``` -------------------------------- ### Install Local Package (Not Recommended) Source: https://github.com/adorsys/open-banking-gateway/blob/develop/consent-ui/src/app/api/README.md Installs the API client from a local .tgz file. This method is not recommended for production use. ```bash npm install PATH_TO_GENERATED_PACKAGE/-.tgz --save ``` -------------------------------- ### Install Published Package Source: https://github.com/adorsys/open-banking-gateway/blob/develop/consent-ui/src/app/api/README.md Installs the API client from the npm registry. This is the recommended way to consume the package. ```bash npm install @ --save ``` -------------------------------- ### Build and Run TPP Server Source: https://github.com/adorsys/open-banking-gateway/blob/develop/opba-embedded-starter/README.md Use these Maven commands to clean, install, and run the TPP Server. Access the server at http://localhost:8085 after it starts. ```bash > mvn clean install > mvn spring-boot:run then http://localhost:8085 ``` -------------------------------- ### Start XS2A Sandbox using Docker Compose Source: https://github.com/adorsys/open-banking-gateway/blob/develop/how-to-start-with-project/README.md Use this command to start the XS2A Sandbox, which mocks the ASPSP (bank), using its docker-compose file. Ensure you are in the correct directory. ```bash cd ../xs2a-sandbox-only; docker compose up ``` -------------------------------- ### Start Backend Service Source: https://github.com/adorsys/open-banking-gateway/blob/develop/docs/getting_started.md Execute this command from the opba-embedded-starter directory to run the Spring Boot backend. ```bash mvn spring-boot:run ``` -------------------------------- ### Install Dependencies and Build Source: https://github.com/adorsys/open-banking-gateway/blob/develop/consent-ui/src/app/api/README.md Installs project dependencies and builds the TypeScript sources. Run this in the root of the generated package. ```bash npm install npm run build ``` -------------------------------- ### Start Postgres Database using Docker Source: https://github.com/adorsys/open-banking-gateway/blob/develop/how-to-start-with-project/README.md This command starts a PostgreSQL database container. It maps the host port 5432 to the container's port and persists data in the specified host directory. This database is used by both the Sandbox and the Open Banking backend. ```bash docker run --rm --name opba-pg-docker -e POSTGRES_PASSWORD=docker -e POSTGRES_DB=open_banking -d -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data postgres ``` -------------------------------- ### Build and Run Fintech Server Source: https://github.com/adorsys/open-banking-gateway/blob/develop/fintech-examples/fintech-server/README.md Use Maven to clean, install, and run the Spring Boot application. Access the API at the specified local address. ```bash > mvn clean install > mvn spring-boot:run then http://localhost:8086 ``` -------------------------------- ### Run FinTech Server Source: https://github.com/adorsys/open-banking-gateway/blob/develop/fintech-examples/README.md Commands to build and run the FinTech server. Access the API at http://localhost:8086 after starting. ```bash > mvn clean install > cd fintech-server > mvn spring-boot:run ``` -------------------------------- ### HBCI Sandbox Startup Log Source: https://github.com/adorsys/open-banking-gateway/blob/develop/opba-protocols/sandboxes/hbci-sandbox/README.md Example log output indicating the successful startup of the HBCI Sandbox application. ```log 2020-08-07 14:14:39.222 INFO 6976 --- [ main] o.f.j.s.i.a.AbstractAsyncExecutor : Starting up the async job executor [org.flowable.spring.job.service.SpringAsyncExecutor]. 2020-08-07 14:14:39.222 INFO 6976 --- [ Thread-3] o.f.j.s.i.a.AcquireAsyncJobsDueRunnable : starting to acquire async jobs due 2020-08-07 14:14:39.222 INFO 6976 --- [ Thread-4] o.f.j.s.i.a.AcquireTimerJobsRunnable : starting to acquire async jobs due 2020-08-07 14:14:39.222 INFO 6976 --- [ Thread-5] o.f.j.s.i.a.ResetExpiredJobsRunnable : starting to reset expired jobs for engine bpmn 2020-08-07 14:14:39.261 INFO 6976 --- [ main] o.f.e.impl.cmd.ValidateV5EntitiesCmd : Total of v5 deployments found: 0 2020-08-07 14:14:39.705 INFO 6976 --- [ main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService 'taskScheduler' 2020-08-07 14:14:40.529 INFO 6976 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8090 (http) with context path '' 2020-08-07 14:14:40.531 INFO 6976 --- [ main] d.a.o.p.s.hbci.HbciServerApplication : Started HbciServerApplication in 6.014 seconds (JVM running for 6.306) ``` -------------------------------- ### Start XS2A Sandbox in a Single JVM Source: https://github.com/adorsys/open-banking-gateway/blob/develop/how-to-start-with-project/README.md This Java test class starts the XS2A Sandbox within a single JVM, consuming fewer resources than the Docker Compose approach. It's useful for debugging as it runs in the same JVM as the application. ```java package de.adorsys.opba.protocol.xs2a.testsandbox; import de.adorsys.opba.protocol.xs2a.testsandbox.model.SandboxConfiguration; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest(classes = SandboxConfiguration.class) public class BasicTest { @Test void startTheSandbox() { // This test simply starts the sandbox jars in a single JVM. // You can run this test in debug mode to see what happens in the Sandbox. } } ``` -------------------------------- ### PSU Identity Equivalence Example Source: https://github.com/adorsys/open-banking-gateway/blob/develop/docs/architecture/concepts/psu-security-concept.md Illustrates the expected flow of PSU identity equivalence from FinTech to TPP to ASPSP. ```plaintext alice@fintech ==> alice@tpp ==> alice@aspsp // Where alice@fintech ==> alice@tpp neans the person identified at the FinTechApi as alice@fintech controls the necessary credentials used to identify at the ConsentAuthorisationApi as alice@tpp ``` -------------------------------- ### Run HBCI-Sandbox Locally with Maven Source: https://github.com/adorsys/open-banking-gateway/blob/develop/opba-protocols/sandboxes/hbci-sandbox/README.md Runs the HBCI-Sandbox locally using Maven. The application will start and the endpoint will be available at http://localhost:8090/hbci-mock/. ```shell ../../../mvnw spring-boot:run ``` -------------------------------- ### Initiate Consent Authorization - GET /v1/consent/{auth-id} Source: https://context7.com/adorsys/open-banking-gateway/llms.txt Entry point for Consent Authorization UI. The PSU is redirected here from the FinTech application. Uses xXsrfToken to determine SCA approach. ```bash # PSU is redirected by the FinTech browser to this endpoint # (Typically handled by the Angular Consent UI, not called directly by FinTechs) curl -X GET "http://localhost:18085/v1/consent/abc123?xXsrfToken=faadsf93nlas32wx" \ -b cookies.txt \ -c cookies.txt ``` -------------------------------- ### Run PostgreSQL Docker Container Source: https://github.com/adorsys/open-banking-gateway/blob/develop/opba-protocols/xs2a-protocol/README.md Starts a PostgreSQL container for the banking protocol. Ensure to run the init.sql script afterwards to set up the schema and extensions. ```shell docker run --rm --name pg-docker -e POSTGRES_PASSWORD=docker -e POSTGRES_DB=open_banking -d -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data postgres --max_prepared_transactions=100 ``` -------------------------------- ### Run Target Docker Registry Source: https://github.com/adorsys/open-banking-gateway/blob/develop/scripts/TESTING.md Starts a second Docker registry container, configured similarly to the source registry but accessible on port 6000. This is intended for promotion testing. ```shell docker run -d \ --restart=always \ --name target_registry \ -v `pwd`/docker/target_docker/auth:/auth \ -v `pwd`/docker/target_docker/certs:/certs \ -e REGISTRY_AUTH=htpasswd \ -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ -e REGISTRY_HTTP_ADDR=0.0.0.0:6000 \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ -p 6000:6000 \ registry:2.7.0 ``` -------------------------------- ### Build HBCI-Sandbox Locally with Maven Source: https://github.com/adorsys/open-banking-gateway/blob/develop/opba-protocols/sandboxes/hbci-sandbox/README.md Builds the HBCI-Sandbox locally using Maven. Requires Java JDK 8+ to be installed. ```shell ../../../mvnw clean install -DskipTests ``` -------------------------------- ### Run Sonatype Nexus for JAR Promotion Testing Source: https://github.com/adorsys/open-banking-gateway/blob/develop/scripts/TESTING.md Starts a Sonatype Nexus 3 Docker container, which can be used for testing JAR promotion. The UI will be available at http://localhost:8081. ```shell docker run -d -p 8081:8081 --name nexus sonatype/nexus3 ``` -------------------------------- ### Start Flowable All-in-One Docker Image Source: https://github.com/adorsys/open-banking-gateway/blob/develop/opba-protocols/xs2a-protocol/README.md Launches the Flowable all-in-one Docker image, making Flowable applications accessible on port 8080. Use the provided credentials to access the Flowable modeler. ```shell docker run -p 8080:8080 flowable/all-in-one ``` -------------------------------- ### List Banks - GET /admin/v1/banks Source: https://context7.com/adorsys/open-banking-gateway/llms.txt Lists all configured banks with pagination. Requires HTTP Basic authentication. Used to inspect and manage the bank registry. ```bash # List banks page 0, size 20 curl -X GET "http://localhost:18085/admin/v1/banks?page=0&size=20" \ -H "Authorization: Basic $(echo -n 'admin:admin-password' | base64)" ``` -------------------------------- ### Record Requests with Wiremock Source: https://github.com/adorsys/open-banking-gateway/blob/develop/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/main/resources/mockedsandbox/restrecord/howto-record.md Use this command to start Wiremock in recording mode. It proxies all requests to the specified sandbox URL and records the interactions. Ensure the Wiremock JAR is accessible and the ports are correctly configured. ```sh java -jar 'wiremock-standalone-2.25.1.r' --port 30000 --proxy-all http://127.0.0.1:20014 --record-mappings --match-headers accept,psu-id,x-request-id,content-type,psu-ip-address --root-dir ../results ``` -------------------------------- ### Initiate Local Release Source: https://github.com/adorsys/open-banking-gateway/blob/develop/docs/release_process.md Run this script locally to start the release process. Use the -s flag to skip appending '-SNAPSHOT' to the release version. Provide the current release version and the next development version as arguments. ```bash ./scripts/release-scripts/release.sh -s ``` -------------------------------- ### Compile Project with Make Source: https://github.com/adorsys/open-banking-gateway/blob/develop/docs/getting_started.md Use this command to compile all project components. ```bash make all ``` -------------------------------- ### Get Transactions — GET /v1/banking/ais/accounts/{account-id}/transactions Source: https://context7.com/adorsys/open-banking-gateway/llms.txt Returns a paginated list of transactions for a given account resource ID, with optional date filtering, delta access, and transaction analytics. ```APIDOC ## GET /v1/banking/ais/accounts/{account-id}/transactions ### Description Returns a paginated list of transactions for a given account resource ID, with optional date filtering, delta access, and transaction analytics (categorization). ### Method GET ### Endpoint /v1/banking/ais/accounts/{account-id}/transactions ### Parameters #### Path Parameters - **account-id** (string) - Required - The resource ID of the account for which to retrieve transactions. #### Query Parameters - **dateFrom** (string) - Optional - Start date for filtering transactions (YYYY-MM-DD). - **dateTo** (string) - Optional - End date for filtering transactions (YYYY-MM-DD). - **bookingStatus** (string) - Optional - Filter by booking status (e.g., "booked", "pending"). - **page** (integer) - Optional - The page number for pagination (defaults to 0). - **pageSize** (integer) - Optional - The number of items per page (defaults to 50). - **analytics** (string) - Optional - Request transaction analytics (e.g., "OWN"). #### Headers - **X-Request-ID** (string) - Required - Unique identifier for the request. - **Fintech-ID** (string) - Required - Identifier for the Fintech application. - **Fintech-User-ID** (string) - Optional - Identifier for the Fintech user. - **Bank-Profile-ID** (string) - Required - Identifier for the bank profile. - **Service-Session-ID** (string) - Optional - Session identifier for the service. - **Fintech-Data-Password** (string) - Optional - Password for data encryption. - **X-Timestamp-UTC** (string) - Required - Timestamp of the request in UTC. - **X-Request-Signature** (string) - Required - Computed HMAC signature of the request. ### Request Example ```bash curl -X GET "http://localhost:18085/v1/banking/ais/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions\?dateFrom=2024-01-01&dateTo=2024-01-31&bookingStatus=booked&page=0&pageSize=50&analytics=OWN" \ -H "X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721" \ -H "Fintech-ID: my-fintech-app" \ -H "Fintech-User-ID: user-42" \ -H "Bank-Profile-ID: 3e7d4b2c-1234-5678-abcd-0a1b2c3d4e5f" \ -H "Service-Session-ID: session-uuid-1234" \ -H "Fintech-Data-Password: my-encryption-password" \ -H "X-Timestamp-UTC: 2024-01-15T10:30:00Z" \ -H "X-Request-Signature: " ``` ### Response #### Success Response (200 OK) - **account** (object) - Details of the account. - **iban** (string) - International Bank Account Number. - **currency** (string) - Currency of the account. - **transactions** (object) - Contains lists of booked and pending transactions. - **booked** (array) - List of booked transactions. - **transactionId** (string) - Unique identifier for the transaction. - **bookingDate** (string) - Date the transaction was booked. - **valueDate** (string) - Date the transaction has value. - **transactionAmount** (object) - Amount of the transaction. - **currency** (string) - Currency of the transaction amount. - **amount** (string) - The transaction amount. - **creditorName** (string) - Name of the creditor. - **creditorAccount** (object) - Creditor's account details. - **iban** (string) - Creditor's IBAN. - **remittanceInformationUnstructured** (string) - Unstructured remittance information. - **bankTransactionCode** (string) - Code representing the type of bank transaction. - **pending** (array) - List of pending transactions. - **analytics** (array) - Transaction analytics data. - **transactionId** (string) - Identifier for the transaction. - **mainCategory** (string) - Main category of the transaction. - **subCategory** (string) - Sub-category of the transaction. - **nextBookingDate** (string) - Date of the next booking for recurring transactions. - **cycle** (string) - Cycle of recurring transactions. - **paging** (object) - Pagination details. - **page** (integer) - Current page number. - **pageSize** (integer) - Number of items per page. - **pageCount** (integer) - Total number of pages. - **totalCount** (integer) - Total number of transactions. #### Response Example ```json { "account": { "iban": "DE91100000000123456789", "currency": "EUR" }, "transactions": { "booked": [ { "transactionId": "txn-001", "bookingDate": "2024-01-10", "valueDate": "2024-01-10", "transactionAmount": { "currency": "EUR", "amount": "-50.00" }, "creditorName": "REWE GmbH", "creditorAccount": { "iban": "DE12345678901234567890" }, "remittanceInformationUnstructured": "Grocery purchase", "bankTransactionCode": "PMNT-RDDT-ESCT" } ], "pending": [] }, "analytics": [ { "transactionId": "txn-001", "mainCategory": "Food & Groceries", "subCategory": "Supermarket", "nextBookingDate": "2024-02-10", "cycle": "MONTHLY" } ], "paging": { "page": 0, "pageSize": 50, "pageCount": 1, "totalCount": 12 } } ``` ``` -------------------------------- ### Build and Run TPP Server Protocol Testing Helper Source: https://github.com/adorsys/open-banking-gateway/blob/develop/opba-protocols/opba-protocol-testing-helper/README.md Instructions for building and running the helper application using Maven. Access the exposed REST API at http://localhost:8087 after startup. ```bash > mvn clean install > mvn spring-boot:run then http://localhost:8087 ``` -------------------------------- ### Get Account List (AIS) — GET /v1/banking/ais/accounts Source: https://context7.com/adorsys/open-banking-gateway/llms.txt Retrieves the list of PSU payment accounts accessible under an existing consent. If no valid consent exists and X-Create-Consent-If-None is true, the gateway returns 202 Authorization Required with a Location header to redirect the PSU to the consent UI. ```APIDOC ## GET /v1/banking/ais/accounts ### Description Retrieves the list of PSU payment accounts accessible under an existing consent. If no valid consent exists and `X-Create-Consent-If-None: true`, the gateway returns `202 Authorization Required` with a `Location` header to redirect the PSU to the consent UI. ### Method GET ### Endpoint /v1/banking/ais/accounts ### Parameters #### Query Parameters - **withBalance** (boolean) - Optional - If true, includes balance information for each account. - **online** (boolean) - Optional - If true, filters for online accounts. #### Headers - **X-Request-ID** (string) - Required - Unique identifier for the request. - **Fintech-ID** (string) - Required - Identifier for the Fintech application. - **Fintech-User-ID** (string) - Optional - Identifier for the Fintech user. - **Bank-Profile-ID** (string) - Required - Identifier for the bank profile. - **Service-Session-ID** (string) - Optional - Session identifier for the service. - **Fintech-Data-Password** (string) - Optional - Password for data encryption. - **Fintech-Redirect-URL-OK** (string) - Optional - URL to redirect to on success. - **Fintech-Redirect-URL-NOK** (string) - Optional - URL to redirect to on failure. - **X-Create-Consent-If-None** (boolean) - Optional - If true, attempts to create a consent if none exists. - **X-Timestamp-UTC** (string) - Required - Timestamp of the request in UTC. - **X-Request-Signature** (string) - Required - Computed HMAC signature of the request. ### Request Example ```bash curl -X GET "http://localhost:18085/v1/banking/ais/accounts?withBalance=true&online=true" \ -H "X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721" \ -H "Fintech-ID: my-fintech-app" \ -H "Fintech-User-ID: user-42" \ -H "Bank-Profile-ID: 3e7d4b2c-1234-5678-abcd-0a1b2c3d4e5f" \ -H "Service-Session-ID: session-uuid-1234" \ -H "Fintech-Data-Password: my-encryption-password" \ -H "Fintech-Redirect-URL-OK: https://my-fintech.com/callback/ok" \ -H "Fintech-Redirect-URL-NOK: https://my-fintech.com/callback/nok" \ -H "X-Create-Consent-If-None: true" \ -H "X-Timestamp-UTC: 2024-01-15T10:30:00Z" \ -H "X-Request-Signature: " ``` ### Response #### Success Response (200 OK - consent available) - **accounts** (array) - List of accounts. - **resourceId** (string) - Unique identifier for the account resource. - **iban** (string) - International Bank Account Number. - **currency** (string) - Currency of the account. - **name** (string) - Name of the account. - **product** (string) - Product name of the account. - **cashAccountType** (string) - Type of cash account. - **status** (string) - Status of the account. - **bic** (string) - Bank Identifier Code. - **balances** (array) - List of balances for the account. #### Response Example (200 OK) ```json { "accounts": [ { "resourceId": "3dc3d5b3-7023-4848-9853-f5400a64e80f", "iban": "DE91100000000123456789", "currency": "EUR", "name": "Main Checking Account", "product": "Girokonto", "cashAccountType": "CACC", "status": "enabled", "bic": "SSKNDE77", "balances": [ { "balanceAmount": { "currency": "EUR", "amount": "1500.00" }, "balanceType": "INTERIM_AVAILABLE" } ] } ] } ``` #### Authorization Required Response (202 Accepted - consent needed) Headers: - **Location** (string) - URL to redirect the PSU to for consent authorization. - **Authorization-Session-ID** (string) - Identifier for the authorization session. - **Service-Session-ID** (string) - Session identifier for the service. - **Redirect-Code** (string) - Code indicating a redirect is required. ``` -------------------------------- ### Get Payment Status Source: https://context7.com/adorsys/open-banking-gateway/llms.txt Retrieves the current transaction status of a previously initiated payment. ```APIDOC ## GET /v1/banking/pis/payments/{payment-product}/status ### Description Retrieves the current transaction status of a previously initiated payment, using the `Service-Session-ID` to identify the payment session. ### Method GET ### Endpoint /v1/banking/pis/payments/{payment-product}/status ### Parameters #### Path Parameters - **payment-product** (string) - Required - The type of payment product (e.g., sepa-credit-transfers). #### Headers - **X-Request-ID** (string) - Required - Unique identifier for the request. - **Fintech-ID** (string) - Required - Identifier for the Fintech application. - **Bank-Profile-ID** (string) - Required - Identifier for the bank profile. - **Service-Session-ID** (string) - Required - The ID of the payment service session. - **Fintech-Data-Password** (string) - Required - Password for data encryption. - **X-Timestamp-UTC** (string) - Required - UTC timestamp of the request. - **X-Request-Signature** (string) - Required - Computed HMAC signature of the request. ### Response #### Success Response (200 OK) - **transactionStatus** (string) - The status of the transaction. Possible values: ACCC, ACCP, ACSC, ACSP, ACTC, ACWC, ACWP, RCVD, PDNG, RJCT, CANC. - **fundsAvailable** (boolean) - Indicates if funds are available. - **psuMessage** (string) - A message for the PSU. ### Response Example ```json { "transactionStatus": "ACSC", "fundsAvailable": true, "psuMessage": "Payment accepted and settled" } ``` ``` -------------------------------- ### Initialize Open Banking Database Schema Source: https://github.com/adorsys/open-banking-gateway/blob/develop/how-to-start-with-project/README.md Execute this SQL script to set up the necessary schema and initial data for the Open Banking database. This should be done only once. ```sql -- -- PostgreSQL database dump -- -- Dumped from database version 13.3 -- Dumped by pg_dump version 13.3 -- -- Name: open_banking; -- -- -- TOC entry 1598 content -- -- -- Name: open_banking; -- CREATE DATABASE open_banking WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8'; ALTER DATABASE open_banking OWNER TO postgres; -- -- Name: open_banking; -- -- -- PostgreSQL database dump complete -- ``` -------------------------------- ### AspspBankingApi.initiateConsent Source: https://github.com/adorsys/open-banking-gateway/blob/develop/docs/architecture/5-redirectPsuToConsentAPI.md Initiates a consent request to the OpenBanking interface of the ASPSP. This is the primary call to start the consent authorization process. ```APIDOC ## initiateConsent[UserAgentContext, TppContext, psu-id@aspsp](AisConsent) ### Description Initiates a consent request to the OpenBanking interface of the ASPSP (aka AspspBankingApi). This is the primary call to start the consent authorization process. ### Method POST ### Endpoint /initiateConsent ### Parameters #### Request Body - **AisConsent** (object) - Required - Consent object containing details for the AIS (Account Information Service) consent. - **UserAgentContext** (object) - Required - Context information from the user agent. - **TppContext** (object) - Required - Context information for the Third-Party Provider. - **psu-id@aspsp** (string) - Required - The PSU ID specific to the ASPSP. ``` -------------------------------- ### Docker Compose: Full Stack Deployment Source: https://context7.com/adorsys/open-banking-gateway/llms.txt Deploys the complete Open Banking Gateway stack (OBG server, Consent UI, FinTech example server/UI, PostgreSQL, HBCI sandbox) using pre-built Docker images. ```APIDOC ## Docker Compose: Full Stack Deployment ### Description Deploys the complete Open Banking Gateway stack (OBG server, Consent UI, FinTech example server/UI, PostgreSQL, HBCI sandbox) using pre-built Docker images. ### Usage Run with: `docker-compose up` ### docker-compose.yml ```yaml networks: opba-net: services: postgres: image: "postgres" environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: docker POSTGRES_DB: open_banking ports: - "5432:5432" volumes: - ./opba-db/src/main/resources/init.sql:/docker-entrypoint-initdb.d/init.sql - ./fintech-examples/fintech-db-schema/src/main/resources/init.sql:/docker-entrypoint-initdb.d/fintech-init.sql networks: - opba-net open-banking-gateway: image: "adorsys/open-banking-gateway-open-banking-gateway:1.0.0" environment: SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/open_banking?currentSchema=banking_protocol SPRING_DATASOURCE_USERNAME: postgres SPRING_DATASOURCE_PASSWORD: docker PROTOCOL_XS2A_PKCS12_KEYSTORE: /pkcs12/sample-qwac.keystore FACADE_ENCRYPTION_KEYSETPATH: /keysetpath/example-keyset.json FACADE_URLS_EMBEDDED-UI-BASE-URL: http://localhost:14200 PROTOCOL_GATEWAY-BASE-URL: http://localhost:18085 ports: - "18085:8085" depends_on: - postgres networks: - opba-net consent-ui: image: "adorsys/open-banking-gateway-consent-ui:1.0.0" environment: BACKEND_URL: http://open-banking-gateway:8085 ports: - "14200:4200" # PSU Consent Authorization UI networks: - opba-net fintech-server: image: "adorsys/open-banking-gateway-fintech-server:1.0.0" environment: TPP_URL: http://open-banking-gateway:8085 SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/open_banking?currentSchema=fintech FINTECH-UI_HOST: http://localhost:24200 ports: - "18086:8086" networks: - opba-net fintech-ui: image: "adorsys/open-banking-gateway-fintech-ui:1.0.0" environment: BACKEND_URL: http://fintech-server:8086 ports: - "24200:4200" # FinTech example UI networks: - opba-net hbci-sandbox-server: image: "adorsys/open-banking-gateway-hbci-sandbox-server:1.0.0" ports: - "18090:8090" networks: - opba-net # Service endpoints after startup: # OBG Banking API: http://localhost:18085 # Consent UI: http://localhost:14200 # FinTech UI: http://localhost:24200 # FinTech Backend: http://localhost:18086 # HBCI Sandbox: http://localhost:18090 ``` ``` -------------------------------- ### Get AIS Session Status Source: https://context7.com/adorsys/open-banking-gateway/llms.txt Polls the current authorization/consent status of an AIS service session. This is useful as a complement to webhook notifications. ```APIDOC ## GET /v1/banking/ais/{Service-Session-ID}/status ### Description Polls the current authorization/consent status of an AIS service session. ### Method GET ### Endpoint /v1/banking/ais/{Service-Session-ID}/status ### Parameters #### Path Parameters - **Service-Session-ID** (string) - Required - The ID of the AIS service session. #### Headers - **X-Request-ID** (string) - Required - Unique identifier for the request. - **Fintech-ID** (string) - Required - Identifier for the Fintech application. - **Fintech-Data-Password** (string) - Required - Password for data encryption. - **X-Timestamp-UTC** (string) - Required - UTC timestamp of the request. - **X-Request-Signature** (string) - Required - Computed HMAC signature of the request. ### Response #### Success Response (200 OK) - **sessionStatus** (string) - The current status of the AIS session. Possible values: NOT_STARTED, PENDING, COMPLETED, ERROR. ### Response Example ```json { "sessionStatus": "COMPLETED" } ``` ``` -------------------------------- ### ASPSP Callback OK - GET /v1/consent/{auth-id}/fromAspsp/{redirectState}/ok Source: https://context7.com/adorsys/open-banking-gateway/llms.txt Handles the ASPSP redirect back to OBG after successful PSU authorization. Validates the redirect cookie and prepares the session token for FinTech retrieval. ```bash # ASPSP redirects PSU back after successful authorization (redirect SCA flow) # (This URL is called automatically by the browser after bank redirect) curl -X GET "http://localhost:18085/v1/consent/abc123/fromAspsp/faadsf93nlas32wx/ok?code=bank-oauth-code" \ -b cookies.txt \ -c cookies.txt ``` -------------------------------- ### Get AIS Session Status Source: https://context7.com/adorsys/open-banking-gateway/llms.txt Polls the current authorization/consent status of an AIS service session. Useful as a complement to webhook notifications. ```bash # Check the status of an AIS session curl -X GET "http://localhost:18085/v1/banking/ais/session-uuid-1234/status" \ -H "X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721" \ -H "Fintech-ID: my-fintech-app" \ -H "Fintech-Data-Password: my-encryption-password" \ -H "X-Timestamp-UTC: 2024-01-15T10:30:00Z" \ -H "X-Request-Signature: " # Response 200 OK: # { # "sessionStatus": "COMPLETED" # } # Possible values: NOT_STARTED, PENDING, COMPLETED, ERROR ``` -------------------------------- ### Run Source Docker Registry Source: https://github.com/adorsys/open-banking-gateway/blob/develop/scripts/TESTING.md Starts a Docker registry container configured with authentication and TLS using self-signed certificates. This registry will be accessible on port 5000. ```shell docker run -d \ --restart=always \ --name source_registry \ -v `pwd`/docker/source_docker/auth:/auth \ -v `pwd`/docker/source_docker/certs:/certs \ -e REGISTRY_AUTH=htpasswd \ -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ -p 5000:5000 \ registry:2.7.0 ```