This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.

Copy of Configuring WSO2 Open Banking

This page is a work in progress.

Prerequisites

  • Install JDK 1.8 or later in all nodes used for the setup.
  • In the environment variables, update the JAVA_HOME and PATH variables. For instance, you can do this by adding the following to the ~/.bashrc file:

    export JAVA_HOME="<JDK_LOCATION>"
    
    export PATH=$PATH:$JAVA_HOME/bin
WSO2 Update Manager (WUM)

WUM is a simple command line tool that connects to the WSO2 Update service, determines which updates are new and relevant, and downloads them. You can get the latest version of the WSO2 Open Banking product packs through WUM.

You need a WSO2 subscription to start using the WSO2 Update Manager.

Follow the guidelines provided in the Download WUM page to download and install WUM in your environment. For more information on how to use WUM, see the /wiki/spaces/updates/pages/16318500.

  1. Add the necessary product packs using the commands given below:

    wum add wso2ob-am-2.6.0              		
    wum add wso2ob-am-analytics-2.6.0    	    
    wum add wso2ob-ei-6.4.0              	     
    wum add wso2ob-km-5.7.0 
  2. Update the product packs using the commands given below:

    wum update wso2ob-am-2.6.0              		
    wum update wso2ob-am-analytics-2.6.0    	    
    wum update wso2ob-ei-6.4.0              	     
    wum update wso2ob-km-5.7.0
  3. The product packs reside in the <WUM_HOME>/products/<Product_Name>/<version>/full directory as <Product_name-<version>+<timestamp>.full.zip. Copy the product packs to a preferred location in each node and extract them.

This documents refers to the file paths of the product packs for the Key Manager, API Manager, API Manager Analytics, and Enterprise Integrator as <KM_HOME>, <API-M_HOME>, <API-M_ANALYTICS_HOME>, and <EI_HOME> respectively.

Creating databases

In a preferred SQL database environment, create the databases given below:

  • openbank_apimgtdb

  • openbank_apimgt_statsdb

  • openbank_mbstoredb

  • openbank_userdb

  • openbank_am_configdb

  • openbank_govdb

  • openbank_bps_configdb

  • openbank_bpsdb

  • openbank_iskm_configdb

  • openbank_consent_db

  • openbank_tra_db

