{ "openapi": "3.0.1", "info": { "title": "NextGenPSD2XS2AFrameworkforCroatia", "version": "1.3.9 May 27nd 2022 - HR Country Specific", "description": "# Summary\nThe **NextGenPSD2** *Framework Version 1.3.9* 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 * Redirect SCA Approach\n * OAuth SCA Approach\n * Decoupled SCA Approach\n * Embedded SCA Approach without SCA method\n * Embedded SCA Approach with only one SCA method available\n * Embedded SCA Approach with Selection of a SCA method\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## Some General Remarks Related to this version of the OpenAPI Specification:\n* **This API definition is based on the Implementation Guidelines of the Berlin Group PSD2 API.** \n It is not a replacement in any sense.\n The main specification is (at the moment) always the Implementation Guidelines of the Berlin Group PSD2 API.\n* **This API definition contains the REST-API for requests from the PISP to the ASPSP.**\n* **This API definition contains the messages for all different approaches defined in the Implementation Guidelines.**\n* According to the OpenAPI-Specification [https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md]\n \n \"If in is \"header\" and the name field is \"Accept\", \"Content-Type\" or \"Authorization\", the parameter definition SHALL be ignored.\"\n \n The element \"Accept\" will not be defined in this file at any place.\n \n The elements \"Content-Type\" and \"Authorization\" are implicitly defined by the OpenApi tags \"content\" and \"security\".\n \n* There are several predefined types which might occur in payment initiation messages, \n but are not used in the standard JSON messages in the Implementation Guidelines.\n Therefore they are not used in the corresponding messages in this file either.\n We added them for the convenience of the user.\n If there is a payment product, which needs these fields, one can easily use the predefined types.\n But the ASPSP need not to accept them in general.\n \n* **We omit the definition of all standard HTTP header elements (mandatory/optional/conditional) \n except they are mentioned in the Implementation Guidelines.**\n Therefore the implementer might add these in his own realisation of a PSD2 comlient API in addition to the elements defined in this file.\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\n", "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\n(General Introduction Paper, Operational Rules, Implementation Guidelines)\n", "url": "https://www.berlin-group.org/nextgenpsd2-downloads" }, "servers": [ { "url": "https://api.testbank.com/psd2", "description": "PSD2 server" }, { "url": "https://test-api.testbank.com/psd2", "description": "Optional PSD2 test server" } ], "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\nThis method to initiate a payment initiation at the ASPSP can be sent with either a JSON body or an pain.001 body depending on the payment product in the path.\n\nThere are the following **payment products**:\n\n - Payment products with payment information in *JSON* format:\n - ***sepa-credit-transfers*** (Mandatory Support of ASPSP)\n - ***cross-border-credit-transfers*** (Mandatory Support of ASPSP)\n - ***domestic-credit-transfers-hr*** (Mandatory Support of ASPSP)\n - ***hr-rtgs-payments*** (Optional Support of ASPSP) \n \n - Payment products with payment information in *pain.001* XML format:\n - ***pain.001-credit-transfers***\n\nIt is important to note that the support for *pain.001* XML format is only supported for the bulk payments using the Croatian specific pain.001-credit-transfers!\n\nFurthermore the request body depends on the **payment-service**\n * ***payments***: A single payment initiation request.\n \n In case of single payments, only the *JSON* format is mandatory. The *pain.001* message implementations are ASPSP specific, see individual standard descriptions for your ASPSP.\n * ***bulk-payments***: A collection of several payment iniatiation requests.\n \n In case of a *pain.001* message there are more than one payments contained in the *pain.001* message. \n \n \n## Single and mulitilevel SCA Processes\n\nThe Payment Initiation requests are independent from the need of one or multilevel \nSCA processing, i.e. independent from the number of authorisations needed for the execution of payments. \n\nBut the response messages are specific to either one SCA processing or multilevel SCA processing. \n\nFor payment initiation with multilevel SCA, this specification requires an explicit start of the authorisation, \ni.e. links directly associated with SCA processing like 'scaRedirect' or 'scaOAuth' cannot be contained in the \nresponse message of a Payment Initation Request for a payment, where multiple authorisations are needed. \nAlso if any data is needed for the next action, like selecting an SCA method is not supported in the response, \nsince all starts of the multiple authorisations are fully equal. \nIn these cases, first an authorisation sub-resource has to be generated following the 'startAuthorisation' link.\n", "operationId": "initiatePayment", "tags": [ "Payment Initiation Service (PIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/paymentService" }, { "$ref": "#/components/parameters/paymentProduct" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$ref": "#/components/parameters/consentId_HEADER_optional" }, { "$ref": "#/components/parameters/PSU-IP-Address_mandatory" }, { "$ref": "#/components/parameters/TPP-Redirect-Preferred" }, { "$ref": "#/components/parameters/TPP-Decoupled-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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_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)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/paymentService" }, { "$ref": "#/components/parameters/paymentProduct" }, { "$ref": "#/components/parameters/paymentId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "responses": { "200": { "$ref": "#/components/responses/OK_200_PaymentInitiationInformation" }, "202": { "$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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_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.\n", "operationId": "cancelPayment", "tags": [ "Payment Initiation Service (PIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/paymentService" }, { "$ref": "#/components/parameters/paymentProduct" }, { "$ref": "#/components/parameters/paymentId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/TPP-Redirect-Preferred" }, { "$ref": "#/components/parameters/TPP-Decoupled-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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS_CANC" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_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)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/paymentService" }, { "$ref": "#/components/parameters/paymentProduct" }, { "$ref": "#/components/parameters/paymentId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "responses": { "200": { "$ref": "#/components/responses/OK_200_PaymentInitiationStatus" }, "202": { "$ref": "#/components/responses/OK_202_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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_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. \nThe message might in addition transmit authentication and authorisation related data. \n\nThis method is iterated n times for a n times SCA authorisation in a \ncorporate context, each creating an own authorisation sub-endpoint for \nthe corresponding PSU authorising the transaction.\n\nThe ASPSP might make the usage of this access method unnecessary in case \nof only one SCA process needed, since the related authorisation resource \nmight be automatically created by the ASPSP after the submission of the \npayment data with the first POST payments/{payment-product} call.\n\nThe start authorisation process is a process which is needed for creating a new authorisation \nor cancellation sub-resource. \n\nThis applies in the following scenarios:\n\n * The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding Payment \n initiation response that an explicit start of the authorisation process is needed by the TPP. \n The 'startAuthorisation' hyperlink can transport more information about data which needs to be \n uploaded by using the extended forms:\n * 'startAuthorisationWithPsuIdentfication'\n * 'startAuthorisationWithPsuAuthentication'\n * 'startAuthorisationWithEncryptedPsuAuthentication'\n * 'startAuthorisationWithAuthentciationMethodSelection'\n * The related payment initiation cannot yet be executed since a multilevel SCA is mandated.\n * The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding \n Payment cancellation response that an explicit start of the authorisation process is needed by the TPP. \n The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded \n by using the extended forms as indicated above.\n * The related payment cancellation request cannot be applied yet since a multilevel SCA is mandate for \n executing the cancellation.\n * The signing basket needs to be authorised yet.\n", "operationId": "startPaymentAuthorisation", "tags": [ "Payment Initiation Service (PIS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/paymentService" }, { "$ref": "#/components/parameters/paymentProduct" }, { "$ref": "#/components/parameters/paymentId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$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/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "requestBody": { "content": { "application/json": { "schema": { "oneOf": [ {}, { "$ref": "#/components/schemas/updatePsuAuthentication" }, { "$ref": "#/components/schemas/selectPsuAuthenticationMethod" }, { "$ref": "#/components/schemas/transactionAuthorisation" } ] } } } }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_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.\n\nThis function returns an array of hyperlinks to all generated authorisation sub-resources.\n", "operationId": "getPaymentInitiationAuthorisation", "tags": [ "Payment Initiation Service (PIS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/paymentService" }, { "$ref": "#/components/parameters/paymentProduct" }, { "$ref": "#/components/parameters/paymentId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_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.\n", "operationId": "getPaymentInitiationScaStatus", "tags": [ "Payment Initiation Service (PIS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "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/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_PIS" }, "500": { "$ref": "#/components/responses/INTERNAL_SERVER_ERROR_500_PIS" }, "503": { "$ref": "#/components/responses/SERVICE_UNAVAILABLE_503_PIS" } } }, "put": { "summary": "Update PSU data for payment initiation", "description": "This methods updates PSU data on the authorisation resource if needed. \nIt may authorise a payment within the Embedded SCA Approach where needed.\n\nIndependently from the SCA Approach it supports e.g. the selection of \nthe authentication method and a non-SCA PSU authentication.\n\nThere are several possible update PSU data requests in the context of payment initiation services needed, \nwhich depends on the SCA approach:\n\n* Redirect SCA Approach:\n A specific update PSU data request is applicable for \n * the selection of authentication methods, before choosing the actual SCA approach.\n* Decoupled SCA Approach:\n A specific update PSU data request is only applicable for\n * adding the PSU identification, if not provided yet in the payment initiation request or the account information consent request, or if no OAuth2 access token is used, or\n * the selection of authentication methods.\n* Embedded SCA Approach: \n The Update PSU Data request might be used \n * to add credentials as a first factor authentication data of the PSU and\n * to select the authentication method and\n * transaction authorisation.\n\nThe SCA Approach might depend on the chosen SCA method. \nFor that reason, the following possible Update PSU data request can apply to all SCA approaches:\n\n* Select an SCA method in case of several SCA methods are available for the customer.\n\nThere are the following request types on this access path:\n * Update PSU identification\n * Update PSU authentication\n * Select PSU autorization method \n WARNING: This method needs a reduced header, \n therefore many optional elements are not present. \n Maybe in a later version the access path will change.\n * Transaction authorisation\n WARNING: This method needs a reduced header, \n therefore many optional elements are not present. \n Maybe in a later version the access path will change.\n", "operationId": "updatePaymentPsuData", "tags": [ "Payment Initiation Service (PIS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "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/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "requestBody": { "content": { "application/json": { "schema": { "oneOf": [ {}, { "$ref": "#/components/schemas/updatePsuAuthentication" }, { "$ref": "#/components/schemas/selectPsuAuthenticationMethod" }, { "$ref": "#/components/schemas/transactionAuthorisation" }, { "$ref": "#/components/schemas/authorisationConfirmation" } ] }, "examples": { "Update PSU identification (Decoupled Approach)": { "value": {} }, "Update PSU authentication (Embedded Approach)": { "$ref": "#/components/examples/updatePsuAuthenticationExample_Embedded" }, "Select PSU authentication method (Embedded Approach)": { "$ref": "#/components/examples/selectPsuAuthenticationMethodExample_Embedded" }, "Transaction authorisation (Embedded Approach)": { "$ref": "#/components/examples/transactionAuthorisationExample_Embedded" }, "Authorisation confirmation (Redirect Approach)": { "$ref": "#/components/examples/authorisationConfirmationExample_Redirect" } } } } }, "responses": { "200": { "$ref": "#/components/responses/OK_200_UpdatePsuData" }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_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. \nThe message might in addition transmit authentication and authorisation related data.\n\nThis method is iterated n times for a n times SCA authorisation in a \ncorporate context, each creating an own authorisation sub-endpoint for \nthe corresponding PSU authorising the cancellation-authorisation.\n\nThe ASPSP might make the usage of this access method unnecessary in case \nof only one SCA process needed, since the related authorisation resource \nmight be automatically created by the ASPSP after the submission of the \npayment data with the first POST payments/{payment-product} call.\n\nThe start authorisation process is a process which is needed for creating a new authorisation \nor cancellation sub-resource. \n\nThis applies in the following scenarios:\n\n * The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding payment \n initiation response that an explicit start of the authorisation process is needed by the TPP. \n The 'startAuthorisation' hyperlink can transport more information about data which needs to be \n uploaded by using the extended forms:\n * 'startAuthorisationWithPsuIdentfication'\n * 'startAuthorisationWithPsuAuthentication'\n * 'startAuthorisationWithAuthentciationMethodSelection' \n * The related payment initiation cannot yet be executed since a multilevel SCA is mandated.\n * The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding \n payment cancellation response that an explicit start of the authorisation process is needed by the TPP. \n The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded \n by using the extended forms as indicated above.\n * The related payment cancellation request cannot be applied yet since a multilevel SCA is mandate for \n executing the cancellation.\n * The signing basket needs to be authorised yet.\n", "operationId": "startPaymentInitiationCancellationAuthorisation", "tags": [ "Payment Initiation Service (PIS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/paymentService" }, { "$ref": "#/components/parameters/paymentProduct" }, { "$ref": "#/components/parameters/paymentId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "requestBody": { "content": { "application/json": { "schema": { "oneOf": [ {}, { "$ref": "#/components/schemas/updatePsuAuthentication" }, { "$ref": "#/components/schemas/selectPsuAuthenticationMethod" }, { "$ref": "#/components/schemas/transactionAuthorisation" } ] } } } }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_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.\n", "operationId": "getPaymentInitiationCancellationAuthorisationInformation", "tags": [ "Payment Initiation Service (PIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/paymentService" }, { "$ref": "#/components/parameters/paymentProduct" }, { "$ref": "#/components/parameters/paymentId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_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.\n", "operationId": "getPaymentCancellationScaStatus", "tags": [ "Payment Initiation Service (PIS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "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/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_PIS" }, "500": { "$ref": "#/components/responses/INTERNAL_SERVER_ERROR_500_PIS" }, "503": { "$ref": "#/components/responses/SERVICE_UNAVAILABLE_503_PIS" } } }, "put": { "summary": "Update PSU data for payment initiation cancellation", "description": "This method updates PSU data on the cancellation authorisation resource if needed. \nIt may authorise a cancellation of the payment within the Embedded SCA Approach where needed.\n\nIndependently from the SCA Approach it supports e.g. the selection of \nthe authentication method and a non-SCA PSU authentication.\n\nThis methods updates PSU data on the cancellation authorisation resource if needed. \n\nThere are several possible update PSU data requests in the context of a cancellation authorisation within the payment initiation services needed, \nwhich depends on the SCA approach:\n\n* Redirect SCA Approach:\n A specific Update PSU data request is applicable for \n * the selection of authentication methods, before choosing the actual SCA approach.\n* Decoupled SCA Approach:\n A specific Update PSU data request is only applicable for\n * adding the PSU Identification, if not provided yet in the payment initiation request or the Account Information Consent Request, or if no OAuth2 access token is used, or\n * the selection of authentication methods.\n* Embedded SCA Approach: \n The Update PSU data request might be used \n * to add credentials as a first factor authentication data of the PSU and\n * to select the authentication method and\n * transaction authorisation.\n\nThe SCA approach might depend on the chosen SCA method. \nFor that reason, the following possible update PSU data request can apply to all SCA approaches:\n\n* Select an SCA method in case of several SCA methods are available for the customer.\n\nThere are the following request types on this access path:\n * Update PSU identification\n * Update PSU authentication\n * Select PSU autorization method \n WARNING: This method needs a reduced header, \n therefore many optional elements are not present. \n Maybe in a later version the access path will change.\n * Transaction Authorisation\n WARNING: This method needs a reduced header, \n therefore many optional elements are not present. \n Maybe in a later version the access path will change.\n", "operationId": "updatePaymentCancellationPsuData", "tags": [ "Payment Initiation Service (PIS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "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/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "requestBody": { "content": { "application/json": { "schema": { "oneOf": [ {}, { "$ref": "#/components/schemas/updatePsuAuthentication" }, { "$ref": "#/components/schemas/selectPsuAuthenticationMethod" }, { "$ref": "#/components/schemas/transactionAuthorisation" }, { "$ref": "#/components/schemas/authorisationConfirmation" } ] }, "examples": { "Update PSU Identification (Embedded Approach)": { "value": {} }, "Update PSU authentication (Embedded Approach)": { "$ref": "#/components/examples/updatePsuAuthenticationExample_Embedded" }, "Select PSU Authentication Method (Embedded Approach)": { "$ref": "#/components/examples/selectPsuAuthenticationMethodExample_Embedded" }, "Transaction Authorisation (Embedded Approach)": { "$ref": "#/components/examples/transactionAuthorisationExample_Embedded" }, "Authorisation confirmation (Redirect Approach)": { "$ref": "#/components/examples/authorisationConfirmationExample_Redirect" } } } } }, "responses": { "200": { "$ref": "#/components/responses/OK_200_UpdatePsuData" }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_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 \nbooking balance information, depending on the consent granted.\n\nIt is assumed that a consent of the PSU to this access is already given and stored on the ASPSP system. \nThe addressed list of accounts depends then on the PSU ID and the stored consent addressed by consentId, \nrespectively the OAuth2 access token. \n\nReturns all identifiers of the accounts, to which an account access has been granted to through \nthe /consents endpoint by the PSU. \nIn addition, relevant information about the accounts and hyperlinks to corresponding account \ninformation resources are provided if a related consent has been already granted.\n\nRemark: Note that the /consents endpoint optionally offers to grant an access on all available \npayment accounts of a PSU. \nIn this case, this endpoint will deliver the information about all available payment accounts \nof the PSU at this ASPSP.\n", "operationId": "getAccountList", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/withBalanceQuery" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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. \nIt is assumed that a consent of the PSU to \nthis access is already given and stored on the ASPSP system. \nThe addressed details of this account depends then on the stored consent addressed by consentId, \nrespectively the OAuth2 access token.\n\n**NOTE:** The account-id can represent a multicurrency account. \nIn this case the currency code is set to \"XXX\".\n\nGive detailed information about the addressed account.\n\nGive detailed information about the addressed account together with balance information\n", "operationId": "readAccountDetails", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/accountId" }, { "$ref": "#/components/parameters/withBalanceQuery" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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\". \n\n**Remark:** This account-id can be a tokenised identification due to data protection reason since the path \ninformation might be logged on intermediary servers within the ASPSP sphere. \nThis account-id then can be retrieved by the \"Get account list\" call.\n\nThe account-id is constant at least throughout the lifecycle of a given consent.\n", "operationId": "getBalances", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/accountId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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 ddressed by \"account-id\", depending on the steering parameter \n\"bookingStatus\" together with balances.\n\nFor a given account, additional parameters are e.g. the attributes \"dateFrom\" and \"dateTo\". \nThe ASPSP might add balance information, if transaction lists without balances are not supported.\n", "operationId": "getTransactionList", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/accountId" }, { "$ref": "#/components/parameters/dateFrom" }, { "$ref": "#/components/parameters/dateTo" }, { "$ref": "#/components/parameters/entryReferenceFrom" }, { "$ref": "#/components/parameters/bookingStatusGeneric" }, { "$ref": "#/components/parameters/deltaList" }, { "$ref": "#/components/parameters/withBalanceQuery" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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/{transactionId}": { "get": { "summary": "Read transaction details", "description": "Reads transaction details from a given transaction addressed by \"transactionId\" on a given account addressed by \"account-id\". \nThis call is only available on transactions as reported in a JSON format.\n\n**Remark:** Please note that the PATH might be already given in detail by the corresponding entry of the response of the \n\"Read Transaction List\" call within the _links subfield.\n", "operationId": "getTransactionDetails", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/accountId" }, { "$ref": "#/components/parameters/transactionId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "responses": { "200": { "$ref": "#/components/responses/OK_200_TransactionDetails" }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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/card-accounts": { "get": { "summary": "Read a list of card accounts", "description": "Reads a list of card accounts with additional information, e.g. balance information. \nIt is assumed that a consent of the PSU to this access is already given and stored on the ASPSP system. \nThe addressed list of card accounts depends then on the PSU ID and the stored consent addressed by consentId, \nrespectively the OAuth2 access token. \n", "operationId": "getCardAccount", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "responses": { "200": { "$ref": "#/components/responses/OK_200_CardAccountList" }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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/card-accounts/{account-id}": { "get": { "summary": "Read details about a card account", "description": "Reads details about a card account. \nIt is assumed that a consent of the PSU to this access is already given \nand stored on the ASPSP system. The addressed details of this account depends \nthen on the stored consent addressed by consentId, respectively the OAuth2 \naccess token.\n", "operationId": "ReadCardAccount", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/accountId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "responses": { "200": { "$ref": "#/components/responses/OK_200_CardAccountDetails" }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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/card-accounts/{account-id}/balances": { "get": { "summary": "Read card account balances", "description": "Reads balance data from a given card account addressed by \n\"account-id\". \n\nRemark: This account-id can be a tokenised identification due \nto data protection reason since the path information might be \nlogged on intermediary servers within the ASPSP sphere. \nThis account-id then can be retrieved by the \n\"Get card account list\" call.\n", "operationId": "getCardAccountBalances", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/accountId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "responses": { "200": { "$ref": "#/components/responses/OK_200_CardAccountBalances" }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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/card-accounts/{account-id}/transactions": { "get": { "summary": "Read transaction list of an account", "description": "Reads account data from a given card account addressed by \"account-id\".\n", "operationId": "getCardAccountTransactionList", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/accountId" }, { "$ref": "#/components/parameters/dateFrom" }, { "$ref": "#/components/parameters/dateTo" }, { "$ref": "#/components/parameters/entryReferenceFrom" }, { "$ref": "#/components/parameters/bookingStatusCard" }, { "$ref": "#/components/parameters/deltaList" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "responses": { "200": { "$ref": "#/components/responses/OK_200_CardAccountsTransactions" }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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 to dedicated accounts of \na given PSU-ID. These accounts are addressed explicitly in the method as \nparameters as a core function.\n\n**Side Effects**\nWhen this consent request is a request where the \"recurringIndicator\" equals \"true\",\nand if it exists already a former consent for recurring access on account information \nfor the addressed PSU, then the former consent automatically expires as soon as the new \nconsent request is authorised by the PSU.\n\nOptional Extension:\nAs an option, an ASPSP might optionally accept a specific access right on the access on all PSD2 related services for all available accounts.\n\nAs another option an ASPSP might optionally also accept a command, where only access rights are inserted without mentioning the addressed account. \nThe relation to accounts is then handled afterwards between PSU and ASPSP. \nThis option is not supported for the Embedded SCA Approach. \nAs a last option, an ASPSP might in addition accept a command with access rights\n * to see the list of available payment accounts or\n * to see the list of available payment accounts with balances.\n", "operationId": "createConsent", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$ref": "#/components/parameters/TPP-Redirect-Preferred" }, { "$ref": "#/components/parameters/TPP-Decoupled-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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "requestBody": { "$ref": "#/components/requestBodies/consents" }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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. \nThis is returning the data for the TPP especially in cases, \nwhere the consent was directly managed between ASPSP and PSU e.g. in a redirect SCA Approach.\n", "operationId": "getConsentInformation", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/consentId_PATH" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/consentId_PATH" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/consentId_PATH" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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. \nThe message might in addition transmit authentication and authorisation related data.\n\nhis method is iterated n times for a n times SCA authorisation in a \ncorporate context, each creating an own authorisation sub-endpoint for \nthe corresponding PSU authorising the consent.\n\nThe ASPSP might make the usage of this access method unnecessary, \nsince the related authorisation resource will be automatically created by \nthe ASPSP after the submission of the consent data with the first POST consents call.\n\nThe start authorisation process is a process which is needed for creating a new authorisation \nor cancellation sub-resource. \n\nThis applies in the following scenarios:\n\n * The ASPSP has indicated with an 'startAuthorisation' hyperlink in the preceding Payment \n initiation response that an explicit start of the authorisation process is needed by the TPP. \n The 'startAuthorisation' hyperlink can transport more information about data which needs to be \n uploaded by using the extended forms:\n * 'startAuthorisationWithPsuIdentfication', \n * 'startAuthorisationWithPsuAuthentication' \n * 'startAuthorisationWithEncryptedPsuAuthentication'\n * 'startAuthorisationWithAuthentciationMethodSelection' \n * The related payment initiation cannot yet be executed since a multilevel SCA is mandated.\n * The ASPSP has indicated with an 'startAuthorisation' hyperlink in the preceding \n payment cancellation response that an explicit start of the authorisation process is needed by the TPP. \n The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded \n by using the extended forms as indicated above.\n * The related payment cancellation request cannot be applied yet since a multilevel SCA is mandate for \n executing the cancellation.\n * The signing basket needs to be authorised yet.\n", "operationId": "startConsentAuthorisation", "tags": [ "Account Information Service (AIS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/consentId_PATH" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "requestBody": { "content": { "application/json": { "schema": { "oneOf": [ {}, { "$ref": "#/components/schemas/updatePsuAuthentication" }, { "$ref": "#/components/schemas/selectPsuAuthenticationMethod" }, { "$ref": "#/components/schemas/transactionAuthorisation" } ] } } } }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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.\n\nThis function returns an array of hyperlinks to all generated authorisation sub-resources.\n", "operationId": "getConsentAuthorisation", "tags": [ "Account Information Service (AIS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/consentId_PATH" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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.\n", "operationId": "getConsentScaStatus", "tags": [ "Account Information Service (AIS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/consentId_PATH" }, { "$ref": "#/components/parameters/authorisationId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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/PSU-Geo-Location" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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" } } }, "put": { "summary": "Update PSU Data for consents", "description": "This method update PSU data on the consents resource if needed. \nIt may authorise a consent within the Embedded SCA Approach where needed.\n\nIndependently from the SCA Approach it supports e.g. the selection of \nthe authentication method and a non-SCA PSU authentication.\n\nThis methods updates PSU data on the cancellation authorisation resource if needed. \n\nThere are several possible update PSU data requests in the context of a consent request if needed, \nwhich depends on the SCA approach:\n\n* Redirect SCA Approach:\n A specific Update PSU data request is applicable for \n * the selection of authentication methods, before choosing the actual SCA approach.\n* Decoupled SCA Approach:\n A specific update PSU data request is only applicable for\n * adding the PSU Identification, if not provided yet in the payment initiation request or the Account Information Consent Request, or if no OAuth2 access token is used, or\n * the selection of authentication methods.\n* Embedded SCA Approach: \n The Update PSU data request might be used \n * to add credentials as a first factor authentication data of the PSU and\n * to select the authentication method and\n * transaction authorisation.\n\nThe SCA Approach might depend on the chosen SCA method. \nFor that reason, the following possible update PSU data request can apply to all SCA approaches:\n\n* Select an SCA method in case of several SCA methods are available for the customer.\n\nThere are the following request types on this access path:\n * Update PSU identification\n * Update PSU authentication\n * Select PSU autorization method \n WARNING: This method needs a reduced header, \n therefore many optional elements are not present. \n Maybe in a later version the access path will change.\n * Transaction Authorisation\n WARNING: This method needs a reduced header, \n therefore many optional elements are not present. \n Maybe in a later version the access path will change.\n", "operationId": "updateConsentsPsuData", "tags": [ "Account Information Service (AIS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/consentId_PATH" }, { "$ref": "#/components/parameters/authorisationId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$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/PSU-Geo-Location" } ], "requestBody": { "content": { "application/json": { "schema": { "oneOf": [ {}, { "$ref": "#/components/schemas/updatePsuAuthentication" }, { "$ref": "#/components/schemas/selectPsuAuthenticationMethod" }, { "$ref": "#/components/schemas/transactionAuthorisation" }, { "$ref": "#/components/schemas/authorisationConfirmation" } ] }, "examples": { "Update PSU identification/additional SCA process (Embedded Approach)": { "value": {} }, "Update PSU authentication (Embedded Approach)": { "$ref": "#/components/examples/updatePsuAuthenticationExample_Embedded" }, "Select PSU authentication method (Embedded Approach)": { "$ref": "#/components/examples/selectPsuAuthenticationMethodExample_Embedded" }, "Transaction authorisation (Embedded Approach)": { "$ref": "#/components/examples/transactionAuthorisationExample_Embedded" }, "Authorisation confirmation (Redirect Approach)": { "$ref": "#/components/examples/authorisationConfirmationExample_Redirect" } } } } }, "responses": { "200": { "$ref": "#/components/responses/OK_200_UpdatePsuData" }, "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_AIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_AIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_AIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_AIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_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.\nIf 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)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Authorization" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" } ], "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" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_PIIS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_PIIS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_PIIS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_PIIS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_PIIS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_PIIS" }, "500": { "$ref": "#/components/responses/INTERNAL_SERVER_ERROR_500_PIIS" }, "503": { "$ref": "#/components/responses/SERVICE_UNAVAILABLE_503_PIIS" } } } }, "/v1/signing-baskets": { "post": { "summary": "Create a signing basket resource", "description": "Create a signing basket resource for authorising several transactions with one SCA method. \nThe resource identifications of these transactions are contained in the payload of this access method\n", "operationId": "createSigningBasket", "tags": [ "Signing Baskets (SBS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$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-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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "requestBody": { "$ref": "#/components/requestBodies/signingBasket" }, "responses": { "201": { "$ref": "#/components/responses/CREATED_201_SigningBasket" }, "400": { "$ref": "#/components/responses/BAD_REQUEST_400_SBS" }, "401": { "$ref": "#/components/responses/UNAUTHORIZED_401_SBS" }, "403": { "$ref": "#/components/responses/FORBIDDEN_403_SBS" }, "404": { "$ref": "#/components/responses/NOT_FOUND_404_SBS" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_SBS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_SBS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_SBS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_SBS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_SBS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_SBS" }, "500": { "$ref": "#/components/responses/INTERNAL_SERVER_ERROR_500_SBS" }, "503": { "$ref": "#/components/responses/SERVICE_UNAVAILABLE_503_SBS" } } } }, "/v1/signing-baskets/{basketId}": { "get": { "summary": "Returns the content of an signing basket object", "description": "Returns the content of a signing basket object.", "operationId": "getSigningBasket", "tags": [ "Signing Baskets (SBS)" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/basketId_PATH" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "responses": { "200": { "$ref": "#/components/responses/OK_200_GetSigningBasket" }, "400": { "$ref": "#/components/responses/BAD_REQUEST_400_SBS" }, "401": { "$ref": "#/components/responses/UNAUTHORIZED_401_SBS" }, "403": { "$ref": "#/components/responses/FORBIDDEN_403_SBS" }, "404": { "$ref": "#/components/responses/NOT_FOUND_404_SBS" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_SBS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_SBS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_SBS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_SBS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_SBS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_SBS" }, "500": { "$ref": "#/components/responses/INTERNAL_SERVER_ERROR_500_SBS" }, "503": { "$ref": "#/components/responses/SERVICE_UNAVAILABLE_503_SBS" } } }, "delete": { "summary": "Delete the signing basket", "description": "Delete the signing basket structure as long as no (partial) authorisation has yet been applied. \nThe undlerying transactions are not affected by this deletion.\n\nRemark: The signing basket as such is not deletable after a first (partial) authorisation has been applied. \nNevertheless, single transactions might be cancelled on an individual basis on the XS2A interface.\n", "operationId": "deleteSigningBasket", "tags": [ "Signing Baskets (SBS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/basketId_PATH" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "responses": { "204": { "$ref": "#/components/responses/NO_CONTENT_204_SigningBasket" }, "400": { "$ref": "#/components/responses/BAD_REQUEST_400_SBS" }, "401": { "$ref": "#/components/responses/UNAUTHORIZED_401_SBS" }, "403": { "$ref": "#/components/responses/FORBIDDEN_403_SBS" }, "404": { "$ref": "#/components/responses/NOT_FOUND_404_SBS" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_SBS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_SBS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_SBS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_SBS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_SBS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_SBS" }, "500": { "$ref": "#/components/responses/INTERNAL_SERVER_ERROR_500_SBS" }, "503": { "$ref": "#/components/responses/SERVICE_UNAVAILABLE_503_SBS" } } } }, "/v1/signing-baskets/{basketId}/status": { "get": { "summary": "Read the status of the signing basket", "description": "Returns the status of a signing basket object. \n", "operationId": "getSigningBasketStatus", "tags": [ "Signing Baskets (SBS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/basketId_PATH" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "responses": { "200": { "$ref": "#/components/responses/OK_200_SigningBasketStatus" }, "400": { "$ref": "#/components/responses/BAD_REQUEST_400_SBS" }, "401": { "$ref": "#/components/responses/UNAUTHORIZED_401_SBS" }, "403": { "$ref": "#/components/responses/FORBIDDEN_403_SBS" }, "404": { "$ref": "#/components/responses/NOT_FOUND_404_SBS" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_SBS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_SBS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_SBS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_SBS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_SBS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_SBS" }, "500": { "$ref": "#/components/responses/INTERNAL_SERVER_ERROR_500_SBS" }, "503": { "$ref": "#/components/responses/SERVICE_UNAVAILABLE_503_SBS" } } } }, "/v1/signing-baskets/{basketId}/authorisations": { "post": { "summary": "Start the authorisation process for a signing basket", "description": "Create an authorisation sub-resource and start the authorisation process of a signing basket. \nThe message might in addition transmit authentication and authorisation related data.\n\nThis method is iterated n times for a n times SCA authorisation in a \ncorporate context, each creating an own authorisation sub-endpoint for \nthe corresponding PSU authorising the signing-baskets.\n\nThe ASPSP might make the usage of this access method unnecessary in case \nof only one SCA process needed, since the related authorisation resource \nmight be automatically created by the ASPSP after the submission of the \npayment data with the first POST signing basket call.\n\nThe start authorisation process is a process which is needed for creating a new authorisation \nor cancellation sub-resource. \n\nThis applies in the following scenarios:\n\n * The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding payment \n initiation response that an explicit start of the authorisation process is needed by the TPP. \n The 'startAuthorisation' hyperlink can transport more information about data which needs to be \n uploaded by using the extended forms:\n * 'startAuthorisationWithPsuIdentfication', \n * 'startAuthorisationWithPsuAuthentication' \n * 'startAuthorisationWithEncryptedPsuAuthentication'\n * 'startAuthorisationWithAuthentciationMethodSelection' \n * The related payment initiation cannot yet be executed since a multilevel SCA is mandated.\n * The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding \n payment cancellation response that an explicit start of the authorisation process is needed by the TPP.\n The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded\n by using the extended forms as indicated above.\n * The related payment cancellation request cannot be applied yet since a multilevel SCA is mandate for \n executing the cancellation.\n * The signing basket needs to be authorised yet.\n", "operationId": "startSigningBasketAuthorisation", "tags": [ "Signing Baskets (SBS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/basketId_PATH" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "requestBody": { "content": { "application/json": { "schema": { "oneOf": [ {}, { "$ref": "#/components/schemas/updatePsuAuthentication" }, { "$ref": "#/components/schemas/selectPsuAuthenticationMethod" }, { "$ref": "#/components/schemas/transactionAuthorisation" } ] } } } }, "responses": { "201": { "$ref": "#/components/responses/CREATED_201_StartScaProcess" }, "400": { "$ref": "#/components/responses/BAD_REQUEST_400_SBS" }, "401": { "$ref": "#/components/responses/UNAUTHORIZED_401_SBS" }, "403": { "$ref": "#/components/responses/FORBIDDEN_403_SBS" }, "404": { "$ref": "#/components/responses/NOT_FOUND_404_SBS" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_SBS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_SBS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_SBS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_SBS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_SBS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_SBS" }, "500": { "$ref": "#/components/responses/INTERNAL_SERVER_ERROR_500_SBS" }, "503": { "$ref": "#/components/responses/SERVICE_UNAVAILABLE_503_SBS" } } }, "get": { "summary": "Get signing basket authorisation sub-resources request", "description": "Read a list of all authorisation subresources IDs which have been created.\n\nThis function returns an array of hyperlinks to all generated authorisation sub-resources.\n", "operationId": "getSigningBasketAuthorisation", "tags": [ "Signing Baskets (SBS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/basketId_PATH" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "responses": { "200": { "$ref": "#/components/responses/OK_200_Authorisations" }, "400": { "$ref": "#/components/responses/BAD_REQUEST_400_SBS" }, "401": { "$ref": "#/components/responses/UNAUTHORIZED_401_SBS" }, "403": { "$ref": "#/components/responses/FORBIDDEN_403_SBS" }, "404": { "$ref": "#/components/responses/NOT_FOUND_404_SBS" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_SBS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_SBS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_SBS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_SBS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_SBS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_SBS" }, "500": { "$ref": "#/components/responses/INTERNAL_SERVER_ERROR_500_SBS" }, "503": { "$ref": "#/components/responses/SERVICE_UNAVAILABLE_503_SBS" } } } }, "/v1/signing-baskets/{basketId}/authorisations/{authorisationId}": { "put": { "summary": "Update PSU data for signing basket", "description": "This method update PSU data on the signing basket resource if needed. \nIt may authorise a igning basket within the embedded SCA approach where needed.\n\nIndependently from the SCA Approach it supports e.g. the selection of \nthe authentication method and a non-SCA PSU authentication.\n\nThis methods updates PSU data on the cancellation authorisation resource if needed. \n\nThere are several possible update PSU data requests in the context of a consent request if needed, \nwhich depends on the SCA approach:\n\n* Redirect SCA Approach:\n A specific Update PSU data request is applicable for \n * the selection of authentication methods, before choosing the actual SCA approach.\n* Decoupled SCA Approach:\n A specific Update PSU data request is only applicable for\n * adding the PSU Identification, if not provided yet in the payment initiation request or the account information consent request, or if no OAuth2 access token is used, or\n * the selection of authentication methods.\n* Embedded SCA Approach: \n The update PSU data request might be used \n * to add credentials as a first factor authentication data of the PSU and\n * to select the authentication method and\n * transaction authorisation.\n\nThe SCA approach might depend on the chosen SCA method. \nFor that reason, the following possible update PSU data request can apply to all SCA approaches:\n\n* Select an SCA method in case of several SCA methods are available for the customer.\n\nThere are the following request types on this access path:\n * Update PSU identification\n * Update PSU authentication\n * Select PSU autorization Method \n WARNING: This method needs a reduced header, \n therefore many optional elements are not present. \n Maybe in a later version the access path will change.\n * Transaction Authorisation\n WARNING: This method needs a reduced header, \n therefore many optional elements are not present. \n Maybe in a later version the access path will change.\n", "operationId": "updateSigningBasketPsuData", "tags": [ "Signing Baskets (SBS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/basketId_PATH" }, { "$ref": "#/components/parameters/authorisationId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$ref": "#/components/parameters/PSU-ID" }, { "$ref": "#/components/parameters/PSU-ID-Type" }, { "$ref": "#/components/parameters/PSU-Corporate-ID" }, { "$ref": "#/components/parameters/PSU-Corporate-ID-Type" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "requestBody": { "content": { "application/json": { "schema": { "oneOf": [ {}, { "$ref": "#/components/schemas/updatePsuAuthentication" }, { "$ref": "#/components/schemas/selectPsuAuthenticationMethod" }, { "$ref": "#/components/schemas/transactionAuthorisation" }, { "$ref": "#/components/schemas/authorisationConfirmation" } ] }, "examples": { "Update PSU identification (Embedded Approach)": { "value": {} }, "Update PSU authentication (Embedded Approach)": { "$ref": "#/components/examples/updatePsuAuthenticationExample_Embedded" }, "Select PSU authentication method (Embedded Approach)": { "$ref": "#/components/examples/selectPsuAuthenticationMethodExample_Embedded" }, "Transaction authorisation (Embedded Approach)": { "$ref": "#/components/examples/transactionAuthorisationExample_Embedded" }, "Authorisation confirmation (Redirect Approach)": { "$ref": "#/components/examples/authorisationConfirmationExample_Redirect" } } } } }, "responses": { "200": { "$ref": "#/components/responses/OK_200_UpdatePsuData" }, "400": { "$ref": "#/components/responses/BAD_REQUEST_400_SBS" }, "401": { "$ref": "#/components/responses/UNAUTHORIZED_401_SBS" }, "403": { "$ref": "#/components/responses/FORBIDDEN_403_SBS" }, "404": { "$ref": "#/components/responses/NOT_FOUND_404_SBS" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_SBS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_SBS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_SBS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_SBS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_SBS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_SBS" }, "500": { "$ref": "#/components/responses/INTERNAL_SERVER_ERROR_500_SBS" }, "503": { "$ref": "#/components/responses/SERVICE_UNAVAILABLE_503_SBS" } } }, "get": { "summary": "Read the SCA status of the signing basket authorisation", "description": "This method returns the SCA status of a signing basket's authorisation sub-resource.\n", "operationId": "getSigningBasketScaStatus", "tags": [ "Signing Baskets (SBS)", "Common Services" ], "security": [ {}, { "BearerAuthOAuth": [] } ], "parameters": [ { "$ref": "#/components/parameters/basketId_PATH" }, { "$ref": "#/components/parameters/authorisationId" }, { "$ref": "#/components/parameters/X-Request-ID" }, { "$ref": "#/components/parameters/Digest" }, { "$ref": "#/components/parameters/Signature" }, { "$ref": "#/components/parameters/TPP-Signature-Certificate" }, { "$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" }, { "$ref": "#/components/parameters/PSU-Geo-Location" } ], "responses": { "200": { "$ref": "#/components/responses/OK_200_ScaStatus" }, "400": { "$ref": "#/components/responses/BAD_REQUEST_400_SBS" }, "401": { "$ref": "#/components/responses/UNAUTHORIZED_401_SBS" }, "403": { "$ref": "#/components/responses/FORBIDDEN_403_SBS" }, "404": { "$ref": "#/components/responses/NOT_FOUND_404_SBS" }, "405": { "$ref": "#/components/responses/METHOD_NOT_ALLOWED_405_SBS" }, "406": { "$ref": "#/components/responses/NOT_ACCEPTABLE_406_SBS" }, "408": { "$ref": "#/components/responses/REQUEST_TIMEOUT_408_SBS" }, "409": { "$ref": "#/components/responses/CONFLICT_409_SBS" }, "415": { "$ref": "#/components/responses/UNSUPPORTED_MEDIA_TYPE_415_SBS" }, "429": { "$ref": "#/components/responses/TOO_MANY_REQUESTS_429_SBS" }, "500": { "$ref": "#/components/responses/INTERNAL_SERVER_ERROR_500_SBS" }, "503": { "$ref": "#/components/responses/SERVICE_UNAVAILABLE_503_SBS" } } } } }, "components": { "securitySchemes": { "BearerAuthOAuth": { "description": "Bearer Token. \n\nIs contained only, if an OAuth2 based authentication was performed in a pre-step or \nan OAuth2 based SCA was performed in a preceding AIS service in the same session.\n", "type": "http", "scheme": "bearer" } }, "schemas": { "paymentId": { "description": "Resource identification of the generated payment initiation resource.", "type": "string", "example": "1234-wertiq-983" }, "paymentIdList": { "description": "A list of paymentIds.", "type": "array", "minItems": "1", "items": { "$ref": "#/components/schemas/paymentId" } }, "basketId": { "description": "Resource identification of the generated signing basket resource.", "type": "string", "example": "1234-basket-567" }, "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.\n", "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.\n", "type": "string" }, "authorization": { "description": "Authorization by OAuth2 based Protocol.\n", "type": "string" }, "consentIdList": { "description": "A list of consentIds.", "type": "array", "minItems": "1", "items": { "$ref": "#/components/schemas/consentId" } }, "transactionId": { "description": "This identification is given by the attribute transactionId of the corresponding entry of a transaction list.\n", "type": "string", "example": "3dc3d5b3-7023-4848-9853-f5400a64e80f" }, "cardTransactionId": { "description": "Unique end to end identity.", "type": "string", "maxLength": "35" }, "terminalId": { "description": "Identification of the Terminal, where the card has been used.", "type": "string", "maxLength": "35" }, "entryReference": { "description": "Is the identification of the transaction as used e.g. for reference for deltafunction on application level.\nThe same identification as for example used within camt.05x messages.\n", "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 Remark: This codeis accepted as new code by ISO20022.\n- 'ACFC': 'AcceptedFundsChecked' -\n Preceding check of technical validation and customer profile was successful and an automatic funds check was positive .\n Remark: This code is accepted as new code by ISO20022.\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 Remark: This code is accepted as new code by ISO20022.\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.\n \n", "type": "string", "enum": [ "ACCC", "ACCP", "ACSC", "ACSP", "ACTC", "ACWC", "ACWP", "RCVD", "PDNG", "RJCT", "CANC", "ACFC", "PATC", "PART" ], "example": "ACCP" }, "transactionStatus_SBS": { "description": "The transaction status is filled with codes of the ISO 20022 data table.\nOnly the codes RCVD, PATC, ACTC, ACWC and RJCT are used:\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- 'RCVD': 'Received' - \n Payment initiation has been received by the receiving agent.\n- 'RJCT': 'Rejected' - \n Payment initiation or individual transaction included in the payment initiation has been rejected.\n", "type": "string", "enum": [ "ACSC", "ACTC", "PATC", "RCVD", "RJCT", "CANC" ], "example": "RCVD" }, "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.\n", "type": "string", "enum": [ "received", "psuIdentified", "psuAuthenticated", "scaMethodSelected", "started", "unconfirmed", "finalised", "failed", "exempted" ], "example": "psuAuthenticated" }, "scaStatusAuthorisationConfirmation": { "description": "This data element is containing information about the status of the SCA method in an authorisation confirmation response. \n\nThe following codes are defined for this data type.\n\n * 'finalised': if the transaction authorisation and confirmation was successfule.\n * 'failed': if the transaction authorisation or confirmation was not successful.\n", "type": "string", "enum": [ "finalised", "failed" ] }, "scaAuthenticationData": { "description": "SCA authentication data, depending on the chosen authentication method. \nIf the data is binary, then it is base64 encoded.\n", "type": "string" }, "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.\n", "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\ntheir public price list or as agreed between ASPSP and PSU.\nIf 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.\nIf 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.\n", "type": "boolean" }, "recurringIndicator": { "description": "\"true\", if the consent is for recurring access to the account data.\n\n\"false\", if the consent is for one access to the account data.\n", "type": "boolean", "example": "false" }, "combinedServiceIndicator": { "description": "If \"true\" indicates that a payment initiation service will be addressed in the same \"session\".\n", "type": "boolean", "example": "false" }, "batchBookingPreferred": { "description": "If this element equals 'true', the PSU prefers only one booking entry. \nIf this element equals 'false', the PSU prefers individual booking of all contained individual transactions. \n\nThe ASPSP will follow this preference according to contracts agreed on with the PSU.\n", "type": "boolean", "example": "false" }, "trustedBeneficiaryFlag": { "description": "Additional Service: Trusted Benificiaries\nWithin this data element, the ASPSP might optionally communicate towards the TPP whether the creditor was part of the related trusted beneficiary list. \nThis attribute is only contained in case of a final scaStatus.\n", "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\nauthentication methods.\n\nDepending on the risk management of the ASPSP this choice might be offered before or after the PSU\nhas been identified with the first relevant factor, or if an access token is transported.\n\nIf this data element is contained, then there is also a hyperlink of type 'startAuthorisationWithAuthenticationMethodSelection'\ncontained in the response body.\n\nThese methods shall be presented towards the PSU for selection by the TPP.\n", "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.\n", "type": "string", "enum": [ "SMS_OTP", "CHIP_OTP", "PHOTO_OTP", "PUSH_OTP", "SMTP_OTP" ] }, "authenticationObject": { "description": "Authentication object.\n", "type": "object", "required": [ "authenticationType", "authenticationMethodId" ], "properties": { "authenticationType": { "$ref": "#/components/schemas/authenticationType" }, "authenticationVersion": { "description": "Depending on the \"authenticationType\".\nThis version can be used by differentiating authentication tools used within performing OTP generation in the same authentication type.\nThis version can be referred to in the ASPSP?s documentation.\n", "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.\nAlternatively this could be a description provided by the ASPSP like \"SMS OTP on phone +49160 xxxxx 28\".\nThis name shall be used by the TPP when presenting a list of authentication methods to the PSU, if available.\n", "type": "string", "example": "SMS OTP on phone +49160 xxxxx 28" }, "explanation": { "description": "Detailed information about the SCA method for the PSU.\n", "type": "string", "example": "Detailed information about the SCA method for the PSU." } } }, "signingBasket": { "description": "JSON Body of a establish signing basket request.\nThe body shall contain at least one entry.\n", "type": "object", "properties": { "paymentIds": { "$ref": "#/components/schemas/paymentIdList" }, "consentIds": { "$ref": "#/components/schemas/consentIdList" } } }, "challengeData": { "description": "It is contained in addition to the data element 'chosenScaMethod' if challenge data is needed for SCA.\nIn rare cases this attribute is also used in the context of the 'startAuthorisationWithPsuAuthentication' link.\n", "type": "object", "properties": { "image": { "type": "string", "format": "byte", "description": "PNG data (max. 512 kilobyte) to be displayed to the PSU,\nBase64 encoding, cp. [RFC4648].\nThis attribute is used only, when PHOTO_OTP or CHIP_OTP\nis the selected SCA method.\n" }, "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\ne.g. fallback mechanism for the chosen SCA method.\nThe TPP is obliged to show this to the PSU.\n" } } }, "fundsAvailable": { "description": "Equals true if sufficient funds are available at the time of the request, false otherwise.\n\nThis datalemenet is allways contained in a confirmation of funds response.\n\nThis data element is contained in a payment status response, \nif supported by the ASPSP, if a funds check has been performed and \nif the transactionStatus is \"ACTC\", \"ACWC\" or \"ACCP\".\n", "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, or \n * the Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements, or\n * the Primary Account Number (PAN) of a card in a masked form, or\n * an alias to access a payment account via a registered mobile phone number (MSISDN).\n", "type": "object", "properties": { "iban": { "$ref": "#/components/schemas/iban" }, "bban": { "$ref": "#/components/schemas/bban" }, "pan": { "$ref": "#/components/schemas/pan" }, "maskedPan": { "$ref": "#/components/schemas/maskedPan" }, "msisdn": { "$ref": "#/components/schemas/msisdn" }, "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 \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. \n", "type": "string", "enum": [ "closingBooked", "expected", "openingBooked", "interimAvailable", "interimBooked", "forwardAvailable", "nonInvoiced" ] }, "accountAccess": { "description": "Requested access services for a consent.\n", "type": "object", "properties": { "accounts": { "description": "Is asking for detailed account information. \n\nIf the array is empty in a request, the TPP is asking for an accessible account list. \nThis may be restricted in a PSU/ASPSP authorization dialogue. \nIf the array is empty, also the arrays for balances, additionalInformation sub attributes or transactions shall be empty, if used.\n", "type": "array", "items": { "$ref": "#/components/schemas/accountReference" } }, "balances": { "description": "Is asking for balances of the addressed accounts.\n\nIf the array is empty in the request, the TPP is asking for the balances of all accessible account lists. \nThis may be restricted in a PSU/ASPSP authorization dialogue. \nIf the array is empty, also the arrays for accounts, additionalInformation sub attributes or transactions shall be empty, if used.\n", "type": "array", "items": { "$ref": "#/components/schemas/accountReference" } }, "transactions": { "description": "Is asking for transactions of the addressed accounts. \n\nIf the array is empty in the request, the TPP is asking for the transactions of all accessible account lists. \nThis may be restricted in a PSU/ASPSP authorization dialogue. \nIf the array is empty, also the arrays for accounts, additionalInformation sub attributes or balances shall be empty, if used.\n", "type": "array", "items": { "$ref": "#/components/schemas/accountReference" } }, "additionalInformation": { "$ref": "#/components/schemas/additionalInformationAccess" }, "availableAccounts": { "description": "Optional if supported by API provider.\n\nThe values \"allAccounts\" and \"allAccountsWithOwnerName\" are admitted. \nThe support of the \"allAccountsWithOwnerName\" value by the ASPSP is optional.\n", "type": "string", "enum": [ "allAccounts", "allAccountsWithOwnerName" ] }, "availableAccountsWithBalance": { "description": "Optional if supported by API provider.\n\nThe values \"allAccounts\" and \"allAccountsWithOwnerName\" are admitted. \nThe support of the \"allAccountsWithOwnerName\" value by the ASPSP is optional.\n", "type": "string", "enum": [ "allAccounts", "allAccountsWithOwnerName" ] }, "allPsd2": { "description": "Optional if supported by API provider.\n\nThe values \"allAccounts\" and \"allAccountsWithOwnerName\" are admitted. \nThe support of the \"allAccountsWithOwnerName\" value by the ASPSP is optional.\n", "type": "string", "enum": [ "allAccounts", "allAccountsWithOwnerName" ] }, "restrictedTo": { "description": "If the TPP requests access to accounts via availableAccounts (List of available accounts), global \nor 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. \n", "type": "array", "items": { "$ref": "#/components/schemas/cashAccountType" } } } }, "cashAccountType": { "description": "ExternalCashAccountType1Code from ISO 20022.\n", "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.\n", "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\".\n", "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" }, "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\n", "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\n", "type": "string", "maxLength": "500" }, "balances": { "$ref": "#/components/schemas/balanceList" }, "_links": { "$ref": "#/components/schemas/_linksAccountDetails" }, "ownerName": { "$ref": "#/components/schemas/ownerName" } } }, "cardAccountDetails": { "description": "Card account details.\n", "type": "object", "required": [ "maskedPan", "currency" ], "properties": { "resourceId": { "description": "This is the data element to be used in the path when retrieving data from a dedicated account.\nThis shall be filled, if addressable resource are created by the ASPSP on the /card-accounts endpoint.\n", "type": "string" }, "maskedPan": { "$ref": "#/components/schemas/maskedPan" }, "currency": { "$ref": "#/components/schemas/currencyCode" }, "ownerName": { "$ref": "#/components/schemas/ownerName" }, "name": { "description": "Name of the account, as assigned by the ASPSP, \nin agreement with the account owner in order to provide an additional means of identification of the account.\n", "type": "string", "maxLength": "70" }, "displayName": { "$ref": "#/components/schemas/displayName" }, "product": { "description": "Product Name of the Bank for this account, proprietary definition.\n", "type": "string", "maxLength": "35" }, "debitAccounting": { "$ref": "#/components/schemas/debitAccounting" }, "status": { "$ref": "#/components/schemas/accountStatus" }, "usage": { "description": "Specifies the usage of the account:\n * PRIV: private personal account\n * ORGA: professional account\n", "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\n", "type": "string", "maxLength": "500" }, "creditLimit": { "$ref": "#/components/schemas/amount" }, "balances": { "$ref": "#/components/schemas/balanceList" }, "_links": { "$ref": "#/components/schemas/_linksAccountDetails" } } }, "accountList": { "description": "List of accounts with details.\n", "type": "object", "required": [ "accounts" ], "properties": { "accounts": { "type": "array", "items": { "$ref": "#/components/schemas/accountDetails" } } } }, "cardAccountList": { "description": "List of card accounts with details.\n", "type": "object", "required": [ "cardAccounts" ], "properties": { "cardAccounts": { "type": "array", "items": { "$ref": "#/components/schemas/cardAccountDetails" } } } }, "accountReport": { "description": "JSON based account report.\nThis account report contains transactions resulting from the query parameters.\n\n'booked' shall be contained if bookingStatus parameter is set to \"booked\" or \"both\".\n\n'pending' is not contained if the bookingStatus parameter is set to \"booked\" or \"information\".\n\n'information' Only contained if the bookingStatus is set to \"information\" and if supported by ASPSP.\n", "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" } } }, "cardAccountReport": { "description": "JSON based card account report.\n\nThis card account report contains transactions resulting from the query parameters.\n", "type": "object", "required": [ "_links" ], "properties": { "booked": { "$ref": "#/components/schemas/cardTransactionList" }, "pending": { "$ref": "#/components/schemas/cardTransactionList" }, "_links": { "$ref": "#/components/schemas/_linksCardAccountReport" } } }, "transactionList": { "description": "Array of transaction details.", "type": "array", "items": { "$ref": "#/components/schemas/transactions" } }, "cardTransactionList": { "description": "Array of transaction details.", "type": "array", "items": { "$ref": "#/components/schemas/cardTransaction" } }, "transactionDetailsBody": { "description": "Transaction details.", "type": "object", "required": [ "transactionDetails" ], "properties": { "transactionDetails": { "$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.\n", "type": "boolean" }, "batchNumberOfTransactions": { "description": "Shall be used if and only if the batchIndicator is contained and equals true.\n", "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" } } }, "cardTransaction": { "description": "Card transaction information.", "type": "object", "required": [ "transactionAmount" ], "properties": { "cardTransactionId": { "$ref": "#/components/schemas/cardTransactionId" }, "terminalId": { "$ref": "#/components/schemas/terminalId" }, "transactionDate": { "$ref": "#/components/schemas/transactionDate" }, "acceptorTransactionDateTime": { "description": "Timestamp of the actual card transaction within the acceptance system", "type": "string", "format": "date-time" }, "bookingDate": { "$ref": "#/components/schemas/bookingDate" }, "transactionAmount": { "$ref": "#/components/schemas/amount" }, "currencyExchange": { "$ref": "#/components/schemas/reportExchangeRateList" }, "originalAmount": { "$ref": "#/components/schemas/amount" }, "markupFee": { "$ref": "#/components/schemas/amount" }, "markupFeePercentage": { "type": "string", "example": "0.3" }, "cardAcceptorId": { "type": "string", "maxLength": "35" }, "cardAcceptorAddress": { "$ref": "#/components/schemas/address" }, "cardAcceptorPhone": { "$ref": "#/components/schemas/cardAcceptorPhone" }, "merchantCategoryCode": { "$ref": "#/components/schemas/merchantCategoryCode" }, "maskedPAN": { "$ref": "#/components/schemas/maskedPan" }, "transactionDetails": { "type": "string", "maxLength": "140" }, "invoiced": { "type": "boolean" }, "proprietaryBankTransactionCode": { "$ref": "#/components/schemas/proprietaryBankTransactionCode" } } }, "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": { "type": "string" }, "targetCurrency": { "$ref": "#/components/schemas/currencyCode" }, "quotationDate": { "type": "string", "format": "date" }, "contractIdentification": { "type": "string" } } }, "paymentExchangeRate": { "description": "Exchange Rate.", "type": "object", "properties": { "unitCurrency": { "type": "string" }, "exchangeRate": { "type": "string" }, "contractIdentification": { "type": "string" }, "rateType": { "type": "string", "enum": [ "SPOT", "SALE", "AGRD" ] } } }, "balance": { "description": "A single balance element.\n", "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 \nis included in the calculation of the balance, where applicable.\n", "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 \non the account, which is not yet booked.\n", "type": "string", "format": "date-time" }, "referenceDate": { "description": "Indicates the date of the balance.", "type": "string", "format": "date" }, "lastCommittedTransaction": { "description": "\"entryReference\" of the last commited transaction to support the TPP in identifying whether all \nPSU transactions are already known.\n", "type": "string", "maxLength": "35" } } }, "balanceList": { "description": "A list of balances regarding this account, e.g. the current balance, the last booked balance.\nThe list might be restricted to the current balance.\n", "type": "array", "items": { "$ref": "#/components/schemas/balance" } }, "bicfi": { "description": "BICFI\n", "type": "string", "pattern": "[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}", "example": "AAAADEBBXXX" }, "pan": { "description": "Primary Account Number according to ISO/IEC 7812.\n", "type": "string", "maxLength": "35", "example": "5409050000000000" }, "maskedPan": { "description": "Masked Primary Account Number.\n", "type": "string", "maxLength": "35", "example": "123456xxxxxx1234" }, "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.\n", "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": { "streetName": { "type": "string", "maxLength": "70" }, "buildingNumber": { "type": "string" }, "townName": { "type": "string" }, "postCode": { "type": "string" }, "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" }, "cardAcceptorPhone": { "description": "Merchant phone number\nIt consists of a \"+\" followed by the country code (from 1 to 3 characters) then a \"-\" and finally, any\ncombination of numbers, \"(\", \")\", \"+\" and \"-\" (up to 30 characters).\npattern according to ISO20022 \\+[0-9]{1,3}-[0-9()+\\-]{1,30}\n", "type": "string", "pattern": "\\+[0-9]{1,3}\\-[0-9()+\\-]{1,30}" }, "creditorNameAndAddress": { "description": "Creditor Name and Address in a free text field.", "type": "string", "maxLength": "140", "example": "Max Masters, Main Street 1, 12345 City, Example Country" }, "ownerName": { "description": "Name of the legal account owner. \nIf there is more than one owner, then e.g. two names might be noted here.\n\nFor a corporate account, the corporate name is used for this attribute.\nEven 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.\n", "type": "string", "maxLength": "140", "example": "John Doe" }, "debitAccounting": { "description": "If true, the amounts of debits on the reports are quoted positive with the related consequence for balances.\nIf false, the amount of debits on the reports are quoted negative.\n", "type": "boolean" }, "displayName": { "description": "Name of the account as defined by the PSU within online channels.\n", "type": "string", "maxLength": "70" }, "additionalInformationAccess": { "description": "Optional if supported by API provider.\n\nIs asking for additional information as added within this structured object.\nThe usage of this data element requires at least one of the entries \"accounts\", \n\"transactions\" or \"balances\" also to be contained in the object. \nIf detailed accounts are referenced, it is required in addition that any account addressed within \nthe additionalInformation attribute is also addressed by at least one of the attributes \"accounts\", \n\"transactions\" or \"balances\".\n", "type": "object", "properties": { "ownerName": { "description": "Is asking for account owner name of the accounts referenced within. \nIf the array is empty in the request, the TPP is asking for the account \nowner name of all accessible accounts. \nThis may be restricted in a PSU/ASPSP authorization dialogue. \nIf the array is empty, also the arrays for accounts, balances or transactions shall be empty, if used.\nThe ASPSP will indicate in the consent resource after a successful authorisation, \nwhether the ownerName consent can be accepted by providing the accounts on which the ownerName will \nbe delivered. \nThis array can be empty.\n", "type": "array", "items": { "$ref": "#/components/schemas/accountReference" } }, "trustedBeneficiaries": { "description": "Optional if supported by API provider.\nIs asking for the trusted beneficiaries related to the accounts referenced within and related to the PSU.\nIf the array is empty in the request, the TPP is asking for the lists of trusted beneficiaries of all accessible accounts. \nThis may be restricted in a PSU/ASPSP authorization dialogue by the PSU if also the account lists addressed \nby the tags ?accounts?, ?balances? or ?transactions? are empty.\nThe ASPSP will indicate in the consent resource after a successful authorisation, \nwhether the trustedBeneficiaries consent can be accepted by providing the accounts on which the list of trusted beneficiaries will be delivered. \nThis array can be empty.\n", "type": "array", "items": { "$ref": "#/components/schemas/accountReference" } } } }, "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.\n", "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.\nUp to 14 significant figures. Negative amounts are signed by minus.\nThe decimal separator is a dot.\n\n**Example:**\nValid representations for EUR with up to two decimals are:\n\n * 1056\n * 5768.2\n * -1.50\n * 5877.78\n", "type": "string", "pattern": "-?[0-9]{1,14}(\\.[0-9]{1,3})?", "example": "5877.78" }, "chargeBearer": { "description": "Charge Bearer. ChargeBearerType1Code from ISO20022.", "type": "string", "enum": [ "DEBT", "CRED", "SHAR", "SLEV" ] }, "remittanceInformationStructuredMax140": { "description": "Structured remittance information Max\n", "type": "string", "maxLength": "140" }, "remittanceInformationStructured": { "description": "Structured remittance information.\n", "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.\n", "type": "array", "items": { "$ref": "#/components/schemas/remittanceInformationStructured" } }, "remittanceInformationUnstructured": { "description": "Unstructured remittance information.\n", "type": "string", "maxLength": "140", "example": "Ref Number Merchant" }, "remittanceInformationUnstructuredArray": { "description": "Array of unstructured remittance information.\n", "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.\n", "type": "array", "items": { "$ref": "#/components/schemas/EntryDetailsElement" } }, "additionalInformation": { "description": "Might be used by the ASPSP to transport additional transaction related information to the PSU\n", "type": "string", "maxLength": "500", "example": "Some additional transaction related information." }, "additionalInformationStructured": { "description": "Is used if and only if the bookingStatus entry equals \"information\". \nEvery active standing order related to the dedicated payment account result into one entry.\n", "type": "object", "required": [ "standingOrderDetails" ], "properties": { "standingOrderDetails": { "$ref": "#/components/schemas/standingOrderDetails" } } }, "standingOrderDetails": { "description": "Details of underlying standing orders.\n", "type": "object", "required": [ "startDate", "frequency" ], "properties": { "startDate": { "$ref": "#/components/schemas/startDate" }, "frequency": { "$ref": "#/components/schemas/frequencyCode" }, "endDate": { "$ref": "#/components/schemas/endDate" }, "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.\n", "type": "boolean" }, "monthsOfExecution": { "$ref": "#/components/schemas/monthsOfExecution" }, "multiplicator": { "description": "This is multiplying the given frequency resulting the exact frequency,\ne.g. Frequency=weekly and multiplicator=3 means every 3 weeks.\nRemark: This attribute is rarely supported in the market.\n", "type": "integer" }, "dayOfExecution": { "$ref": "#/components/schemas/dayOfExecution" }, "limitAmount": { "$ref": "#/components/schemas/amount" } } }, "purposeCode": { "description": "ExternalPurpose1Code from ISO 20022.\n\nValues from ISO 20022 External Code List ExternalCodeSets_1Q2018 June 2018.\n", "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" ] }, "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 * SubFamiliy 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\n", "type": "string", "example": "PMNT-RDDT-ESDD" }, "proprietaryBankTransactionCode": { "description": "Proprietary bank transaction code as used within a community or within an ASPSP e.g. \nfor MT94x based transaction reports.\n", "type": "string", "maxLength": "35" }, "merchantCategoryCode": { "description": "Merchant category code.", "type": "string", "maxLength": "4", "minLength": "4" }, "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\"\n", "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.\nFor a one-off access, this attribute is set to \"1\".\n\nThe frequency needs to be greater equal to one. \n\nIf not otherwise agreed bilaterally between TPP and ASPSP, the frequency is less equal to 4.\n", "type": "integer", "example": "4", "minimum": "1", "exclusiveMinimum": "false" }, "dayOfExecution": { "description": "Day of execution as string.\n\nThis string consists of up two characters.\nLeading zeroes are not allowed.\n\n31 is ultimo of the month.\n", "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}. \nThe array is restricted to 11 entries. \nThe values contained in the array entries shall all be different and the maximum value of one entry is 12.\nThis attribute is contained if and only if the frequency equals \"MonthlyVariable\".\nExample: An execution on January, April and October each year is addressed by [\"1\", \"4\", \"10\"].\n", "type": "array", "items": { "type": "string", "maxLength": "2", "maxItems": "11", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" ] } }, "executionRule": { "description": "\"following\" or \"preceding\" supported as values. \nThis data attribute defines the behaviour when recurring payment dates falls on a weekend or bank holiday. \nThe payment is then executed either the \"preceding\" or \"following\" working day.\nASPSP might reject the request due to the communicated value, if rules in Online-Banking are not supporting \nthis execution rule.\n", "type": "string", "enum": [ "following", "preceding" ] }, "psuData": { "description": "PSU Data for Update PSU authentication.", "type": "object", "minProperties": "1", "properties": { "password": { "description": "Password.", "type": "string" }, "encryptedPassword": { "description": "Encrypted password.", "type": "string" }, "additionalPassword": { "description": "Additional password in plaintext.", "type": "string" }, "additionalEncryptedPassword": { "description": "Additional encrypted password.", "type": "string" } } }, "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": "70", "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" }, "debtorId": { "description": "Debtor Id.", "type": "string", "maxLength": "35", "example": "Debtor Id 1234" }, "ultimateCreditor": { "description": "Ultimate creditor.", "type": "string", "maxLength": "70", "example": "Ultimate Creditor" }, "transactionDate": { "description": "Date of the actual card transaction.", "type": "string", "format": "date" }, "startDate": { "description": "The first applicable day of execution starting from this date is the first payment.\n", "type": "string", "format": "date" }, "endDate": { "description": "The last applicable day of execution.\nIf not given, it is an infinite standing order.\n", "type": "string", "format": "date" }, "bookingDate": { "description": "The date when an entry is posted to an account on the ASPSPs books.\n", "type": "string", "format": "date" }, "validUntil": { "description": "This parameter is defining a valid until date (including the mentioned date) for the requested consent. \nThe content is the local ASPSP date in ISO-Date format, e.g. 2017-10-30.\n\nFuture dates might get adjusted by ASPSP. \n\nIf a maximal available date is requested, a date in far future is to be used: \"9999-12-31\". \n\nIn both cases the consent object to be retrieved by the get consent request will contain the adjusted date.\n", "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 \nthe XS2A interface or the PSU/ASPSP interface having an impact on the status.\n", "type": "string", "format": "date", "example": "2018-07-01" }, "paymentInitiation_json": { "description": "Generic Body for a payment initation 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\n * sepa-credit-transfers\n * instant-sepa-credit-transfers\n * target-2-payments\n * cross-border-credit-transfers\n\nFor the convenience of the implementer additional which are already predefinded 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 \nthere are additional conditions which are NOT covered by this specification.\nPlease check the Implementation Guidelines for detailes.\n\n\nThe following data element are depending on the actual payment product available (in source code):\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n optional\n \n \n \n \n \n \n \n \n \n \n \n
Data ElementSCT EU CoreSCT INST EU CoreTarget2 Paym. CoreCross Border CT Core
endToEndIdentification optional optional optional n.a.
instructionIdentification n.a. n.a. n.a. n.a.
debtorName n.a. n.a. n.a. n.a.
debtorAccount mandatory mandatory mandatory mandatory
debtorId n.a. n.a. n.a. n.a.
ultimateDebtor n.a. n.a. n.a. n.a.
instructedAmount mandatory mandatory mandatory mandatory
transactionCurrency n.a. n.a. n.a. n.a.
exchangeRateInformation n.a. n.a.n.a. n.a.
creditorAccount mandatory mandatory mandatory mandatory
creditorAgent optional optional optional conditional
creditorAgentName n.a. n.a. n.a. n.a.
creditorName mandatory mandatory mandatory mandatory
creditorId n.a. n.a. n.a. n.a.
creditorAddress optional optional conditional
creditorNameAndAddress n.a. n.a. n.a. n.a.
ultimateCreditor n.a. n.a. n.a. n.a.
purposeCode n.a. n.a. n.a. n.a.
chargeBearer n.a. n.a. optional conditional
remittanceInformationUnstructured optional optional optional optional
remittanceInformationUnstructuredArray n.a. n.a. n.a. n.a.
remittanceInformationStructured n.a. n.a. n.a. n.a.
remittanceInformationStructuredArray n.a. n.a. n.a. n.a.
requestedExecutionDate n.a. n.a. n.a. n.a.
requestedExecutionTime n.a. n.a. n.a. n.a.
\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 definde to be mandatory. \n * Data element which are inticated to be n.a. can be used by the ASPS if needed. \n In this case uncomment tthe the relatetd 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.\n", "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 initation 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\n * sepa-credit-transfers\n * instant-sepa-credit-transfers\n * target-2-payments\n * cross-border-credit-transfers\n\nFor the convenience of the implementer additional which are already predefinded 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 \nthere are additional conditions which are NOT covered by this specification.\nPlease check the Implementation Guidelines for detailes.\n\n\nThe following data element are depending on the actual payment product available (in source code):\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n optional\n \n \n \n \n \n \n \n \n \n
Data ElementSCT EU CoreSCT INST EU CoreTarget2 Paym. CoreCross Border CT Core
endToEndIdentification optional optional optional n.a.
instructionIdentification n.a. n.a. n.a. n.a.
debtorName n.a. n.a. n.a. n.a.
debtorId n.a. n.a. n.a. n.a.
ultimateDebtor n.a. n.a. n.a. n.a.
instructedAmount mandatory mandatory mandatory mandatory
transactionCurrency n.a. n.a. n.a. n.a.
exchangeRateInformation n.a. n.a.n.a. n.a.
creditorAccount mandatory mandatory mandatory mandatory
creditorAgent optional optional optional conditional
creditorAgentName n.a. n.a. n.a. n.a.
creditorName mandatory mandatory mandatory mandatory
creditorId n.a. n.a. n.a. n.a.
creditorAddress optional optional conditional
creditorNameAndAddress n.a. n.a. n.a. n.a.
ultimateCreditor n.a. n.a. n.a. n.a.
purposeCode n.a. n.a. n.a. n.a.
chargeBearer n.a. n.a. optional conditional
remittanceInformationUnstructured optional optional optional optional
remittanceInformationUnstructuredArray n.a. n.a. n.a. n.a.
remittanceInformationStructured n.a. n.a. n.a. n.a.
remittanceInformationStructuredArray n.a. n.a. n.a. n.a.
\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 definde to be mandatory. \n * Data element which are inticated to be n.a. can be used by the ASPS if needed. \n In this case uncomment tthe the relatetd 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.\n", "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 initation 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\n * sepa-credit-transfers\n * instant-sepa-credit-transfers\n * target-2-payments\n * cross-border-credit-transfers\n\nFor the convenience of the implementer additional which are already predefinded 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 \nthere are additional conditions which are NOT covered by this specification.\nPlease check the Implementation Guidelines for detailes.\n\n\nThe following data element are depending on the actual payment product available (in source code):\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n optional\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Data ElementSCT EU CoreSCT INST EU CoreTarget2 Paym. CoreCross Border CT Core
endToEndIdentification optional optional optional n.a.
instructionIdentification n.a. n.a. n.a. n.a.
debtorName n.a. n.a. n.a. n.a.
debtorAccount mandatory mandatory mandatory mandatory
debtorId n.a. n.a. n.a. n.a.
ultimateDebtor n.a. n.a. n.a. n.a.
instructedAmount mandatory mandatory mandatory mandatory
transactionCurrency n.a. n.a. n.a. n.a.
exchangeRateInformation n.a. n.a.n.a. n.a.
creditorAccount mandatory mandatory mandatory mandatory
creditorAgent optional optional optional conditional
creditorAgentName n.a. n.a. n.a. n.a.
creditorName mandatory mandatory mandatory mandatory
creditorId n.a. n.a. n.a. n.a.
creditorAddress optional optional conditional
creditorNameAndAddress n.a. n.a. n.a. n.a.
ultimateCreditor n.a. n.a. n.a. n.a.
purposeCode n.a. n.a. n.a. n.a.
chargeBearer n.a. n.a. optional conditional
remittanceInformationUnstructured optional optional optional optional
remittanceInformationUnstructuredArray n.a. n.a. n.a. n.a.
remittanceInformationStructured n.a. n.a. n.a. n.a.
remittanceInformationStructuredArray n.a. n.a. n.a. n.a.
requestedExecutionDate n.a. n.a. n.a. n.a.
requestedExecutionTime n.a. n.a. n.a. n.a.
startDate mandatory mandatory mandatory mandatory
executionRule optional optional optional optional
endDate optional optional optional optional
frequency mandatory mandatory mandatory mandatory
dayOfExecution conditional conditional conditional conditional
\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 definde to be mandatory. \n * Data element which are inticated to be n.a. can be used by the ASPS if needed. \n In this case uncomment tthe the relatetd 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.\n", "type": "object", "required": [ "debtorAccount", "instructedAmount", "creditorAccount", "creditorName", "startDate", "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" }, "endDate": { "$ref": "#/components/schemas/endDate" }, "executionRule": { "$ref": "#/components/schemas/executionRule" }, "frequency": { "$ref": "#/components/schemas/frequencyCode" }, "dayOfExecution": { "$ref": "#/components/schemas/dayOfExecution" } } }, "bulkPaymentInitiation_json": { "description": "Generic Body for a bulk payment initation via JSON.\n\npaymentInformationId is contained in code but commented since it is n.a. \nand not all ASPSP are able to support this field now.\nIn a later version the field will be mandatory.\n", "type": "object", "required": [ "payments", "debtorAccount" ], "properties": { "batchBookingPreferred": { "$ref": "#/components/schemas/batchBookingPreferred" }, "debtorAccount": { "$ref": "#/components/schemas/accountReference" }, "requestedExecutionDate": { "type": "string", "format": "date" }, "requestedExecutionTime": { "type": "string", "format": "date-time" }, "payments": { "description": "A list of generic JSON bodies payment initations for bulk payments via JSON.\n\nNote: Some fields from single payments do not occcur in a bulk payment element\n", "type": "array", "items": { "$ref": "#/components/schemas/paymentInitiationBulkElement_json" } } } }, "confirmationOfFunds": { "description": "JSON Request body for the \"Confirmation of funds service\".\n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n
cardNumberString OptionalCard Number of the card issued by the PIISP. Should be delivered if available.
account Account ReferenceMandatoryPSU's account number.
payeeMax70TextOptionalThe merchant where the card is accepted as an information to the PSU.
instructedAmountAmountMandatoryTransaction amount to be checked within the funds check mechanism.
\n", "type": "object", "required": [ "account", "instructedAmount" ], "properties": { "cardNumber": { "description": "Card Number of the card issued by the PIISP. \nShould be delivered if available.\n", "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.\n", "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\".\n", "type": "boolean", "example": "false" } } }, "updatePsuAuthentication": { "description": "Content of the body of a Update PSU authentication request\n\nPassword subfield is used.\n", "type": "object", "required": [ "psuData" ], "properties": { "psuData": { "$ref": "#/components/schemas/psuData" } } }, "selectPsuAuthenticationMethod": { "description": "Content of the body of a Select PSU authentication method request\n", "type": "object", "required": [ "authenticationMethodId" ], "properties": { "authenticationMethodId": { "$ref": "#/components/schemas/authenticationMethodId" } } }, "transactionAuthorisation": { "description": "Content of the body of a transaction authorisation request\n", "type": "object", "required": [ "scaAuthenticationData" ], "properties": { "scaAuthenticationData": { "$ref": "#/components/schemas/scaAuthenticationData" } } }, "authorisationConfirmation": { "description": "Content of the body of an authorisation confirmation request\n", "type": "object", "required": [ "confirmationCode" ], "properties": { "confirmationCode": { "description": "Confirmation Code as retrieved by the TPP from the redirect based SCA process.", "type": "string" } } }, "paymentInitiationSct_pain.001": { "description": "A pain.001 structure corresponding to the SCT schema\n\nurn:iso:std:iso:20022:tech:xsd:pain.001.001.03\n", "type": "string", "example": " MIPI-123456789RI-123456789 2017-02-14T20:23:34.000Z 1 123 PaymentInitiator DE10000000012 PISP BIPI-123456789RI-123456789 TRF 1 123 SEPA 2017-02-15 PSU Name DE87200500001234567890 SLEV RI-123456789 123 Merchant123 DE23100120020123456789 Ref Number Merchant-123456 " }, "paymentInitiationSctInst_pain.001": { "description": "A pain.001 structure corresponding to the SCT INST schema.\n", "type": "string" }, "paymentInitiationTarget2_pain.001": { "description": "A pain.001 structure corresponding to the target-2 schema.\n\nFor TARGET-2 payments only community wide pain.001 schemes do exist.\n", "type": "string" }, "paymentInitiationCrossBorder_pain.001": { "description": "A pain.001 structure corresponding to the cross-border schema.\n\nFor cross-border payments only community wide pain.001 schemes do exist.\n", "type": "string" }, "periodicPaymentInitiationMultipartBody": { "description": "The multipart message definition for the initiation of a periodic payment initiation \nwhere the information of the payment is contained in a pain.001 message (Part 1) and \nthe additional informations related to the periodic payment is an additional JSON message (Part 2).\n", "type": "object", "properties": { "xml_sct": { "oneOf": [ { "$ref": "#/components/schemas/paymentInitiationSct_pain.001" }, { "$ref": "#/components/schemas/paymentInitiationSctInst_pain.001" }, { "$ref": "#/components/schemas/paymentInitiationTarget2_pain.001" }, { "$ref": "#/components/schemas/paymentInitiationCrossBorder_pain.001" } ] }, "json_standingorderType": { "$ref": "#/components/schemas/periodicPaymentInitiation_xml-Part2-standingorderType_json" } } }, "periodicPaymentInitiation_xml-Part2-standingorderType_json": { "description": "The body part 2 of a periodic payment initation request containes the execution related informations \nof the periodic payment.\n", "type": "object", "required": [ "startDate", "frequency" ], "properties": { "startDate": { "$ref": "#/components/schemas/startDate" }, "endDate": { "$ref": "#/components/schemas/endDate" }, "executionRule": { "$ref": "#/components/schemas/executionRule" }, "frequency": { "$ref": "#/components/schemas/frequencyCode" }, "dayOfExecution": { "$ref": "#/components/schemas/dayOfExecution" } } }, "paymentInitiationStatusResponse-200_json": { "description": "Body of the response for a successful payment initiation status request in case of an JSON based endpoint.", "type": "object", "required": [ "transactionStatus" ], "properties": { "transactionStatus": { "$ref": "#/components/schemas/transactionStatus" }, "fundsAvailable": { "$ref": "#/components/schemas/fundsAvailable" }, "psuMessage": { "$ref": "#/components/schemas/psuMessageText" }, "_links": { "$ref": "#/components/schemas/_linksPaymentInitiationStatus" }, "tppMessage": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessageGeneric" }, "description": "Messages to the TPP on operational issues." } } }, "paymentInitiationStatusResponse-200_xml": { "description": "Body of the response for a successful payment initiation status request in case of an XML based endpoint.\n\nThe status is returned as a pain.002 structure. \n\nurn:iso:std:iso:20022:tech:xsd:pain.002.001.03\n\nThe chosen XML schema of the status request is following the XML schema definitions of the original pain.001 schema.\n", "type": "string" }, "paymentInitiationStatusResponse-202_json": { "description": "Body of the response for a successful payment initiation status request in case of an JSON based endpoint.", "type": "object", "required": [ "transactionStatus", "tppMessage" ], "properties": { "transactionStatus": { "$ref": "#/components/schemas/transactionStatus" }, "fundsAvailable": { "$ref": "#/components/schemas/fundsAvailable" }, "psuMessage": { "$ref": "#/components/schemas/psuMessageText" }, "_links": { "$ref": "#/components/schemas/_linksPaymentInitiationStatus" }, "tppMessage": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessageInitiationStatusResponse-202" }, "description": "Messages to the TPP on operational issues." } } }, "paymentInitationRequestResponse-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 initation JSON body together with an optional transaction status field.\n", "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 initation JSON body together with an optional transaction status field.\n", "type": "object", "required": [ "debtorAccount", "instructedAmount", "creditorAccount", "creditorName", "startDate", "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" }, "endDate": { "$ref": "#/components/schemas/endDate" }, "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 initation JSON body together with an optional transaction status field.\n", "type": "object", "required": [ "payments", "debtorAccount" ], "properties": { "batchBookingPreferred": { "$ref": "#/components/schemas/batchBookingPreferred" }, "requestedExecutionDate": { "type": "string", "format": "date" }, "acceptorTransactionDateTime": { "type": "string", "format": "date-time" }, "debtorAccount": { "$ref": "#/components/schemas/accountReference" }, "paymentInformationId": { "type": "string", "maxLength": "35" }, "payments": { "description": "A list of generic JSON bodies payment initations for bulk payments via JSON.\n\nNote: Some fields from single payments do not occcur in a bulk payment element\n", "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" }, "psuMessage": { "$ref": "#/components/schemas/psuMessageText" }, "trustedBeneficiaryFlag": { "$ref": "#/components/schemas/trustedBeneficiaryFlag" }, "_links": { "$ref": "#/components/schemas/_linksAll" }, "tppMessage": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessageGeneric" }, "description": "Messages to the TPP on operational issues." } } }, "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" }, "scaMethods": { "$ref": "#/components/schemas/scaMethods" }, "chosenScaMethod": { "$ref": "#/components/schemas/chosenScaMethod" }, "challengeData": { "$ref": "#/components/schemas/challengeData" }, "_links": { "$ref": "#/components/schemas/_linksStartScaProcess" }, "psuMessage": { "$ref": "#/components/schemas/psuMessageText" } } }, "authorisationConfirmationResponse": { "description": "Body of the JSON response for an authorisation confirmation request.", "type": "object", "required": [ "scaStatus", "_links" ], "properties": { "scaStatus": { "$ref": "#/components/schemas/scaStatusAuthorisationConfirmation" }, "_links": { "$ref": "#/components/schemas/_linksAuthorisationConfirmation" }, "psuMessage": { "$ref": "#/components/schemas/psuMessageText" } } }, "updatePsuIdenticationResponse": { "description": "Body of the JSON response for a successful update PSU identification request.", "type": "object", "required": [ "_links", "scaStatus" ], "properties": { "transactionFees": { "$ref": "#/components/schemas/amount" }, "currencyConversionFees": { "$ref": "#/components/schemas/amount" }, "estimatedTotalAmount": { "$ref": "#/components/schemas/amount" }, "estimatedInterbankSettlementAmount": { "$ref": "#/components/schemas/amount" }, "scaMethods": { "$ref": "#/components/schemas/scaMethods" }, "_links": { "$ref": "#/components/schemas/_linksUpdatePsuIdentification" }, "scaStatus": { "$ref": "#/components/schemas/scaStatus" }, "psuMessage": { "$ref": "#/components/schemas/psuMessageText" } } }, "updatePsuAuthenticationResponse": { "description": "Body of the JSON response for a successful update PSU authentication request.", "type": "object", "required": [ "scaStatus" ], "properties": { "transactionFees": { "$ref": "#/components/schemas/amount" }, "currencyConversionFees": { "$ref": "#/components/schemas/amount" }, "estimatedTotalAmount": { "$ref": "#/components/schemas/amount" }, "estimatedInterbankSettlementAmount": { "$ref": "#/components/schemas/amount" }, "chosenScaMethod": { "$ref": "#/components/schemas/chosenScaMethod" }, "challengeData": { "$ref": "#/components/schemas/challengeData" }, "scaMethods": { "$ref": "#/components/schemas/scaMethods" }, "_links": { "$ref": "#/components/schemas/_linksUpdatePsuAuthentication" }, "scaStatus": { "$ref": "#/components/schemas/scaStatus" }, "psuMessage": { "$ref": "#/components/schemas/psuMessageText" }, "authorisationId": { "$ref": "#/components/schemas/authorisationId" } } }, "selectPsuAuthenticationMethodResponse": { "description": "Body of the JSON response for a successful select PSU authentication method request.", "type": "object", "required": [ "scaStatus" ], "properties": { "transactionFees": { "$ref": "#/components/schemas/amount" }, "currencyConversionFees": { "$ref": "#/components/schemas/amount" }, "estimatedTotalAmount": { "$ref": "#/components/schemas/amount" }, "estimatedInterbankSettlementAmount": { "$ref": "#/components/schemas/amount" }, "chosenScaMethod": { "$ref": "#/components/schemas/chosenScaMethod" }, "challengeData": { "$ref": "#/components/schemas/challengeData" }, "_links": { "$ref": "#/components/schemas/_linksSelectPsuAuthenticationMethod" }, "scaStatus": { "$ref": "#/components/schemas/scaStatus" }, "psuMessage": { "$ref": "#/components/schemas/psuMessageText" } } }, "signingBasketResponse-200": { "description": "Body of the JSON response for a successful get signing basket request.\n\n * 'payments': payment initiations which shall be authorised through this signing basket.\n * 'consents': consent objects which shall be authorised through this signing basket.\n * 'transactionStatus': Only the codes RCVD, ACTC, RJCT are used.\n * '_links': The ASPSP might integrate hyperlinks to indicate next (authorisation) steps to be taken.\n", "type": "object", "required": [ "transactionStatus" ], "properties": { "payments": { "$ref": "#/components/schemas/paymentIdList" }, "consents": { "$ref": "#/components/schemas/consentIdList" }, "transactionStatus": { "$ref": "#/components/schemas/transactionStatus_SBS" }, "_links": { "$ref": "#/components/schemas/_linksSigningBasket" } } }, "signingBasketStatusResponse-200": { "type": "object", "required": [ "transactionStatus" ], "properties": { "transactionStatus": { "$ref": "#/components/schemas/transactionStatus_SBS" } } }, "signingBasketResponse-201": { "description": "Body of the JSON response for a successful create signing basket request.", "type": "object", "required": [ "transactionStatus", "basketId", "_links" ], "properties": { "transactionStatus": { "$ref": "#/components/schemas/transactionStatus_SBS" }, "basketId": { "$ref": "#/components/schemas/basketId" }, "scaMethods": { "$ref": "#/components/schemas/scaMethods" }, "chosenScaMethod": { "$ref": "#/components/schemas/chosenScaMethod" }, "challengeData": { "$ref": "#/components/schemas/challengeData" }, "_links": { "$ref": "#/components/schemas/_linksSigningBasket" }, "psuMessage": { "$ref": "#/components/schemas/psuMessageText" }, "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage2XX" } } } }, "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" } } }, "readCardAccountBalanceResponse-200": { "description": "Body of the response for a successful read balance for a card account request.", "type": "object", "required": [ "balances" ], "properties": { "cardAccount": { "$ref": "#/components/schemas/accountReference" }, "debitAccounting": { "$ref": "#/components/schemas/debitAccounting" }, "balances": { "$ref": "#/components/schemas/balanceList" } } }, "transactionsResponse-200_json": { "description": "Body of the JSON response for a successful read transaction list request.\nThis account report contains transactions resulting from the query parameters.\n", "type": "object", "properties": { "account": { "$ref": "#/components/schemas/accountReference" }, "transactions": { "$ref": "#/components/schemas/accountReport" }, "balances": { "$ref": "#/components/schemas/balanceList" }, "_links": { "$ref": "#/components/schemas/_linksDownload" } } }, "cardAccountsTransactionsResponse200": { "description": "Body of the JSON response for a successful read card account transaction list request.\nThis card account report contains transactions resulting from the query parameters.\n", "type": "object", "properties": { "cardAccount": { "$ref": "#/components/schemas/accountReference" }, "debitAccounting": { "$ref": "#/components/schemas/debitAccounting" }, "cardTransactions": { "$ref": "#/components/schemas/cardAccountReport" }, "balances": { "$ref": "#/components/schemas/balanceList" }, "_links": { "$ref": "#/components/schemas/_linksDownload" } } }, "camt.052": { "description": "camt.052 XML message.\n", "type": "string" }, "camt.053": { "description": "camt.053 XML message.\n", "type": "string" }, "camt.054": { "description": "camt.054 XML message.\n", "type": "string" }, "mt940": { "description": "Data MT940 format in a text structure. \n", "type": "string" }, "mt942": { "description": "Data MT942 format in a text structure.\n", "type": "string" }, "_linksAll": { "description": "A _link object with all available link types.\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "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\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.\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "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.\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "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\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 cancalation 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'\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "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" } } }, "_linksUpdatePsuIdentification": { "description": "A list of hyperlinks to be recognised by the TPP. The actual hyperlinks used in the response 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 \ndefined extensions):\n\n- 'scaStatus': The link to retrieve the scaStatus of the corresponding authorisation sub-resource.\n- 'selectAuthenticationMethod': This is a link to a resource, where the TPP can select the applicable second factor authentication methods for the PSU, if there are several available authentication methods and if the PSU is already sufficiently authenticated.. If this link is contained, then there is also the data element \"scaMethods\" contained in the response body.\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "properties": { "scaStatus": { "$ref": "#/components/schemas/hrefType" }, "selectAuthenticationMethod": { "$ref": "#/components/schemas/hrefType" } } }, "_linksUpdatePsuAuthentication": { "description": "A list of hyperlinks to be recognised by the TPP. Might be contained, if several authentication methods \nare available for the PSU.\nType of links admitted in this response:\n * 'updateAdditionalPsuAuthentication':\n The link to the payment initiation or account information resource, \n which needs to be updated by an additional PSU password. \n This link is only contained in rare cases, \n where such additional passwords are needed for PSU authentications.\n * 'updateAdditionalEncryptedPsuAuthentication': \n The link to the payment initiation or account information resource, \n which needs to be updated by an additional encrypted PSU password. \n This link is only contained in rare cases, where such additional passwords are needed for PSU authentications.\n * 'selectAuthenticationMethod': \n This is a link to a resource, where the TPP can select the applicable second factor authentication \n methods for the PSU, if there were several available authentication methods. \n This link is only contained, if the PSU is already identified or authenticated with the first relevant \n factor or alternatively an access token, if SCA is required and if the PSU has a choice between different \n authentication methods. \n If this link is contained, then there is also the data element 'scaMethods' contained in the response body.\n * 'authoriseTransaction': \n The link to the resource, where the \"Transaction authorisation request\" is sent to. \n This is the link to the resource which will authorise the transaction by checking the SCA authentication \n data within the Embedded SCA approach.\n * 'scaStatus': \n The link to retrieve the scaStatus of the corresponding authorisation sub-resource.\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "properties": { "updateAdditionalPsuAuthentication": { "$ref": "#/components/schemas/hrefType" }, "updateAdditionalEncryptedPsuAuthentication": { "$ref": "#/components/schemas/hrefType" }, "selectAuthenticationMethod": { "$ref": "#/components/schemas/hrefType" }, "authoriseTransaction": { "$ref": "#/components/schemas/hrefType" }, "scaStatus": { "$ref": "#/components/schemas/hrefType" } } }, "_linksSelectPsuAuthenticationMethod": { "description": "A list of hyperlinks to be recognised by the TPP. The actual hyperlinks used in \nthe response 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\n**Remark:** This method can be applied before or after PSU identification. \nThis leads to many possible hyperlink responses.\nType of links admitted in this response, (further links might be added for ASPSP defined \nextensions):\n\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 \n configuration of the Authorisation Server can be retrieved. \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- 'updatePsuIdentification': \n The link to the authorisation or cancellation authorisation sub-resource, \n where PSU identification data needs to be uploaded.\n- 'updatePsuAuthentication':\n The link to the authorisation or cancellation authorisation sub-resource, \n where PSU authentication data needs to be uploaded.\n - 'updateEncryptedPsuAuthentication':\n The link to the authorisation or cancellation authorisation sub-resource, \n where PSU authentication encrypted data needs to be uploaded.\n- 'updateAdditionalPsuAuthentication':\n The link to the payment initiation or account information resource, \n which needs to be updated by an additional PSU password. \n- 'updateAdditionalEncryptedPsuAuthentication': \n The link to the payment initiation or account information resource, \n which needs to be updated by an additional encrypted PSU password. \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.\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "properties": { "scaRedirect": { "$ref": "#/components/schemas/hrefType" }, "scaOAuth": { "$ref": "#/components/schemas/hrefType" }, "confirmation": { "$ref": "#/components/schemas/hrefType" }, "updatePsuIdentification": { "$ref": "#/components/schemas/hrefType" }, "updatePsuAuthentication": { "$ref": "#/components/schemas/hrefType" }, "updateAdditionalPsuAuthentication": { "$ref": "#/components/schemas/hrefType" }, "updateAdditionalEncryptedPsuAuthentication": { "$ref": "#/components/schemas/hrefType" }, "authoriseTransaction": { "$ref": "#/components/schemas/hrefType" }, "scaStatus": { "$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\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. \n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "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.\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "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.\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "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.\n\nLinks of type \"account\" and/or \"cardAccount\", depending on the nature of the consent.\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "properties": { "account": { "$ref": "#/components/schemas/hrefType" }, "card-account": { "$ref": "#/components/schemas/hrefType" } } }, "_linksSigningBasket": { "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\nRemark: All links can be relative or full links, to be decided by the ASPSP.\nType of links admitted in this response, (further links might be added for ASPSP defined \nextensions):\n\n * 'scaRedirect': \n In case of an SCA Redirect Approach, the ASPSP is transmitting the link to \n 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 \n the Authorisation Server can be retrieved. The configuration follows the \n OAuth 2.0 Authorisation Server Metadata specification.\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 \n has to be generated while uploading the PSU identification data.\n * 'startAuthorisationWithPsuAuthentication':\n The link to the authorisation end-point, where the authorisation sub-resource \n has to be generated while uploading the PSU authentication data.\n * 'startAuthorisationWithEncryptedPsuAuthentication':\n The link to the authorisation end-point, where the authorisation sub-resource has \n to be generated while uploading the encrypted PSU authentication data.\n * 'startAuthorisationWithAuthenticationMethodSelection':\n The link to the authorisation end-point, where the authorisation sub-resource \n has to be generated while 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 \n has to be generated while authorising the transaction e.g. by uploading an \n 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.\n", "type": "object", "properties": { "scaRedirect": { "$ref": "#/components/schemas/hrefType" }, "scaOAuth": { "$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" } } }, "_linksAccountReport": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "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" } } }, "_linksCardAccountReport": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "properties": { "cardAccount": { "$ref": "#/components/schemas/hrefType" }, "card": { "$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", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "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.\n\nLinks to \"balances\" and/or \"transactions\"\n\nThese links are only supported, when the corresponding consent has been already granted.\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "properties": { "balances": { "$ref": "#/components/schemas/hrefType" }, "transactions": { "$ref": "#/components/schemas/hrefType" } } }, "_linksAuthorisationConfirmation": { "description": "A list of hyperlinks to be recognised by the TPP. The actual hyperlinks used in the response 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 \ndefined extensions):\n\n- 'scaStatus': The link to retrieve the status of the corresponding transaction resource.\n", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/hrefType" }, "properties": { "scaStatus": { "$ref": "#/components/schemas/hrefType" } } }, "tppMessageCategory": { "description": "Category of the TPP message category.", "type": "string", "enum": [ "ERROR", "WARNING" ] }, "MessageCode2XX": { "description": "Message codes for HTTP Error codes 2XX.", "type": "string", "enum": [ "WARNING" ] }, "MessageCode202InitiationStatus": { "description": "Message codes for HTTP codes 202 to a Payment Initiation Status Request.", "type": "string", "enum": [ "FUNDS_NOT_AVAILABLE" ] }, "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" ] }, "MessageCode400_PIIS": { "description": "Message codes defined for PIIS 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", "CARD_INVALID", "NO_PIIS_ACTIVATION" ] }, "MessageCode400_SBS": { "description": "Message codes defined for signing baskets 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", "REFERENCE_MIX_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", "REQUIRED_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" ] }, "MessageCode401_SBS": { "description": "Message codes defined for signing baskets 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" ] }, "MessageCode403_SBS": { "description": "Message codes defined for signing baskets 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" ] }, "MessageCode404_SBS": { "description": "Message codes defined for signing baskets for HTTP Error code 404 (NOT FOUND).", "type": "string", "enum": [ "RESOURCE_UNKNOWN" ] }, "MessageCode405_PIS": { "description": "Message codes defined for payment cancelations PIS for HTTP Error code 405 (METHOD NOT ALLOWED).", "type": "string", "enum": [ "SERVICE_INVALID" ] }, "MessageCode405_PIS_CANC": { "description": "Message codes defined for payment cancelations PIS for HTTP Error code 405 (METHOD NOT ALLOWED).", "type": "string", "enum": [ "CANCELLATION_INVALID", "SERVICE_INVALID" ] }, "MessageCode405_AIS": { "description": "Message codes defined for AIS for HTTP Error code 405 (METHOD NOT ALLOWED).", "type": "string", "enum": [ "SERVICE_INVALID" ] }, "MessageCode405_PIIS": { "description": "Message codes defined for PIIS for HTTP Error code 405 (METHOD NOT ALLOWED).", "type": "string", "enum": [ "SERVICE_INVALID" ] }, "MessageCode405_SBS": { "description": "Message codes defined for SBS for HTTP Error code 405 (METHOD NOT ALLOWED).", "type": "string", "enum": [ "SERVICE_INVALID" ] }, "MessageCode406_AIS": { "description": "Message codes defined for AIS for HTTP Error code 406 (NOT ACCEPTABLE).", "type": "string", "enum": [ "REQUESTED_FORMATS_INVALID" ] }, "MessageCode409_AIS": { "description": "Message codes defined for AIS for HTTP Error code 409 (CONFLICT).", "type": "string", "enum": [ "STATUS_INVALID" ] }, "MessageCode409_PIS": { "description": "Message codes defined for PIS for HTTP Error code 409 (CONFLICT).", "type": "string", "enum": [ "STATUS_INVALID" ] }, "MessageCode409_PIIS": { "description": "Message codes defined for PIIS for HTTP Error code 409 (CONFLICT).", "type": "string", "enum": [ "STATUS_INVALID" ] }, "MessageCode409_SBS": { "description": "Message codes defined for signing baskets for HTTP Error code 409 (CONFLICT).", "type": "string", "enum": [ "REFERENCE_STATUS_INVALID", "STATUS_INVALID" ] }, "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/tppMessageCategory" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessageInitiationStatusResponse-202": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode202InitiationStatus" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage2XX": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode2XX" }, "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" } } }, "tppMessage400_PIIS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode400_PIIS" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage400_SBS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode400_SBS" }, "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" } } }, "tppMessage401_SBS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode401_SBS" }, "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" } } }, "tppMessage403_SBS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode403_SBS" }, "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" } } }, "tppMessage404_SBS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode404_SBS" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage405_PIS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode405_PIS" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage405_PIS_CANC": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode405_PIS_CANC" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage405_AIS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode405_AIS" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage405_PIIS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode405_PIIS" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage405_SBS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode405_SBS" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage409_PIS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode409_PIS" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage406_AIS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode406_AIS" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage409_AIS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode409_AIS" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage409_PIIS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode409_PIIS" }, "path": { "type": "string" }, "text": { "$ref": "#/components/schemas/tppMessageText" } } }, "tppMessage409_SBS": { "type": "object", "required": [ "category", "code" ], "properties": { "category": { "$ref": "#/components/schemas/tppMessageCategory" }, "code": { "$ref": "#/components/schemas/MessageCode409_SBS" }, "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" } } }, "tppErrorTitle": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "tppErrorDetail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "Error400_PIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 400 for PIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode400_PIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode400_PIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error400_AIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 400 for AIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode400_AIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode400_AIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error400_PIIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 400 for PIIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode400_PIIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode400_PIIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error400_SBS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 400 for signing baskets.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode400_SBS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode400_SBS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error401_PIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 401 for PIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode401_PIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode401_PIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error401_AIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 401 for AIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode401_AIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode401_AIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error401_PIIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 401 for PIIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode401_PIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode401_PIIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error401_SBS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 401 for signing baskets.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode401_SBS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode401_SBS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error403_PIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 403 for PIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode403_PIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode403_PIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error403_AIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 403 for AIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode403_AIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode403_AIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error403_PIIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 403 for PIIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode403_PIIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode403_PIIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error403_SBS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 403 for signing baskets.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode403_SBS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode403_SBS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error404_PIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 404 for PIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode404_PIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode404_PIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error404_AIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 404 for AIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode404_AIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode404_AIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error404_PIIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 404 for PIIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode404_PIIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode404_PIIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error404_SBS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 404 for signing baskets.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode404_SBS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode404_SBS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error405_PIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 405 for PIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode405_PIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode405_PIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error405_PIS_CANC": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 405 for a pament cancelation (PIS).\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode405_PIS_CANC" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode405_PIS_CANC" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error405_AIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 405 for AIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode405_AIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode405_AIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error405_PIIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 405 for PIIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode405_PIIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode405_PIIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error405_SBS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 405 for signing baskets.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode405_SBS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode405_SBS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error406_AIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 406 for AIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode406_AIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode406_AIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error409_PIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 409 for PIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode409_PIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode409_PIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error409_AIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 409 for AIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode409_AIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode409_AIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error409_PIIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 409 for PIIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode409_PIIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode409_PIIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error409_SBS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 409 for signing baskets.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode409_SBS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807].", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode409_SBS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error429_AIS": { "description": "Standardised definition of reporting error information according to [RFC7807] \nin case of a HTTP error code 429 for AIS.\n", "type": "object", "required": [ "type", "code" ], "properties": { "type": { "description": "A URI reference [RFC3986] that identifies the problem type. \nRemark For Future: These URI will be provided by NextGenPSD2 in future.\n", "type": "string", "format": "uri", "maxLength": "70" }, "title": { "description": "Short human readable description of error type. \nCould be in local language. \nTo be provided by ASPSPs.\n", "type": "string", "maxLength": "70" }, "detail": { "description": "Detailed human readable text specific to this instance of the error. \nXPath might be used to point to the issue generating the error in addition.\nRemark for Future: In future, a dedicated field might be introduced for the XPath.\n", "type": "string", "maxLength": "500" }, "code": { "$ref": "#/components/schemas/MessageCode429_AIS" }, "additionalErrors": { "description": "Array of Error Information Blocks.\n\nMight be used if more than one error is to be communicated\n", "type": "array", "items": { "description": "This is a data element to support the declaration of additional errors in the context of [RFC7807] \nin case of a HTTP error code 429 for. \n", "type": "object", "required": [ "code" ], "properties": { "title": { "$ref": "#/components/schemas/tppErrorTitle" }, "detail": { "$ref": "#/components/schemas/tppErrorDetail" }, "code": { "$ref": "#/components/schemas/MessageCode429_AIS" } } } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error400_NG_PIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage400_PIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error400_NG_AIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage400_AIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error400_NG_PIIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage400_PIIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error400_NG_SBS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage400_SBS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error401_NG_PIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage401_PIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error401_NG_AIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage401_AIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error401_NG_PIIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage401_PIIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error401_NG_SBS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage401_SBS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error403_NG_PIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage403_PIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error403_NG_AIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage403_AIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error403_NG_PIIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage403_PIIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error403_NG_SBS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage403_SBS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error404_NG_PIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage404_PIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error404_NG_AIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage404_AIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error404_NG_PIIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage404_PIIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error404_NG_SBS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage404_SBS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error405_NG_PIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage405_PIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error405_NG_PIS_CANC": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage405_PIS_CANC" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error405_NG_AIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage405_AIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error405_NG_PIIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage405_PIIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error405_NG_SBS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage405_SBS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error406_NG_AIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 406.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage406_AIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } } }, "Error409_NG_PIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 409.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage409_PIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } }, "example": [ { "category": "ERROR", "code": "STATUS_INVALID", "text": "additional text information of the ASPSP up to 500 characters" } ] }, "Error409_NG_AIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 409.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage409_AIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } }, "example": [ { "category": "ERROR", "code": "STATUS_INVALID", "text": "additional text information of the ASPSP up to 500 characters" } ] }, "Error409_NG_PIIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 409.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage409_PIIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } }, "example": [ { "category": "ERROR", "code": "STATUS_INVALID", "text": "additional text information of the ASPSP up to 500 characters" } ] }, "Error409_NG_SBS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 409.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage409_SBS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } }, "example": [ { "category": "ERROR", "code": "STATUS_INVALID", "text": "additional text information of the ASPSP up to 500 characters" } ] }, "Error429_NG_AIS": { "description": "NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 429.\n", "type": "object", "properties": { "tppMessages": { "type": "array", "items": { "$ref": "#/components/schemas/tppMessage429_AIS" } }, "_links": { "$ref": "#/components/schemas/_linksAll" } }, "example": [ { "category": "ERROR", "code": "ACCESS_EXCEEDED", "text": "additional text information of the ASPSP up to 500 characters" } ] } }, "parameters": { "paymentService": { "name": "payment-service", "in": "path", "description": "Payment service:\n\nPossible values are:\n* payments\n* bulk-payments\n* periodic-payments\n", "required": "true", "schema": { "type": "string", "enum": [ "payments", "bulk-payments", "periodic-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 - sepa-credit-transfers\n - instant-sepa-credit-transfers\n - target-2-payments\n - cross-border-credit-transfers\n - pain.001-sepa-credit-transfers\n - pain.001-instant-sepa-credit-transfers\n - pain.001-target-2-payments\n - pain.001-cross-border-credit-transfers\n\n**Remark:** For all SEPA Credit Transfer based endpoints which accept XML encoding, \nthe XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. \nFurther XML schemes might be supported by some communities.\n\n**Remark:** For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. \nThere are plenty of country specificic scheme variants.\n", "required": "true", "schema": { "type": "string", "enum": [ "sepa-credit-transfers", "cross-border-credit-transfers", "pain.001-sepa-credit-transfers", "pain.001-instant-sepa-credit-transfers", "pain.001-target-2-payments", "pain.001-cross-border-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. \nThe account-id is retrieved by using a \"Read Account List\" or \"Read Card Account list\" call. \nThe account-id is the \"resourceId\" attribute of the account structure. \nIts value is constant at least throughout the lifecycle of a given consent.\n", "required": "true", "schema": { "$ref": "#/components/schemas/accountId" } }, "transactionId": { "name": "transactionId", "in": "path", "description": "This identification is given by the attribute transactionId of the corresponding entry of a transaction list.\n", "required": "true", "schema": { "$ref": "#/components/schemas/transactionId" } }, "basketId_PATH": { "name": "basketId", "in": "path", "description": "This identification of the corresponding signing basket object.\n", "required": "true", "schema": { "$ref": "#/components/schemas/basketId" } }, "consentId_PATH": { "name": "consentId", "in": "path", "description": "ID of the corresponding consent object as returned by an account information consent request.\n", "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.\nThis then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.\n", "required": "false", "schema": { "$ref": "#/components/schemas/consentId" } }, "Authorization": { "name": "Authorization", "in": "header", "description": "This field might be used in case where a consent was agreed between ASPSP and PSU through an OAuth2 based protocol, \nfacilitated by the TPP.\n", "required": "false", "schema": { "$ref": "#/components/schemas/authorization" } }, "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.\n", "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, \nif granted by the PSU in the related consent and available by the ASPSP. \nThis parameter might be ignored by the ASPSP. \n", "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\nand if bookingStatus does not equal \"information\".\n\nFor booked transactions, the relevant date is the booking date. \n\nFor pending transactions, the relevant date is the entry date, which may not be transparent \nneither in this API nor other channels of the ASPSP.\n", "required": "false", "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. \n\nMight be ignored if a delta function is used.\n\nFor booked transactions, the relevant date is the booking date. \n\nFor pending transactions, the relevant date is the entry date, which may not be transparent \nneither in this API nor other channels of the ASPSP.\n", "required": "false", "schema": { "type": "string", "format": "date" } }, "entryReferenceFrom": { "name": "entryReferenceFrom", "in": "query", "description": "This data attribute is indicating that the AISP is in favour to get all transactions after \nthe transaction with identification entryReferenceFrom alternatively to the above defined period. \nThis is a implementation of a delta access. \nIf this data element is contained, the entries \"dateFrom\" and \"dateTo\" might be ignored by the ASPSP \nif a delta report is supported.\n\nOptional if supported by API provider.\n", "required": "false", "schema": { "type": "string" } }, "bookingStatusGeneric": { "name": "bookingStatus", "in": "query", "description": "Permitted codes are \n * \"booked\",\n * \"pending\", \n * \"both\",\n * \"information\" and\n * \"all\"\n\"booked\" shall be supported by the ASPSP.\nTo support the \"pending\" and \"both\" feature is optional for the ASPSP, \nError code if not supported in the online banking frontend.\nIf supported, \"both\" means to request transaction reports of transaction of bookingStatus either \"pending\" or \"booked\".\nTo support the \"information\" feature is optional for the ASPSP. Currently the booking status ?information? only covers standing orders. Error code if not supported.\nTo support the \"all\" feature is optional for the ASPSP, Error code if not supported. If supported, \"all\" means to request transaction reports of transaction of any bookingStatus (\"pending\", \"booked\" or \"information\").\n", "required": "true", "schema": { "type": "string", "enum": [ "information", "booked", "pending", "both", "all" ] } }, "bookingStatusCard": { "name": "bookingStatus", "in": "query", "description": "Permitted codes are \n * \"booked\",\n * \"pending\", \n * \"both\",\n\"booked\" shall be supported by the ASPSP.\nTo support the \"pending\" and \"both\" feature is optional for the ASPSP, \nError code if not supported in the online banking frontend.\nIf supported, \"both\" means to request transaction reports of transaction of bookingStatus either \"pending\" or \"booked\".\n", "required": "true", "schema": { "type": "string", "enum": [ "booked", "pending", "both" ] } }, "deltaList": { "name": "deltaList", "in": "query", "description": "This data attribute is indicating that the AISP is in favour to get all transactions after the last report access for this PSU on the addressed account. This is another implementation of a delta access-report.\nThis delta indicator might be rejected by the ASPSP if this function is not supported.\nOptional if supported by API provider", "schema": { "type": "boolean" } }, "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" } }, "Digest": { "name": "Digest", "in": "header", "description": "Is contained if and only if the \"Signature\" element is contained in the header of the request.", "schema": { "type": "string" }, "required": "false", "example": "SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=" }, "Signature": { "name": "Signature", "in": "header", "description": "A signature of the request by the TPP on application level. This might be mandated by ASPSP.\n", "schema": { "type": "string" }, "required": "false", "example": "keyId=\"SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE\",algorithm=\"rsa-sha256\", headers=\"Digest X-Request-ID PSU-ID TPP-Redirect-URI Date\", signature=\"Base64(RSA-SHA256(signing string))\"\n" }, "TPP-Signature-Certificate": { "name": "TPP-Signature-Certificate", "in": "header", "description": "The certificate used for signing the request, in base64 encoding. \nMust be contained if a signature is contained.\n", "schema": { "type": "string", "format": "byte" }, "required": "false" }, "TPP-Redirect-Preferred": { "name": "TPP-Redirect-Preferred", "in": "header", "description": "If it equals \"true\", the TPP prefers a redirect over an embedded SCA approach.\nIf it equals \"false\", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled\nSCA approach, depending on the parameter TPP-Decoupled-Preferred and the choice of the SCA procedure by the TPP/PSU.\nIf the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the\nTPP/PSU.\n", "schema": { "type": "boolean" }, "required": "false" }, "TPP-Decoupled-Preferred": { "name": "TPP-Decoupled-Preferred", "in": "header", "description": "If it equals \"true\", the TPP prefers a decoupled SCA approach. \nIf it equals \"false\", the TPP prefers not to use the decoupled approach for SCA. The ASPSP will then choose between the embedded or the redirect SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. \nIf the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the parameter TPP-Redirect-Preferred and the SCA method chosen by the TPP/PSU. \nThe parameter might be ignored by the ASPSP.\nIf both parameters TPP-Redirect-Preferred and TPP-Decoupled-Preferred are present and true, the request is still not rejected, but it is up to the ASPSP, which approach will actually be used.\n\n**Remark for Future:** \nTPP-Redirect-Preferred and TPP-Decoupled-Preferred will be revised in future versions, maybe merged. Currently kept separate for downward compatibility.\n", "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.\n\nMandated for the Redirect SCA Approach, specifically \nwhen TPP-Redirect-Preferred equals \"true\".\nIt is recommended to always use this header field.\n\n**Remark for Future:** \nThis field might be changed to mandatory in the next version of the specification.\n", "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\nof a negative result of the redirect SCA method. This might be ignored by the ASPSP.\n", "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, \ne.g. because of the usage of a signing basket. \nThis preference might be ignored by the ASPSP, if a signing basket is not supported as functionality.\n\nIf it equals \"false\" or if the parameter is not used, there is no preference of the TPP. \nThis especially indicates that the TPP assumes a direct authorisation of the transaction in the next step, \nwithout using a signing basket.\n", "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 \nproviding an integrated confirmation of funds request an the result of this is that not sufficient \nfunds are available.\n\nIf it equals \"false\" then the TPP prefers that the ASPSP is dealing with the payment initiation like \nin the ASPSPs online channel, potentially waiting for a certain time period for funds to arrive to initiate the payment.\n\nThis parameter might be ignored by the ASPSP.\n", "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. \nThis information is meant for logging entries to enhance communication between ASPSP and PSU or ASPSP and TPP. \nThis header might be ignored by the ASPSP.\n", "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\nURIs 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.\n", "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\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.\n", "schema": { "type": "string" }, "required": "false" }, "PSU-ID": { "name": "PSU-ID", "in": "header", "description": "Client ID of the PSU in the ASPSP client interface. \n\nMight be mandated in the ASPSP's documentation.\n\nIt might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding\nAIS service in the same session.\nIn this case the ASPSP might check whether PSU-ID and token match, \naccording to ASPSP documentation.\n", "schema": { "type": "string" }, "required": "false", "example": "PSU-1234" }, "PSU-ID-Type": { "name": "PSU-ID-Type", "in": "header", "description": "Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.\n\nIn this case, the mean and use are then defined in the ASPSP?s documentation.\n", "schema": { "type": "string" }, "required": "false" }, "PSU-Corporate-ID": { "name": "PSU-Corporate-ID", "in": "header", "description": "Might be mandated in the ASPSP's documentation. Only used in a corporate context.\n", "schema": { "type": "string" }, "required": "false" }, "PSU-Corporate-ID-Type": { "name": "PSU-Corporate-ID-Type", "in": "header", "description": "Might be mandated in the ASPSP's documentation. Only used in a corporate context.\n", "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.\nIf not available, the TPP shall use the IP Address used by the TPP when submitting this request.\n", "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.\n", "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 \nIP Address field between PSU and TPP. \nIt shall be contained if and only if this request was actively initiated by the PSU.\n", "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.\n", "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.\n", "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.\n", "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.\n", "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.\n", "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.\n", "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\n", "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.\nUUID identifies either a device or a device dependant application installation.\nIn case of an installation identification this ID needs to be unaltered until removal from device.\n", "schema": { "type": "string", "format": "uuid" }, "required": "false", "example": "99435c7e-ad88-49ec-a2ad-99ddcb1f5555" }, "PSU-Geo-Location": { "name": "PSU-Geo-Location", "in": "header", "description": "The forwarded Geo Location of the corresponding http request between PSU and TPP if available.\n", "schema": { "type": "string", "pattern": "GEO:-?[0-9]{1,2}\\.[0-9]{6};-?[0-9]{1,3}\\.[0-9]{6}" }, "required": "false", "example": "GEO:52.506931;13.144558" } }, "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 * \"cross-border-credit-transfers\" with JSON-Body\n Only country specific schemes are currently available\n * \"pain.001-credit-transfers\" with pain.001 body. \n Only country specific schemes are currently available\n \nThere are the following payment-services supported:\n * \"payments\"\n * \"bulk-paments\"\n\nAll optional, conditional and predefined but not yet used fields are defined.\n", "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" } } }, "application/xml": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/paymentInitiationSct_pain.001" }, { "$ref": "#/components/schemas/paymentInitiationSctInst_pain.001" }, { "$ref": "#/components/schemas/paymentInitiationTarget2_pain.001" }, { "$ref": "#/components/schemas/paymentInitiationCrossBorder_pain.001" } ] }, "examples": { "Example 1: 'payments' - 'pain.001-sepa-credit-transfers'": { "$ref": "#/components/examples/pain.001.001_SCT_singleTransaction" } } }, "multipart/form-data": { "schema": { "$ref": "#/components/schemas/periodicPaymentInitiationMultipartBody" } } } }, "signingBasket": { "description": "Request body for a confirmation of an establishing signing basket request\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/signingBasket" }, "examples": { "Example": { "$ref": "#/components/examples/signingBasketExample" } } } } }, "confirmationOfFunds": { "description": "Request body for a confirmation of funds request.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/confirmationOfFunds" }, "examples": { "Example": { "$ref": "#/components/examples/confirmationOfFundsExample" } } } }, "required": "true" }, "consents": { "description": "Request body for a consents request.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/consents" }, "examples": { "Consent Request on Dedicated Accounts": { "$ref": "#/components/examples/consentsExample_DedicatedAccounts" }, "Consent on Account List of Available Accounts": { "$ref": "#/components/examples/consentsExample_AccountList" }, "Consent Request on Account List or without Indication of dedicated Accounts": { "$ref": "#/components/examples/consentsExample_without_Accounts" } } } } } }, "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.\n", "schema": { "type": "string", "enum": [ "EMBEDDED", "DECOUPLED", "REDIRECT" ], "example": "EMBEDDED" }, "required": "false" }, "Location": { "description": "Location of the created resource.\n", "schema": { "type": "string", "format": "url" }, "required": "false" }, "ASPSP-Multiple-Consent-Support": { "description": "true if the ASPSP supports the Multiple Consent Service.\n\nfalse if the ASPSP does not support the Multiple Consent Service.\n\nIf not provided, this also implies that the ASPSP does not support the Multiple Consent Service.\n", "schema": { "type": "boolean" }, "required": "false" }, "ASPSP-Notification-Support": { "description": "true if the ASPSP supports resource status notification services.\n\nfalse if the ASPSP supports resource status notification in general, but not for the current request.\n\nNot used, if resource status notification services are generally not supported by the ASPSP.\n\nShall be supported if the ASPSP supports resource status notification services.\n", "schema": { "type": "boolean" }, "required": "false" }, "ASPSP-Notification-Content": { "description": "The string has the form\nstatus=X1, ?, Xn\nwhere Xi is one of the constants SCA, PROCESS, LAST and where constants are not repeated.\nThe usage of the constants supports the following semantics\nSCA - Notification on every change of the scaStatus attribute for all related authorisation processes is provided by the ASPSP for the related resource.\nPROCESS - Notification on all changes of consentStatus or transactionStatus attributes is provided by the ASPSP for the related resource\nLAST - Notification on the last consentStatus or transactionStatus as available in the XS2A interface is provided by the ASPSP for the related resource.\nThis field must be provided if the ASPSP-Notification-Support=true. The ASPSP might consider the notification content as preferred by the TPP, but can also respond independently of the preferred request \n", "schema": { "type": "string" }, "required": "false" } }, "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" } ] } }, "application/xml": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/paymentInitiationSct_pain.001" }, { "$ref": "#/components/schemas/paymentInitiationSctInst_pain.001" }, { "$ref": "#/components/schemas/paymentInitiationTarget2_pain.001" }, { "$ref": "#/components/schemas/paymentInitiationCrossBorder_pain.001" } ] }, "examples": { "Example 1: 'payments' - 'pain.001-sepa-credit-transfers'": { "$ref": "#/components/examples/pain.001.001_SCT_singleTransaction" } } }, "multipart/form-data": { "schema": { "$ref": "#/components/schemas/periodicPaymentInitiationMultipartBody" } } } }, "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" }, "extended": { "$ref": "#/components/examples/paymentInitiationStatusResponse_json_Extended" } } }, "application/xml": { "schema": { "$ref": "#/components/schemas/paymentInitiationStatusResponse-200_xml" }, "examples": { "Payment Initiation Status Response Body XML for SCT": { "$ref": "#/components/examples/pain.002.001_SCT_singleTransaction" } } } } }, "OK_202_PaymentInitiationStatus": { "description": "OK", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/paymentInitiationStatusResponse-202_json" }, "examples": { "simple": { "$ref": "#/components/examples/paymentInitiationStatusResponse_json_Simple" }, "extended": { "$ref": "#/components/examples/paymentInitiationStatusResponse_json_Extended" } } }, "application/xml": { "schema": { "$ref": "#/components/schemas/paymentInitiationStatusResponse-200_xml" }, "examples": { "Payment Initiation Status Response Body XML for SCT": { "$ref": "#/components/examples/pain.002.001_SCT_singleTransaction" } } } } }, "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" } } } }, "OK_200_AccountList": { "description": "OK", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/accountList" }, "examples": { "Example 1": { "$ref": "#/components/examples/accountListExample1" }, "Example 2": { "$ref": "#/components/examples/accountListExample2" }, "Example 3": { "$ref": "#/components/examples/accountListExample3" } } } } }, "OK_200_CardAccountList": { "description": "OK", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cardAccountList" }, "examples": { "Example 1": { "$ref": "#/components/examples/cardAccountListExample1" } } } } }, "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" }, "Multicurrency Account": { "$ref": "#/components/examples/accountDetailsMulticurrencyAccount" } } } } }, "OK_200_CardAccountDetails": { "description": "OK", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "cardAccount" ], "properties": { "cardAccount": { "$ref": "#/components/schemas/cardAccountDetails" } } }, "examples": { "Card Account": { "$ref": "#/components/examples/cardAccountDetailsExample" } } } } }, "OK_200_TransactionDetails": { "description": "OK", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "transactionsDetails" ], "properties": { "transactionsDetails": { "$ref": "#/components/schemas/transactionDetailsBody" } } }, "examples": { "Example": { "$ref": "#/components/examples/transactionDetailsExample" } } } } }, "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": { "Example 1: Regular Account": { "$ref": "#/components/examples/balancesExample1_RegularAccount" }, "Example 2: Multicurrency Account": { "$ref": "#/components/examples/balancesExample2_MulticurrencyAcount" }, "Example 3:": { "$ref": "#/components/examples/balancesExample3_RegularAccount" } } } } }, "OK_200_CardAccountBalances": { "description": "OK", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/readCardAccountBalanceResponse-200" }, "examples": { "Example:": { "$ref": "#/components/examples/balancesExample_CardAccount" } } } } }, "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": { "Example 1": { "$ref": "#/components/examples/transactionsExample1_RegularAccount_json" }, "Example 2": { "$ref": "#/components/examples/transactionsExample2_Download_json" }, "Example 3": { "$ref": "#/components/examples/transactionsExample3_MulticurrencyAccount_json" } } }, "application/xml": { "schema": { "description": "Body of the XML response for a successful read transaction list request.\nThe body has the structure of a either a camt.052 or camt.053 message.\nThe camt.052 may include pending payments which are not yet finally booked. The ASPSP will decide on the format due to the chosen parameters, specifically on the chosen dates relative to the time of the request. In addition the ASPSP might offer camt.054x structure e.g. in a corporate setting.", "oneOf": [ { "$ref": "#/components/schemas/camt.052" }, { "$ref": "#/components/schemas/camt.053" }, { "$ref": "#/components/schemas/camt.054" } ] } }, "text/plain": { "schema": { "description": "Body of the Text response for a successful read transaction list request.\nThe body has the structure of a MT94x message.\nThe response body consists of an MT940 or MT942 format in a text structure. The MT942 may include pending payments which are not yet finally booked. The ASPSP will decide on the format due to the chosen parameters, specifically on the chosen dates relative to the time of the request.", "oneOf": [ { "$ref": "#/components/schemas/mt940" }, { "$ref": "#/components/schemas/mt942" } ] } } } }, "OK_200_CardAccountsTransactions": { "description": "OK", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cardAccountsTransactionsResponse200" } } } }, "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_UpdatePsuData": { "description": "OK", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" }, "ASPSP-SCA-Approach": { "$ref": "#/components/headers/ASPSP-SCA-Approach" } }, "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/updatePsuIdenticationResponse" }, { "$ref": "#/components/schemas/updatePsuAuthenticationResponse" }, { "$ref": "#/components/schemas/selectPsuAuthenticationMethodResponse" }, { "$ref": "#/components/schemas/scaStatusResponse" }, { "$ref": "#/components/schemas/authorisationConfirmationResponse" } ] }, "examples": { "Update PSU identification - payment pnitiation (Decoupled Approach)": { "$ref": "#/components/examples/updatePsuIdentificationResponseExample_Decoupled_payments" }, "Update PSU authentication - payment pnitiation (Embedded Approach)": { "$ref": "#/components/examples/updatePsuAuthenticationResponseExample_Embedded_payments" }, "Select PSU authentication - payment initiation method (Embedded Approach)": { "$ref": "#/components/examples/selectPsuAuthenticationMethodResponseExample_Embedded_payments" }, "Transaction authorisation (Embedded Approach)": { "$ref": "#/components/examples/transactionAuthorisationResponseExample" }, "Authorisation confirmation": { "$ref": "#/components/examples/authorisationConfirmationResponseExample" } } } } }, "OK_200_GetSigningBasket": { "description": "OK", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/signingBasketResponse-200" }, "examples": { "Example": { "$ref": "#/components/examples/getSigningBasketResponseExample1" } } } } }, "OK_200_SigningBasketStatus": { "description": "OK", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/signingBasketStatusResponse-200" } } } }, "OK_200_ConfirmationOfFunds": { "description": "OK", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "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, \n\"false\" otherwise.\n", "type": "object", "required": [ "fundsAvailable" ], "properties": { "fundsAvailable": { "$ref": "#/components/schemas/fundsAvailable" } } }, "examples": { "Example": { "$ref": "#/components/examples/confirmationOfFundsResponseExample" } } } } }, "CREATED_201_SigningBasket": { "description": "Created", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" }, "ASPSP-SCA-Approach": { "$ref": "#/components/headers/ASPSP-SCA-Approach" }, "ASPSP-Notification-Support": { "$ref": "#/components/headers/ASPSP-Notification-Support" }, "ASPSP-Notification-Content": { "$ref": "#/components/headers/ASPSP-Notification-Content" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/signingBasketResponse-201" }, "examples": { "Response (always with explicit authorization start)": { "$ref": "#/components/examples/createSigningBasketResponseExample1" } } } } }, "CREATED_201_PaymentInitiation": { "description": "CREATED", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" }, "Location": { "$ref": "#/components/headers/Location" }, "ASPSP-SCA-Approach": { "$ref": "#/components/headers/ASPSP-SCA-Approach" }, "ASPSP-Notification-Support": { "$ref": "#/components/headers/ASPSP-Notification-Support" }, "ASPSP-Notification-Content": { "$ref": "#/components/headers/ASPSP-Notification-Content" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/paymentInitationRequestResponse-201" }, "examples": { "Response in case of a redirect with an implicitly created authorisation sub-resource": { "$ref": "#/components/examples/paymentInitiationExample_json_Redirect" }, "Response in case of a redirect where an explicit authorisation start is needed": { "$ref": "#/components/examples/paymentInitiationExample_json__RedirectExplicitAuthorisation" }, "Response in case of an OAuth2 SCA approach approach with implicitly creating an authorisation sub-resource": { "$ref": "#/components/examples/paymentInitiationExample_json_OAuth2" }, "Response in case of the decoupled approach with explicit start of authorisation needed (will be done with the update PSU identification function)": { "$ref": "#/components/examples/paymentInitiationExample_json_Decoupled" }, "Response in case of the embedded approach with explicit start of authorisation": { "$ref": "#/components/examples/paymentInitiationExample_json_Embedded" } } } } }, "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 1: payments - Decoupled Approach": { "$ref": "#/components/examples/startScaProcessResponseExample1" } } } } }, "CREATED_201_Consents": { "description": "Created", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" }, "ASPSP-SCA-Approach": { "$ref": "#/components/headers/ASPSP-SCA-Approach" }, "ASPSP-Notification-Support": { "$ref": "#/components/headers/ASPSP-Notification-Support" }, "ASPSP-Notification-Content": { "$ref": "#/components/headers/ASPSP-Notification-Content" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/consentsResponse-201" }, "examples": { "Response in case of a redirect": { "$ref": "#/components/examples/consentResponseExample1a_Redirect" }, "Response in case of a redirect with a dedicated start of the authorisation process": { "$ref": "#/components/examples/consentResponseExample1b_Redirect" }, "Response in case of the OAuth2 approach with an implicit generated authorisation resource": { "$ref": "#/components/examples/consentResponseExample2_OAuth2" }, "Response in case of the decoupled approach": { "$ref": "#/components/examples/consentResponseExample3_Decoupled" }, "Response in case of the embedded approach": { "$ref": "#/components/examples/consentResponseExample4_Embedded" } } } } }, "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" } } } } }, "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" } } }, "NO_CONTENT_204_SigningBasket": { "description": "No Content", "headers": { "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "BAD_REQUEST_400_AIS": { "description": "Bad Request", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error400_NG_AIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error400_AIS" } } } }, "BAD_REQUEST_400_PIS": { "description": "Bad Request", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error400_NG_PIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error400_PIS" } } } }, "BAD_REQUEST_400_PIIS": { "description": "Bad Request", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error400_NG_AIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error400_AIS" } } } }, "BAD_REQUEST_400_SBS": { "description": "Bad Request", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error400_NG_SBS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error400_SBS" } } } }, "UNAUTHORIZED_401_PIS": { "description": "Unauthorized", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error401_NG_PIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error401_PIS" } } } }, "UNAUTHORIZED_401_AIS": { "description": "Unauthorized", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error401_NG_AIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error401_AIS" } } } }, "UNAUTHORIZED_401_PIIS": { "description": "Unauthorized", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error401_NG_PIIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error401_PIIS" } } } }, "UNAUTHORIZED_401_SBS": { "description": "Unauthorized", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error401_NG_SBS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error401_SBS" } } } }, "FORBIDDEN_403_PIS": { "description": "Forbidden", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error403_NG_PIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error403_PIS" } } } }, "FORBIDDEN_403_AIS": { "description": "Forbidden", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error403_NG_AIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error403_AIS" } } } }, "FORBIDDEN_403_PIIS": { "description": "Forbidden", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error403_NG_PIIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error403_PIIS" } } } }, "FORBIDDEN_403_SBS": { "description": "Forbidden", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error403_NG_SBS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error403_SBS" } } } }, "NOT_FOUND_404_PIS": { "description": "Not found", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error404_NG_PIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error404_PIS" } } } }, "NOT_FOUND_404_AIS": { "description": "Not found", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error404_NG_AIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error404_AIS" } } } }, "NOT_FOUND_404_PIIS": { "description": "Not found", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error404_NG_PIIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error404_PIIS" } } } }, "NOT_FOUND_404_SBS": { "description": "Not found", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error404_NG_SBS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error404_SBS" } } } }, "METHOD_NOT_ALLOWED_405_PIS": { "description": "Method Not Allowed", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error405_NG_PIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error405_PIS" } } } }, "METHOD_NOT_ALLOWED_405_PIS_CANC": { "description": "Method Not Allowed", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error405_NG_PIS_CANC" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error405_PIS_CANC" } } } }, "METHOD_NOT_ALLOWED_405_AIS": { "description": "Method Not Allowed", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error405_NG_AIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error405_AIS" } } } }, "METHOD_NOT_ALLOWED_405_PIIS": { "description": "Method Not Allowed", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error405_NG_PIIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error405_PIIS" } } } }, "METHOD_NOT_ALLOWED_405_SBS": { "description": "Method Not Allowed", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error405_NG_SBS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error405_SBS" } } } }, "NOT_ACCEPTABLE_406_PIS": { "description": "Not Acceptable", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "NOT_ACCEPTABLE_406_AIS": { "description": "Not Acceptable", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error406_NG_AIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error406_AIS" } } } }, "NOT_ACCEPTABLE_406_PIIS": { "description": "Not Acceptable", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "NOT_ACCEPTABLE_406_SBS": { "description": "Not Acceptable", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "REQUEST_TIMEOUT_408_PIS": { "description": "Request Timeout", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "REQUEST_TIMEOUT_408_AIS": { "description": "Request Timeout", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "REQUEST_TIMEOUT_408_PIIS": { "description": "Request Timeout", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "REQUEST_TIMEOUT_408_SBS": { "description": "Request Timeout", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "CONFLICT_409_PIS": { "description": "Conflict", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error409_NG_PIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error409_PIS" } } } }, "CONFLICT_409_AIS": { "description": "Conflict", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error409_NG_AIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error409_AIS" } } } }, "CONFLICT_409_PIIS": { "description": "Conflict", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error409_NG_PIIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error409_PIIS" } } } }, "CONFLICT_409_SBS": { "description": "Conflict", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error409_NG_SBS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error409_SBS" } } } }, "UNSUPPORTED_MEDIA_TYPE_415_AIS": { "description": "Unsupported Media Type", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "UNSUPPORTED_MEDIA_TYPE_415_PIS": { "description": "Unsupported Media Type", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "UNSUPPORTED_MEDIA_TYPE_415_PIIS": { "description": "Unsupported Media Type", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "UNSUPPORTED_MEDIA_TYPE_415_SBS": { "description": "Unsupported Media Type", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "TOO_MANY_REQUESTS_429_PIS": { "description": "Too Many Requests", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "TOO_MANY_REQUESTS_429_AIS": { "description": "Too Many Requests", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error429_NG_AIS" } }, "application/problem+json": { "schema": { "$ref": "#/components/schemas/Error429_AIS" } } } }, "TOO_MANY_REQUESTS_429_PIIS": { "description": "Too Many Requests", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "TOO_MANY_REQUESTS_429_SBS": { "description": "Too Many Requests", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "INTERNAL_SERVER_ERROR_500_PIS": { "description": "Internal Server Error", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "INTERNAL_SERVER_ERROR_500_AIS": { "description": "Internal Server Error", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "INTERNAL_SERVER_ERROR_500_PIIS": { "description": "Internal Server Error", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "INTERNAL_SERVER_ERROR_500_SBS": { "description": "Internal Server Error", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "SERVICE_UNAVAILABLE_503_PIS": { "description": "Service Unavailable", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "SERVICE_UNAVAILABLE_503_AIS": { "description": "Service Unavailable", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "SERVICE_UNAVAILABLE_503_PIIS": { "description": "Service Unavailable", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } }, "SERVICE_UNAVAILABLE_503_SBS": { "description": "Service Unavailable", "headers": { "Location": { "$ref": "#/components/headers/Location" }, "X-Request-ID": { "$ref": "#/components/headers/X-Request-ID" } } } }, "examples": { "ibanExampleDe_01": { "value": "DE02100100109307118603" }, "ibanExampleDe_02": { "value": "DE23100120020123456789" }, "ibanExampleDe_03": { "value": "DE40100100103307118608" }, "ibanExampleDe_04": { "value": "DE67100100101306118605" }, "ibanExampleDe_05": { "value": "DE87200500001234567890" }, "ibanExampleFr_01": { "value": "FR7612345987650123456789014" }, "ibanExampleNl_01": { "value": "NL76RABO0359400371" }, "ibanExampleSe_01": { "value": "SE9412309876543211234567" }, "maskedPanExample": { "value": "123456xxxxxx1234" }, "uuidExample": { "value": "99391c7e-ad88-49ec-a2ad-99ddcb1f7721" }, "pain.001.001_SCT_singleTransaction": { "description": "A pain.001.001.03 message in case of SCT", "value": "\n \n \n MIPI-123456789RI-123456789\n 2017-02-14T20:23:34.000Z\n 1\n 123\n \n PaymentInitiator\n DE10000000012\n PISP\n \n \n \n BIPI-123456789RI-123456789\n TRF \n 1\n 123\n SEPA\n 2017-02-15\n PSU Name\n DE87200500001234567890\n SLEV\n \n RI-123456789 \n 123\n Merchant123\n DE23100120020123456789\n Ref Number Merchant-123456\n \n \n \n\n" }, "pain.002.001_SCT_singleTransaction": { "description": "A pain.002.001.03 message in case of SCT", "value": "\n \n \n 4572457256725689726906\n 2017-02-14T20:24:56.021Z\n ABCDDEFF\n DCBADEFF\n \n \n MIPI-123456789RI-123456789\n pain.001.001.03\n 2017-02-14T20:23:34.000Z\n 1\n 123\n ACCT\n \n \n BIPI-123456789RI-123456789\n 1\n 123\n ACCT\n \n \n\n" }, "paymentInitiationSctBody_payments_json": { "value": { "instructedAmount": { "currency": "EUR", "amount": "123.50" }, "debtorAccount": { "iban": "DE40100100103307118608" }, "creditorName": "Merchant123", "creditorAccount": { "iban": "DE02100100109307118603" }, "remittanceInformationUnstructured": "Ref Number Merchant" } }, "paymentInitiationSctBody_periodic-payments_json": { "value": { "instructedAmount": { "currency": "EUR", "amount": "123" }, "debtorAccount": { "iban": "DE40100100103307118608" }, "creditorName": "Merchant123", "creditorAccount": { "iban": "DE23100120020123456789" }, "remittanceInformationUnstructured": "Ref Number Abonnement", "startDate": "2018-03-01", "executionRule": "preceding", "frequency": "Monthly", "dayOfExecution": "01" } }, "paymentInitiationSctBody_bulk-payments_json": { "value": { "batchBookingPreferred": "true", "debtorAccount": { "iban": "DE40100100103307118608" }, "paymentInformationId": "my-bulk-identification-1234", "requestedExecutionDate": "2018-08-01", "payments": [ { "instructedAmount\"": { "currency": "EUR", "amount": "123.50" }, "creditorName": "Merchant123", "creditorAccount": { "iban": "DE02100100109307118603" }, "remittanceInformationUnstructured": "Ref Number Merchant 1" }, { "instructedAmount\"": { "currency": "EUR", "amount": "34.10" }, "creditorName": "Merchant456", "creditorAccount": { "iban": "FR7612345987650123456789014" }, "remittanceInformationUnstructured": "Ref Number Merchant 2" } ] } }, "accountDetailsRegularAccount": { "description": "Account details for a regular Account.", "value": { "account": { "resourceId": "3dc3d5b3-7023-4848-9853-f5400a64e80f", "iban": "FR7612345987650123456789014", "currency": "EUR", "ownerName": "Heike Mustermann", "product": "Girokonto", "cashAccountType": "CACC", "name": "Main Account", "_links": { "balances": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/balances" }, "transactions": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions" } } } } }, "accountDetailsMulticurrencyAccount": { "description": "Account details for a multicurrency account.", "value": { "account": { "resourceId": "3dc3d5b3-7023-4848-9853-f5400a64e80f", "iban": "FR7612345987650123456789014", "currency": "XXX", "ownerName": "Heike Mustermann", "product": "Multicurrency Account", "cashAccountType": "CACC", "name": "Aggregation Account", "_links": { "balances": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/balances" }, "transactions": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions" } } } } }, "accountListExample1": { "summary": "Account list Example 1", "description": "Response in case of an example, where the consent has been given on two different IBANs.", "value": { "accounts": [ { "resourceId": "3dc3d5b3-7023-4848-9853-f5400a64e80f", "iban": "DE2310010010123456789", "currency": "EUR", "product": "Girokonto", "cashAccountType": "CACC", "name": "Main Account", "_links": { "balances": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/balances" }, "transactions": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions" } } }, { "resourceId": "3dc3d5b3-7023-4848-9853-f5400a64e81e", "iban": "DE2310010010123456788", "currency": "USD", "product": "Fremdw?hrungskonto", "cashAccountType": "CACC", "name": "US Dollar Account", "_links": { "balances": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81e/balances" } } } ] } }, "accountListExample2": { "summary": "Account list Example 2", "description": "Response in case of an example where consent on transactions and balances has been given to a multicurrency account which has two sub-accounts with currencies EUR and USD, and where the ASPSP is giving the data access only on sub-account level.\n", "value": { "accounts": [ { "resourceId": "3dc3d5b3-7023-4848-9853-f5400a64e80f", "iban": "DE2310010010123456788", "currency": "EUR", "product": "Girokonto", "cashAccountType": "CACC", "name": "Main Account", "_links": { "balances": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/balances" }, "transactions": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions" } } }, { "resourceId": "3dc3d5b3-7023-4848-9853-f5400a64e81e", "iban": "DE2310010010123456788", "currency": "USD", "product": "Fremdw?hrungskonto", "cashAccountType": "CACC", "name": "US Dollar Account", "_links": { "balances": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81e/balances" }, "transactions": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81e/transactions" } } } ] } }, "accountListExample3": { "summary": "Account list Example 3", "description": "Account list response in case of an example where consent on balances and transactions has been given to \na multicurrency account which has two sub-accounts with currencies EUR and USD and where the ASPSP is giving \nthe data access on aggregation level and on sub-account level.\n", "value": { "accounts": [ { "resourceId": "3dc3d5b3-7023-4848-9853-f5400a64e80f", "iban": "DE2310010010123456788", "currency": "XXX", "product": "Multi currency account", "cashAccountType": "CACC", "name": "Aggregation Account", "_links": { "balances": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e333/balances" }, "transactions": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e333/transactions" } } }, { "resourceId": "3dc3d5b3-7023-4848-9853-f5400a64e80e", "iban": "DE2310010010123456788", "currency": "EUR", "product": "Girokonto", "cashAccountType": "CACC", "name": "Main Account", "_links": { "balances": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80e/balances" }, "transactions": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80e/transactions" } } }, { "resourceId": "3dc3d5b3-7023-4848-9853-f5400a64e81d", "iban": "DE2310010010123456788", "currency": "USD", "product": "Fremdw?hrungskonto", "cashAccountType": "CACC", "name": "US Dollar Account", "_links": { "balances": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81d/balances" }, "transactions": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81d/transactions" } } } ] } }, "cardAccountListExample1": { "summary": "Card account list example 1", "description": "Card account list example.\n", "value": { "cardAccounts": [ { "resourceId": "3d9a81b3-a47d-4130-8765-a9c0ff861b99", "maskedPan": "525412******3241", "currency": "EUR", "name": "Main", "product": "Basic Credit", "status": "enabled", "creditLimit": { "currency": "EUR", "amount": "15000" }, "balances": [ { "balanceType": "interimBooked", "balanceAmount": { "currency": "EUR", "amount": "14355.78" } }, { "balanceType": "nonInvoiced", "balanceAmount": { "currency": "EUR", "amount": "4175.86" } } ], "_links": { "transactions": { "href": "/psd2/v1/card-accounts/3d9a81b3-a47d-4130-8765-a9c0ff861b99/transactions" } } } ] } }, "cardAccountDetailsExample": { "summary": "Card account details example 1", "description": "Card account details example.\n", "value": { "cardAccount": { "resourceId": "3d9a81b3-a47d-4130-8765-a9c0ff861b99", "maskedPan": "525412******3241", "currency": "EUR", "debitAccounting": "true", "ownerName": "Heike Mustermann", "name": "Main", "product": "Basic Credit", "status": "enabled", "creditLimit": { "currency": "EUR", "amount": "15000" }, "balances": [ { "balanceType": "interimBooked", "balanceAmount": { "currency": "EUR", "amount": "14355.78" } }, { "balanceType": "nonInvoiced", "balanceAmount": { "currency": "EUR", "amount": "4175.86" } } ], "_links": { "transactions": { "href": "/psd2/v1/card-accounts/3d9a81b3-a47d-4130-8765-a9c0ff861b99/transactions" } } } } }, "startScaProcessResponseExample1": { "value": { "scaStatus": "received", "authorisationId": "123auth456", "psuMessage": "Please use your BankApp for transaction Authorisation.", "_links": { "scaStatus": { "href": "/v1/payments/qwer3456tzui7890/authorisations/123auth456" } } } }, "signingBasketExample": { "description": "JSON Body of a signing basket request", "value": { "paymentIds": [ "123qwert456789", "12345qwert7899" ] } }, "createSigningBasketResponseExample1": { "description": "Response (always with explicit authorisation start).", "value": { "transactionStatus": "RCVD", "basketId": "1234-basket-567", "_links": { "self": { "href": "/psd2/v1/signing-baskets/1234-basket-567" }, "status": { "href": "/psd2/v1/signing-baskets/1234-basket-567/status" }, "startAuthorisation": { "href": "/psd2/v1/signing-baskets/1234-basket-567/authorisations" } } } }, "getSigningBasketResponseExample1": { "value": { "payments": [ "1234pay567", "1234pay568", "1234pay888" ], "transactionStatus": "ACTC" } }, "consentsExample_DedicatedAccounts": { "description": "Consent request on dedicated accounts.", "value": { "access": { "balances": [ { "iban": "DE40100100103307118608" }, { "iban": "DE02100100109307118603", "currency": "USD" }, { "iban": "DE67100100101306118605" } ], "transactions": [ { "iban": "DE40100100103307118608" }, { "maskedPan": "123456xxxxxx1234" } ] }, "recurringIndicator": "true", "validUntil": "2017-11-01", "frequencyPerDay": "4" } }, "consentsExample_AccountList": { "description": "Consent on account list of available accounts.", "value": { "access": { "availableAccounts": "allAccounts" }, "recurringIndicator": "false", "validUntil": "2017-08-06", "frequencyPerDay": "1" } }, "consentsExample_without_Accounts": { "description": "Consent request on account list or without indication of accounts.", "value": { "access": { "balances": [], "transactions": [] }, "recurringIndicator": "true", "validUntil": "2017-11-01", "frequencyPerDay": "4" } }, "updatePsuAuthenticationExample_Embedded": { "description": "Update PSU authentication request body for the embedded approach.", "value": { "psuData": { "password": "start12" } } }, "selectPsuAuthenticationMethodExample_Embedded": { "description": "Select PSU authentication method request body for the embedded approach.", "value": { "authenticationMethodId": "myAuthenticationID" } }, "transactionAuthorisationExample_Embedded": { "description": "Transaction authorisation request body for the embedded approach.", "value": { "scaAuthenticationData": "123456" } }, "authorisationConfirmationExample_Redirect": { "description": "Authorisation confirmation request body for the redirect approach.", "value": { "confirmationCode": "2256ffgh" } }, "consentsInformationResponseExample": { "description": "Consent request on account list or without indication of accounts.", "value": { "access": { "balances": [ { "iban": "DE2310010010123456789" } ], "transactions": [ { "iban": "DE2310010010123456789" }, { "pan": "123456xxxxxx3457" } ] }, "recurringIndicator": "true", "validUntil": "2017-11-01", "frequencyPerDay": "4", "consentStatus": "valid", "_links": { "account": { "href": "/psd2/v1/accounts" } } } }, "consentResponseExample1a_Redirect": { "description": "Consent request response in case of a redirect.", "value": { "consentStatus": "received", "consentId": "1234-wertiq-983", "_links": { "scaRedirect": { "href": "https://www.testbank.com/authentication/1234-wertiq-983" }, "status": { "href": "/psd2/v1/consents/1234-wertiq-983/status" }, "scaStatus": { "href": "/psd2/v1/consents/1234-wertiq-983/authorisations/123auth567" } } } }, "consentResponseExample1b_Redirect": { "description": "Consent request response in case of a redirect with a dedicated start of the authorisation process.", "value": { "consentStatus": "received", "consentId": "1234-wertiq-983", "_links": { "startAuthorisation": { "href": "/psd2/v1/consents/1234-wertiq-983/authorisations" } } } }, "consentResponseExample2_OAuth2": { "description": "Response in case of the OAuth2 approach with an implicit generated authorisation resource.", "value": { "consentStatus": "received", "consentId": "1234-wertiq-983", "_links": { "self": { "href": "/psd2/v1/consents/1234-wertiq-983" }, "scaStatus": { "href": "/psd2/v1/consents/1234-wertiq-983/authorisations/123auth567" }, "scaOAuth": { "href": "https://www.testbank.com/oauth/.well-known/oauth-authorization-server" } } } }, "consentResponseExample3_Decoupled": { "description": "Response in case of the decoupled approach.", "value": { "consentStatus": "received", "consentId": "1234-wertiq-983", "_links": { "startAuthorisationWithPsuIdentification": { "href": "/psd2/v1/consents/1234-wertiq-983/authorisations" } } } }, "consentResponseExample4_Embedded": { "description": "Response in case of the embedded approach.", "value": { "consentStatus": "received", "consentId": "1234-wertiq-983", "_links": { "startAuthorisationWithPsuAuthentication": { "href": "/psd2/v1/consents/1234-wertiq-983/authorisations" } } } }, "consentStatusResponseExample1": { "description": "Response for a consent status request.", "value": { "consentStatus": "valid" } }, "paymentInitiationExample_json_Redirect": { "description": "Response in case of a redirect with an implicitly created authorisation sub-resource", "value": { "transactionStatus": "RCVD", "paymentId": "1234-wertiq-983", "_links": { "scaRedirect": { "href": "https://www.testbank.com/asdfasdfasdf" }, "self": { "href": "/psd2/v1/payments/sepa-credit-transfers/1234-wertiq-983" }, "status": { "href": "/psd2/v1/payments/1234-wertiq-983/status" }, "scaStatus": { "href": "/psd2/v1/payments/1234-wertiq-983/authorisations/123auth456" } } } }, "paymentInitiationExample_json__RedirectExplicitAuthorisation": { "description": "Response in case of a redirect with an explicit authorisation start", "value": { "transactionStatus": "RCVD", "paymentId": "1234-wertiq-983", "_links": { "self": { "href": "/psd2/v1/payments/1234-wertiq-983" }, "status": { "href": "/psd2/v1/payments/1234-wertiq-983/status" }, "startAuthorisation": { "href": "/psd2/v1/payments1234-wertiq-983/authorisations" } } } }, "paymentInitiationExample_json_OAuth2": { "description": "Response in case of an OAuth2 SCA approach approach with implicitly creating an authorisation sub-resource", "value": { "transactionStatus": "RCVD", "paymentId": "1234-wertiq-983", "_links": { "scaOAuth": { "href": "https://www.testbank.com/oauth/.well-known/oauth-authorization-server" }, "self": { "href": "/psd2/v1/payments/1234-wertiq-983" }, "status": { "href": "/psd2/v1/payments/1234-wertiq-983/status" }, "scaStatus": { "href": "/psd2/v1/payments/1234-wertiq-983/authorisations/123auth456" } } } }, "paymentInitiationExample_json_Decoupled": { "description": "Response in case of the decoupled approach with explicit start of authorisation needed", "value": { "transactionStatus": "RCVD", "paymentId": "1234-wertiq-983", "_links": { "startAuthorisationWithPsuIdentification": { "href": "/v1/payments/1234-wertiq-983/authorisations" }, "self": { "href": "/psd2/v1/payments/1234-wertiq-983" } } } }, "paymentInitiationExample_json_Embedded": { "description": "Response in case of the embedded approach with explicit start of authorisation", "value": { "transactionStatus": "RCVD", "paymentId": "1234-wertiq-983", "_links": { "startAuthenticationWithPsuAuthentication": { "href": "/psd2/v1/payments/1234-wertiq-983/authorisations" }, "self": { "href": "/psd2/v1/payments/1234-wertiq-983" } } } }, "paymentInitiationStatusResponse_json_Simple": { "value": { "transactionStatus": "ACCP" } }, "paymentInitiationCancelResponse-202": { "value": { "transactionStatus": "ACTC", "_links": { "self": { "href": "/psd2/v1/payments/123456scheduled789" }, "status": { "href": "/psd2/v1/payments/123456scheduled789/status" }, "startAuthorisation": { "href": "/psd2/v1/payments/123456scheduled789/cancellation-authorisations" } } } }, "paymentInitiationStatusResponse_json_Extended": { "value": "{ \n \"transactionStatus\": \"ACCP\",\n \"scaStatus\": \"received\"\n}\n" }, "updatePsuIdentificationResponseExample_Decoupled_payments": { "description": "Response of an update PSU identification for a payment initiation request for the decoupled approach.", "value": { "scatransactionStatus": "psuIdentified", "psuMessage": "Please use your BankApp for transaction Authorisation.", "_links": { "scaStatus": { "href": "/v1/payments/qwer3456tzui7890/authorisations/123auth456" } } } }, "updatePsuAuthenticationResponseExample_Embedded_payments": { "description": "Response of an update PSU authentication for a consent request for the embedded approach.", "value": { "scaStatus": "psuAuthenticated", "_links": { "authoriseTransaction": { "href": "/psd2/v1/payments/1234-wertiq-983/authorisations/123auth456" } } } }, "selectPsuAuthenticationMethodResponseExample_Embedded_payments": { "description": "Response of a select PSU authentication method payment initiation request for the embedded approach", "value": { "scaStatus": "scaMethodSelected", "chosenScaMethod": { "authenticationType": "SMS_OTP", "authenticationMethodId": "myAuthenticationID" }, "challengeData": { "otpMaxLength": "6", "otpFormat": "integer" }, "_links": { "authoriseTransaction": { "href": "/psd2/v1/payments/1234-wertiq-983/authorisations/123auth456" } } } }, "transactionAuthorisationResponseExample": { "description": "Response of a Transaction Authorisation request for the embedded approach.", "value": { "scaStatus": "finalised" } }, "authorisationConfirmationResponseExample": { "description": "Response of an authorisation confirmation request.", "value": { "scaStatus": "finalised", "_links": { "status": { "href": "/v1/payments/sepa-credit-transfers/qwer3456tzui7890/status" } } } }, "confirmationOfFundsExample": { "description": "Request body for a confirmation of funds.", "value": { "cardNumber": "12345678901234", "account": { "iban": "DE23100120020123456789" }, "instructedAmount": { "currency": "EUR", "amount": "123" } } }, "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": "closingBooked", "referenceDate": "2017-10-25" }, { "balanceAmount": { "currency": "EUR", "amount": "900.00" }, "balanceType": "expected", "lastChangeDateTime": "2017-10-25T15:30:35.035Z" } ] } }, "balancesExample2_MulticurrencyAcount": { "description": "Response in case of a multicurrency account with one account in EUR, \none in USD, where the ASPSP has delivered a link to the balance endpoint relative to the aggregated \nmulticurrency account (aggregation level).\n", "value": { "balances": [ { "balanceAmount": { "currency": "EUR", "amount": "500.00" }, "balanceType": "closingBooked", "referenceDate": "2017-10-25" }, { "balanceAmount": { "currency": "EUR", "amount": "900.00" }, "balanceType": "expected", "lastChangeDateTime": "2017-10-25T15:30:35.035Z" }, { "balanceAmount": { "currency": "USD", "amount": "350.00" }, "balanceType": "closingBooked", "referenceDate": "2017-10-25" }, { "balanceAmount": { "currency": "USD", "amount": "350.00" }, "balanceType": "expected", "lastChangeDateTime": "2017-10-24T14:30:21Z" } ] } }, "balancesExample3_RegularAccount": { "description": "Response in case of a regular account where the corresponding balances in the online channel is reported independently from account statements with fixed dates, i.e. always displaying running balance for current time.", "value": { "balances": [ { "balanceAmount": { "currency": "EUR", "amount": "1000.00" }, "balanceType": "interimBooked" }, { "balanceAmount": { "currency": "EUR", "amount": "300.00" }, "balanceType": "interimAvailable" }, { "balanceAmount": { "currency": "EUR", "amount": "5300.00" }, "balanceType": "interimAvailable", "creditLimitIncluded": "true" } ] } }, "balancesExample_CardAccount": { "description": "Response in case of card account balance request.\n", "value": { "cardAccount": { "maskedPan": "525412******3241" }, "balances": [ { "debitAccounting": "true" }, { "balanceType": "interimBooked", "balanceAmount": { "currency": "EUR", "amount": "14355.78" } }, { "balanceType": "nonInvoiced", "balanceAmount": { "currency": "EUR", "amount": "4175.86" } } ] } }, "transactionsExample1_RegularAccount_json": { "description": "Response in JSON format for an access on a regular account.", "value": { "account": { "iban": "DE2310010010123456788" }, "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": "NL76RABO0359400371" }, "transactionAmount": { "currency": "EUR", "amount": "343.01" }, "bookingDate": "2017-10-25", "valueDate": "2017-10-26", "remittanceInformationUnstructured": "Example 2" } ], "pending": [ { "transactionId": "1234569", "creditorName": "Claude Renault", "creditorAccount": { "iban": "FR7612345987650123456789014" }, "transactionAmount": { "currency": "EUR", "amount": "-100.03" }, "valueDate": "2017-10-26", "remittanceInformationUnstructured": "Example 3" } ], "_links": { "account": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f" } } } } }, "transactionsExample2_Download_json": { "description": "Response in case of huge data amount as a download.", "value": { "_links": { "download": { "href": "www.test-api.com/xs2a/v1/accounts/12345678999/transactions/download/" } } } }, "transactionsExample3_MulticurrencyAccount_json": { "description": "Response in JSON format for an access on a multicurrency account on aggregation level", "value": { "account": { "iban": "DE40100100103307118608" }, "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": "NL76RABO0359400371" }, "transactionAmount": { "currency": "EUR", "amount": "343.01" }, "bookingDate": "2017-10-25", "valueDate": "2017-10-26", "remittanceInformationUnstructured": "Example 2" }, { "transactionId": "1234569", "debtorName": "Pepe Martin", "debtorAccount": { "iban": "SE9412309876543211234567" }, "transactionAmount": { "currency": "USD", "amount": "100" }, "bookingDate": "2017-10-25", "valueDate": "2017-10-26", "remittanceInformationUnstructured": "Example 3" } ], "pending": [ { "transactionId": "1234570", "creditorName": "Claude Renault", "creditorAccount": { "iban": "FR7612345987650123456789014" }, "transactionAmount": { "currency": "EUR", "amount": "-100.03" }, "valueDate": "2017-10-26", "remittanceInformationUnstructured": "Example 4" } ], "_links": { "account": { "href": "/psd2/v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f" } } } } }, "transactionDetailsExample": { "description": "Example for transaction details.", "value": { "transactionsDetails": { "transactionId": "1234567", "creditorName": "John Miles", "creditorAccount": { "iban": "DE67100100101306118605" }, "mandateId": "Mandate-2018-04-20-1234", "transactionAmount": { "currency": "EUR", "amount": "-256.67" }, "bookingDate": "2017-10-25", "valueDate": "2017-10-26", "remittanceInformationUnstructured": "Example 1", "bankTransactionCode": "PMNT-RDDT-ESDD" } } }, "authorisationListExample": { "value": { "authorisationIds": [ "123auth456" ] } } } }, "security": [ {} ], "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\n" }, { "name": "Confirmation of Funds Service (PIIS)", "description": "Confirmation of Funds Service (PIIS) returns a confirmation of funds request at the ASPSP.\n" }, { "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\n" }, { "name": "Signing Baskets Service (SBS)", "description": "Signing basket methods are used for authorising several transactions and resp. or consents with one SCA operation. \n" }, { "name": "Common Services", "description": "Processes on starting authorisations, update PSU identification or PSU authentication data and explicit \nauthorisation of transactions by using SCA are very similar in PIS and AIS and signing baskets services. \nThe API calls supporting these processes are described in the following independently from the service/endpoint. \nFor reasons of clarity, the endpoints are defined always for the Payment Initiation Service, the payment cancellation, \nthe Account Information Service (Consents), and Signing Baskets separately. \nThese processes usually are used following a hyperlink of the ASPSP. \n" } ] }