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/.
Integrating with the Core Banking System
Accounts API
Account Information Retrieval
In WSO2 Open Banking, integration of accounts flow with the core banking system is utilized during account information retrieval requests.
The URL of the API endpoints of the core banking system, which corresponds to the account's information retrieval requests, should be configured in the In
sequences
of the Accounts API. For more information, seeĀ configuring sequence files.
In the Open Banking accounts flow, the WSO2 Open Banking solution manages the consent initiation and authorisation. When the TPP makes account information retrieval requests, the WSO2 Open Banking solution validates the consent request, and upon successful validation, the consent-related information is directed to the core banking system in the form of a header,Ā Account-Request-Information.
This header is a signed JWT, which needs to be decoded by the core banking system. A sample decoded JSON is given below:
{ "accountRequestIds": [ { "accountId": [ "30080012343456" ], "transactionFromDateTime": "2020-07-13T18:47:22.521+05:30", "transactionToDateTime": "2020-07-16T18:47:22.522+05:30", "permissions": [ "ReadAccountsBasic", "ReadAccountsDetail", "ReadBalances", "ReadBeneficiariesBasic", "ReadBeneficiariesDetail", "ReadDirectDebits", "ReadProducts", "ReadStandingOrdersBasic", "ReadStandingOrdersDetail", "ReadTransactionsBasic", "ReadTransactionsCredits", "ReadTransactionsDebits", "ReadTransactionsDetail", "ReadStatementsBasic", "ReadStatementsDetail", "ReadOffers", "ReadParty", "ReadPartyPSU", "ReadScheduledPaymentsBasic", "ReadScheduledPaymentsDetail", "ReadPAN" ] } ] }
In the core banking system, the required validations should be performed, and the response is built, according to the requirements of the Open Banking Accounts specification.
Payments API
The URL of the API endpoints of the core banking system, which corresponds to the payment submission requests, should be configured in the In
sequences
of the Payments API. For more information, seeĀ configuring sequence files.
Payments Submission
In WSO2 Open Banking, integration of payments flow with the core banking system is utilised during payment submission requests.
Single Authorisation
In the Open Banking payments flow, the WSO2 Open Banking solution manages the consent initiation and authorisation. When the TPP makes a payment submission request, it is validated, and upon successful validation, the request is directed to the core banking system. The account ID selected by the Payment Service User (PSU), is sent in the form of an encoded header,Ā Account-ID.
Multiple- Authorisation
An account can have only one owner or more than one owner. For multiple owners, each and every owner has to authorise the account (multiple-authorisation) while it is single-authorisation for one owner. Let's look at a multiple authorisation scenario in the Payments API.
When the TPP makes a multiply-authorised payment submission request, it is validated, and upon successful validation, the request is directed to the core banking system. The payment submission information is sent in the form of an encoded header, Multiple-Authorization-Information.
This header is a signed JWT, which needs to be decoded by the core banking system. A sample decoded JSON is given below:
{Ā "Status": {Ā Ā Ā "status": "AwaitingFurtherAuthorisation"Ā },Ā "NumberReceived": 1,Ā "LastUpdateDateTime": 1594999807000,Ā "ExpirationDateTime": 1595258987000,Ā "NumberRequired": 2 }
When it is multiply-authorised, the bank needs to check if each owner has authorised the request. The bank retrieves the status of the authorisation using the GET/Status call.
Funds Confirmation
In WSO2 Open Banking, integration of payments flow with the core banking system is utilised during funds confirmation requests.
In the Open Banking payments flow, the WSO2 Open Banking solution manages the consent initiation and authorisation. When the TPP makes a funds confirmation request for domestic payments, internationalĀ payments, and international-scheduled payments; it is validated. Upon successful validation, the request is directed to the core banking system. The funds-confirmation-related information is directed to the core banking system in the form of a header,Ā Funds-Confirmation-Information.Ā
This header is a signed JWT, which needs to be decoded by the core banking system. A sample decoded JSON is given below:
{ "Amount": "30.80", "Currency": "GBP", "Identification": "30080012343456" }
Idempotency key
Idempotency key is used as an identifier to check a replication of an action. The use cases of the idempotency key are: Payment initiation request Payment submission request
In the core banking system, the required validations should be performed, and the response is built, according to the requirements of theĀ Open Banking Payments specification.
Confirmation of Funds API
In WSO2 Open Banking, integration of confirmation of funds consent flow with the core banking system is utilised during the confirmation of funds request.
The URL of the API endpoints of the core banking system, which corresponds to the fund's confirmation requests, should be configured in the In sequences
of the Funds Confirmation API. For more information, see configuring sequence files.
In the Open Banking funds confirmation consent flow, the WSO2 Open Banking solution manages the fund's confirmation consent requests and authorisation. When the TPP makes a fund's confirmation request (POST /funds-confirmations
), it is validated against the consent details, and directed to the core banking system. Similar to the payment's submission request, the account ID of the consent is sent in the request as an encoded header, accountId.
In the core banking system, the required validations should be performed, and the response is built, according to the requirements of theĀ Open Banking Confirmation of Funds specification.
Accounts Retrieval Endpoints
In some banks, some PSUs may have a certain number of accounts, but not all accounts have the ability to be shared externally or to make a payment online. In a bank, the shareable account list and the payable account list can either be the same or different. In the default WSO2 Open Banking solution, at least two APIs are expected to return shareable and payable accounts when passing the user_id, and the given JSON response must be returned. Then it automatically loads the accounts list in the consent page. The back end endpoint for the Payable Accounts API is used to get the payable accounts of the user during the authentication flow. If Third Party Application (TPP) has not provided any debtor account in payment initiation request, PSU is able to select one of these payable accounts when providing the consent to the payment. If the TPP has sent the debtor account in the initiation request, this API is used to validate the provided account against actual payable accounts. consentId and userId (PSU ID) requires to be sent in the URL as query parameters when calling this API. The back end endpoint for payable accounts retrieval can be configured in the Required parameters can be passed as query parameters to those endpoints. An example of configuring the endpoint to retrieve payable accounts: Shareable Accounts API is used for two purposes as follows. Validate the debtor account if the PISP sends it in the initiation request Populate the payment accounts on the consent page if the initiation request does not contain a debtor account. consentId and userId (PSU ID) requires to be sent in the URL as query parameters when calling this API. The backend endpoint for shareable accounts retrieval can be configured in Required parameters can be passed as query parameters to those endpoints. An example of configuring the endpoint to retrieve sharable accounts: Payable Accounts API
open-banking.xml
file as below. By default, mock backend deployed in the API Manager is configured.<PayableAccountsRetriveEndpoint>http://<WSO2_OB_APIM_HOST>:9763/open-banking/services/bankaccounts/bankaccountservice/payable-accounts</PayableAccountsRetriveEndpoint>
<PayableAccountsRetriveEndpoint>http://<WSO2_OB_APIM_HOST>:9443/as400/payable-accounts/{userId}</PayableAccountsRetriveEndpoint>
{
"data": [{
"account_id": "30080098971337",
"display_name": "account 1",
"authorizationMethod": "single",
}
{
"account_id": "30080098971337",
"display_name": "30080098971337",
"authorizationMethod": "multiple",
"authorizationUsers": [{
"customer_id": "123",
"user_id": "psu1@wso2.com@carbon.super"
},
{
"customer_id": "456",
"user_id": "psu2@wso2.com@carbon.super"
}
]
}
]
}
Shareable Accounts API
open-banking.xml
file, by default this is connected to the mock back end in the API Manager server.<SharableAccountsRetriveEndpoint>http://<WSO2_OB_APIM_HOST>:9763/open-banking/services/bankaccounts/bankaccountservice/sharable-accounts</SharableAccountsRetriveEndpoint>
<SharableAccountsRetriveEndpoint>http://<WSO2_OB_APIM_HOST>:9443/as400/sharable-accounts/{userId}</SharableAccountsRetriveEndpoint>