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/.

PSD2 Data Reporting

This is available only as a WUM update and is effective from June 25, 2019 (06-25-2019). For more information on updating WSO2 Open Banking, see Updating WSO2 Products.

There are certain standards and requirements you need to adhere to when you offer open banking services as a PSD2 compliant organization. The Account Servicing Payment Service Providers (ASPSPs) are required to make their statistics available to respective national authorities and open banking authorities to monitor compliance with PSD2/RTS. In order to satisfy this, the WSO2 Open Banking solution offers data reporting feature.

The Data Reporting feature gathers and monitors data in regard to the APIs invoked through the WSO2 Open Banking solution. This observes the following aspects.

  • Performance and availability 
        Understand and monitor the availability and performance of the supported APIs.
  • Adoption 
        Identify the effectiveness; which ASPSPs are being engaged more by TPPs as part of their ongoing activity.
  • Data volumetrics 
        The efficacy of the Open Banking standards as a part of ongoing standards management activity.

The WSO2 Open Banking Business Intelligence(OBBI) captures the data through WSO2 Open Banking API Manager(WSO2 OB APIM) and WSO2 Open Banking Key Manager(WSO2 OB KM). It processes and summarizes the data in a way that ASPSPs can generate their own reports and summaries.

Data Reporting captures the data in the following flows : 

  • API invocation data from the AISP and PISP flows

  • Authentication data through Strong Customer Authentication flow

  • Authorization data using the Authorization flow

  • Application registration data through the TPP onboarding process

WSO2 Open Banking UK captures the application registration data only during the Dynamic Client Registration process.

