openapi: 3.0.1
info:
  title: Rietumu PSD2 API
  version: 1.0 / 10.09.2019
  description: |
    # Summary
    API based on 1.3 Berlin Group NextGenPSD2 and supports only the methods described in this documentation.

    The only one supported authentification method is **Redirect SCA approach**.

    Rietumu PSD2 **test** server address is **https://psd2test.rietumu.lv/PSD2_RestWeb/**

    Rietumu PSD2 **live** server address is **https://psd2api.rietumu.lv/**
    
    **Note:** To successfully verify authentification method via Redirect SCA approach, please make sure to use the User ID:T9999999 and the Password/Signature:111111 for both actions either consent and payment approval or for log in.


    **Remark:** Method **/v1/consents/{consentId}/authorisations** is not 
    implemented because related authorisation resource is created 
    automatically by ASPSP after the submission of the consent data 
    with the first POST consents call.

    # API versioning

    The specification of new version will be available at least **3 months** before the release. The older version will be available for **6 months** after release and then disabled.

    <table>
    <colgroup>
    <col width="20%" />
    <col width="80%" />
    </colgroup>
    <thead>
    <tr class="header">
    <th>API version</th>
    <th>Description</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td markdown="span">1.0</td>
    <td markdown="span">Baseline version</td>
    </tr
    </tbody>
    </table>

paths:
  "/v1/{payment-service}/{payment-product}":
    post:
      summary: Payment initiation request
      description: >
        This method is used to initiate a payment at the ASPSP.


        ## Payment Initiation Request


        This method to initiate a payment request at the ASPSP must be sent
        with ISO 20022 messaging XML body regardless on the payment
        product in the path.


        The following **payment product** is supported:

          - Payment products with payment information in XML format:
          
            - ***payment-transaction***

        Furthermore, the request body depends on the **payment-service**:
          * ***payments***: A single payment initiation request.
          

        This is the first step in the API to initiate the payment.
      operationId: initiatePayment
      tags:
        - Payment Initiation Service (PIS)
      parameters:
        - $ref: "#/components/parameters/paymentService"
        - $ref: "#/components/parameters/paymentProduct"
        - $ref: "#/components/parameters/X-Request-ID"
        - $ref: "#/components/parameters/Digest"
        - $ref: "#/components/parameters/Signature"
        - $ref: "#/components/parameters/TPP-Signature-Certificate"
        - $ref: "#/components/parameters/consentId_HEADER_optional"
        - $ref: "#/components/parameters/PSU-IP-Address_mandatory"
        - $ref: "#/components/parameters/TPP-Redirect-URI"
        - $ref: "#/components/parameters/TPP-Nok-Redirect-URI"
      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"
        "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: The method returns the content of a payment object.
      operationId: getPaymentInformation
      tags:
        - Payment Initiation Service (PIS)
      parameters:
        - $ref: "#/components/parameters/paymentService"
        - $ref: "#/components/parameters/paymentProduct"
        - $ref: "#/components/parameters/paymentId"
        - $ref: "#/components/parameters/X-Request-ID"
        - $ref: "#/components/parameters/Digest"
        - $ref: "#/components/parameters/Signature"
        - $ref: "#/components/parameters/TPP-Signature-Certificate"
      responses:
        "200":
          $ref: "#/components/responses/OK_200_PaymentInitiationInformation"
        "400":
          $ref: "#/components/responses/BAD_REQUEST_400_PIS"
        "401":
          $ref: "#/components/responses/UNAUTHORIZED_401_PIS"
        "403":
          $ref: "#/components/responses/FORBIDDEN_403_PIS"
        "404":
          $ref: "#/components/responses/NOT_FOUND_404_PIS"
        "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"
        "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)
      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"
      responses:
        "200":
          $ref: "#/components/responses/OK_200_PaymentInitiationStatus"
        "400":
          $ref: "#/components/responses/BAD_REQUEST_400_PIS"
        "401":
          $ref: "#/components/responses/UNAUTHORIZED_401_PIS"
        "403":
          $ref: "#/components/responses/FORBIDDEN_403_PIS"
        "404":
          $ref: "#/components/responses/NOT_FOUND_404_PIS"
        "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"
        "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":
    get:
      summary: Get Payment Initiation Authorisation Sub-Resources Request
      description: >
        Read a list of all authorisation subresources IDs which have been
        created.


        This function returns an array of hyperlinks to all generated
        authorisation sub-resources.
      operationId: getPaymentInitiationAuthorisation
      tags:
        - Payment Initiation Service (PIS)
      parameters:
        - $ref: "#/components/parameters/paymentService"
        - $ref: "#/components/parameters/paymentProduct"
        - $ref: "#/components/parameters/paymentId"
        - $ref: "#/components/parameters/X-Request-ID"
        - $ref: "#/components/parameters/Digest"
        - $ref: "#/components/parameters/Signature"
        - $ref: "#/components/parameters/TPP-Signature-Certificate"
      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"
        "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.
      operationId: getPaymentInitiationScaStatus
      tags:
        - Payment Initiation Service (PIS)
      parameters:
        - $ref: "#/components/parameters/paymentService"
        - $ref: "#/components/parameters/paymentProduct"
        - $ref: "#/components/parameters/paymentId"
        - $ref: "#/components/parameters/authorisationId"
        - $ref: "#/components/parameters/X-Request-ID"
        - $ref: "#/components/parameters/Digest"
        - $ref: "#/components/parameters/Signature"
        - $ref: "#/components/parameters/TPP-Signature-Certificate"
      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"
        "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 accounts together with 
        booking balance information, depending on the consent granted.


        It is assumed that a consent of the PSU to this access is already given
        and stored on the ASPSP system. 

        The addressed list of accounts depends then on the PSU ID and the stored
        consent addressed by consentId, respectively. 


        Returns all identifiers of the accounts, to which an account access has
        been granted to through the /consents endpoint by the PSU. 

        In addition, relevant information about the accounts and hyperlinks to
        corresponding account information resources are provided if a related consent has been already
        granted.


        **Remark**: Note that the /consents endpoint optionally offers to grant an
        access on all available payment accounts of a PSU. 

        In this case, this endpoint will deliver the information about all
        available payment accounts 

        of the PSU at this ASPSP.
      operationId: getAccountList
      tags:
        - Account Information Service (AIS)
      parameters:
        - $ref: "#/components/parameters/X-Request-ID"
        - $ref: "#/components/parameters/Digest"
        - $ref: "#/components/parameters/Signature"
        - $ref: "#/components/parameters/TPP-Signature-Certificate"
        - $ref: "#/components/parameters/consentId_HEADER_mandatory"
      responses:
        "200":
          $ref: "#/components/responses/OK_200_AccountList"
        "400":
          $ref: "#/components/responses/BAD_REQUEST_400_AIS"
        "401":
          $ref: "#/components/responses/UNAUTHORIZED_401_AIS"
        "403":
          $ref: "#/components/responses/FORBIDDEN_403_AIS"
        "404":
          $ref: "#/components/responses/NOT_FOUND_404_AIS"
        "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"
        "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. 

        It is assumed that a consent of the PSU to 
        this access is already given and stored on the ASPSP system. 

        The addressed details of this account depend then on the stored consent
        addressed by consentId, respectively.


        **NOTE:** The account-id can represent a multicurrency account. 

        In this case the currency code is set to "XXX".


        Gives detailed information about the addressed account.


        Gives detailed information about the addressed account together with
        balance information.
      operationId: readAccountDetails
      tags:
        - Account Information Service (AIS)
      parameters:
        - $ref: "#/components/parameters/accountId"
        - $ref: "#/components/parameters/X-Request-ID"
        - $ref: "#/components/parameters/Digest"
        - $ref: "#/components/parameters/Signature"
        - $ref: "#/components/parameters/TPP-Signature-Certificate"
        - $ref: "#/components/parameters/consentId_HEADER_mandatory"
      responses:
        "200":
          $ref: "#/components/responses/OK_200_AccountDetails"
        "400":
          $ref: "#/components/responses/BAD_REQUEST_400_AIS"
        "401":
          $ref: "#/components/responses/UNAUTHORIZED_401_AIS"
        "403":
          $ref: "#/components/responses/FORBIDDEN_403_AIS"
        "404":
          $ref: "#/components/responses/NOT_FOUND_404_AIS"
        "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"
        "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".

      operationId: getBalances
      tags:
        - Account Information Service (AIS)
      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"
      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"
        "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
        addressed by "account-id", depending on the steering parameter 
        "bookingStatus" together with balances.


        For a given account, additional parameters are e.g. the attributes
        "dateFrom" and "dateTo".

      operationId: getTransactionList
      tags:
        - Account Information Service (AIS)
      parameters:
        - $ref: "#/components/parameters/accountId"
        - $ref: "#/components/parameters/dateFrom"
        - $ref: "#/components/parameters/dateTo"
        - $ref: "#/components/parameters/entryReferenceFrom"
        - $ref: "#/components/parameters/bookingStatus"
        - $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"
      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"
        "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/{resourceId}":
    get:
      summary: Read Transaction Details
      description: >
        Reads transaction details from a given transaction addressed by
        "resourceId" on a given account addressed by "account-id". 


        **Remark:** Please note that the PATH might be already given in detail
        by the corresponding entry of the response of the 

        "Read Transaction List" call within the _links subfield.
      operationId: getTransactionDetails
      tags:
        - Account Information Service (AIS)
      parameters:
        - $ref: "#/components/parameters/accountId"
        - $ref: "#/components/parameters/resourceId"
        - $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"
      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"
        "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 creates a consent resource, defining access rights to
        dedicated accounts of a given PSU-ID. These accounts are addressed explicitly in the method
        as parameters as a core function.


        **Side Effects**: When this Consent Request is a request where the "recurringIndicator"
        equals "true", and if it exists already a former consent for recurring access on
        account information for the addressed PSU, then the former consent automatically expires as
        soon as the new consent request is authorised by the PSU.


        *We recognize the following consent request types*:
          * the non recurring one time list of available payment accounts
          * the request for dedicated accounts ( TPP supplies desired IBANs and access rights in request)
          * the request for accounts, but PSU will fill in the account lists in ASPSP's authorisation software
      operationId: createConsent
      tags:
        - Account Information Service (AIS)
      parameters:
        - $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-URI"
        - $ref: "#/components/parameters/TPP-Nok-Redirect-URI"
      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"
        "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. 

        This is returning the data for the TPP especially in cases, 

        where the consent was directly managed between ASPSP and PSU, e.g. in a
        re-direct SCA Approach.
      operationId: getConsentInformation
      tags:
        - Account Information Service (AIS)
      parameters:
        - $ref: "#/components/parameters/consentId_PATH"
        - $ref: "#/components/parameters/X-Request-ID"
        - $ref: "#/components/parameters/Digest"
        - $ref: "#/components/parameters/Signature"
      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"
        "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)
      parameters:
        - $ref: "#/components/parameters/consentId_PATH"
        - $ref: "#/components/parameters/X-Request-ID"
        - $ref: "#/components/parameters/Digest"
        - $ref: "#/components/parameters/Signature"
      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"
        "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)
      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"
      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"
        "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 specific IBAN address and TPP respectively.
      operationId: checkAvailabilityOfFunds
      tags:
        - Confirmation of Funds Service (PIIS)
      parameters:
        - $ref: "#/components/parameters/X-Request-ID"
        - $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"
        "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"
