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/.
Deploying APIs for Berlin
This document guides you with the assumption that you have set up WSO2 Open Banking Key Manager, and WSO2 Open Banking API Manager in separate servers.Â
Configuring the velocity_template.xml file
The <WSO2_OB_APIM_HOME>/repository/resources/api_templates/velocity_template.xml
 file checks the deployed specification. It is by default configured to support berlin
specification with the following handlers.Â
Replace the <WSO2_OB_KM_HOST>
placeholder with the hostname of your Open Banking Key Manager server.
#if($apiObj.additionalProperties.get("ob-spec") == "berlin") ## add ob-berlin specific handlers before the APIManagerExtensionHandler <handler class="com.wso2.finance.open.banking.gateway.api.schema.validation.RequestSchemaValidationHandler"/> <handler class="com.wso2.finance.open.banking.berlin.consent.enforcement.ConsentEnforcementHandler"> <property name="accountValidationUrl" value="https://<WSO2_OB_KM_HOST>:9446/consent/berlin110/accounts-validation"/> <property name="keyStore" value="./repository/resources/security/wso2carbon.jks"/> <property name="password" value="wso2carbon"/> <property name="alias" value="wso2carbon"/> </handler> ## end of Berlin-specific handlers #end
Configuring the sequence file
The <WSO2_OB_APIM_HOME>/repository/resources/finance/apis/berlin-group.org/PSD2API_1.3.3/dynamic-endpoint-insequence-1.3.3.xmlÂ
file contains in sequences for accounts, payments and confirmation of funds APIs.
- TheÂ
<WSO2_OB_KM_HOST>
placeholders in this file need to be replaced by the hostname of your WSO2 Open Banking Key Manager server. The WSO2 Open Banking API Manager includes a mock bank backend which is configured by default in the in sequences. Ideally, the occurrences ofÂ
https://<WSO2_OB_APIM_HOST>:9443/open-banking-berlin/services/<API_NAME>
 should be replaced by the core banking system's API endpoints corresponding to the production and sandbox environments respectively.ÂFor more information, see Integrating Core Banking System for Berlin