All the data are stored in two databases.  
  • The OB_REPORTING_DB database stores all the raw data related to API invocation,  authentication, authorization and application registration. The data stored in the database is not processed by any means, therefore the ASPSPs can use this database and summarize data according to their requirements. 

     Click here to see what is included in the OB_REPORTING_DB database

    The OB_REPORTING_DB database contains the following tables:

    • API_INVOCATION_RAW_DATA
      Stores data related to API requests.

    • ACCOUNTS_RAW_DATA 

      Stores data related to the accounts flow.

    • AUTHORISATION_RAW_DATA

      Stores data related to user consent authorisation.

      AuthorizationRequired is a field that denotes the user is authenticated but not Authorized/Rejected.

    • APP_REG_RAW_DATA

      Stores data related to application registration.

    • AUTHENTICATION_RAW_DATA

      Stores user authentication data.

      AuthenticationRequired is a field that denotes the user is in a status where authentication is required, which means the user hasn’t tried authenticating.

    • FUNDS_CONFIRMATION_RAW_DATA 

      Stores data related to confirmation of funds requests. 

    • PAYMENTS_RAW_DATA

      Stores data related to payments.

  • The OB_REPORTING_SUMMARIZED_DB database stores summarized data of the OB_REPORTING_DB database. The summarization contains information related to API invocation, consents, single and batch payment information, payment submission, etc. 

     Click here to see what is included in the OB_REPORTING_SUMMARIZED_DB database

    The OB_REPORTING_SUMMARIZED_DB database contains the following summarized data tables:  

    • AISP_VOLUMES

      Stores summarized details regarding the number of AISP applications registered/deregistered.

    • PISP_VOLUMES
      Stores summarized details regarding the number of PISP applications registered/deregistered.

    • CBPII_VOLUMES
      Stores summarized details regarding the number of CBPII applications registered/deregistered.

    • BACS_INTERNATIONAL
      Stores summarized details of BACS international payments.

    • BACS_REQUEST_STATUS
      Stores summarized status details of the BACS payment requests.

    • FAILED_BACS_REQUESTS
      Stores summarized details of failed BACS requests.

    • CHAPS_INTERNATIONAL
      Stores summarized details of CHAPS international payments.

    • CHAPS_REQUEST_STATUS
      Stores summarized status details of the CHAPS payment requests.

    • FAILED_CHAPS_REQUESTS
      Stores summarized details of failed CHAPS requests.

    • PA_CORE
      Stores summarized details regarding performance and availability for core hours (06:00-00:00).

    • PA_NON_CORE
      Stores summarized details regarding performance and availability for non core hours (00:00-06:00).

    • RESPONSE_OUTLIER
      Stores summarized response details of requests.

    • CORE_PAYMENT_INITIATION_DETAILS
      Stores summarized payment initiation details per second for core hours (06:00-00:00).

    • NON_CORE_PAYMENT_INITIATION_DETAILS
      Stores summarized payment initiation details per second for non core hours (00:00-06:00).

    • FILE_PAYMENT
      Stores summarized details regarding the number of payments per payment type in (files) file payment requests.

    • DIFFERENT_TPPS
      Stores summarized details regarding the distinct TPP count.

    • AUTHENTICATION_ATTEMPTED
      Stores summarized details regarding the number of attempts to authenticate.

    • AUTHENTICATION_SUCCESSFUL
      Stores summarized details regarding the number of successful PSU authentications.

    • AUTHORISATION_SUMMARY
      Stores summarized counts of authorisation statuses (Authorised/ Rejected).

    • MULTI_AUTH_DETAILS
      Stores the summarized count of Authorised/Rejected statuses in scenarios where multiple authorising is performed.
    • CONFIRMATION_DETAILS
      Stores the summarized count of AuthorisationRequired,Authorised and Rejected statuses.
    • CONSENT_REQ_AUTHENTICATION
      Stores the summarized count of PSU consents that require authentication.
    • STATUS_CODE_SUMMARY
      Stores the summarized number of API calls for a given endpoint per status code per day.

    • PSU_DETAILS
      A raw data table that stores PSU details and is used to identify the PSUs.
    • FIRST_TIME_USERS
      A raw data table that stores details of PSUs that use a PIS service for the first time.

    • ACCOUNT_RAW_DATA_FOR_PCA_BCA
      A summarized raw data table that stores the account IDs to identify the Personal Current Account (PCA) or Bank Customer Account (BCA).

    • FUNDS_RAW_DATA_FOR_PCA_BCA
      A summarized raw data table that stores the account IDs to identify the PCA or BCA.

    • PAYMENT_RAW_DATA_FOR_PCA_BCA
      A summarized raw data table that stores the account IDs to identify the PCA or BCA.

Generating reports using summarized data

Using the OB_REPORTING_SUMMARIZED_DB you can generate the following reports according to the OBIE templates:

  • Template 1 - P & A (OBIE)
  • Template 2 - Response Outliers (OBIE)
  • Template 3 - Auth Efficacy (OBIE)
  • Template 4 - PSU Adoption (OBIE)
  • Template 5 - Payments Adoption (OBIE)
  • Template 6 - TPP Volumes (OBIE)
  • Template 7 - Daily Volumes (OBIE)
 Click here to see more details

Using the table in the OB_REPORTING_SUMMARIZED_DB database, the following report templates in OBIE can be generated.

Template 1 - P & A (OBIE)

Required data point nameTable to referHow to capture data
Report DateThe respective table you get the date fromGet the year-month-date values from the table
ASPSP Brand IDN/AA fixed value for a bank.
Endpoint IDENDPOINT_DETAILS

Download the SQL script from here to create the ENDPOINT_DETAILS in your MS SQL database.

A fixed value. Get the resource from the respective table and map that with the ENDPOINT_ID table.

Core/Non Core HoursEither Core or Non-CoreThis column should be either CORE or NON-CORE.
Up TimeN/ANeed to get from an external tool.
Planned DowntimeN/AValue needs to be decided by the bank.
Unplanned DowntimeN/ANeed to get from an external tool.
Median TTLB Response TimePA_CORE or PA_NON_COREGet the AVG_TTLB value from the relevant table per day per time per endpoint.
Median TTFB Response TimePA_CORE or PA_NON_COREGet the AVG_TTFB value from the relevant table per day per time per endpoint.
Median Response Payload SizePA_CORE or PA_NON_COREGet the AVG_RESPONSE_PAYLOAD_SIZE value from the relevant table per day per time per endpoint.
Max Payment Initiations Per Second (PIPS)CORE_PAYMENT_INITIATION_DETAILS or NON_CORE_PAYMENT_INITIATION_DETAILSGet the payment initiations per second per day.