Configuring the Key Manager

  1. To configure the databases, open the <KM_HOME>/repository/conf/datasources/master-datasources.xml file, add/update the WSO2AM_DB, WSO2UM_DB, WSO2_GOV_REG_DB, and WSO2_IS_CONF_REG_DB as shown below:

    <datasources>
    ...
    ...
    ...
    <datasource>
            <name>WSO2AM_DB</name>
             <description>The datasource used for the API Manager database</description>
             <jndiConfig>
                    <name>jdbc/WSO2AM_DB</name>
            </jndiConfig>
             <definition type="RDBMS">
               <configuration>
                 <url>jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_apimgtdb?autoReconnect=true&amp;useSSL=false</url>
                 <username>DB_USER</username>
                 <password>DB_PASSWORD</password>
                 <defaultAutoCommit>false</defaultAutoCommit>
                 <driverClassName>DB_DRIVER</driverClassName>
                 <maxActive>50</maxActive>
                 <maxWait>60000</maxWait>
                 <testOnBorrow>true</testOnBorrow>
                 <validationQuery>SELECT 1</validationQuery>
                 <validationInterval>30000</validationInterval>
                    </configuration>
            </definition>
    </datasource>
    
    <datasource>
            <name>WSO2UM_DB</name>
             <description>The datasource used for the User Management</description>
             <jndiConfig>
                    <name>jdbc/WSO2UM_DB</name>
            </jndiConfig>
             <definition type="RDBMS">
               <configuration>
                  <url>jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_userdb?autoReconnect=true&amp;useSSL=false</url>
                  <username>DB_USER</username>
                  <password>DB_PASSWORD</password>
                  <defaultAutoCommit>false</defaultAutoCommit>
                  <driverClassName>DB_DRIVER</driverClassName>
                  <maxActive>50</maxActive>
                  <maxWait>60000</maxWait>
                  <testOnBorrow>true</testOnBorrow>
                  <validationQuery>SELECT 1</validationQuery>
                  <validationInterval>30000</validationInterval>
                </configuration>
            </definition>
    </datasource>
    
    <datasource>
            <name>WSO2_IS_CONF_REG_DB</name>
             <description>The datasource used for the IS Config Registry Management</description>
             <jndiConfig>
                    <name>jdbc/WSO2_IS_CONF_REG_DB</name>
            </jndiConfig>
             <definition type="RDBMS">
                <configuration>
                  <url>jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_iskm_configdb
    ?autoReconnect=true&amp;useSSL=false</url>
                  <username>DB_USER</username>
                  <password>DB_PASSWORD</password>
                  <defaultAutoCommit>false</defaultAutoCommit>
                  <driverClassName>DB_DRIVER</driverClassName>
                  <maxActive>50</maxActive>
                  <maxWait>60000</maxWait>
                  <testOnBorrow>true</testOnBorrow>
                  <validationQuery>SELECT 1</validationQuery>
                  <validationInterval>30000</validationInterval>
                    </configuration>
            </definition>
    </datasource>
    
    <datasource>
            <name>WSO2_GOV_REG_DB</name>
             <description>The datasource used for the Governance Registry Management</description>
             <jndiConfig>
                    <name>jdbc/WSO2_GOV_REG_DB</name>
            </jndiConfig>
             <definition type="RDBMS">
               <configuration>
                 <url>jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_govdb?autoReconnect=true&amp;useSSL=false</url>
                 <username>DB_USER</username>
                 <password>DB_PASSWORD</password>
                 <defaultAutoCommit>false</defaultAutoCommit>
                 <driverClassName>DB_DRIVER</driverClassName>
                 <maxActive>50</maxActive>
                 <maxWait>60000</maxWait>
                 <testOnBorrow>true</testOnBorrow>
                 <validationQuery>SELECT 1</validationQuery>
                 <validationInterval>30000</validationInterval>
                    </configuration>
            </definition>
    </datasource>
    ...
    ...
    ...
    </datasources>
  2. In the <KM_HOME>/repository/conf/datasources/open-banking-datasources.xml file, update the WSO2_CONSENT_DB as shown below:

        <datasources>
            <datasource>
                <name>WSO2_CONSENT_DB</name>
                <description>The datasource used for registry and user manager</description>
                <jndiConfig>
                    <name>jdbc/WSO2ConsentDB</name>
                </jndiConfig>
                <definition type="RDBMS">
                     <configuration>
                            <url>jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_consent_db?autoReconnect=true&amp;useSSL=false</url>
                            <username>DB_USER</username>
                            <password>DB_PASSWORD</password>
                            <defaultAutoCommit>false</defaultAutoCommit>
                            <driverClassName>DB_DRIVER</driverClassName>
                            <maxActive>50</maxActive>
                            <maxWait>60000</maxWait>
                            <testOnBorrow>true</testOnBorrow>
                            <validationQuery>SELECT 1</validationQuery>
                            <validationInterval>30000</validationInterval>
                    </configuration>
                </definition>
            </datasource>
        </datasources>
  3. To configure registry mounts, open the <KM_HOME>/repository/conf/registry.xml file and add the following configurations:

    <dbConfig name="govregistry">
      <dataSource>jdbc/WSO2_GOV_REG_DB</dataSource>
    </dbConfig>
    <remoteInstance url="https://localhost:9443/registry">
           <id>gov</id>
           <cacheId><DB_USER>@jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_govdb?autoReconnect=true</cacheId>
           <dbConfig>govregistry</dbConfig>
           <readOnly>false</readOnly>
           <enableCache>true</enableCache>
           <registryRoot>/</registryRoot>
    </remoteInstance>
    
     <dbConfig name="isconfregistry">
          <dataSource>jdbc/WSO2_IS_CONF_REG_DB</dataSource>
     </dbConfig>
     <remoteInstance url="https://localhost:9443/registry">
           <id>is_conf</id>
           <cacheId><DB_USER>@jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_iskm_configdb?autoReconnect=true</cacheId>
           <dbConfig>isconfregistry</dbConfig>
           <readOnly>false</readOnly>
           <enableCache>true</enableCache>
           <registryRoot>/</registryRoot>
     </remoteInstance>
    
     <mount path="/_system/governance" overwrite="true">
       <instanceId>gov</instanceId>
       <targetPath>/_system/governance</targetPath>
     </mount>
     <mount path="/_system/config" overwrite="true">
       <instanceId>is_conf</instanceId>
       <targetPath>/_system/config</targetPath>
     </mount>
  4. To configure the user store, 
    1. Open the <KM_HOME>/repository/conf/user-mgt.xml file and change the dataSource property to the user management datasource configured in the master-datasources.xml file, as mentioned above. 
    2. If you need to change the default admin user credentials, update those details as well in the master-datasources.xml file.
    3. By default, the userstore is a JDBC userstore, which will use the user management datasource as the userstore. If required, remove the UserStoreManager element related to the default JDBC userstore, and uncomment and configure any other preferred userstore (e.g. LDAP, Active Directory, etc.).

      <Configuration>
                  <AddAdmin>true</AddAdmin>
                  <AdminRole>admin</AdminRole>
                  <AdminUser>
                      <UserName>admin@wso2.com</UserName>
                      <Password>wso2123</Password>
                  </AdminUser>
                  <EveryOneRoleName>everyone</EveryOneRoleName>
                  <!-- By default users in this role sees the registry root -->
                  <Property name="isCascadeDeleteEnabled">true</Property>
                  <Property name="initializeNewClaimManager">true</Property>
                  <Property name="dataSource">jdbc/WSO2UM_DB</Property>
      </Configuration>
  5. To configure open banking, 
    1. Open the <KM_HOME>/repository/conf/finance/open-banking.xml file and configure the <DeployedSpecification> element based on a preferred OB specification.
    2. To enable the transaction risk analysis feature, update the value of the <TRA>/<IsEnabled> element to true.

    3. Update the hostnames as shown below:

      <DeployedSpecification>UK</DeployedSpecification>
      
          <PayableAccountsRetriveEndpoint>http://<APIM_HOSTNAME>:9763/open-banking/services/bankaccounts/bankaccountservice/payable-accounts</PayableAccountsRetriveEndpoint>
         
          <SharableAccountsRetriveEndpoint>http://<APIM_HOSTNAME>:9763/open-banking/services/bankaccounts/bankaccountservice/sharable-accounts</SharableAccountsRetriveEndpoint>
      
      ...
      
          <UK>
              <CustomerCareOfficerRole>Internal/CustomerCareOfficer</CustomerCareOfficerRole>
              <XFAPIFinancialId>open-bank</XFAPIFinancialId>
              <UK200AccountAPIURL>https://<APIM_HOSTNAME>:9763/AccountsInfoAPI/v2.0.0/</UK200AccountAPIURL>
              <UK110PaymentAPIURL>https://<APIM_HOSTNAME>:9763/PaymentAPI/v1.1.0/</UK110PaymentAPIURL>
              <Cache>
                  <EnableConsentValidationCache>true</EnableConsentValidationCache>
                  <!-- Expiry time for the consent validation info cache -->
                  <ConsentValidationCacheExpiry>900</ConsentValidationCacheExpiry>
                  <DefaultCacheTimeout>120000</DefaultCacheTimeout>
              </Cache>
              <UseConsentIdInPath>true</UseConsentIdInPath>
          </UK>
          <STET>
              <Host>APIM_HOSTNAME</Host>
              <Port>8243</Port>
              <MaxNumberOfTransactions>5</MaxNumberOfTransactions>
              <DuplicateCheck>
                   <TimeIntervalInMinutes>60</TimeIntervalInMinutes>
              </DuplicateCheck>
        
              <SCA>
                 <SelectedSCAApproach>REDIRECT</SelectedSCAApproach>
                 <AuthorizationEndpoint>
                      https://KM_HOST:9446/oauth2/authorize
                 </AuthorizationEndpoint>
              </SCA>
              <AccountReferenceType>iban</AccountReferenceType>
           </STET>
      ...
      
          <TRA>
              <IsEnabled>true</IsEnabled>
      ...
      ...
      ...
          </TRA>
      
      ...
      
          <Analytics>
              <StreamProcessor>
                  <Username>admin</Username>
                  <Password>admin</Password>
                  <Publisher>
                      <AccountsURL>http://<AM_ANALYTICS_HOSTNAME>:8006/ViewAccountsDataApp/AccountsStream</AccountsURL>
                      <TransactionsURL>http://<AM_ANALYTICS_HOSTNAME>:8006/TransactionsDataApp/TransactionsStream</TransactionsURL>
                      <InitiationsURL>http://<AM_ANALYTICS_HOSTNAME>:8006/TransactionsInitDataApp/TransactionsInitStream</InitiationsURL>
                      <SubmissionsURL>http://<AM_ANALYTICS_HOSTNAME>:8006/InvalidSubmissionsApp/InvalidSubmissionsStream</SubmissionsURL>
                  </Publisher>
                  <Receiver>
                      <LastSCAURL>http://<AM_ANALYTICS_HOSTNAME>:8007/GetLastSCAAppliedStatus/SCAStatusRequestStream</LastSCAURL>
                      <MaxFrequencyNTtotalAmountOfTransactionsCheckWithoutSCAURL>http://SP_HOSTNAME:8007/GetSCANotAppliedData/InputStream</MaxFrequencyNTtotalAmountOfTransactionsCheckWithoutSCAURL>
                      <FraudDetectionURL>http://<AM_ANALYTICS_HOSTNAME>:8007/FraudDetectionApp/FraudDetectionStream</FraudDetectionURL>
                  </Receiver>
              </StreamProcessor>
          </Analytics>
    4. If you want the event notification feature for OB UK 3.0, add the eventNotification configuration element, as shown below.

      <EventNotifications>
      <IsEnabled>true</IsEnabled>
      <TokenIssuer>www.openbank.com</TokenIssuer>
      <NotificationExpiryTime>180</NotificationExpiryTime>
      <JDBCPersistenceManager>
             <DataSource>
                 <Name>jdbc/WSO2NotificationDB</Name>
             </DataSource>
      </JDBCPersistenceManager>
      </EventNotifications>
  6. To configure identity configurations, 
    1. Open the <KM_HOME>/repository/conf/identity/identity.xml file and update the hostnames as shown below. These values are updated based on various interactions among each component.

      <SupportedResponseType>
      <ResponseTypeName>code</ResponseTypeName>
      <ResponseTypeHandlerImplClass>com.wso2.finance.open.banking.response.type.handlers.OBCodeResponseTypeHandler</ResponseTypeHandlerImplClass>
      </SupportedResponseType>
      
      <SupportedResponseType>
      <ResponseTypeName>code id_token</ResponseTypeName>
      <ResponseTypeHandlerImplClass>com.wso2.finance.open.banking.response.type.handlers.OBHybridResponseTypeHandler</ResponseTypeHandlerImplClass>
      </SupportedResponseType>
      <!--openbanking_hostname Required in OB-->
              <OAuth1RequestTokenUrl>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/oauth/request-token</OAuth1RequestTokenUrl>
              <OAuth1AuthorizeUrl>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/oauth/authorize-url</OAuth1AuthorizeUrl>
              <OAuth1AccessTokenUrl>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/oauth/access-token</OAuth1AccessTokenUrl>
              <OAuth2AuthzEPUrl>${carbon.protocol}://<APIM_HOST>:8243/authorize</OAuth2AuthzEPUrl>
              <OAuth2TokenEPUrl>${carbon.protocol}://<APIM_HOST>:8243/token</OAuth2TokenEPUrl>
              <OAuth2RevokeEPUrl>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/oauth2/revoke</OAuth2RevokeEPUrl>
              <OAuth2IntrospectEPUrl>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/oauth2/introspect</OAuth2IntrospectEPUrl>
              <OAuth2UserInfoEPUrl>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/oauth2/userinfo</OAuth2UserInfoEPUrl>
              <OIDCCheckSessionEPUrl>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/oidc/checksession</OIDCCheckSessionEPUrl>
              <OIDCLogoutEPUrl>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/oidc/logout</OIDCLogoutEPUrl>
              <OAuth2ConsentPage>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/authenticationendpoint/oauth2_authz.do</OAuth2ConsentPage>
              <OAuth2ErrorPage>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/authenticationendpoint/oauth2_error.do</OAuth2ErrorPage>
              <OIDCConsentPage>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/authenticationendpoint/oauth2_consent.do</OIDCConsentPage>
              <OIDCLogoutConsentPage>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/authenticationendpoint/oauth2_logout_consent.do</OIDCLogoutConsentPage>
              <OIDCLogoutPage>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/authenticationendpoint/oauth2_logout.do</OIDCLogoutPage>
              <OIDCWebFingerEPUrl>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/.well-known/webfinger</OIDCWebFingerEPUrl>
              <!-- For tenants below urls will be modified as https://<hostname>:<port>/t/<tenant domain>/<path>-->
              <OAuth2DCREPUrl>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/api/identity/oauth2/dcr/v1.0/register</OAuth2DCREPUrl>
              <OAuth2JWKSPage>${carbon.protocol}://<KM_HOST>:${carbon.management.port}/oauth2/jwks</OAuth2JWKSPage>
              <OIDCDiscoveryEPUrl>${carbon.protocol}:/<KM_HOST>:${carbon.management.port}/oauth2/oidcdiscovery</OIDCDiscoveryEPUrl>
      
      ...
      
      <IDTokenIssuerID>https://<APIM_HOST>:8243/token</IDTokenIssuerID>
    2. To update the <ScopeWhitelist> configuration, update the <KM_HOME>/repository/conf/api-manager.xml file, as shown below:

      <ScopeWhitelist>
        <Scope>openid</Scope>
        <Scope>extended_transaction_history</Scope>
        <Scope>^OB_.*</Scope>
      </ScopeWhitelist>
    3. To update the hostnames, open the <KM_HOME>/repository/conf/identity/application-authentication.xml file as shown in the example below. These values are updated based on various interactions among each component.

      <!--
              AuthenticationEndpointURL is location of the web app containing
              the authentication related pages
          -->
          <AuthenticationEndpointURL>https://<KM_HOST>:9446/authenticationendpoint/login.do</AuthenticationEndpointURL>
          <AuthenticationEndpointRetryURL>https://<KM_HOME>:9446/authenticationendpoint/retry.do</AuthenticationEndpointRetryURL>
      
      ...
      
              <AuthenticatorConfig name="SMSOTP" enabled="true">
                  <Parameter name="SMSOTPAuthenticationEndpointURL">https://<KM_HOME>:9446/smsotpauthenticationendpoint/smsotp.jsp</Parameter>
                  <Parameter name="SMSOTPAuthenticationEndpointErrorPage">https://<KM_HOME>:9446/smsotpauthenticationendpoint/smsotpError.jsp</Parameter>
                  <Parameter name="MobileNumberRegPage">https://<KM_HOME>:9446/smsotpauthenticationendpoint/mobile.jsp</Parameter>
                  <Parameter name="RetryEnable">true</Parameter>
                  <Parameter name="ResendEnable">true</Parameter>
                  <Parameter name="BackupCode">true</Parameter>
                  <Parameter name="SMSOTPEnableByUserClaim">false</Parameter>
                  <Parameter name="SMSOTPMandatory">false</Parameter>
                  <Parameter name="CaptureAndUpdateMobileNumber">true</Parameter>
                  <Parameter name="SendOTPDirectlyToMobile">false</Parameter>
                  <Parameter name="redirectToMultiOptionPageOnFailure">false</Parameter>
                  <Parameter name="TokenExpiryTime">100</Parameter>
              </AuthenticatorConfig>
      
      .
      .
      .
      
      <AuthenticationEndpointRedirectParams action="include" removeOnConsumeFromAPI="false">
  7. Open the <KM_HOME>/repository/conf/carbon.xml file and set the hostnames of the server as follows:

        <!--Required in OB-->
        <HostName><KM_HOST></HostName>
    
        <!--
        Host name to be used for the Carbon management console
        -->
        <!--Required in OB-->
        <MgtHostName><KM_HOST></MgtHostName>

