crelan en Technical update https://developer.crelan.be/article/technical-update-5 <span property="schema:name">Technical update</span> <span rel="schema:author"><span lang="" about="/user/2" typeof="schema:Person" property="schema:name" datatype="">bank-admin</span></span> <span property="schema:dateCreated" content="2025-11-17T12:55:15+00:00"><time datetime="2025-11-17T13:55:15+01:00" title="Monday, November 17, 2025 - 13:55">November 17, 2025</time> </span> Mon, 17 Nov 2025 12:55:15 +0000 bank-admin 61 at https://developer.crelan.be https://developer.crelan.be/article/technical-update-5#comments Technical update https://developer.crelan.be/article/technical-update-4 <span property="schema:name">Technical update</span> <span rel="schema:author"><span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous (not verified)</span></span> <span property="schema:dateCreated" content="2025-10-13T06:56:17+00:00"><time datetime="2025-10-13T08:56:17+02:00" title="Monday, October 13, 2025 - 08:56">October 13, 2025</time> </span> Mon, 13 Oct 2025 06:56:17 +0000 Anonymous 59 at https://developer.crelan.be Crelan doc https://developer.crelan.be/documentation <span>Crelan doc</span> <span><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">cln-devportal</span></span> <span><time datetime="2025-10-10T18:25:32+02:00" title="Friday, October 10, 2025 - 18:25">October 10, 2025</time> </span> Fri, 10 Oct 2025 16:25:32 +0000 cln-devportal 29 at https://developer.crelan.be 13 - Build your authorize URL https://developer.crelan.be/documentation/build-authorize-url <span>13 - Build your authorize URL</span> <span><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">cln-devportal</span></span> <span><time datetime="2025-10-10T18:25:32+02:00" title="Friday, October 10, 2025 - 18:25">October 10, 2025</time> </span> <div class="paragraph text text--default"> <div> <div class="row justify-content-md-center"> <div class="col-md-12"> <div class="field field--hidden text__field-text"><style> /*<![CDATA[*/ td, th { padding: 4px; } /*]]>*/ </style><div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#build-authorize-url-configuration2"><h2>Build an authorize URL using the well-known configuration link</h2></a></div> </div> </div> <p> On the production and sandbox environments, the "scaOauth" property of a consent creation (with header tppExplicitAuthorizationPreferred = false) or a <code>POST /authorization</code> endpoint is the following: </p> <p> <code> {<br />   …<br />   "_links": {<br />     "scaOAuth": {<br />       "href": "https://api.crelan.be/berlingroup/.well-known/openid-configuration?authorizationId=31f68ab6-1ce6-4131-a324-3f37d2ca4b02"<br />     },<br />     …<br />   }<br /> } </code> </p> <p> You have to call this URL and retrieve the “authorization_enpoint” property in the response: </p> <p> <code> { <br />   "issuer": "https://api.crelan.be", <br />   "<strong>authorization_endpoint</strong>": "https://webapi.crelan.be/public/berlingroup/authorize/31f68ab6-1ce6-4131-a324-3f37d2ca4b02", <br />   "token_endpoint": "https://api.crelan.be/berlingroup/v1/token", <br />   "userinfo_endpoint": "https://api.crelan.be/berlingroup/v1/accounts", <br />   "scopes_supported": [ <br />     "account", <br />     "payment" <br />   ], <br />   "response_types_supported": [ <br />     "code" <br />   ], <br />   "grant_types_supported": [ <br />     "client_credentials", <br />     "authorization_code", <br />     "refresh_token" <br />   ], <br />   "code_challenge_methods_supported": [ <br />     "S256" <br />   ], <br />   "subject_types_supported": [ <br />     "public" <br />   ] <br /> } </code> </p> <p> With this property, you will be able to build your authorize URL with the following parameters: </p> <table align="center" border="1"><thead><tr><th scope="col">URI parameter</th> <th scope="col">Description</th> </tr></thead><tbody><tr><td>scope</td> <td> This parameter corresponds to the consentId of the consent creation or the paymentId of the payment initiation<br /> Examples:<br /> AIS:1587559935-bae68c2<br /> PIS:1587561419-bp5b5f2<br /></td> </tr><tr><td>client_id</td> <td>This parameter corresponds to your NCA id</td> </tr><tr><td>state</td> <td>Dynamic value that you have to set in order to prevent XSRF attacks</td> </tr><tr><td>redirect_uri</td> <td> This parameter corresponds to the URI where the OAuth2 server is redirecting the PSU after the authorization.<br /> NB : this redirect_uri has to be the same used for the consent creation or payment initiation </td> </tr><tr><td>code_challenge</td> <td>This parameter corresponds to PKCE challenge according to cryptographic <a href="https://tools.ietf.org/html/rfc7636">RFC 7636</a> which is used to prevent code injection attacks</td> </tr><tr><td>response_type</td> <td>Type of the response. This value has to be set to “<strong>code</strong>”</td> </tr><tr><td>code_challenge_method</td> <td>Optional parameter which corresponds to the code verifier transformation method ("S256" or "plain")</td> </tr></tbody></table><p> Following these instructions your authorize URL should look like this and is now valid to process the authorization of the PSU: </p> <p> </p><div class="field field-name-field-how-to-block-endpoint-url field-type-text"> https://webapi.crelan.be/public/berlingroup/authorize/31f68ab6-1ce6-4131-a324-3f37d2ca4b02?scope=AIS:1587559935-bae68c2&amp;client_id=[your_client_Id]&amp;state=test&amp;redirect_uri=[your_redirect_uri]&amp;code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&amp;response_type=code&amp;code_challenge_method=S256<br /></div> <p> This process to build the authorize URL is the same for a payment initiation or a payment cancellation with SCA. </p> <p> <b>NB : the "redirect_uri" parameter in the URL has to be the same as the "TPP-Redirect-URI" header of the consent creation</b> </p> </div> </div> </div> </div> </div> <div class="field field--above generic-page__field-enable-on-this-page-menu-o"> <div class="field__label"> Enable &quot;on this page&quot; menu on doc section </div> <div class="field__item">On</div> </div> Fri, 10 Oct 2025 16:25:32 +0000 cln-devportal 28 at https://developer.crelan.be 12 - Connect to the sandbox or Berlin Group APIs https://developer.crelan.be/documentation/connection <span>12 - Connect to the sandbox or Berlin Group APIs</span> <span><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">cln-devportal</span></span> <span><time datetime="2025-10-10T18:25:32+02:00" title="Friday, October 10, 2025 - 18:25">October 10, 2025</time> </span> <div class="paragraph text text--default"> <div> <div class="row justify-content-md-center"> <div class="col-md-12"> <div class="field field--hidden text__field-text"> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even">Dedicated interface</div> </div> </div> <p>On the date of 10/09/19 the National Bank of Belgium (NBB) has granted Crelan an exemption from the contingency mechanism in accordance with article 33(6) of Regulation (EU) 2018/389.</p> <p>The dedicated interface complies with the relevant PSD2 requirements, the RTS on SCA &amp; CSC and the EBA Guidelines.</p> <p>This means that from 10/09/19 TPPs should only use the dedicated interfaces to obtain the information made accessible by PSD2.</p> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#description"><h2>Description</h2></a></div> </div> </div> <p>The communication between the TPP and the Bank (Sandbox or Berlin Group APIs) is always secured by using a TLS-connection Mutual authentication using TLS version 1.2 which is initiated by the TPP.</p> <p>The TLS-connection has to be established always including client (i.e. TPP) authentication.</p> <p>For this authentication the TPP has to use a qualified certificate for website authentication (QWAC) which has to be issued by a qualified trust service provider according to the <u><a href="https://webgate.ec.europa.eu/tl-browser/#/" target="_blank">eIDAS</a></u> regulation.</p> <p>The content of the certificate has to be compliant with the requirements of the <u><a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32018R0389" target="_blank">EBA-RTS</a></u> and follow the <u><a href="https://www.etsi.org/deliver/etsi_ts/119400_119499/119495/01.02.01_60/ts_119495v010201p.pdf" target="_blank">ETSI TS 119 495 V1.2.1 (2018-11) technical specification</a></u>.</p> <p>During the first connection setup, the TPP will be automatically onboarded and registered (enrolled) in the bank database. However, for security purpose, the bank requires <strong>the client certificate to be presented within each request</strong>.</p> <p>Following the EBA clarification 07/06/2019, it's now possible to test the Sandbox using a test certificate. The only restriction is that the certificate used to establish the SSL MA must follow the QWAC format for PSD2, according to ETSI TS 119 495 V1.2.1 (2018-11)</p> <p>For the Berlin Group APIs, the QWAC certificate has to be issued <strong>from a production CA</strong>.</p> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#test-connection"><h2>Test the connection to the sandbox</h2></a></div> </div> </div> <p>Make sure that your QWAC configuration is correct by testing the following endpoint on the sandbox (no headers are necessary)</p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/actuator/info</div> </div> </div> </div> </div> </div> <div class="field field--above generic-page__field-enable-on-this-page-menu-o"> <div class="field__label"> Enable &quot;on this page&quot; menu on doc section </div> <div class="field__item">On</div> </div> Fri, 10 Oct 2025 16:25:32 +0000 cln-devportal 27 at https://developer.crelan.be 11 - Monitor performance & availability of our APIs https://developer.crelan.be/documentation/statistics <span>11 - Monitor performance &amp; availability of our APIs</span> <span><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">cln-devportal</span></span> <span><time datetime="2025-10-10T18:25:32+02:00" title="Friday, October 10, 2025 - 18:25">October 10, 2025</time> </span> <div class="paragraph text text--default"> <div> <div class="row justify-content-md-center"> <div class="col-md-12"> <div class="field field--hidden text__field-text"><div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#statistics"><h2>Statistics</h2></a></div> </div> </div> <p> As a TPP you may want to see various information and statistics about our APIs. If this is the case, you can get this information by going to the following link:<br /><strong> <a href="https://www.crelan.be/nl/business/artikel/statistics">https://www.crelan.be/nl/business/artikel/statistics</a> </strong> </p> <p>You will be able to see daily statistics on a quarterly basis on the availability and performance of our APIs.</p> </div> </div> </div> </div> </div> <div class="field field--above generic-page__field-enable-on-this-page-menu-o"> <div class="field__label"> Enable &quot;on this page&quot; menu on doc section </div> <div class="field__item">On</div> </div> Fri, 10 Oct 2025 16:25:32 +0000 cln-devportal 26 at https://developer.crelan.be 10 - Contact our support team https://developer.crelan.be/documentation/contact <span>10 - Contact our support team</span> <span><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">cln-devportal</span></span> <span><time datetime="2025-10-10T18:25:32+02:00" title="Friday, October 10, 2025 - 18:25">October 10, 2025</time> </span> <div class="paragraph text text--default"> <div> <div class="row justify-content-md-center"> <div class="col-md-12"> <div class="field field--hidden text__field-text"><div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#contact-support"><h2>Contact our Support Team</h2></a></div> </div> </div> <p>As a TPP if you face any problems using either our Sandbox or Production APIs you can contact us by using the dedicated support email : <u><a href="mailto:psd2@crelan.be">psd2@crelan.be</a></u> </p> <p>Please try to give us the full context of your request  :</p> <ul><li>TPP Name,</li> <li>TPP Registration Number,</li> <li>Date and Time of the issue,</li> <li>Service : AIS, PIS, FCS,</li> <li>Endpoint,</li> <li>Error message, error code, screenshot,</li> <li>Information about concerned version by using one of the following URLs.<br /> A valid QWAC Certificate for PSD2 is required in order to access these URLs. ​<br /> The certificate is mandatory, otherwise you will get an error :​ <ul><li><u><a href="https://api-sandbox.crelan.be/berlingroup/actuator/info">Sandbox APIs</a></u></li> <li><u><a href="https://api.crelan.be/berlingroup/actuator/info">Production APIs</a></u></li> </ul></li> </ul><p>Our support team will answer you as soon as possible.</p></div> </div> </div> </div> </div> <div class="field field--above generic-page__field-enable-on-this-page-menu-o"> <div class="field__label"> Enable &quot;on this page&quot; menu on doc section </div> <div class="field__item">On</div> </div> Fri, 10 Oct 2025 16:25:32 +0000 cln-devportal 25 at https://developer.crelan.be 09 - Use our Sandbox Dataset https://developer.crelan.be/documentation/sandbox <span>09 - Use our Sandbox Dataset</span> <span><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">cln-devportal</span></span> <span><time datetime="2025-10-10T18:25:32+02:00" title="Friday, October 10, 2025 - 18:25">October 10, 2025</time> </span> <div class="paragraph text text--default"> <div> <div class="row justify-content-md-center"> <div class="col-md-12"> <div class="field field--hidden text__field-text"><div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#description"><h2>Description</h2></a></div> </div> </div> <p>The sandbox is a mocked environment which allows you to test your application. This environment simulates API responses of the requests described in API page of this developer portal.</p> <p>To get a response the request has to match certain headers, path and query parameters with specific values described below. Any deviation in these parameters may return in an error code.</p> <p>The endpoints used in the sandbox environment are identical as those used in production.</p> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#before-starting"><h2>Before starting</h2></a></div> </div> </div> <p>You will need to have a <strong>valid QWAC Certificate for PSD2</strong> in order to perform the requests on the sandbox. This certificate is mandatory; otherwise you will get an error. The sandbox is freely accessible and you don't need to fulfil an enrolment process to use it</p> <p>All the specified values to use for the requests will be described in the next paragraphs.</p> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#ais-consent-creation"><h2>AIS Consent creation</h2></a></div> </div> </div> <p>For more details, please refer to the HowTo <u><a href="/documentation?page=/documentation/ais-manage-consents">Manage Consents for Account Information Service</a></u></p> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Initiate a consent (Single SCA)</div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">POST /berlingroup/v1/consents</div> <p>You can create a consent which will create implicitly an authorisation on this consent by setting the header “<strong>TPP-Explicit-Authorisation-Preferred</strong>” of this request to “false”. In this case, the creation of another authorisation on the consent will be forbidden and you will just have to authorise the consent using the link in the response.</p> <p>Use the value “<strong>VALID_CONSENT_ID</strong>” in the request path to test this API.</p> <p>Here is an example of a body that you can use to test the request:</p> <pre><code>{ "access": { "allPsd2": "allAccounts" }, "recurringIndicator": true, "frequencyPerDay": 4, "combinedServiceIndicator": false, "validUntil": "2030-12-12" } </code></pre> <br /><p>If the header “<strong>TPP-Explicit-Authorisation-Preferred</strong>” is set to true you will have to create manually an authorisation on the consent with the following request in order get the authorize link:</p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">POST /berlingroup/v1/consents/{consentId}/authorisations </div> <p>Use the value “<strong>CONSENT_ID_NO_AUTHORIZATION</strong>” in the request path to test this API.</p> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Authorize the AIS consent</div> <p>The authorisation workflow implements the BerlinGroup redirect scenario using OAuth2 SCA Protocol.</p> <p>In order to test this redirect approach, the sandbox provides a graphical user interface in order to simulate all the possible SCA scenarios (Login fails, timeout, SCA rejected…) that are listed below: </p> <p> </p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th>SCA scenario</th> <th>Description</th> </tr><tr><td><strong>LOGIN_CANCEL</strong></td> <td>If the login phase was cancelled by the PSU</td> </tr><tr><td><strong>LOGIN_TIMEOUT</strong></td> <td>If the login phase encountered a timeout</td> </tr><tr><td><strong>LOGIN_OTHER_ERROR</strong></td> <td>If another error occurred during the login phase</td> </tr><tr><td><strong>LOGIN_REQUEST_REJECTED</strong></td> <td>If the login phase was rejected</td> </tr><tr><td><strong>BAD_PASSWORD_LOGIN</strong></td> <td>If an error occurred during the login phase with a bad password</td> </tr><tr><td><strong>UNKNOWN_LOGIN</strong></td> <td>If an error occurred during the login phase with an unknown login</td> </tr><tr><td><strong>SCA_OK</strong></td> <td>To get a successful authorisation</td> </tr><tr><td><strong>SCA_EXEMPTED</strong></td> <td>If the SCA phase was exempted</td> </tr><tr><td><strong>SCA_CANCEL</strong></td> <td>If the SCA phase was cancelled by the PSU</td> </tr><tr><td><strong>SCA_TIMEOUT</strong></td> <td>If the SCA phase encountered a timeout</td> </tr><tr><td><strong>SCA_OTHER_ERROR</strong></td> <td>If another error occurred during the SCA phase</td> </tr><tr><td><strong>SCA_NOK</strong></td> <td>If the SCA phase did not succeed</td> </tr><tr><td><strong>SCA_REQUEST_REJECTED</strong></td> <td>If the SCA phase was rejected </td> </tr><tr><td><strong>SCA_INTERNAL_ERROR</strong></td> <td>If an internal error occurred</td> </tr></tbody></table><p> </p> <p>To access this graphical user interface you have to build your authorisation URI using the scaOAuth URL received in the response of the consent initialisation with the following parameters:</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 180px;">URI parameter</th> <th style="width: 200px;">Sandbox value</th> <th style="width: 350px;">Comments</th> </tr><tr><td><strong>scope</strong> </td><td><strong>AIS:VALID_CONSENT_ID</strong></td> <td><strong>Must be set to this value on the Sandbox</strong>. On the production API, Must be set to this the consentId returned by the consent initialisation</td> </tr><tr><td><strong>client_id</strong></td> <td><strong>VALID_CLIENT_ID</strong></td> <td><strong>Must be set to this value on the Sandbox</strong>. On Production API, you must provide your NCA id</td> </tr><tr><td><strong>state</strong></td> <td>Any value</td> <td>On Production API, this is a dynamical value that you have to set in order to prevent XSRF attacks</td> </tr><tr><td><strong>redirect_uri</strong></td> <td>Any URI value</td> <td>On Production API, this corresponds to the URI where the OAuth2 server is redirecting the PSU after the authorization</td> </tr><tr><td><strong>code_challenge</strong></td> <td>Any value</td> <td>On Production API, this corresponds to PKCE challenge according to cryptographic RFC 7636 (https://tools.ietf.org/html/rfc7636) and is used to prevent code injection attacks</td> </tr><tr><td><strong>response_type</strong></td> <td>code</td> <td>Must be set to this value on the Sandbox and on Production API</td> </tr><tr><td><strong>code_challenge_method</strong></td> <td>S256</td> <td>On Production API this parameter is optionnal and corresponds to the code verifier transformation method ("S256" or "plain")</td> </tr></tbody></table><p> </p> <p>Following these instructions, you should build the following URI for the sandbox:</p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text"><a style="overflow-wrap: break-word;" href="https://webapi-sandbox.crelan.be/public/berlingroup/authorize/11111111-1111-1111-1111-111111111111?scope=AIS:VALID_CONSENT_ID&amp;client_id=VALID_CLIENT_ID&amp;state=test&amp;redirect_uri=http://localhost&amp;code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&amp;response_type=code&amp;code_challenge_method=S256"> https://webapi-sandbox.crelan.be/public/berlingroup/authorize/11111111-1111-1111-1111-111111111111?scope=AIS:VALID_CONSENT_ID&amp;client_id=VALID_CLIENT_ID&amp;state=test&amp;redirect_uri=http://localhost&amp;code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&amp;response_type=code&amp;code_challenge_method=S256</a> </div> <p>This URI will redirect on a mocked page on which you can test the different redirect scenarios of the authorisation flow. All user flow will display an information page before redirecting the PSU to the redirect_uri (HTTP 302 response).</p> <p> <b>Error management:</b> In order to help TPPs with the errors received through the redirect_uri, Crelan provide more information in the redirect_uri with the properties "psuErrorMessageKey" and "tppErrorTextMessage" in order to better understand the origin of the error. You can test on the sandbox by cliquing on the "SCA Error Cases" buttons as examples. </p> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Get an AIS access Token</div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">POST /berlingroup/v1/token</div> <p>In order to access the PSD2 requests you need to get an access token for your application. To get this token you have to exchange an authorization_code with a valid token. This authorization_code is found in the 302 response of a valid authorisation.</p> <p>First of all, you have to use for this request a body encoded as <strong>x-www-form-urlencoded</strong>.</p> <p>Here are the specific keys to use for the body of this request: (cf. API /token in API section)</p> <ul><li><p>"<strong>authorization_code</strong>" as value for the "<strong>grant_type</strong>" parameter</p></li> <li><p>"<strong>VALID_CLIENT_ID</strong>" as value for the "<strong>client_id</strong>" parameter</p></li> <li><p>"<strong>Any value</strong>" as value for the "<strong>code_verifier</strong>" parameter (On production environment, you have to use the code_verifier of code_challenge provided in the authorize URL)</p></li> <li><p>the following values for the "<strong>code</strong>" parameter:</p></li> </ul><table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 270px;">Code</th> <th style="width: 450px;">Description</th> </tr><tr><td><strong>AIS_VALID_CODE</strong></td> <td>Valid code to get an access token for the consent <strong>VALID_CONSENT_ID</strong></td> </tr><tr><td><strong>AIS_VALID_CODE_TRANSACTION_90D_KO</strong></td> <td>Valid code to get an access token for the consent <strong>CONSENT_ID_TRANSACTION_90D_KO</strong>. This consent is to used in order to get the error of the access right to transactions older than 90 days</td> </tr></tbody></table><p> </p> <p>The response to this API comes in the form of a JSON object with the following structure:</p> <pre><code>{ "access_token": "4db39597dc674268a7fa253d255c47cec7618d14ebdd433a984a7680ce0b77ad0bd76a3a55e8455b980bf41c833a03ce", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "e3da5c9922a34d6e8fa0fa4b780acc2c1ad3a05d485f43f08580250d26a1782b0544973a64204185a9257ca07143c0bb", "scope": "AIS:VALID_CONSENT_ID" } </code></pre> <p>This will be the access that has a limited time validity that you have to use for the future request.</p> <p>According to Oauth2 specification, you can exchange this access token for a refresh token still using the /Token API but with a “refresh_token” as grant type in the body of the request:</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 270px;">Parameter</th> <th style="width: 450px;">Value</th> </tr><tr><td><strong>grant_type</strong></td> <td>refresh_token</td> </tr><tr><td><strong>refresh_token</strong></td> <td>The refresh token that you just got with the /token API</td> </tr><tr><td><strong>client_id</strong></td> <td>VALID_CLIENT_ID</td> </tr></tbody></table><p> </p> <p>The refresh token will have a validity of 180 days, the duration of an AIS consent.</p> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Access the consent</div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET/berlingroup/v1/consents/{consentId} </div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text"> GET/berlingroup/v1/consents/{consentId}/status </div> <p>Here are the different consent ids that you can use to test these APIs.</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 300px;">Consent Id</th> <th style="width: 450px;">Description</th> </tr><tr><td><strong>VALID_CONSENT_ID</strong></td> <td>To retrieve a consent with the status “Valid” and a preselected scope</td> </tr><tr><td><strong>CONSENT_ID_REVOKED_BY_PSU</strong></td> <td>To retrieve a consent with the status “revokedByPsu”</td> </tr><tr><td><strong>CONSENT_ID_EXPIRED</strong></td> <td>To retrieve a consent with the status “expired”</td> </tr><tr><td><strong>CONSENT_ID_REJECTED</strong> </td><td>To retrieve a consent with the status “rejected”</td> </tr><tr><td><strong>CONSENT_ID_TERMINATED_BY_TPP</strong></td> <td>To retrieve a consent with the status “terminatedByTpp”</td> </tr><tr><td><strong>CONSENT_ID_RECEIVED</strong></td> <td>To retrieve a consent with the status “received”</td> </tr><tr><td><strong>CONSENT_ID_ALL_PSD2</strong></td> <td>To retrieve a consent with the status “Valid” and a “allPsd2” scope</td> </tr><tr><td><strong>CONSENT_ID_AVAILABLE_ACCOUNTS</strong></td> <td>To retrieve a consent with the status “Valid” and a “availableAccounts” scope</td> </tr><tr><td><strong>CONSENT_ID_AVAILABLE_ACCOUNTS_WITH_BALANCES</strong></td> <td>To retrieve a consent with the status “Valid” and a “availableAccountsWithBalances” scope</td> </tr></tbody></table><div class="field field-name-field-how-to-block-endpoint-name field-type-text">Delete a consent</div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">DELETE /berlingroup/v1/consents/{consentId} </div> <p>Here are the different consent ids that you can use to test this API.</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th>Consent Id</th> </tr><tr><td><strong>VALID_CONSENT_ID</strong></td> </tr><tr><td><strong>CONSENT_ID_REVOKED_BY_PSU</strong></td> </tr><tr><td><strong>CONSENT_ID_EXPIRED</strong></td> </tr><tr><td><strong>CONSENT_ID_REJECTED</strong></td> </tr><tr><td><strong>CONSENT_ID_TERMINATED_BY_TPP</strong></td> </tr><tr><td><strong>CONSENT_ID_RECEIVED</strong></td> </tr></tbody></table><div class="field field-name-field-how-to-block-endpoint-name field-type-text"></div> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Get the consent authorisations and status </div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/consents/{consentId}/authorisations </div> <p>This request retrieves the list of the authorisations of the consent.</p> <p>You can use the value “<strong>VALID_CONSENT_ID</strong>” in the request to test this API. If you use another value, the consent will be considered as not found.</p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/consents/{consentId}/authorisations/{consentAuthorisationId} </div> <p>You can use the value “<strong>VALID_CONSENT_ID</strong>” and a value for the “<strong>consentAuthorisationId</strong>” in the request path to test this API. If you use another value, the consent will be considered as not found.</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 300px;">consentAuthorisationId</th> <th style="width: 450px;">Description</th> </tr><tr><td><strong>11111111-1111-1111-1111-111111111111</strong></td> <td>To retrieve an authorisation with the status “finalised”</td> </tr><tr><td><strong>22222222-2222-2222-2222-222222222222</strong></td> <td>To retrieve an authorisation with the status “received”</td> </tr><tr><td><strong>33333333-3333-3333-3333-333333333333</strong></td> <td>To retrieve an authorisation with the status “psuIdentified”</td> </tr><tr><td><strong>44444444-4444-4444-4444-444444444444</strong></td> <td>To retrieve an authorisation with the status “psuAuthenticated”</td> </tr><tr><td><strong>55555555-5555-5555-5555-555555555555</strong></td> <td>To retrieve an authorisation with the status “scaMethodSelected”</td> </tr><tr><td><strong>66666666-6666-6666-6666-666666666666</strong></td> <td>To retrieve a authorisation with the status “started”</td> </tr><tr><td><strong>77777777-7777-7777-7777-777777777777</strong></td> <td>To retrieve an authorisation with the status “failed”</td> </tr><tr><td><strong>88888888-8888-8888-8888-888888888888</strong></td> <td>To retrieve an authorisation with the status “exempted”</td> </tr></tbody></table><div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#access-ais-accounts"><h2>Access the AIS accounts</h2></a></div> </div> </div> <p>For more details, please refer to the HowTo <u><a href="/documentation?page=/documentation/ais-access">Access Account Information Services</a></u></p> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Retrieve all accounts</div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/accounts</div> <p>Here are the different consent ids that you can use to in the “<strong>Consent-Id</strong>” header to test this API.</p> <p>You also have to use the access token for the corresponding status.</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 300px;">Consent-Id (header)</th> <th style="width: 450px;">Description</th> </tr><tr><td><strong>VALID_CONSENT_ID</strong></td> <td>Valid consent</td> </tr></tbody></table><p>You have a limited access of 4 times per day to this API. You have to include the IP address from which the PSU accesses the TPP service in the PSU-IP-Address header in order not to apply the restriction.</p> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Retrieve the detail of an account</div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/accounts/{accountId} </div> <p>Here are the different consent ids that you can use to in the “Consent-Id” header to test this API.</p> <p>You also have to use the access token for the corresponding status.</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 150px;">Consent-Id (header)</th> <th style="width: 250px;">Account Id (request parameter)</th> <th style="width: 250px;">Description</th> </tr><tr><td><strong>VALID_CONSENT_ID</strong></td> <td><strong>ACCOUNT_ID</strong></td> <td>Account of a valid consent</td> </tr><tr><td><strong>VALID_CONSENT_ID</strong></td> <td><strong>Any unknown account</strong></td> <td>No permission on this account</td> </tr></tbody></table><p>You have a limited access of 4 times per day to this API. You have to include the IP address from which the PSU accesses the TPP service in the PSU-IP-Address header in order not to apply the restriction.</p> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Retrieve the balances of an account</div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/accounts/{accountId}/balances </div> <p>Here are the different consent ids that you can use to in the “Consent-Id” header to test this API.</p> <p>You also have to use the access token for the corresponding status.</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 150px;">Consent-Id (header)</th> <th style="width: 250px;">Account Id (request parameter)</th> <th style="width: 250px;">Description</th> </tr><tr><td><strong>VALID_CONSENT_ID</strong></td> <td><strong>ACCOUNT_ID</strong></td> <td>Account of a valid consent</td> </tr><tr><td><strong>VALID_CONSENT_ID</strong></td> <td><strong>Any unknown account</strong></td> <td>No permission on this account</td> </tr></tbody></table><p>You have a limited access of 4 times per day to this API. You have to include the IP address from which the PSU accesses the TPP service in the PSU-IP-Address header in order not to apply the restriction.</p> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Retrieve the transactions of an account </div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/accounts/{accountId}/transactions?dateFrom=2019-02-01&amp;bookingStatus=booked </div> <p>Here are the different parameters that you can use to test this API.</p> <p>You also have to use the access token for the corresponding consent.</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 150px;">Consent-Id (header)</th> <th style="width: 250px;">Account Id (request parameter)</th> <th style="width: 250px;">Description</th> </tr><tr><td><strong>VALID_CONSENT_ID</strong></td> <td><strong>ACCOUNT_ID</strong></td> <td>Account of a valid consent</td> </tr><tr><td><strong>VALID_CONSENT_ID</strong></td> <td><strong>Any unknown account</strong></td> <td>No permission on this account</td> </tr><tr><td><strong>CONSENT_ID_TRANSACTION_90D_KO</strong></td> <td><strong>ACCOUNT_ID</strong></td> <td>Account where the access right to transactions older than 90 days is expired</td> </tr></tbody></table><p>You have a limited access of 4 times per day to this API. You have to include the IP address from which the PSU accesses the TPP service in the PSU-IP-Address header in order not to apply the restriction.</p> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#pis-payment-initiation"><h2>PIS payment initiation</h2></a></div> </div> </div> <p>For more details, please refer to the HowTo <u><a href="/documentation?page=/documentation/pis-initiate-payment">Initiate a Payment</a></u> and <u><a href="/documentation?page=/documentation/pis-payment-status">Manage payments information and status</a></u></p> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Initiate a payment (Single SCA)</div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">POST /berlingroup/v1/{payment-service}/{payment-product} </div> <p>Here are the different combinations that you can use in the URL of this request:</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 280px;">Payment service</th> <th style="width: 450px;">Payment product</th> </tr><tr><td rowspan="3" style="width: 280px;" align="center"><strong>payments</strong></td> <td style="width: 450px;"><strong>sepa-credit-transfers</strong></td> </tr><tr><td style="width: 450px;"><strong>instant-sepa-credit-transfers</strong></td> </tr><tr><td style="width: 450px;"><strong>cross-border-payments</strong></td> </tr><tr><td rowspan="3" style="width: 280px;" align="center"><strong>periodic-payments</strong></td> <td style="width: 450px;"><strong>sepa-credit-transfers</strong></td> </tr><tr><td style="width: 450px;"><strong>instant-sepa-credit-transfers</strong></td> </tr><tr><td style="width: 450px;"><strong>cross-border-payments</strong></td> </tr><tr><td rowspan="3" style="width: 280px;" align="center"><strong>bulk-payments</strong></td> <td style="width: 450px;"><strong>sepa-credit-transfers</strong></td> </tr><tr><td style="width: 450px;"><strong>instant-sepa-credit-transfers</strong></td> </tr><tr><td style="width: 450px;"><strong>cross-border-payments</strong></td> </tr></tbody></table><p>You can create a payment which will create implicitly an authorisation on this payment by setting the header “<strong>TPP-Explicit-Authorisation-Preferred</strong>” of this request to “false”. In this case, the creation of another authorisation on the payment will be forbidden and you will just have to authorise the payment using the link in the response.</p> <p>If this header is set to true you will have to create manually an authorisation on the payment with the following request :</p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">POST /berlingroup/v1/{payment-service}/{payment-product}/{paymentId}/authorisations </div> <p>Use the values below in the request path to test this API:</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 170px;">Payment service</th> <th style="width: 220px;">Payment product</th> <th style="width: 230px;">Payment Id</th> </tr><tr><td rowspan="3" align="center"><strong>payments</strong></td> <td><strong>sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PATC_SCT</td> </tr><tr><td><strong>cross-border-credit-transfers</strong></td> <td>PAYMENT_ID_PATC_CBP</td> </tr><tr><td><strong>instant-sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PATC_ISCT</td> </tr><tr><td rowspan="3" align="center"><strong>periodic-payments</strong></td> <td><strong>sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PERIODIC_PATC_SCT</td> </tr><tr><td><strong>cross-border-credit-transfers</strong></td> <td>PAYMENT_ID_PERIODIC_PATC_CBP</td> </tr><tr><td><strong>instant-sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PERIODIC_PATC_ISCT</td> </tr><tr><td rowspan="3" align="center"><strong>bulk-payments</strong></td> <td><strong>sepa-credit-transfers</strong></td> <td>PAYMENT_ID_BULK_PATC_SCT</td> </tr><tr><td><strong>cross-border-credit-transfers</strong></td> <td>PAYMENT_ID_BULK_PATC_CBP</td> </tr><tr><td><strong>instant-sepa-credit-transfers</strong></td> <td>PAYMENT_ID_BULK_PATC_ISCT</td> </tr></tbody></table><p>Here is an example of a body that you can use to test the request (single payment sepa credit transfers):</p> <pre><code>{ "instructedAmount": { "currency": "EUR", "amount": "42" }, "debtorAccount": { "iban": "FR6010096000303953573683E53" }, "creditorAccount": { "iban": "FR5730003000508771112157D50" }, "creditorName": "DBL Inc.", "requestedExecutionDate": "2030-01-01" } </code></pre> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Authorize the payment</div> <p>The authorisation workflow implements the BerlinGroup redirect scenario using OAuth2 SCA Protocol.</p> <p>In order to test this redirect approach, the sandbox provides a graphical user interface in order to simulate all the possible SCA scenarios (Login fails, timeout, SCA rejected…) that are listed below: </p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th>SCA scenario</th> <th>Description</th> </tr><tr><td><strong>LOGIN_CANCEL</strong></td> <td>If the login phase was cancelled by the PSU</td> </tr><tr><td><strong>LOGIN_TIMEOUT</strong></td> <td>If the login phase encountered a timeout</td> </tr><tr><td><strong>LOGIN_OTHER_ERROR</strong></td> <td>If another error occurred during the login phase</td> </tr><tr><td><strong>LOGIN_REQUEST_REJECTED</strong></td> <td>If the login phase was rejected</td> </tr><tr><td><strong>BAD_PASSWORD_LOGIN</strong></td> <td>If an error occurred during the login phase with a bad password</td> </tr><tr><td><strong>UNKNOWN_LOGIN</strong></td> <td>If an error occurred during the login phase with an unknown login</td> </tr><tr><td><strong>SCA_OK</strong></td> <td>To get a successful authorisation</td> </tr><tr><td><strong>SCA_EXEMPTED</strong></td> <td>If the SCA phase was exempted</td> </tr><tr><td><strong>SCA_CANCEL</strong></td> <td>If the SCA phase was cancelled by the PSU</td> </tr><tr><td><strong>SCA_TIMEOUT</strong></td> <td>If the SCA phase encountered a timeout</td> </tr><tr><td><strong>SCA_OTHER_ERROR</strong></td> <td>If another error occurred during the SCA phase</td> </tr><tr><td><strong>SCA_NOK</strong></td> <td>If the SCA phase did not succeed</td> </tr><tr><td><strong>SCA_REQUEST_REJECTED</strong></td> <td>If the SCA phase was rejected </td> </tr><tr><td><strong>SCA_INTERNAL_ERROR</strong></td> <td>If an internal error occurred</td> </tr></tbody></table><br /><p>To access this graphical user interface you have to build your authorisation URI using the scaOAuth URL received in the response of the payment initialisation with the following parameters:</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 180px;">URI parameter</th> <th style="width: 200px;">Sandbox value</th> <th style="width: 350px;">Comments</th> </tr><tr><td><strong>scope</strong> </td><td><strong>PIS:PAYMENT_ID_RCVD_SCT</strong></td> <td><strong>Must be set to this value on the Sandbox</strong>. On the production API, Must be set to this the consentId returned by the consent initialisation</td> </tr><tr><td><strong>client_id</strong></td> <td><strong>VALID_CLIENT_ID</strong></td> <td><strong>Must be set to this value on the Sandbox</strong>. On Production API, you must provide your NCA id</td> </tr><tr><td><strong>state</strong></td> <td>Any value</td> <td>On Production API, this is a dynamical value that you have to set in order to prevent XSRF attacks</td> </tr><tr><td><strong>redirect_uri</strong></td> <td>Any URI value</td> <td>On Production API, this corresponds to the URI where the OAuth2 server is redirecting the PSU after the authorization</td> </tr><tr><td><strong>code_challenge</strong></td> <td>Any value</td> <td>On Production API, this corresponds to PKCE challenge according to cryptographic RFC 7636 (https://tools.ietf.org/html/rfc7636) and is used to prevent code injection attacks</td> </tr><tr><td><strong>response_type</strong></td> <td>code</td> <td>Must be set to this value on the Sandbox and on Production API</td> </tr><tr><td><strong>code_challenge_method</strong></td> <td>S256</td> <td>On Production API this parameter is optionnal and corresponds to the code verifier transformation method ("S256" or "plain")</td> </tr></tbody></table><p>Following these instructions, you should build the following URI for the sandbox:</p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text"> <a style="overflow-wrap: break-word;" href="https://webapi-sandbox.crelan.be/public/berlingroup/authorize/11111111-1111-1111-1111-111111111111?scope=PIS:PAYMENT_ID_RCVD_SCT&amp;client_id=VALID_CLIENT_ID&amp;state=test&amp;redirect_uri=http://localhost&amp;code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&amp;response_type=code&amp;code_challenge_method=S256"> https://webapi-sandbox.crelan.be/public/berlingroup/authorize/11111111-1111-1111-1111-111111111111?scope=PIS:PAYMENT_ID_RCVD_SCT&amp;client_id=VALID_CLIENT_ID&amp;state=test&amp;redirect_uri=http://localhost&amp;code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&amp;response_type=code&amp;code_challenge_method=S256 </a> </div> <p>This URI will redirect on a mocked page on which you can test the different redirect scenarios of the authorisation flow. All user flow will display an information page before redirecting the PSU to the redirect_uri (HTTP 302 response).</p> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Access a payment</div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/{payment-service}/{payment-product}/{paymentId} </div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/{payment-service}/{payment-product}/{paymentId}/status </div> <p>The different payment ids to use in the URL and in the “Consent-Id” header of these requests have this structure:</p> <p><strong>PAYMENT_ID_</strong><span style="color: rgb(0, 128, 0);"><strong>&lt;</strong>payment service&gt;</span>_<span style="color: rgb(255, 0, 0);">&lt;payment status&gt;</span>_<span style="color: rgb(4, 58, 156);">&lt;payment product&gt;</span></p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 200px;">Payment service</th> <th style="width: 200px;">Payment status</th> <th style="width: 200px;">Payment product</th> </tr><tr><td><strong>∅</strong> (payment)</td> <td><strong>ACCP</strong> (AcceptedCustomerProfile)</td> <td><strong>SCT</strong> (sepa credit transfer)</td> </tr><tr><td><strong>PERIODIC</strong> (periodic payment)</td> <td><strong>ACSC</strong> (AcceptedSettlementCompleted)</td> <td><strong>ISCT</strong> (instant sepa credit transfert)</td> </tr><tr><td><strong>BULK </strong> (bulk payment)</td> <td><strong>ACSP</strong> (AcceptedSettlementInProcess)</td> <td><strong>CBP</strong> (cross border payment)</td> </tr><tr><td></td> <td><strong>ACTC</strong> (AcceptedTechnicalValidation)</td> <td></td> </tr><tr><td></td> <td><strong>ACWC</strong> (AcceptedWithChange)</td> <td></td> </tr><tr><td></td> <td><strong>ACWP</strong> (AcceptedWithoutPosting)</td> <td></td> </tr><tr><td></td> <td><strong>RCVD</strong> (Received)</td> <td></td> </tr><tr><td></td> <td><strong>PDNG</strong> (Pending)</td> <td></td> </tr><tr><td></td> <td><strong>RJCT</strong> (Rejected)</td> <td></td> </tr><tr><td></td> <td><strong>CANC</strong> (Cancelled)</td> <td></td> </tr><tr><td></td> <td><strong>PATC</strong> (PartiallyAcceptedTechnicalCorrect)</td> <td></td> </tr></tbody></table><p>Examples:</p> <ul><li>PAYMENT_ID_RCVD_SCT (« payment – status received - sepa credit transfert)</li> <li>PAYMENT_ID_PERIODIC_PDNG_SCT (« periodic payment – status pending  - sepa credit transfert) </li> <li>PAYMENT_ID_BULK_RJCT_SCT (« bulk payment – status rejected – sepa credit transfert)</li> </ul><div class="field field-name-field-how-to-block-endpoint-name field-type-text">Get the payment authorisations and status </div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/{payment-service}/{payment-product}/{paymentId}/authorisations </div> <p>This request retrieves the list of the authorisations of the payment.</p> <p>You can use the values below to test this API:</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 170px;">Payment service</th> <th style="width: 220px;">Payment product</th> <th style="width: 230px;">Payment Id</th> </tr><tr><td rowspan="3" align="center"><strong>payments</strong></td> <td><strong>sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PATC_SCT</td> </tr><tr><td><strong>cross-border-credit-transfers</strong></td> <td>PAYMENT_ID_PATC_CBP</td> </tr><tr><td><strong>instant-sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PATC_ISCT</td> </tr><tr><td rowspan="3" align="center"><strong>periodic-payments</strong></td> <td><strong>sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PERIODIC_PATC_SCT</td> </tr><tr><td><strong>cross-border-credit-transfers</strong></td> <td>PAYMENT_ID_PERIODIC_PATC_CBP</td> </tr><tr><td><strong>instant-sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PERIODIC_PATC_ISCT</td> </tr><tr><td rowspan="3" align="center"><strong>bulk-payments</strong></td> <td><strong>sepa-credit-transfers</strong></td> <td>PAYMENT_ID_BULK_PATC_SCT</td> </tr><tr><td><strong>cross-border-credit-transfers</strong></td> <td>PAYMENT_ID_BULK_PATC_CBP</td> </tr><tr><td><strong>instant-sepa-credit-transfers</strong></td> <td>PAYMENT_ID_BULK_PATC_ISCT</td> </tr></tbody></table><br /><div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{paymentAuthorisationId} </div> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 300px;">paymentAuthorisationId</th> <th style="width: 450px;">Description</th> </tr><tr><td><strong>11111111-1111-1111-1111-111111111111</strong></td> <td>To retrieve an authorisation with the status “finalised”</td> </tr><tr><td><strong>22222222-2222-2222-2222-222222222222</strong></td> <td>To retrieve an authorisation with the status “received”</td> </tr><tr><td><strong>33333333-3333-3333-3333-333333333333</strong></td> <td>To retrieve an authorisation with the status “psuIdentified”</td> </tr><tr><td><strong>44444444-4444-4444-4444-444444444444</strong></td> <td>To retrieve an authorisation with the status “psuAuthenticated”</td> </tr><tr><td><strong>55555555-5555-5555-5555-555555555555</strong></td> <td>To retrieve an authorisation with the status “scaMethodSelected”</td> </tr><tr><td><strong>66666666-6666-6666-6666-666666666666</strong></td> <td>To retrieve a authorisation with the status “started”</td> </tr><tr><td><strong>77777777-7777-7777-7777-777777777777</strong></td> <td>To retrieve an authorisation with the status “failed”</td> </tr><tr><td><strong>88888888-8888-8888-8888-888888888888</strong></td> <td>To retrieve an authorisation with the status “exempted”</td> </tr></tbody></table><div> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Payment status notification Callback (Instant Payment only) </div> <p> Payment status notification is currently only supported for Instant Payment. To simulate a Payment Status Notification Event you can call the endpoint </p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text"> POST {{SANDBOX_URL}}/internal/berlingroup/authorization/v1/tpp/notify </div> <p> In the body request, you need to provide the following information : </p><ul><li>Payment Id : Payment Id of the notification</li> <li>Notification URL: URL where the TPP wants to receive the notification</li> <li>Payment status: Payment Status of the event. This can be change to simulate different payment status</li> </ul><p> Example: </p><table align="center" border="1" cellpadding="1" cellspacing="1" style="width: 800px;"><tbody><tr><td><code> { <br /><span class="marge">"paymentId": "12345-23454-123123", <br /></span> <span class="marge">"tppNotificationUri": "https://notifications.tppurl.com/",<br /></span> <span class="marge">"status": "ACCP" <br /></span> }<br /></code></td></tr></tbody></table><p> The Sandbox will then trigger the following callback </p><table align="center" border="1" cellpadding="1" cellspacing="1" style="width: 800px;"><tbody><tr><td> <code> POST https://notifications.tppurl.com/<br /> Body request<br /> {<br /> "payment-ID": "12345-23454-123123", <br /> "transactionStatus": "ACSP" <br /> }<br /></code></td></tr></tbody></table></div> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#cancel-payment"><h2>Cancel a payment</h2></a></div> </div> </div> <p>For more details, please refer to the HowTo <u><a href="/documentation?page=/documentation/pis-cancel-payment">Cancel a Payment</a></u></p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">DELETE /berlingroup/v1/{payment-service}/{payment-product}/{paymentId} </div> <p>Here are the different combinations that you can use in the URL of this request:</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><td style="width: 284px;"> <p><span style="color: rgb(4, 58, 156);"><strong>Payment service</strong></span></p> </td> <td style="width: 488px;"> <p><span style="color: rgb(4, 58, 156);"><strong>Payment product</strong></span></p> </td> </tr><tr><td rowspan="2" style="width: 280px;" align="center"><strong>payments</strong></td> <td style="width: 450px;"><strong>sepa-credit-transfers</strong></td> </tr><tr><td style="width: 450px;"><strong>cross-border-payments</strong></td> </tr><tr><td rowspan="2" style="width: 280px;" align="center"><strong>periodic-payments</strong></td> <td style="width: 450px;"><strong>sepa-credit-transfers</strong></td> </tr><tr><td style="width: 450px;"><strong>cross-border-payments</strong></td> </tr></tbody></table><p> </p> <p>For the payment Id parameter, here is its structure: </p> <p><strong>PAYMENT_ID_</strong><span style="color: rgb(0, 128, 0);"><strong>&lt;</strong>payment service&gt;</span>_<span style="color: rgb(255, 0, 0);">&lt;payment status&gt;</span>_<span style="color: rgb(4, 58, 156);">&lt;payment product&gt;</span></p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 200px;">Payment service</th> <th style="width: 200px;">Payment status</th> <th style="width: 200px;">Payment product</th> </tr><tr><td><strong>∅</strong> (payment)</td> <td><strong>ACCP</strong> (AcceptedCustomerProfile)</td> <td><strong>SCT</strong> (sepa credit transfer)</td> </tr><tr><td><strong>PERIODIC</strong> (periodic payment)</td> <td><strong>ACSC</strong> (AcceptedSettlementCompleted)</td> <td><strong>ISCT</strong> (instant sepa credit transfert)</td> </tr><tr><td><strong>BULK </strong> (bulk payment)</td> <td><strong>ACSP</strong> (AcceptedSettlementInProcess)</td> <td><strong>CBP</strong> (cross border payment)</td> </tr><tr><td></td> <td><strong>ACTC</strong> (AcceptedTechnicalValidation)</td> <td></td> </tr><tr><td></td> <td><strong>ACWC</strong> (AcceptedWithChange)</td> <td></td> </tr><tr><td></td> <td><strong>ACWP</strong> (AcceptedWithoutPosting)</td> <td></td> </tr><tr><td></td> <td><strong>RCVD</strong> (Received)</td> <td></td> </tr><tr><td></td> <td><strong>PDNG</strong> (Pending)</td> <td></td> </tr><tr><td></td> <td><strong>RJCT</strong> (Rejected)</td> <td></td> </tr><tr><td></td> <td><strong>CANC</strong> (Cancelled)</td> <td></td> </tr><tr><td></td> <td><strong>PATC</strong> (PartiallyAcceptedTechnicalCorrect)</td> <td></td> </tr></tbody></table><p>Examples:</p> <ul><li>PAYMENT_ID_RCVD_SCT (« payment – status received - sepa credit transfert)</li> <li>PAYMENT_ID_PERIODIC_PDNG_SCT (« periodic payment – status pending  - sepa credit transfert) </li> </ul><div class="field field-name-field-how-to-block-endpoint-name field-type-text">Cancel a payment with SCA</div> <p>In case of the cancellation of a payment with SCA, just after deleting the payment with the <strong>/DELETE</strong> API, you have to call the request below in order to create an authorisation to cancel the payment and get the authorisation link.</p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">POST /berlingroup/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations </div> <div class="field-item even"> </div> <div class="field-item even"> <p>Use the values below in the request path to test this API:</p> </div> <div class="field-item even"> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 170px;">Payment service</th> <th style="width: 220px;">Payment product</th> <th style="width: 230px;">Payment Id</th> </tr><tr><td rowspan="2" align="center"><strong>payments</strong></td> <td><strong>sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PATC_SCT</td> </tr><tr><td><strong>cross-border-credit-transfers</strong></td> <td>PAYMENT_ID_PATC_CBP</td> </tr><tr><td rowspan="2" align="center"><strong>periodic-payments</strong></td> <td><strong>sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PERIODIC_PATC_SCT</td> </tr><tr><td><strong>cross-border-credit-transfers</strong></td> <td>PAYMENT_ID_PERIODIC_PATC_CBP</td> </tr></tbody></table></div> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Authorize the cancellation of a payment </div> <p>The authorisation workflow implements the BerlinGroup redirect scenario using OAuth2 SCA Protocol.</p> <p>In order to test this redirect approach, the sandbox provides a graphical user interface in order to simulate all the possible SCA scenarios (Login fails, timeout, SCA rejected…) that are listed below: </p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th>SCA scenario</th> <th>Description</th> </tr><tr><td><strong>LOGIN_CANCEL</strong></td> <td>If the login phase was cancelled by the PSU</td> </tr><tr><td><strong>LOGIN_TIMEOUT</strong></td> <td>If the login phase encountered a timeout</td> </tr><tr><td><strong>LOGIN_OTHER_ERROR</strong></td> <td>If another error occurred during the login phase</td> </tr><tr><td><strong>LOGIN_REQUEST_REJECTED</strong></td> <td>If the login phase was rejected</td> </tr><tr><td><strong>BAD_PASSWORD_LOGIN</strong></td> <td>If an error occurred during the login phase with a bad password</td> </tr><tr><td><strong>UNKNOWN_LOGIN</strong></td> <td>If an error occurred during the login phase with an unknown login</td> </tr><tr><td><strong>SCA_OK</strong></td> <td>To get a successful authorisation</td> </tr><tr><td><strong>SCA_EXEMPTED</strong></td> <td>If the SCA phase was exempted</td> </tr><tr><td><strong>SCA_CANCEL</strong></td> <td>If the SCA phase was cancelled by the PSU</td> </tr><tr><td><strong>SCA_TIMEOUT</strong></td> <td>If the SCA phase encountered a timeout</td> </tr><tr><td><strong>SCA_OTHER_ERROR</strong></td> <td>If another error occurred during the SCA phase</td> </tr><tr><td><strong>SCA_NOK</strong></td> <td>If the SCA phase did not succeed</td> </tr><tr><td><strong>SCA_REQUEST_REJECTED</strong></td> <td>If the SCA phase was rejected </td> </tr><tr><td><strong>SCA_INTERNAL_ERROR</strong></td> <td>If an internal error occurred</td> </tr></tbody></table><p> </p> <p>To access this graphical user interface you have to build your authorisation URI using the scaOAuth URL received in the response of the cancellation authorisation request with the following parameters:</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 180px;">URI parameter</th> <th style="width: 200px;">Sandbox value</th> <th style="width: 350px;">Comments</th> </tr><tr><td><strong>scope</strong> </td><td><strong>PIS:PAYMENT_ID_PDNG_SCT</strong></td> <td><strong>Must be set to this value on the Sandbox</strong>. On the production API, Must be set to this the consentId returned by the consent initialisation</td> </tr><tr><td><strong>client_id</strong></td> <td><strong>VALID_CLIENT_ID</strong></td> <td><strong>Must be set to this value on the Sandbox</strong>. On Production API, you must provide your NCA id</td> </tr><tr><td><strong>state</strong></td> <td>Any value</td> <td>On Production API, this is a dynamical value that you have to set in order to prevent XSRF attacks</td> </tr><tr><td><strong>redirect_uri</strong></td> <td>Any URI value</td> <td>On Production API, this corresponds to the URI where the OAuth2 server is redirecting the PSU after the authorization</td> </tr><tr><td><strong>code_challenge</strong></td> <td>Any value</td> <td>On Production API, this corresponds to PKCE challenge according to cryptographic RFC 7636 (https://tools.ietf.org/html/rfc7636) and is used to prevent code injection attacks</td> </tr><tr><td><strong>response_type</strong></td> <td>code</td> <td>Must be set to this value on the Sandbox and on Production API</td> </tr><tr><td><strong>code_challenge_method</strong></td> <td>S256</td> <td>On Production API this parameter is optionnal and corresponds to the code verifier transformation method ("S256" or "plain")</td> </tr></tbody></table><p> </p> <p>Following these instructions, you should build the following URI for the sandbox:</p> <p>The sandbox offers the possibility to simulate the different authentications scenarios (see the table below) using the following page:</p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text"> <a style="overflow-wrap: break-word;" href="https://webapi-sandbox.crelan.be/public/berlingroup/cancel/authorize/99999999-9999-9999-9999-999999999999?scope=PIS:PAYMENT_ID_PDNG_SCT&amp;client_id=VALID_CLIENT_ID&amp;state=test&amp;redirect_uri=http://localhost&amp;code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&amp;response_type=code&amp;code_challenge_method=S256"> https://webapi-sandbox.crelan.be/public/berlingroup/cancel/authorize/99999999-9999-9999-9999-999999999999?scope=PIS:PAYMENT_ID_PDNG_SCT&amp;client_id=VALID_CLIENT_ID&amp;state=test&amp;redirect_uri=http://localhost&amp;code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&amp;response_type=code&amp;code_challenge_method=S256</a> </div> <p>This URI will redirect on a mocked page on which you can test the different redirect scenarios of the authorisation flow. All user flow will display an information page before redirecting the PSU to the redirect_uri (HTTP 302 response).</p> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">Get the payment cancellation authorisations and status </div> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations </div> <p>This request retrieves the list of the authorisations of the cancellation of a payment. </p> <p>You can use the values below to test this API:</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 170px;">Payment service</th> <th style="width: 220px;">Payment product</th> <th style="width: 230px;">Payment Id</th> </tr><tr><td rowspan="3" align="center"><strong>payments</strong></td> <td><strong>sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PATC_SCT</td> </tr><tr><td><strong>cross-border-credit-transfers</strong></td> <td>PAYMENT_ID_PATC_CBP</td> </tr><tr><td><strong>instant-sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PATC_ISCT</td> </tr><tr><td rowspan="3" align="center"><strong>periodic-payments</strong></td> <td><strong>sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PERIODIC_PATC_SCT</td> </tr><tr><td><strong>cross-border-credit-transfers</strong></td> <td>PAYMENT_ID_PERIODIC_PATC_CBP</td> </tr><tr><td><strong>instant-sepa-credit-transfers</strong></td> <td>PAYMENT_ID_PERIODIC_PATC_ISCT</td> </tr><tr><td rowspan="3" align="center"><strong>bulk-payments</strong></td> <td><strong>sepa-credit-transfers</strong></td> <td>PAYMENT_ID_BULK_PATC_SCT</td> </tr><tr><td><strong>cross-border-credit-transfers</strong></td> <td>PAYMENT_ID_BULK_PATC_CBP</td> </tr><tr><td><strong>instant-sepa-credit-transfers</strong></td> <td>PAYMENT_ID_BULK_PATC_ISCT</td> </tr></tbody></table><p> </p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">GET /berlingroup/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{paymentAuthorisationId} </div> <p> </p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 300px;">paymentAuthorisationId</th> <th style="width: 450px;">Description</th> </tr><tr><td><strong>11111111-1111-1111-1111-111111111111</strong></td> <td>To retrieve an authorisation with the status “finalised”</td> </tr><tr><td><strong>22222222-2222-2222-2222-222222222222</strong></td> <td>To retrieve an authorisation with the status “received”</td> </tr><tr><td><strong>33333333-3333-3333-3333-333333333333</strong></td> <td>To retrieve an authorisation with the status “psuIdentified”</td> </tr><tr><td><strong>44444444-4444-4444-4444-444444444444</strong></td> <td>To retrieve an authorisation with the status “psuAuthenticated”</td> </tr><tr><td><strong>55555555-5555-5555-5555-555555555555</strong></td> <td>To retrieve an authorisation with the status “scaMethodSelected”</td> </tr><tr><td><strong>66666666-6666-6666-6666-666666666666</strong></td> <td>To retrieve a authorisation with the status “started”</td> </tr><tr><td><strong>77777777-7777-7777-7777-777777777777</strong></td> <td>To retrieve an authorisation with the status “failed”</td> </tr><tr><td><strong>88888888-8888-8888-8888-888888888888</strong></td> <td>To retrieve an authorisation with the status “exempted”</td> </tr></tbody></table><div class="field-item even"> </div> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#funds-confirmation"><h2>Funds confirmation</h2></a></div> </div> </div> <p>For more details, please refer to the HowTo <u><a href="/documentation?page=/documentation/piis-confirmation-funds">Request a Confirmation of Funds</a></u></p> <div class="field field-name-field-how-to-block-endpoint-url field-type-text">POST /berlingroup/v1/funds-confirmations </div> <p>This request checks if funds are available for an account and an amount.</p> <p>The values below allow you performing the different scenario cases:</p> <table border="1" cellpadding="0" cellspacing="0" class="center"><tbody><tr><th style="width: 150px;">IBAN</th> <th style="width: 120px;">Amount on the account</th> <th style="width: 120px;">Overdraft of the account</th> <th style="width: 120px;">Currency</th> <th style="width: 120px;">PIIS Consent existence</th> </tr><tr><td><strong>FR8230066631856742938741993</strong></td> <td><strong>150,02</strong></td> <td><strong>100</strong></td> <td><strong>EUR</strong></td> <td><strong>yes</strong></td> </tr></tbody></table></div> </div> </div> </div> </div> <div class="field field--above generic-page__field-enable-on-this-page-menu-o"> <div class="field__label"> Enable &quot;on this page&quot; menu on doc section </div> <div class="field__item">On</div> </div> Fri, 10 Oct 2025 16:25:32 +0000 cln-devportal 24 at https://developer.crelan.be 08 - Specific BerlinGroup Implementation https://developer.crelan.be/documentation/specific-implementation <span>08 - Specific BerlinGroup Implementation</span> <span><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">cln-devportal</span></span> <span><time datetime="2025-10-10T18:25:32+02:00" title="Friday, October 10, 2025 - 18:25">October 10, 2025</time> </span> <div class="paragraph text text--default"> <div> <div class="row justify-content-md-center"> <div class="col-md-12"> <div class="field field--hidden text__field-text"> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#general-information"><h2>General Information</h2></a></div> </div> </div> <ul><li style="box-sizing: border-box;"> API base URL: <u><a href="https://api.crelan.be">https://api.crelan.be</a></u> </li> <li style="box-sizing: border-box;"> Authorisation base URL: <u><a href="https://webapi.crelan.be/public">https://webapi.crelan.be/public</a></u> </li> <li style="box-sizing: border-box;"> Sandbox base URL : <u><a href="https://api-sandbox.crelan.be">https://api-sandbox.crelan.be</a></u> </li> <li style="box-sizing: border-box;"> Sandbox authorisation base URL : <u><a href="https://webapi-sandbox.crelan.be/public">https://webapi-sandbox.crelan.be/public</a></u> </li> <li>BerlinGroup Conformity : <u><a href="https://www.berlin-group.org/nextgenpsd2-downloads">Implementation Guidelines version 1.3</a></u> <p>More details on how the APIs work, including sample queries, etc, are available in the Berlin Group's specifications. The above link redirects to the Implementation Guidelines, as well as the Berlin Group specifications in Open API 3.0 format. </p> </li> </ul><div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#tpp-identification"><h2>TPP Identification Policy</h2></a></div> </div> </div> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">QWAC verification</div> <p>A valid QWAC Certificate for PSD2 is required to access the Sandbox and Berlin Group API. The following conditions are verified: </p><ul><li style="box-sizing: border-box;"> The certificate must be valid (the connection date is strictly between the creation date and the expiration date of the certificate)</li> <li style="box-sizing: border-box;"> The certificate must be issued by a QWAC Certificate Authority. The official list of QTSP is available on the <u><a href="https://webgate.ec.europa.eu/tl-browser/#/" target="_blank">eIDAS Trusted List</a></u></li> <li style="box-sizing: border-box;"> The certificate should not be revoked</li> </ul> If one of the conditions is not fulfilled, the connection is closed and the TPP received an HTTP 403 response (Access forbidden). <p>A TPP can provide and use any number of valid certificates as long as the CA properties and organizationIdentifier stay the same. The old certificates are not revoked when a new valid certificate is presented by the TPP and can be kept in use until their expiration date is passed.</p> <div class="field-items"> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#general-settings"><h2>General settings</h2></a></div> </div> </div> <table align="center" border="1" cellpadding="3" cellspacing="1" style="width: 800px;"><thead><tr><th colspan="2" scope="col">SCA Approach</th> <th scope="col" style="text-align: center;" width="100px"><span>Supported</span></th> </tr></thead><tbody><tr><td colspan="2">Redirect <u><a href="https://oauth.net/2/" target="_blank">OAuth 2.0</a></u> workflow</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td colspan="2">App redirection using App-to-App redirection based on deep linking workflow</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td colspan="2">Decoupled workflow</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Embedded workflow</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr></tbody></table></div><div class="field-items"><a name="ais" id="ais"></a> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#account-information-service"><h2>Account Information Service</h2></a></div> </div> </div> <table align="center" border="1" cellpadding="3" cellspacing="1" style="width: 800px;"><thead><tr><th colspan="2" scope="col">Services</th> <th scope="col" style="text-align: center;" width="100px"><span>Supported</span></th> </tr></thead><tbody><tr><td colspan="2">Support of multiple consents</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Support of Signing Baskets</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Support of Card Accounts Endpoints</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Support display of Account ownerName and ownerNames</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td colspan="2">Support display of Account psuName</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Owner name always delivered without taking into account the consent scope</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Support of Trusted Beneficiaries endpoint</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Support of Multilevel SCA Approach</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Maximum Frequency Per Day Value Supported on Consent Request</td> <td class="rtecenter">4</td> </tr><tr><td colspan="2">SCA Validity for a current consent</td> <td class="rtecenter">180 days</td> </tr><tr><td colspan="2">SCA Validity for a one-off consent</td> <td class="rtecenter">20 min</td> </tr><tr><td colspan="2">Consent establishment Timeout</td> <td class="rtecenter">3 days</td> </tr><tr><td colspan="2">Support of parameter withBalance on APIs</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td rowspan="3">Supported Account Reference Identifiers</td> <td>IBAN</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>MaskedPan</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>BBAN</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td rowspan="9">Consent scope</td> <td>Dedicated consent (List of accounts)</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>Dedicated consent - Support of ownerName in additionalInformation property</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>Dedicated consent - Support of trustedBeneficiaries in additionalInformation property</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Global consent - availableAccounts = allAccounts</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>Global consent - availableAccountsWithBalance= allAccounts</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>Global consent - allPsd2= allAccounts</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>Global consent - availableAccounts = allAccountsWithOwnerName</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>Global consent - availableAccountsWithBalance= allAccountsWithOwnerName</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>Global consent - allPsd2= allAccountsWithOwnerName</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td colspan="2">Supported Access for MultiCurrency Accounts</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td rowspan="3">Multicurrency level</td> <td>Aggregation level</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Sub-account level</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Aggregation &amp; sub-account level</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td rowspan="6">Balance Type</td> <td>closingBooked</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>expected</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>openingBooked</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>interimAvailable</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>interimBooked</td> <td class="rtecenter"><span style="color:#008000;">✔</span> </td> </tr><tr><td>forwardAvailable</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td rowspan="9">Supported Transactions Query Parameters</td> <td>bookingStatus = booked</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>bookingStatus = pending</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>bookingStatus = both</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>bookingStatus = all to request all types of transactions (pending, booked and information) at once</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>dateFrom</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>dateTo</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>entryReferenceFrom</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>deltaList</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Support of Standing orders endpoint (bookingStatus=information)</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td rowspan="7">Supported optional transaction information (Standing Orders)</td> <td>debtorName</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>instructionIdentification</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>remittanceInformationUnstructuredArray</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>remittanceInformationStructuredArray</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>creditorAgent</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>debtorAgent</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>balanceAfterTransaction</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr></tbody></table></div> <div class="field-items"><a name="pis" id="pis"></a> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#payment-initiation-service"><h2>Payment Initiation Service</h2></a></div> </div> </div> <table align="center" border="1" cellpadding="3" cellspacing="1" style="width: 800px;"><thead><tr><th colspan="2" scope="col">Services</th> <th scope="col" style="text-align: center;" width="100px"><span>Supported</span></th> </tr></thead><tbody><tr><td colspan="2">Support of Signing Baskets</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Payment initiation Timeout</td> <td class="rtecenter">2 days</td> </tr><tr><td colspan="2">Support of PIS without IBAN - Retrieval of debtor accounts with AIS flow</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td colspan="2">Selection of debtor account on CBS pages when payment submission without IBAN</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Funds Availability on Payment Status Information (implicit FCS over PIS)</td> <td class="rtecenter"><span style="color:#008000;">✔</span> <br /></td> </tr><tr><td colspan="2">Support of TPP-Rejection-NoFunds-Preferred Header</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Support payment status notification (instant payment only)</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td colspan="2">Mandatory Authorisation on Payment Cancellation</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td colspan="2">Supported Access for MultiCurrency Accounts</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td rowspan="3">Multicurrency level</td> <td>Aggregation level</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Sub-account level</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Aggregation &amp; sub-account level</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Support display of ownerNames in payment status request</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Support display of psuName in payment status request and SCA status request</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr></tbody></table><p> </p> <table style="width: 800px;" cellspacing="1" cellpadding="3" border="1" align="center"><tbody><tr><th colspan="4" style="width:800;" nowrap="nowrap"><p><strong>Support of SEPA credit transfers</strong></p></th> </tr><tr><th style="width:290px;" nowrap="nowrap"><p><strong>Payment services</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Single payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Periodic Payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Bulk Payments</strong></p></th> </tr><tr><td>Support</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> </tr><tr><td>Cancel</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Support of Future Dated Payments</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> </tr><tr><td>Multilevel SCA Approach</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap" colspan="3"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><th style="width:290px;"><p><strong>Optional properties management on payment</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Single payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Periodic Payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Bulk Payments</strong></p></th> </tr><tr><td>debtorId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>debtorName</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>ultimateDebtor</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>currencyOfTransfer</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> </tr><tr><td>instructionIdentification</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>exchangeRateInformation</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorAgentName</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorNameAndAddress</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>ultimateCreditor</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>purposeCode</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>chargeBearer</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>remittanceInformationUnstructured</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> </tr><tr><td>remittanceInformationUnstructuredArray</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>remittanceInformationStructured</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> </tr><tr><td>remittanceInformationStructuredArray</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>paymentInformationId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>requestedExecutionDate</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> </tr><tr><td>requestedExecutionTime</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr></tbody></table><p> </p> <table style="width: 800px;" cellspacing="1" cellpadding="3" border="1" align="center"><tbody><tr><th colspan="4" style="width:800;" nowrap="nowrap"><p><strong>Support of crossborder payment</strong></p></th> </tr><tr><th style="width:290px;" nowrap="nowrap"><p><strong>Payment services</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Single payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Periodic Payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Bulk Payments</strong></p></th> </tr><tr><td>Support</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Cancel</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Support of Future Dated Payments</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> </tr><tr><td>Multilevel SCA Approach</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap" colspan="3"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><th style="width:290px;"><p><strong>Optional properties management on payment</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Single payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Periodic Payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Bulk Payments</strong></p></th> </tr><tr><td>debtorId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>debtorName</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>ultimateDebtor</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>currencyOfTransfer</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>instructionIdentification</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>exchangeRateInformation</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorAgentName</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorNameAndAddress</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>ultimateCreditor</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>purposeCode</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>chargeBearer</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>remittanceInformationUnstructured</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>remittanceInformationUnstructuredArray</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>remittanceInformationStructured</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>remittanceInformationStructuredArray</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>paymentInformationId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>requestedExecutionDate</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> </tr><tr><td>requestedExecutionTime</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><th style="width:290px;" nowrap="nowrap" colspan="3"><p><strong>Identification management for crossborder payment</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Supported</strong></p></th> </tr><tr><td colspan="3">IBAN</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td colspan="3">IBAN + BIC + Country Code</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> </tr><tr><td colspan="3">IBAN + BIC</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> </tr><tr><td colspan="3">BBAN + BIC + Country Code</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td colspan="3">BBAN + BIC</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr></tbody></table><p> </p> <table style="width: 800px;" cellspacing="1" cellpadding="3" border="1" align="center"><tbody><tr><th colspan="4" style="width:800;" nowrap="nowrap"><p><strong>Support of Instant SEPA credit transfers</strong></p></th> </tr><tr><th style="width:290px;" nowrap="nowrap"><p><strong>Payment services</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Single payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Periodic Payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Bulk Payments</strong></p></th> </tr><tr><td>Support</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> </tr><tr><td>Cancel</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Support of Future Dated Payments</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> </tr><tr><td>Multilevel SCA Approach</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap" colspan="3"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><th style="width:290px;"><p><strong>Optional properties management on payment</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Single payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Periodic Payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Bulk Payments</strong></p></th> </tr><tr><td>debtorId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>debtorName</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>ultimateDebtor</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>currencyOfTransfer</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>instructionIdentification</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>exchangeRateInformation</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorAgentName</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorNameAndAddress</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>ultimateCreditor</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>purposeCode</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>chargeBearer</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>remittanceInformationUnstructured</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span></td> </tr><tr><td>remittanceInformationUnstructuredArray</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>remittanceInformationStructured</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>remittanceInformationStructuredArray</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>paymentInformationId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>requestedExecutionDate</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color:#008000;">✔</span> </td> </tr><tr><td>requestedExecutionTime</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr></tbody></table><p> </p> <table style="width: 800px;" cellspacing="1" cellpadding="3" border="1" align="center"><tbody><tr><th colspan="4" style="width:800;" nowrap="nowrap"><p><strong>Support of Target2 payment</strong></p></th> </tr><tr><th style="width:290px;" nowrap="nowrap"><p><strong>Payment services</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Single payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Periodic Payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Bulk Payments</strong></p></th> </tr><tr><td>Support</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Cancel</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Support of Future Dated Payments</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> </tr><tr><td>Multilevel SCA Approach</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap" colspan="3"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><th style="width:290px;"><p><strong>Optional properties management on payment</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Single payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Periodic Payments</strong></p></th> <th style="width:170px; text-align: center;" nowrap="nowrap"><p><strong>Bulk Payments</strong></p></th> </tr><tr><td>debtorId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>debtorName</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>ultimateDebtor</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>currencyOfTransfer</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>instructionIdentification</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>exchangeRateInformation</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorAgentName</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>creditorNameAndAddress</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>ultimateCreditor</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>purposeCode</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>chargeBearer</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>remittanceInformationUnstructured</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>remittanceInformationUnstructuredArray</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>remittanceInformationStructured</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>remittanceInformationStructuredArray</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>paymentInformationId</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>requestedExecutionDate</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr><tr><td>requestedExecutionTime</td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"></td> <td class="rtecenter" style="width:170px;" nowrap="nowrap"><span style="color: rgb(255, 0, 0)">✖</span> </td> </tr></tbody></table><p> </p> <table align="center" border="1" cellpadding="3" cellspacing="1" style="width: 800px;"><thead><tr><th colspan="2" scope="col">Periodic payments options</th> <th scope="col" style="text-align: center;" width="100px"><span>Supported</span></th> </tr></thead><tbody><tr><td colspan="2">Support of Day Of Execution</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td rowspan="2">Supported Execution Rules</td> <td>Following</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>Preceding</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td rowspan="9&quot;">Supported Frequencies</td> <td>Daily</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>Weekly</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>EveryTwoWeeks</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Monthly</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>EveryTwoMonths</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>Quarterly</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>SemiAnnual</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>Annual</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td>MonthlyVariable</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr></tbody></table><p> </p> </div> <div class="field-items"><a name="fcs" id="fcs"></a> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even"><a href="#funds-confirmation-service"><h2>Funds Confirmation Service</h2></a></div> </div> </div> <table align="center" border="1" cellpadding="3" cellspacing="1" style="width: 800px;"><thead><tr><th colspan="2" scope="col">Services</th> <th scope="col" style="text-align: center;" width="100px"><span>Supported</span></th> </tr></thead><tbody><tr><td colspan="2">Support of Funds Confirmation Endpoints</td> <td class="rtecenter"><span style="color:#008000;">✔</span></td> </tr><tr><td colspan="2">Creation of Funds Confirmation consent by TPP</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td colspan="2">Support Access for MultiCurrency accounts</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td rowspan="3">Multicurrency level</td> <td>Aggregation level</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Sub-account level</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr><tr><td>Aggregation &amp; sub-account level</td> <td class="rtecenter"><span style="color: rgb(255, 0, 0)">✖</span></td> </tr></tbody></table></div> </div> </div> </div> </div> </div> <div class="field field--above generic-page__field-enable-on-this-page-menu-o"> <div class="field__label"> Enable &quot;on this page&quot; menu on doc section </div> <div class="field__item">On</div> </div> Fri, 10 Oct 2025 16:25:32 +0000 cln-devportal 23 at https://developer.crelan.be 07 - Perform a Strong Customer Authentication https://developer.crelan.be/documentation/sca <span>07 - Perform a Strong Customer Authentication</span> <span><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">cln-devportal</span></span> <span><time datetime="2025-10-10T18:25:32+02:00" title="Friday, October 10, 2025 - 18:25">October 10, 2025</time> </span> <div class="paragraph text text--default"> <div> <div class="row justify-content-md-center"> <div class="col-md-12"> <div class="field field--hidden text__field-text"><div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even">Description</div> </div> </div> <p>To carry out its strong authentication on the ASPSP side, the PSU will be redirected from the TPP APP through several pages within the workflow described below.</p> <p><img src="/sites/cln/themes/crelan/images/07-SCA-Workflow.png" /></p> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even">AIS Signature Screen</div> </div> </div> <p><img src="/sites/cln/themes/crelan/images/07-StrongAuth-Signature-AIS-1.PNG" /><img src="/sites/cln/themes/crelan/images/07-StrongAuth-Signature-AIS-2.PNG" /></p> <p>Before being redirected to the TPP App, the PSU will access a redirection screen with some context related to the given authorisation. This screen is slightly different for AIS and PIS.</p> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even">PIS Signature Screen</div> </div> </div> <p><img src="/sites/cln/themes/crelan/images/07-StrongAuth-Signature-PIS-1.png" /><img src="/sites/cln/themes/crelan/images/07-StrongAuth-Signature-PIS-2.png" /></p> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even">AIS Redirection Screen</div> </div> </div> <p><img src="/sites/cln/themes/crelan/images/07-StrongAuth-AIS-Redirection.png" /></p> <p>'</p> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-items"> <div class="field-item even">PIS Redirection Screen</div> </div> </div> <p><img src="/sites/cln/themes/crelan/images/07-StrongAuth-PIS-Redirection.png" /></p> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-item even"><a href="#app2app"><h2>App2App</h2></a></div> </div> <div> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">AIS</div> <p><img src="/sites/cln/themes/crelan/images/07-app2app-StrongAuth-Signature-AIS.PNG" /></p> </div> <div> <div class="field field-name-field-how-to-block-endpoint-name field-type-text">PIS</div> <p><img src="/sites/cln/themes/crelan/images/07-app2app-StrongAuth-Signature-PIS.PNG" /></p> </div> <div class="field field-name-field-how-to-block-section-title field-type-text field-label-hidden"> <div class="field-item even"><a href="#error-management"><h2>Error Management</h2></a></div> </div> </div> </div> </div> </div> </div> <div class="field field--above generic-page__field-enable-on-this-page-menu-o"> <div class="field__label"> Enable &quot;on this page&quot; menu on doc section </div> <div class="field__item">On</div> </div> Fri, 10 Oct 2025 16:25:32 +0000 cln-devportal 22 at https://developer.crelan.be