Template 2 - Response Outliers (OBIE)

Required data point nameTable to refer How to capture data
Report DateThe respective table you get the date fromGet the year-month-date values from the table.
TimeThe respective table that you get the time fromGet the hour-minute-second values from the table.
ASPSP Brand IDN/AA fixed value for a bank.
Endpoint IDENDPOINT_DETAILSA fixed value. Get the resource from the respective table and map that with ENDPOINT_ID table.
TTLB Response TimeRESPONSE_OUTLIERGet the TTLB value per day per time per endpoint.
TTFB Response TimeRESPONSE_OUTLIERGet the TTFB value per day per time per endpoint.
TPP Application IDRESPONSE_OUTLIERGet APP_SOFTWARE_ID value per day per time per endpoint.
Response Payload SizeRESPONSE_OUTLIERGet RESPONSE_PAYLOAD_SIZE value per day per time per endpoint.

Template 3 - Auth Efficacy (OBIE)

Required data point nameTable to referHow to capture data
MonthThe respective table you get the month fromGet the year-month values from the table.
ASPSP Brand IDN/AA fixed value for a bank.
Authentication TypeThe respective tablesEach table contains a column with this data.
API TypeThe respective tablesEach table contains a column with this data.
API Request TPP ChannelThe respective tablesEach table contains a column with this data.
ASPSP Authentication ChannelN/AThe value should be web.
Consents Requiring AuthenticationCONSENT_REQ_AUTHENTICATIONGet the TOTAL_CONSENT_REQ_AUTHENTICATION value from the column.
Authentications Attempted by PSUsAUTHENTICATION_ATTEMPTEDGet the TOTAL_ATTEMPTS_TO_AUTHENTICATE value from the column.
Authentications Abandoned by PSUs
Get this data by deducting the value of TOTAL_ATTEMPTS_TO_AUTHENTICATE from the value of TOTAL_CONSENT_REQ_AUTHENTICATION.
Authentications SucceededAUTHENTICATION_SUCCESSFULGet the SUCCESSFUL_AUTHENTICATIONS value from the column.
Authentications Failed
Get this data by deducting the value of SUCCESSFUL_ AUTHENTICATIONS from the value of TOTAL_ATTEMPTS_TO_AUTHENTICATE.
Confirmations RequiredCONFIRMATION_DETAILS Get the AuthorisationRequired count per month.
Confirmations Accepted by PSUsCONFIRMATION_DETAILS Get the Authorised count per month.
Confirmations Rejected by PSUsCONFIRMATION_DETAILS Get the Rejected count per month.

Template 4 - PSU Adoption (OBIE)