If you are using the following deployment options, update the placeholders as follows:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="dynamic-endpoint-insequence-1.3.3.xml"> <property name="endpointURI" expression="get-property('To')"/> <switch source="$ctx:endpointURI"> <case regex=".*payments.*"> <header name="TPP-Unique-ID" scope="transport" expression="get-property('api.ut.consumerKey')"/> <filter source="$ctx:endpointURI" regex=".*authorisations.*"> <then> <header name="To" value="https://<WSO2_OB_KM_HOST>:9446/consent/berlin130/authorisation"/> </then> <else> <filter source="get-property('api.ut.HTTP_METHOD')" regex="POST"> <then> <header name="To" value="https://<WSO2_OB_KM_HOST>:9446/consent/berlin130/payments"/> <filter source="$ctx:endpointURI" regex="^((?!\/bulk-payments).)*$"> <then> <payloadFactory media-type="json"> <format>[$1]</format> <args> <arg evaluator="json" expression="$"/> </args> </payloadFactory> </then> </filter> </then> <else> <property name="resourcePath" scope="default" type="STRING" value=""/> <property expression="get-property('resourcePath')" name="REST_URL_POSTFIX" scope="axis2" type="STRING"/> <header name="To" expression="fn:concat('https://<WSO2_OB_KM_HOST>:9446/consent/berlin130/payments', get-property('api.ut.resource'))"/> </else> </filter> </else> </filter> </case> <case regex=".*/accounts.*"> <filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION"> <then> <header name="To" value="https://<WSO2_OB_APIM_HOST>:9443/open-banking-berlin/services/accounts"/> </then> <else> <header name="To" value="https://<WSO2_OB_APIM_HOST>:9443/open-banking-berlin/services/accounts"/> </else> </filter> </case> <case regex=".*/card-accounts.*"> <filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION"> <then> <header name="To" value="https://<WSO2_OB_APIM_HOST>:9443/open-banking-berlin/services/accounts"/> </then> <else> <header name="To" value="https://<WSO2_OB_APIM_HOST>:9443/open-banking-berlin/services/accounts"/> </else> </filter> </case> <case regex=".*/consents.*"> <filter source="$ctx:endpointURI" regex=".*authorisations.*"> <then> <header name="To" value="fn:concat('https://<WSO2_OB_KM_HOST>:9446/consent/berlin130/authorisation/accounts', get-property('api.ut.resource'))"/> </then> <else> <property action="remove" name="REST_URL_POSTFIX" scope="axis2"/> <header name="To" expression="fn:concat('https://<WSO2_OB_KM_HOST>:9446/consent/berlin130' , get-property('api.ut.resource'))"/> <header name="TPP-Unique-ID" expression="get-property('api.ut.consumerKey')" scope="transport"/> <header name="App-ID" expression="get-property('api.ut.application.id')" scope="transport"/> <rewrite> <rewriterule> <action type="replace" regex="\/consents" value="\/accounts" fragment="path"/> </rewriterule> </rewrite> </else> </filter> </case> <case regex=".*/funds-confirmations.*"> <filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION"> <then> <header name="To" value="https://<WSO2_OB_APIM_HOST>:9443/open-banking-berlin/services/cof"/> </then> <else> <header name="To" value="https://<WSO2_OB_APIM_HOST>:9443/open-banking-berlin/services/cof"/> </else> </filter> </case> </switch> <property name="ENDPOINT_ADDRESS" expression="get-property('To')"/> </sequence>
WSO2 Open Banking Berlin has the Given below is the procedure to configure and publish the Before you begin Sign in to the API Publisher ( Click ADD NEW API. Select I Have an Existing API option. Select the Swagger File option and browse for the swagger definition by clicking on the Browse button. Select the Click Start Creating. You are directed to the Design API stage. Design General Details are loaded for you in the Design tab. You need to set the Click Upload In Flow and select the Click Next: Manage to navigate to the next level. Expand API Properties and add the following as Additional properties and click + button to proceed. Click Save & Publish. Select the CREATE NEW VERSION tab. Follow the versioning format and define the new version. Click Done. Users need to define the correct version for the API and choose the swagger and In sequence files appropriately. The directory path to the files in the solution pack helps you to choose the correct file. For example, choose the swagger and in sequence files from Click Save & Publish. To get the existing subscriptions to the new version, follow the steps below:Configuring an API
NextGenPSD2XS2AFramework-1.3.3
API which contains the v1.3 resource for Accounts, Payments and Confirmation of Funds flows. The swagger definition for this API is available in the <WSO2_OB_APIM_HOME>/repository/resources/finance/apis/berlin-group.org/PSD2API_1.3.3/psd2-api_1.3.3_20190412.yaml.
NextGenPSD2XS2AFramework-1.3.3
API. https://<WSO2_OB_KM_HOST>:9446/carbon
. To create users and roles, see configuring users and roles, which elaborates the steps to create the user as the API publisher.https://
<WSO2_OB_APIM_HOST>
:9443/publisher
) with the credentials for mark@gold.com .<WSO2_OB_APIM_HOME>/repository/resources/finance/apis/berlin-group.org/PSD2API_1.3.3/psd2-api_1.3.3_20190412.yaml
file.context
value as xs2a
<WSO2_OB_APIM_HOME>/repository/resources/finance/apis/berlin-group.org/PSD2API_1.3.3/dynamic-endpoint-insequence-1.3.3.xml
In sequence file.
Property Name ob-spec Property Value berlin https://<WSO2_OB_APIM_HOST>:9443/store .
Create a new version for an existing API
In the API Publisher of WSO2 Open Banking, users are not allowed to duplicate the scope of an API. Therefore, users are allowed to create a new version for the API in order to share the same scope. See below to find how it is done:https://<WSO2_OB_APIM_HOST>:9443/publisher
), click the API thumbnail to view the API overview.<WSO2_OB_APIM_HOME>/repository/resources/finance/apis/openbanking.org.uk/Accounts/3.1.0
if you want to create the 3.1.0 version of Payment Initiation API..yaml
format and click Open File.In sequence
file for the corresponding API and its version, and click Upload.ob-spec
property is set to reflect the correct specification.
Tick the relevant boxes if you want to: