openapi: 3.0.1
info:
title: PSD2 API - Bank J.Van Breda & Co
version: 1.3.14_2025-01-24
description: "# Summary\nThe **NextGenPSD2** *Framework Version 1.3.14* offers a modern, open, harmonised and interoperable\
\ set of\nApplication Programming Interfaces (APIs) as the safest and most efficient way to provide data securely.\nThe\
\ NextGenPSD2 Framework reduces XS2A complexity and costs, addresses the problem of multiple competing standards\nin Europe\
\ and, aligned with the goals of the Euro Retail Payments Board\nenables European banking customers to benefit from innovative\
\ products and services ('Banking as a Service')\nby granting TPPs safe and secure (authenticated and authorised) access\
\ to their bank accounts and financial data.\n\nThe possible Approaches are:\n * OAuth SCA Approach\n\n Not every message\
\ defined in this API definition is necessary for all approaches.\n Furthermore this API definition does not differ between\
\ methods which are mandatory, conditional, or optional.\n Therefore for a particular implementation of a Berlin Group\
\ PSD2 compliant API it is only necessary to support\n a certain subset of the methods defined in this API definition.\n\
\n **Please have a look at the implementation guidelines if you are not sure\n which message has to be used for the\
\ approach you are going to use.**\n\n## General Remarks on Data Types\n\nThe Berlin Group definition of UTF-8 strings\
\ in context of the PSD2 API has to support at least the following characters\n\na b c d e f g h i j k l m n o p q r s\
\ t u v w x y z\n\nA B C D E F G H I J K L M N O P Q R S T U V W X Y Z\n\n0 1 2 3 4 5 6 7 8 9\n\n/ - ? : ( ) . , ' +\n\
\nSpace"
license:
name: Creative Commons Attribution 4.0 International Public License
url: https://creativecommons.org/licenses/by/4.0/
contact:
name: The Berlin Group - A European Standards Initiative
url: https://www.berlin-group.org/
email: info@berlin-group.org
externalDocs:
description: 'Full Documentation of NextGenPSD2 Access to Account Interoperability Framework
(General Introduction Paper, Operational Rules, Implementation Guidelines)'
url: https://www.berlin-group.org/nextgenpsd2-downloads
servers:
- url: https://xs2a-api.bankvanbreda.be
description: Production server for Bank J.Van Breda & Co
- url: https://xs2a-sandbox.bankvanbreda.be
description: Sandbox server for Bank J.Van Breda & Co
paths:
/v1/{payment-service}/{payment-product}:
post:
summary: Payment initiation request
description: "This method is used to initiate a payment at the ASPSP.\n\n## Variants of payment initiation requests\n\
\nThere are the following **payment products**:\n - Payment products with payment information in *JSON* format:\n\
\ - ***sepa-credit-transfers***\n - ***instant-sepa-credit-transfers***\n - ***cross-border-credit-transfers***\n\
\nFurthermore the request body depends on the **payment-service**:\n * ***payments***: A single payment initiation\
\ request.\n * ***bulk-payments***: A collection of several payment initiation requests.\n\n In case of a *JSON*\
\ there are several JSON payment blocks contained in a joining list.\n * ***periodic-payments***:\n Create a standing\
\ order initiation resource for recurrent i.e. periodic payments addressable under {paymentId}\n with all data\
\ relevant for the corresponding payment product and the execution of the standing order contained in a JSON body.\n\
\nThis is the first step in the API to initiate the related recurring/periodic payment."
operationId: initiatePayment
tags:
- Payment Initiation Service (PIS)
parameters:
- $ref: '#/components/parameters/paymentService'
- $ref: '#/components/parameters/paymentProduct'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/consentId_HEADER_optional'
- $ref: '#/components/parameters/PSU-IP-Address_mandatory'
- $ref: '#/components/parameters/TPP-Redirect-Preferred'
- $ref: '#/components/parameters/TPP-Redirect-URI'
- $ref: '#/components/parameters/TPP-Nok-Redirect-URI'
- $ref: '#/components/parameters/TPP-Explicit-Authorisation-Preferred'
- $ref: '#/components/parameters/TPP-Rejection-NoFunds-Preferred'
- $ref: '#/components/parameters/TPP-Brand-Logging-Information'
- $ref: '#/components/parameters/TPP-Notification-URI'
- $ref: '#/components/parameters/TPP-Notification-Content-Preferred'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
requestBody:
$ref: '#/components/requestBodies/paymentInitiation'
responses:
'201':
$ref: '#/components/responses/CREATED_201_PaymentInitiation'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_PIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_PIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_PIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_PIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_PIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_PIS'
/v1/{payment-service}/{payment-product}/{paymentId}:
get:
summary: Get payment information
description: Returns the content of a payment object
operationId: getPaymentInformation
tags:
- Payment Initiation Service (PIS)
parameters:
- $ref: '#/components/parameters/paymentService'
- $ref: '#/components/parameters/paymentProduct'
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_optional'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'200':
$ref: '#/components/responses/OK_200_PaymentInitiationInformation'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_PIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_PIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_PIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_PIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_PIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_PIS'
delete:
summary: Payment cancellation request
description: "This method initiates the cancellation of a payment.\nDepending on the payment-service, the payment-product\
\ and the ASPSP's implementation\nthis TPP call might be sufficient to cancel a payment.\nIf an authorisation of the\
\ payment cancellation is mandated by the ASPSP\na corresponding hyperlink will be contained in the response message.\n\
\nCancels the addressed payment with resource identification paymentId if applicable to the payment-service, payment-product\
\ and received in product related timelines (e.g. before end of business day for scheduled payments of the last business\
\ day before the scheduled execution day).\n\nThe response to this DELETE command will tell the TPP whether the\n\
\ * access method was rejected\n * access method was successful, or\n * access method is generally applicable,\
\ but further authorisation processes are needed."
operationId: cancelPayment
tags:
- Payment Initiation Service (PIS)
parameters:
- $ref: '#/components/parameters/paymentService'
- $ref: '#/components/parameters/paymentProduct'
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/TPP-Redirect-Preferred'
- $ref: '#/components/parameters/TPP-Nok-Redirect-URI'
- $ref: '#/components/parameters/TPP-Redirect-URI'
- $ref: '#/components/parameters/TPP-Explicit-Authorisation-Preferred'
- $ref: '#/components/parameters/PSU-IP-Address_optional'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'204':
$ref: '#/components/responses/NO_CONTENT_204_PaymentInitiationCancel'
'202':
$ref: '#/components/responses/RECEIVED_202_PaymentInitiationCancel'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_PIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_PIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_PIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_PIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_PIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_PIS'
/v1/{payment-service}/{payment-product}/{paymentId}/status:
get:
summary: Payment initiation status request
description: Check the transaction status of a payment initiation.
operationId: getPaymentInitiationStatus
tags:
- Payment Initiation Service (PIS)
parameters:
- $ref: '#/components/parameters/paymentService'
- $ref: '#/components/parameters/paymentProduct'
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_optional'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'200':
$ref: '#/components/responses/OK_200_PaymentInitiationStatus'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_PIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_PIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_PIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_PIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_PIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_PIS'
/v1/{payment-service}/{payment-product}/{paymentId}/authorisations:
post:
summary: Start the authorisation process for a payment initiation
description: Create an authorisation sub-resource and start the authorisation process.
operationId: startPaymentAuthorisation
tags:
- Payment Initiation Service (PIS)
parameters:
- $ref: '#/components/parameters/paymentService'
- $ref: '#/components/parameters/paymentProduct'
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/TPP-Redirect-Preferred'
- $ref: '#/components/parameters/TPP-Redirect-URI'
- $ref: '#/components/parameters/TPP-Nok-Redirect-URI'
- $ref: '#/components/parameters/TPP-Notification-URI'
- $ref: '#/components/parameters/TPP-Notification-Content-Preferred'
- $ref: '#/components/parameters/PSU-IP-Address_optional'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'201':
$ref: '#/components/responses/CREATED_201_StartScaProcess'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_PIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_PIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_PIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_PIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_PIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_PIS'
get:
summary: Get payment initiation authorisation sub-resources request
description: 'Read a list of all authorisation subresources IDs which have been created.
This function returns an array of hyperlinks to all generated authorisation sub-resources.'
operationId: getPaymentInitiationAuthorisation
tags:
- Payment Initiation Service (PIS)
parameters:
- $ref: '#/components/parameters/paymentService'
- $ref: '#/components/parameters/paymentProduct'
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_optional'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'200':
$ref: '#/components/responses/OK_200_Authorisations'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_PIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_PIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_PIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_PIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_PIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_PIS'
/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}:
get:
summary: Read the SCA status of the payment authorisation
description: This method returns the SCA status of a payment initiation's authorisation sub-resource.
operationId: getPaymentInitiationScaStatus
tags:
- Payment Initiation Service (PIS)
parameters:
- $ref: '#/components/parameters/paymentService'
- $ref: '#/components/parameters/paymentProduct'
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/authorisationId'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_optional'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'200':
$ref: '#/components/responses/OK_200_ScaStatus'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_PIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_PIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_PIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_PIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_PIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_PIS'
/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations:
post:
summary: Start the authorisation process for the cancellation of the addressed payment
description: Creates an authorisation sub-resource and start the authorisation process of the cancellation of the addressed
payment.
operationId: startPaymentInitiationCancellationAuthorisation
tags:
- Payment Initiation Service (PIS)
parameters:
- $ref: '#/components/parameters/paymentService'
- $ref: '#/components/parameters/paymentProduct'
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/TPP-Redirect-Preferred'
- $ref: '#/components/parameters/TPP-Redirect-URI'
- $ref: '#/components/parameters/TPP-Nok-Redirect-URI'
- $ref: '#/components/parameters/TPP-Notification-URI'
- $ref: '#/components/parameters/TPP-Notification-Content-Preferred'
- $ref: '#/components/parameters/PSU-IP-Address_optional'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'201':
$ref: '#/components/responses/CREATED_201_StartScaProcess'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_PIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_PIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_PIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_PIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_PIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_PIS'
get:
summary: Will deliver an array of resource identifications to all generated cancellation authorisation sub-resources
description: Retrieve a list of all created cancellation authorisation sub-resources.
operationId: getPaymentInitiationCancellationAuthorisationInformation
tags:
- Payment Initiation Service (PIS)
parameters:
- $ref: '#/components/parameters/paymentService'
- $ref: '#/components/parameters/paymentProduct'
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_optional'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'200':
$ref: '#/components/responses/OK_200_Authorisations'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_PIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_PIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_PIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_PIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_PIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_PIS'
/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}:
get:
summary: Read the SCA status of the payment cancellation's authorisation
description: This method returns the SCA status of a payment initiation's authorisation sub-resource.
operationId: getPaymentCancellationScaStatus
tags:
- Payment Initiation Service (PIS)
parameters:
- $ref: '#/components/parameters/paymentService'
- $ref: '#/components/parameters/paymentProduct'
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/authorisationId'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_optional'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'200':
$ref: '#/components/responses/OK_200_ScaStatus'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_PIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_PIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_PIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_PIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_PIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_PIS'
/v1/accounts:
get:
summary: Read account list
description: 'Read the identifiers of the available payment account together with
booking balance information, depending on the consent granted.
It is assumed that a consent of the PSU to this access is already given and stored on the ASPSP system.
The addressed list of accounts depends then on the PSU ID and the stored consent addressed by consentId
respectively the OAuth2 access token.
Returns all identifiers of the accounts, to which an account access has been granted to through
the /consents endpoint by the PSU.
In addition, relevant information about the accounts and hyperlinks to corresponding account
information resources are provided if a related consent has been already granted.
Remark: Note that the /consents endpoint optionally offers to grant an access on all available
payment accounts of a PSU.
In this case, this endpoint will deliver the information about all available payment accounts
of the PSU at this ASPSP.'
operationId: getAccountList
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/withBalanceQuery'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/consentId_HEADER_mandatory'
- $ref: '#/components/parameters/PSU-IP-Address_conditionalForAis'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
- $ref: '#/components/parameters/Authorization_mandatory'
responses:
'200':
$ref: '#/components/responses/OK_200_AccountList'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_AIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_AIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_AIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_AIS'
'429':
$ref: '#/components/responses/TOO_MANY_REQUESTS_429_AIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_AIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_AIS'
/v1/accounts/{account-id}:
get:
summary: Read account details
description: 'Reads details about an account, with balances where required.
It is assumed that a consent of the PSU to
this access is already given and stored on the ASPSP system.
The addressed details of this account depends then on the stored consent addressed by consentId
respectively the OAuth2 access token.
**NOTE:** The account-id can represent a multicurrency account.
In this case the currency code is set to "XXX".
Give detailed information about the addressed account.
Give detailed information about the addressed account together with balance information'
operationId: readAccountDetails
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/withBalanceQuery'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/consentId_HEADER_mandatory'
- $ref: '#/components/parameters/PSU-IP-Address_conditionalForAis'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
- $ref: '#/components/parameters/Authorization_mandatory'
responses:
'200':
$ref: '#/components/responses/OK_200_AccountDetails'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_AIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_AIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_AIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_AIS'
'429':
$ref: '#/components/responses/TOO_MANY_REQUESTS_429_AIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_AIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_AIS'
/v1/accounts/{account-id}/balances:
get:
summary: Read balance
description: 'Reads account data from a given account addressed by "account-id".
**Remark:** This account-id can be a tokenised identification due to data protection reason since the path
information might be logged on intermediary servers within the ASPSP sphere.
This account-id then can be retrieved by the "Get account list" call.
The account-id is constant at least throughout the lifecycle of a given consent.'
operationId: getBalances
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/consentId_HEADER_mandatory'
- $ref: '#/components/parameters/PSU-IP-Address_conditionalForAis'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
- $ref: '#/components/parameters/Authorization_mandatory'
responses:
'200':
$ref: '#/components/responses/OK_200_Balances'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_AIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_AIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_AIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_AIS'
'429':
$ref: '#/components/responses/TOO_MANY_REQUESTS_429_AIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_AIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_AIS'
/v1/accounts/{account-id}/transactions:
get:
summary: Read transaction list of an account
description: 'Read transaction reports or transaction lists of a given account addressed by "account-id", depending
on the steering parameter
"bookingStatus" together with balances.
For a given account, additional parameters are e.g. the attributes "dateFrom" and "dateTo".
The ASPSP might add balance information, if transaction lists without balances are not supported.'
operationId: getTransactionList
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/dateFrom'
- $ref: '#/components/parameters/dateTo'
- $ref: '#/components/parameters/bookingStatusGeneric'
- $ref: '#/components/parameters/withBalanceQuery'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/consentId_HEADER_mandatory'
- $ref: '#/components/parameters/PSU-IP-Address_conditionalForAis'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
- $ref: '#/components/parameters/Authorization_mandatory'
responses:
'200':
$ref: '#/components/responses/OK_200_AccountsTransactions'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_AIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_AIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_AIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_AIS'
'429':
$ref: '#/components/responses/TOO_MANY_REQUESTS_429_AIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_AIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_AIS'
/v1/consents:
post:
summary: Create consent
description: This method create a consent resource, defining access rights for psu's available accounts.
operationId: createConsent
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/TPP-Redirect-Preferred'
- $ref: '#/components/parameters/TPP-Redirect-URI'
- $ref: '#/components/parameters/TPP-Nok-Redirect-URI'
- $ref: '#/components/parameters/TPP-Explicit-Authorisation-Preferred'
- $ref: '#/components/parameters/TPP-Brand-Logging-Information'
- $ref: '#/components/parameters/TPP-Notification-URI'
- $ref: '#/components/parameters/TPP-Notification-Content-Preferred'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-IP-Address_mandatory'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
requestBody:
$ref: '#/components/requestBodies/requestBodiesConsents'
responses:
'201':
$ref: '#/components/responses/CREATED_201_Consents'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_AIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_AIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_AIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_AIS'
'429':
$ref: '#/components/responses/TOO_MANY_REQUESTS_429_AIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_AIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_AIS'
/v1/consents/{consentId}:
get:
summary: Get consent request
description: 'Returns the content of an account information consent object.
This is returning the data for the TPP especially in cases
where the consent was directly managed between ASPSP and PSU e.g. in a redirect SCA Approach.'
operationId: getConsentInformation
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/consentId_PATH'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_conditionalForAis'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'200':
$ref: '#/components/responses/OK_200_ConsentInformation'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_AIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_AIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_AIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_AIS'
'429':
$ref: '#/components/responses/TOO_MANY_REQUESTS_429_AIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_AIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_AIS'
delete:
summary: Delete consent
description: The TPP can delete an account information consent object if needed.
operationId: deleteConsent
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/consentId_PATH'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_conditionalForAis'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'204':
$ref: '#/components/responses/NO_CONTENT_204_Consents'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_AIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_AIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_AIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_AIS'
'429':
$ref: '#/components/responses/TOO_MANY_REQUESTS_429_AIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_AIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_AIS'
/v1/consents/{consentId}/status:
get:
summary: Consent status request
description: Read the status of an account information consent resource.
operationId: getConsentStatus
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/consentId_PATH'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_conditionalForAis'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'200':
$ref: '#/components/responses/OK_200_ConsentStatus'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_AIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_AIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_AIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_AIS'
'429':
$ref: '#/components/responses/TOO_MANY_REQUESTS_429_AIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_AIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_AIS'
/v1/consents/{consentId}/authorisations:
post:
summary: Start the authorisation process for a consent
description: Create an authorisation sub-resource and start the authorisation process of a consent.
operationId: startConsentAuthorisation
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/consentId_PATH'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/TPP-Redirect-Preferred'
- $ref: '#/components/parameters/TPP-Redirect-URI'
- $ref: '#/components/parameters/TPP-Nok-Redirect-URI'
- $ref: '#/components/parameters/TPP-Notification-URI'
- $ref: '#/components/parameters/TPP-Notification-Content-Preferred'
- $ref: '#/components/parameters/PSU-IP-Address_conditionalForAis'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'201':
$ref: '#/components/responses/CREATED_201_StartScaProcess'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_AIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_AIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_AIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_AIS'
'429':
$ref: '#/components/responses/TOO_MANY_REQUESTS_429_AIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_AIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_AIS'
get:
summary: Get consent authorisation sub-resources request
description: 'Return a list of all authorisation subresources IDs which have been created.
This function returns an array of hyperlinks to all generated authorisation sub-resources.'
operationId: getConsentAuthorisation
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/consentId_PATH'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_conditionalForAis'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'200':
$ref: '#/components/responses/OK_200_Authorisations'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_AIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_AIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_AIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_AIS'
'429':
$ref: '#/components/responses/TOO_MANY_REQUESTS_429_AIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_AIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_AIS'
/v1/consents/{consentId}/authorisations/{authorisationId}:
get:
summary: Read the SCA status of the consent authorisation
description: This method returns the SCA status of a consent initiation's authorisation sub-resource.
operationId: getConsentScaStatus
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/consentId_PATH'
- $ref: '#/components/parameters/authorisationId'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_conditionalForAis'
- $ref: '#/components/parameters/PSU-IP-Port'
- $ref: '#/components/parameters/PSU-Accept'
- $ref: '#/components/parameters/PSU-Accept-Charset'
- $ref: '#/components/parameters/PSU-Accept-Encoding'
- $ref: '#/components/parameters/PSU-Accept-Language'
- $ref: '#/components/parameters/PSU-User-Agent'
- $ref: '#/components/parameters/PSU-Http-Method'
- $ref: '#/components/parameters/PSU-Device-ID'
responses:
'200':
$ref: '#/components/responses/OK_200_ScaStatus'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_AIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_AIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_AIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_AIS'
'429':
$ref: '#/components/responses/TOO_MANY_REQUESTS_429_AIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_AIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_AIS'
/v1/funds-confirmations:
post:
summary: Confirmation of funds request
description: 'Creates a confirmation of funds request at the ASPSP. Checks whether a specific amount is available at
point of time of the request on an account linked to a given tuple card issuer(TPP)/card number, or addressed by IBAN
and TPP respectively.
If the related extended services are used a conditional Consent-ID is contained in the header. This field is contained
but commented out in this specification.'
operationId: checkAvailabilityOfFunds
tags:
- Confirmation of Funds Service (PIIS)
parameters:
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/Authorization_mandatory'
requestBody:
$ref: '#/components/requestBodies/confirmationOfFunds'
responses:
'200':
$ref: '#/components/responses/OK_200_ConfirmationOfFunds'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_PIIS'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_PIIS'
'403':
$ref: '#/components/responses/FORBIDDEN_403_PIIS'
'404':
$ref: '#/components/responses/NOT_FOUND_404_PIIS'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_PIIS'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_PIIS'
/v1/token:
post:
summary: Retrieve OAuth2 Token
description: '- Exchange the authorisation code provided in the authorisation response for an access token.
- Exchange the refresh token for an access token.
Make sure to use for this request a body encoded as x-www-form-urlencoded .'
operationId: createToken
tags:
- Oauth2 Authorisation
parameters:
- $ref: '#/components/parameters/Content-Type'
requestBody:
$ref: '#/components/requestBodies/token'
responses:
'200':
$ref: '#/components/responses/CREATED_200_Token'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_TOKEN'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_TOKEN'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_TOKEN'
/v1/trusted-beneficiaries:
get:
summary: GET List of trusted beneficiaries
description: Reads the list of trusted beneficiaries related to the PSU who has given the (explicit) consent.
operationId: listOfTrustedBeneficiaries
tags:
- Account Information Service (AIS)
parameters:
- $ref: '#/components/parameters/accountIdTB'
- $ref: '#/components/parameters/X-Request-ID'
- $ref: '#/components/parameters/PSU-IP-Address_optional'
- $ref: '#/components/parameters/consentId_HEADER_mandatory'
- $ref: '#/components/parameters/Authorization_mandatory'
responses:
'200':
$ref: '#/components/responses/OK_200_LTB'
'400':
$ref: '#/components/responses/BAD_REQUEST_400_LTB'
'401':
$ref: '#/components/responses/UNAUTHORIZED_401_LTB'
'403':
$ref: '#/components/responses/FORBIDDEN_403_LTB'
'404':
$ref: '#/components/responses/NOT_FOUND_404_LTB'
'500':
$ref: '#/components/responses/INTERNAL_SERVER_ERROR_500_LTB'
'503':
$ref: '#/components/responses/SERVICE_UNAVAILABLE_503_LTB'
components:
schemas:
paymentId:
description: Resource identification of the generated payment initiation resource.
type: string
example: 1234-wertiq-983
authorisationId:
description: Resource identification of the related SCA.
type: string
example: 123auth456
authenticationMethodId:
description: An identification provided by the ASPSP for the later identification of the authentication method selection.
type: string
maxLength: 35
example: myAuthenticationID
accountId:
description: This identification is denoting the addressed account, where the transaction has been performed.
type: string
example: qwer3456tzui7890
consentId:
description: ID of the corresponding consent object as returned by an account information consent request.
type: string
transactionId:
description: This identification is given by the attribute transactionId of the corresponding entry of a transaction
list.
type: string
example: 3dc3d5b3-7023-4848-9853-f5400a64e80f
entryReference:
description: 'Is the identification of the transaction as used e.g. for reference for deltafunction on application level.
The same identification as for example used within camt.05x messages.'
type: string
maxLength: 35
transactionStatus:
description: "The transaction status is filled with codes of the ISO 20022 data table:\n - 'ACCC': 'AcceptedSettlementCompleted'\
\ -\n Settlement on the creditor's account has been completed.\n- 'ACCP': 'AcceptedCustomerProfile' -\n Preceding\
\ check of technical validation was successful.\n Customer profile check was also successful.\n- 'ACSC': 'AcceptedSettlementCompleted'\
\ -\n Settlement on the debtor�s account has been completed.\n\n **Usage:** this can be used by the first agent\
\ to report to the debtor that the transaction has been completed.\n\n **Warning:** this status is provided for transaction\
\ status reasons, not for financial information.\n It can only be used after bilateral agreement.\n- 'ACSP': 'AcceptedSettlementInProcess'\
\ -\n All preceding checks such as technical validation and customer profile were successful and therefore the payment\
\ initiation has been accepted for execution.\n- 'ACTC': 'AcceptedTechnicalValidation' -\n Authentication and syntactical\
\ and semantical validation are successful.\n- 'ACWC': 'AcceptedWithChange' -\n Instruction is accepted but a change\
\ will be made, such as date or remittance not sent.\n- 'ACWP': 'AcceptedWithoutPosting' -\n Payment instruction\
\ included in the credit transfer is accepted without being posted to the creditor customer�s account.\n- 'RCVD':\
\ 'Received' -\n Payment initiation has been received by the receiving agent.\n- 'PDNG': 'Pending' -\n Payment initiation\
\ or individual transaction included in the payment initiation is pending.\n Further checks and status update will\
\ be performed.\n- 'RJCT': 'Rejected' -\n Payment initiation or individual transaction included in the payment initiation\
\ has been rejected.\n- 'CANC': 'Cancelled'\n Payment initiation has been cancelled before execution\n- 'ACFC': 'AcceptedFundsChecked'\
\ -\n Preceding check of technical validation and customer profile was successful and an automatic funds check was\
\ positive .\n- 'PATC': 'PartiallyAcceptedTechnical'\n Correct The payment initiation needs multiple authentications,\
\ where some but not yet all have been performed. Syntactical and semantical validations are successful.\n- 'PART':\
\ 'PartiallyAccepted' -\n A number of transactions have been accepted, whereas another number of transactions have\
\ not yet achieved 'accepted' status.\n Remark: This code may be used only in case of bulk payments. It is only used\
\ in a situation where all mandated authorisations have been applied, but some payments have been rejected."
type: string
enum:
- ACCC
- ACCP
- ACSC
- ACSP
- ACTC
- ACWC
- ACWP
- RCVD
- PDNG
- RJCT
- CANC
- ACFC
- PATC
- PART
example: ACCP
scaStatus:
description: "This data element is containing information about the status of the SCA method applied.\n\nThe following\
\ codes are defined for this data type.\n\n * 'received':\n An authorisation or cancellation-authorisation resource\
\ has been created successfully.\n * 'psuIdentified':\n The PSU related to the authorisation or cancellation-authorisation\
\ resource has been identified.\n * 'psuAuthenticated':\n The PSU related to the authorisation or cancellation-authorisation\
\ resource has been identified and authenticated e.g. by a password or by an access token.\n * 'scaMethodSelected':\n\
\ The PSU/TPP has selected the related SCA routine.\n If the SCA method is chosen implicitly since only one\
\ SCA method is available\n then this is the first status to be reported instead of 'received'.\n * 'unconfirmed':\n\
\ SCA is technically successfully finalised by the PSU, but the authorisation resource needs a confirmation command\
\ by the TPP yet.\n * 'started':\n The addressed SCA routine has been started.\n * 'finalised':\n The SCA\
\ routine has been finalised successfully (including a potential confirmation command).\n This is a final status\
\ of the authorisation resource.\n * 'failed':\n The SCA routine failed.\n This is a final status of the authorisation\
\ resource.\n * 'exempted':\n SCA was exempted for the related transaction, the related authorisation is successful.\n\
\ This is a final status of the authorisation resource."
type: string
enum:
- received
- psuIdentified
- psuAuthenticated
- scaMethodSelected
- started
- unconfirmed
- finalised
- failed
- exempted
example: psuAuthenticated
consentStatus:
description: "This is the overall lifecycle status of the consent.\n\nValid values are:\n - 'received': The consent\
\ data have been received and are technically correct.\n The data is not authorised yet.\n - 'rejected': The consent\
\ data have been rejected e.g. since no successful authorisation has taken place.\n - 'valid': The consent is accepted\
\ and valid for GET account data calls and others as specified in the consent object.\n - 'revokedByPsu': The consent\
\ has been revoked by the PSU towards the ASPSP.\n - 'expired': The consent expired.\n - 'terminatedByTpp': The\
\ corresponding TPP has terminated the consent by applying the DELETE method to the consent resource.\n - 'partiallyAuthorised':\
\ The consent is due to a multi-level authorisation, some but not all mandated authorisations have been performed\
\ yet.\n\nThe ASPSP might add further codes. These codes then shall be contained in the ASPSP's documentation of the\
\ XS2A interface\nand has to be added to this API definition as well."
type: string
enum:
- received
- rejected
- valid
- revokedByPsu
- expired
- terminatedByTpp
- partiallyAuthorised
transactionFeeIndicator:
description: 'If equals ''true'', the transaction will involve specific transaction cost as shown by the ASPSP in
their public price list or as agreed between ASPSP and PSU.
If equals ''false'', the transaction will not involve additional specific transaction costs to the PSU unless the
fee amount is given specifically in the data elements transactionFees and/or currencyConversionFees.
If this data element is not used, there is no information about transaction fees unless the fee amount is given explicitly
in the data element transactionFees and/or currencyConversionFees.'
type: boolean
recurringIndicator:
description: '"true", if the consent is for recurring access to the account data.
"false", if the consent is for one access to the account data.'
type: boolean
example: false
batchBookingPreferred:
description: 'If this element equals ''true'', the PSU prefers only one booking entry.
If this element equals ''false'', the PSU prefers individual booking of all contained individual transactions.
The ASPSP will follow this preference according to contracts agreed on with the PSU.'
type: boolean
example: false
scaMethods:
description: 'This data element might be contained, if SCA is required and if the PSU has a choice between different
authentication methods.
Depending on the risk management of the ASPSP this choice might be offered before or after the PSU
has been identified with the first relevant factor, or if an access token is transported.
If this data element is contained, then there is also a hyperlink of type ''startAuthorisationWithAuthenticationMethodSelection''
contained in the response body.
These methods shall be presented towards the PSU for selection by the TPP.'
type: array
items:
$ref: '#/components/schemas/authenticationObject'
chosenScaMethod:
$ref: '#/components/schemas/authenticationObject'
authenticationType:
description: "Type of the authentication method.\n\nMore authentication types might be added during implementation projects\
\ and documented in the ASPSP documentation.\n\n - 'SMS_OTP': An SCA method, where an OTP linked to the transaction\
\ to be authorised is sent to the PSU through a SMS channel.\n - 'CHIP_OTP': An SCA method, where an OTP is generated\
\ by a chip card, e.g. a TOP derived from an EMV cryptogram.\n To contact the card, the PSU normally needs a (handheld)\
\ device.\n With this device, the PSU either reads the challenging data through a visual interface like flickering\
\ or\n the PSU types in the challenge through the device key pad.\n The device then derives an OTP from the\
\ challenge data and displays the OTP to the PSU.\n - 'PHOTO_OTP': An SCA method, where the challenge is a QR code\
\ or similar encoded visual data\n which can be read in by a consumer device or specific mobile app.\n The device\
\ resp. the specific app than derives an OTP from the visual challenge data and displays\n the OTP to the PSU.\n\
\ - 'PUSH_OTP': An OTP is pushed to a dedicated authentication APP and displayed to the PSU.\n - 'SMTP_OTP': An\
\ OTP is sent via email to the PSU."
type: string
enum:
- SMS_OTP
- CHIP_OTP
- PHOTO_OTP
- PUSH_OTP
- SMTP_OTP
authenticationObject:
description: Authentication object.
type: object
required:
- authenticationType
- authenticationMethodId
properties:
authenticationType:
$ref: '#/components/schemas/authenticationType'
authenticationVersion:
description: 'Depending on the "authenticationType".
This version can be used by differentiating authentication tools used within performing OTP generation in the
same authentication type.
This version can be referred to in the ASPSP?s documentation.'
type: string
authenticationMethodId:
$ref: '#/components/schemas/authenticationMethodId'
name:
description: 'This is the name of the authentication method defined by the PSU in the Online Banking frontend of
the ASPSP.
Alternatively this could be a description provided by the ASPSP like "SMS OTP on phone +49160 xxxxx 28".
This name shall be used by the TPP when presenting a list of authentication methods to the PSU, if available.'
type: string
example: SMS OTP on phone +49160 xxxxx 28
explanation:
description: Detailed information about the SCA method for the PSU.
type: string
example: Detailed information about the SCA method for the PSU.
challengeData:
description: 'It is contained in addition to the data element ''chosenScaMethod'' if challenge data is needed for SCA.
In rare cases this attribute is also used in the context of the ''startAuthorisationWithPsuAuthentication'' link.'
type: object
properties:
image:
type: string
format: byte
description: 'PNG data (max. 512 kilobyte) to be displayed to the PSU
Base64 encoding, cp. [RFC4648].
This attribute is used only, when PHOTO_OTP or CHIP_OTP
is the selected SCA method.'
data:
type: array
items:
type: string
description: A collection of strings as challenge data.
imageLink:
type: string
format: url
description: A link where the ASPSP will provides the challenge image for the TPP.
otpMaxLength:
type: integer
description: The maximal length for the OTP to be typed in by the PSU.
otpFormat:
type: string
description: The format type of the OTP to be typed in. The admitted values are "characters" or "integer".
enum:
- characters
- integer
additionalInformation:
type: string
description: 'Additional explanation for the PSU to explain
e.g. fallback mechanism for the chosen SCA method.
The TPP is obliged to show this to the PSU.'
fundsAvailable:
description: 'Equals true if sufficient funds are available at the time of the request, false otherwise.
This data element is allways contained in a confirmation of funds response.
This data element is contained in a payment status response
if supported by the ASPSP, if a funds check has been performed and
if the transactionStatus is "ACTC", "ACWC" or "ACCP".'
type: boolean
hrefType:
description: Link to a resource.
type: object
properties:
href:
$ref: '#/components/schemas/hrefEntry'
hrefEntry:
description: Link to a resource.
type: string
example: /v1/payments/sepa-credit-transfers/1234-wertiq-983
authorisationsList:
description: An array of all authorisationIds.
type: array
items:
$ref: '#/components/schemas/authorisationId'
authorisations:
description: An array of all authorisationIds.
type: object
required:
- authorisationIds
properties:
authorisationIds:
$ref: '#/components/schemas/authorisationsList'
accountReference:
description: "Reference to an account by either\n * IBAN, of a payment accounts, or\n * BBAN, for payment accounts\
\ if there is no IBAN.\n\nThis data element can be used for payment accounts."
type: object
properties:
iban:
$ref: '#/components/schemas/iban'
bban:
$ref: '#/components/schemas/bban'
currency:
$ref: '#/components/schemas/currencyCode'
cashAccountType:
$ref: '#/components/schemas/cashAccountType'
balanceType:
description: "The following balance types are defined:\n - \"closingBooked\":\n Balance of the account at the end\
\ of the pre-agreed account reporting period.\n It is the sum of the opening booked balance at the beginning of\
\ the period and all entries booked\n to the account during the pre-agreed account reporting period.\n\n For\
\ card-accounts, this is composed of\n\n - invoiced, but not yet paid entries\n\n - \"expected\":\n Balance\
\ composed of booked entries and pending items known at the time of calculation\n which projects the end of day\
\ balance if everything is booked on the account and no other entry is posted.\n\n For card accounts, this is composed\
\ of:\n - invoiced, but not yet paid entries\n - not yet invoiced but already booked entries and\n \
\ - pending items (not yet booked)\n\n For card-accounts:\n \"money to spend with the value of a pre-approved\
\ credit limit on the card account\"\n\n - \"openingBooked\":\n Book balance of the account at the beginning of\
\ the account reporting period.\n It always equals the closing book balance from the previous report.\n - \"interimAvailable\"\
:\n Available balance calculated in the course of the account ?servicer?s business day\n at the time specified,\
\ and subject to further changes during the business day.\n The interim balance is calculated on the basis of booked\
\ credit and debit items during the calculation\n time/period specified.\n\n For card-accounts, this is composed\
\ of:\n - invoiced, but not yet paid entries\n - not yet invoiced but already booked entries\n - \"interimBooked\"\
:\n Balance calculated in the course of the account servicer's business day, at the time specified\n and subject\
\ to further changes during the business day.\n The interim balance is calculated on the basis of booked credit\
\ and debit items during the calculation time/period\n specified.\n - \"forwardAvailable\":\n Forward available\
\ balance of money that is at the disposal of the account owner on the date specified.\n - \"nonInvoiced\":\n \
\ Only for card accounts, to be checked yet."
type: string
enum:
- closingBooked
- expected
- openingBooked
- interimAvailable
- interimBooked
- forwardAvailable
- nonInvoiced
accountAccess:
description: Requested access services for a consent.
type: object
properties:
accounts:
description: 'Is asking for detailed account information.
If the array is empty in a request, the TPP is asking for an accessible account list.
This may be restricted in a PSU/ASPSP authorization dialogue.
If the array is empty, also the arrays for balances, additionalInformation sub attributes or transactions shall
be empty, if used.'
type: array
items:
$ref: '#/components/schemas/accountReference'
balances:
description: 'Is asking for balances of the addressed accounts.
If the array is empty in the request, the TPP is asking for the balances of all accessible account lists.
This may be restricted in a PSU/ASPSP authorization dialogue.
If the array is empty, also the arrays for accounts, additionalInformation sub attributes or transactions shall
be empty, if used.'
type: array
items:
$ref: '#/components/schemas/accountReference'
transactions:
description: 'Is asking for transactions of the addressed accounts.
If the array is empty in the request, the TPP is asking for the transactions of all accessible account lists.
This may be restricted in a PSU/ASPSP authorization dialogue.
If the array is empty, also the arrays for accounts, additionalInformation sub attributes or balances shall be
empty, if used.'
type: array
items:
$ref: '#/components/schemas/accountReference'
availableAccounts:
description: 'Optional if supported by API provider.
The values "allAccounts" and "allAccountsWithOwnerName" are admitted.
The support of the "allAccountsWithOwnerName" value by the ASPSP is optional.'
type: string
enum:
- allAccounts
- allAccountsWithOwnerName
availableAccountsWithBalance:
description: 'Optional if supported by API provider.
The values "allAccounts" and "allAccountsWithOwnerName" are admitted.
The support of the "allAccountsWithOwnerName" value by the ASPSP is optional.'
type: string
enum:
- allAccounts
- allAccountsWithOwnerName
allPsd2:
description: 'Optional if supported by API provider.
The values "allAccounts" and "allAccountsWithOwnerName" are admitted.
The support of the "allAccountsWithOwnerName" value by the ASPSP is optional.'
type: string
enum:
- allAccounts
- allAccountsWithOwnerName
restrictedTo:
description: "If the TPP requests access to accounts via availableAccounts (List of available accounts), global\n\
or bank driven consents, the TPP may include this element to restrict access to the referred\naccount types. Absence\
\ of the element is interpreted as \"no restriction\" (therefore access to\naccounts of all types is requested).\
\ The element may only occur, if each of the elements\n - accounts\n - balances\n - transactions\nis either\
\ not present or contains an empty array."
type: array
items:
$ref: '#/components/schemas/cashAccountType'
cashAccountType:
description: ExternalCashAccountType1Code from ISO 20022.
type: string
accountStatus:
description: "Account status. The value is one of the following:\n - \"enabled\": account is available\n - \"deleted\"\
: account is terminated\n - \"blocked\": account is blocked e.g. for legal reasons\nIf this field is not used, than\
\ the account is available in the sense of this specification."
type: string
enum:
- enabled
- deleted
- blocked
accountDetails:
description: "The ASPSP shall give at least one of the account reference identifiers:\n - iban\n - bban\n - pan\n\
\ - maskedPan\n - msisdn\nIf the account is a multicurrency account currency code in \"currency\" is set to \"XXX\"\
."
type: object
required:
- currency
properties:
resourceId:
description: This shall be filled, if addressable resource are created by the ASPSP on the /accounts or /card-accounts
endpoint.
type: string
iban:
$ref: '#/components/schemas/iban'
bban:
$ref: '#/components/schemas/bban'
msisdn:
$ref: '#/components/schemas/msisdn'
currency:
$ref: '#/components/schemas/currencyCode'
ownerName:
$ref: '#/components/schemas/ownerName'
ownerNames:
description: List of owner names.
type: array
items:
$ref: '#/components/schemas/accountOwner'
psuName:
description: Name of the PSU. In case of a corporate account, this might be the person acting on behalf of the corporate.
type: string
maxLength: 140
name:
description: Name of the account, as assigned by the ASPSP, in agreement with the account owner in order to provide
an additional means of identification of the account.
type: string
maxLength: 70
displayName:
$ref: '#/components/schemas/displayName'
product:
description: Product name of the bank for this account, proprietary definition.
type: string
maxLength: 35
cashAccountType:
$ref: '#/components/schemas/cashAccountType'
status:
$ref: '#/components/schemas/accountStatus'
bic:
$ref: '#/components/schemas/bicfi'
linkedAccounts:
description: Case of a set of pending card transactions, the APSP will provide the relevant cash account the card
is set up on.
type: string
maxLength: 70
usage:
description: "Specifies the usage of the account:\n * PRIV: private personal account\n * ORGA: professional account"
type: string
maxLength: 4
enum:
- PRIV
- ORGA
details:
description: "Specifications that might be provided by the ASPSP:\n - characteristics of the account\n - characteristics\
\ of the relevant card"
type: string
maxLength: 500
balances:
$ref: '#/components/schemas/balanceList'
_links:
$ref: '#/components/schemas/_linksAccountDetails'
accountList:
description: List of accounts with details.
type: object
required:
- accounts
properties:
accounts:
type: array
items:
$ref: '#/components/schemas/accountDetails'
accountOwner:
description: Identifies a Person that acts as an account owner
type: object
required:
- name
properties:
name:
description: Account owner name
type: string
maxLength: 70
role:
description: "The following proprietary codes are used:\n * \"owner\"\n * \"legalRepresentative\"\n * \"authorisedUser\""
type: string
maxLength: 35
accountReport:
description: 'JSON based account report.
This account report contains transactions resulting from the query parameters.
''booked'' shall be contained if bookingStatus parameter is set to "booked" or "both".
''pending'' is not contained if the bookingStatus parameter is set to "booked" or "information".
''information'' Only contained if the bookingStatus is set to "information" and if supported by ASPSP.'
type: object
required:
- _links
properties:
booked:
$ref: '#/components/schemas/transactionList'
pending:
$ref: '#/components/schemas/transactionList'
information:
$ref: '#/components/schemas/transactionList'
_links:
$ref: '#/components/schemas/_linksAccountReport'
transactionList:
description: Array of transaction details.
type: array
items:
$ref: '#/components/schemas/transactions'
transactions:
description: Transaction details.
type: object
required:
- transactionAmount
properties:
transactionId:
$ref: '#/components/schemas/transactionId'
entryReference:
$ref: '#/components/schemas/entryReference'
endToEndId:
description: Unique end to end identity.
type: string
maxLength: 35
batchIndicator:
description: If this indicator equals true, then the related entry is a batch entry.
type: boolean
batchNumberOfTransactions:
description: Shall be used if and only if the batchIndicator is contained and equals true.
type: integer
mandateId:
description: Identification of Mandates, e.g. a SEPA Mandate ID.
type: string
maxLength: 35
checkId:
description: Identification of a Cheque.
type: string
maxLength: 35
creditorId:
$ref: '#/components/schemas/creditorId'
bookingDate:
$ref: '#/components/schemas/bookingDate'
valueDate:
description: The Date at which assets become available to the account owner in case of a credit, or cease to be
available to the account owner in case of a debit entry. **Usage:** If entry status is pending and value date
is present, then the value date refers to an expected/requested value date.
type: string
format: date
transactionAmount:
$ref: '#/components/schemas/amount'
currencyExchange:
$ref: '#/components/schemas/reportExchangeRateList'
creditorName:
$ref: '#/components/schemas/creditorName'
creditorAccount:
$ref: '#/components/schemas/accountReference'
creditorAgent:
$ref: '#/components/schemas/bicfi'
ultimateCreditor:
$ref: '#/components/schemas/ultimateCreditor'
debtorName:
$ref: '#/components/schemas/debtorName'
debtorAccount:
$ref: '#/components/schemas/accountReference'
debtorAgent:
$ref: '#/components/schemas/bicfi'
ultimateDebtor:
$ref: '#/components/schemas/ultimateDebtor'
remittanceInformationUnstructured:
$ref: '#/components/schemas/remittanceInformationUnstructured'
remittanceInformationUnstructuredArray:
$ref: '#/components/schemas/remittanceInformationUnstructuredArray'
remittanceInformationStructured:
$ref: '#/components/schemas/remittanceInformationStructuredMax140'
remittanceInformationStructuredArray:
$ref: '#/components/schemas/remittanceInformationStructuredArray'
entryDetails:
$ref: '#/components/schemas/entryDetails'
additionalInformation:
$ref: '#/components/schemas/additionalInformation'
additionalInformationStructured:
$ref: '#/components/schemas/additionalInformationStructured'
purposeCode:
$ref: '#/components/schemas/purposeCode'
bankTransactionCode:
$ref: '#/components/schemas/bankTransactionCode'
proprietaryBankTransactionCode:
$ref: '#/components/schemas/proprietaryBankTransactionCode'
balanceAfterTransaction:
$ref: '#/components/schemas/balance'
_links:
$ref: '#/components/schemas/_linksTransactionDetails'
reportExchangeRateList:
description: Array of exchange rates.
type: array
items:
$ref: '#/components/schemas/reportExchangeRate'
reportExchangeRate:
description: Exchange Rate.
type: object
required:
- sourceCurrency
- exchangeRate
- unitCurrency
- targetCurrency
- quotationDate
properties:
sourceCurrency:
$ref: '#/components/schemas/currencyCode'
exchangeRate:
type: string
unitCurrency:
$ref: '#/components/schemas/currencyCode'
targetCurrency:
$ref: '#/components/schemas/currencyCode'
quotationDate:
type: string
format: date
contractIdentification:
type: string
maxLength: 35
balance:
description: A single balance element.
type: object
required:
- balanceAmount
- balanceType
properties:
balanceAmount:
$ref: '#/components/schemas/amount'
balanceType:
$ref: '#/components/schemas/balanceType'
creditLimitIncluded:
description: 'A flag indicating if the credit limit of the corresponding account
is included in the calculation of the balance, where applicable.'
type: boolean
example: false
lastChangeDateTime:
description: 'This data element might be used to indicate e.g. with the expected or booked balance that no action
is known
on the account, which is not yet booked.'
type: string
format: date-time
referenceDate:
description: Indicates the date of the balance.
type: string
format: date
lastCommittedTransaction:
description: '"entryReference" of the last committed transaction to support the TPP in identifying whether all
PSU transactions are already known.'
type: string
maxLength: 35
balanceList:
description: 'A list of balances regarding this account, e.g. the current balance, the last booked balance.
The list might be restricted to the current balance.'
type: array
items:
$ref: '#/components/schemas/balance'
bicfi:
description: BICFI
type: string
pattern: '[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}'
example: AAAADEBBXXX
bban:
description: "Basic Bank Account Number (BBAN) Identifier.\n\nThis data element can be used in the body of the consent\
\ request.\n Message for retrieving account access consent from this account. This\n data elements is used for payment\
\ accounts which have no IBAN.\n ISO20022: Basic Bank Account Number (BBAN).\n\n Identifier used nationally by financial\
\ institutions, i.e., in individual countries\n generally as part of a National Account Numbering Scheme(s)\n which\
\ uniquely identifies the account of a customer."
type: string
pattern: '[a-zA-Z0-9]{1,30}'
example: BARC12345612345678
msisdn:
type: string
maxLength: 35
description: Mobile phone number.
example: +49 170 1234567
iban:
type: string
description: IBAN of an account.
pattern: '[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}'
example: FR7612345987650123456789014
address:
type: object
required:
- country
properties:
department:
type: string
maxLength: 70
subDepartment:
type: string
maxLength: 70
streetName:
type: string
maxLength: 70
buildingNumber:
type: string
maxLength: 16
buildingName:
type: string
maxLength: 35
floor:
type: string
maxLength: 70
postBox:
type: string
maxLength: 16
room:
type: string
maxLength: 70
postCode:
type: string
maxLength: 16
townName:
type: string
maxLength: 35
townLocationName:
type: string
maxLength: 35
districtName:
type: string
maxLength: 35
countrySubDivision:
type: string
maxLength: 35
country:
$ref: '#/components/schemas/countryCode'
example:
streetName: rue blue
buildingnNumber: '89'
townName: Paris
postCode: '75000'
country: FR
countryCode:
description: ISO 3166 ALPHA2 country code.
type: string
pattern: '[A-Z]{2}'
example: SE
ownerName:
description: 'Name of the legal account owner.
If there is more than one owner, then e.g. two names might be noted here.
For a corporate account, the corporate name is used for this attribute.
Even if supported by the ASPSP, the provision of this field might depend on the fact whether an explicit consent to
this specific additional account information has been given by the PSU.'
type: string
maxLength: 140
example: John Doe
displayName:
description: Name of the account as defined by the PSU within online channels.
type: string
maxLength: 70
amount:
type: object
required:
- currency
- amount
properties:
currency:
$ref: '#/components/schemas/currencyCode'
amount:
$ref: '#/components/schemas/amountValue'
example:
currency: EUR
amount: '123'
currencyCode:
description: ISO 4217 Alpha 3 currency code.
type: string
pattern: '[A-Z]{3}'
example: EUR
amountValue:
description: "The amount given with fractional digits, where fractions must be compliant to the currency definition.\n\
Up to 14 significant figures. Negative amounts are signed by minus.\nThe decimal separator is a dot.\n\n**Example:**\n\
Valid representations for EUR with up to two decimals are:\n * 1056\n * 5768.2\n * -1.50\n * 5877.78"
type: string
pattern: -?[0-9]{1,14}(\.[0-9]{1,3})?
example: '5877.78'
categoryPurposeCode:
description: 'ExternalCategoryPurpose1Code from ISO 20022.
Values from ISO 20022 External Code List ExternalCodeSets_2Q2024 August 2024.'
type: string
enum:
- BONU
- CASH
- CBLK
- CCRD
- CORT
- DCRD
- DIVI
- DVPM
- EPAY
- FCIN
- FCOL
- GP2P
- GOVT
- HEDG
- ICCP
- IDCP
- INTC
- INTE
- LBOX
- LOAN
- MP2B
- MP2P
- OTHR
- PENS
- RPRE
- RRCT
- RVPM
- SALA
- SECU
- SSBE
- SUPP
- TAXS
- TRAD
- TREA
- VATX
- WHLD
- SWEP
- TOPG
- ZABA
- VOST
- FCDT
- CIPC
- CONC
- CGWV
- SAVG
- CTDF
remittanceInformationStructuredMax140:
description: Structured remittance information Max
type: string
maxLength: 140
remittanceInformationStructured:
description: Structured remittance information.
type: object
required:
- reference
properties:
reference:
type: string
maxLength: 35
referenceType:
type: string
maxLength: 35
referenceIssuer:
type: string
maxLength: 35
remittanceInformationStructuredArray:
description: Array of structured remittance information.
type: array
items:
$ref: '#/components/schemas/remittanceInformationStructured'
remittanceInformationUnstructured:
description: Unstructured remittance information.
type: string
maxLength: 140
example: Ref Number Merchant
remittanceInformationUnstructuredArray:
description: Array of unstructured remittance information.
type: array
items:
$ref: '#/components/schemas/remittanceInformationUnstructured'
example:
- Ref Number Merchant
- Some Other Text
EntryDetailsElement:
type: object
required:
- transactionAmount
properties:
endToEndId:
description: Unique end to end identity.
type: string
maxLength: 35
mandateId:
description: Identification of Mandates, e.g. a SEPA Mandate ID.
type: string
maxLength: 35
checkId:
description: Identification of a Cheque.
type: string
maxLength: 35
creditorId:
$ref: '#/components/schemas/creditorId'
transactionAmount:
$ref: '#/components/schemas/amount'
currencyExchange:
$ref: '#/components/schemas/reportExchangeRateList'
creditorName:
$ref: '#/components/schemas/creditorName'
creditorAccount:
$ref: '#/components/schemas/accountReference'
creditorAgent:
$ref: '#/components/schemas/bicfi'
ultimateCreditor:
$ref: '#/components/schemas/ultimateCreditor'
debtorName:
$ref: '#/components/schemas/debtorName'
debtorAccount:
$ref: '#/components/schemas/accountReference'
debtorAgent:
$ref: '#/components/schemas/bicfi'
ultimateDebtor:
$ref: '#/components/schemas/ultimateDebtor'
remittanceInformationUnstructured:
$ref: '#/components/schemas/remittanceInformationUnstructured'
remittanceInformationUnstructuredArray:
$ref: '#/components/schemas/remittanceInformationUnstructuredArray'
remittanceInformationStructured:
$ref: '#/components/schemas/remittanceInformationStructured'
remittanceInformationStructuredArray:
$ref: '#/components/schemas/remittanceInformationStructuredArray'
purposeCode:
$ref: '#/components/schemas/purposeCode'
entryDetails:
description: Might be used by the ASPSP to transport details about transactions within a batch.
type: array
items:
$ref: '#/components/schemas/EntryDetailsElement'
additionalInformation:
description: Might be used by the ASPSP to transport additional transaction related information to the PSU
type: string
maxLength: 500
example: Some additional transaction related information.
additionalInformationStructured:
description: 'Is used if and only if the bookingStatus entry equals "information".
Every active standing order related to the dedicated payment account result into one entry.'
type: object
required:
- standingOrderDetails
properties:
standingOrderDetails:
$ref: '#/components/schemas/standingOrderDetails'
standingOrderDetails:
description: Details of underlying standing orders.
type: object
required:
- frequency
properties:
startDate:
$ref: '#/components/schemas/startDate'
startDateTime:
$ref: '#/components/schemas/startDateTime'
frequency:
$ref: '#/components/schemas/frequencyCode'
endDate:
$ref: '#/components/schemas/endDate'
endDateTime:
$ref: '#/components/schemas/endDateTime'
executionRule:
$ref: '#/components/schemas/executionRule'
withinAMonthFlag:
description: "This element is only used in case of frequency equals \"Monthly\".\n\nIf this element equals false\
\ it has no effect.\nIf this element equals true, then the execution rule is overruled if the day of execution\
\ would fall into a different month using the execution rule.\n\nExample: executionRule equals \"preceding\",\
\ dayOfExecution equals \"02\" and the second of a month is a Sunday.\nIn this case, the transaction date would\
\ be on the last day of the month before.\n This would be overruled if withinAMonthFlag equals true and the payment\
\ is processed on Monday the third of the Month.\nRemark: This attribute is rarely supported in the market."
type: boolean
monthsOfExecution:
$ref: '#/components/schemas/monthsOfExecution'
multiplicator:
description: 'This is multiplying the given frequency resulting the exact frequency
e.g. Frequency=weekly and multiplicator=3 means every 3 weeks.
Remark: This attribute is rarely supported in the market.'
type: integer
dayOfExecution:
$ref: '#/components/schemas/dayOfExecution'
limitAmount:
$ref: '#/components/schemas/amount'
purposeCode:
description: 'ExternalPurpose1Code from ISO 20022.
Values from ISO 20022 External Code List ExternalCodeSets_2Q2024 August 2024.'
type: string
enum:
- BKDF
- BKFE
- BKFM
- BKIP
- BKPP
- CBLK
- CDCB
- CDCD
- CDCS
- CDDP
- CDOC
- CDQC
- ETUP
- FCOL
- MTUP
- ACCT
- CASH
- COLL
- CSDB
- DEPT
- INTC
- LIMA
- NETT
- BFWD
- CCIR
- CCPC
- CCPM
- CCSM
- CRDS
- CRPR
- CRSP
- CRTL
- EQPT
- EQUS
- EXPT
- EXTD
- FIXI
- FWBC
- FWCC
- FWSB
- FWSC
- MARG
- MBSB
- MBSC
- MGCC
- MGSC
- OCCC
- OPBC
- OPCC
- OPSB
- OPSC
- OPTN
- OTCD
- REPO
- RPBC
- RPCC
- RPSB
- RPSC
- RVPO
- SBSC
- SCIE
- SCIR
- SCRP
- SHBC
- SHCC
- SHSL
- SLEB
- SLOA
- SWBC
- SWCC
- SWPT
- SWSB
- SWSC
- TBAS
- TBBC
- TBCC
- TRCP
- AGRT
- AREN
- BEXP
- BOCE
- COMC
- CPYR
- GDDS
- GDSV
- GSCB
- LICF
- MP2B
- POPE
- ROYA
- SCVE
- SERV
- SUBS
- SUPP
- TRAD
- CHAR
- COMT
- MP2P
- ECPG
- ECPR
- ECPU
- EPAY
- CLPR
- COMP
- DBTC
- GOVI
- HLRP
- HLST
- INPC
- INPR
- INSC
- INSU
- INTE
- LBRI
- LIFI
- LOAN
- LOAR
- PENO
- PPTI
- RELG
- RINP
- TRFD
- FORW
- FXNT
- ADMG
- ADVA
- BCDM
- BCFG
- BLDM
- BNET
- CBFF
- CBFR
- CCRD
- CDBL
- CFEE
- CGDD
- CORT
- COST
- CPKC
- DCRD
- DSMT
- DVPM
- EDUC
- FACT
- FAND
- FCPM
- FEES
- GOVT
- ICCP
- IDCP
- IHRP
- INSM
- IVPT
- MCDM
- MCFG
- MSVC
- NOWS
- OCDM
- OCFG
- OFEE
- OTHR
- PADD
- PTSP
- RCKE
- RCPT
- REBT
- REFU
- RENT
- REOD
- RIMB
- RPNT
- RRBN
- RVPM
- SLPI
- SPLT
- STDY
- TBAN
- TBIL
- TCSC
- TELI
- TMPG
- TPRI
- TPRP
- TRNC
- TRVC
- WEBI
- ANNI
- CAFI
- CFDI
- CMDT
- DERI
- DIVD
- FREX
- HEDG
- INVS
- PRME
- SAVG
- SECU
- SEPI
- TREA
- UNIT
- FNET
- FUTR
- ANTS
- CVCF
- DMEQ
- DNTS
- HLTC
- HLTI
- HSPC
- ICRF
- LTCF
- MAFC
- MARF
- MDCS
- VIEW
- CDEP
- SWFP
- SWPP
- SWRS
- SWUF
- ADCS
- AEMP
- ALLW
- ALMY
- BBSC
- BECH
- BENE
- BONU
- CCHD
- COMM
- CSLP
- GFRP
- GVEA
- GVEB
- GVEC
- GVED
- GWLT
- HREC
- PAYR
- PEFC
- PENS
- PRCP
- RHBS
- SALA
- SSBE
- LBIN
- LCOL
- LFEE
- LMEQ
- LMFI
- LMRK
- LREB
- LREV
- LSFL
- ESTX
- FWLV
- GSTX
- HSTX
- INTX
- NITX
- PTXP
- RDTX
- TAXS
- VATX
- WHLD
- TAXR
- B112
- BR12
- TLRF
- TLRR
- AIRB
- BUSB
- FERB
- RLWY
- TRPT
- CBTV
- ELEC
- ENRG
- GASB
- NWCH
- NWCM
- OTLC
- PHON
- UBIL
- WTER
- BOND
- CABD
- CAEQ
- CBCR
- DBCR
- DICL
- EQTS
- FLCR
- EFTC
- EFTD
- MOMA
- RAPI
- GAMB
- LOTT
- AMEX
- SASW
- AUCO
- PCOM
- PDEP
- PLDS
- PLRF
- GAFA
- GAHO
- CPEN
- DEPD
- RETL
- DEBT
bankTransactionCode:
description: "Bank transaction code as used by the ASPSP and using the sub elements of this structured code defined\
\ by ISO 20022.\n\nThis code type is concatenating the three ISO20022 Codes\n * Domain Code\n * Family Code, and\n\
\ * SubFamily Code\nby hyphens, resulting in 'DomainCode'-'FamilyCode'-'SubFamilyCode'.\nFor standing order reports\
\ the following codes are applicable:\n * \"PMNT-ICDT-STDO\" for credit transfers\n * \"PMNT-IRCT-STDO\" for instant\
\ credit transfers\n * \"PMNT-ICDT-XBST\" for cross-border credit transfers\n * \"PMNT-IRCT-XBST\" for cross-border\
\ real time credit transfers and\n * \"PMNT-MCOP-OTHR\" for specific standing orders which have a dynamical amount\
\ to move left funds e.g. on month end to a saving account"
type: string
example: PMNT-RDDT-ESDD
proprietaryBankTransactionCode:
description: 'Proprietary bank transaction code as used within a community or within an ASPSP e.g.
for MT94x based transaction reports.'
type: string
maxLength: 35
frequencyCode:
description: "The following codes from the \"EventFrequency7Code\" of ISO 20022 are supported:\n - \"Daily\"\n- \"\
Weekly\"\n- \"EveryTwoWeeks\"\n- \"Monthly\"\n- \"EveryTwoMonths\"\n- \"Quarterly\"\n- \"SemiAnnual\"\n- \"Annual\"\
\n- \"MonthlyVariable\""
type: string
enum:
- Daily
- Weekly
- EveryTwoWeeks
- Monthly
- EveryTwoMonths
- Quarterly
- SemiAnnual
- Annual
- MonthlyVariable
frequencyPerDay:
description: 'This field indicates the requested maximum frequency for an access without PSU involvement per day.
For a one-off access, this attribute is set to "1".
The frequency needs to be greater equal to one.
If not otherwise agreed bilaterally between TPP and ASPSP, the frequency is less equal to 4.'
type: integer
example: 4
minimum: 1
exclusiveMinimum: false
dayOfExecution:
description: 'Day of execution as string.
This string consists of up two characters.
Leading zeroes are not allowed.
31 is ultimo of the month.'
type: string
maxLength: 2
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '20'
- '21'
- '22'
- '23'
- '24'
- '25'
- '26'
- '27'
- '28'
- '29'
- '30'
- '31'
monthsOfExecution:
description: 'The format is following the regular expression \d{1,2}.
The array is restricted to 11 entries.
The values contained in the array entries shall all be different and the maximum value of one entry is 12.
This attribute is contained if and only if the frequency equals "MonthlyVariable".
Example: An execution on January, April and October each year is addressed by ["1", "4", "10"].'
type: array
maxItems: 11
items:
type: string
maxLength: 2
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
executionRule:
description: '"following" or "preceding" supported as values.
This data attribute defines the behaviour when recurring payment dates falls on a weekend or bank holiday.
The payment is then executed either the "preceding" or "following" working day.
ASPSP might reject the request due to the communicated value, if rules in Online-Banking are not supporting
this execution rule.'
type: string
enum:
- following
- preceding
psuMessageText:
description: Text to be displayed to the PSU.
type: string
maxLength: 500
creditorName:
description: Creditor name.
type: string
maxLength: 70
example: Creditor Name
creditorId:
description: Identification of Creditors, e.g. a SEPA Creditor ID.
type: string
maxLength: 35
example: Creditor Id 5678
creditorAgentName:
description: Creditor agent name.
type: string
maxLength: 140
example: Creditor Agent Name
debtorName:
description: Debtor name.
type: string
maxLength: 70
example: Debtor Name
ultimateDebtor:
description: Ultimate debtor.
type: string
maxLength: 70
example: Ultimate Debtor
ultimateCreditor:
description: Ultimate creditor.
type: string
maxLength: 70
example: Ultimate Creditor
startDate:
description: The first applicable day of execution starting from this date is the first payment.
type: string
format: date
startDateTime:
description: 'The first applicable day and time of requested execution.
This attribute is only applicable to instant payments.
The ASPSP might restrict the implementation to endDate. This restriction will be part of the ASPSP documentation.'
type: string
format: date
endDate:
description: 'The last applicable day of execution.
If none of the attributes is given, it is an infinite standing order.'
type: string
format: date
endDateTime:
description: 'The last applicable day and time of requested execution.
This attribute is only applicable to instant payments.
If none of the attributes is given, it is an infinite standing order.
The ASPSP might restrict the implementation to endDate. This restriction will be part of the ASPSP documentation.'
type: string
format: date
bookingDate:
description: The date when an entry is posted to an account on the ASPSPs books.
type: string
format: date
validUntil:
description: 'This parameter is defining a valid until date (including the mentioned date) for the requested consent.
The content is the local ASPSP date in ISO-Date format, e.g. 2017-10-30.
Future dates might get adjusted by ASPSP.
If a maximal available date is requested, a date in far future is to be used: "9999-12-31".
In both cases the consent object to be retrieved by the get consent request will contain the adjusted date.'
type: string
format: date
example: '2020-12-31'
lastActionDate:
description: 'This date is containing the date of the last action on the consent object either through
the XS2A interface or the PSU/ASPSP interface having an impact on the status.'
type: string
format: date
example: '2018-07-01'
paymentInitiation_json:
description: "Generic Body for a payment initiation via JSON.\n\nThis generic JSON body can be used to represent valid\
\ payment initiations for the following JSON based payment product\nwhich where defined in the Implementation Guidelines:\n\
\ * sepa-credit-transfers\n * instant-sepa-credit-transfers\n * cross-border-credit-transfers\n\nFor the convenience\
\ of the implementer additional which are already predefined in the Implementation Guidelines\nare included (but commented\
\ in source code), such that an ASPSP may add them easily.\n\nTake care: Since the format is intended to fit for all\
\ payment products\n there are additional conditions which are NOT covered by this specification.\nPlease check the\
\ Implementation Guidelines for details.\n\nThe following data element are depending on the actual payment product\
\ available (in source code):\n
\n | Data Element | SCT EU Core | SCT\
\ INST EU Core | Target2 Paym. Core | Cross Border CT Core |
\n | endToEndIdentification | \
\ optional | optional | optional | n.a. |
\n | instructionIdentification | n.a. | \
\ n.a. | n.a. | n.a. |
\n | debtorName | n.a. | n.a. | n.a. | \
\ n.a. |
\n | debtorAccount | mandatory | mandatory | mandatory | mandatory | \
\
\n | debtorId | n.a. | n.a. | n.a. | n.a. |
\n | ultimateDebtor | \
\ n.a. | n.a. | n.a. | n.a. |
\n | instructedAmount | mandatory | \
\ mandatory | mandatory | mandatory |
\n | currencyOfTransfer | n.a. | n.a. | \
\ n.a. | n.a. |
\n | exchangeRateInformation | n.a. | n.a. | n.a. | \
\ n.a. |
\n | creditorAccount | mandatory | mandatory | mandatory | mandatory | \
\
\n | creditorAgent | optional | optional | optional | conditional |
\n\
\ | creditorAgentName | n.a. | n.a. | n.a. | n.a. |
\n | creditorName | \
\ mandatory | mandatory | mandatory | mandatory |
\n | creditorId | n.a. | \
\ n.a. | n.a. | n.a. |
\n | creditorAddress | optional optional | optional | \
\ conditional |
\n | creditorNameAndAddress | n.a. | n.a. | n.a. | n.a. | \
\
\n | ultimateCreditor | n.a. | n.a. | n.a. | n.a. |
\n | purposeCode | \
\ n.a. | n.a. | n.a. | n.a. |
\n | chargeBearer | n.a. | n.a. | \
\ optional | conditional |
\n | serviceLevel | n.a. | n.a. | n.a. | \
\ n.a. |
\n | remittanceInformationUnstructured | optional | optional | optional | \
\ optional |
\n | remittanceInformationUnstructuredArray | n.a. | n.a. | n.a. | \
\ n.a. |
\n | remittanceInformationStructured | n.a. | n.a. | n.a. | n.a. | \
\
\n | remittanceInformationStructuredArray | n.a. | n.a. | n.a. | n.a. | \
\
\n | requestedExecutionDate | n.a. | n.a. | n.a. | n.a. |
\n | requestedExecutionTime | \
\ n.a. | n.a. | n.a. | n.a. |
\n \n
\n\nIMPORTANT: In this\
\ API definition the following holds:\n * All data elements mentioned above are defined, but some of them are commented\n\
\ i.e. they are only visible in the source code and can be used by uncommenting them.\n * Data elements which\
\ are mandatory in the table above for all payment products\n are set to be mandatory in this specification.\n\
\ * Data elements which are indicated in the table above as n.a. for all payment products are commented in the source\
\ code.\n * Data elements which are indicated to be option, conditional or mandatory for at least one payment product\n\
\ in the table above are set to be optional in the s specification except the case where all are defined to be\
\ mandatory.\n * Data element which are indicated to be n.a. can be used by the ASPS if needed.\n In this case\
\ uncomment the the related lines in the source code.\n * If one uses this data types for some payment products he\
\ has to ensure that the used data type is\n valid according to the underlying payment product, e.g. by some appropriate\
\ validations."
type: object
required:
- debtorAccount
- instructedAmount
- creditorAccount
- creditorName
properties:
endToEndIdentification:
type: string
maxLength: 35
debtorAccount:
$ref: '#/components/schemas/accountReference'
instructedAmount:
$ref: '#/components/schemas/amount'
creditorAccount:
$ref: '#/components/schemas/accountReference'
creditorAgent:
$ref: '#/components/schemas/bicfi'
creditorAgentName:
$ref: '#/components/schemas/creditorAgentName'
creditorName:
$ref: '#/components/schemas/creditorName'
creditorAddress:
$ref: '#/components/schemas/address'
remittanceInformationUnstructured:
$ref: '#/components/schemas/remittanceInformationUnstructured'
paymentInitiationBulkElement_json:
description: "Generic body for a bulk payment initiation entry.\n\nThe bulk entry type is a type which follows the JSON\
\ formats for the supported products for single payments\nexcluding the data elements (if supported):\n * debtorAccount\n\
\ * requestedExecutionDate\n * requestedExecutionTime.\nThese data elements may not be contained in any bulk entry.\n\
\nThis data object can be used to represent valid bulk payment initiations entry for the following JSON based payment\
\ product\nwhich where defined in the Implementation Guidelines:\n * sepa-credit-transfers\n * instant-sepa-credit-transfers\n\
\ * cross-border-credit-transfers\n\nFor the convenience of the implementer additional which are already predefined\
\ in the Implementation Guidelines\nare included (but commented in source code), such that an ASPSP may add them easily.\n\
\nTake care: Since the format is intended to fit for all payment products\n there are additional conditions which\
\ are NOT covered by this specification.\nPlease check the Implementation Guidelines for details.\n\nThe following\
\ data element are depending on the actual payment product available (in source code):\n \n | Data Element | SCT EU Core | SCT INST EU Core | Target2 Paym. Core | Cross Border\
\ CT Core |
\n | endToEndIdentification | optional | optional | optional | n.a. | \
\
\n | instructionIdentification | n.a. | n.a. | n.a. | n.a. |
\n | debtorName | \
\ n.a. | n.a. | n.a. | n.a. |
\n | debtorId | n.a. | n.a. | \
\ n.a. | n.a. |
\n | ultimateDebtor | n.a. | n.a. | n.a. | n.a. | \
\
\n | instructedAmount | mandatory | mandatory | mandatory | mandatory | \
\
\n | currencyOfTransfer | n.a. | n.a. | n.a. | n.a. |
\n | exchangeRateInformation | \
\ n.a. | n.a. | n.a. | n.a. |
\n | creditorAccount | mandatory | mandatory | \
\ mandatory | mandatory |
\n | creditorAgent | optional | optional | optional | \
\ conditional |
\n | creditorAgentName | n.a. | n.a. | n.a. | n.a. | \
\
\n | creditorName | mandatory | mandatory | mandatory | mandatory |
\n\
\ | creditorId | n.a. | n.a. | n.a. | n.a. |
\n | creditorAddress | optional\
\ optional | optional | conditional |
\n | creditorNameAndAddress | n.a. | \
\ n.a. | n.a. | n.a. |
\n | ultimateCreditor | n.a. | n.a. | n.a. | \
\ n.a. |
\n | purposeCode | n.a. | n.a. | n.a. | n.a. |
\n | chargeBearer | \
\ n.a. | n.a. | optional | conditional |
\n | serviceLevel | n.a. | \
\ n.a. | n.a. | n.a. |
\n | remittanceInformationUnstructured | optional | \
\ optional | optional | optional |
\n | remittanceInformationUnstructuredArray | \
\ n.a. | n.a. | n.a. | n.a. |
\n | remittanceInformationStructured | n.a. | \
\ n.a. | n.a. | n.a. |
\n | remittanceInformationStructuredArray | n.a. | \
\ n.a. | n.a. | n.a. |
\n \n
\n\nIMPORTANT: In this API definition\
\ the following holds:\n * All data elements mentioned above are defined, but some of them are commented\n i.e.\
\ they are only visible in the source code and can be used by uncommenting them.\n * Data elements which are mandatory\
\ in the table above for all payment products\n are set to be mandatory in this specification.\n * Data elements\
\ which are indicated in the table above as n.a. for all payment products are commented in the source code.\n * Data\
\ elements which are indicated to be option, conditional or mandatory for at least one payment product\n in the\
\ table above are set to be optional in the s specification except the case where all are defined to be mandatory.\n\
\ * Data element which are indicated to be n.a. can be used by the ASPS if needed.\n In this case uncomment the\
\ the related lines in the source code.\n * If one uses this data types for some payment products he has to ensure\
\ that the used data type is\n valid according to the underlying payment product, e.g. by some appropriate validations."
type: object
required:
- instructedAmount
- creditorAccount
- creditorName
properties:
endToEndIdentification:
type: string
maxLength: 35
instructedAmount:
$ref: '#/components/schemas/amount'
creditorAccount:
$ref: '#/components/schemas/accountReference'
creditorAgent:
$ref: '#/components/schemas/bicfi'
creditorAgentName:
$ref: '#/components/schemas/creditorAgentName'
creditorName:
$ref: '#/components/schemas/creditorName'
creditorAddress:
$ref: '#/components/schemas/address'
remittanceInformationUnstructured:
$ref: '#/components/schemas/remittanceInformationUnstructured'
periodicPaymentInitiation_json:
description: "Generic Body for a periodic payment initiation via JSON.\n\nThis generic JSON body can be used to represent\
\ valid periodic payment initiations for the following JSON based payment product\nwhich where defined in the Implementation\
\ Guidelines:\n * sepa-credit-transfers\n * instant-sepa-credit-transfers\n * cross-border-credit-transfers\n\n\
For the convenience of the implementer additional which are already predefined in the Implementation Guidelines\n\
are included (but commented in source code), such that an ASPSP may add them easily.\n\nTake care: Since the format\
\ is intended to fit for all payment products\n there are additional conditions which are NOT covered by this specification.\n\
Please check the Implementation Guidelines for details.\n\nThe following data element are depending on the actual\
\ payment product available (in source code):\n \n | Data Element | SCT EU\
\ Core | SCT INST EU Core | Target2 Paym. Core | Cross Border CT Core |
\n | endToEndIdentification | \
\ optional | optional | optional | n.a. |
\n | instructionIdentification | n.a. | \
\ n.a. | n.a. | n.a. |
\n | debtorName | n.a. | n.a. | n.a. | \
\ n.a. |
\n | debtorAccount | mandatory | mandatory | mandatory | mandatory | \
\
\n | debtorId | n.a. | n.a. | n.a. | n.a. |
\n | ultimateDebtor | \
\ n.a. | n.a. | n.a. | n.a. |
\n | instructedAmount | mandatory | \
\ mandatory | mandatory | mandatory |
\n | currencyOfTransfer | n.a. | n.a. | \
\ n.a. | n.a. |
\n | exchangeRateInformation | n.a. | n.a. | n.a. | \
\ n.a. |
\n | creditorAccount | mandatory | mandatory | mandatory | mandatory | \
\
\n | creditorAgent | optional | optional | optional | conditional |
\n\
\ | creditorAgentName | n.a. | n.a. | n.a. | n.a. |
\n | creditorName | \
\ mandatory | mandatory | mandatory | mandatory |
\n | creditorId | n.a. | \
\ n.a. | n.a. | n.a. |
\n | creditorAddress | optional optional | optional | \
\ conditional |
\n | creditorNameAndAddress | n.a. | n.a. | n.a. | n.a. | \
\
\n | ultimateCreditor | n.a. | n.a. | n.a. | n.a. |
\n | purposeCode | \
\ n.a. | n.a. | n.a. | n.a. |
\n | chargeBearer | n.a. | n.a. | \
\ optional | conditional |
\n | serviceLevel | n.a. | n.a. | n.a. | \
\ n.a. |
\n | remittanceInformationUnstructured | optional | optional | optional | \
\ optional |
\n | remittanceInformationUnstructuredArray | n.a. | n.a. | n.a. | \
\ n.a. |
\n | remittanceInformationStructured | n.a. | n.a. | n.a. | n.a. | \
\
\n | remittanceInformationStructuredArray | n.a. | n.a. | n.a. | n.a. | \
\
\n | requestedExecutionDate | n.a. | n.a. | n.a. | n.a. |
\n | requestedExecutionTime | \
\ n.a. | n.a. | n.a. | n.a. |
\n | startDate | optional | optional | \
\ optional | optional |
\n | startDateTime | optional | optional | optional | \
\ optional |
\n | executionRule | optional | optional | optional | optional | \
\
\n | endDate | optional | optional | optional | optional |
\n | endDateTime | \
\ optional | optional | optional | optional |
\n | frequency | mandatory | \
\ mandatory | mandatory | mandatory |
\n | dayOfExecution | conditional | \
\ conditional | conditional | conditional |
\n \n
\n\nIMPORTANT: In\
\ this API definition the following holds:\n * All data elements mentioned above are defined, but some of them are\
\ commented\n i.e. they are only visible in the source code and can be used by uncommenting them.\n * Data elements\
\ which are mandatory in the table above for all payment products\n are set to be mandatory in this specification.\n\
\ * Data elements which are indicated in the table above as n.a. for all payment products are commented in the source\
\ code.\n * Data elements which are indicated to be option, conditional or mandatory for at least one payment product\n\
\ in the table above are set to be optional in the s specification except the case where all are defined to be\
\ mandatory.\n * Data element which are indicated to be n.a. can be used by the ASPS if needed.\n In this case\
\ uncomment the the related lines in the source code.\n * If one uses this data types for some payment products he\
\ has to ensure that the used data type is\n valid according to the underlying payment product, e.g. by some appropriate\
\ validations."
type: object
required:
- debtorAccount
- instructedAmount
- creditorAccount
- creditorName
- frequency
properties:
endToEndIdentification:
type: string
maxLength: 35
debtorAccount:
$ref: '#/components/schemas/accountReference'
instructedAmount:
$ref: '#/components/schemas/amount'
creditorAccount:
$ref: '#/components/schemas/accountReference'
creditorAgent:
$ref: '#/components/schemas/bicfi'
creditorName:
$ref: '#/components/schemas/creditorName'
creditorAddress:
$ref: '#/components/schemas/address'
remittanceInformationUnstructured:
$ref: '#/components/schemas/remittanceInformationUnstructured'
startDate:
$ref: '#/components/schemas/startDate'
startDateTime:
$ref: '#/components/schemas/startDateTime'
endDate:
$ref: '#/components/schemas/endDate'
endDateTime:
$ref: '#/components/schemas/endDateTime'
executionRule:
$ref: '#/components/schemas/executionRule'
frequency:
$ref: '#/components/schemas/frequencyCode'
dayOfExecution:
$ref: '#/components/schemas/dayOfExecution'
monthsOfExecution:
$ref: '#/components/schemas/monthsOfExecution'
bulkPaymentInitiation_json:
description: 'Generic Body for a bulk payment initiation via JSON.
paymentInformationId is contained in code but commented since it is n.a.
and not all ASPSP are able to support this field now.
In a later version the field will be mandatory.'
type: object
required:
- payments
- debtorAccount
properties:
batchBookingPreferred:
$ref: '#/components/schemas/batchBookingPreferred'
debtorAccount:
$ref: '#/components/schemas/accountReference'
categoryPurposeCode:
$ref: '#/components/schemas/categoryPurposeCode'
requestedExecutionDate:
type: string
format: date
requestedExecutionTime:
type: string
format: date-time
payments:
description: 'A list of generic JSON bodies payment initiations for bulk payments via JSON.
Note: Some fields from single payments do not occur in a bulk payment element'
type: array
items:
$ref: '#/components/schemas/paymentInitiationBulkElement_json'
confirmationOfFunds:
description: "JSON Request body for the \"Confirmation of funds service\".\n\n\n\n | cardNumber | \n\
\ String | \n Optional | \n Card Number of the card issued by the PIISP. Should be delivered if\
\ available. | \n
\n\n | account | \n Account Reference | \n Mandatory | \n PSU's\
\ account number. | \n
\n\n | payee | \n Max70Text | \n Optional | \n The merchant\
\ where the card is accepted as an information to the PSU. | \n
\n\n | instructedAmount | \n Amount | \n\
\ Mandatory | \n Transaction amount to be checked within the funds check mechanism. | \n
\n
"
type: object
required:
- account
- instructedAmount
properties:
cardNumber:
description: 'Card Number of the card issued by the PIISP.
Should be delivered if available.'
type: string
maxLength: 35
account:
$ref: '#/components/schemas/accountReference'
payee:
description: Name payee.
type: string
maxLength: 70
instructedAmount:
$ref: '#/components/schemas/amount'
consents:
description: Content of the body of a consent request.
type: object
required:
- access
- recurringIndicator
- validUntil
- frequencyPerDay
- combinedServiceIndicator
properties:
access:
$ref: '#/components/schemas/accountAccess'
recurringIndicator:
$ref: '#/components/schemas/recurringIndicator'
validUntil:
$ref: '#/components/schemas/validUntil'
frequencyPerDay:
$ref: '#/components/schemas/frequencyPerDay'
combinedServiceIndicator:
description: If "true" indicates that a payment initiation service will be addressed in the same "session".
type: boolean
example: false
paymentInitiationStatusResponse-200_json:
description: Body of the response for a successful payment initiation status request in case of an JSON based endpoint.
*Remark:* If the PSU does not complete a required SCA within the required timeframe the payment resource's status
must be set to "RJCT". Particularly, if a multi-level-SCA is required and the number of successful SCAs during the
required timeframe is insufficient, the status must also be set to "RJCT".
type: object
required:
- transactionStatus
properties:
transactionStatus:
$ref: '#/components/schemas/transactionStatus'
fundsAvailable:
$ref: '#/components/schemas/fundsAvailable'
psuMessage:
$ref: '#/components/schemas/psuMessageText'
ownerNames:
description: List of owner names. Should only be delivered after successful SCA. Could be restricted to the current
PSU by the ASPSP.
type: array
items:
$ref: '#/components/schemas/accountOwner'
psuName:
description: Name of the PSU. In case of a corporate account, this might be the person acting on behalf of the corporate.
type: string
maxLength: 140
_links:
$ref: '#/components/schemas/_linksPaymentInitiationStatus'
tppMessage:
type: array
items:
$ref: '#/components/schemas/tppMessageGeneric'
description: Messages to the TPP on operational issues.
paymentInitiationRequestResponse-201:
description: Body of the response for a successful payment initiation request.
type: object
required:
- transactionStatus
- paymentId
- _links
properties:
transactionStatus:
$ref: '#/components/schemas/transactionStatus'
paymentId:
$ref: '#/components/schemas/paymentId'
transactionFees:
$ref: '#/components/schemas/amount'
currencyConversionFee:
$ref: '#/components/schemas/amount'
estimatedTotalAmount:
$ref: '#/components/schemas/amount'
estimatedInterbankSettlementAmount:
$ref: '#/components/schemas/amount'
transactionFeeIndicator:
$ref: '#/components/schemas/transactionFeeIndicator'
scaMethods:
$ref: '#/components/schemas/scaMethods'
chosenScaMethod:
$ref: '#/components/schemas/chosenScaMethod'
challengeData:
$ref: '#/components/schemas/challengeData'
_links:
$ref: '#/components/schemas/_linksPaymentInitiation'
psuMessage:
$ref: '#/components/schemas/psuMessageText'
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage201PaymentInitiation'
paymentInitiationCancelResponse-202:
description: Body of the response for a successful cancel payment request.
type: object
required:
- transactionStatus
properties:
transactionStatus:
$ref: '#/components/schemas/transactionStatus'
scaMethods:
$ref: '#/components/schemas/scaMethods'
chosenScaMethod:
$ref: '#/components/schemas/chosenScaMethod'
challengeData:
$ref: '#/components/schemas/challengeData'
_links:
$ref: '#/components/schemas/_linksPaymentInitiationCancel'
paymentInitiationWithStatusResponse:
description: Generic JSON response body consistion of the corresponding payment initiation JSON body together with an
optional transaction status field.
type: object
required:
- debtorAccount
- instructedAmount
- creditorAccount
- creditorName
properties:
endToEndIdentification:
type: string
maxLength: 35
debtorAccount:
$ref: '#/components/schemas/accountReference'
instructedAmount:
$ref: '#/components/schemas/amount'
creditorAccount:
$ref: '#/components/schemas/accountReference'
creditorAgent:
$ref: '#/components/schemas/bicfi'
creditorName:
$ref: '#/components/schemas/creditorName'
creditorAddress:
$ref: '#/components/schemas/address'
remittanceInformationUnstructured:
$ref: '#/components/schemas/remittanceInformationUnstructured'
transactionStatus:
$ref: '#/components/schemas/transactionStatus'
tppMessage:
type: array
items:
$ref: '#/components/schemas/tppMessageGeneric'
description: Messages to the TPP on operational issues.
periodicPaymentInitiationWithStatusResponse:
description: Generic JSON response body consistion of the corresponding periodic payment initiation JSON body together
with an optional transaction status field.
type: object
required:
- debtorAccount
- instructedAmount
- creditorAccount
- creditorName
- frequency
properties:
endToEndIdentification:
type: string
maxLength: 35
debtorAccount:
$ref: '#/components/schemas/accountReference'
instructedAmount:
$ref: '#/components/schemas/amount'
creditorAccount:
$ref: '#/components/schemas/accountReference'
creditorAgent:
$ref: '#/components/schemas/bicfi'
creditorName:
$ref: '#/components/schemas/creditorName'
creditorAddress:
$ref: '#/components/schemas/address'
remittanceInformationUnstructured:
$ref: '#/components/schemas/remittanceInformationUnstructured'
startDate:
$ref: '#/components/schemas/startDate'
startDateTime:
$ref: '#/components/schemas/startDateTime'
endDate:
$ref: '#/components/schemas/endDate'
endDateTime:
$ref: '#/components/schemas/endDateTime'
executionRule:
$ref: '#/components/schemas/executionRule'
frequency:
$ref: '#/components/schemas/frequencyCode'
dayOfExecution:
$ref: '#/components/schemas/dayOfExecution'
transactionStatus:
$ref: '#/components/schemas/transactionStatus'
tppMessage:
type: array
items:
$ref: '#/components/schemas/tppMessageGeneric'
description: Messages to the TPP on operational issues.
bulkPaymentInitiationWithStatusResponse:
description: Generic JSON response body consistion of the corresponding bulk payment initiation JSON body together with
an optional transaction status field.
type: object
required:
- payments
- debtorAccount
properties:
batchBookingPreferred:
$ref: '#/components/schemas/batchBookingPreferred'
requestedExecutionDate:
type: string
format: date
requestedExecutionTime:
type: string
format: date-time
debtorAccount:
$ref: '#/components/schemas/accountReference'
paymentInformationId:
type: string
maxLength: 35
payments:
description: 'A list of generic JSON bodies payment initiations for bulk payments via JSON.
Note: Some fields from single payments do not occur in a bulk payment element'
type: array
items:
$ref: '#/components/schemas/paymentInitiationBulkElement_json'
transactionStatus:
$ref: '#/components/schemas/transactionStatus'
tppMessage:
type: array
items:
$ref: '#/components/schemas/tppMessageGeneric'
description: Messages to the TPP on operational issues.
scaStatusResponse:
description: Body of the JSON response with SCA Status.
required:
- scaStatus
type: object
properties:
scaStatus:
$ref: '#/components/schemas/scaStatus'
startScaprocessResponse:
description: Body of the JSON response for a Start SCA authorisation request.
type: object
required:
- scaStatus
- authorisationId
- _links
properties:
scaStatus:
$ref: '#/components/schemas/scaStatus'
authorisationId:
$ref: '#/components/schemas/authorisationId'
_links:
$ref: '#/components/schemas/_linksStartScaProcess'
consentsResponse-201:
description: Body of the JSON response for a successful consent request.
type: object
required:
- consentStatus
- consentId
- _links
properties:
consentStatus:
$ref: '#/components/schemas/consentStatus'
consentId:
$ref: '#/components/schemas/consentId'
scaMethods:
$ref: '#/components/schemas/scaMethods'
chosenScaMethod:
$ref: '#/components/schemas/chosenScaMethod'
challengeData:
$ref: '#/components/schemas/challengeData'
_links:
$ref: '#/components/schemas/_linksConsents'
psuMessage:
$ref: '#/components/schemas/psuMessageText'
consentStatusResponse-200:
description: Body of the JSON response for a successful get status request for a consent.
type: object
required:
- consentStatus
properties:
consentStatus:
$ref: '#/components/schemas/consentStatus'
psuMessage:
$ref: '#/components/schemas/psuMessageText'
consentInformationResponse-200_json:
description: Body of the JSON response for a successfull get consent request.
type: object
required:
- access
- recurringIndicator
- validUntil
- frequencyPerDay
- lastActionDate
- consentStatus
properties:
access:
$ref: '#/components/schemas/accountAccess'
recurringIndicator:
$ref: '#/components/schemas/recurringIndicator'
validUntil:
$ref: '#/components/schemas/validUntil'
frequencyPerDay:
$ref: '#/components/schemas/frequencyPerDay'
lastActionDate:
$ref: '#/components/schemas/lastActionDate'
consentStatus:
$ref: '#/components/schemas/consentStatus'
_links:
$ref: '#/components/schemas/_linksGetConsent'
readAccountBalanceResponse-200:
description: Body of the response for a successful read balance for an account request.
type: object
required:
- balances
properties:
account:
$ref: '#/components/schemas/accountReference'
balances:
$ref: '#/components/schemas/balanceList'
transactionsResponse-200_json:
description: 'Body of the JSON response for a successful read transaction list request.
This account report contains transactions resulting from the query parameters.'
type: object
properties:
account:
$ref: '#/components/schemas/accountReference'
transactions:
$ref: '#/components/schemas/accountReport'
balances:
$ref: '#/components/schemas/balanceList'
_links:
$ref: '#/components/schemas/_linksDownload'
_linksAll:
description: A _link object with all available link types.
type: object
properties:
scaRedirect:
$ref: '#/components/schemas/hrefType'
scaOAuth:
$ref: '#/components/schemas/hrefType'
confirmation:
$ref: '#/components/schemas/hrefType'
startAuthorisation:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithPsuIdentification:
$ref: '#/components/schemas/hrefType'
updatePsuIdentification:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithProprietaryData:
$ref: '#/components/schemas/hrefType'
updateProprietaryData:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithPsuAuthentication:
$ref: '#/components/schemas/hrefType'
updatePsuAuthentication:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithEncryptedPsuAuthentication:
$ref: '#/components/schemas/hrefType'
updateEncryptedPsuAuthentication:
$ref: '#/components/schemas/hrefType'
updateAdditionalPsuAuthentication:
$ref: '#/components/schemas/hrefType'
updateAdditionalEncryptedPsuAuthentication:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithAuthenticationMethodSelection:
$ref: '#/components/schemas/hrefType'
selectAuthenticationMethod:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithTransactionAuthorisation:
$ref: '#/components/schemas/hrefType'
authoriseTransaction:
$ref: '#/components/schemas/hrefType'
self:
$ref: '#/components/schemas/hrefType'
status:
$ref: '#/components/schemas/hrefType'
scaStatus:
$ref: '#/components/schemas/hrefType'
account:
$ref: '#/components/schemas/hrefType'
balances:
$ref: '#/components/schemas/hrefType'
transactions:
$ref: '#/components/schemas/hrefType'
transactionDetails:
$ref: '#/components/schemas/hrefType'
cardAccount:
$ref: '#/components/schemas/hrefType'
cardTransactions:
$ref: '#/components/schemas/hrefType'
first:
$ref: '#/components/schemas/hrefType'
next:
$ref: '#/components/schemas/hrefType'
previous:
$ref: '#/components/schemas/hrefType'
last:
$ref: '#/components/schemas/hrefType'
download:
$ref: '#/components/schemas/hrefType'
_linksPaymentInitiation:
description: "A list of hyperlinks to be recognised by the TPP.\nThe actual hyperlinks used in the response depend on\
\ the dynamical decisions of the ASPSP when\nprocessing the request.\n\n**Remark:** All links can be relative or full\
\ links, to be decided by the ASPSP.\n\nType of links admitted in this response, (further links might be added for\
\ ASPSP defined extensions):\n * 'scaRedirect':\n In case of an SCA Redirect Approach, the ASPSP is transmitting\
\ the link to which to redirect the PSU browser.\n* 'scaOAuth':\n In case of a SCA OAuth2 Approach, the ASPSP is\
\ transmitting the URI where the configuration of the Authorisation\n Server can be retrieved. The configuration\
\ follows the OAuth 2.0 Authorisation Server Metadata specification.\n* 'confirmation':\n Might be added by the ASPSP\
\ if either the \"scaRedirect\" or \"scaOAuth\" hyperlink is returned\n in the same response message.\n This hyperlink\
\ defines the URL to the resource which needs to be updated with\n * a confirmation code as retrieved after the\
\ plain redirect authentication process with the ASPSP authentication server or\n * an access token as retrieved\
\ by submitting an authorization code after the integrated OAuth based authentication process with the ASPSP authentication\
\ server.\n* 'startAuthorisation':\n In case, where an explicit start of the transaction authorisation is needed,\
\ but no more data needs to be updated\n (no authentication method to be selected, no PSU identification nor PSU\
\ authentication data to be uploaded).\n* 'startAuthorisationWithPsuIdentification':\n The link to the authorisation\
\ end-point, where the authorisation sub-resource has to be generated while\n uploading the PSU identification data.\n\
* 'startAuthorisationWithPsuAuthentication':\n The link to the authorisation end-point, where the authorisation sub-resource\
\ has to be generated while\n uploading the PSU authentication data.\n * 'startAuthorisationWithEncryptedPsuAuthentication':\n\
\ Same as startAuthorisactionWithPsuAuthentication where the authentication data need to be encrypted on\n application\
\ layer in uploading.\n* 'startAuthorisationWithAuthenticationMethodSelection':\n The link to the authorisation end-point,\
\ where the authorisation sub-resource has to be generated while\n selecting the authentication method.\n This link\
\ is contained under exactly the same conditions as the data element \"scaMethods\"\n* 'startAuthorisationWithTransactionAuthorisation':\n\
\ The link to the authorisation end-point, where the authorisation sub-resource has to be generated while\n authorising\
\ the transaction e.g. by uploading an OTP received by SMS.\n* 'self':\n The link to the payment initiation resource\
\ created by this request.\n This link can be used to retrieve the resource data.\n* 'status':\n The link to retrieve\
\ the transaction status of the payment initiation.\n* 'scaStatus':\n The link to retrieve the scaStatus of the corresponding\
\ authorisation sub-resource.\n This link is only contained, if an authorisation sub-resource has been already created."
type: object
properties:
scaRedirect:
$ref: '#/components/schemas/hrefType'
scaOAuth:
$ref: '#/components/schemas/hrefType'
confirmation:
$ref: '#/components/schemas/hrefType'
startAuthorisation:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithPsuIdentification:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithPsuAuthentication:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithEncryptedPsuAuthentication:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithAuthenticationMethodSelection:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithTransactionAuthorisation:
$ref: '#/components/schemas/hrefType'
self:
$ref: '#/components/schemas/hrefType'
status:
$ref: '#/components/schemas/hrefType'
scaStatus:
$ref: '#/components/schemas/hrefType'
example:
scaRedirect:
href: https://www.testbank.com/asdfasdfasdf
self:
href: /psd2/v1/payments/sepa-credit-transfers/1234-wertiq-983
_linksPaymentInitiationStatus:
description: Should refer to next steps if the problem can be resolved via the interface e.g. for re-submission of credentials.
type: object
example:
scaRedirect:
href: https://www.testbank.com/asdfasdfasdf
self:
href: /psd2/v1/payments/sepa-credit-transfers/1234-wertiq-983
_linksPaymentInitiationCancel:
description: "A list of hyperlinks to be recognised by the TPP. The actual hyperlinks used in the response depend on\
\ the\ndynamical decisions of the ASPSP when processing the request.\n\nRemark: All links can be relative or full\
\ links, to be decided by the ASPSP.\n\nType of links admitted in this response, (further links might be added for\
\ ASPSP defined extensions):\n * 'startAuthorisation':\n In case, where just the authorisation process of the\
\ cancellation needs to be started\n but no additional data needs to be updated for time being (no authentication\
\ method to be selected\n no PSU identification nor PSU authentication data to be uploaded).\n * 'startAuthorisationWithPsuIdentification':\n\
\ In case where a PSU identification needs to be updated when starting the cancellation authorisation:\n The\
\ link to the cancellation-authorisations end-point, where the cancellation sub-resource has to be\n generated\
\ while uploading the PSU identification data.\n * 'startAuthorisationWithPsuAuthentication':\n In case of a yet\
\ to be created authorisation sub-resource: The link to the cancelation authorisation end-point\n where the authorisation\
\ sub-resource has to be generated while uploading the PSU authentication data.\n * 'startAuthorisationWithEncryptedPsuAuthentication':\n\
\ Same as startAuthorisactionWithPsuAuthentication where the authentication data need to be encrypted on\n application\
\ layer in uploading.\n * 'startAuthorisationWithAuthenticationMethodSelection':\n The link to the authorisation\
\ end-point, where the cancellation-authorisation sub-resource has to be\n generated while selecting the authentication\
\ method. This link is contained under exactly the same\n conditions as the data element 'scaMethods'"
type: object
properties:
startAuthorisation:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithPsuIdentification:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithPsuAuthentication:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithEncryptedPsuAuthentication:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithAuthenticationMethodSelection:
$ref: '#/components/schemas/hrefType'
_linksStartScaProcess:
description: "A list of hyperlinks to be recognised by the TPP. The actual hyperlinks used in the\nresponse depend on\
\ the dynamical decisions of the ASPSP when processing the request.\n\n**Remark:** All links can be relative or full\
\ links, to be decided by the ASPSP.\n\nType of links admitted in this response, (further links might be added for\
\ ASPSP defined\nextensions):\n - 'scaRedirect':\n In case of an SCA Redirect Approach, the ASPSP is transmitting\
\ the link to which to\n redirect the PSU browser.\n- 'scaOAuth':\n In case of a SCA OAuth2 Approach, the ASPSP\
\ is transmitting the URI where the configuration of the Authorisation Server can be retrieved. The configuration\
\ follows the OAuth 2.0 Authorisation Server Metadata specification.\n* 'confirmation':\n Might be added by the ASPSP\
\ if either the \"scaRedirect\" or \"scaOAuth\" hyperlink is returned\n in the same response message.\n This hyperlink\
\ defines the URL to the resource which needs to be updated with\n * a confirmation code as retrieved after the\
\ plain redirect authentication process with the ASPSP authentication server or\n * an access token as retrieved\
\ by submitting an authorization code after the integrated OAuth based authentication process with the ASPSP authentication\
\ server.\n- 'updatePsuIdentification':\n The link to the authorisation or cancellation authorisation sub-resource\n\
\ where PSU identification data needs to be uploaded.\n- 'startAuthorisationWithPsuAuthentication':\n The link to\
\ the authorisation or cancellation authorisation sub-resource\n where PSU authentication data needs to be uploaded.\n\
- 'startAuthorisationWithEncryptedPsuAuthentication':\n Same as startAuthorisactionWithPsuAuthentication where\
\ the authentication data need to be encrypted on\n application layer in uploading.\n- 'selectAuthenticationMethod':\n\
\ The link to the authorisation or cancellation authorisation sub-resource\n where the selected authentication method\
\ needs to be uploaded.\n This link is contained under exactly the same conditions as the data element 'scaMethods'.\n\
- 'authoriseTransaction':\n The link to the authorisation or cancellation authorisation sub-resource\n where the\
\ authorisation data has to be uploaded, e.g. the TOP received by SMS.\n- 'scaStatus':\n The link to retrieve the\
\ scaStatus of the corresponding authorisation sub-resource."
type: object
properties:
scaRedirect:
$ref: '#/components/schemas/hrefType'
scaOAuth:
$ref: '#/components/schemas/hrefType'
confirmation:
$ref: '#/components/schemas/hrefType'
updatePsuIdentification:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithPsuAuthentication:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithEncryptedPsuAuthentication:
$ref: '#/components/schemas/hrefType'
selectAuthenticationMethod:
$ref: '#/components/schemas/hrefType'
authoriseTransaction:
$ref: '#/components/schemas/hrefType'
scaStatus:
$ref: '#/components/schemas/hrefType'
_linksDownload:
description: "A list of hyperlinks to be recognised by the TPP.\n\nType of links admitted in this response:\n - \"\
download\": a link to a resource, where the transaction report might be downloaded from in\n case where transaction\
\ reports have a huge size.\n\nRemark: This feature shall only be used where camt-data is requested which has a huge\
\ size."
type: object
required:
- download
properties:
download:
$ref: '#/components/schemas/hrefType'
_linksConsents:
description: "A list of hyperlinks to be recognised by the TPP.\n\nType of links admitted in this response (which might\
\ be extended by single ASPSPs as indicated in its XS2A\ndocumentation):\n * 'scaRedirect':\n In case of an SCA\
\ Redirect Approach, the ASPSP is transmitting the link to which to redirect the\n PSU browser.\n * 'scaOAuth':\n\
\ In case of an OAuth2 based Redirect Approach, the ASPSP is transmitting the link where the configuration\n \
\ of the OAuth2 Server is defined.\n The configuration follows the OAuth 2.0 Authorisation Server Metadata specification.\n\
* 'confirmation':\n Might be added by the ASPSP if either the \"scaRedirect\" or \"scaOAuth\" hyperlink is returned\n\
\ in the same response message.\n This hyperlink defines the URL to the resource which needs to be updated with\n\
\ * a confirmation code as retrieved after the plain redirect authentication process with the ASPSP authentication\
\ server or\n * an access token as retrieved by submitting an authorization code after the integrated OAuth based\
\ authentication process with the ASPSP authentication server.\n * 'startAuthorisation':\n In case, where an explicit\
\ start of the transaction authorisation is needed\n but no more data needs to be updated (no authentication method\
\ to be selected\n no PSU identification nor PSU authentication data to be uploaded).\n * 'startAuthorisationWithPsuIdentification':\n\
\ The link to the authorisation end-point, where the authorisation sub-resource has to be generated\n while\
\ uploading the PSU identification data.\n * 'startAuthorisationWithPsuAuthentication':\n The link to the authorisation\
\ end-point, where the authorisation sub-resource has to be generated\n while uploading the PSU authentication\
\ data.\n * 'startAuthorisationWithEncryptedPsuAuthentication':\n Same as startAuthorisactionWithPsuAuthentication\
\ where the authentication data need to be encrypted on\n application layer in uploading.\n * 'startAuthorisationWithAuthenticationMethodSelection':\n\
\ The link to the authorisation end-point, where the authorisation sub-resource has to be generated\n while\
\ selecting the authentication method. This link is contained under exactly the same conditions\n as the data element\
\ 'scaMethods'\n * 'startAuthorisationWithTransactionAuthorisation':\n The link to the authorisation end-point,\
\ where the authorisation sub-resource has to be generated\n while authorising the transaction e.g. by uploading\
\ an OTP received by SMS.\n * 'self':\n The link to the Establish Account Information Consent resource created\
\ by this request.\n This link can be used to retrieve the resource data.\n * 'status':\n The link to retrieve\
\ the status of the account information consent.\n * 'scaStatus': The link to retrieve the scaStatus of the corresponding\
\ authorisation sub-resource.\n This link is only contained, if an authorisation sub-resource has been already\
\ created."
type: object
properties:
scaRedirect:
$ref: '#/components/schemas/hrefType'
scaOAuth:
$ref: '#/components/schemas/hrefType'
confirmation:
$ref: '#/components/schemas/hrefType'
startAuthorisation:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithPsuIdentification:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithPsuAuthentication:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithEncryptedPsuAuthentication:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithAuthenticationMethodSelection:
$ref: '#/components/schemas/hrefType'
startAuthorisationWithTransactionAuthorisation:
$ref: '#/components/schemas/hrefType'
self:
$ref: '#/components/schemas/hrefType'
status:
$ref: '#/components/schemas/hrefType'
scaStatus:
$ref: '#/components/schemas/hrefType'
_linksGetConsent:
description: 'A list of hyperlinks to be recognised by the TPP.
Links of type "account" and/or "cardAccount", depending on the nature of the consent.'
type: object
properties:
account:
$ref: '#/components/schemas/hrefType'
card-account:
$ref: '#/components/schemas/hrefType'
_linksAccountReport:
type: object
required:
- account
properties:
account:
$ref: '#/components/schemas/hrefType'
first:
$ref: '#/components/schemas/hrefType'
next:
$ref: '#/components/schemas/hrefType'
previous:
$ref: '#/components/schemas/hrefType'
last:
$ref: '#/components/schemas/hrefType'
_linksTransactionDetails:
type: object
required:
- transactionDetails
properties:
transactionDetails:
$ref: '#/components/schemas/hrefType'
_linksAccountDetails:
description: 'Links to the account, which can be directly used for retrieving account information from this dedicated
account.
Links to "balances" and/or "transactions"
These links are only supported, when the corresponding consent has been already granted.'
type: object
properties:
balances:
$ref: '#/components/schemas/hrefType'
transactions:
$ref: '#/components/schemas/hrefType'
cheques:
$ref: '#/components/schemas/hrefType'
tppMessageCategory:
description: Category of the TPP message category.
type: string
enum:
- ERROR
- WARNING
tppMessageCodeGeneric:
description: Code of the TPP message category.
type: string
MessageCode201PaymentInitiation:
description: Message codes for HTTP Codes 201 to a Payment Initiation Request.
type: string
enum:
- WARNING
- BENEFICIARY_WHITELISTING_REQUIRED
MessageCode400_AIS:
description: Message codes defined for AIS for HTTP Error code 400 (BAD_REQUEST).
type: string
enum:
- FORMAT_ERROR
- PARAMETER_NOT_CONSISTENT
- PARAMETER_NOT_SUPPORTED
- SERVICE_INVALID
- RESOURCE_UNKNOWN
- RESOURCE_EXPIRED
- RESOURCE_BLOCKED
- TIMESTAMP_INVALID
- PERIOD_INVALID
- SCA_METHOD_UNKNOWN
- SCA_INVALID
- CONSENT_UNKNOWN
- SESSIONS_NOT_SUPPORTED
MessageCode400_PIS:
description: Message codes defined for PIS for HTTP Error code 400 (BAD_REQUEST).
type: string
enum:
- FORMAT_ERROR
- PARAMETER_NOT_CONSISTENT
- PARAMETER_NOT_SUPPORTED
- SERVICE_INVALID
- RESOURCE_UNKNOWN
- RESOURCE_EXPIRED
- RESOURCE_BLOCKED
- TIMESTAMP_INVALID
- PERIOD_INVALID
- SCA_METHOD_UNKNOWN
- SCA_INVALID
- CONSENT_UNKNOWN
- PAYMENT_FAILED
- EXECUTION_DATE_INVALID
MessageCode401_PIS:
description: Message codes defined for PIS for HTTP Error code 401 (UNAUTHORIZED).
type: string
enum:
- CERTIFICATE_INVALID
- ROLE_INVALID
- CERTIFICATE_EXPIRED
- CERTIFICATE_BLOCKED
- CERTIFICATE_REVOKE
- CERTIFICATE_MISSING
- SIGNATURE_INVALID
- SIGNATURE_MISSING
- CORPORATE_ID_INVALID
- PSU_CREDENTIALS_INVALID
- CONSENT_INVALID
- CONSENT_EXPIRED
- TOKEN_UNKNOWN
- TOKEN_INVALID
- TOKEN_EXPIRED
- KID_MISSING
MessageCode401_AIS:
description: Message codes defined for AIS for HTTP Error code 401 (UNAUTHORIZED).
type: string
enum:
- CERTIFICATE_INVALID
- ROLE_INVALID
- CERTIFICATE_EXPIRED
- CERTIFICATE_BLOCKED
- CERTIFICATE_REVOKE
- CERTIFICATE_MISSING
- SIGNATURE_INVALID
- SIGNATURE_MISSING
- CORPORATE_ID_INVALID
- PSU_CREDENTIALS_INVALID
- CONSENT_INVALID
- CONSENT_EXPIRED
- TOKEN_UNKNOWN
- TOKEN_INVALID
- TOKEN_EXPIRED
MessageCode401_PIIS:
description: Message codes defined for PIIS for HTTP Error code 401 (UNAUTHORIZED).
type: string
enum:
- CERTIFICATE_INVALID
- ROLE_INVALID
- CERTIFICATE_EXPIRED
- CERTIFICATE_BLOCKED
- CERTIFICATE_REVOKE
- CERTIFICATE_MISSING
- SIGNATURE_INVALID
- SIGNATURE_MISSING
- CORPORATE_ID_INVALID
- PSU_CREDENTIALS_INVALID
- CONSENT_INVALID
- CONSENT_EXPIRED
- TOKEN_UNKNOWN
- TOKEN_INVALID
- TOKEN_EXPIRED
MessageCode403_PIS:
description: Message codes defined defined for PIS for PIS for HTTP Error code 403 (FORBIDDEN).
type: string
enum:
- CONSENT_UNKNOWN
- SERVICE_BLOCKED
- RESOURCE_UNKNOWN
- RESOURCE_EXPIRED
- PRODUCT_INVALID
MessageCode403_AIS:
description: Message codes defined for AIS for HTTP Error code 403 (FORBIDDEN).
type: string
enum:
- CONSENT_UNKNOWN
- SERVICE_BLOCKED
- RESOURCE_UNKNOWN
- RESOURCE_EXPIRED
MessageCode403_PIIS:
description: Message codes defined for PIIS for HTTP Error code 403 (FORBIDDEN).
type: string
enum:
- CONSENT_UNKNOWN
- SERVICE_BLOCKED
- RESOURCE_UNKNOWN
- RESOURCE_EXPIRED
MessageCode404_PIS:
description: Message codes defined for PIS for HTTP Error code 404 (NOT FOUND).
type: string
enum:
- RESOURCE_UNKNOWN
- PRODUCT_UNKNOWN
MessageCode404_AIS:
description: Message codes defined for AIS for HTTP Error code 404 (NOT FOUND).
type: string
enum:
- RESOURCE_UNKNOWN
MessageCode404_PIIS:
description: Message codes defined for PIIS for HTTP Error code 404 (NOT FOUND).
type: string
enum:
- RESOURCE_UNKNOWN
MessageCode429_AIS:
description: Message codes for HTTP Error code 429 (TOO MANY REQUESTS).
type: string
enum:
- ACCESS_EXCEEDED
tppMessageText:
description: Additional explaining text to the TPP.
type: string
maxLength: 500
tppMessageGeneric:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/tppMessageCodeGeneric'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage201PaymentInitiation:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode201PaymentInitiation'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage400_AIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode400_AIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage400_PIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode400_PIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage401_PIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode401_PIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage401_AIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode401_AIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage401_PIIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode401_PIIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage403_PIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode403_PIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage403_AIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode403_AIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage403_PIIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode403_PIIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage404_PIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode404_PIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage404_AIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode404_AIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage404_PIIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode404_PIIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage429_AIS:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode429_AIS'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
Error400_NG_PIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage400_PIS'
Error400_NG_AIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage400_AIS'
Error401_NG_PIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage401_PIS'
Error401_NG_AIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage401_AIS'
Error401_NG_PIIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage401_PIIS'
Error403_NG_PIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage403_PIS'
Error403_NG_AIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage403_AIS'
Error403_NG_PIIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage403_PIIS'
Error404_NG_PIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage404_PIS'
Error404_NG_AIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage404_AIS'
Error404_NG_PIIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage404_PIIS'
Error429_NG_AIS:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 429.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage429_AIS'
token:
description: Content of the body of a token request.
type: object
required:
- grant_type
- client_id
properties:
grant_type:
description: value must be set to "authorization_code" or "refresh_token"
type: string
enum:
- authorization_code
- refresh_token
client_id:
description: TPP identification
type: string
example: PSDFR-ACPR-11111
code:
description: authorisation code provided by the authorisation flow - Required if grant_type equals "authorization_code"
type: string
example: dbb2f497b4364f0a918cb3ee579f8c55
redirect_uri:
description: Call-back URL of the TPP. URI where the PSU is redirected to after authorisation flow. - Required if
grant_type equals "authorization_code"
type: string
code_verifier:
description: code verifier of the authorise request - Required if grant_type equals "authorization_code"
type: string
refresh_token:
description: refresh token provided by the token request - Required if grant_type equals "refresh_token"
type: string
example: c66da169cc96491cad82a713933e31295ed6154648994985b3bee1669e37c9b14b48ae4c641c422c8b6875aaf4356ad3
tokenResponse-200:
description: Body of the JSON response for a successful consent request.
type: object
required:
- access_token
- token_type
- expires_in
- scope
properties:
access_token:
description: access token
type: string
token_type:
description: token type (Bearer)
type: string
expires_in:
description: expriration time of the access toekn
type: string
scope:
description: scope of the access token
type: string
refresh_token:
description: refresh token
type: string
Error_NG_TOKEN:
description: Error on token request.
type: object
properties:
error:
type: string
error_description:
type: string
Error500:
description: definition of reporting error information in case of a HTTP error code 500.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage500'
example:
- category: ERROR
code: INTERNAL_SERVER_ERROR
text: Internal Server Error
tppMessage500:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode500'
text:
$ref: '#/components/schemas/tppMessageText'
MessageCode500:
description: Message codes for HTTP Error code 500 (INTERNAL SERVER ERROR).
type: string
enum:
- INTERNAL_SERVER_ERROR
trustedBeneficiariesList:
description: Array of Trusted Beneficiaries..
type: array
items:
$ref: '#/components/schemas/trustedBeneficiary'
trustedBeneficiaries:
description: Array of Trusted Beneficiaries.
type: object
required:
- trustedBeneficiaries
properties:
trustedBeneficiaries:
$ref: '#/components/schemas/trustedBeneficiariesList'
trustedBeneficiary:
description: Trusted Beneficiary
type: object
required:
- trustedBeneficiaryId
- creditorAccount
- creditorName
properties:
trustedBeneficiaryId:
$ref: '#/components/schemas/trustedBeneficiaryId'
debtorAccount:
$ref: '#/components/schemas/accountReference'
creditorAccount:
$ref: '#/components/schemas/accountReference'
creditorAgent:
$ref: '#/components/schemas/bicfi'
creditorName:
$ref: '#/components/schemas/creditorName'
creditorAlias:
$ref: '#/components/schemas/creditorAlias'
creditorId:
$ref: '#/components/schemas/creditorId'
creditorAddress:
$ref: '#/components/schemas/address'
trustedBeneficiaryId:
description: Resource identification of the list entry.
type: string
pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
example: 74a55404-4ad0-4432-bcf4-93fb94b81e94
creditorAlias:
description: An alias for the creditor as defined by the PSU as an alias when displaying the list of trusted beneficiaries
in online channels of the ASPSP.
type: string
maxLength: 70
example: Creditor Alias
Error400_NG_LTB:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage400_LTB'
_links:
$ref: '#/components/schemas/_linksAll'
Error401_NG_LTB:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage401_LTB'
_links:
$ref: '#/components/schemas/_linksAll'
tppMessage401_LTB:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode401_LTB'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
Error403_NG_LTB:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage403_LTB'
_links:
$ref: '#/components/schemas/_linksAll'
tppMessage403_LTB:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode403_LTB'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
Error404_NG_LTB:
description: NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404.
type: object
properties:
tppMessages:
type: array
items:
$ref: '#/components/schemas/tppMessage404_LTB'
_links:
$ref: '#/components/schemas/_linksAll'
tppMessage404_LTB:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode404_LTB'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
tppMessage400_LTB:
type: object
required:
- category
- code
properties:
category:
$ref: '#/components/schemas/tppMessageCategory'
code:
$ref: '#/components/schemas/MessageCode400_LTB'
path:
type: string
text:
$ref: '#/components/schemas/tppMessageText'
MessageCode400_LTB:
description: Message codes defined for Trusted Beneficiaries for HTTP Error code 400 (BAD_REQUEST).
type: string
enum:
- FORMAT_ERROR
- PARAMETER_NOT_CONSISTENT
- PARAMETER_NOT_SUPPORTED
- SERVICE_INVALID
- RESOURCE_UNKNOWN
- RESOURCE_EXPIRED
- RESOURCE_BLOCKED
- TIMESTAMP_INVALID
- PERIOD_INVALID
- SCA_METHOD_UNKNOWN
- SCA_INVALID
- CONSENT_UNKNOWN
- SESSIONS_NOT_SUPPORTED
MessageCode401_LTB:
description: Message codes defined for Trusted Beneficiaries for HTTP Error code 401 (UNAUTHORIZED).
type: string
enum:
- CERTIFICATE_INVALID
- ROLE_INVALID
- CERTIFICATE_EXPIRED
- CERTIFICATE_BLOCKED
- CERTIFICATE_REVOKE
- CERTIFICATE_MISSING
- SIGNATURE_INVALID
- SIGNATURE_MISSING
- CORPORATE_ID_INVALID
- PSU_CREDENTIALS_INVALID
- CONSENT_INVALID
- CONSENT_EXPIRED
- TOKEN_UNKNOWN
- TOKEN_INVALID
- TOKEN_EXPIRED
MessageCode403_LTB:
description: Message codes defined for Trusted Beneficiaries for HTTP Error code 403 (FORBIDDEN).
type: string
enum:
- CONSENT_UNKNOWN
- SERVICE_BLOCKED
- RESOURCE_UNKNOWN
- RESOURCE_EXPIRED
MessageCode404_LTB:
description: Message codes defined for Trusted Beneficiaries for HTTP Error code 404 (NOT FOUND).
type: string
enum:
- RESOURCE_UNKNOWN
parameters:
paymentService:
name: payment-service
in: path
description: "Payment service:\n Possible values are:\n * payments\n* periodic-payments\n* bulk-payments"
required: true
schema:
type: string
enum:
- payments
- periodic-payments
- bulk-payments
paymentProduct:
name: payment-product
in: path
description: "The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT).\nThe ASPSP will publish\
\ which of the payment products/endpoints will be supported.\n\nThe following payment products are supported:\n -\
\ cross-border-credit-transfers\n- instant-sepa-credit-transfers\n- sepa-credit-transfers\n\n**Remark:** For cross-border\
\ and TARGET-2 payments only community wide payment schemes do exist.\nThere are plenty of country specific scheme\
\ variants."
required: true
schema:
type: string
enum:
- cross-border-credit-transfers
- instant-sepa-credit-transfers
- sepa-credit-transfers
paymentId:
name: paymentId
in: path
description: Resource identification of the generated payment initiation resource.
required: true
schema:
$ref: '#/components/schemas/paymentId'
authorisationId:
name: authorisationId
in: path
description: Resource identification of the related SCA.
required: true
schema:
$ref: '#/components/schemas/authorisationId'
accountId:
name: account-id
in: path
description: 'This identification is denoting the addressed (card) account.
The account-id is retrieved by using a "Read Account List" or "Read Card Account list" call.
The account-id is the "resourceId" attribute of the account structure.
Its value is constant at least throughout the lifecycle of a given consent.'
required: true
schema:
$ref: '#/components/schemas/accountId'
consentId_PATH:
name: consentId
in: path
description: ID of the corresponding consent object as returned by an account information consent request.
required: true
schema:
$ref: '#/components/schemas/consentId'
consentId_HEADER_optional:
name: Consent-ID
in: header
description: 'This data element may be contained, if the payment initiation transaction is part of a session, i.e. combined
AIS/PIS service.
This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.'
required: false
schema:
$ref: '#/components/schemas/consentId'
consentId_HEADER_mandatory:
name: Consent-ID
in: header
description: This then contains the consentId of the related AIS consent, which was performed prior to this payment
initiation.
required: true
schema:
$ref: '#/components/schemas/consentId'
withBalanceQuery:
name: withBalance
in: query
description: 'If contained, this function reads the list of accessible payment accounts including the booking balance
if granted by the PSU in the related consent and available by the ASPSP.
This parameter might be ignored by the ASPSP.'
required: false
schema:
type: boolean
dateFrom:
name: dateFrom
in: query
description: 'Conditional: Starting date (inclusive the date dateFrom) of the transaction list, mandated if no delta
access is required
and if bookingStatus does not equal "information".
For booked transactions, the relevant date is the booking date.
For pending transactions, the relevant date is the entry date, which may not be transparent
neither in this API nor other channels of the ASPSP.'
required: true
schema:
type: string
format: date
dateTo:
name: dateTo
in: query
description: 'End date (inclusive the data dateTo) of the transaction list, default is "now" if not given.
Might be ignored if a delta function is used.
For booked transactions, the relevant date is the booking date.
For pending transactions, the relevant date is the entry date, which may not be transparent
neither in this API nor other channels of the ASPSP.'
required: false
schema:
type: string
format: date
bookingStatusGeneric:
name: bookingStatus
in: query
description: 'Permitted codes are "booked", "pending", "information", "both"
"booked" shall be supported by the ASPSP.
To support the "pending" and "both" feature is optional for the ASPSP, Error code if not supported in the online banking
frontend.
If supported, "both" means to request transaction reports of transaction of bookingStatus either "pending" or "booked".
To support the "information" feature is optional for the ASPSP. Currently the booking status "information" only covers
standing orders. Error code if not supported.
'
required: true
schema:
type: string
enum:
- booked
- pending
- information
- both
X-Request-ID:
name: X-Request-ID
in: header
description: ID of the request, unique to the call, as determined by the initiating party.
required: true
example: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
schema:
type: string
format: uuid
TPP-Redirect-Preferred:
name: TPP-Redirect-Preferred
in: header
description: 'If it equals "true", the TPP prefers a redirect over an embedded SCA approach.
If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded
or the Decoupled
SCA approach, depending on the parameter TPP-Decoupled-Preferred and the choice of the SCA procedure by the TPP/PSU.
If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen
by the
TPP/PSU.'
schema:
type: boolean
required: false
TPP-Redirect-URI:
name: TPP-Redirect-URI
in: header
description: 'URI of the TPP, where the transaction flow shall be redirected to after a Redirect.
Mandated for the Redirect SCA Approach, specifically
when TPP-Redirect-Preferred equals "true".
It is recommended to always use this header field.
**Remark for Future:**
This field might be changed to mandatory in the next version of the specification.'
schema:
type: string
format: uri
required: false
TPP-Nok-Redirect-URI:
name: TPP-Nok-Redirect-URI
in: header
description: 'If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of
the TPP-Redirect-URI in case
of a negative result of the redirect SCA method. This might be ignored by the ASPSP.'
schema:
type: string
format: uri
required: false
TPP-Explicit-Authorisation-Preferred:
name: TPP-Explicit-Authorisation-Preferred
in: header
description: 'If it equals "true", the TPP prefers to start the authorisation process separately
e.g. because of the usage of a signing basket.
This preference might be ignored by the ASPSP, if a signing basket is not supported as functionality.
If it equals "false" or if the parameter is not used, there is no preference of the TPP.
This especially indicates that the TPP assumes a direct authorisation of the transaction in the next step
without using a signing basket.'
schema:
type: boolean
required: false
TPP-Rejection-NoFunds-Preferred:
name: TPP-Rejection-NoFunds-Preferred
in: header
description: 'If it equals "true" then the TPP prefers a rejection of the payment initiation in case the ASPSP is
providing an integrated confirmation of funds request an the result of this is that not sufficient
funds are available.
If it equals "false" then the TPP prefers that the ASPSP is dealing with the payment initiation like
in the ASPSPs online channel, potentially waiting for a certain time period for funds to arrive to initiate the payment.
This parameter might be ignored by the ASPSP.'
schema:
type: boolean
required: false
TPP-Brand-Logging-Information:
name: TPP-Brand-Logging-Information
in: header
description: 'This header might be used by TPPs to inform the ASPSP about the brand used by the TPP towards the PSU.
This information is meant for logging entries to enhance communication between ASPSP and PSU or ASPSP and TPP.
This header might be ignored by the ASPSP.'
schema:
type: string
required: false
TPP-Notification-URI:
name: TPP-Notification-URI
in: header
description: "URI for the Endpoint of the TPP-API to which the status of the payment initiation should be sent.\nThis\
\ header field may by ignored by the ASPSP.\n\nFor security reasons, it shall be ensured that the TPP-Notification-URI\
\ as introduced above is secured by the TPP eIDAS QWAC used for identification of the TPP. The following applies:\n\
\ URIs which are provided by TPPs in TPP-Notification-URI shall comply with the domain secured by the eIDAS QWAC\
\ certificate of the TPP in the field CN or SubjectAltName of the certificate. Please note that in case of example-TPP.com\
\ as certificate entry TPP- Notification-URI like www.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction-\
\ id/notifications or notifications.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications\
\ would be compliant.\n\nWildcard definitions shall be taken into account for compliance checks by the ASPSP.\n ASPSPs\
\ may respond with ASPSP-Notification-Support set to false, if the provided URIs do not comply."
schema:
type: string
required: false
TPP-Notification-Content-Preferred:
name: TPP-Notification-Content-Preferred
in: header
description: "The string has the form\n\nstatus=X1, ..., Xn\n\nwhere Xi is one of the constants SCA, PROCESS, LAST and\
\ where constants are not\nrepeated.\nThe usage of the constants supports the of following semantics:\n SCA: A notification\
\ on every change of the scaStatus attribute for all related authorisation processes is preferred by the TPP.\n\n\
\ PROCESS: A notification on all changes of consentStatus or transactionStatus attributes is preferred by the TPP.\n\
\ LAST: Only a notification on the last consentStatus or transactionStatus as available in the XS2A interface is\
\ preferred by the TPP.\n\nThis header field may be ignored, if the ASPSP does not support resource notification services\
\ for the related TPP."
schema:
type: string
required: false
PSU-IP-Address_mandatory:
name: PSU-IP-Address
in: header
description: 'The forwarded IP Address header field consists of the corresponding http request IP Address field between
PSU and TPP.
If not available, the TPP shall use the IP Address used by the TPP when submitting this request.'
schema:
type: string
format: ipv4
required: true
example: 192.168.8.78
PSU-IP-Address_optional:
name: PSU-IP-Address
in: header
description: The forwarded IP Address header field consists of the corresponding http request IP Address field between
PSU and TPP.
schema:
type: string
format: ipv4
required: false
example: 192.168.8.78
PSU-IP-Address_conditionalForAis:
name: PSU-IP-Address
in: header
description: 'The forwarded IP Address header field consists of the corresponding HTTP request
IP Address field between PSU and TPP.
It shall be contained if and only if this request was actively initiated by the PSU.'
schema:
type: string
format: ipv4
required: false
example: 192.168.8.78
PSU-IP-Port:
name: PSU-IP-Port
in: header
description: The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU
and TPP, if available.
schema:
type: string
required: false
example: '1234'
PSU-Accept:
name: PSU-Accept
in: header
description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between
PSU and TPP, if available.
schema:
type: string
required: false
PSU-Accept-Charset:
name: PSU-Accept-Charset
in: header
description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between
PSU and TPP, if available.
schema:
type: string
required: false
PSU-Accept-Encoding:
name: PSU-Accept-Encoding
in: header
description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between
PSU and TPP, if available.
schema:
type: string
required: false
PSU-Accept-Language:
name: PSU-Accept-Language
in: header
description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between
PSU and TPP, if available.
schema:
type: string
required: false
PSU-User-Agent:
name: PSU-User-Agent
in: header
description: The forwarded Agent header field of the HTTP request between PSU and TPP, if available.
schema:
type: string
required: false
PSU-Http-Method:
name: PSU-Http-Method
in: header
description: "HTTP method used at the PSU ? TPP interface, if available.\nValid values are:\n * GET\n* POST\n* PUT\n\
* PATCH\n* DELETE"
schema:
type: string
enum:
- GET
- POST
- PUT
- PATCH
- DELETE
required: false
PSU-Device-ID:
name: PSU-Device-ID
in: header
description: 'UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available.
UUID identifies either a device or a device dependant application installation.
In case of an installation identification this ID needs to be unaltered until removal from device.'
schema:
type: string
format: uuid
required: false
example: 99435c7e-ad88-49ec-a2ad-99ddcb1f5555
Authorization_mandatory:
name: Authorization
in: header
description: Access Token from OAuth2
required: true
example: Bearer c5ed8ebaf1d3493587691d374b091500958c17c86032480d84185e9254812420514541bd9aca4e78a56643dbaedb44b0
schema:
type: string
Content-Type:
name: Content-Type
in: header
description: Content Type of the body
required: true
example: application/x-www-form-urlencoded
schema:
type: string
enum:
- application/x-www-form-urlencoded
accountIdTB:
name: account-id
in: query
description: 'This identification is denoting the addressed account.
The account-id is retrieved by using a "Read account list" call.
The account-id is the "id" attribute of the account structure.
Its value is constant at least throughout the lifecycle of a given consent.'
required: false
schema:
$ref: '#/components/schemas/accountId'
responses:
OK_200_PaymentInitiationInformation:
description: OK
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/paymentInitiationWithStatusResponse'
- $ref: '#/components/schemas/periodicPaymentInitiationWithStatusResponse'
- $ref: '#/components/schemas/bulkPaymentInitiationWithStatusResponse'
examples:
Payment example:
$ref: '#/components/examples/paymentInitiationWithStatusResponseExample'
Periodic payment example:
$ref: '#/components/examples/periodicPaymentInitiationWithStatusResponseExample'
Bulk payment example:
$ref: '#/components/examples/bulkPaymentInitiationWithStatusResponseExample'
OK_200_PaymentInitiationStatus:
description: OK
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/paymentInitiationStatusResponse-200_json'
examples:
simple:
$ref: '#/components/examples/paymentInitiationStatusResponse_json_Simple'
OK_200_Authorisations:
description: OK
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/authorisations'
examples:
Example:
$ref: '#/components/examples/authorisationListExample'
OK_200_ScaStatus:
description: OK
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/scaStatusResponse'
examples:
Example:
$ref: '#/components/examples/scaStatusResponseExample'
OK_200_AccountList:
description: OK. In case, no account is accessible, the ASPSP shall return an empty array. As this is also considered
a positive response, the Response code must still be 200.
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/accountList'
examples:
Regular Account:
$ref: '#/components/examples/accountListExample1'
OK_200_AccountDetails:
description: OK
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
type: object
required:
- account
properties:
account:
$ref: '#/components/schemas/accountDetails'
examples:
Regular Account:
$ref: '#/components/examples/accountDetailsRegularAccount'
OK_200_Balances:
description: OK
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/readAccountBalanceResponse-200'
examples:
Regular Account:
$ref: '#/components/examples/balancesExample1_RegularAccount'
OK_200_AccountsTransactions:
description: OK
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/transactionsResponse-200_json'
examples:
Transactions:
$ref: '#/components/examples/transactionsExample1_RegularAccount_json'
Standing orders:
$ref: '#/components/examples/transactionsExample2_information_json'
OK_200_ConsentInformation:
description: OK
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/consentInformationResponse-200_json'
examples:
Example:
$ref: '#/components/examples/consentsInformationResponseExample'
OK_200_ConsentStatus:
description: OK
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/consentStatusResponse-200'
examples:
Example:
$ref: '#/components/examples/consentStatusResponseExample1'
OK_200_ConfirmationOfFunds:
description: OK
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
description: 'Equals "true" if sufficient funds are available at the time of the request
"false" otherwise.'
type: object
required:
- fundsAvailable
properties:
fundsAvailable:
$ref: '#/components/schemas/fundsAvailable'
examples:
Example:
$ref: '#/components/examples/confirmationOfFundsResponseExample'
CREATED_201_PaymentInitiation:
description: CREATED
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
ASPSP-SCA-Approach:
$ref: '#/components/headers/ASPSP-SCA-Approach'
content:
application/json:
schema:
$ref: '#/components/schemas/paymentInitiationRequestResponse-201'
examples:
Single SCT - Response in case of a OAuth2 SCA approach where an explicit authorisation start is needed:
$ref: '#/components/examples/paymentInitiationExample_json__OAuth2ExplicitAuthorisation'
Single SCT - Response in case of an OAuth2 SCA approach with implicitly creating an authorisation sub-resource:
$ref: '#/components/examples/paymentInitiationExample_json_OAuth2'
CREATED_201_StartScaProcess:
description: Created
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
ASPSP-SCA-Approach:
$ref: '#/components/headers/ASPSP-SCA-Approach'
content:
application/json:
schema:
$ref: '#/components/schemas/startScaprocessResponse'
examples:
Example:
$ref: '#/components/examples/startScaProcessResponseExample'
CREATED_201_Consents:
description: Created
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
ASPSP-SCA-Approach:
$ref: '#/components/headers/ASPSP-SCA-Approach'
content:
application/json:
schema:
$ref: '#/components/schemas/consentsResponse-201'
examples:
Response in case of the OAuth2 approach with a dedicated start of the authorisation process:
$ref: '#/components/examples/consentResponseExample1_Oauth2_dedicated_authorisation'
Response in case of the OAuth2 approach with an implicit generated authorisation resource:
$ref: '#/components/examples/consentResponseExample2_OAuth2'
RECEIVED_202_PaymentInitiationCancel:
description: Received
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/paymentInitiationCancelResponse-202'
examples:
Example:
$ref: '#/components/examples/paymentInitiationCancelResponse-202_json'
NO_CONTENT_204_PaymentInitiationCancel:
description: No Content
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
NO_CONTENT_204_Consents:
description: No Content
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
BAD_REQUEST_400_AIS:
description: Bad Request
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error400_NG_AIS'
BAD_REQUEST_400_PIS:
description: Bad Request
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error400_NG_PIS'
BAD_REQUEST_400_PIIS:
description: Bad Request
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error400_NG_AIS'
UNAUTHORIZED_401_PIS:
description: Unauthorized
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error401_NG_PIS'
UNAUTHORIZED_401_AIS:
description: Unauthorized
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error401_NG_AIS'
UNAUTHORIZED_401_PIIS:
description: Unauthorized
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error401_NG_PIIS'
FORBIDDEN_403_PIS:
description: Forbidden
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error403_NG_PIS'
FORBIDDEN_403_AIS:
description: Forbidden
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error403_NG_AIS'
FORBIDDEN_403_PIIS:
description: Forbidden
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error403_NG_PIIS'
NOT_FOUND_404_PIS:
description: Not found
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error404_NG_PIS'
NOT_FOUND_404_AIS:
description: Not found
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error404_NG_AIS'
NOT_FOUND_404_PIIS:
description: Not found
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error404_NG_PIIS'
TOO_MANY_REQUESTS_429_AIS:
description: Too Many Requests
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error429_NG_AIS'
examples:
example:
$ref: '#/components/examples/error_429_example'
INTERNAL_SERVER_ERROR_500_PIS:
description: Internal Server Error
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
INTERNAL_SERVER_ERROR_500_AIS:
description: Internal Server Error
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
INTERNAL_SERVER_ERROR_500_PIIS:
description: Internal Server Error
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
SERVICE_UNAVAILABLE_503_PIS:
description: Service Unavailable
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
SERVICE_UNAVAILABLE_503_AIS:
description: Service Unavailable
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
SERVICE_UNAVAILABLE_503_PIIS:
description: Service Unavailable
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
CREATED_200_Token:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/tokenResponse-200'
examples:
Response in case of an exchange of an authorisation code:
$ref: '#/components/examples/tokenResponseExample1_authorisation_code'
Response in case of asking for a new access token from a refresh token:
$ref: '#/components/examples/tokenResponseExample2_refreshtoken'
BAD_REQUEST_400_TOKEN:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error_NG_TOKEN'
UNAUTHORIZED_401_TOKEN:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error_NG_TOKEN'
INTERNAL_SERVER_ERROR_500_TOKEN:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error500'
OK_200_LTB:
description: OK
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/trustedBeneficiaries'
examples:
all trusted beneficiaries:
$ref: '#/components/examples/trustedBeneficiaries_all_Example_json'
trusted beneficiaries of an account-id:
$ref: '#/components/examples/trustedBeneficiaries_accountId_Example_json'
BAD_REQUEST_400_LTB:
description: Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload.
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error400_NG_LTB'
UNAUTHORIZED_401_LTB:
description: The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication
information.
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error401_NG_LTB'
FORBIDDEN_403_LTB:
description: Returned if the resource that was referenced in the path exists but cannot be accessed by the ASPSP. This
code should only be used for non-sensitive id references as it will reveal that the resource exists even though it
cannot be accessed.
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error403_NG_LTB'
NOT_FOUND_404_LTB:
description: Returned if the endpoint that was referenced in the path does not exist or cannot be referenced by the
ASPSP. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the
HTTP response code 403.
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/Error404_NG_LTB'
INTERNAL_SERVER_ERROR_500_LTB:
description: Internal server error occurred.
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
SERVICE_UNAVAILABLE_503_LTB:
description: The TPP server is currently unavailable. Generally, this is a temporary state.
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
examples:
paymentInitiationSctBody_payments_json:
value:
instructedAmount:
currency: EUR
amount: '123.50'
debtorAccount:
iban: FR7612345987650123456789014
creditorName: Merchant123
creditorAccount:
iban: DE02100100109307118603
remittanceInformationUnstructured: Ref Number Merchant
paymentInitiationSctBody_periodic-payments_json:
value:
instructedAmount:
currency: EUR
amount: '123'
debtorAccount:
iban: FR7612345987650123456789014
creditorName: Merchant123
creditorAccount:
iban: DE02100100109307118603
remittanceInformationUnstructured: Ref Number Abonnement
startDate: '2032-03-01'
executionRule: following
frequency: Monthly
dayOfExecution: '01'
paymentInitiationSctBody_bulk-payments_json:
value:
debtorAccount:
iban: FR7612345987650123456789014
paymentInformationId: 1558617866-bpa94ea
payments:
- instructedAmount:
currency: EUR
amount: '1000'
creditorAccount:
iban: DE02100100109307118603
remittanceInformationUnstructured: Ref Number 1
creditorName: Merchant123
- instructedAmount:
currency: EUR
amount: '500'
creditorAccount:
iban: DE02100100109307118603
remittanceInformationUnstructured: Ref Number 2
creditorName: Merchant123
accountDetailsRegularAccount:
description: Account details for a regular Account.
value:
account:
resourceId: 3dc3d5b3-7023-4848-9853-f5400a64e80f
iban: FR7612345987650123456789014
currency: EUR
cashAccountType: CACC
ownerName: John Doe
name: Main Account
_links:
balances:
href: /berlingroup/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/balances
transactions:
href: /berlingroup/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions
accountListExample1:
summary: Account list Example
description: Response exemple in case of global consent
value:
accounts:
- resourceId: 3dc3d5b3-7023-4848-9853-f5400a64e80f
iban: FR7612345987650123456789014
currency: EUR
cashAccountType: CACC
ownerName: John Doe
name: Main Account
_links:
balances:
href: /berlingroup/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/balances
transactions:
href: /berlingroup/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions
- resourceId: 3dc3d5b3-7023-4848-9853-f5400a64e81e
iban: FR7612345678910000000000123
currency: EUR
cashAccountType: CACC
ownerName: John Doe
name: Second account
_links:
balances:
href: /berlingroup/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81e/balances
transactions:
href: /berlingroup/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81e/transactions
consentsExample_AccountList:
description: Consent on Account List for all psd2 access.
value:
access:
allPsd2: allAccounts
recurringIndicator: true
frequencyPerDay: 4
combinedServiceIndicator: false
validUntil: '2030-12-12'
consentsInformationResponseExample:
description: Consent request on account list or without indication of accounts.
value:
access:
allPsd2: allAccounts
recurringIndicator: 'true'
validUntil: '2048-11-01'
lastActionDate: '2025-10-14'
frequencyPerDay: 4
consentStatus: valid
_links:
account:
href: /berlingroup/v1/accounts
consentResponseExample2_OAuth2:
description: Response in case of the OAuth2 approach with an implicit generated authorisation resource.
value:
consentStatus: received
consentId: 1730733065-bpc8c31
_links:
self:
href: /berlingroup/v1/consents/1730733065-bpc8c31
status:
href: /berlingroup/v1/consents/1730733065-bpc8c31/status
scaStatus:
href: /berlingroup/v1/consents/1730733065-bpc8c31/authorisations/123auth567
scaOAuth:
href: https://www.testbank.com/oauth/.well-known/openid-configuration?authorizationId=123auth456
consentStatusResponseExample1:
description: Response for a consent status request.
value:
consentStatus: valid
paymentInitiationExample_json_OAuth2:
description: Response in case of an OAuth2 SCA approach approach with implicitly creating an authorisation sub-resource
value:
transactionStatus: RCVD
paymentId: 1730733065-bpc8c31
_links:
scaOAuth:
href: https://www.testbank.com/oauth/.well-known/openid-configuration?authorizationId=9eba8959-1cb3-40be-b80a-557d7fc91812
self:
href: /berlingroup/v1/payments/sepa-credit-transfers/1730733065-bpc8c31
status:
href: /berlingroup/v1/payments/sepa-credit-transfers/1730733065-bpc8c31/status
scaStatus:
href: /berlingroup/v1/payments/sepa-credit-transfers/1730733065-bpc8c31/authorisations/9eba8959-1cb3-40be-b80a-557d7fc91812
paymentInitiationStatusResponse_json_Simple:
value:
transactionStatus: ACCP
confirmationOfFundsExample:
description: Request body for a confirmation of funds.
value:
account:
iban: FR7612345987650123456789014
instructedAmount:
currency: EUR
amount: '100'
confirmationOfFundsResponseExample:
description: Response for a confirmation of funds request.
value:
fundsAvailable: 'true'
balancesExample1_RegularAccount:
description: Response for a read balance request in case of a regular account.
value:
account:
iban: FR7612345987650123456789014
balances:
- balanceAmount:
currency: EUR
amount: '500.00'
balanceType: expected
referenceDate: '2025-10-14'
transactionsExample1_RegularAccount_json:
description: Response in JSON format for an access on a regular account with bookingStatus = both.
value:
account:
iban: FR7612345987650123456789014
transactions:
booked:
- transactionId: '1234567'
creditorName: John Miles
creditorAccount:
iban: DE67100100101306118605
transactionAmount:
currency: EUR
amount: '256.67'
bookingDate: '2017-10-25'
valueDate: '2017-10-26'
remittanceInformationUnstructured: Example 1
- transactionId: '1234568'
debtorName: Paul Simpson
debtorAccount:
iban: FR7612345987650123456789014
transactionAmount:
currency: EUR
amount: '343.01'
bookingDate: '2017-10-25'
valueDate: '2017-10-26'
remittanceInformationUnstructured: Example 2
pending: []
_links:
account:
href: /berlingroup/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f
next:
href: /berlingroup/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions?dateFrom=2022-10-12&bookingStatus=BOTH&page=1
first:
href: /berlingroup/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions?dateFrom=2022-10-12&bookingStatus=BOTH&page=0
last:
href: /berlingroup/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions?dateFrom=2022-10-12&bookingStatus=BOTH&page=8
authorisationListExample:
value:
authorisationIds:
- 9eba8959-1cb3-40be-b80a-557d7fc91812
tokenResponseExample1_authorisation_code:
description: Response in case of an exchange of an authorisation code
value:
access_token: c79d4539a58841eba2faec0bbc983e0e5ac8011c9784449fba95229772454c237309d408d27b4c398969bb5d55480c64
token_type: Bearer
expires_in: 3600
refresh_token: 94f887d0fe174ef08dfee5bb7f1af7cd775bb56d22324b1a9a8a628a43d9d651d42597d269844dacbe3ff4ea4fec9834
scope: AIS:1751637086-baecc37
tokenResponseExample2_refreshtoken:
description: Response in case of asking for a new access token from a refresh token
value:
access_token: a09ca4fee17c494fbe66517c2d264d14b973448f2cb54445b1c51c97c18bdaf866172b6bb7fe482396e76da22fdcc65b
token_type: Bearer
expires_in: 3600
scope: AIS:1751637086-baecc37
paymentInitiationCancelResponse-202_json:
description: Response in case of 202 in payment cancellation.
value:
transactionStatus: ACCP
_links:
self:
href: /berlingroup/v1/payments/1730733065-bpc8c31
status:
href: /berlingroup/v1/payments/1730733065-bpc8c31/status
startAuthorisationWithPsuIdentification:
href: /berlingroup/v1/payments/1730733065-bpc8c31/cancellation-authorisations
consentsExample_PISP_access_no_iban:
description: Consent request for PISP only to access the list of debtor accounts.
value:
access:
availableAccounts: allAccounts
recurringIndicator: true
frequencyPerDay: 4
combinedServiceIndicator: true
validUntil: '2030-12-12'
consentResponseExample1_Oauth2_dedicated_authorisation:
description: Response in case of the OAuth2 approach with a dedicated start of the authorisation process.
value:
consentStatus: received
consentId: 1730733065-bpc8c31
_links:
startAuthorisationWithPsuIdentification:
href: /berlingroup/v1/consents/1730733065-bpc8c31/authorisations
self:
href: /berlingroup/v1/consents/1730733065-bpc8c31
status:
href: /berlingroup/v1/consents/1730733065-bpc8c31/status
transactionsExample2_information_json:
description: Response in JSON format for an access on a regular account with bookingStatus = information.
value:
account:
iban: FR7612345987650123456789014
transactions:
information:
- transactionAmount:
currency: EUR
amount: '100'
creditorName: John Doe
creditorAccount:
iban: FR4557992060807458574485046
currency: EUR
remittanceInformationUnstructured: 'Standing Order #1'
additionalInformationStructured:
standingOrderDetails:
startDate: '2025-07-08'
endDate: '2025-10-08'
frequency: Monthly
dayOfExecution: '15'
- transactionAmount:
currency: EUR
amount: '50'
creditorName: John Doe
creditorAccount:
iban: FR4557992060807458574485046
currency: EUR
remittanceInformationUnstructured: 'Standing Order #2'
additionalInformationStructured:
standingOrderDetails:
startDate: '2025-07-08'
endDate: '2026-07-08'
frequency: Monthly
dayOfExecution: 08
startScaProcessResponseExample:
value:
scaStatus: received
authorisationId: 9eba8959-1cb3-40be-b80a-557d7fc91812
_links:
scaOAuth:
href: https://www.testbank.com/oauth/.well-known/openid-configuration?authorizationId=9eba8959-1cb3-40be-b80a-557d7fc91812
scaStatus:
href: '.../authorisations/9eba8959-1cb3-40be-b80a-557d7fc91812'
error_429_example:
description: response in case of 429 error code.
value:
tppMessages:
- category: ERROR
code: ACCESS_EXCEEDED
text: The access on the account has been exceeding the consented multiplicity per day.
trustedBeneficiaries_all_Example_json:
description: Response in JSON format for an access of all trusted beneficiaries.
value:
trustedBeneficiaries:
- trustedBeneficiaryId: 12345678-fr33-50df-1234567890bc
debtorAccount: FR7612345987650123456789014
creditorAccount: DE2310010010123456789
creditorName: Merchant1Name
- trustedBeneficiaryId: 87654321-fr33-50df-1234567890bc
debtorAccount: FR7412345987650123456789012
creditorAccount: DE2310010010123456789
creditorName: Merchant1Name
trustedBeneficiaries_accountId_Example_json:
description: Response in JSON format for an access of all trusted beneficiaries.
value:
trustedBeneficiaries:
- trustedBeneficiaryId: 12345678-fr33-50df-1234567890bc
debtorAccount: FR7612345987650123456789014
creditorAccount: DE2310010010123456789
creditorName: Merchant1Name
scaStatusResponseExample:
description: Response for a sca status request.
value:
scaStatus: finalised
paymentInitiationWithStatusResponseExample:
value:
transactionStatus: ACCP
debtorAccount:
iban: FR7612345987650123456789014
remittanceInformationUnstructured: Ref Number Merchant
instructedAmount:
currency: EUR
amount: '100'
creditorAccount:
iban: DE67100100101306118605
creditorName: John Miles
periodicPaymentInitiationWithStatusResponseExample:
value:
transactionStatus: ACCP
debtorAccount:
iban: FR7612345987650123456789014
remittanceInformationUnstructured: Ref Number Merchant
instructedAmount:
currency: EUR
amount: '100'
creditorAccount:
iban: DE67100100101306118605
creditorName: John Miles
frequency: Monthly
startDate: '2099-12-12'
endDate: '2199-12-12'
dayOfExecution: '01'
bulkPaymentInitiationWithStatusResponseExample:
value:
transactionStatus: PART
paymentInformationId: 1558617866-bpa94ea
debtorAccount:
iban: FR7612345987650123456789014
bulkPayments:
- instructedAmount:
currency: EUR
amount: '1000'
creditorAccount:
iban: DE02100100109307118603
creditorName: Merchant123
remittanceInformationUnstructured: Ref Number 1
- instructedAmount:
currency: EUR
amount: '500'
creditorAccount:
iban: DE02100100109307118603
creditorName: Merchant123
remittanceInformationUnstructured: Ref Number 2
paymentInitiationExample_json__OAuth2ExplicitAuthorisation:
description: Response in case of a redirect OAuth2 or decoupled approach with an explicit authorisation start
value:
transactionStatus: RCVD
paymentId: 1730733065-bpc8c31
_links:
self:
href: /berlingroup/v1/payments/sepa-credit-transfers/1730733065-bpc8c31
status:
href: /berlingroup/v1/payments/sepa-credit-transfers/1730733065-bpc8c31/status
startAuthorisationWithPsuIdentification:
href: /berlingroup/v1/payments/sepa-credit-transfers/1730733065-bpc8c31/authorisations
requestBodies:
paymentInitiation:
description: "JSON request body for a payment inition request message.\n\nThere are the following payment-products supported:\n\
\ * \"sepa-credit-transfers\" with JSON-Body\n * \"instant-sepa-credit-transfers\" with JSON-Body\n * \"cross-border-credit-transfers\"\
\ with JSON-Body\n\nThere are the following payment-services supported:\n * \"payments\"\n * \"periodic-payments\"\
\n * \"bulk-payments\"\n\nAll optional, conditional and predefined but not yet used fields are defined."
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/paymentInitiation_json'
- $ref: '#/components/schemas/periodicPaymentInitiation_json'
- $ref: '#/components/schemas/bulkPaymentInitiation_json'
examples:
'Example 1: ''payments'' - ''sepa-credit-transfers''':
$ref: '#/components/examples/paymentInitiationSctBody_payments_json'
'Example 2: ''periodic-payments'' - ''sepa-credit-transfers''':
$ref: '#/components/examples/paymentInitiationSctBody_periodic-payments_json'
'Example 3: ''bulk-payments'' - ''sepa-credit-transfers''':
$ref: '#/components/examples/paymentInitiationSctBody_bulk-payments_json'
confirmationOfFunds:
description: Request body for a confirmation of funds request.
content:
application/json:
schema:
$ref: '#/components/schemas/confirmationOfFunds'
examples:
Example:
$ref: '#/components/examples/confirmationOfFundsExample'
required: true
token:
description: Request body for a token or refresh token retrieval request.
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/token'
requestBodiesConsents:
description: Request body for a consents request.
content:
application/json:
schema:
$ref: '#/components/schemas/consents'
examples:
Consent on Account List for all psd2 access:
$ref: '#/components/examples/consentsExample_AccountList'
Consent request for PISP only to access the list of debtor accounts:
$ref: '#/components/examples/consentsExample_PISP_access_no_iban'
headers:
X-Request-ID:
description: ID of the request, unique to the call, as determined by the initiating party.
required: true
example: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
schema:
type: string
format: uuid
ASPSP-SCA-Approach:
description: "This data element must be contained, if the SCA Approach is already fixed.\nPossible values are\n * EMBEDDED\n\
\ * DECOUPLED\n * REDIRECT\nThe OAuth SCA approach will be subsumed by REDIRECT."
schema:
type: string
enum:
- EMBEDDED
- DECOUPLED
- REDIRECT
example: EMBEDDED
required: false
tags:
- name: Payment Initiation Service (PIS)
description: "The component for Payment Initiation Service (PIS) offers the following services:\n * Initiation and update\
\ of a payment request\n * Status information of a payment"
- name: Account Information Service (AIS)
description: "The Account Information Service (AIS) offers the following services:\n * Transaction reports for a given\
\ account or card account including balances if applicable\n * Balances of a given account or card account\n * A list\
\ of available accounts or card account\n * Account details of a given account or card account or of the list of all\
\ accessible accounts or card account relative to a granted consent"
- name: Oauth2 Authorisation
description: Allows to retrieve an access token from a redirect Oauth2 approach
x-bank-name: Bank J.Van Breda & Co
x-bank-code: BVB
x-bank-country: BE
x-api-version: 3.0.1
x-customized-by: BVB Configuration
x-supported-payment-services:
- payments
- periodic-payments
- bulk-payments
x-supported-payment-products:
- cross-border-credit-transfers
- instant-sepa-credit-transfers
- pain.001-cross-border-credit-transfers
- pain.001-instant-sepa-credit-transfers
- pain.001-sepa-credit-transfers
- sepa-credit-transfers