Required data point nameTable to referHow to capture data
ReportMonthThe respective table you get the month fromGet the year-month values from the table.
ASPSP Brand IDN/AA fixed value for a bank.
Retail/Business PSUsPSU_DETAILS, FIRST_TIME_USERS
The retail and business PSU details are available in the core banking system. The provided raw data tables include the PSU_IDs that can be used.
PSUs used AIS Services for the first timeFIRST_TIME_USERS
The retail and business PSU details are available in the core banking system. The provided raw data tables include the PSU_IDs that used the AIS services for the first time. You can use the PSU_ID and get the PSU count that used the services for the first time in a particular month.
PSUs used PIS Services for the first timeFIRST_TIME_USERSThe retail and business PSU details are available in the core banking system. The provided raw data tables include the PSU_IDs that used the PIS services for the first time. You can use the PSU_ID and get the PSU count that used the services for the first time in a particular month.
Total PSUs used AIS ServicesPSU_DETAILSThe retail and business PSU details are available in the core banking system. The provided raw data tables include the PSU_IDs that used the AIS services for the first time. You can use the PSU_ID and get the total PSU count that used the services for the first time in a particular month.
Total PSUs used PIS ServicesPSU_DETAILSThe retail and business PSU details are available in the core banking system. The provided raw data tables include the PSU_IDs that used the PIS services for the first time. You can use the PSU_ID and get the total PSU count that used the services for the first time in a particular month.
Unique PSUs used both AIS and PIS Services for the first timeFIRST_TIME_USERS
The retail and business PSU details are available in the core banking system. The provided raw data tables include the PSU_IDs that used both AIS and PIS services for the first time. You can use the PSU_ID and get the PSU count that used the services for the first time in a particular month.
Total unique PSUs used both AIS and PIS ServicesPSU_DETAILSThe retail and business PSU details are available in the core banking system. The provided raw data tables include the PSU_IDs that used both AIS and PIS services for the first time. You can use the PSU_ID and get the total PSU count that used the services for the first time in a particular month.

Template 5 - Payments Adoption (OBIE)

Required data point nameTable to refer

How to capture data

ReportMonthThe respective table you get the month fromGet the year-month values from the table.
ASPSP Brand IDN/AA fixed value for a bank.
Payment TypeEither UK.OBIE.BACS or UK.OBIE.CHAPSThis column value should be either UK.OBIE.BACS or UK.OBIE.CHAPS.
PSU Authorisations for single Domestic Paymentsor CHAPS_REQUEST_STATUSSelect the REQUEST_COUNT from relevant the payment type table where PAYMENT_TYPE = '/domestic-payment-consents' and AUTHORISATION_STATUS = 'Authorised'.
Successful single Domestic PaymentsBACS_REQUEST_STATUS or CHAPS_REQUEST_STATUSSelect the REQUEST_COUNT from the relevant payment type table where PAYMENT_TYPE = '/domestic-payment' and (AUTHORISATION_STATUS = 'AcceptedSettlementInProgress' or AUTHORISATION_STATUS = 'AcceptedSettlementCompleted').
Single Domestic Payments failed for Business ReasonsFAILED_BACS_REQUESTS or FAILED_CHAPS_REQUESTSGet the sum of REQUEST_COUNT from the relevant payment type table where STATUS_CODE LIKE '%4%'.
Single Domestic Payments failed for Technical ReasonsFAILED_BACS_REQUESTS or FAILED_CHAPS_REQUESTSGet the REQUEST_COUNT from the relevant payment type table where STATUS_CODE = 500.
Single Domestic Payments RejectedBACS_REQUEST_STATUS or CHAPS_REQUEST_STATUSSelect the REQUEST_COUNT from the relevant payment type table where (PAYMENT_TYPE = '/domestic-payment-consents' or PAYMENT_TYPE = '/domestic-payments') and AUTHORISATION_STATUS = 'Rejected'.
Total payments included in Bulk/Batch filesFILE_PAYMENTGet the TOTAL_PAYMENTS for the relevant payment type where LOCAL_INSTRUMENT = Payment Type.
Successful International payments involving currency conversionBACS_INTERNATIONAL or CHAPSS_INTERNATIONAL

The currency conversion details are available in the core banking system. The given tables provide all the successful international-payment details with the consent id for each payment type.

Template 6 - TPP Volumes (OBIE)

Required data point name Table to refer

How to capture data

ReportMonthThe respective table you get the month fromGet the year-month values from the table.
ASPSP Brand IDN/AA fixed value for a bank.
Total AISPs Registered (at 1st of month)
Zero for the starting month and for the following months the cumulative monthly number of AISPs registered of the last month.
AISP AdditionsAISP_VOLUMESGet data from the AISP_COUNT column where STATUS='Registered'.
AISP DeregistrationsAISP_VOLUMESGet data from the AISP_COUNT column where STATUS='Removed'.
Cumulative Monthly number of AISPs