components:
  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.
      type: string
      maxLength: 35
      example: myAuthenticationID
    accountId:
      description: >-
        This identification is denoting the addressed account, where the
        transaction has been performed.
      type: string
      example: qwer3456tzui7890
    consentId:
      description: >
        ID of the corresponding consent object as returned by an Account
        Information Consent Request.
      type: string
    consentIdList:
      description: A list of consentIds
      type: array
      minItems: 1
      items:
        $ref: "#/components/schemas/consentId"
    resourceId:
      description: >
        This identification is given by the attribute resourceId of the
        corresponding entry of a transaction list.
      type: string
      example: 3dc3d5b3-7023-4848-9853-f5400a64e80f
    cancellationId:
      description: Identification for cancellation resource
      type: string
      example: 123auth456
    transactionStatus:
      description: |
        The transaction status is filled with codes of the ISO 20022 data table:
        - 'ACCC': 'AcceptedSettlementCompleted' -
          Settlement on the creditor's account has been completed.
        - 'ACCP': 'AcceptedCustomerProfile' - 
          Preceding check of technical validation was successful. 
          Customer profile check was also successful.
        - 'ACSC': 'AcceptedSettlementCompleted' - 
          Settlement on the debtor�s account has been completed.
          
          **Usage:** this can be used by the first agent to report to the debtor that the transaction has been completed. 
          
          **Warning:** this status is provided for transaction status reasons, not for financial information. 
          It can only be used after bilateral agreement.
        - 'ACSP': 'AcceptedSettlementInProcess' - 
          All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
        - 'ACTC': 'AcceptedTechnicalValidation' - 
          Authentication and syntactical and semantical validation are successful.
        - 'ACWC': 'AcceptedWithChange' - 
          Instruction is accepted but a change will be made, such as date or remittance not sent.
        - 'ACWP': 'AcceptedWithoutPosting' - 
          Payment instruction included in the credit transfer is accepted without being posted to the creditor customer�s account.
        - 'RCVD': 'Received' - 
          Payment initiation has been received by the receiving agent.
        - 'PDNG': 'Pending' - 
          Payment initiation or individual transaction included in the payment initiation is pending. 
          Further checks and status update will be performed.
        - 'RJCT': 'Rejected' - 
          Payment initiation or individual transaction included in the payment initiation has been rejected.
        - 'CANC': 'Cancelled'
          Payment initiation has been cancelled before execution
          Remark: This code is still requested from ISO20022.
        - 'ACFC': 'AcceptedFundsChecked' -
          Preceeding check of technical validation and customer profile was successful and an automatic funds check was positive .
          Remark: This code is still requested from ISO20022.
        - 'PATC': 'PartiallyAcceptedTechnical'
          Correct The payment initiation needs multiple authentications, where some but not yet all have been performed. Syntactical and semantical validations are successful.
          Remark: This code is still requested from ISO20022.
      type: string
      enum:
        - ACCC
        - ACCP
        - ACSC
        - ACSP
        - ACTC
        - ACWC
        - ACWP
        - RCVD
        - PDNG
        - RJCT
        - CANC
        - ACFC
        - PATC
      example: ACCP
    transactionStatus_SB:
      description: |
        The transaction status is filled with codes of the ISO 20022 data table.
        Only the codes RCVD, PATC, ACTC, ACWC and RJCT are used:
        - 'ACSP': 'AcceptedSettlementInProcess' - 
          All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.
        - 'ACTC': 'AcceptedTechnicalValidation' - 
          Authentication and syntactical and semantical validation are successful.
        - 'ACWC': 'AcceptedWithChange' - 
          Instruction is accepted but a change will be made, such as date or remittance not sent.
        - 'RCVD': 'Received' - 
          Payment initiation has been received by the receiving agent.
        - 'RJCT': 'Rejected' - 
          Payment initiation or individual transaction included in the payment initiation has been rejected.
      type: string
      enum:
        - ACSC
        - ACTC
        - ACWC
        - RCVD
        - RJCT
      example: RCVD
    scaStatus:
      description: >
        This data element is containing information about the status of the SCA
        method applied. 


        The following codes are defined for this data type.

          * 'received':
            An authorisation or cancellation-authorisation resource has been created successfully.
          * 'psuIdentified':
            The PSU related to the authorisation or cancellation-authorisation resource has been identified.
          * 'psuAuthenticated':
            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.
          * 'scaMethodSelected':
            The PSU/TPP has selected the related SCA routine. 
            If the SCA method is chosen implicitly since only one SCA method is available, 
            then this is the first status to be reported instead of 'received'.
          * 'started':
            The addressed SCA routine has been started.
          * 'finalised':
            The SCA routine has been finalised successfully.
          * 'failed':
            The SCA routine failed
          * 'exempted':
            SCA was exempted for the related transaction, the related authorisation is successful.
      type: string
      enum:
        - received
        - psuIdentified
        - psuAuthenticated
        - scaMethodSelected
        - started
        - finalised
        - failed
        - exempted
      example: psuAuthenticated
    consentStatus:
      description: >
        This is the overall lifecycle status of the consent.


        Valid values are:
          - 'received': The consent data have been received and are technically correct. 
            The data is not authorised yet.
          - 'rejected': The consent data have been rejected e.g. since no successful authorisation has taken place.
          - 'valid': The consent is accepted and valid for GET account data calls and others as specified in the consent object.
          - 'revokedByPsu': The consent has been revoked by the PSU towards the ASPSP.
          - 'expired': The consent expired.
          - 'terminatedByTpp': The corresponding TPP has terminated the consent by applying the DELETE method to the consent resource.

        The ASPSP might add further codes. These codes then shall be contained
        in the ASPSP's documentation of the XS2A interface 

        and has to be added to this API definition as well.
      type: string
      enum:
        - received
        - rejected
        - valid
        - revokedByPsu
        - expired
        - terminatedByTpp
    transactionFeeIndicator:
      description: >
        If equals 'true', the transaction will involve specific transaction cost
        as shown by the ASPSP in

        their public price list or as agreed between ASPSP and PSU.

        If equals 'false', the transaction will not involve additional specific
        transaction costs to the PSU.
      type: boolean
    recurringIndicator:
      description: |
        "true", if the consent is for recurring access to the account data.

        "false", if the consent is for one access to the account data.
      type: boolean
      example: false
    batchBookingPreferred:
      description: >
        If this element equals 'true', the PSU prefers only one booking entry. 

        If this element equals 'false', the PSU prefers individual booking of
        all contained individual transactions. 


        The ASPSP will follow this preference according to contracts agreed on
        with the PSU.
      type: boolean
      example: false
    scaMethods:
      description: >
        This data element might be contained, if SCA is required and if the PSU
        has a choice between different

        authentication methods.


        Depending on the risk management of the ASPSP this choice might be
        offered before or after the PSU

        has been identified with the first relevant factor, or if an access
        token is transported.


        If this data element is contained, then there is also an hyperlink of
        type 'startAuthorisationWithAuthenticationMethodSelection'

        contained in the response body.


        These methods shall be presented towards the PSU for selection by the
        TPP.
      type: array
      items:
        $ref: "#/components/schemas/authenticationObject"
    chosenScaMethod:
      $ref: "#/components/schemas/authenticationObject"
    authenticationType:
      description: >
        Type of the authentication method.


        More authentication types might be added during implementation projects
        and documented in the ASPSP documentation.

          - 'SMS_OTP': An SCA method, where an OTP linked to the transaction to be authorised is sent to the PSU through a SMS channel.
          - 'CHIP_OTP': An SCA method, where an OTP is generated by a chip card, e.g. an TOP derived from an EMV cryptogram. 
            To contact the card, the PSU normally needs a (handheld) device. 
            With this device, the PSU either reads the challenging data through a visual interface like flickering or 
            the PSU types in the challenge through the device key pad. 
            The device then derives an OTP from the challenge data and displays the OTP to the PSU.
          - 'PHOTO_OTP': An SCA method, where the challenge is a QR code or similar encoded visual data 
            which can be read in by a consumer device or specific mobile app. 
            The device resp. the specific app than derives an OTP from the visual challenge data and displays 
            the OTP to the PSU.
          - 'PUSH_OTP': An OTP is pushed to a dedicated authentication APP and displayed to the PSU.
      type: string
      enum:
        - SMS_OTP
        - CHIP_OTP
        - PHOTO_OTP
        - PUSH_OTP
    authenticationObject:
      description: |
        Authentication Object
      type: object
      required:
        - authenticationType
        - authenticationMethodId
      properties:
        authenticationType:
          $ref: "#/components/schemas/authenticationType"
        authenticationVersion:
          description: >
            Depending on the "authenticationType".

            This version can be used by differentiating authentication tools
            used within performing OTP generation in the same authentication
            type.

            This version can be referred to in the ASPSP?s documentation.
          type: string
        authenticationMethodId:
          $ref: "#/components/schemas/authenticationMethodId"
        name:
          description: >
            This is the name of the authentication method defined by the PSU in
            the Online Banking frontend of the ASPSP.

            Alternatively this could be a description provided by the ASPSP like
            "SMS OTP on phone +49160 xxxxx 28".

            This name shall be used by the TPP when presenting a list of
            authentication methods to the PSU, if available.
          type: string
          example: SMS OTP on phone +49160 xxxxx 28
        explanation:
          description: |
            Detailed information about the SCA method for the PSU.
          type: string
          example: Detailed information about the SCA method for the PSU.
    signingBasket:
      description: |
        JSON Body of a establish signing basket request.
        The body shall contain at least one entry.
      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.

        In rare cases this attribute is also used in the context of the
        'startAuthorisationWithPsuAuthentication' link.
      type: object
      properties:
        image:
          type: string
          format: byte
          description: |
            PNG data (max. 512 kilobyte) to be displayed to the PSU,
            Base64 encoding, cp. [RFC4648].
            This attribute is used only, when PHOTO_OTP or CHIP_OTP
            is the selected SCA method.
        data:
          type: string
          description: String challenge data
        imageLink:
          type: string
          format: url
          description: >-
            A link where the ASPSP will provides the challenge image for the
            TPP.
        otpMaxLength:
          type: integer
          description: The maximal length for the OTP to be typed in by the PSU.
        otpFormat:
          type: string
          description: >-
            The format type of the OTP to be typed in. The admitted values are
            "characters" or "integer".
          enum:
            - characters
            - integer
        additionalInformation:
          type: string
          description: |
            Additional explanation for the PSU to explain
            e.g. fallback mechanism for the chosen SCA method.
            The TPP is obliged to show this to the PSU.
    hrefType:
      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
          * IBAN, of a payment accounts, or
          * BBAN, for payment accounts if there is no IBAN, or 
          * the Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements, or
          * the Primary Account Number (PAN) of a card in a masked form, or
          * an alias to access a payment account via a registered mobile phone number (MSISDN).
      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"
    balanceType:
      description: |
        The following balance types are defined:
          - "closingBooked": 
            Balance of the account at the end of the pre-agreed account reporting period. 
            It is the sum of the opening booked balance at the beginning of the period and all entries booked 
            to the account during the pre-agreed account reporting period.
            
            For card-accounts, this is composed of
            
              - invoiced, but not yet paid entries
            
          - "expected":
            Balance composed of booked entries and pending items known at the time of calculation, 
            which projects the end of day balance if everything is booked on the account and no other entry is posted.
            
            For card accounts, this is composed of 
              - invoiced, but not yet paid entries, 
              - not yet invoiced but already booked entries and
              - pending items (not yet booked)
            
          - "authorised":
            The expected balance together with the value of a pre-approved credit line the ASPSP makes permanently available to the user.
            
            For card-accounts:
            
            "money to spend with the value of a pre-approved credit limit on the card account"
            
          - "openingBooked":
            Book balance of the account at the beginning of the account reporting period. 
            It always equals the closing book balance from the previous report.
          - "interimAvailable":
            Available balance calculated in the course of the account ?servicer?s business day, 
            at the time specified, and subject to further changes during the business day. 
            The interim balance is calculated on the basis of booked credit and debit items during the calculation 
            time/period specified.
            
            For card-accounts, this is composed of
              - invoiced, but not yet paid entries, 
              - not yet invoiced but already booked entries
          - "forwardAvailable":
            Forward available balance of money that is at the disposal of the account owner on the date specified.
          - "nonInvoiced": 
            Only for card accounts, to be checked yet.
      type: string
      enum:
        - closingBooked
        - expected
        - authorised
        - openingBooked
        - interimAvailable
        - forwardAvailable
        - nonInvoiced
    accountAccess:
      description: |
        Requested access services for a consent.
      type: object
      properties:
        accounts:
          description: >
            Is asking for detailed account information. 


            If the array is empty, the TPP is asking for an accessible account
            list. 

            This may be restricted in a PSU/ASPSP authorization dialogue.

            If the array is empty, also the arrays for balances or transactions
            shall be empty, if used.
          type: array
          items:
            $ref: "#/components/schemas/accountReference"
        balances:
          description: >
            Is asking for balances of the addressed accounts.


            If the array is empty, the TPP is asking for the balances of all
            accessible account lists. 

            This may be restricted in a PSU/ASPSP authorization dialogue.

            If the array is empty, also the arrays for accounts or transactions
            shall be empty, if used.
          type: array
          items:
            $ref: "#/components/schemas/accountReference"
        transactions:
          description: >
            Is asking for transactions of the addressed accounts. 


            If the array is empty, the TPP is asking for the transactions of all
            accessible account lists. 

            This may be restricted in a PSU/ASPSP authorization dialogue.

            If the array is empty, also the arrays for accounts or balances
            shall be empty, if used.
          type: array
          items:
            $ref: "#/components/schemas/accountReference"
        availableAccounts:
          description: >
            Optional if supported by API provider.


            Only the values "allAccounts" or "allAccountsWithBalances" is
            admitted.
          type: string
          enum:
            - allAccounts
            - allAccountsWithBalances
        allPsd2:
          description: |
            Optional if supported by API provider.

            Only the value "allAccounts" is admitted.
          type: string
          enum:
            - allAccounts
    cashAccountType:
      description: |
        ExternalCashAccountType1Code from ISO 20022.
      type: string
    accountStatus:
      description: >
        Account status. The value is one of the following:
          - "enabled": account is available
          - "deleted": account is terminated
          - "blocked": account is blocked e.g. for legal reasons
        If this field is not used, than the account is available in the sense of
        this specification.
      type: string
      enum:
        - enabled
        - deleted
        - blocked
    accountDetails:
      description: >
        The ASPSP shall give at least one of the account reference identifiers:
          - iban
          - bban
          - pan
          - maskedPan
          - msisdn
        If the account is a multicurrency account currency code in "currency" is
        set to "XXX".
      type: object
      required:
        - currency
      properties:
        resourceId:
          description: >-
            This shall be filled, if addressable resource are created by the
            ASPSP on the /accounts or /card-accounts endpoint.
          type: string
        iban:
          $ref: "#/components/schemas/iban"
        bban:
          $ref: "#/components/schemas/bban"
        msisdn:
          $ref: "#/components/schemas/msisdn"
        currency:
          $ref: "#/components/schemas/currencyCode"
        name:
          description: Name of the account given by the bank or the PSU in online-banking.
          type: string
          maxLength: 35
        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
              * PRIV: private personal account
              * ORGA: professional account
          type: string
          maxLength: 4
          enum:
            - PRIV
            - ORGA
        details:
          description: |
            Specifications that might be provided by the ASPSP
              - characteristics of the account
              - characteristics of the relevant card
          type: string
          maxLength: 140
        balances:
          $ref: "#/components/schemas/balanceList"
        _links:
          $ref: "#/components/schemas/_linksAccountDetails"
    accountList:
      description: |
        List of accounts with details.
      type: object
      required:
        - accounts
      properties:
        accounts:
          type: array
          items:
            $ref: "#/components/schemas/accountDetails"
    accountReport:
      description: >
        JSON based account report.

        This account report contains transactions resulting from the query
        parameters.


        'booked' shall be contained if bookingStatus parameter is set to
        "booked" or "both".


        'pending' is not contained if the bookingStatus parameter is set to
        "booked".
      type: object
      required:
        - _links
      properties:
        booked:
          $ref: "#/components/schemas/transactionList"
        pending:
          $ref: "#/components/schemas/transactionList"
        _links:
          $ref: "#/components/schemas/_linksAccountReport"
    transactionList:
      description: Array of transaction details
      type: array
      items:
        $ref: "#/components/schemas/transactionDetails"
    transactionDetails:
      description: Transaction details
      type: object
      required:
        - transactionAmount
      properties:
        transactionId:
          description: >
            the Transaction Id can be used as access-ID in the API, where more
            details on an transaction is offered. 

            If this data attribute is provided this shows that the AIS can get
            access on more details about this 

            transaction using the GET Transaction Details Request
          type: string
        entryReference:
          description: >
            Is the identification of the transaction as used e.g. for reference
            for deltafunction on application level. 

            The same identification as for example used within camt.05x
            messages.
          type: string
          maxLength: 35
        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:
          description: "Identification of Creditors, e.g. a SEPA Creditor ID."
          type: string
          maxLength: 35
        bookingDate:
          $ref: "#/components/schemas/bookingDate"
        valueDate:
          description: >-
            The Date at which assets become available to the account owner in
            case of a credit.
          type: string
          format: date
        transactionAmount:
          $ref: "#/components/schemas/amount"
        exchangeRate:
          $ref: "#/components/schemas/exchangeRateList"
        creditorName:
          $ref: "#/components/schemas/creditorName"
        creditorAccount:
          $ref: "#/components/schemas/accountReference"
        ultimateCreditor:
          $ref: "#/components/schemas/ultimateCreditor"
        debtorName:
          $ref: "#/components/schemas/debtorName"
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        ultimateDebtor:
          $ref: "#/components/schemas/ultimateDebtor"
        remittanceInformationUnstructured:
          type: string
          maxLength: 140
        remittanceInformationStructured:
          description: >
            Reference as contained in the structured remittance reference
            structure (without the surrounding XML structure).


            Different from other places the content is containt in plain form
            not in form of a structered field.
          type: string
          maxLength: 140
        purposeCode:
          $ref: "#/components/schemas/purposeCode"
        bankTransactionCode:
          $ref: "#/components/schemas/bankTransactionCode"
        proprietaryBankTransactionCode:
          $ref: "#/components/schemas/proprietaryBankTransactionCode"
        _links:
          $ref: "#/components/schemas/_linksTransactionDetails"
    exchangeRateList:
      description: Array of exchange rates
      type: array
      items:
        $ref: "#/components/schemas/exchangeRate"
    exchangeRate:
      description: Exchange Rate
      type: object
      required:
        - sourceCurrency
        - rate
        - unitCurrency
        - targetCurrency
        - rateDate
      properties:
        sourceCurrency:
          $ref: "#/components/schemas/currencyCode"
        rate:
          type: string
        unitCurrency:
          type: string
        targetCurrency:
          $ref: "#/components/schemas/currencyCode"
        rateDate:
          type: string
          format: date
        rateContract:
          type: string
    balance:
      description: |
        A single balance element
      type: object
      required:
        - balanceAmount
        - balanceType
      properties:
        balanceAmount:
          $ref: "#/components/schemas/amount"
        balanceType:
          $ref: "#/components/schemas/balanceType"
        lastChangeDateTime:
          description: >
            This data element might be used to indicate e.g. with the expected
            or booked balance that no action is known 

            on the account, which is not yet booked.
          type: string
          format: date-time
        referenceDate:
          description: Reference date of the balance
          type: string
          format: date
        lastCommittedTransaction:
          description: >
            "entryReference" of the last commited transaction to support the TPP
            in identifying whether all 

            PSU transactions are already known.
          type: string
          maxLength: 35
    balanceList:
      description: >
        A list of balances regarding this account, e.g. the current balance, the
        last booked balance.

        The list migght be restricted to the current ballance.
      type: array
      items:
        $ref: "#/components/schemas/balance"
    cancellationList:
      description: An array of all cancellationIds connected to this resource.
      type: array
      items:
        $ref: "#/components/schemas/cancellationId"
    bicfi:
      description: |
        BICFI
      type: string
      pattern: "[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"
      example: AAAADEBBXXX
    pan:
      description: |
        Primary Account Number according to ISO/IEC 7812.
      type: string
      maxLength: 35
      example: "5409050000000000"
    maskedPan:
      description: |
        Masked Primary Account Number
      type: string
      maxLength: 35
      example: 123456xxxxxx1234
    bban:
      description: |
        Basic Bank Account Number (BBAN) Identifier

        This data element can be used in the body of the Consent Request
          Message for retrieving Account access Consent from this Account. This
          data elements is used for payment Accounts which have no IBAN.
          ISO20022: Basic Bank Account Number (BBAN). 
          
          Identifier used nationally by financial institutions, i.e., in individual countries, 
          generally as part of a National Account Numbering Scheme(s), 
          which uniquely identifies the account of a customer.
      type: string
      pattern: "[a-zA-Z0-9]{1,30}"
      example: BARC12345612345678
    msisdn:
      type: string
      maxLength: 35
      description: Mobile phone number.
      example: +49 170 1234567
    iban:
      type: string
      description: IBAN of an account
      pattern: "[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"
      example: FR7612345987650123456789014
    address:
      type: object
      required:
        - country
      properties:
        street:
          type: string
          maxLength: 70
        buildingNumber:
          type: string
        city:
          type: string
        postalCode:
          type: string
        country:
          $ref: "#/components/schemas/countryCode"
      example:
        street: rue blue
        buildingnNumber: "89"
        city: Paris
        postalCode: "75000"
        country: FR
    countryCode:
      description: ISO 3166 ALPHA2 country code
      type: string
      pattern: "[A-Z]{2}"
      example: SE
    amount:
      type: object
      required:
        - currency
        - amount
      properties:
        currency:
          $ref: "#/components/schemas/currencyCode"
        amount:
          $ref: "#/components/schemas/amountValue"
      example:
        currency: EUR
        amount: "123"
    currencyCode:
      description: |
        ISO 4217 Alpha 3 currency code
      type: string
      pattern: "[A-Z]{3}"
      example: EUR
    amountValue:
      description: >
        The amount given with fractional digits, where fractions must be
        compliant to the currency definition.

        Up to 14 significant figures. Negative amounts are signed by minus.

        The decimal separator is a dot.


        **Example:**

        Valid representations for EUR with up to two decimals are:

          * 1056
          * 5768.2
          * -1.50
          * 5877.78
      type: string
      pattern: '-?[0-9]{1,14}(\.[0-9]{1,3})?'
      example: "5877.78"
    remittanceInformationUnstructured:
      description: |
        Unstructured remittance information
      type: string
      maxLength: 140
      example: Ref Number Merchant
    purposeCode:
      description: >
        ExternalPurpose1Code from ISO 20022.


        Values from ISO 20022 External Code List ExternalCodeSets_1Q2018 June
        2018.
      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. 


        This code type is concatenating the three ISO20022 Codes 
          * Domain Code, 
          * Family Code, and 
          * SubFamiliy Code 
        by hyphens, resulting in �DomainCode�-�FamilyCode�-�SubFamilyCode�.
      type: string
      example: PMNT-RCDT-ESCT
    proprietaryBankTransactionCode:
      description: >
        Proprietary bank transaction code as used within a community or within
        an ASPSP e.g. 

        for MT94x based transaction reports.
      type: string
      maxLength: 35
    frequencyCode:
      description: >
        The following codes from the "EventFrequency7Code" of ISO 20022 are
        supported.

        - "Daily"

        - "Weekly"

        - "EveryTwoWeeks"

        - "Monthly"

        - "EveryTwoMonths"

        - "Quarterly"

        - "SemiAnnual"

        - "Annual"
      type: string
      enum:
        - Daily
        - Weekly
        - EveryTwoWeeks
        - Monthly
        - EveryTwoMonths
        - Quarterly
        - SemiAnnual
        - Annual
    frequencyPerDay:
      description: >
        This field indicates the requested maximum frequency for an access
        without PSU involvement per day.

        For a one-off access, this attribute is set to "1".
      type: integer
      example: 4
    dayOfExecution:
      description: |
        Day of execution as string.

        This string consists of up two characters.
        Leading zeroes are not allowed.

        31 is ultimo of the month.
      type: string
      maxLength: 2
      enum:
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
        - "15"
        - "16"
        - "17"
        - "18"
        - "19"
        - "20"
        - "21"
        - "22"
        - "23"
        - "24"
        - "25"
        - "26"
        - "27"
        - "28"
        - "29"
        - "30"
        - "31"
    executionRule:
      description: >
        "following" or "preceeding" supported as values. 

        This data attribute defines the behavior when recurring payment dates
        falls on a weekend or bank holiday. 

        The payment is then executed either the "preceeding" or "following"
        working day.

        ASPSP might reject the request due to the communicated value, if rules
        in Online-Banking are not supporting 

        this execution rule.
      type: string
      enum:
        - following
        - preceeding
    psuMessageText:
      description: Text to be displayed to the PSU
      type: string
      maxLength: 512
    creditorName:
      description: Creditor Name
      type: string
      maxLength: 70
      example: Creditor Name
    debtorName:
      description: Debtor Name
      type: string
      maxLength: 70
      example: Debtor Name
    ultimateDebtor:
      description: Ultimate Debtor
      type: string
      maxLength: 70
      example: Ultimate Debtor
    ultimateCreditor:
      description: Ultimate Creditor
      type: string
      maxLength: 70
      example: Ultimate Creditor
    startDate:
      description: >
        The first applicable day of execution starting from this date is the
        first payment.
      type: string
      format: date
    endDate:
      description: |
        The last applicable day of execution
        If not given, it is an infinite standing order.
      type: string
      format: date
    bookingDate:
      description: |
        The Date when an entry is posted to an account on the ASPSPs books.
      type: string
      format: date
    validUntil:
      description: >
        This parameter is requesting a valid until date for the requested
        consent. 

        The content is the local ASPSP date in ISO-Date Format, e.g.
        2017-10-30. 


        Future dates might get adjusted by ASPSP. 


        If a maximal available date is requested, a date in far future is to be
        used: "9999-12-31". 


        In both cases the consent object to be retrieved by the GET Consent
        Request will contain the adjusted date.
      type: string
      format: date
      example: "2020-12-31"
    lastActionDate:
      description: >
        This date is containing the date of the last action on the consent
        object either through 

        the XS2A interface or the PSU/ASPSP interface having an impact on the
        status.
      type: string
      format: date
      example: "2018-07-01"
    paymentInitiationSct_json:
      description: |
        Body for a SCT payment initation.
      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"
    paymentInitiationSctInst_json:
      description: |
        Body for a SCT INST payment initation.
      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:
          type: string
          maxLength: 140
    paymentInitiationTarget2_json:
      description: |
        Body for a TARGET-2 payment initation.
      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:
          type: string
          maxLength: 140
    paymentInitiationCrossBorder_json:
      description: |
        JSON body for a cross-border payment initation.
      type: object
      required:
        - debtorAccount
        - instructedAmount
        - creditorAccount
        - creditorName
      properties:
        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:
          type: string
          maxLength: 140
    paymentInitiationSctBulkElement_json:
      description: |
        Body for a bulk SCT payment initation.
      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"
        creditorName:
          $ref: "#/components/schemas/creditorName"
        creditorAddress:
          $ref: "#/components/schemas/address"
        remittanceInformationUnstructured:
          $ref: "#/components/schemas/remittanceInformationUnstructured"
    paymentInitiationSctInstBulkElement_json:
      description: |
        Body for a SCT INST payment initation.
      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"
        creditorName:
          $ref: "#/components/schemas/creditorName"
        creditorAddress:
          $ref: "#/components/schemas/address"
        remittanceInformationUnstructured:
          type: string
          maxLength: 140
    paymentInitiationTarget2BulkElement_json:
      description: |
        Body for a bulk TARGET-2 payment initation.
      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"
        creditorName:
          $ref: "#/components/schemas/creditorName"
        creditorAddress:
          $ref: "#/components/schemas/address"
        remittanceInformationUnstructured:
          type: string
          maxLength: 140
    paymentInitiationCrossBorderBulkElement_json:
      description: |
        JSON body for a cross-border payment initation.
      type: object
      required:
        - instructedAmount
        - creditorAccount
        - creditorName
      properties:
        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:
          type: string
          maxLength: 140
    periodicPaymentInitiationSct_json:
      description: |
        JSON Body for a periodic SCT payment initation.
      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"
    periodicPaymentInitiationSctInst_json:
      description: |
        JSON Body for a periodic SCT INST payment initation.
      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:
          type: string
          maxLength: 140
        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"
    periodicPaymentInitiationTarget2_json:
      description: |
        JSON Body for a periodic target-2 payment initation.
      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:
          type: string
          maxLength: 140
        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"
    periodicPaymentInitiationCrossBorder_json:
      description: |
        JSON body for a periodic cross-border payment initation.
      type: object
      required:
        - debtorAccount
        - instructedAmount
        - creditorAccount
        - creditorName
        - startDate
        - frequency
      properties:
        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:
          type: string
          maxLength: 140
        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"
    bulkPaymentInitiationSct_json:
      description: |
        JSON Body for a bulk SCT payment initation.
      type: object
      required:
        - payments
        - debtorAccount
      properties:
        batchBookingPreferred:
          $ref: "#/components/schemas/batchBookingPreferred"
        requestedExecutionDate:
          type: string
          format: date
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        payments:
          description: A list of JSON bodies for SCT payments.
          type: array
          items:
            $ref: "#/components/schemas/paymentInitiationSctBulkElement_json"
    bulkPaymentInitiationSctInst_json:
      description: |
        JSON Body for a bulk SCT INST payment initation.
      type: object
      required:
        - payments
        - debtorAccount
      properties:
        batchBookingPreferred:
          $ref: "#/components/schemas/batchBookingPreferred"
        requestedExecutionDate:
          type: string
          format: date
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        payments:
          description: A list of JSON bodies for SCT INST payments.
          type: array
          items:
            $ref: "#/components/schemas/paymentInitiationSctInstBulkElement_json"
    bulkPaymentInitiationTarget2_json:
      description: |
        JSON Body for a bulk TARGET-2 payment initation.
      type: object
      required:
        - payments
        - debtorAccount
      properties:
        batchBookingPreferred:
          $ref: "#/components/schemas/batchBookingPreferred"
        requestedExecutionDate:
          type: string
          format: date
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        payments:
          description: A list of JSON bodies for TARGET-2 payments.
          type: array
          items:
            $ref: "#/components/schemas/paymentInitiationTarget2BulkElement_json"
    bulkPaymentInitiationCrossBorder_json:
      description: |
        JSON body for a bulk cross-border payment initation.
      type: object
      required:
        - payments
        - debtorAccount
      properties:
        batchBookingPreferred:
          $ref: "#/components/schemas/batchBookingPreferred"
        requestedExecutionDate:
          type: string
          format: date
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        payments:
          description: A List of JSON bodies for cross-border payments.
          type: array
          items:
            $ref: "#/components/schemas/paymentInitiationCrossBorderBulkElement_json"
    confirmationOfFunds:
      description: |
        JSON Request body for the "Confirmation of Funds Service"

        <table> 
        <tr> 
          <td>cardNumber</td> 
          <td>String </td>
          <td>Optional</td>
          <td>Card Number of the card issued by the PIISP. Should be delivered if available.</td>
        </tr> 
        <tr>
          <td>account</td>
          <td> Account Reference</td>
          <td>Mandatory</td>
          <td>PSU's account number.</td>
        </tr> 
        <tr> 
          <td>payee</td>
          <td>Max70Text</td>
          <td>Optional</td>
          <td>The merchant where the card is accepted as an information to the PSU.</td>
        </tr> 
        <tr>
          <td>instructedAmount</td>
          <td>Amount</td>
          <td>Mandatory</td>
          <td>Transaction amount to be checked within the funds check mechanism.</td>
        </tr> 
        </table>
      type: object
      required:
        - account
        - instructedAmount
      properties:
        cardNumber:
          description: |
            Card Number of the card issued by the PIISP. 
            Should be delivered if available.
          type: string
        account:
          $ref: "#/components/schemas/accountReference"
        payee:
          description: Name payee
          type: string
          maxLength: 70
        instructedAmount:
          $ref: "#/components/schemas/amount"
    consents:
      description: |
        Content of the body of a consent request.
      type: object
      required:
        - access
        - recurringIndicator
        - validUntil
        - frequencyPerDay
        - combinedServiceIndicator
      properties:
        access:
          $ref: "#/components/schemas/accountAccess"
        recurringIndicator:
          $ref: "#/components/schemas/recurringIndicator"
        validUntil:
          $ref: "#/components/schemas/validUntil"
        frequencyPerDay:
          $ref: "#/components/schemas/frequencyPerDay"
        combinedServiceIndicator:
          description: >
            If "true" indicates that a payment initiation service will be
            addressed in the same "session".
          type: boolean
          example: false
    paymentInitiationSct_pain.001:
      description: |
        A pain.001 structure corresponding to the SCT schema

        urn:iso:std:iso:20022:tech:xsd:pain.001.001.03
      type: string
      example: >-
        <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
        <CstmrCdtTrfInitn> <GrpHdr> <MsgId>MIPI-123456789RI-123456789</MsgId>
        <CreDtTm>2017-02-14T20:23:34.000Z</CreDtTm> <NbOfTxs>1</NbOfTxs>
        <CtrlSum>123</CtrlSum> <InitgPty> <Nm>PaymentInitiator</Nm>
        <Id><OrgId><Othr><Id>DE10000000012</Id>
        <SchmeNm><Prptry>PISP</Prptry></SchmeNm></Othr></OrgId></Id> </InitgPty>
        </GrpHdr> <PmtInf> <PmtInfId>BIPI-123456789RI-123456789</PmtInfId>
        <PmtMtd>TRF</PmtMtd> <NbOfTxs>1</NbOfTxs> <CtrlSum>123</CtrlSum>
        <PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf>
        <ReqdExctnDt>2017-02-15</ReqdExctnDt> <Dbtr><Nm>PSU Name</Nm></Dbtr>
        <DbtrAcct><Id><IBAN>DE87200500001234567890</IBAN></Id></DbtrAcct>
        <ChrgBr>SLEV</ChrgBr> <CdtTrfTxInf>
        <PmtId><EndToEndId>RI-123456789</EndToEndId></PmtId> <Amt><InstdAmt
        Ccy="EUR">123</InstdAmt></Amt> <Cdtr><Nm>Merchant123</Nm></Cdtr>
        <CdtrAcct><Id><IBAN> DE23100120020123456789</IBAN></Id></CdtrAcct>
        <RmtInf><Ustrd>Ref Number Merchant-123456</Ustrd></RmtInf>
        </CdtTrfTxInf> </PmtInf> </CstmrCdtTrfInitn> </Document>
    paymentInitiationSctInst_pain.001:
      description: |
        A pain.001 structure corresponding to the SCT INST schema.
      type: string
    paymentInitiationTarget2_pain.001:
      description: |
        A pain.001 structure corresponding to the target-2 schema

        For TARGET-2 payments only community wide pain.001 schemes do exist.
      type: string
    paymentInitiationCrossBorder_pain.001:
      description: |
        A pain.001 structure corresponding to the cross-border schema

        For cross-border payments only community wide pain.001 schemes do exist.
      type: string
    periodicPaymentInitiation_xml-Part2-standingorderType_json:
      description: >
        The body part 2 of a periodic payment initation request containes the
        execution related informations 

        of the periodic payment.
      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"
    paymentInitiationStatusResponse-200_xml:
      description: >
        Body of the response for a successful payment initiation status request
        in case of an XML based endpoint.


        The status is returned as a pain.002 structure. 


        urn:iso:std:iso:20022:tech:xsd:pain.002.001.03


        The chosen XML schema of the Status Request is following the XML schema
        definitions of the original pain.001 schema.
      type: string
    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"
        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/tppMessage2XX"
    paymentInitationRequestMultiLevelScaResponse-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"
        transactionFeeIndicator:
          $ref: "#/components/schemas/transactionFeeIndicator"
        _links:
          $ref: "#/components/schemas/_linksPaymentInitiationMultiLevelSca"
        psuMessage:
          $ref: "#/components/schemas/psuMessageText"
        tppMessages:
          type: array
          items:
            $ref: "#/components/schemas/tppMessage2XX"
    paymentInitiationCancelResponse-204_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"
    paymentInitiationSctWithStatusResponse:
      description: >
        JSON response body consistion of the corresponding SCT payment initation
        JSON body together with an optional transaction status field.
      type: object
      required:
        - debtorAccount
        - instructedAmount
        - creditorAccount
        - creditorName
      properties:
        endToEndIdentification:
          type: string
          maxLength: 35
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        instructedAmount:
          $ref: "#/components/schemas/amount"
        creditorAccount:
          $ref: "#/components/schemas/accountReference"
        creditorAgent:
          $ref: "#/components/schemas/bicfi"
        creditorName:
          $ref: "#/components/schemas/creditorName"
        creditorAddress:
          $ref: "#/components/schemas/address"
        remittanceInformationUnstructured:
          $ref: "#/components/schemas/remittanceInformationUnstructured"
        transactionStatus:
          $ref: "#/components/schemas/transactionStatus"
    paymentInitiationSctInstWithStatusResponse:
      description: >
        JSON response body consistion of the corresponding SCT INST payment
        initation JSON body together with an optional transaction status field.
      type: object
      required:
        - debtorAccount
        - instructedAmount
        - creditorAccount
        - creditorName
      properties:
        endToEndIdentification:
          type: string
          maxLength: 35
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        instructedAmount:
          $ref: "#/components/schemas/amount"
        creditorAccount:
          $ref: "#/components/schemas/accountReference"
        creditorAgent:
          $ref: "#/components/schemas/bicfi"
        creditorName:
          $ref: "#/components/schemas/creditorName"
        creditorAddress:
          $ref: "#/components/schemas/address"
        remittanceInformationUnstructured:
          type: string
          maxLength: 140
        transactionStatus:
          $ref: "#/components/schemas/transactionStatus"
    paymentInitiationTarget2WithStatusResponse:
      description: >
        JSON response body consistion of the corresponding TARGET-2 payment
        initation JSON body together with an 

        optional transaction status field.
      type: object
      required:
        - debtorAccount
        - instructedAmount
        - creditorAccount
        - creditorName
      properties:
        endToEndIdentification:
          type: string
          maxLength: 35
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        instructedAmount:
          $ref: "#/components/schemas/amount"
        creditorAccount:
          $ref: "#/components/schemas/accountReference"
        creditorAgent:
          $ref: "#/components/schemas/bicfi"
        creditorName:
          $ref: "#/components/schemas/creditorName"
        creditorAddress:
          $ref: "#/components/schemas/address"
        remittanceInformationUnstructured:
          type: string
          maxLength: 140
        transactionStatus:
          $ref: "#/components/schemas/transactionStatus"
    paymentInitiationCrossBorderWithStatusResponse:
      description: >
        JSON response body consistion of the corresponding cross-border payment
        initation JSON body together with an optional transaction status field.
      type: object
      required:
        - debtorAccount
        - instructedAmount
        - creditorAccount
        - creditorName
      properties:
        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:
          type: string
          maxLength: 140
        transactionStatus:
          $ref: "#/components/schemas/transactionStatus"
    periodicPaymentInitiationSctWithStatusResponse:
      description: >
        JSON response body consistion of the corresponding periodic SCT payment
        initation JSON body together with an optional transaction status field.
      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"
    periodicPaymentInitiationSctInstWithStatusResponse:
      description: >
        JSON response body consistion of the corresponding periodic SCT INST
        payment initation JSON body together with an optional transaction status
        field.
      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"
    periodicPaymentInitiationTarget2WithStatusResponse:
      description: >
        JSON response body consistion of the corresponding periodic TARGET-2
        payment initation JSON body together with 

        an optional transaction status field.
      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:
          type: string
          maxLength: 140
        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"
    periodicPaymentInitiationCrossBorderWithStatusResponse:
      description: >
        JSON response body consistion of the corresponding periodic cross-border
        payment initation JSON body together with an optional transaction status
        field.
      type: object
      required:
        - debtorAccount
        - instructedAmount
        - creditorAccount
        - creditorName
        - startDate
        - frequency
      properties:
        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:
          type: string
          maxLength: 140
        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"
    bulkPaymentInitiationSctWithStatusResponse:
      description: >
        JSON response body consistion of the corresponding bulk SCT payment
        initation JSON body together with an optional transaction status field.
      type: object
      required:
        - payments
        - debtorAccount
      properties:
        batchBookingPreferred:
          $ref: "#/components/schemas/batchBookingPreferred"
        requestedExecutionDate:
          type: string
          format: date
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        payments:
          description: A list of JSON bodies for SCT payments.
          type: array
          items:
            $ref: "#/components/schemas/paymentInitiationSct_json"
        transactionStatus:
          $ref: "#/components/schemas/transactionStatus"
    bulkPaymentInitiationSctInstWithStatusResponse:
      description: >
        JSON response body consistion of the corresponding bulk SCT INST payment
        initation JSON body together with an optional transaction status field.
      type: object
      required:
        - payments
        - debtorAccount
      properties:
        batchBookingPreferred:
          $ref: "#/components/schemas/batchBookingPreferred"
        requestedExecutionDate:
          type: string
          format: date
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        payments:
          description: A list of JSON bodies for SCT INST payments.
          type: array
          items:
            $ref: "#/components/schemas/paymentInitiationSctInst_json"
        transactionStatus:
          $ref: "#/components/schemas/transactionStatus"
    bulkPaymentInitiationTarget2WithStatusResponse:
      description: >
        JSON response body consistion of the corresponding bulk TARGET-2 payment
        initation JSON body together with an optional transaction status field.
      type: object
      required:
        - payments
        - debtorAccount
      properties:
        batchBookingPreferred:
          $ref: "#/components/schemas/batchBookingPreferred"
        requestedExecutionDate:
          type: string
          format: date
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        payments:
          description: A list of JSON bodies for TARGET-2 payments.
          type: array
          items:
            $ref: "#/components/schemas/paymentInitiationTarget2_json"
        transactionStatus:
          $ref: "#/components/schemas/transactionStatus"
    bulkPaymentInitiationCrossBorderWithStatusResponse:
      description: >
        JSON response body consistion of the corresponding bulk cross-border
        payment initation JSON body together with an optional transaction status
        field.
      type: object
      required:
        - payments
        - debtorAccount
      properties:
        batchBookingPreferred:
          $ref: "#/components/schemas/batchBookingPreferred"
        requestedExecutionDate:
          type: string
          format: date
        debtorAccount:
          $ref: "#/components/schemas/accountReference"
        payments:
          description: A list of JSON bodies for cross-border payments.
          type: array
          items:
            $ref: "#/components/schemas/paymentInitiationCrossBorder_json"
        transactionStatus:
          $ref: "#/components/schemas/transactionStatus"
    scaStatusResponse:
      description: Body of the JSON response with SCA Status
      type: object
      properties:
        scaStatus:
          $ref: "#/components/schemas/scaStatus"
    startScaprocessResponse:
      description: Body of the JSON response for a Start SCA authorisation request.
      type: object
      required:
        - scaStatus
        - _links
      properties:
        scaStatus:
          $ref: "#/components/schemas/scaStatus"
        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"
    updatePsuIdenticationResponse:
      description: >-
        Body of the JSON response for a successful update PSU Identification
        request.
      type: object
      required:
        - _links
        - scaStatus
      properties:
        _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:
        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"
    selectPsuAuthenticationMethodResponse:
      description: >-
        Body of the JSON response for a successful select PSU Authentication
        Method request.
      type: object
      required:
        - scaStatus
      properties:
        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.

          * 'payments': payment initiations which shall be authorised through this signing basket.
          * 'consents': consent objects which shall be authorised through this signing basket.
          * 'transactionStatus': Only the codes RCVD, ACTC, RJCT are used.
      type: object
      required:
        - transactionStatus
      properties:
        payments:
          $ref: "#/components/schemas/paymentIdList"
        consents:
          $ref: "#/components/schemas/consentIdList"
        transactionStatus:
          $ref: "#/components/schemas/transactionStatus"
    signingBasketStatusResponse-200:
      type: object
      required:
        - transactionStatus
      properties:
        transactionStatus:
          $ref: "#/components/schemas/transactionStatus_SB"
    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"
        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 conset 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"
        message:
          description: "Text to be displayed to the PSU, e.g. in a Decoupled SCA Approach."
          type: string
          maxLength: 512
    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"
    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"
    readAccountBalanceResponse-200:
      description: >-
        Body of the response for a successful read balance for an account
        request.
      type: object
      required:
        - balances
      properties:
        account:
          $ref: "#/components/schemas/accountReference"
        balances:
          $ref: "#/components/schemas/balanceList"
    transactionsResponse-200_json:
      description: >
        Body of the JSON response for a successful read transaction list
        request.

        This account report contains transactions resulting from the query
        parameters.
      type: object
      properties:
        account:
          $ref: "#/components/schemas/accountReference"
        transactions:
          $ref: "#/components/schemas/accountReport"
        balances:
          $ref: "#/components/schemas/balanceList"
        _links:
          $ref: "#/components/schemas/_linksDownload"
    camt.052:
      description: |
        camt.052 XML message
      type: string
    camt.053:
      description: |
        camt.053 XML message
      type: string
    camt.054:
      description: |
        camt.054 XML message
      type: string
    mt940:
      description: |
        Data MT940 format in a text structure.
      type: string
    mt942:
      description: |
        Data MT942 format in a text structure.
      type: string
    _linksPaymentInitiation:
      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.


        **Remark:** All links can be relative or full links, to be decided by
        the ASPSP.


        Type of links admitted in this response, (further links might be added
        for ASPSP defined extensions):


        * 'scaRedirect': 
          In case of an SCA Redirect Approach, the ASPSP is transmitting the link to which to redirect the PSU browser.
        * 'scaOAuth': 
          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.
        * 'startAuthorisation': 
          In case, where an explicit start of the transaction authorisation is needed, but no more data needs to be updated 
          (no authentication method to be selected, no PSU identification nor PSU authentication data to be uploaded).
        * 'startAuthorisationWithPsuIdentification': 
          The link to the authorisation end-point, where the authorisation sub-resource has to be generated while 
          uploading the PSU identification data.
        * 'startAuthorisationWithPsuAuthentication': 
          The link to the authorisation end-point, where the authorisation sub-resource has to be generated while 
          uploading the PSU authentication data.
          * 'startAuthorisationWithEncryptedPsuAuthentication':
            Same as startAuthorisactionWithPsuAuthentication where the authentication data need to be encrypted on 
            application layer in uploading.
        * 'startAuthorisationWithAuthenticationMethodSelection': 
          The link to the authorisation end-point, where the authorisation sub-resource has to be generated while 
          selecting the authentication method. 
          This link is contained under exactly the same conditions as the data element "scaMethods"
        * 'startAuthorisationWithTransactionAuthorisation':
          The link to the authorisation end-point, where the authorisation sub-resource has to be generated while 
          authorising the transaction e.g. by uploading an OTP received by SMS.
        * 'self': 
          The link to the payment initiation resource created by this request.
          This link can be used to retrieve the resource data.
        * 'status': 
          The link to retrieve the transaction status of the payment initiation.
        * 'scaStatus': 
          The link to retrieve the scaStatus of the corresponding authorisation sub-resource. 
          This link is only contained, if an authorisation sub-resource has been already created.
      type: object
      additionalProperties:
        $ref: "#/components/schemas/hrefType"
      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"
      example:
        scaRedirect:
          href: "https://www.testbank.com/asdfasdfasdf"
        self:
          href: /v1/payments/sepa-credit-transfers/1234-wertiq-983
    _linksPaymentInitiationMultiLevelSca:
      description: >
        Type of links admitted in this response, (further links might be added
        for ASPSP defined extensions):

          * 'startAuthorisation': 
            In case, where an explicit start of the transaction authorisation is needed, but no more data needs to be updated (no authentication method to be selected, no PSU identification nor PSU authentication data to be uploaded).
          * 'startAuthorisationWithPsuIdentification': 
            The link to the authorisation end-point, where the authorisation sub-resource has to be generated while uploading the PSU identification data.
          * 'startAuthorisationWithPsuAuthentication':
            The link to the authorisation end-point, where an authorisation sub-resource has to be generated while uploading the PSU authentication data.
          * 'startAuthorisationWithEncryptedPsuAuthentication':
            Same as startAuthorisactionWithPsuAuthentication where the authentication data need to be encrypted on 
            application layer in uploading.
          * 'self': 
            The link to the payment initiation resource created by this request. This link can be used to retrieve the resource data. 
          * 'status': 
            The link to retrieve the transaction status of the payment initiation.
      type: object
      additionalProperties:
        $ref: "#/components/schemas/hrefType"
      properties:
        startAuthorisation:
          $ref: "#/components/schemas/hrefType"
        startAuthorisationWithPsuIdentification:
          $ref: "#/components/schemas/hrefType"
        startAuthorisationWithPsuAuthentication:
          $ref: "#/components/schemas/hrefType"
        self:
          $ref: "#/components/schemas/hrefType"
        status:
          $ref: "#/components/schemas/hrefType"
    _linksPaymentInitiationCancel:
      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.


        Remark: All links can be relative or full links, to be decided by the
        ASPSP.


        Type of links admitted in this response, (further links might be added
        for ASPSP defined extensions):

          * 'startAuthorisation': 
            In case, where just the authorisation process of the cancellation needs to be started, 
            but no additional data needs to be updated for time being (no authentication method to be selected, 
            no PSU identification nor PSU authentication data to be uploaded).
          * 'startAuthorisationWithPsuIdentification': 
            In case where a PSU Identification needs to be updated when starting the cancellation authorisation: 
            The link to the cancellation-authorisations end-point, where the cancellation sub-resource has to be 
            generated while uploading the PSU identification data.
          * 'startAuthorisationWithPsuAuthentication': 
            In case of a yet to be created authorisation sub-resource: The link to the cancalation authorisation end-point, 
            where the authorisation sub-resource has to be generated while uploading the PSU authentication data.
          * 'startAuthorisationWithEncryptedPsuAuthentication':
            Same as startAuthorisactionWithPsuAuthentication where the authentication data need to be encrypted on 
            application layer in uploading.
          * 'startAuthorisationWithAuthenticationMethodSelection':
            The link to the authorisation end-point, where the cancellation-authorisation sub-resource has to be 
            generated while selecting the authentication method. This link is contained under exactly the same 
            conditions as the data element 'scaMethods'
      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.


        **Remark:** All links can be relative or full links, to be decided by
        the ASPSP.


        Type of links admitted in this response, (further links might be added
        for ASPSP 

        defined extensions):


        - 'scaStatus': The link to retrieve the scaStatus of the corresponding
        authorisation sub-resource.
      type: object
      additionalProperties:
        $ref: "#/components/schemas/hrefType"
      properties:
        scaStatus:
          $ref: "#/components/schemas/hrefType"
    _linksUpdatePsuAuthentication:
      description: >
        A list of hyperlinks to be recognised by the TPP. Might be contained, if
        several authentication methods 

        are available for the PSU.

        Type of links admitted in this response:
          * 'selectAuthenticationMethod': 
            This is a link to a resource, where the TPP can select the applicable second factor authentication 
            methods for the PSU, if there were several available authentication methods. 
            This link is only contained, if the PSU is already identified or authenticated with the first relevant 
            factor or alternatively an access token, if SCA is required and if the PSU has a choice between different 
            authentication methods. 
            If this link is contained, then there is also the data element 'scaMethods' contained in the response body.
          * 'authoriseTransaction': 
            The link to the resource, where the "Transaction Authorisation Request" is sent to. 
            This is the link to the resource which will authorise the transaction by checking the SCA authentication 
            data within the Embedded SCA approach.
          * 'scaStatus': 
            The link to retrieve the scaStatus of the corresponding authorisation sub-resource.
      type: object
      additionalProperties:
        $ref: "#/components/schemas/hrefType"
      properties:
        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 

        the response depend on the dynamical decisions of the ASPSP when
        processing the request.


        **Remark:** All links can be relative or full links, to be decided by
        the ASPSP. 


        **Remark:** This method can be applied before or after PSU
        identification. 

        This leads to many possible hyperlink responses.

        Type of links admitted in this response, (further links might be added
        for ASPSP defined 

        extensions):


        - "scaRedirect": 
          In case of an SCA Redirect Approach, the ASPSP is transmitting the link to which to 
          redirect the PSU browser.
        - "scaOAuth": 
          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.
        - "updatePsuIdentification": 
          The link to the authorisation or cancellation authorisation sub-resource, 
          where PSU identification data needs to be uploaded.
        - "updatePsuAuthentication":
          The link to the authorisation or cancellation authorisation sub-resource, 
          where PSU authentication data needs to be uploaded.
        "authoriseTransaction":
          The link to the authorisation or cancellation authorisation sub-resource, 
          where the authorisation data has to be uploaded, e.g. the TOP received by SMS. 
        "scaStatus": 
          The link to retrieve the scaStatus of the corresponding authorisation sub-resource.
      type: object
      additionalProperties:
        $ref: "#/components/schemas/hrefType"
      properties:
        scaRedirect:
          $ref: "#/components/schemas/hrefType"
        scaOAuth:
          $ref: "#/components/schemas/hrefType"
        updatePsuIdentification:
          $ref: "#/components/schemas/hrefType"
        updatePsuAuthentication:
          $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 

        response depend on the dynamical decisions of the ASPSP when processing
        the request.


        **Remark:** All links can be relative or full links, to be decided by
        the ASPSP.


        Type of links admitted in this response, (further links might be added
        for ASPSP defined 

        extensions):


        - 'scaRedirect': 
          In case of an SCA Redirect Approach, the ASPSP is transmitting the link to which to 
          redirect the PSU browser.
        - 'scaOAuth': 
          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.
        - 'updatePsuIdentification': 
          The link to the authorisation or cancellation authorisation sub-resource, 
          where PSU identification data needs to be uploaded.
        - 'startAuthorisationWithPsuAuthentication':
          The link to the authorisation or cancellation authorisation sub-resource, 
          where PSU authentication data needs to be uploaded.
          * 'startAuthorisationWithEncryptedPsuAuthentication':
            Same as startAuthorisactionWithPsuAuthentication where the authentication data need to be encrypted on 
            application layer in uploading.
        - 'selectAuthenticationMethod':
          The link to the authorisation or cancellation authorisation sub-resource, 
          where the selected authentication method needs to be uploaded. 
          This link is contained under exactly the same conditions as the data element 'scaMethods'.
        - 'authoriseTransaction':
          The link to the authorisation or cancellation authorisation sub-resource, 
          where the authorisation data has to be uploaded, e.g. the TOP received by SMS. 
        - 'scaStatus': 
          The link to retrieve the scaStatus of the corresponding authorisation sub-resource.
      type: object
      additionalProperties:
        $ref: "#/components/schemas/hrefType"
      properties:
        scaRedirect:
          $ref: "#/components/schemas/hrefType"
        scaOAuth:
          $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.


        Type of links admitted in this response:
          - "download": a link to a resource, where the transaction report might be downloaded from in 
          case where transaction reports have a huge size.

        Remark: This feature shall only be used where camt-data is requested
        which has a huge size.
      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.


        Type of links admitted in this response (which might be extended by
        single ASPSPs as indicated in its XS2A 

        documentation):
          - 'scaRedirect': 
            In case of an SCA Redirect Approach, the ASPSP is transmitting the link to which to redirect the 
            PSU browser.
          - 'scaOAuth': 
            In case of an OAuth2 based Redirect Approach, the ASPSP is transmitting the link where the configuration 
            of the OAuth2 Server is defined. 
            The configuration follows the OAuth 2.0 Authorisation Server Metadata specification. 
          - 'startAuthorisation': 
            In case, where an explicit start of the transaction authorisation is needed, 
            but no more data needs to be updated (no authentication method to be selected, 
            no PSU identification nor PSU authentication data to be uploaded).
          - 'startAuthorisationWithPsuIdentification': 
            The link to the authorisation end-point, where the authorisation sub-resource has to be generated 
            while uploading the PSU identification data.
          - 'startAuthorisationWithPsuAuthentication':
            The link to the authorisation end-point, where the authorisation sub-resource has to be generated 
            while uploading the PSU authentication data.
          * 'startAuthorisationWithEncryptedPsuAuthentication':
            Same as startAuthorisactionWithPsuAuthentication where the authentication data need to be encrypted on 
            application layer in uploading.
          - 'startAuthorisationWithAuthenticationMethodSelection':
            The link to the authorisation end-point, where the authorisation sub-resource has to be generated 
            while selecting the authentication method. This link is contained under exactly the same conditions 
            as the data element 'scaMethods' 
          - 'startAuthorisationWithTransactionAuthorisation':
            The link to the authorisation end-point, where the authorisation sub-resource has to be generated 
            while authorising the transaction e.g. by uploading an OTP received by SMS.
          - 'self': 
            The link to the Establish Account Information Consent resource created by this request. 
            This link can be used to retrieve the resource data. 
          - 'status': 
            The link to retrieve the status of the account information consent.
          - 'scaStatus': The link to retrieve the scaStatus of the corresponding authorisation sub-resource. 
            This link is only contained, if an authorisation sub-resource has been already created.
      type: object
      additionalProperties:
        $ref: "#/components/schemas/hrefType"
      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"
    _linksSigningBasket:
      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.


        Remark: All links can be relative or full links, to be decided by the
        ASPSP.

        Type of links admitted in this response, (further links might be added
        for ASPSP defined 

        extensions):

          * 'scaRedirect': 
            In case of an SCA Redirect Approach, the ASPSP is transmitting the link to 
            which to redirect the PSU browser.
          * 'scaOAuth': 
            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.
          * 'startAuthorisation': 
            In case, where an explicit start of the transaction authorisation is needed, 
            but no more data needs to be updated (no authentication method to be selected, 
            no PSU identification nor PSU authentication data to be uploaded).
          * 'startAuthorisationWithPsuIdentification': 
            The link to the authorisation end-point, where the authorisation sub-resource 
            has to be generated while uploading the PSU identification data.
          * 'startAuthorisationWithPsuAuthentication':
            The link to the authorisation end-point, where the authorisation sub-resource 
            has to be generated while uploading the PSU authentication data.
          * 'startAuthorisationWithEncryptedPsuAuthentication':
            The link to the authorisation end-point, where the authorisation sub-resource has 
            to be generated while uploading the encrypted PSU authentication data.
          * 'startAuthorisationWithAuthenticationMethodSelection':
            The link to the authorisation end-point, where the authorisation sub-resource 
            has to be generated while selecting the authentication method. 
            This link is contained under exactly the same conditions as the data element 'scaMethods' 
          * 'startAuthorisationWithTransactionAuthorisation':
            The link to the authorisation end-point, where the authorisation sub-resource 
            has to be generated while authorising the transaction e.g. by uploading an 
            OTP received by SMS.
          * 'self': 
            The link to the payment initiation resource created by this request. 
            This link can be used to retrieve the resource data. 
          * 'status': 
            The link to retrieve the transaction status of the payment initiation.
          * 'scaStatus': 
            The link to retrieve the scaStatus of the corresponding authorisation sub-resource. 
            This link is only contained, if an authorisation sub-resource has been already created.
      type: object
      properties:
        scaRedirect:
          $ref: "#/components/schemas/hrefType"
        scaOAuth:
          $ref: "#/components/schemas/hrefType"
        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"
    _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.


        Links to "balances" and/or "transactions"


        These links are only supported, when the corresponding consent has been
        already granted.
      type: object
      additionalProperties:
        $ref: "#/components/schemas/hrefType"
      properties:
        balances:
          $ref: "#/components/schemas/hrefType"
        transactions:
          $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
    tppMessageText:
      description: Additional explaining text to the TPP.
      type: string
      maxLength: 512
    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"
  parameters:
    paymentService:
      name: payment-service
      in: path
      description: |
        Payment service:

        Possible value is:
        * payments
      required: true
      schema:
        type: string
        enum:
          - payments
    paymentProduct:
      name: payment-product
      in: path
      description: >
        The addressed payment product endpoint, e.g. for SEPA Credit Transfers
        (SCT).

        The ASPSP will publish which of the payment products/endpoints will be
        supported.


        The following payment product is supported:
          - payment-transaction

      required: true
      schema:
        type: string
        enum:
          - payment-transaction
    paymentId:
      name: paymentId
      in: path
      description: Resource identification of the generated payment initiation resource.
      required: true
      schema:
        $ref: "#/components/schemas/paymentId"
    cancellationId:
      name: cancellationId
      in: path
      description: Identification for cancellation resource.
      required: true
      schema:
        $ref: "#/components/schemas/cancellationId"
    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 account. 

        The account-id is retrieved by using a "Read Account List" call. 

        The account-id is the "id" attribute of the account structure. 

        Its value is constant at least throughout the lifecycle of a given
        consent.
      required: true
      schema:
        $ref: "#/components/schemas/accountId"
    resourceId:
      name: resourceId
      in: path
      description: >
        This identification is given by the attribute resourceId of the
        corresponding entry of a transaction list.
      required: true
      schema:
        $ref: "#/components/schemas/resourceId"
    basketId_PATH:
      name: basketId
      in: path
      description: |
        This identification of the corresponding signing basket object.
      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.
      required: true
      schema:
        $ref: "#/components/schemas/consentId"
    consentId_HEADER_optional:
      name: Consent-ID
      in: header
      description: >
        This data element may be contained, if the payment initiation
        transaction is part of a session, i.e. combined AIS/PIS service.

        This then contains the consentId of the related AIS consent, which was
        performed prior to this payment initiation.
      required: false
      schema:
        $ref: "#/components/schemas/consentId"
    consentId_HEADER_mandatory:
      name: Consent-ID
      in: header
      description: >
        This then contains the consentId of the related AIS consent, which was
        performed prior to this payment initiation.
      required: true
      schema:
        $ref: "#/components/schemas/consentId"
    withBalanceQuery:
      name: withBalance
      in: query
      description: >
        If contained, this function reads the list of accessible payment
        accounts including the booking balance, 

        if granted by the PSU in the related consent and available by the
        ASPSP. 

        This parameter might be ignored by the ASPSP.
      required: false
      schema:
        type: boolean
    dateFrom:
      name: dateFrom
      in: query
      description: >
        Conditional: Starting date (inclusive the date dateFrom) of the
        transaction list, mandated if no delta access is required.


        For booked transactions, the relevant date is the booking date. 


        For pending transactions, the relevant date is the entry date, which may
        not be transparent 

        neither in this API nor other channels of the ASPSP.
      required: false
      schema:
        type: string
        format: date
    dateTo:
      name: dateTo
      in: query
      description: >
        End date (inclusive the data dateTo) of the transaction list, default is
        "now" if not given. 


        Might be ignored if a delta function is used.


        For booked transactions, the relevant date is the booking date. 


        For pending transactions, the relevant date is the entry date, which may
        not be transparent 

        neither in this API nor other channels of the ASPSP.
      required: false
      schema:
        type: string
        format: date
    entryReferenceFrom:
      name: entryReferenceFrom
      in: query
      description: >
        This data attribute is indicating that the AISP is in favour to get all
        transactions after 

        the transaction with identification entryReferenceFrom alternatively to
        the above defined period. 

        This is a implementation of a delta access. 

        If this data element is contained, the entries "dateFrom" and "dateTo"
        might be ignored by the ASPSP 

        if a delta report is supported.


        Optional if supported by API provider.
      required: false
      schema:
        type: string
    bookingStatus:
      name: bookingStatus
      in: query
      description: |
        Permitted codes are: 
          * "booked",
          * "pending", 
          * "both"
          
        "booked" shall be supported by the ASPSP in any case.

        "pending" and "both" features are optional for the ASPSP.

        Error code if not supported in the online banking frontend.
      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.

        This delta indicator might be rejected by the ASPSP if this function is
        not supported.

        Optional 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.
      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))"
    TPP-Signature-Certificate:
      name: TPP-Signature-Certificate
      in: header
      description: |
        The certificate used for signing the request, in base64 encoding. 
        Must be contained if a signature is contained.
      schema:
        type: string
        format: byte
      required: false
    TPP-Redirect-URI:
      name: TPP-Redirect-URI
      in: header
      description: >
        URI of the TPP, where the transaction flow shall be redirected to after
        a Redirect.


        Mandated for the Redirect SCA Approach (including OAuth2 SCA approach),
        specifically 

        when TPP-Redirect-Preferred equals "true".

        It is recommended to always use this header field.

      schema:
        type: string
        format: uri
      required: true
    TPP-Nok-Redirect-URI:
      name: TPP-Nok-Redirect-URI
      in: header
      description: >
        If this URI is contained, the TPP is asking to redirect the transaction
        flow to this address instead of the TPP-Redirect-URI in case

        of a negative result of the redirect SCA method. This might be ignored
        by the ASPSP.
      schema:
        type: string
        format: uri
      required: true
    TPP-Explicit-Authorisation-Preferred:
      name: TPP-Explicit-Authorisation-Preferred
      in: header
      description: >
        If it equals "true", the TPP prefers to start the authorisation process
        separately, 

        e.g. because of the usage of a signing basket. 

        This preference might be ignored by the ASPSP, if a signing basket is
        not supported as functionality.


        If it equals "false" or if the parameter is not used, there is no
        preference of the TPP. 

        This especially indicates that the TPP assumes a direct authorisation of
        the transaction in the next step, 

        without using a signing basket.
      schema:
        type: string
        enum:
          - "true"
          - "false"
      required: false
    PSU-ID:
      name: PSU-ID
      in: header
      description: >
        Client ID of the PSU in the ASPSP client interface. Might be mandated in
        the ASPSP's documentation.

        Is not contained if an OAuth2 based authentication was performed in a
        pre-step or an OAuth2 based SCA was performed in an preceeding

        AIS service in the same session.
      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.
      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.
      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.
      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.
      schema:
        type: string
        format: ipv4
      required: false
      example: 192.168.8.78
    PSU-IP-Address_optional:
      name: PSU-IP-Address
      in: header
      description: >
        The forwarded IP Address header field consists of the corresponding http
        request IP Address field between PSU and TPP.
      schema:
        type: string
        format: ipv4
      required: false
      example: 192.168.8.78
    PSU-IP-Address_conditionalForAis:
      name: PSU-IP-Address
      in: header
      description: >
        The forwarded IP Address header field consists of the corresponding HTTP
        request 

        IP Address field between PSU and TPP. 

        It shall be contained if and only if this request was actively initiated
        by the PSU.
      schema:
        type: string
        format: ipv4
      required: false
      example: 192.168.8.78
    PSU-IP-Port:
      name: PSU-IP-Port
      in: header
      description: >
        The forwarded IP Port header field consists of the corresponding HTTP
        request IP Port field between PSU and TPP, if available.
      schema:
        type: string
      required: false
      example: "1234"
    PSU-Accept:
      name: PSU-Accept
      in: header
      description: >
        The forwarded IP Accept header fields consist of the corresponding HTTP
        request Accept header fields between PSU and TPP, if available.
      schema:
        type: string
      required: false
    PSU-Accept-Charset:
      name: PSU-Accept-Charset
      in: header
      description: >
        The forwarded IP Accept header fields consist of the corresponding HTTP
        request Accept header fields between PSU and TPP, if available.
      schema:
        type: string
      required: false
    PSU-Accept-Encoding:
      name: PSU-Accept-Encoding
      in: header
      description: >
        The forwarded IP Accept header fields consist of the corresponding HTTP
        request Accept header fields between PSU and TPP, if available.
      schema:
        type: string
      required: false
    PSU-Accept-Language:
      name: PSU-Accept-Language
      in: header
      description: >
        The forwarded IP Accept header fields consist of the corresponding HTTP
        request Accept header fields between PSU and TPP, if available.
      schema:
        type: string
      required: false
    PSU-User-Agent:
      name: PSU-User-Agent
      in: header
      description: >
        The forwarded Agent header field of the HTTP request between PSU and
        TPP, if available.
      schema:
        type: string
      required: false
    PSU-Http-Method:
      name: PSU-Http-Method
      in: header
      description: |
        HTTP method used at the PSU and TPP interface, if available.
        Valid values are:
        * GET
        * POST
        * PUT
        * PATCH
        * DELETE
      schema:
        type: string
        enum:
          - GET
          - POST
          - PUT
          - PATCH
          - DELETE
      required: false
    PSU-Device-ID:
      name: PSU-Device-ID
      in: header
      description: >
        UUID (Universally Unique Identifier) for a device, which is used by the
        PSU, if available.

        UUID identifies either a device or a device dependant application
        installation.

        In case of an installation identification this ID need to be unaltered
        until removal from device.
      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.
      schema:
        type: string
        pattern: '(GEO:)[0-9]{1,3}\.[-][0-9]{6}\,[-][0-9]{1,3}\.[0-9]{6}'
      required: false
      example: "GEO:52.506931,13.144558"
  requestBodies:
    paymentInitiation:
      description: >
        XML request body for a payment inition request message 


        There are the following payment-products supported:
          * "payment-transaction" with XML-Body
          
        There is the following payment-service supported:
          * "payments"

      required: true
      content:
        application/xml:
          schema:
            type: object
            xml:
              name: Document
          examples:
            "Example 1: 'payments' - 'pain.001-sepa-credit-transfers'":
              $ref: "#/components/examples/pain_rietumu_example"
    signingBasket:
      description: >
        Request body for a confirmation of an establishing signing basket
        request
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/signingBasket"
          examples:
            Example:
              $ref: "#/components/examples/signingBasketExample"
    confirmationOfFunds:
      description: |
        Request body for a confirmation of funds request.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/confirmationOfFunds"
          examples:
            Example:
              $ref: "#/components/examples/confirmationOfFundsExample"
      required: true
    consents:
      description: |
        Request body for a consents request
      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.

        Possible values are
          * EMBEDDED
          * DECOUPLED
          * REDIRECT
        The OAuth SCA approach will be subsumed by REDIRECT.
      schema:
        type: string
        enum:
          - EMBEDDED
          - DECOUPLED
          - REDIRECT
        example: EMBEDDED
      required: false
    Location:
      description: |
        Location of the created resource.
      schema:
        type: string
        format: url
      required: false
  responses:
    OK_200_PaymentInitiationInformation:
      description: OK
      headers:
        X-Request-ID:
          $ref: "#/components/headers/X-Request-ID"
      content:
        application/xml:
          schema:
            type: object
            xml:
              name: Document
          examples:
            "Example 1: 'payments' - 'pain.001-sepa-credit-transfers'":
              $ref: "#/components/examples/pain_rietumu_example"
    OK_200_PaymentInitiationStatus:
      description: OK
      headers:
        X-Request-ID:
          $ref: "#/components/headers/X-Request-ID"
      content:
        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_CancellationList:
      description: OK
      headers:
        X-Request-ID:
          $ref: "#/components/headers/X-Request-ID"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/cancellationList"
          examples:
            Example 1:
              $ref: "#/components/examples/cancellationListExample"
    OK_200_AccountDetails:
      description: OK
      headers:
        X-Request-ID:
          $ref: "#/components/headers/X-Request-ID"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/accountDetails"
          examples:
            Regular Account:
              $ref: "#/components/examples/accountDetailsRegularAccount"
            Multicurrency Account:
              $ref: "#/components/examples/accountDetailsMulticurrencyAccount"
    OK_200_TransactionDetails:
      description: OK
      headers:
        X-Request-ID:
          $ref: "#/components/headers/X-Request-ID"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/transactionDetails"
          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"
    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.
    #
    #              The body has the structure of a either a camt.052 or camt.053
    #              message.
    #
    #              The 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"
    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"
          examples:
            Update PSU Identification - Payment Initiation (Decoupled Approach):
              $ref: >-
                #/components/examples/updatePsuIdentificationResponseExample_Decoupled_payments
            Update PSU Authentication - Payment Initiation (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"
    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, 

              "false" otherwise.
            type: object
            required:
              - fundsAvailable
            properties:
              fundsAvailable:
                type: boolean
          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"
      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"
      content:
        application/json:
          schema:
            oneOf:
              - $ref: "#/components/schemas/paymentInitationRequestResponse-201"
              - $ref: >-
                  #/components/schemas/paymentInitationRequestMultiLevelScaResponse-201
          examples:
            ? Response in case of a redirect with an implicitly created authorisation sub-resource
            : $ref: "#/components/examples/paymentInitiationExample_json_Redirect"
    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"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/consentsResponse-201"
          examples:
            Response in case of a redirect:
              $ref: "#/components/examples/consentResponseExample1a_Redirect"
    RECEIVED_202_PaymentInitiationCancel:
      description: Received
      headers:
        X-Request-ID:
          $ref: "#/components/headers/X-Request-ID"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/paymentInitiationCancelResponse-204_202"
          examples:
            Example:
              $ref: "#/components/examples/paymentInitiationCancelResponse-202"
    NO_CONTENT_204_PaymentInitiationCancel:
      description: OK
      headers:
        X-Request-ID:
          $ref: "#/components/headers/X-Request-ID"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/paymentInitiationCancelResponse-204_202"
          examples:
            Example:
              $ref: "#/components/examples/paymentInitiationCancelResponse-204_202"
    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
    BAD_REQUEST_400_PIS:
      description: Bad Request
    BAD_REQUEST_400_PIIS:
      description: Bad Request
    BAD_REQUEST_400_SB:
      description: Bad Request
    UNAUTHORIZED_401_PIS:
      description: Unauthorized
    UNAUTHORIZED_401_AIS:
      description: Unauthorized
    UNAUTHORIZED_401_PIIS:
      description: Unauthorized
    UNAUTHORIZED_401_SB:
      description: Unauthorized
    FORBIDDEN_403_PIS:
      description: Forbidden
    FORBIDDEN_403_AIS:
      description: Forbidden
    FORBIDDEN_403_PIIS:
      description: Forbidden
    FORBIDDEN_403_SB:
      description: Forbidden
    NOT_FOUND_404_PIS:
      description: Not found
    NOT_FOUND_404_AIS:
      description: Not found
    NOT_FOUND_404_PIIS:
      description: Not found
    NOT_FOUND_404_SB:
      description: Not found
    METHOD_NOT_ALLOWED_405_PIS:
      description: Method Not Allowed
    METHOD_NOT_ALLOWED_405_PIS_CANC:
      description: Method Not Allowed
    METHOD_NOT_ALLOWED_405_AIS:
      description: Method Not Allowed
    METHOD_NOT_ALLOWED_405_PIIS:
      description: Method Not Allowed
    METHOD_NOT_ALLOWED_405_SB:
      description: Method Not Allowed
    NOT_ACCEPTABLE_406_PIS:
      description: Not Acceptable
    NOT_ACCEPTABLE_406_AIS:
      description: Not Acceptable
    NOT_ACCEPTABLE_406_PIIS:
      description: Not Acceptable
    NOT_ACCEPTABLE_406_SB:
      description: Not Acceptable
    REQUEST_TIMEOUT_408_PIS:
      description: Request Timeout
    REQUEST_TIMEOUT_408_AIS:
      description: Request Timeout
    REQUEST_TIMEOUT_408_PIIS:
      description: Request Timeout
    REQUEST_TIMEOUT_408_SB:
      description: Request Timeout
    CONFLICT_409_PIS:
      description: Conflict
    CONFLICT_409_AIS:
      description: Conflict
    CONFLICT_409_PIIS:
      description: Conflict
    CONFLICT_409_SB:
      description: Conflict
    UNSUPPORTED_MEDIA_TYPE_415_AIS:
      description: Unsupported Media Type
    UNSUPPORTED_MEDIA_TYPE_415_PIS:
      description: Unsupported Media Type
    UNSUPPORTED_MEDIA_TYPE_415_PIIS:
      description: Unsupported Media Type
    UNSUPPORTED_MEDIA_TYPE_415_SB:
      description: Unsupported Media Type
    TOO_MANY_REQUESTS_429_PIS:
      description: Too Many Requests
    TOO_MANY_REQUESTS_429_AIS:
      description: Too Many Requests
    TOO_MANY_REQUESTS_429_PIIS:
      description: Too Many Requests
    TOO_MANY_REQUESTS_429_SB:
      description: Too Many Requests
    INTERNAL_SERVER_ERROR_500_PIS:
      description: Internal Server Error
    INTERNAL_SERVER_ERROR_500_AIS:
      description: Internal Server Error
    INTERNAL_SERVER_ERROR_500_PIIS:
      description: Internal Server Error
    INTERNAL_SERVER_ERROR_500_SB:
      description: Internal Server Error
    SERVICE_UNAVAILABLE_503_PIS:
      description: Service Unavailable
    SERVICE_UNAVAILABLE_503_AIS:
      description: Service Unavailable
    SERVICE_UNAVAILABLE_503_PIIS:
      description: Service Unavailable
    SERVICE_UNAVAILABLE_503_SB:
      description: Service Unavailable
  examples:
    maskedPanExample:
      value: 123456xxxxxx1234
    uuidExample:
      value: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
    pain_rietumu_example:
      description: A pain.001.001.03 message
      value: |
        <?xml version="1.0" encoding="UTF-8"?>
        <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 pain.001.001.03.xsd">
            <CstmrCdtTrfInitn>
                <GrpHdr>
                    <MsgId>jBn)h8Y3r-0T05baf9lDYEXpxwX8lzfeMDf</MsgId>
                    <CreDtTm>2021-11-25T13:31:56+02:00</CreDtTm>
                    <NbOfTxs>3</NbOfTxs>
                    <CtrlSum>192.84</CtrlSum>
                    <InitgPty>
                        <Nm>Bonevolcano</Nm>
                    </InitgPty>
                </GrpHdr>
                <PmtInf>
                    <PmtInfId>M:JMRUl4q7lYqiIRTJ-120dZ3Xp+TUamZzZ</PmtInfId>
                    <PmtMtd>TRF</PmtMtd>
                    <NbOfTxs>1</NbOfTxs>
                    <CtrlSum>3.04</CtrlSum>
                    <PmtTpInf>
                        <LclInstrm>
                            <Prtry>HIGH</Prtry>
                        </LclInstrm>
                    </PmtTpInf>
                    <ReqdExctnDt>2021-11-25</ReqdExctnDt>
                    <Dbtr/>
                    <DbtrAcct>
                        <Id>
                            <IBAN>LV55RTMB0000615807667</IBAN>
                        </Id>
                    </DbtrAcct>
                    <DbtrAgt>
                        <FinInstnId>
                            <BIC>RTMBLV2X</BIC>
                        </FinInstnId>
                    </DbtrAgt>
                    <CdtTrfTxInf>
                        <PmtId>
                            <InstrId>OxNfp0w3yKHpGIM</InstrId>
                            <EndToEndId>dqQQtz:42LzPOJhpGod/sAPh/sZTsfhOvh,</EndToEndId>
                        </PmtId>
                        <PmtTpInf>
                            <LclInstrm>
                                <Prtry>HIGH</Prtry>
                            </LclInstrm>
                        </PmtTpInf>
                        <Amt>
                            <InstdAmt Ccy="EUR">3.04</InstdAmt>
                        </Amt>
                        <ChrgBr>SLEV</ChrgBr>
                        <IntrmyAgt1>
                            <FinInstnId>
                                <BIC>MARKDEFFXXX</BIC>
                                <Nm>DEUTSCHE BUNDESBANK, ZENTRALE</Nm>
                            </FinInstnId>
                        </IntrmyAgt1>
                        <CdtrAgt>
                            <FinInstnId>
                                <BIC>CRESCHZZ80A</BIC>
                                <Nm>CREDIT SUISSE (SCHWEIZ) AG</Nm>
                            </FinInstnId>
                        </CdtrAgt>
                        <Cdtr>
                            <Nm>John Doe</Nm>
                            <PstlAdr>
                                <Ctry>US</Ctry>
                                <AdrLine>70 Wilson Ave, Campden, CT, 65928</AdrLine>
                            </PstlAdr>
                            <Id>
                                <OrgId>
                                    <Othr>
                                        <Id>g1u-RaYO8/ ug Fs (YZI(Q7g/LDVyXIM67</Id>
                                        <SchmeNm>
                                            <Cd>TXID</Cd>
                                        </SchmeNm>
                                    </Othr>
                                </OrgId>
                            </Id>
                            <CtryOfRes>US</CtryOfRes>
                        </Cdtr>
                        <CdtrAcct>
                            <Id>
                                <Othr>
                                    <Id>9000000003</Id>
                                </Othr>
                            </Id>
                        </CdtrAcct>
                        <RgltryRptg>
                            <Dtls>
                                <Tp>AMK</Tp>
                                <Cd>263</Cd>
                            </Dtls>
                        </RgltryRptg>
                        <RmtInf>
                            <Ustrd>PAYMENT FOR CONTRACT No. 1M/88 dd 01.01.2017 inv. NO. 82 dd 15.06.2018 FORWARD ING SERVICE AT THE SEAPORT</Ustrd>
                        </RmtInf>
                    </CdtTrfTxInf>
                </PmtInf>
                <PmtInf>
                    <PmtInfId>/vabvHXwMWq5Q7Mqi4IFy?nAXtPV,oX2p9D</PmtInfId>
                    <PmtMtd>TRF</PmtMtd>
                    <NbOfTxs>2</NbOfTxs>
                    <CtrlSum>189.80</CtrlSum>
                    <PmtTpInf>
                        <LclInstrm>
                            <Prtry>HIGH</Prtry>
                        </LclInstrm>
                    </PmtTpInf>
                    <ReqdExctnDt>2021-11-25</ReqdExctnDt>
                    <Dbtr/>
                    <DbtrAcct>
                        <Id>
                            <IBAN>LV50RTMB0000615807660</IBAN>
                        </Id>
                    </DbtrAcct>
                    <DbtrAgt>
                        <FinInstnId>
                            <BIC>RTMBLV2X</BIC>
                        </FinInstnId>
                    </DbtrAgt>
                    <CdtTrfTxInf>
                        <PmtId>
                            <InstrId>H?GbSC t2.F9JB-</InstrId>
                            <EndToEndId>odUPrGFolsCnk75zv.3Kuz82D1PHyGvhsdm</EndToEndId>
                        </PmtId>
                        <PmtTpInf>
                            <LclInstrm>
                                <Prtry>HIGH</Prtry>
                            </LclInstrm>
                        </PmtTpInf>
                        <Amt>
                            <InstdAmt Ccy="EUR">144.22</InstdAmt>
                        </Amt>
                        <ChrgBr>SLEV</ChrgBr>
                        <IntrmyAgt1>
                            <FinInstnId>
                                <BIC>BOFAGB22XXX</BIC>
                                <Nm>BANK OF AMERICA, N.A. LONDON</Nm>
                            </FinInstnId>
                        </IntrmyAgt1>
                        <CdtrAgt>
                            <FinInstnId>
                                <BIC>CRESCHZZ80A</BIC>
                                <Nm>CREDIT SUISSE (SCHWEIZ) AG</Nm>
                            </FinInstnId>
                        </CdtrAgt>
                        <Cdtr>
                            <Nm>Sofia Doe</Nm>
                            <PstlAdr>
                                <Ctry>US</Ctry>
                                <AdrLine>81 Wilson Trl, Kingsbridge, MD, 48914</AdrLine>
                            </PstlAdr>
                            <Id>
                                <OrgId>
                                    <Othr>
                                        <Id>aOaq.G4:gbIxL4F,A3qTpx3LEsJupP 0Env</Id>
                                        <SchmeNm>
                                            <Cd>TXID</Cd>
                                        </SchmeNm>
                                    </Othr>
                                </OrgId>
                            </Id>
                            <CtryOfRes>US</CtryOfRes>
                        </Cdtr>
                        <CdtrAcct>
                            <Id>
                                <Othr>
                                    <Id>9000000003</Id>
                                </Othr>
                            </Id>
                        </CdtrAcct>
                        <RgltryRptg>
                            <Dtls>
                                <Tp>AMK</Tp>
                                <Cd>237</Cd>
                            </Dtls>
                        </RgltryRptg>
                        <RmtInf>
                            <Ustrd>PAYMENT FOR CONTRACT No. 1M/88 dd 01.01.2017 inv. NO. 82 dd 15.06.2018 FORWARD ING SERVICE AT THE SEAPORT</Ustrd>
                        </RmtInf>
                    </CdtTrfTxInf>
                    <CdtTrfTxInf>
                        <PmtId>
                            <InstrId>(NGChOt-5OjcT-Z</InstrId>
                            <EndToEndId>0vejJEhtBBSZ LUKMtaO9o,VH7jNSw6fUKs</EndToEndId>
                        </PmtId>
                        <PmtTpInf>
                            <LclInstrm>
                                <Prtry>HIGH</Prtry>
                            </LclInstrm>
                        </PmtTpInf>
                        <Amt>
                            <InstdAmt Ccy="EUR">45.58</InstdAmt>
                        </Amt>
                        <ChrgBr>SLEV</ChrgBr>
                        <IntrmyAgt1>
                            <FinInstnId>
                                <BIC>BCITITMMXXX</BIC>
                                <Nm>INTESA SANPAOLO SPA</Nm>
                            </FinInstnId>
                        </IntrmyAgt1>
                        <CdtrAgt>
                            <FinInstnId>
                                <BIC>RIKOLV2X</BIC>
                                <Nm>LUMINOR BANK AS</Nm>
                            </FinInstnId>
                        </CdtrAgt>
                        <Cdtr>
                            <Nm>Natalie Doe</Nm>
                            <PstlAdr>
                                <Ctry>LV</Ctry>
                                <AdrLine>49 Jackson Ter, Baldock, NJ, 52241, Long address,  Very long address, </AdrLine>
                                <AdrLine>Very very long address</AdrLine>
                            </PstlAdr>
                            <Id>
                                <OrgId>
                                    <Othr>
                                        <Id>SZttfk97KZrZeCo9ZoOeWqfZ:AEFVw51WQp</Id>
                                        <SchmeNm>
                                            <Cd>TXID</Cd>
                                        </SchmeNm>
                                    </Othr>
                                </OrgId>
                            </Id>
                            <CtryOfRes>LV</CtryOfRes>
                        </Cdtr>
                        <CdtrAcct>
                            <Id>
                                <IBAN>LV92RIKO0000000000001</IBAN>
                            </Id>
                        </CdtrAcct>
                        <RgltryRptg>
                            <Dtls>
                                <Tp>AMK</Tp>
                                <Cd>170</Cd>
                            </Dtls>
                        </RgltryRptg>
                        <RmtInf>
                            <Ustrd>Remuneration in accordance with the Service Agreement N6AAAA dd 11.05.2018 finding of transport companies. Inv. 201806-1 dd 11.06.18.</Ustrd>
                        </RmtInf>
                    </CdtTrfTxInf>
                </PmtInf>
            </CstmrCdtTrfInitn>
        </Document>
    pain.001.001_SCT_singleTransaction:
      description: A pain.001.001.03 message in case of SCT
      value: |
        <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
          <CstmrCdtTrfInitn>
            <GrpHdr>
              <MsgId>MIPI-123456789RI-123456789</MsgId>
              <CreDtTm>2017-02-14T20:23:34.000Z</CreDtTm>
              <NbOfTxs>1</NbOfTxs>
              <CtrlSum>123</CtrlSum>
              <InitgPty>
                <Nm>PaymentInitiator</Nm>
                <Id><OrgId><Othr><Id>DE10000000012</Id>
                  <SchmeNm><Prptry>PISP</Prptry></SchmeNm></Othr></OrgId></Id>
              </InitgPty>
            </GrpHdr> 
            <PmtInf> 
              <PmtInfId>BIPI-123456789RI-123456789</PmtInfId>
              <PmtMtd>TRF</PmtMtd> 
              <NbOfTxs>1</NbOfTxs>
              <CtrlSum>123</CtrlSum>
              <PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf>
              <ReqdExctnDt>2017-02-15</ReqdExctnDt>
              <Dbtr><Nm>PSU Name</Nm></Dbtr>
              <DbtrAcct><Id><IBAN>DE87200500001234567890</IBAN></Id></DbtrAcct>
              <ChrgBr>SLEV</ChrgBr>
              <CdtTrfTxInf>
                <PmtId><EndToEndId>RI-123456789</EndToEndId></PmtId> 
                <Amt><InstdAmt Ccy="EUR">123</InstdAmt></Amt>
                <Cdtr><Nm>Merchant123</Nm></Cdtr>
                <CdtrAcct><Id><IBAN> DE23100120020123456789</IBAN></Id></CdtrAcct>
                <RmtInf><Ustrd>Ref Number Merchant-123456</Ustrd></RmtInf>
              </CdtTrfTxInf>
            </PmtInf>
          </CstmrCdtTrfInitn>
        </Document>
    pain.002.001_SCT_singleTransaction:
      description: A pain.002.001.03 message in case of SCT
      value: |
        <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.03">
          <CstmrPmtStsRpt>
            <GrpHdr>
              <MsgId>4572457256725689726906</MsgId>
              <CreDtTm>2017-02-14T20:24:56.021Z</CreDtTm>
              <DbtrAgt><FinInstnId><BIC>ABCDDEFF</BIC></FinInstnId></DbtrAgt>
              <CdtrAgt><FinInstnId><BIC>DCBADEFF</BIC></FinInstnId></CdtrAgt>
            </GrpHdr>
            <OrgnlGrpInfAndSts>
              <OrgnlMsgId>MIPI-123456789RI-123456789</OrgnlMsgId>
              <OrgnlMsgNmId>pain.001.001.03</OrgnlMsgNmId>
              <OrgnlCreDtTm>2017-02-14T20:23:34.000Z</OrgnlCreDtTm>
              <OrgnlNbOfTxs>1</OrgnlNbOfTxs>
              <OrgnlCtrlSum>123</OrgnlCtrlSum>
              <GrpSts>ACCT</GrpSts>
            </OrgnlGrpInfAndSts>
            <OrgnlPmtInfAndSts>
              <OrgnlPmtInfId>BIPI-123456789RI-123456789</OrgnlPmtInfId>
              <OrgnlNbOfTxs>1</OrgnlNbOfTxs>
              <OrgnlCtrlSum>123</OrgnlCtrlSum>
              <PmtInfSts>ACCT</PmtInfSts>
            </OrgnlPmtInfAndSts>
          </CstmrPmtStsRpt>
        </Document>
    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: latest
        frequency: monthly
        dayOfExecution: "01"
    paymentInitiationSctBody_bulk-payments_json:
      value:
        batchBookingPreferred: "true"
        debtorAccount:
          iban: DE40100100103307118608
        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
          product: Girokonto
          cashAccountType: CurrentAccount
          name: Main Account
          _links:
            balances:
              href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/balances
            transactions:
              href: /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
          product: Multicurrency Account
          cashAccountType: CurrentAccount
          name: Aggregation Account
          _links:
            balances:
              href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/balances
            transactions:
              href: /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: CurrentAccount
            name: Main Account
            _links:
              balances:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/balances
              transactions:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions
          - resourceId: 3dc3d5b3-7023-4848-9853-f5400a64e81g
            iban: DE2310010010123456788
            currency: USD
            product: Fremdw?hrungskonto
            cashAccountType: CurrentAccount
            name: US Dollar Account
            _links:
              balances:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81g/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
      value:
        accounts:
          - resourceId: 3dc3d5b3-7023-4848-9853-f5400a64e80f
            iban: DE2310010010123456788
            currency: EUR
            product: Girokonto
            cashAccountType: CurrentAccount
            name: Main Account
            _links:
              balances:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/balances
              transactions:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions
          - resourceId: 3dc3d5b3-7023-4848-9853-f5400a64e81g
            iban: DE2310010010123456788
            currency: USD
            product: Fremdw?hrungskonto
            cashAccountType: CurrentAccount
            name: US Dollar Account
            _links:
              balances:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81g/balances
              transactions:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81g/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 

        a multicurrency account which has two sub-accounts with currencies EUR
        and USD and where the ASPSP is giving 

        the data access on aggregation level and on sub-account level
      value:
        accounts:
          - resourceId: 3dc3d5b3-7023-4848-9853-f5400a64e80f
            iban: DE2310010010123456788
            currency: XXX
            product: Multi currency account
            cashAccountType: CurrentAccount
            name: Aggregation Account
            _links:
              balances:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e333/balances
              transactions:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e333/transactions
          - resourceId: 3dc3d5b3-7023-4848-9853-f5400a64e80f
            iban: DE2310010010123456788
            currency: EUR
            product: Girokonto
            cashAccountType: CurrentAccount
            name: Main Account
            _links:
              balances:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/balances
              transactions:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e80f/transactions
          - resourceId: 3dc3d5b3-7023-4848-9853-f5400a64e81g
            iban: DE2310010010123456788
            currency: USD
            product: Fremdw?hrungskonto
            cashAccountType: CurrentAccount
            name: US Dollar Account
            _links:
              balances:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81g/balances
              transactions:
                href: /v1/accounts/3dc3d5b3-7023-4848-9853-f5400a64e81g/transactions
    startScaProcessResponseExample1:
      value:
        scaStatus: received
        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: /v1/signing-baskets/1234-basket-567
          status:
            href: /v1/signing-baskets/1234-basket-567/status
          startAuthorisation:
            href: /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"
    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: /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: /v1/consents/1234-wertiq-983/status
          scaStatus:
            href: 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: 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: /v1/consents/1234-wertiq-983
          scaStatus:
            href: 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: /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: /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: /v1/payments/sepa-credit-transfers/1234-wertiq-983
          status:
            href: /v1/payments/1234-wertiq-983/status
          scaStatus:
            href: /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: /v1/payments/1234-wertiq-983
          status:
            href: /v1/payments/1234-wertiq-983/status
          startAuthorisation:
            href: /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: /v1/payments/1234-wertiq-983
          status:
            href: /v1/payments/1234-wertiq-983/status
          scaStatus:
            href: /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: /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: /v1/payments/1234-wertiq-983/authorisations
          self:
            href: /v1/payments/1234-wertiq-983
    paymentInitiationStatusResponse_json_Simple:
      value:
        transactionStatus: ACCP
    paymentInitiationCancelResponse-204_202:
      value:
        transactionStatus: CANC
    paymentInitiationCancelResponse-202:
      value:
        transactionStatus: ACTC
        _links:
          self:
            href: /v1/payments/123456scheduled789
          status:
            href: /v1/payments/123456scheduled789/status
          startAuthorisation:
            href: /v1/payments/123456scheduled789/cancellation-authorisations
    paymentInitiationStatusResponse_json_Extended:
      value: |
        { 
          "transactionStatus": "ACCP",
          "scaStatus": "Some SCA Status"
        }
    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: /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: /v1/payments/1234-wertiq-983/authorisations/123auth456
    transactionAuthorisationResponseExample:
      description: >-
        Response of a Transaction Authorisation request for the embedded
        approach.
      value:
        scaStatus: finalised
    confirmationOfFundsExample:
      description: Request body for a confirmation of funds.
      value:
        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:
          - balanceType: closingBooked
            balanceAmount:
              currency: EUR
              amount: "500.00"
            referenceDate: "2017-10-25"
          - balanceType: expected
            balanceAmount:
              currency: EUR
              amount: "900.00"
            lastChangeDateTime: "2017-10-25T15:30:35.035Z"
    balancesExample2_MulticurrencyAcount:
      description: >
        Response in case of a multicurrency account with one account in EUR, 

        one in USD, where the ASPSP has delivered a link to the balance endpoint
        relative to the aggregated 

        multicurrency account (aggregation level).
      value:
        balances:
          - balanceType: closingBooked
            balanceAmount:
              currency: EUR
              amount: "500.00"
            referenceDate: "2017-10-25"
          - balanceType: expected
            balanceAmount:
              currency: EUR
              amount: "900.00"
            lastChangeDateTime: "2017-10-25T15:30:35.035Z"
          - balanceType: closingBooked
            balanceAmount:
              currency: USD
              amount: "350.00"
            referenceDate: "2017-10-25"
          - balanceType: expected
            balanceAmount:
              currency: USD
              amount: "350.00"
            lastChangeDateTime: "2017-10-24T14:30:21Z"
    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: /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: /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-RCVD-ESDD
    authorisationListExample:
      value:
        authorisationIds:
          - 123auth456
    cancellationListExample:
      value:
        cancellationIds:
          - 123auth456
tags:
  - name: Payment Initiation Service (PIS)
    description: >
      The Decription for Payment Initiation Service (PIS) offers the following
      services:
        * Initiation and update of a payment request;
        * Status information of a payment.
  - name: Confirmation of Funds Service (PIIS)
    description: >
      Confirmation of Funds Service (PIIS) returns a confirmation of funds
      request at the ASPSP.
  - name: Account Information Service (AIS)
    description: |
      The Account Information Service (AIS) offers the following services:
        * Transaction reports for a given account or card account including balances if applicable;
        * Balances of a given account or card account;
        * A list of available accounts or card account;
        * 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.
