A scheduled maintenance will take place on the DevPortal on February 17, from 9:00am GMT+1 to 10:00am GMT+1.
We apologize for any inconvenience caused and thank you for your understanding.
Scheduled maintenance on DevPortal with complete downtime on February 11 all day long
A scheduled maintenance will take place on the DevPortal on Wednesday, February 11, starting at 8:00 AM (GMT+1).
Scheduled maintenance on DevPortal on Monday, January 26 from 10:00 to 11:00 AM
A scheduled maintenance will take place on the DevPortal on Monday, January 26, from 10:00 to 11:00, resulting in a total outage during this period.
PLANNED INTERVENTION 16th November: XS2A API Unavailability (PROD)
We are performing a planned technical intervention on the PROD environment on Sunday, November 16, 2025.
The XS2A APIs will not be available throughout this intervention.
Production APIs
13 - Build your authorize URL
On the production and sandbox environments, the "scaOauth" property of a consent creation (with header tppExplicitAuthorizationPreferred = false) or a POST /authorization
endpoint is the following:
{
…
"_links": {
"scaOAuth": {
"href": "https://openbankingapi.nagelmackers.be/berlingroup/.well-known/openid-configuration?authorizationId=31f68ab6-1ce6-4131-a324-3f37d2ca4b02"
},
…
}
}
You have to call this URL and retrieve the “authorization_enpoint” property in the response:
{
"issuer": "https://openbankingapi.nagelmackers.be",
"authorization_endpoint": "https://openbankingweb-api.nagelmackers.be/public/berlingroup/authorize/31f68ab6-1ce6-4131-a324-3f37d2ca4b02",
"token_endpoint": "https://openbankingapi.nagelmackers.be/berlingroup/v1/token",
"userinfo_endpoint": "https://openbankingapi.nagelmackers.be/berlingroup/v1/accounts",
"scopes_supported": [
"account",
"payment"
],
"response_types_supported": [
"code"
],
"grant_types_supported": [
"client_credentials",
"authorization_code",
"refresh_token"
],
"code_challenge_methods_supported": [
"S256"
],
"subject_types_supported": [
"public"
]
}
With this property, you will be able to build your authorize URL with the following parameters:
| URI parameter | Description |
|---|---|
| scope |
This parameter corresponds to the consentId of the consent creation or the paymentId of the payment initiation Examples: AIS:1587559935-bae68c2 PIS:1587561419-bp5b5f2 |
| client_id | This parameter corresponds to your NCA id |
| state | Dynamic value that you have to set in order to prevent XSRF attacks |
| redirect_uri |
This parameter corresponds to the URI where the OAuth2 server is redirecting the PSU after the authorization. NB : this redirect_uri has to be the same used for the consent creation or payment initiation |
| code_challenge | This parameter corresponds to PKCE challenge according to cryptographic RFC 7636 which is used to prevent code injection attacks |
| response_type | Type of the response. This value has to be set to “code” |
| code_challenge_method | Optional parameter which corresponds to the code verifier transformation method ("S256" or "plain") |
Following these instructions your authorize URL should look like this and is now valid to process the authorization of the PSU:
This process to build the authorize URL is the same for a payment initiation.
NB : the "redirect_uri" parameter in the URL has to be the same as the "TPP-Redirect-URI" header of the consent creation
12 - Connect to the sandbox or Berlin Group APIs
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.
The TLS-connection has to be established always including client (i.e. TPP) authentication.
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 eIDAS regulation.
The content of the certificate has to be compliant with the requirements of the EBA-RTS and follow the ETSI TS 119 495 V1.2.1 (2018-11) technical specification.
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 the client certificate to be presented within each request.
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)
For the Berlin Group APIs, the QWAC certificate has to be issued from a production CA.
Make sure that your QWAC configuration is correct by testing the following endpoint on the sandbox (no headers are necessary)
11 - Monitor performance & availability of our APIs
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:
https://www.nagelmackers.be/fr/psd2/statistics - french version
https://www.nagelmackers.be/nl/psd2/statistics - dutch version
You will be able to see daily statistics on a quarterly basis on the availability and performance of our APIs.
10 - Contact our support team
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 : technical-support@nagelmackers.be
Please try to give us the full context of your request :
- TPP Name,
- TPP Registration Number,
- Date and Time of the issue,
- Service : AIS, PIS, FCS,
- Endpoint,
- Error message, error code, screenshot,
- Information about concerned version by using one of the following URLs.
A valid QWAC Certificate for PSD2 is required in order to access these URLs.
The certificate is mandatory, otherwise you will get an error :
Our support team will answer you as soon as possible.