Use the following formula:

(Total no of AISPs registered (at 1st of the month) + AISP Additions - AISP deregistrations)

Total PISPs Registered (at 1st of month)
Zero for the starting month and for the following months the cumulative monthly number of PISPs registered of last month.
PISP AdditionsPISP_VOLUMESGet data from the PISP_COUNT column where STATUS='Registered'.
PISP DeregistrationsPISP_VOLUMESGet data from the PISP_COUNT column where STATUS='Removed'.
Cumulative Monthly number of PISPs

Use the following formula:

(Total no of PISPs registered (at 1st of month) + PISP Additions - PISP reregistrations)

Total CBPIIs Registered
Zero for starting the month and for the following months the cumulative monthly number of CBPIIs registered of last month.
CBPII AdditionsCBPII_VOLUMESGet data from CBPII_COUNT column where STATUS='Registered'.
CBPII DeregistrationsCBPII_VOLUMESGet data from CBPII_COUNT column where STATUS='Removed'.
Cumulative Monthly number of CBPIIs

Use the following formula:

(Total CBPIIS Registered (at 1st of the month) + CBPII Additions - CBPII Deregistrations)

Template 7 - Daily Volumes (OBIE)

Required data point name

Table to refer

How to capture data
ReportDateThe respective table you get the data fromGet the year-month-date values from the table.
ASPSP Brand IDN/AA fixed value for a bank.
Endpoint IDENDPOINT_DETAILS

Download the SQL script from here to create the ENDPOINT_DETAILS in your MS SQL database.

This value is a fixed value. you can get the resource from the respective table and map that with ENDPOINT_ID table.

PCA API CallsACCOUNT_RAW_DATA_FOR_PCA_BCA, PAYMENT_RAW_DATA_FOR_PCA_BCA, FUNDS_RAW_DATA_FOR_PCA_BCA
The PCA/BCA details are available in the core banking system. The provided raw data tables include the ACCOUNT_ID of accounts that can be used to identify whether it's a PCA or BCA.
BCA API CallsACCOUNT_RAW_DATA_FOR_PCA_BCA, PAYMENT_RAW_DATA_FOR_PCA_BCA, FUNDS_RAW_DATA_FOR_PCA_BCAThe PCA/BCA details are available in the core banking system. The provided raw data tables include the ACCOUNT_ID of accounts that can be used to identify whether it's a PCA or BCA.
Successful API Calls (200, 201 or 204 codes)STATUS_CODE_SUMMERY
The table contains the volume of API calls per status code per endpoint and per date. Filter the STATUS_CODE values of 200,201 and 204 per endpoint per day and get the sum of those.
Failed API Calls Business Reasons (4xx Codes)STATUS_CODE_SUMMERY
The table contains the volume of API calls per status code per endpoint and per date. Filter the STATUS_CODE values of 4xx per endpoint per day and get the sum of those.
Failed API Calls Technical Reasons (5xx Codes)STATUS_CODE_SUMMERY and AUTHORISATION_SUMMERY
The table contains the volume of API calls per status code per endpoint and per date. Filter the STATUS_CODE values of 5xx per endpoint per day and get the sum of those.
API Calls Rejected StatusSTATUS_CODE_SUMMERY
Get the sum of the above 2 values (Failed API Calls Business Reasons (4xx Codes) and Failed API Calls Technical Reasons (5xx Codes)) and add the value of Rejected statuses per endpoint per day from the AUTHORIZATION_SUMMERY table.
TPPs Calling APIsDIFFERENT_TPPSThe count of the DISTINCT_TPPS per elected resource per day.
API Calls Not Authorised by PSUAUTHORISATION_SUMMERYThe count of the Rejected status per endpoint per day.
API Calls Authorised but Not ConsumedAUTHORISATION_SUMMERY

