ob-data-accountvalidation
Account validation use case page
Account validation use case page
You can request to revoke account holder's consent. If the revocation is successful, the status of the consent will be changed to ‘Revoked’. If it’s not possible to revoke the consent, the status of the consent will be set to ‘RevokedAtTpp’, meaning the consent might still be active on the bank's side but can't no longer be used by you to retrieve the data.
In this testing scenario, it has been considered that consent has been revoked successfully. Take the following steps to complete this scenario.
If the banks supports paginated response but the number of transactions is considered too high or if the bank provides the response in CAMT format, it might be possible that the GET transactions response contains a download link only.
Using the link you can download the list of transactions in JSON format. If the bank provides the transactions in a non-JSON format, the transactions are converted to JSON by Worldline.
Processing flow for this scenario is similar to described in “Redirect flow with Date filter only” section with addition of GET /download/transactions API.
Account holder's (PSU) consent is needed to access their bank accounts details. In the Redirect Authorisation approach, the browser session of the account holder is redirected from your software / Worldline Bank Selection Interface to mock bank. In that case the mock bank provides all the pages required for authentication (usually username, password). After that the account holder is redirected to Worldline Open Banking Service and from there back to your software.
Take the following steps to complete this scenario.
This scenario is similar to the first testing scenario with a slight difference, that the returned transactions are filtered using both date and time parameters ("dateFrom" & "dateTo" query parameters) as we want to bring to your attention that some banks provide requested transaction data based on date & time.
Take the following steps to complete this scenario.
Account holder's (PSU) consent is needed to access their bank accounts details. In the Redirect Authorisation approach, the browser session of the account holder is redirected from your software / Worldline Bank Selection Interface to mock bank. In that case the mock bank provides all the pages required for authentication (usually username, password). After that the account holder is redirected to Worldline Open Banking Service and from there back to your software.
Take the following steps to complete this scenario.
Below you'll find a list of account data testing scenarios. Each scenario has a separate page including a step by step description of the steps to complete the scenario. You can choose a scenario by providing the corresponding ASPSP ID in the request, which initiates the consent.
To simplify the interaction, these scenario's work with a static token which doesn't expire. This sandbox token is supplied in the API reference.
You can use the sandbox:
Sr. No. | Scenario Name | ASPSP ID | Scenario Guideline |
01. | Redirect Flow With Date Filter Only (accounts, balances and transactions are retrieved) | 20101 | Read more |
02. | Redirect Flow With DateTime Filter (accounts, balances and transactions are retrieved) | 20116 | Read more |
03. | Download Transactions | 20102 | Read more |
04. | Delete Consents | 20101 | Read more |
Account data is only provided with the consent of the account holder. Consent can be given according to three permission groups where a combination of the 3 groups is possible:
The consent can be granted to all accounts or to specific accounts depending whether account holder's bank supports the detailed consent.
Endpoint: POST /psus/{psuId}/consents
Base URL: /xs2a/routingservice/services/ob/ais/v3
This endpoint is used to set up a consent for an account holder for a specific bank. Depending on the bank's API the possible combinations of permissions and account references differ. Use Permissions body parameter to specify what information you wish to obtain (accounts and / or balances and / or transactions). In case it was not provided, the default (access to all) is used.
In case recurring consent is needed, you should use the body parameter ‘RecurringIndicator’ = True. The default behavior is to request a recurring consent valid for 180 days unless the ValidUntilDate is provided.
Supported consent flows will be determined by the Links section of the response.
Request (click to enlarge) | Response (click to enlarge) |
![]() | ![]() |
We support the Multi-Level SCA. In this case consent has to be authorized by multiple account holders. There are no specific endpoints defined for this. The single authorizations have to be started explicitly by the POST Authorization endpoint for each single account holder.
The Reach Directory API allows to retrieve a list of all connected banks and their details such as bank's name and bank's id. It is sufficient to refresh the list of banks once a day. For each bank we provide additional information on their PSD2 implementation, which you need to take into account while implementing consent management and data retrieval. The additional information is split into 2 parts - 'Details' and 'Options'.
Once you retrieve the list of supported banks, you will present it to the user either through the screens you have built or through Worldline Bank Selection interface. Once user bank is selected, you will need to check in Reach API response whether the selected bank requires pre-authentication or you can initiate the consent straight away.
Endpoint: GET /aspsps
The base URL for the Reach Directory is: /xs2a/routingservice/services/directory/v3
This endpoint is used to retrieve the reach directory.
Request | Response (click to enlarge) |
![]() | ![]() |
Request
curl -X GET "https://xs2a.awltest.de/xs2a/routingservice/services/directory/v3/aspsps?allDetails=true&allOptions=true&allAspspSpecificFields=true"
-H "accept: application/json"
-H "X-Request-ID: abcdef2e-3000-4000-88cc-ae40e3b113d7"
-H "MessageCreateDateTime: 2023-09-25T08:15:00.856Z"
-H "Service: AIS"
-H "Authorization: Bearer dc9833a74c712d8c7a50476e71768a1f"
Response body
{
"Service": "AIS",
"Groups": [],
"ASPSP": [
{
"AspspId": "20101",
"Name": [
{
"Label": "Account information redirect + Transaction date filter",
"Language": "en"
}
],
"Country": "XX",
"CategoryLabel": [
"Retail"
],
"Details": [
{
"Api": "POST /psus/{psuId}/aspsps/{aspspId}/consents/{consentId}/identification",
"Fieldname": "preferredScaMethod",
"Type": "SUPPORTED",
"Value": "REDIRECT",
"ProtocolVersion": "BG_V_1_3_6"
}
],
"Options": [],
"BIC": "XXAIS001"
},
{
"AspspId": "20116",
"Name": [
{
"Label": "Account information redirect + Transaction datetime filter",
"Language": "en"
}
],
"Country": "XX",
"CategoryLabel": [],
"Details": [
{
"Api": "POST /psus/{psuId}/aspsps/{aspspId}/consents/{consentId}/identification",
"Fieldname": "preferredScaMethod",
"Type": "SUPPORTED",
"Value": "REDIRECT",
"ProtocolVersion": "STET_V_1_4_2_1_7"
}
],
"Options": [],
"BIC": "XXAIS001"
},
{
"AspspId": "20102",
"Name": [
{
"Label": "Account information redirect + Download transactions",
"Language": "en"
}
],
"Country": "FR",
"CategoryLabel": [
"Retail"
],
"Details": [
{
"Api": "POST /psus/{psuId}/aspsps/{aspspId}/consents/{consentId}/identification",
"Fieldname": "preferredScaMethod",
"Type": "SUPPORTED",
"Value": "REDIRECT",
"ProtocolVersion": "BG_V_1_3_6"
}
],
"Options": [],
"BIC": "XXAIS001"
}
]
}
The Details section in the reach directory response consists of the following fields:
If there is no FieldName, the Type describes whether this endpoint is available (SUPPORTED) or not (UNSUPPORTED):
Type | API endpoint support |
---|---|
UNSUPPORTED | The mentioned Api is not supported by account holder's bank, you will receive an error if it’s used. |
SUPPORTED | The mentioned Api is supported by account holder's bank. If POST is supported, the corresponding API methods (GET, PUT, DELETE) are also supported, if defined in the swagger. |
If the FieldName is given, the Type is describing whether the field is UNSUPPORTED, SUPPORTED, MANDATORY or FORBIDDEN. The table below specifies the rules for the Type-FieldName combination:
Type | FieldName restrictions |
---|---|
UNSUPPORTED | The FieldName is not supported. If mentioned FieldName is provided in request, you will receive an error. |
SUPPORTED | The field mentioned in FieldName is supported and you need to use one of the values provided in the Value field. If you won't provide a specific value in the request, a default value will be used. If an unsupported value is used, you will receive an error. |
MANDATORY | The mentioned FieldName is mandatory and has to be filled with one of the values in the Value field. In case Value field does not contain specific value, you can use any value. If you won't provide a specific value in the request or use an unsupported value, you will receive an error. |
FORBIDDEN | The mentioned FieldName is forbidden. If used, you will receive an error. |
An example for API endpoint without the FieldName is the pre-authentication API. For most banks, a pre-authentication is not supported. For those banks where a pre-authentication is possible there is a record in the Details section:
"Api": "POST /psus/{psuId}/Aspsps/{aspspId}/pre-authentication",
"Type": "SUPPORTED",
"ProtocolVersion": "BG_V_1_3_0"
The example below indicates that from the 'preferredScaMethod' enumeration only the value 'REDIRECT' can be used.
"Api": "POST /psus/{psuId}/aspsps/{aspspId}/consents",
"Fieldname": "preferredScaMethod",
"Type": "SUPPORTED",
"Value": "REDIRECT",
"ProtocolVersion": "STET_V_1_4_2_1_7"
The Options section provides information regarding the way of using API endpoints for specific bank similar to the Details section. But the information given here is not that specifically related a single API endpoint. It is more to be seen as a parameter for the bank.
Since the Options are not defined for a single endpoint there is no Api attribute given for the single options. Instead they have two keys (Key1 and Key2) identifying the use of the single Option. An example:
"Key1": "PREAUTH_MANDATORY",
"Value": "1",
"Level": "INFORMATIONAL"
In this case for the given bank pre-authentication is mandatory because the value is set to 1. The setting of 1 is reflecting that the option is set. A list of possible option keys is given below. The Key2 is currently not used. It is foreseen to allow definition of grouped options having the same main key Key1 and a different sub-key key2. An example for options provided in the Reach API is shown below:
Key1 | Key2 | Value | Level | Description |
---|---|---|---|---|
PREAUTH_MANDATORY | 1, 0 | INFORMATIONAL | The pre-authentication (regardless whether being done implicitly or explicitly) is mandatory. Default 0 | |
PREAUTH_EXPLICIT_REQUIRED | 1, 0 | CRITICAL | Pre-authentication has to be done explicitly by the POST pre-authentication endpoint. |
ais transaction flow
As account holder needs to grant access to their data, the process of retrieving account data consists of several main steps, also visible in the diagram below:
We prepared a set of functions supporting these steps (the white boxes in the diagram). Each of those functions have a page with more explanation. You can choose how to integrate:
Data retrieval is done with API's during the validity time of the consent (up to 6 months). You can consult consent's validity by using dedicated get consent status endpoint.