Configuring the API Manager

  1. To configure the databases, open the <API-M_HOME>/repository/conf/datasources/master-datasources.xml file, add/update the WSO2AM_DB, WSO2UM_DB, WSO2_GOV_REG_DB, WSO2_AM_CONF_REG_DB, and WSO2_MB_STORE_DB, as shown below:

    <datasources>
    ...
    ...
    ...
    <datasource>
            <name>WSO2AM_DB</name>
             <description>The datasource used for the API Manager database</description>
             <jndiConfig>
                    <name>jdbc/WSO2AM_DB</name>
            </jndiConfig>
             <definition type="RDBMS">
               <configuration>
                 <url>jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_apimgtdb?autoReconnect=true&amp;useSSL=false</url>
                 <username>DB_USER</username>
                 <password>DB_PASSWORD</password>
                 <defaultAutoCommit>false</defaultAutoCommit>
                 <driverClassName>DB_DRIVER</driverClassName>
                 <maxActive>50</maxActive>
                 <maxWait>60000</maxWait>
                 <testOnBorrow>true</testOnBorrow>
                 <validationQuery>SELECT 1</validationQuery>
                 <validationInterval>30000</validationInterval>
               </configuration>
            </definition>
    </datasource>
    
    <datasource>
            <name>WSO2UM_DB</name>
             <description>The datasource used for the User Management</description>
             <jndiConfig>
                    <name>jdbc/WSO2UM_DB</name>
            </jndiConfig>
             <definition type="RDBMS">
               <configuration>
                  <url>jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_userdb?autoReconnect=true&amp;useSSL=false</url>
                  <username>DB_USER</username>
                  <password>DB_PASSWORD</password>
                  <defaultAutoCommit>false</defaultAutoCommit>
                  <driverClassName>DB_DRIVER</driverClassName>
                  <maxActive>50</maxActive>
                  <maxWait>60000</maxWait>
                  <testOnBorrow>true</testOnBorrow>
                  <validationQuery>SELECT 1</validationQuery>
                  <validationInterval>30000</validationInterval>
                </configuration>
            </definition>
    </datasource>
    
    <datasource>
            <name>WSO2_GOV_REG_DB</name>
             <description>The datasource used for the Governance Registry Management</description>
             <jndiConfig>
                    <name>jdbc/WSO2_GOV_REG_DB</name>
            </jndiConfig>
             <definition type="RDBMS">
               <configuration>
                 <url>jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_govdb?autoReconnect=true&amp;useSSL=false</url>
                 <username>DB_USER</username>
                 <password>DB_PASSWORD</password>
                 <defaultAutoCommit>false</defaultAutoCommit>
                 <driverClassName>DB_DRIVER</driverClassName>
                 <maxActive>50</maxActive>
                 <maxWait>60000</maxWait>
                 <testOnBorrow>true</testOnBorrow>
                 <validationQuery>SELECT 1</validationQuery>
                 <validationInterval>30000</validationInterval>
                    </configuration>
            </definition>
    </datasource>
    
    <datasource>
            <name>WSO2_AM_CONF_REG_DB</name>
             <description>The datasource used for the AM Config Registry Management</description>
             <jndiConfig>
                    <name>jdbc/WSO2_AM_CONF_REG_DB</name>
            </jndiConfig>
             <definition type="RDBMS">
                <configuration>
                  <url>jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_am_configdb?autoReconnect=true&amp;useSSL=false</url>
                  <username>DB_USER</username>
                  <password>DB_PASSWORD</password>
                  <defaultAutoCommit>false</defaultAutoCommit>
                  <driverClassName>DB_DRIVER</driverClassName>
                  <maxActive>50</maxActive>
                  <maxWait>60000</maxWait>
                  <testOnBorrow>true</testOnBorrow>
                  <validationQuery>SELECT 1</validationQuery>
                  <validationInterval>30000</validationInterval>
               </configuration>
            </definition>
    </datasource>
    
    <datasource>
             <name>WSO2_MB_STORE_DB</name>
             <description>The datasource used for message broker database</description>
             <jndiConfig>
                    <name>WSO2MBStoreDB</name>
             </jndiConfig>
             <definition type="RDBMS">
                <configuration>
                  <url>jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_mbstoredb?autoReconnect=true&amp;useSSL=false</url>
                  <username>DB_USER</username>
                  <password>DB_PASSWORD</password>
                  <defaultAutoCommit>false</defaultAutoCommit>
                  <driverClassName>DB_DRIVER</driverClassName>
                  <maxActive>50</maxActive>
                  <maxWait>60000</maxWait>
                  <testOnBorrow>true</testOnBorrow>
                  <validationQuery>SELECT 1</validationQuery>
                  <validationInterval>30000</validationInterval>
               </configuration>
            </definition>
    </datasource>
    ...
    ...
    ...
    </datasources>
  2. In the <API-M_HOME>/repository/conf/datasources/open-banking-datasources.xml file, update the WSO2_CONSENT_DB as shown below:

    <datasources>
            <datasource>
                <name>WSO2_CONSENT_DB</name>
                <description>The datasource used for registry and user manager</description>
                <jndiConfig>
                    <name>jdbc/WSO2ConsentDB</name>
                </jndiConfig>
                <definition type="RDBMS">
                     <configuration>
                            <url>jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_consent_db?autoReconnect=true&amp;useSSL=false</url>
                            <username>DB_USER</username>
                            <password>DB_PASSWORD</password>
                            <defaultAutoCommit>false</defaultAutoCommit>
                            <driverClassName>DB_DRIVER</driverClassName>
                            <maxActive>50</maxActive>
                            <maxWait>60000</maxWait>
                            <testOnBorrow>true</testOnBorrow>
                            <validationQuery>SELECT 1</validationQuery>
                            <validationInterval>30000</validationInterval>
                    </configuration>
                </definition>
            </datasource>
        </datasources>
  3. To configure registry mounts, open the <API-M_HOME>/repository/conf/registry.xml file and add the following configurations:

    <dbConfig name="govregistry">
      <dataSource>jdbc/WSO2_GOV_REG_DB</dataSource>
    </dbConfig>
    <remoteInstance url="https://localhost:9443/registry">
           <id>gov</id>
           <cacheId><DB_USER>@jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_govdb?autoReconnect=true</cacheId>
           <dbConfig>govregistry</dbConfig>
           <readOnly>false</readOnly>
           <enableCache>true</enableCache>
           <registryRoot>/</registryRoot>
    </remoteInstance>
    
     <dbConfig name="amconfregistry">
          <dataSource>jdbc/WSO2_AM_CONF_REG_DB</dataSource>
     </dbConfig>
     <remoteInstance url="https://localhost:9443/registry">
           <id>am_conf</id>
           <cacheId><DB_USER>@jdbc:<DB_TYPE>://<DB_HOST>:<DB_PORT>/openbank_am_configdb?autoReconnect=true</cacheId>
           <dbConfig>amconfregistry</dbConfig>
           <readOnly>false</readOnly>
           <enableCache>true</enableCache>
           <registryRoot>/</registryRoot>
     </remoteInstance>
    
     <mount path="/_system/governance" overwrite="true">
       <instanceId>gov</instanceId>
       <targetPath>/_system/governance</targetPath>
     </mount>
     <mount path="/_system/config" overwrite="true">
       <instanceId>am_conf</instanceId>
       <targetPath>/_system/config</targetPath>
     </mount>
  4. To configure open banking, 
    1. Open the <API-M_HOME>/repository/conf/finance/open-banking.xml file and configure the <DeployedSpecification> element based on a preferred OB specification.
    2. To enable the transaction risk analysis feature, update the value of the <TRA>/<IsEnabled> element to true.

    3. Update the hostnames as shown below:

      <DeployedSpecification>UK</DeployedSpecification>
      
          <PayableAccountsRetriveEndpoint>http://<APIM_HOSTNAME>:9763/open-banking/services/bankaccounts/bankaccountservice/payable-accounts</PayableAccountsRetriveEndpoint>
         
          <SharableAccountsRetriveEndpoint>http://<APIM_HOSTNAME>:9763/open-banking/services/bankaccounts/bankaccountservice/sharable-accounts</SharableAccountsRetriveEndpoint>
      
      ...
      
          <UK>
          <STET>
              <Host>APIM_HOSTNAME</Host>
              <Port>8243</Port>
              <MaxNumberOfTransactions>5</MaxNumberOfTransactions>
              <DuplicateCheck>
                   <TimeIntervalInMinutes>60</TimeIntervalInMinutes>
              </DuplicateCheck>
        
              <SCA>
                 <SelectedSCAApproach>REDIRECT</SelectedSCAApproach>
                 <AuthorizationEndpoint>
                      https://KM_HOST:9446/oauth2/authorize
                 </AuthorizationEndpoint>
              </SCA>
              <AccountReferenceType>iban</AccountReferenceType>
           </STET>
      ...
      ...
      ...
              <CustomerCareOfficerRole>Internal/CustomerCareOfficer</CustomerCareOfficerRole>
              <XFAPIFinancialId>open-bank</XFAPIFinancialId>
              <UK200AccountAPIURL>https://<APIM_HOSTNAME>:8243/AccountsInfoAPI/v2.0.0/</UK200AccountAPIURL>
              <UK110PaymentAPIURL>https://<APIM_HOSTNAME>:8243/PaymentAPI/v1.1.0/</UK110PaymentAPIURL>
              <Cache>
                  <EnableConsentValidationCache>true</EnableConsentValidationCache>
                  <!-- Expiry time for the consent validation info cache -->
                  <ConsentValidationCacheExpiry>900</ConsentValidationCacheExpiry>
                  <DefaultCacheTimeout>120000</DefaultCacheTimeout>
              </Cache>
              <UseConsentIdInPath>true</UseConsentIdInPath>
          </UK>
      
      ...
      
          <TRA>
              <IsEnabled>true</IsEnabled>
      ...
      ...
      ...
          </TRA>
      
      ...
      
          <Analytics>
              <StreamProcessor>
                  <Username>admin</Username>
                  <Password>admin</Password>
                  <Publisher>
                      <AccountsURL>http://<AM_ANALYTICS_HOSTNAME>:8006/ViewAccountsDataApp/AccountsStream</AccountsURL>
                      <TransactionsURL>http://<AM_ANALYTICS_HOSTNAME>:8006/TransactionsDataApp/TransactionsStream</TransactionsURL>
                      <InitiationsURL>http://<AM_ANALYTICS_HOSTNAME>:8006/TransactionsInitDataApp/TransactionsInitStream</InitiationsURL>
                      <SubmissionsURL>http://<AM_ANALYTICS_HOSTNAME>:8006/InvalidSubmissionsApp/InvalidSubmissionsStream</SubmissionsURL>
                  </Publisher>
                  <Receiver>
                      <LastSCAURL>http://<AM_ANALYTICS_HOSTNAME>:8007/GetLastSCAAppliedStatus/SCAStatusRequestStream</LastSCAURL>
                      <MaxFrequencyNTtotalAmountOfTransactionsCheckWithoutSCAURL>http://SP_HOSTNAME:8007/GetSCANotAppliedData/InputStream</MaxFrequencyNTtotalAmountOfTransactionsCheckWithoutSCAURL>
                      <FraudDetectionURL>http://<AM_ANALYTICS_HOSTNAME>:8007/FraudDetectionApp/FraudDetectionStream</FraudDetectionURL>
                  </Receiver>
              </StreamProcessor>
          </Analytics>
  5. Open the repository/deployment/server/jaggeryapps/store/site/conf/site.json file and update the <DeployedSpecification> element based on the preferred OB specification (in this case, UK):

    "DeployedSpecification" : "UK" //Allowed values are: "UK", "BERLIN"
  6. To configure the user store, 
    1. Open the <API-M_HOME>/repository/conf/user-mgt.xml file and change the dataSource property to the user management datasource configured in the master-datasources.xml file, as mentioned above. 
    2. If you need to change the default admin user credentials, update those details as well in the master-datasources.xml file.
    3. By default, the userstore is a JDBC userstore, which will use the user management datasource as the userstore. If required, remove the UserStoreManager element related to the default JDBC userstore, and uncomment and configure any other preferred userstore (e.g. LDAP, Active Directory, etc.).

      <Configuration>
                  <AddAdmin>true</AddAdmin>
                  <AdminRole>admin</AdminRole>
                  <AdminUser>
                      <UserName>admin@wso2.com</UserName>
                      <Password>wso2123</Password>
                  </AdminUser>
                  <EveryOneRoleName>everyone</EveryOneRoleName>
                  <!-- By default users in this role sees the registry root -->
                  <Property name="isCascadeDeleteEnabled">true</Property>
                  <Property name="initializeNewClaimManager">true</Property>
                  <Property name="dataSource">jdbc/WSO2UM_DB</Property>
      </Configuration>
  7. To update the API Manager related configurations and URLs, open the <API-M_HOME>/repository/conf/api-manager.xml file as shown below. Please note that these are related to connectivity to different components. Please refer the comments in relevant configuration boxes for more information.

  8. cvc

Configuring WSO2 Open Banking

To configure the WSO2 Open Banking solution in your local setup, follow the instructions in https://github.com/wso2/financial-open-banking/blob/master/setup-scripts/scripts/README.md.

To configure the WSO2 Open Banking solution from the source code, follow the instructions in https://github.com/wso2/financial-open-banking/blob/master/README.md.