Get the count of Authorised status per endpoint per day and deduct the count of AcceptedStatementInProcess status per endpoint per day.


Multi Auth API Calls SuccessfulMULTI_AUTH_DETAILS

Get the count of Authorised statuses against /domestic-payment-consent per day.

Multi Auth API Calls FailedMULTI_AUTH_DETAILSGet the count of Rejected statuses against /domestic-payment-consent per day.


Configuring Data Reporting

The following sections explain how to configure Data Reporting:

The Summarisation feature in Data Reporting is supported only for MSSQL database servers.

Configuring Open Banking Key Manager

Open the <WSO2_OB_KM_HOME>/repository/conf/finance/open-banking.xml file and add the following configurations below the </Analytics> tag. 

  • Replace the <WSO2_OB_BI_HOST> placeholder with the hostname of your WSO2 Open Banking Business Intelligence (WSO2 OB BI) server and configure other parameters accordingly. 
  • To publish the statistics set the value of the <Enabled> tag to true.
<BIServer>
	<MIReporting>
		<Enabled>true</Enabled>
		<ServerURL>{tcp://<WSO2_OB_BI_HOST>:7616}</ServerURL>
		<Username>admin</Username>
		<Password>admin</Password>
	</MIReporting>
</BIServer>

Configuring Open Banking API Manager

Configuring open-banking.xml

Open the <WSO2_OB_APIM_HOME>/repository/conf/finance/open-banking.xml file and add the following configurations below the </Analytics> tag. 

  • Replace the <WSO2_OB_BI_HOST> placeholder with the hostname of your WSO2 Open Banking Business Intelligence (WSO2 OB BI) server and configure other parameters accordingly. 
  • To publish the statistics set the value of the <Enabled> tag to true.
<BIServer>
	<MIReporting>
		<Enabled>true</Enabled>
		<ServerURL>{tcp://<WSO2_OB_BI_HOST>:7616}</ServerURL>
		<Username>admin</Username>
		<Password>admin</Password>
	</MIReporting>
</BIServer>

Configuring handlers

Open the <WSO2_OB_APIM_HOME>/repository/resources/api_templates/velocity_template.xml file and do the following:

  1. Add the APIInvocationLatencyStats handler just after the <handlers xmlns="http://ws.apache.org/ns/synapse"> tag.

    <handler class="com.wso2.finance.open.banking.management.information.reporting.data.publisher.APIInvocationLatencyStatsHandler"/>
  2. Add the APIInvocationDataPublisher handler as the last ob-specific handler, right before the ## end of ob-specific handlers before the APIManagerExtensionHandler line. 

    <handler class="com.wso2.finance.open.banking.management.information.reporting.data.publisher.APIInvocationDataPublisher" />
    
    ## end of ob-specific handlers before the APIManagerExtensionHandler

Republish all the APIs for the above changes to take effect.

Capturing data during invocation failure scenarios

This is available only as a WUM update and is effective from December 20, 2019 (12-20-2019). For more information on updating WSO2 Open Banking, see  Updating WSO2 Products .

  1. Go to the <WSO2_OB_APIM_HOME>/repository/deployment/server/synapse-configs/default/sequences directory.
  2. Create an XML file named api_invocation_fail_data_publisher.xml with the following content: 

    <sequence name="_api_invocation_fail_data_publisher_"
    	xmlns="http://ws.apache.org/ns/synapse">
    	<property name="error_message_type" value="application/xml"/>
    	<class name="com.wso2.finance.open.banking.gateway.uk.OBErrorDataPublisher"/>
    </sequence>
  3. Open the <WSO2_OB_APIM_HOME>/repository/deployment/server/synapse-configs/default/sequences/_throttle_out_handler_.xml file and add the  OBErrorDataPublisher  class under the sequence tag. 

    <class name="com.wso2.finance.open.banking.gateway.uk.OBErrorDataPublisher"/>
  4. Open the <WSO2_OB_APIM_HOME>/repository/deployment/server/synapse-configs/default/sequences/_auth_failure_handler_.xml file and add the  OBErrorDataPublisher  class after the AuthFailureResponseCreationMediator class as follows:

    <class name="com.wso2.finance.open.banking.gateway.uk.OBErrorDataPublisher"/> 

    If you can't locate the AuthFailureResponseCreationMediator class in the <WSO2_OB_APIM_HOME>/repository/deployment/server/synapse-configs/default/sequences/

    _auth_failure_handler_.xml file, please see Displaying the error response for access token failures.

Configuring Open Banking Business Intelligence

Configuring databases

Create the following databases in your database server to store raw and summarized data.

  • openbank_ob_reporting_statsdb
  • openbank_ob_reporting_summarizeddb

Configuring datasources

Update the <WSO2_OB_BI_HOME>/conf/worker/deployment.yaml file by adding the datasource configurations for OB_REPORTING_DB and OB_REPORTING_SUMMARIZED_DB

  • Update the jdbcUrlusernamepassword and driverClassName in the datasource entry with your database configurations.
  • Add the configurations after the TRA_DB datasource configurations.
    A sample configuration is given below:
- name: OB_REPORTING_DB
    description: The datasource used to store statistics for OB MI module
    jndiConfig:
      name: jdbc/OB_REPORTING_DB
    definition:
      type: RDBMS
      configuration:
        jdbcUrl: 'jdbc:sqlserver://192.168.108.23:1433;databaseName=openbank_ob_reporting_statsdb'
        username: 'root'
        password: 'root'
        driverClassName: 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
        maxPoolSize: 20
        idleTimeout: 60000
        connectionTestQuery: SELECT 1
        validationTimeout: 30000
        isAutoCommit: false

  - name: OB_REPORTING_SUMMARIZED_DB
    description: The datasource used to store summarized data for OB MI module
    jndiConfig:
      name: jdbc/OB_REPORTING_SUMMARIZED_DB
    definition:
      type: RDBMS
      configuration:
        jdbcUrl: 'jdbc:sqlserver://192.168.108.23:1433;databaseName=openbank_ob_reporting_summarizeddb'
        username: 'root'
        password: 'root'
        driverClassName: 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
        maxPoolSize: 20
        idleTimeout: 60000
        connectionTestQuery: SELECT 1
        validationTimeout: 30000
        isAutoCommit: false

Adding summarization script
  1. Download the OB_REPORT_SUMMERIZATION_MSSQl.siddhi script from here.

  2. Place the script in the <WSO2_OB_BI_HOME>/deployment/siddhi-files directory.

    The Siddhi script linked in step 1 is updated in the latest WUM updated solution. If your setup contains WUM updates released on or after April 07, 2021 (04-07-2021), follow the steps below to use the updated Siddhi scripts.

     Click here to see how to use the updated Siddhi scripts...
    1. Run the relevant database script in the <WSO2_OB_BI_HOME>/resources/finance/dbscripts/uk/migration-publishing-org-id/ob_stats_db directory to add the ORG_ID column to the APP_REG_RAW_DATA table.
    2. Open the <WSO2_OB_APIM_HOME>/repository/conf/finance/open-banking.xml file and enable data publishing. Set the following configuration under the <BIServer> tag, to true

      <DataPublishing>
      	<PublishOrganizationID>true</PublishOrganizationID>
      </DataPublishing>
    3. Open the <WSO2_OB_APIM_HOME>/repository/conf/api-manager.xml file and under the <ApplicationAttributes> tag, add the following configurations: 

      <Attribute required="false">
      	<Name>org_id_production</Name>
      	<Description>Organization ID of the Production</Description>
      </Attribute>
      <Attribute required="false">
      	<Name>org_id_sandbox</Name>
      	<Description>Organization ID of the Production</Description>
      </Attribute>
    4. Update the Siddhi scripts for raw-data tables. 
      1. Copy the scripts in the <WSO2_OB_BI_HOME>/resources/finance/siddhi-files/uk directory.
      2. Paste them in the <WSO2_OB_BI_HOME>/deployment/siddhi-files directory and replace the existing scripts.
    5. Update the Siddhi scripts for summatization-data tables.
      1. Copy <WSO2_OB_BI_HOME>/resources/finance/siddhi-files/uk/mi-reporting/3.0/OB_REPORT_SUMMERIZATION_MSSQl.siddhi.
      2. Paste it in the <WSO2_OB_BI_HOME>/deployment/siddhi-files/ directory and replace the existing OB_REPORT_SUMMERIZATION_MSSQl.siddhi script.

Restart the WSO2 Open Banking Business Intelligence, Key Manager and API Manager servers in the mentioned order, for the changes to take place.

Fix the issue in calculating the TPP count

This is available only as a WUM update and is effective from April 07, 2021 (04-07-2021). For more information on updating WSO2 Open Banking, see Updating WSO2 Products.

 Click here to see how to apply the fix...

Step 1 - Update database 

  1. Run the relevant database script in the <WSO2_OB_BI_HOME>/resources/finance/dbscripts/uk/migration-publishing-org-id/ob_stats_db directory to add the ORG_ID column to the APP_REG_RAW_DATA table.
  2. Migrate your existing data in the APP_REG_RAW_DATA table by adding the correct ORG_IDs of the registered applications.

Step  2 - Enable data publishing

This is to enable publishing TPP's Organization-ID to the APP_REG_RAW_DATA database table.

  1. Open the <WSO2_OB_APIM_HOME>/repository/conf/finance/open-banking.xml file.
  2. Enable data publishing by setting the following configuration under the <BIServer> tag, to true

    <DataPublishing>
    	<PublishOrganizationID>true</PublishOrganizationID>
    </DataPublishing>
  3. Open the <WSO2_OB_APIM_HOME>/repository/conf/api-manager.xml file.
  4. Under the <ApplicationAttributes> tag, add the following configurations: 

    <Attribute required="false">
    	<Name>org_id_production</Name>
    	<Description>Organization ID of the Production</Description>
    </Attribute>
    <Attribute required="false">
    	<Name>org_id_sandbox</Name>
    	<Description>Organization ID of the Production</Description>
    </Attribute>
  5. Restart WSO2 Open Banking API Manger server.
  6. Replace the existing AppRegistrationDataSubmissionApp.siddhi.
    1. Copy <WSO2_OB_BI_HOME>/resources/finance/siddhi-files/uk/AppRegistrationDataSubmissionApp.siddhi.
    2. Paste it in the <WSO2_OB_BI_HOME>/deployment/siddhi-files/ directory and replace the existing AppRegistrationDataSubmissionApp.siddhi file.

Step 3 - Enable TPP calculation

  1. Replace the OB_REPORT_SUMMERIZATION_MSSQl.siddhi file.
    1. Copy <WSO2_OB_BI_HOME>/resources/finance/siddhi-files/uk/mi-reporting/3.0/OB_REPORT_SUMMERIZATION_MSSQl.siddhi.
    2. Paste it in the <WSO2_OB_BI_HOME>/deployment/siddhi-files/ directory and replace the existing OB_REPORT_SUMMERIZATION_MSSQl.siddhi file.
  2. The TPPs can register applications using Dynamic Client Registration (DCR), Manual Client Registration (MCR), or Signup workflow

    If you allow to TPP application registration using Signup workflows (using the WSO2 API Store), it is mandatory to use a QSeal certificate during the production/sandbox key generation.


Data Reporting API

If you're using a customised consent authentication web application, you may use the Data Reporting API to publish events from the application. Invoke the Data Reporting API in all the relevant places to publish the PSU and authorisation data to the reporting databases.

In the following scenarios, events are captured using the consent authorisation web app:

  • The user visiting the consent page
  • After the user authorising/denying the consent

For sample requests, see Data Reporting API.