openapi: 3.0.1

info:
  contact:
    name: JSC Bank of Georgia
    url: https://api.bog.ge/docs/openbanking
  x-logo:
    url: "xs2a/logo.svg"
  description: |
    The payment initiation flow depends heavily on the SCA approach implemented by the ASPSP. 
    The most complex flow is the flow for the Embedded SCA Approach, which further differs on whether there are various authentication methods available for the PSU. 
    In the following, the different API flows are provided as an overview for these different scenarios. 
    Remark: The flows do not always cover all variances or complexities of the implementation and are exemplary flows.
  license:
    name: Creative Commons Attribution 4.0 International Public License
    url: https://creativecommons.org/licenses/by/4.0/
  title: openFinance API Framework XS2A API as PSD2 Interface Implementation Guidelines - Payment Initiation Service
  version: "2.3"
  x-references:
    documents:
      - document:
        title: openFinance API Framework Data Dictionary
        version: "2.2.6"
      - document:
        title: openFinance API Framework Implementation Guidelines Protocol Functions and Security Measures
        version: "2.2"
      - document:
        title: openFinance API Framework Payment Formats and Domestic AIS/PIS Definitions for Version 2.x
        version: "2.0"
      - document:
        title: openFinance API Framework XS2A API as PSD2 Interface Implementation Guidelines
        version: "2.3"

externalDocs:
  description: |
    openFinance API Framework XS2A API as PSD2 Interface Implementation Guidelines
  url: https://www.berlin-group.org/openfinance-downloads

servers:
  - url: https://xs2a.bog.ge/0.8
    description: Production Environment
  - url: https://xs2a-sandbox.bog.ge/0.8
    description: Sandbox Environment

tags:
  - name: Payment Initiation Service (PIS)
    description: |
      The component for Payment Initiation Service (PIS) offers the following services:
        * Initiation and update of a payment request
        * Status information of a payment

paths:
  /v2/payments/{payment-product}:
    post:
      summary: Payment Initiation Request for Single Payments
      description: | 
        Creates a payment initiation request at the ASPSP. 
        See \"XS2A API as PSD2 Interface Implementation Guidelines \", sections \"Payment Initiation with JSON encoding of the Payment Instruction\" and \"Payment Initiation with pain.001 XML message as Payment Instruction \".
      operationId: initiatePayment
      tags:
        - Payment Initiation Service (PIS)
      security:
        - {}
        - BearerAuthOAuth: []
      parameters:
        - $ref: '#/components/parameters/PATH_paymentProduct_SinglePayments'
        - $ref: '#/components/parameters/HEADER_psuIpPort'
        - $ref: '#/components/parameters/HEADER_psuAccept'
        - $ref: '#/components/parameters/HEADER_psuAcceptCharset'
        - $ref: '#/components/parameters/HEADER_psuAcceptEncoding'
        - $ref: '#/components/parameters/HEADER_psuAcceptLanguage'
        - $ref: '#/components/parameters/HEADER_psuUserAgent'
        - $ref: '#/components/parameters/HEADER_psuHttpMethod'
        - $ref: '#/components/parameters/HEADER_psuDeviceId'
        - $ref: '#/components/parameters/HEADER_psuGeoLocation'
        - $ref: '#/components/parameters/HEADER_psuId'
        - $ref: '#/components/parameters/HEADER_psuIdType'
        - $ref: '#/components/parameters/HEADER_psuCorporateId'
        - $ref: '#/components/parameters/HEADER_psuCorporateIdType'
        - $ref: '#/components/parameters/HEADER_clientScaApproachPreference'
        - $ref: '#/components/parameters/HEADER_clientRedirectUri'
        - $ref: '#/components/parameters/HEADER_clientNokRedirectUri'
        - $ref: '#/components/parameters/HEADER_clientExplicitAuthorisationPreferred'
        - $ref: '#/components/parameters/HEADER_clientNotificationUri'
        - $ref: '#/components/parameters/HEADER_clientNotificationContentPreferred'
        - $ref: '#/components/parameters/HEADER_clientVopRequested'
        - $ref: '#/components/parameters/HEADER_clientVopRequestId'
        - $ref: '#/components/parameters/HEADER_clientBrandLoggingInformation'
        - $ref: '#/components/parameters/HEADER_digest'
        - $ref: '#/components/parameters/HEADER_xJwsSignature'
        - $ref: '#/components/parameters/HEADER_xRequestId'
        - $ref: '#/components/parameters/HEADER_bodySigProfile'
        - $ref: '#/components/parameters/HEADER_bodyEncProfile'
        - $ref: '#/components/parameters/HEADER_bodyEncList'
        - $ref: '#/components/parameters/HEADER_contentType_mandatory'
        - $ref: '#/components/parameters/HEADER_consentId_optional'
        - $ref: '#/components/parameters/HEADER_psuIpAddress_mandatory'
        - $ref: '#/components/parameters/HEADER_tppRejectionNoFundsPreferred'
      requestBody:
        required: true
        content: 
          application/json:
            schema:
              anyOf: #Different Payment products in JSON
                - $ref: '#/components/schemas/SinglePayment_SCT_Core'
                - $ref: '#/components/schemas/SinglePayment_SCT_inst_Core'
                - $ref: '#/components/schemas/SinglePayment_Target2_Core'
                - $ref: '#/components/schemas/SinglePayment_Cross_Border_CT_Core'
          application/xml:
            schema:
              description: |
                A pain.001 structure corresponding to the Credit Transfer schema for the respective service
              type: string
      responses:
        '201':
          $ref: '#/components/responses/created_201_PIS'
        '400':
          $ref: '#/components/responses/decline_400_PIS'
        '401':
          $ref: '#/components/responses/decline_401_PIS'
        '403':
          $ref: '#/components/responses/decline_403_PIS'
        '404':
          $ref: '#/components/responses/decline_404_PIS'
        '405':
          $ref: '#/components/responses/decline_405_PIS'
        '406':
          $ref: '#/components/responses/decline_406'
        '408':
          $ref: '#/components/responses/decline_408'
        '409':
          $ref: '#/components/responses/decline_409_PIS'
        '415':
          $ref: '#/components/responses/decline_415'
        '500':
          $ref: '#/components/responses/decline_500'
        '503':
          $ref: '#/components/responses/decline_503'
  /v2/bulk-payments/{payment-product}:
    post:
      summary: Payment Initiation Request for Bulk Payments
      description: | 
        Creates a payment initiation request at the ASPSP. 
        See \"XS2A API as PSD2 Interface Implementation Guidelines \", sections \"Bulk Payment Initiation with JSON encoding of the Payment Instruction\" and \"Bulk Payment Initiation with XML message as Payment Instruction\".
      operationId: initiatePaymentBulk
      tags:
        - Payment Initiation Service (PIS)
      security:
        - {}
        - BearerAuthOAuth: []
      parameters:
        - $ref: '#/components/parameters/PATH_paymentProduct_BulkPayments'
        - $ref: '#/components/parameters/HEADER_psuIpPort'
        - $ref: '#/components/parameters/HEADER_psuAccept'
        - $ref: '#/components/parameters/HEADER_psuAcceptCharset'
        - $ref: '#/components/parameters/HEADER_psuAcceptEncoding'
        - $ref: '#/components/parameters/HEADER_psuAcceptLanguage'
        - $ref: '#/components/parameters/HEADER_psuUserAgent'
        - $ref: '#/components/parameters/HEADER_psuHttpMethod'
        - $ref: '#/components/parameters/HEADER_psuDeviceId'
        - $ref: '#/components/parameters/HEADER_psuGeoLocation'
        - $ref: '#/components/parameters/HEADER_psuId'
        - $ref: '#/components/parameters/HEADER_psuIdType'
        - $ref: '#/components/parameters/HEADER_psuCorporateId'
        - $ref: '#/components/parameters/HEADER_psuCorporateIdType'
        - $ref: '#/components/parameters/HEADER_clientScaApproachPreference'
        - $ref: '#/components/parameters/HEADER_clientRedirectUri'
        - $ref: '#/components/parameters/HEADER_clientNokRedirectUri'
        - $ref: '#/components/parameters/HEADER_clientExplicitAuthorisationPreferred'
        - $ref: '#/components/parameters/HEADER_clientNotificationUri'
        - $ref: '#/components/parameters/HEADER_clientNotificationContentPreferred'
        - $ref: '#/components/parameters/HEADER_clientVopRequested'
        - $ref: '#/components/parameters/HEADER_clientVopRequestId'
        - $ref: '#/components/parameters/HEADER_clientBrandLoggingInformation'
        - $ref: '#/components/parameters/HEADER_digest'
        - $ref: '#/components/parameters/HEADER_xJwsSignature'
        - $ref: '#/components/parameters/HEADER_xRequestId'
        - $ref: '#/components/parameters/HEADER_bodySigProfile'
        - $ref: '#/components/parameters/HEADER_bodyEncProfile'
        - $ref: '#/components/parameters/HEADER_bodyEncList'
        - $ref: '#/components/parameters/HEADER_contentType_mandatory'
        - $ref: '#/components/parameters/HEADER_consentId_optional'
        - $ref: '#/components/parameters/HEADER_psuIpAddress_mandatory'
        - $ref: '#/components/parameters/HEADER_tppRejectionNoFundsPreferred'
      requestBody:
        required: true
        content: 
          application/json:
            schema:
              anyOf: #Different Payment products in JSON
                - $ref: '#/components/schemas/BulkPayment_SCT_Core'
                - $ref: '#/components/schemas/BulkPayment_SCT_inst_Core'
                - $ref: '#/components/schemas/BulkPayment_Target2_Core'
                - $ref: '#/components/schemas/BulkPayment_Cross_Border_CT_Core'
          application/xml:
            schema:
              description: |
                A pain.001 structure corresponding to the Credit Transfer schema for the respective service
              type: string
      responses:
        '201':
          $ref: '#/components/responses/created_201_PIS'
        '400':
          $ref: '#/components/responses/decline_400_PIS'
        '401':
          $ref: '#/components/responses/decline_401_PIS'
        '403':
          $ref: '#/components/responses/decline_403_PIS'
        '404':
          $ref: '#/components/responses/decline_404_PIS'
        '405':
          $ref: '#/components/responses/decline_405_PIS'
        '406':
          $ref: '#/components/responses/decline_406'
        '408':
          $ref: '#/components/responses/decline_408'
        '409':
          $ref: '#/components/responses/decline_409_PIS'
        '415':
          $ref: '#/components/responses/decline_415'
        '500':
          $ref: '#/components/responses/decline_500'
        '503':
          $ref: '#/components/responses/decline_503'
  /v2/{payment-service}/{payment-product}/{paymentId}/status:
    get:
      summary: Payment Status Request
      description: | 
        Reads the status of a payment initiation. 
        See \"XS2A API as PSD2 Interface Implementation Guidelines \", section \"Get Transaction Status Request\".
      operationId: getTransactionStatus
      tags:
        - Payment Initiation Service (PIS)
      security:
        - {}
        - BearerAuthOAuth: []
      parameters:
        - $ref: '#/components/parameters/PATH_paymentService'
        - $ref: '#/components/parameters/PATH_paymentProduct_all'
        - $ref: '#/components/parameters/PATH_paymentId'
        - $ref: '#/components/parameters/HEADER_digest'
        - $ref: '#/components/parameters/HEADER_xJwsSignature'
        - $ref: '#/components/parameters/HEADER_xRequestId'
      responses:
        '200':
          $ref: '#/components/responses/Ok_200_PIS_Status'
        '400':
          $ref: '#/components/responses/decline_400_PIS'
        '401':
          $ref: '#/components/responses/decline_401_PIS'
        '403':
          $ref: '#/components/responses/decline_403_PIS'
        '404':
          $ref: '#/components/responses/decline_404_PIS'
        '405':
          $ref: '#/components/responses/decline_405_PIS'
        '406':
          $ref: '#/components/responses/decline_406'
        '408':
          $ref: '#/components/responses/decline_408'
        '409':
          $ref: '#/components/responses/decline_409_PIS'
        '415':
          $ref: '#/components/responses/decline_415'
        '500':
          $ref: '#/components/responses/decline_500'
        '503':
          $ref: '#/components/responses/decline_503'
  /v2/{payment-service}/{payment-product}/{paymentId}:
    get:
      summary: Get Payment Request
      description: | 
        Reads the content of a payment initiation. 
        See \"XS2A API as PSD2 Interface Implementation Guidelines \", section \"Get Payment Request\".
      operationId: getPayment
      tags:
        - Payment Initiation Service (PIS)
      security:
        - {}
        - BearerAuthOAuth: []
      parameters:
        - $ref: '#/components/parameters/PATH_paymentService'
        - $ref: '#/components/parameters/PATH_paymentProduct_all'
        - $ref: '#/components/parameters/PATH_paymentId'
        - $ref: '#/components/parameters/HEADER_digest'
        - $ref: '#/components/parameters/HEADER_xJwsSignature'
        - $ref: '#/components/parameters/HEADER_xRequestId'
      responses:
        '200':
          $ref: '#/components/responses/Ok_200_PIS_Payment'
        '400':
          $ref: '#/components/responses/decline_400_PIS'
        '401':
          $ref: '#/components/responses/decline_401_PIS'
        '403':
          $ref: '#/components/responses/decline_403_PIS'
        '404':
          $ref: '#/components/responses/decline_404_PIS'
        '405':
          $ref: '#/components/responses/decline_405_PIS'
        '406':
          $ref: '#/components/responses/decline_406'
        '408':
          $ref: '#/components/responses/decline_408'
        '409':
          $ref: '#/components/responses/decline_409_PIS'
        '415':
          $ref: '#/components/responses/decline_415'
        '500':
          $ref: '#/components/responses/decline_500'
        '503':
          $ref: '#/components/responses/decline_503'
    delete:
      summary: Payment Cancellation Request
      description: | 
        Initiates the cancellation of a payment 
        See \"XS2A API as PSD2 Interface Implementation Guidelines \", section \"Payment Cancellation Request\".
      operationId: deletePayment
      tags:
        - Payment Initiation Service (PIS)
      security:
        - {}
        - BearerAuthOAuth: []
      parameters:
        - $ref: '#/components/parameters/PATH_paymentService'
        - $ref: '#/components/parameters/PATH_paymentProduct_all'
        - $ref: '#/components/parameters/PATH_paymentId'
        - $ref: '#/components/parameters/HEADER_psuIpPort'
        - $ref: '#/components/parameters/HEADER_psuAccept'
        - $ref: '#/components/parameters/HEADER_psuAcceptCharset'
        - $ref: '#/components/parameters/HEADER_psuAcceptEncoding'
        - $ref: '#/components/parameters/HEADER_psuAcceptLanguage'
        - $ref: '#/components/parameters/HEADER_psuUserAgent'
        - $ref: '#/components/parameters/HEADER_psuHttpMethod'
        - $ref: '#/components/parameters/HEADER_psuDeviceId'
        - $ref: '#/components/parameters/HEADER_psuGeoLocation'
        - $ref: '#/components/parameters/HEADER_psuId'
        - $ref: '#/components/parameters/HEADER_psuIdType'
        - $ref: '#/components/parameters/HEADER_psuCorporateId'
        - $ref: '#/components/parameters/HEADER_psuCorporateIdType'
        - $ref: '#/components/parameters/HEADER_clientScaApproachPreference'
        - $ref: '#/components/parameters/HEADER_clientRedirectUri'
        - $ref: '#/components/parameters/HEADER_clientNokRedirectUri'
        - $ref: '#/components/parameters/HEADER_clientExplicitAuthorisationPreferred'
        - $ref: '#/components/parameters/HEADER_clientNotificationUri'
        - $ref: '#/components/parameters/HEADER_clientNotificationContentPreferred'
        - $ref: '#/components/parameters/HEADER_clientBrandLoggingInformation'
        - $ref: '#/components/parameters/HEADER_digest'
        - $ref: '#/components/parameters/HEADER_xJwsSignature'
        - $ref: '#/components/parameters/HEADER_xRequestId'
      responses:
        '202':
          $ref: '#/components/responses/accepted_202_PIS_Payment'
        '204':
          $ref: '#/components/responses/created_204_PIS_Payment'
        '400':
          $ref: '#/components/responses/decline_400_PIS'
        '401':
          $ref: '#/components/responses/decline_401_PIS'
        '403':
          $ref: '#/components/responses/decline_403_PIS'
        '404':
          $ref: '#/components/responses/decline_404_PIS'
        '405':
          $ref: '#/components/responses/decline_405_PIS_CANC'
        '406':
          $ref: '#/components/responses/decline_406_PIS'
        '408':
          $ref: '#/components/responses/decline_408_PIS'
        '409':
          $ref: '#/components/responses/decline_409_PIS'
        '415':
          $ref: '#/components/responses/decline_415_PIS'
        '500':
          $ref: '#/components/responses/decline_500'
        '503':
          $ref: '#/components/responses/decline_503'
  /v2/bulk-payments/{payment-product}/{paymentId}/extended-status:
    get:
      summary: Bulk Payment Extended Status Request
      description: | 
        Can check the overall status of a bulk payment initiation together with reporting rejected transactions. 
        See \"XS2A API as PSD2 Interface Implementation Guidelines \", section \"Get Bulk Extended Status Request\".
      operationId: getBulkExtendedStatus
      tags:
        - Payment Initiation Service (PIS)
      security:
        - {}
        - BearerAuthOAuth: []
      parameters:
        - $ref: '#/components/parameters/PATH_paymentProduct_all'
        - $ref: '#/components/parameters/PATH_paymentId'
        - $ref: '#/components/parameters/HEADER_digest'
        - $ref: '#/components/parameters/HEADER_xJwsSignature'
        - $ref: '#/components/parameters/HEADER_xRequestId'
      responses:
        '200':
          $ref: '#/components/responses/Ok_200_PIS_ExtendedStatus'
        '400':
          $ref: '#/components/responses/decline_400_PIS'
        '401':
          $ref: '#/components/responses/decline_401_PIS'
        '403':
          $ref: '#/components/responses/decline_403_PIS'
        '404':
          $ref: '#/components/responses/decline_404_PIS'
        '405':
          $ref: '#/components/responses/decline_405_PIS'
        '406':
          $ref: '#/components/responses/decline_406'
        '408':
          $ref: '#/components/responses/decline_408'
        '409':
          $ref: '#/components/responses/decline_409_PIS'
        '415':
          $ref: '#/components/responses/decline_415'
        '500':
          $ref: '#/components/responses/decline_500'
        '503':
          $ref: '#/components/responses/decline_503'
  /v2/{resource-path}/{resourceId}/{authorisation-category}:
    post:
      summary: Start Authorisation Process
      description: | 
        Creates an account information consent resource at the ASPSP regarding access to account information to account types and accounts specified in this request.
      operationId: startAuthorisationProcess
      tags:
        - Authorisation
      security:
        - {}
        - BearerAuthOAuth: []
      parameters:
        - $ref: '#/components/parameters/PATH_resourcePath'
        - $ref: '#/components/parameters/PATH_resourceId'
        - $ref: '#/components/parameters/PATH_authorisationCategory'
        - $ref: '#/components/parameters/HEADER_psuIpAddress_optional'
        - $ref: '#/components/parameters/HEADER_psuIpPort'
        - $ref: '#/components/parameters/HEADER_psuAccept'
        - $ref: '#/components/parameters/HEADER_psuAcceptCharset'
        - $ref: '#/components/parameters/HEADER_psuAcceptEncoding'
        - $ref: '#/components/parameters/HEADER_psuAcceptLanguage'
        - $ref: '#/components/parameters/HEADER_psuUserAgent'
        - $ref: '#/components/parameters/HEADER_psuHttpMethod'
        - $ref: '#/components/parameters/HEADER_psuDeviceId'
        - $ref: '#/components/parameters/HEADER_psuGeoLocation'
        - $ref: '#/components/parameters/HEADER_digest'
        - $ref: '#/components/parameters/HEADER_xJwsSignature'
        - $ref: '#/components/parameters/HEADER_xRequestId'
        - $ref: '#/components/parameters/HEADER_bodySigProfile'
        - $ref: '#/components/parameters/HEADER_bodyEncProfile'
        - $ref: '#/components/parameters/HEADER_bodyEncList'
        - $ref: '#/components/parameters/HEADER_psuId'
        - $ref: '#/components/parameters/HEADER_psuIdType'
        - $ref: '#/components/parameters/HEADER_psuCorporateId'
        - $ref: '#/components/parameters/HEADER_psuCorporateIdType'
        - $ref: '#/components/parameters/HEADER_clientScaApproachPreference'
        - $ref: '#/components/parameters/HEADER_clientRedirectUri'
        - $ref: '#/components/parameters/HEADER_clientNokRedirectUri'
      requestBody:
        required: false #default: No Authorisation Body
        content:
          application/json:
            schema:
              anyOf: #Different Authorisation Bodies
                - type: object #Case: \"startAuthorisationWithPsuAuthentication\" or \"startAuthorisationWithEncryptedPsuAuthentication\"
                  required:
                    - psuData
                  properties: 
                    psuData:
                      description: |
                        The password, orencryptedPassword, subfield is used, depending depending on encryption requirements of the ASPSP as indicated in the corresponding hyperlink 
                        contained in the preceding response message of the ASPSP. The related encryption requirements are defined in Document \"Protocol Functions and Security Measures\". 
                      allOf:
                        - $ref: '#/components/schemas/psuCredentials'
                - type: object #Case: \"startAuthorisationWithAuthenticationMethodSelection\"
                  required:
                    - authenticationMethodId 
                  properties: 
                    authenticationMethodId :
                      description: |
                        The authentication method ID as provided by the ASPSP. 
                      type: string
      responses:
        '201':
          $ref: '#/components/responses/created_201_AUTHORISATION'
        '400':
          $ref: '#/components/responses/decline_400_AUTHORISATION'
        '401':
          $ref: '#/components/responses/decline_401_AUTHORISATION'
        '403':
          $ref: '#/components/responses/decline_403_AUTHORISATION'
        '404':
          $ref: '#/components/responses/decline_404_AUTHORISATION'
        '405':
          $ref: '#/components/responses/decline_405_AUTHORISATION'
        '406':
          $ref: '#/components/responses/decline_406_AUTHORISATION'
        '408':
          $ref: '#/components/responses/decline_408_AUTHORISATION'
        '409':
          $ref: '#/components/responses/decline_409_AUTHORISATION'
        '415':
          $ref: '#/components/responses/decline_415_AUTHORISATION'
        '500':
          $ref: '#/components/responses/decline_500'
        '503':
          $ref: '#/components/responses/decline_503'
    get:
      summary: Get Authorisation Sub-Resources Request
      description: | 
        Will deliver an array of resource identifications of all generated authorisation or cancellation authorisation sub-resources.
      operationId: getAuthorisationSubResources
      tags:
        - Authorisation
      security:
        - {}
        - BearerAuthOAuth: []
      parameters:
        - $ref: '#/components/parameters/PATH_resourcePath'
        - $ref: '#/components/parameters/PATH_resourceId'
        - $ref: '#/components/parameters/PATH_authorisationCategory'
        - $ref: '#/components/parameters/HEADER_digest'
        - $ref: '#/components/parameters/HEADER_xJwsSignature'
        - $ref: '#/components/parameters/HEADER_xRequestId'
      responses:
        '200':
          $ref: '#/components/responses/created_200_GET_AUTHORISATION_IDS'
        '400':
          $ref: '#/components/responses/decline_400_AUTHORISATION'
        '401':
          $ref: '#/components/responses/decline_401_AUTHORISATION'
        '403':
          $ref: '#/components/responses/decline_403_AUTHORISATION'
        '404':
          $ref: '#/components/responses/decline_404_AUTHORISATION'
        '405':
          $ref: '#/components/responses/decline_405_AUTHORISATION'
        '406':
          $ref: '#/components/responses/decline_406_AUTHORISATION'
        '408':
          $ref: '#/components/responses/decline_408_AUTHORISATION'
        '409':
          $ref: '#/components/responses/decline_409_AUTHORISATION'
        '415':
          $ref: '#/components/responses/decline_415_AUTHORISATION'
        '500':
          $ref: '#/components/responses/decline_500'
        '503':
          $ref: '#/components/responses/decline_503'
  /v2/{resource-path}/{resourceId}/{authorisation-category}/{authorisationId} :
    get:
      summary: Get Authorisation Status Request
      description: | 
        Checks the SCA status of an authorisation or cancellation authorisation sub-resource.
      operationId: getAuthorisationStatus
      tags:
        - Authorisation
      security:
        - {}
        - BearerAuthOAuth: []
      parameters:
        - $ref: '#/components/parameters/PATH_resourcePath'
        - $ref: '#/components/parameters/PATH_resourceId'
        - $ref: '#/components/parameters/PATH_authorisationCategory'
        - $ref: '#/components/parameters/PATH_authorisationId'
        - $ref: '#/components/parameters/HEADER_digest'
        - $ref: '#/components/parameters/HEADER_xJwsSignature'
        - $ref: '#/components/parameters/HEADER_xRequestId'
      responses:
        '200':
          $ref: '#/components/responses/created_200_GET_AUTHORISATION_STATUS'
        '400':
          $ref: '#/components/responses/decline_400_AUTHORISATION'
        '401':
          $ref: '#/components/responses/decline_401_AUTHORISATION'
        '403':
          $ref: '#/components/responses/decline_403_AUTHORISATION'
        '404':
          $ref: '#/components/responses/decline_404_AUTHORISATION'
        '405':
          $ref: '#/components/responses/decline_405_AUTHORISATION'
        '406':
          $ref: '#/components/responses/decline_406_AUTHORISATION'
        '408':
          $ref: '#/components/responses/decline_408_AUTHORISATION'
        '409':
          $ref: '#/components/responses/decline_409_AUTHORISATION'
        '415':
          $ref: '#/components/responses/decline_415_AUTHORISATION'
        '500':
          $ref: '#/components/responses/decline_500'
        '503':
          $ref: '#/components/responses/decline_503'
    put:
      summary: Update PSU Data
      description: | 
        Updates the addressed authorisation sub-resource data on the server by PSU data if requested by the ASPSP.
      operationId: updatePSUData
      tags:
        - Authorisation
      security:
        - {}
        - BearerAuthOAuth: []
      parameters:
        - $ref: '#/components/parameters/PATH_resourcePath'
        - $ref: '#/components/parameters/PATH_resourceId'
        - $ref: '#/components/parameters/PATH_authorisationCategory'
        - $ref: '#/components/parameters/PATH_authorisationId'
        - $ref: '#/components/parameters/HEADER_psuIpAddress_optional'
        - $ref: '#/components/parameters/HEADER_psuIpPort'
        - $ref: '#/components/parameters/HEADER_psuAccept'
        - $ref: '#/components/parameters/HEADER_psuAcceptCharset'
        - $ref: '#/components/parameters/HEADER_psuAcceptEncoding'
        - $ref: '#/components/parameters/HEADER_psuAcceptLanguage'
        - $ref: '#/components/parameters/HEADER_psuUserAgent'
        - $ref: '#/components/parameters/HEADER_psuHttpMethod'
        - $ref: '#/components/parameters/HEADER_psuDeviceId'
        - $ref: '#/components/parameters/HEADER_psuGeoLocation'
        - $ref: '#/components/parameters/HEADER_digest'
        - $ref: '#/components/parameters/HEADER_xJwsSignature'
        - $ref: '#/components/parameters/HEADER_xRequestId'
        - $ref: '#/components/parameters/HEADER_bodySigProfile'
        - $ref: '#/components/parameters/HEADER_bodyEncProfile'
        - $ref: '#/components/parameters/HEADER_bodyEncList'
        - $ref: '#/components/parameters/HEADER_psuId'
        - $ref: '#/components/parameters/HEADER_psuIdType'
        - $ref: '#/components/parameters/HEADER_psuCorporateId'
        - $ref: '#/components/parameters/HEADER_psuCorporateIdType'
      requestBody:
        required: false #Case: \"Update PSU Data (Identification)\": No Authorisation Body
        content:
          application/json:
            schema:
              anyOf: #Different Authorisation Bodies
                - type: object #Case: \"Update PSU Data (Authentication)\"  in the Decoupled or Embedded Approach 
                  required:
                    - psuData
                  properties: 
                    psuData:
                      description: |
                         The password, orencryptedPassword, subfield is used, depending depending on encryption requirements of the ASPSP as indicated in the corresponding hyperlink 
                         contained in the preceding response message of the ASPSP. The related encryption requirements are defined in document \"Protocol Functions and Security Measures\". 
                      allOf:
                        - $ref: '#/components/schemas/psuCredentials'
                - type: object #Case: \"Update PSU Data (Select Authentication Method)\"
                  required:
                    - authenticationMethodId 
                  properties: 
                    authenticationMethodId :
                      description: |
                        The authentication method ID as provided by the ASPSP. 
                      type: string
                - type: object #Case: \"Transaction Authorisation\"
                  required:
                    - scaAuthenticationData 
                  properties: 
                    scaAuthenticationData :
                      description: |
                        SCA authentication data, depending on the chosen authentication method. If the data is binary, then it is base64 encoded. 
                      type: string
                - type: object #Case: \"Authorisation Confirmation\"
                  required:
                    - confirmationCode 
                  properties: 
                    confirmationCode :
                      description: |
                        Confirmation code as retrieved by the TPP within the Redirect SCA Approach as described in document \"Protocol Functions and Security Measures\". 
                      type: string
      responses:
        '200':
          $ref: '#/components/responses/Ok_200_PUT_AUTHORISATION'
        '400':
          $ref: '#/components/responses/decline_400_AUTHORISATION'
        '401':
          $ref: '#/components/responses/decline_401_AUTHORISATION'
        '403':
          $ref: '#/components/responses/decline_403_AUTHORISATION'
        '404':
          $ref: '#/components/responses/decline_404_AUTHORISATION'
        '405':
          $ref: '#/components/responses/decline_405_AUTHORISATION'
        '406':
          $ref: '#/components/responses/decline_406_AUTHORISATION'
        '408':
          $ref: '#/components/responses/decline_408_AUTHORISATION'
        '409':
          $ref: '#/components/responses/decline_409_AUTHORISATION'
        '415':
          $ref: '#/components/responses/decline_415_AUTHORISATION'
        '500':
          $ref: '#/components/responses/decline_500'
        '503':
          $ref: '#/components/responses/decline_503'
  /v2/{resource-path}/{resourceId}:
    put:
      summary: Update Resource with Debtor Account
      description: | 
        The following method is used to update a payment related resource by an account which is associated to a PSU, and which needs to be received from the ASPSP first in the response of the \"Update PSU Data with Authentication Request\". 
        Remark: This procedure might be offered by the ASPSP in decoupled or embedded SCA channels to support "noManualIbanEntry" requirements from regulators for payment initiation.
      operationId: updateResourceWithDebtorAccount
      tags:
        - Authorisation
      security:
        - {}
        - BearerAuthOAuth: []
      parameters:
        - $ref: '#/components/parameters/PATH_resourcePath'
        - $ref: '#/components/parameters/PATH_resourceId'
        - $ref: '#/components/parameters/HEADER_psuIpAddress_optional'
        - $ref: '#/components/parameters/HEADER_psuIpPort'
        - $ref: '#/components/parameters/HEADER_psuAccept'
        - $ref: '#/components/parameters/HEADER_psuAcceptCharset'
        - $ref: '#/components/parameters/HEADER_psuAcceptEncoding'
        - $ref: '#/components/parameters/HEADER_psuAcceptLanguage'
        - $ref: '#/components/parameters/HEADER_psuUserAgent'
        - $ref: '#/components/parameters/HEADER_psuHttpMethod'
        - $ref: '#/components/parameters/HEADER_psuDeviceId'
        - $ref: '#/components/parameters/HEADER_psuGeoLocation'
        - $ref: '#/components/parameters/HEADER_digest'
        - $ref: '#/components/parameters/HEADER_xJwsSignature'
        - $ref: '#/components/parameters/HEADER_xRequestId'
        - $ref: '#/components/parameters/HEADER_bodySigProfile'
        - $ref: '#/components/parameters/HEADER_bodyEncProfile'
        - $ref: '#/components/parameters/HEADER_bodyEncList'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf: #Different Authorisation Bodies
                - type: object 
                  required:
                    - debtorAccount
                  properties: 
                    debtorAccount:
                      description: |
                         The resourceId of the account as provided in the \"Update PSU Data with Authentication Request\" response shall be used as the technical account reference.
                      allOf:
                        - $ref: '#/components/schemas/accountResourceReference'
      responses:
        '200':
          $ref: '#/components/responses/Ok_200_PUT_RESOURCE_WITH_DEBTOR_ACCOUNT'
        '400':
          $ref: '#/components/responses/decline_400_AUTHORISATION'
        '401':
          $ref: '#/components/responses/decline_401_AUTHORISATION'
        '403':
          $ref: '#/components/responses/decline_403_AUTHORISATION'
        '404':
          $ref: '#/components/responses/decline_404_AUTHORISATION'
        '405':
          $ref: '#/components/responses/decline_405_AUTHORISATION'
        '406':
          $ref: '#/components/responses/decline_406_AUTHORISATION'
        '408':
          $ref: '#/components/responses/decline_408_AUTHORISATION'
        '409':
          $ref: '#/components/responses/decline_409_AUTHORISATION'
        '415':
          $ref: '#/components/responses/decline_415_AUTHORISATION'
        '500':
          $ref: '#/components/responses/decline_500'
        '503':
          $ref: '#/components/responses/decline_503'

components:
  securitySchemes:
    BearerAuthOAuth:
      description: |
        Bearer Token. 
        Is contained only, if an OAuth2 based authentication was performed in a pre-step or 
        an OAuth2 based SCA was performed in a preceding AIS service in the same session.
      type: http
      scheme: bearer
  schemas:
    MessageCode_PushAisSpecific_409:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Push AIS Specific Error Codes\" for more details.
      type: string
      enum: 
        - PRIOR_SUBSCRIPTION_AVAILABLE
      example: 'PRIOR_SUBSCRIPTION_AVAILABLE'
    Max500Text:
      type: string
      maxLength: 500
      example: 'Text, maximum of 500 characters.'
    CurrencyCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      pattern: '[A-Z]{3}'
      example: 'EUR'
    FrequencyCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      enum:
        - YEAR
        - MNTH
        - QURT
        - MIAN
        - WEEK
        - DAIL
        - ADHO
        - INDA
        - FRTN
    clientMessageInformation_409_AUTHORISATION:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_409'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    error_RFC7807_403_AUTHORISATION: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_403'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_ServiceUnspecific_403'
        _links:
          $ref: '#/components/schemas/links'
    AccountStatusCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Acount Status Code\" for more details.
      type: string
      enum: 
        - enabled
        - deleted
        - blocked
      example: 'enabled'
    clientMessageInformation_404_AUTHORISATION:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_404'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    remittance:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Remittance\" for more details.
      type: object
      properties:
        referredDocumentInformation:
          description: |
            Set of elements used to identify the documents referred to in the remittance information.
          allOf:
            - $ref: '#/components/schemas/referredDocumentInformation'
        creditorReferenceInformation:
          description: |
            Reference information provided by the creditor to allow the identification of the underlying documents.
          allOf:
            - $ref: '#/components/schemas/creditorReferenceInformation'
        additionalRemittanceInformation:
          description: |
            Additional information to be displayed to the PSU e.g. within authorisation processes. This will not be used in related interbank payments.
          type: array
          items:
            $ref: '#/components/schemas/Max140Text'
    MessageCode_PushAisSpecific_400:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Push AIS Specific Error Codes\" for more details.
      type: string
      enum: 
        - SUBSCRIPTION_INVALID
        - SECONDARY_URI_NOT_SUPPORTED
        - MIME_TYPE_NOT_SUPPORTED
        - LIMIT_FOR_BALANCE_NOT_SUPPORTED
        - ACCOUNT_CURRENCY_NOT_MATCHING
        - BALANCE_TYPE_NOT_SUPPORTED
      example: 'SUBSCRIPTION_INVALID'
    _links_201_PIS: 
      type: object
      additionalProperties: 
        $ref: '#/components/schemas/hrefType'
      properties:
        scaRedirect:
          $ref: '#/components/schemas/hrefType'
        scaOAuth:
          $ref: '#/components/schemas/hrefType'
        confirmation:
          $ref: '#/components/schemas/hrefType'
        startAuthorisation:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithPsuIdentification:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithEncryptedPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithAuthenticationMethodSelection:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithTransactionAuthorisation:
          $ref: '#/components/schemas/hrefType'
        self:
          $ref: '#/components/schemas/hrefType'
        status:
          $ref: '#/components/schemas/hrefType'
        scaStatus:
          $ref: '#/components/schemas/hrefType'
        creditorNameConfirmation:
          $ref: '#/components/schemas/hrefType'
        encryptionCertificates:
          type: array
          items: 
            $ref: '#/components/schemas/hrefType'
    financialInstitutionIdentification:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Financial Institution Identification\" for more details.
      type: object
      properties:
        bicfi:
          description: |
          allOf:
            - $ref: '#/components/schemas/BICFI'
        clearingSystemMemberId:
          description: |
            Information used to identify a member within a clearing system.
          allOf:
            - $ref: '#/components/schemas/clearingSystemMemberIdentification'
        name:
          description: |
            Name of the financial institution
          allOf:
            - $ref: '#/components/schemas/Max140Text'
        postalAddress:
          description: |
            Postal Address of the financial institution.
          allOf:
            - $ref: '#/components/schemas/postalAddress'
        other:
          description: |
            Unique identification of an organisation, as assigned by an institution, using an identification scheme.
          allOf:
            - $ref: '#/components/schemas/genericFinancialInstitutionIdentification'
    Max35Text:
      type: string
      maxLength: 35
      example: 'Text, maximum of 35 characters.'
    Max2Text:
      type: string
      maxLength: 2
      example: '2C'
    accountReference:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Account Reference\" for more details.
      type: object
      properties:
        iban:
          description: |
          allOf:
            - $ref: '#/components/schemas/IBAN'
        bban:
          description: |
            BBAN of the account. This data elements is used for payment accounts which have no IBAN.
          allOf:
            - $ref: '#/components/schemas/BBAN'
        pan:
          description: |
            Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements. 
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        maskedPan:
          description: |
            Primary Account Number (PAN) of a card in a masked form.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        msisdn:
          description: |
            An alias to access a payment account via a registered mobile phone number.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        other:
          description: |
            An alias with a proprietary coding
          allOf:
            - $ref: '#/components/schemas/genericAccountIdentification'
        typeCode:
          description: |
            Remark: Shall not be used in the consent model, since account category provides enough information for the ASPSP.
          allOf:
            - $ref: '#/components/schemas/CashAccountType'
        typeProprietary:
          description: |
            Remark: Shall not be used in the consent model, since account category provides enough information for the ASPSP.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        currency:
          description: |
            ISO 4217 Alpha 3 currency code
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
        proxy:
          description: |
          allOf:
            - $ref: '#/components/schemas/proxyAccountIdentification'
        name:
          description: |
            Name of the account
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        owner: 
          description: |
          allOf: 
            - $ref: '#/components/schemas/partyDescription2'
        servicer:
          description: |
          allOf:
            - $ref: '#/components/schemas/financialInstitutionIdentification'
    amountDependentRate:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Amount dependent Rate\" for more details.
      type: object
      required:
        - percentage
      properties:
        percentage:
          description: |
            The (signed) rate of the interest.
            Up to 20 significant figures. The decimal separator is a dot.
            Trailing zeroes must be truncated.
          type: string
          pattern: '-?[0-9]{1,20}(\.[0-9]{0,19})?'
        fromAmount:
          description: |
            Amount from which the interest rate applies.
          allOf:
            - $ref: '#/components/schemas/amount'
        toAmount:
          description: |
            Amount up to which the interest rate applies.
          allOf:
            - $ref: '#/components/schemas/amount'
    additionalRequestInformation:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Additional Request Information\" for more details.
      type: object
      required:
        - requestedExpiryDateTime
      properties:
        paymentConditions:
          description: |
            Conditions for the execution of the payment.
          allOf:
            - $ref: '#/components/schemas/paymentConditions'
        creationDateTime:
          description: |
            creationDateTime of the originator
          allOf:
            - $ref: '#/components/schemas/ISODateTime'
        requestedExpiryDateTime:
          description: |
            Date and Time at which this request expires.
          allOf:
            - $ref: '#/components/schemas/ISODateTime'
        originatorPspId:
          description: |
            Originator payment service provider in case of indirect participation regarding a related API Access Scheme or bilateral contract
          allOf:
            - $ref: '#/components/schemas/financialInstitutionIdentification'
        receiverPspId:
          description: |
            Receiving payment service provider as defined by an API Access Scheme or bilateral contracts in case of not addressing the receiving institution directly. 
            It is mandatory in case where the technical API Provider is not the receiver as such.
          allOf:
            - $ref: '#/components/schemas/financialInstitutionIdentification'
    ChargeBearer:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Charge Bearer\" for more details.
      type: string
      enum:
        - DEBT
        - CRED
        - SHAR
        - SLEV
      example: 'SLEV'
    CashAccountType:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      enum:
        - CACC
        - CARD
        - CASH
        - CHAR
        - CISH
        - COMM
        - CPAC
        - LLSV
        - LOAN
        - MGLD
        - MOMA
        - NREX
        - ODFT
        - ONDP
        - OTHR
        - SACC
        - SLRY
        - SVGS
        - TAXE
        - TRAN
        - TRAS
        - VACC
        - NFCA
      example: 'CACC'
    MessageCode_405_PIS_CANC: 
      description: |
        Message codes defined for payment cancelations within PIS for HTTP Error code 405 (METHOD NOT ALLOWED)
      anyOf:
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_405'
        - $ref: '#/components/schemas/MessageCode_PisSpecific_405'
    messageCode_SigningBasketSpecific:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Signing Basket Specific Error Codes\" for more details.
      oneOf:
        - $ref: '#/components/schemas/MessageCode_SigningBasketSpecific_400'
        - $ref: '#/components/schemas/MessageCode_SigningBasketSpecific_409'
    minimum_SCT_inst_Core:
      type: object
      description: |
        Minimum payment data model containing all elements that are common for single payments, periodic payments and bulk payments
      required:
        - creditor
        - creditorAccount
        - instructedAmount
      properties:
        paymentIdentification:
          description: |
            Set of elements used to reference a payment instruction.
          allOf:
            - $ref: '#/components/schemas/paymentIdentification1'
        paymentMethod:
          description: |
            Specifies the means of payment that will be used to move the amount of money.
            Usage: Only used for cross-border transactions.
            If no paymentMethod is explicitly stated, paymentMethod will be interpreted as **TRF** (Credit Transfer).
          allOf:
            - $ref: '#/components/schemas/CreditTransferPaymentMethodCode'
#         instructionPriority:
#           description: |
#             Indicator of the urgency or order of importance that the instructing party would like the instructed party to apply to the processing of the instruction.
#           allOf:
#             - $ref: '#/components/schemas/PriorityCode'
#         serviceLevelCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided as a code.
#           allOf:
#             - $ref: '#/components/schemas/ServiceLevelCode'
#         localInstrumentCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided in proprietary encoding. *Remark:* Within the SDD scheme, only "CORE" or "B2B" are used
#           allOf:
#             - $ref: '#/components/schemas/ExternalLocalInstrumentCode'
#         localInstrumentProprietary:
#           description: |
#             *Remark:* Within the SDD scheme, usage of this element is not supported.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         categoryPurposeCode:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided as code.
#           allOf:
#             - $ref: '#/components/schemas/CategoryPurposeCode'
#         categoryPurposeProprietary:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided in proprietary encoding.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         chargeBearer:
#           description: |
#             Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
#           allOf:
#             - $ref: '#/components/schemas/ChargeBearer'
#         chargesAccount:
#           description: |
#             Account used to process charges asso-ciated with a transaction.
#           allOf:
#             - $ref: '#/components/schemas/accountReference3'
#         ultimateDebtor:
#           description: |
#             Ultimate party that owes an amount of money to the (ultimate) creditor. Restriction to the schema are applied depending on the product.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription1'
        instructedAmount:
          description: |
            Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
          allOf:
            - $ref: '#/components/schemas/amount'
#         currencyOfTransfer:
#           description: |
#             This is a data element to indicate a diverging interbank transaction currency.
#             Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.
#           allOf:
#             - $ref: '#/components/schemas/CurrencyCode'
#         exchangeRateInformation:
#           description: |
#             Set of elements used to provide details on the currency exchange rate and contract.
#           allOf:
#             - $ref: '#/components/schemas/paymentExchangeRate'
        creditorAccount:
          description: |
            Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference1'
        creditorAgent:
          description: |
            Financial institution servicing an account for the creditor.
          allOf:
            - $ref: '#/components/schemas/agentDescription1'
        creditor:
          description: |
            Party to which an amount of money is due.
          allOf:
            - $ref: '#/components/schemas/partyDescription1'
        ultimateCreditor:
          description: |
            Ultimate party to which an amount of money is due.
          allOf:
            - $ref: '#/components/schemas/partyDescription3'
#         purposeCode:
#           description: |
#             Specifies the purpose of the instruction based the code set ExternalPurpose1Code from ISO 20022.
#           allOf:
#             - $ref: '#/components/schemas/PurposeCode'
#         purposeProprietary:
#           description: |
#             Specifies the purpose of the instruction in proprietary encoding
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
        remittanceInformationUnstructured:
          description: |
              Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, 
              such as commercial invoices in an accounts' receivable system, in an unstructured form.
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/Max140Text'
          example:
            - '{"Ref Number Merchant"}'
#         remittanceInformationStructured:
#           description: |
#               Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, 
#               such as commercial invoices in an accounts' receivable system, in a structured form.
#           type: array
#           minItems: 1
#           maxItems: 1
#           items:
#             $ref: '#/components/schemas/remittance'
#           example: []
#         regulatoryReporting:
#           description: |
#             Information needed due to regulatory and statutory requirements.
#           type: array
#           items:
#             $ref: '#/components/schemas/regulatoryReporting'
#         additionalRequestInformation:
#           description: |
#             Request related information which is not directly linked to the payment transaction.
#             Only applicable for request to pay services and extended payment services.
#           allOf:
#             - $ref: '#/components/schemas/additionalRequestInformation'
    MessageCode_400_PIS:
      description: Message codes defined for PIS for HTTP Error code 400 (BAD_REQUEST).
      anyOf:
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_400'
        - $ref: '#/components/schemas/MessageCode_PisSpecific_400'
    error_NG_409_PIS: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_409_PIS'
        _links:
          $ref: '#/components/schemas/links'
    _links_201_AUTHORISATION: 
      type: object
      additionalProperties: 
        $ref: '#/components/schemas/hrefType'
      properties:
        scaRedirect:
          $ref: '#/components/schemas/hrefType'
        scaOAuth:
          $ref: '#/components/schemas/hrefType'
        confirmation:
          $ref: '#/components/schemas/hrefType'
        updatePsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        updateEncryptedPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        selectAuthenticationMethod:
          $ref: '#/components/schemas/hrefType'
        authoriseTransaction:
          $ref: '#/components/schemas/hrefType'
        scaStatus:
          $ref: '#/components/schemas/hrefType'
        transactionFees:
          $ref: '#/components/schemas/hrefType'
        encryptionCertificates:
          type: array
          items: 
            $ref: '#/components/schemas/hrefType'
    partyDescription3:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Party Description3\" for more details.
      type: object
      properties:
        identification:
          description: |
            Identification of the party.
          allOf:
            - $ref: '#/components/schemas/partyIdentification1'
    error_NG_403_AUTHORISATION: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_403_AUTHORISATION'
        _links:
          $ref: '#/components/schemas/links'
    partyDescription2:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Party Description2\" for more details.
      type: object
      properties:
        name:
          description: |
            Name of the party.
          allOf:
            - $ref: '#/components/schemas/Max140Text'
        postaladdress:
          description: |
            Postal Address of the party.
          allOf:
            - $ref: '#/components/schemas/postalAddress'
    partyDescription1:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Party Description1\" for more details.
      type: object
      properties:
        name:
          description: |
            Name of the party.
          allOf:
            - $ref: '#/components/schemas/Max140Text'
    BulkPayment_Target2_Core:
      type: object
      description: |
        The structure defines the data model to be used under /v2/bulk-payments/{credit-transfer-product}.
        Further restrictions on data attribute types, inherited from the credit transfer product might apply.
      required:
        - controlSum
        - creditTransfers
        - debtorAccount
        - numberOfTransactions
        - paymentInformationId
      properties:
        paymentInformationId:
          description: |
            Unique identification as assigned by the sending party to unambiguously identify this bulk payment. 
            This attribute may be used by ASPSPs or communities as an optional field. 
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        paymentMethod:
          description: |
            Specifies the means of payment that will be used to move the amount of money. 
            Usage: Only used for cross-border transactions. 
            If no paymentMethod is explicitly indicated, paymentMethod will be interpreted as "TRF" (Credit Transfer).
          allOf:
            - $ref: '#/components/schemas/CreditTransferPaymentMethodCode'
        batchBooking:
          description: |
            If this element equals true, the PSU pre-fers 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
        numberOfTransactions:
          description: |
            Number of individual transactions con-tained in the related bulk.
          type: integer
        controlSum:
          description: |
            Total of all individual amounts included in the group, irrespective of currencies.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
#         serviceLevelCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided as a code.
#           allOf:
#             - $ref: '#/components/schemas/ServiceLevelCode'
        chargeBearer:
          description: |
            Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
          allOf:
                - $ref: '#/components/schemas/ChargeBearer'
#         categoryPurposeCode:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided as code.
#           allOf:
#             - $ref: '#/components/schemas/CategoryPurposeCode'
#         categoryPurposeProprietary:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided in proprietary encoding.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         localInstrumentCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided in proprietary encoding. *Remark:* Within the SDD scheme, only "CORE" or "B2B" are used
#           allOf:
#             - $ref: '#/components/schemas/ExternalLocalInstrumentCode'
#         localInstrumentProprietary:
#           description: |
#             *Remark:* Within the SDD scheme, usage of this element is not supported.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         debtor:
#           description: |
#             Party that owes an amount of money to the (ultimate) creditor.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription'
#         ultimateDebtor:
#           description: |
#             Ultimate party that owes an amount of money to the (ultimate) creditor. Restriction to the schema are applied depending on the product.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription1'
        debtorAccount:
          description: |
            Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference1'
#         requestedExecutionDate:
#           description: |
#             Date at which the initiating party requests the clearing agent to process the payment.
#           allOf:
#             - $ref: '#/components/schemas/ISODate'
#         requestedExecutionDateTime:
#           description: |
#             Date and time at which the initiating party requests the clearing agent to process the payment.
#           allOf:
#             - $ref: '#/components/schemas/ISODateTime'
        creditTransfers:
          description: |
            The Credit Transfer Bulk Entry  is a type which follows the JSON formats for the supported products for single payments, excluding the data elements
              * debtorAccount, 
              * debtor
              * debtorAgent
              * requestedExecutionDate,
              * requestedExecutionDateTime.
              These data elements may not be contained in any bulk entry.
              In addition, the following entries will be allowed for every single entry, if not used already on bulk level:
              * chargeBearer
              * chargesAccount
              * categoryPurposeCode
              * categoryPurposeProprietary
              * serviceLevelCode
              * localnstrumentCode
              * localInstrumentProprietary
              * ultimateDebtor
              In addition, the attributes
              * purposeCode
              * remittanceInformationStructured
              are always available on entry level if sup-ported by the related payment product.
          type: array
          items: 
            $ref: '#/components/schemas/minimum_Target2_Core'
#         transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#         apiClientMessages:
#           type: array
#           items:
#             $ref: '#/components/schemas/clientMessageInformation'
    partyIdentification1:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Party Identification1\" for more details.
      type: object
      required:
        - privateId
      properties:
        privateId:
          description: |
            A scheme name defined in a proprietary way.
          allOf:
            - $ref: '#/components/schemas/privateIdentification'
    Max256Text:
      type: string
      maxLength: 256
      example: 'Text, maximum of 256 characters.'
    error_RFC7807_404_PIS: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_404_PIS'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_404_PIS'
        _links:
          $ref: '#/components/schemas/links'
    accountResourceReference:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Account Resource Reference\" for more details.
      type: object
      properties:
        resourceId:
          description: |
            To be used in authorisation processes, when updating a resource by an account.
          allOf:
            - $ref: '#/components/schemas/UUID'
    clientMessageInformation_400_PIS:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_400_PIS'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    accountReference1:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Account Reference1\" for more details.
      type: object
      properties:
        iban:
          description: |
          allOf:
            - $ref: '#/components/schemas/IBAN'
        bban:
          description: |
            BBAN of the account. This data elements is used for payment accounts which have no IBAN.
          allOf:
            - $ref: '#/components/schemas/BBAN'
        pan:
          description: |
            Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements 
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        maskedPan:
          description: |
            Primary Account Number (PAN) of a card in a masked form.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        currency:
          description: |
            ISO 4217 Alpha 3 currency code
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
    accountReference3:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Account Reference3\" for more details.
      type: object
      properties:
        iban:
          description: |
          allOf:
            - $ref: '#/components/schemas/IBAN'
        bban:
          description: |
            BBAN of the account. This data elements is used for payment accounts which have no IBAN.
          allOf:
            - $ref: '#/components/schemas/BBAN'
        other:
          description: |
            An alias with a proprietary coding
          allOf:
            - $ref: '#/components/schemas/genericAccountIdentification'
        currency:
          description: |
            ISO 4217 Alpha 3 currency code
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
    NamePrefixCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Name Prefix Code\" for more details.
      type: string
      enum:
        - DOCT
        - MADM
        - MISS
        - MIST
        - MIKS
      example: 'MADM'
    equivalentAmount:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Equivalent Amount\" for more details.
      type: object
      required:
        - amount
        - currencyOfTransfer
      properties:
        amount: 
          description: |
            Amount of money to be transferred between the debtor and creditor, before the deduction of charges, expressed in the currency of the debtor's account, and to be transferred in a different currency. 
            Usage: The first agent will convert the equivalent amount into the amount to be transferred. 
          allOf:
            - $ref: '#/components/schemas/amount'
        currencyOfTransfer:
          description: |
            Specifies the currency of the to be transferred amount, which differes from the currency of the debtor's account.
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
    originalTransactionInformationAndVOPStatus:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Original Transaction Information and Status\" for more details.
      type: object
      required:
        - transactionStatus      
      properties:
        originalInstructionId:
          description: |
            Unique identification, as assigned by the original instructing party for the original instructed party, to unambiguously identify the original instruction.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        originalEndToEndId:
          description: |
            Unique identification, as assigned by the original initiating party to unambiguously identify the original transaction
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        originalUetr:
          description: |
            Universally unique identifier to provide the original end-to-end reference of a payment transaction.
          allOf:
            - $ref: '#/components/schemas/UUID'
        transactionStatus:
          description: |
            Specifies the status of a transaction, as published in an external payment transaction status code list.
          allOf:
            - $ref: '#/components/schemas/TransactionStatus'
        statusReasonInformationCode:
          description: |
            Provides detailed information on the status reason.
          allOf:
            - $ref: '#/components/schemas/StatusReasonCode'
        statusReasonInformationProprietary:
          description: |
            Proprietary additional information on the reason for e.g. rejecting the request.
            Remark: If an ISO Code is available it should be used instead of Proprietary Reasons. Further restrictions could be defined by API Access Schemes. 
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        statusReasonAdditionalInformation:
          description: |
            Further details on the status reason.
          allOf:
            - $ref: '#/components/schemas/Max105Text'
        originalTransactionReference: 
          description: |
            Key elements used to identify the original transaction that is being referred to.
          allOf:
            - $ref: '#/components/schemas/originalTransactionReference'
        creditorNameMatch:
          description: |
            Will be provided, if an account/owner match was requested, if the related code in the interbank VOP service was \"CMTC\", \"NMTC\" or \"NOAP\" ,i.e. if the transactionStatus also equals \"RVCM\".
          allOf:
            - $ref: '#/components/schemas/PartyNameMatchCode'
        creditorOrganisationIdMatch:
          description: |
            Will be provided, if an account/owner match was requested, if the related code in the interbank VOP service was \"NMTC\" or \"NOAP\" ,i.e. if the transactionStatus also equals \"RVCM\".
          allOf:
            - $ref: '#/components/schemas/PartyIdentificationMatchCode'
        matchedCreditorName:
          description: |
            Provided only in case of \"CMTC\" as code in creditorNameMatch.
          allOf:
            - $ref: '#/components/schemas/Max140Text'
    Max140Text:
      type: string
      maxLength: 140
      example: 'Text, maximum of 140 characters.'
    PeriodicPayment_SCT_inst_Core:
      allOf:
        - $ref: '#/components/schemas/minimum_SCT_inst_Core'
        - type: object
          description: |
            Payment data model for periodic Payments
          required:
            - debtorAccount
            - frequency
            - startDate
          properties:
            debtorAccount:
              description: |
                Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
              allOf:
                - $ref: '#/components/schemas/accountReference1'
#             debtor:
#               description: |
#                 Party that owes an amount of money to the (ultimate) creditor.
#               allOf:
#                 - $ref: '#/components/schemas/partyDescription'
            startDate:
              description: |
                The first applicable day of execution starting from this date is the first payment. 
              allOf:
                - $ref: '#/components/schemas/ISODate'
            executionRule:
              description: |
                 \"following\" or \"preceding\" 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 \"preceding\" or \"following\" working day. 
                 ASPSP might reject the request due to the communicated value, if rules in Online-Banking are not supporting this execution rule. 
              type: string
            endDate:
              description: |
                The last applicable day of execution. If not given, it is an infinite standing order.
              allOf:
                - $ref: '#/components/schemas/ISODate'
            frequency:
              description: |
                The frequency of the recurring payment resulting from this standing order.
              allOf:
                - $ref: '#/components/schemas/FrequencyCode'
            dayOfExecution:
              description: |
                 \"31\" is ultimo. The format is following the regular expression \d{1,2}. Example: The first day is addressed by \"1\". 
                 The date is referring to the time zone of the ASPSP. 
              allOf:
                - $ref: '#/components/schemas/Max2Text'
            monthsOfExecution:
              description: |
                The format is following the regular expression \d{1,2}. The array is restricted to 11 entries. The values contained In the 
                array entries shall all be different and the maximum value of one entry is 12. 
                This attribute is contained if and only if the frequency equals \"MonthlyVariable\". 
                Example: An execution on January, April and October each year is addressed by [\"1\". \"4\", \"10\"]. 
              type: array
              items:
                $ref: '#/components/schemas/Max2Text'
#             transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#             apiClientMessages:
#               type: array
#               items:
#                 $ref: '#/components/schemas/clientMessageInformation'
    groupStatus:
      description: | 
        See document \"openFinance API Framework Data Dictionary\", section \"Group Status\" for more details.
      type: string
      enum:
        - ACCC
        - ACCP
        - ACSC
        - ACSP
        - ACTC
        - ACWC
        - RCVD
        - PDNG
        - RJCT
        - PART
      example: 'PART'
    FinancialInstitutionIdentificationCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
    error_RFC7807_409_AUTHORISATION: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_409'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_ServiceUnspecific_409'
        _links:
          $ref: '#/components/schemas/links'
    error_RFC7807_400_PIS: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_400_PIS'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_400_PIS'
        _links:
          $ref: '#/components/schemas/links'
    ISODate:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      format: date
      example: '2020-01-01'
    BBAN:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      pattern: '[a-zA-Z0-9]{1,30}' 
      example: 'BARC12345612345678'
    MessageCode_404_PIS: 
      description: Message codes defined for PIS for HTTP Error code 404 (NOT FOUND).
      anyOf:
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_404'
        - $ref: '#/components/schemas/MessageCode_PisSpecific_404'
    securitiesAccountFee:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Securities Account Fee\" for more details.
      type: object
      required:
        - feeRules
      properties:
        typeCode:
          description: |
            Type of the fee as a code.
            Might be adjusted in the future based on market experience.
          allOf:
            - $ref: '#/components/schemas/SecuritiesFeeTypeCode'
        typeProprietary:
          description: |
            Type of the fee as a proprietary string.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        feeRules:
          description: |
            Array of fee rules. Each rule represents ow the amount of the fee is determined either explicitly by stating the amount or implicitly by providing a percentage, minimum and maximum amount.
            This array will usually only contain one entry to represent the whole rule. Only in the case of the fee being calculated as a tiered percentage, 
            several entries are included to represent the several tiers of the fee rule.
          type: array
          items: 
            $ref: '#/components/schemas/securitiesAccountFeeRule'
        applicableFrom:
          description: |
            First date, when this fee is applicable.
            If not present, the fee is applicable starting with the creation of this account / the latest reporting date supported by the ASPSP.
          allOf:
            - $ref: '#/components/schemas/ISODate'
        applicableTo:
          description: |
            Last date, when this fee is applicable. If not present, the fee is applicable indefinitely.
          allOf:
            - $ref: '#/components/schemas/ISODate'
        additionalInformation:
          description: |
          allOf:
            - $ref: '#/components/schemas/Max500Text'
    psuCredentials:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"PSU Credentials\" for more details.
      type: object
      properties:
        password:
          description: |
            Contains a password in plaintext.
          type: string
        encryptedPassword:
          description: |
            Is used when a password is encrypted on application level.
          type: string
    MessageCode_PiisSpecific_400:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"PIIS Specific Error Codes\" for more details.
      type: string
      enum: 
        - CARD_INVALID
        - NO_PIIS_ACTIVATION
      example: 'CARD_INVALID'
    ServiceLevelCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      enum:
        - BKTR
        - G001
        - G002
        - G003
        - G004
        - NPCA
        - NUGP
        - NURG
        - PRPT
        - SDVA
        - SEPA
        - SVDE
        - URGP
        - URNS
        - INST
        - SRTP
        - SVAT
        - G006
        - G007
        - G005
        - G009
        - WFSM
        - EOLO
      example: 'SEPA'
    PreferredMethod:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Preferred Method\" for more details.
      type: string
      enum:
        - LETT
        - MAIL
        - PHON
        - FAXX
        - CELL
      example: 'MAIL'
    TransactionStatus:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Transaction Status\" for more details.
      type: string
      enum:
        - ACCC
        - ACCP
        - ACSC
        - ACSP
        - ACTC
        - ACWC
        - ACWP
        - RCVD
        - PDNG
        - RJCT
        - CANC
        - ACFC
        - PATC
        - PART
        - PRES
        - RVCM
        - RVNC
        - RCVC
      example: 'ACCC'
    messageCode_PisSpecific:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"PIS Specific Error Codes\" for more details.
      oneOf:
        - $ref: '#/components/schemas/MessageCode_PisSpecific_400'
        - $ref: '#/components/schemas/MessageCode_PisSpecific_401'
        - $ref: '#/components/schemas/MessageCode_PisSpecific_403'
        - $ref: '#/components/schemas/MessageCode_PisSpecific_404'
        - $ref: '#/components/schemas/MessageCode_PisSpecific_405'
    Max70Text:
      type: string
      maxLength: 70
      example: 'Text, maximum of 70 characters.'
    error_NG_401_AUTHORISATION: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_401_AUTHORISATION'
        _links:
          $ref: '#/components/schemas/links'
    ExchangeRateTypeCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Exchange Rate Type Code\" for more details.
      type: string
      enum:
        - SPOT
        - SALE
        - AGRD
      example: 'SPOT'
    messageCode_ServiceUnspecific:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Service Unspecific HTTP Error Codes\" for more details.
      oneOf:
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_400'
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_401'
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_403'
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_404'
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_405'
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_409'
    partyDescription:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Party Description\" for more details.
      type: object
      properties:
        name:
          description: |
            Name of the party.
          allOf:
            - $ref: '#/components/schemas/Max140Text'
        postaladdress:
          description: |
            Postal Address of the party.
          allOf:
            - $ref: '#/components/schemas/postalAddress'
        identification:
          description: |
            Identification of the party.
          allOf:
            - $ref: '#/components/schemas/partyIdentification'
        additionalPartyInformation:
          description: |
            Only supported in extended services for creditor related parties, if at all.
            *NOTE:* This information will be neither put to the related interbank payment nor to account reports/statements and 
            might only be used to display related information to the PSU during potential authorisation processes.
          allOf:
            - $ref: '#/components/schemas/additionalPartyInformation'
    genericFinancialInstitutionIdentification:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Generic Financial Institution Identification\" for more details.
      type: object
      required:
        - identification
      properties:
        identification:
          description: |
            Unique and unambiguous identification of a financial insitution.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        schemeNameCode:
          description: |
            An entry provided by an external ISO code list
          allOf:
            - $ref: '#/components/schemas/FinancialInstitutionIdentificationCode'
        schemeNameProprietary:
          description: |
            A scheme name defined in a proprietary way.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        issuer:
          description: |
            Issuer of the identification
          allOf:
            - $ref: '#/components/schemas/Max35Text'
    AuthenticationType:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Authentication Type\" for more details.
      type: string
      enum: 
        - SMS_OTP
        - CHIP_OTP
        - PHOTO_OTP
        - PUSH_OTP
        - SMTP_OTP
      example: 'PUSH_OTP'
    clientMessageInformation_400_AUTHORISATION:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_400'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    clientMessageInformation_405_AUTHORISATION:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_405'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    Max16Text:
      type: string
      maxLength: 16
      example: '16 Chars at most'
    accountOwner:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Account Owner\" for more details.
      type: object
      required:
        - name
      properties:
        name:
          description: |
            Account owner name
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        role:
          description: |
            The following proprietary codes are used:
            \"owner\", \"legalRepresentative\", \"authorisedUser\".
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        postalAddress:
          description: |
            Information that locates and identifies a specific address, as defined by postal services.
          allOf:
            - $ref: '#/components/schemas/postalAddress'
        identification:
          description: |
            Unique and unambiguous identification of a party
          allOf:
            - $ref: '#/components/schemas/partyIdentification'
        countryOfResidence:
          description: |
            Country in which a person resides. In case of a company, it is the country from which the affairs of that company are directed.
            Constraints: The code is checked against the list of country names obtained from the United Nations (ISO 3166 Alpha-2 code).
          allOf:
            - $ref: '#/components/schemas/CountryCode'
        contactDetails:
          description: |
            Set of elements used to indicated how to contact the party.
          allOf:
            - $ref: '#/components/schemas/contactDetails'
    accountRelatedDates:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Account related Dates\" for more details.
      type: object
      properties:
        contractStartDate:
          description: |
            Start of the account contract.
          allOf:
            - $ref: '#/components/schemas/ISODate'
        contractEndDate:
          description: |
            End of the account contract.
          allOf:
            - $ref: '#/components/schemas/ISODate'
        contractAvailabilityDate:
          description: |
            Next Date where money can be taken off a saving account without loss of interest, if initiated now (in case of a saving account).
            Next Date where a loan can be fully repaid without any extra fee.
          allOf:
            - $ref: '#/components/schemas/ISODate'
    SinglePayment_Cross_Border_CT_Core:
      allOf:
        - $ref: '#/components/schemas/minimum_Cross_Border_CT_Core'
        - type: object
          description: |
            Payment data model for Single Payments
          required:
            - debtorAccount
          properties:
            debtorAccount:
              description: |
                Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
              allOf:
                - $ref: '#/components/schemas/accountReference1'
#             debtor:
#               description: |
#                 Party that owes an amount of money to the (ultimate) creditor.
#               allOf:
#                 - $ref: '#/components/schemas/partyDescription'
#             requestedExecutionDate:
#               description: |
#                 Date at which the initiating party requests the clearing agent to process the payment.
#               allOf:
#                 - $ref: '#/components/schemas/ISODate'
#             requestedExecutionDateTime:
#               description: |
#                 Date and time at which the initiating party requests the clearing agent to process the payment.
#               allOf:
#                 - $ref: '#/components/schemas/ISODateTime'
#             transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#             apiClientMessages:
#               type: array
#               items:
#                 $ref: '#/components/schemas/clientMessageInformation'
    minimum_Target2_Core:
      type: object
      description: |
        Minimum payment data model containing all elements that are common for single payments, periodic payments and bulk payments
      required:
        - creditor
        - creditorAccount
        - instructedAmount
      properties:
        paymentIdentification:
          description: |
            Set of elements used to reference a payment instruction.
          allOf:
            - $ref: '#/components/schemas/paymentIdentification1'
        paymentMethod:
          description: |
            Specifies the means of payment that will be used to move the amount of money.
            Usage: Only used for cross-border transactions.
            If no paymentMethod is explicitly stated, paymentMethod will be interpreted as **TRF** (Credit Transfer).
          allOf:
            - $ref: '#/components/schemas/CreditTransferPaymentMethodCode'
#         instructionPriority:
#           description: |
#             Indicator of the urgency or order of importance that the instructing party would like the instructed party to apply to the processing of the instruction.
#           allOf:
#             - $ref: '#/components/schemas/PriorityCode'
#         serviceLevelCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided as a code.
#           allOf:
#             - $ref: '#/components/schemas/ServiceLevelCode'
#         localInstrumentCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided in proprietary encoding. *Remark:* Within the SDD scheme, only "CORE" or "B2B" are used
#           allOf:
#             - $ref: '#/components/schemas/ExternalLocalInstrumentCode'
#         localInstrumentProprietary:
#           description: |
#             *Remark:* Within the SDD scheme, usage of this element is not supported.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         categoryPurposeCode:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided as code.
#           allOf:
#             - $ref: '#/components/schemas/CategoryPurposeCode'
#         categoryPurposeProprietary:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided in proprietary encoding.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
        chargeBearer:
          description: |
            Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
          allOf:
            - $ref: '#/components/schemas/ChargeBearer'
#         chargesAccount:
#           description: |
#             Account used to process charges asso-ciated with a transaction.
#           allOf:
#             - $ref: '#/components/schemas/accountReference3'
#         ultimateDebtor:
#           description: |
#             Ultimate party that owes an amount of money to the (ultimate) creditor. Restriction to the schema are applied depending on the product.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription1'
        instructedAmount:
          description: |
            Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
          allOf:
            - $ref: '#/components/schemas/amount'
#         currencyOfTransfer:
#           description: |
#             This is a data element to indicate a diverging interbank transaction currency.
#             Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.
#           allOf:
#             - $ref: '#/components/schemas/CurrencyCode'
#         exchangeRateInformation:
#           description: |
#             Set of elements used to provide details on the currency exchange rate and contract.
#           allOf:
#             - $ref: '#/components/schemas/paymentExchangeRate'
        creditorAccount:
          description: |
            Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference1'
        creditorAgent:
          description: |
            Financial institution servicing an account for the creditor.
          allOf:
            - $ref: '#/components/schemas/agentDescription1'
        creditor:
          description: |
            Party to which an amount of money is due.
          allOf:
            - $ref: '#/components/schemas/partyDescription1'
        ultimateCreditor:
          description: |
            Ultimate party to which an amount of money is due.
          allOf:
            - $ref: '#/components/schemas/partyDescription1'
#         purposeCode:
#           description: |
#             Specifies the purpose of the instruction based the code set ExternalPurpose1Code from ISO 20022.
#           allOf:
#             - $ref: '#/components/schemas/PurposeCode'
#         purposeProprietary:
#           description: |
#             Specifies the purpose of the instruction in proprietary encoding
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
        remittanceInformationUnstructured:
          description: |
              Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, 
              such as commercial invoices in an accounts' receivable system, in an unstructured form.
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/Max140Text'
          example:
            - '{"Ref Number Merchant"}'
#         remittanceInformationStructured:
#           description: |
#               Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, 
#               such as commercial invoices in an accounts' receivable system, in a structured form.
#           type: array
#           minItems: 1
#           maxItems: 1
#           items:
#             $ref: '#/components/schemas/remittance'
#           example: []
#         regulatoryReporting:
#           description: |
#             Information needed due to regulatory and statutory requirements.
#           type: array
#           items:
#             $ref: '#/components/schemas/regulatoryReporting'
#         additionalRequestInformation:
#           description: |
#             Request related information which is not directly linked to the payment transaction.
#             Only applicable for request to pay services and extended payment services.
#           allOf:
#             - $ref: '#/components/schemas/additionalRequestInformation'
    SinglePayment_Target2_Core:
      allOf:
        - $ref: '#/components/schemas/minimum_Target2_Core'
        - type: object
          description: |
            Payment data model for Single Payments
          required:
            - debtorAccount
          properties:
            debtorAccount:
              description: |
                Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
              allOf:
                - $ref: '#/components/schemas/accountReference1'
#             debtor:
#               description: |
#                 Party that owes an amount of money to the (ultimate) creditor.
#               allOf:
#                 - $ref: '#/components/schemas/partyDescription'
#             requestedExecutionDate:
#               description: |
#                 Date at which the initiating party requests the clearing agent to process the payment.
#               allOf:
#                 - $ref: '#/components/schemas/ISODate'
#             requestedExecutionDateTime:
#               description: |
#                 Date and time at which the initiating party requests the clearing agent to process the payment.
#               allOf:
#                 - $ref: '#/components/schemas/ISODateTime'
#             transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#             apiClientMessages:
#               type: array
#               items:
#                 $ref: '#/components/schemas/clientMessageInformation'
    personIdentification:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Person Identification\" for more details.
      type: object
      required:
        - identification
      properties:
        identification:
          description: |
            Unique and unambiguous identification of a oersib.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        schemeNameCode:
          description: |
            An entry provided by an external ISO code list
          allOf:
            - $ref: '#/components/schemas/PersonIdentificationCode'
        schemeNameProprietary:
          description: |
            A scheme name defined in a proprietary way.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        issuer:
          description: |
            Issuer of the identification
          allOf:
            - $ref: '#/components/schemas/Max35Text'
    paymentExchangeRate:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Payment Exchange Rate\" for more details.
      type: object
      properties:
        unitCurrency:
          description: |
            Currency in which the rate of exchange is expressed in a currency exchange. In the example 1EUR = xxxCUR, the unit currency is EUR.
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
        exchangeRate:
          description: |
            Factor used to convert an amount from one currency into another. This reflects the price at which one currency was bought with another currency.
          type: string
        contractIdentification:
          description: |
            Unique identification to unambiguously identify the foreign exchange contract.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        rateType:
          description: |
            Specifies the type used to complete the currency exchange.
            Only SPOT, SALE and AGRD is allowed.
          allOf:
            - $ref: '#/components/schemas/ExchangeRateTypeCode'
    originalTransactionInformationAndStatus:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Original Transaction Information and Status\" for more details.
      type: object
      required:
        - transactionStatus      
      properties:
        originalInstructionId:
          description: |
            Unique identification, as assigned by the original instructing party for the original instructed party, to unambiguously identify the original instruction.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        originalEndToEndId:
          description: |
            Unique identification, as assigned by the original initiating party to unambiguously identify the original transaction
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        originalUetr:
          description: |
            Universally unique identifier to provide the original end-to-end reference of a payment transaction.
          allOf:
            - $ref: '#/components/schemas/UUID'
        transactionStatus:
          description: |
            Specifies the status of a transaction, as published in an external payment transaction status code list.
          allOf:
            - $ref: '#/components/schemas/TransactionStatus'
        statusReasonInformationCode:
          description: |
            Provides detailed information on the status reason.
          allOf:
            - $ref: '#/components/schemas/StatusReasonCode'
        statusReasonInformationProprietary:
          description: |
            Proprietary additional information on the reason for e.g. rejecting the request.
            Remark: If an ISO Code is available it should be used instead of Proprietary Reasons. Further restrictions could be defined by API Access Schemes. 
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        statusReasonAdditionalInformation:
          description: |
            Further details on the status reason.
          allOf:
            - $ref: '#/components/schemas/Max105Text'
        originalTransactionReference: 
          description: |
            Key elements used to identify the original transaction that is being referred to.
          allOf:
            - $ref: '#/components/schemas/originalTransactionReference'
    SinglePayment_generic:
      allOf:
        - $ref: '#/components/schemas/minimum_generic'
        - type: object
          description: |
            Payment data model for Single Payments
          properties:
            debtorAccount:
              description: |
                Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
              allOf:
                - $ref: '#/components/schemas/accountReference'
#             debtor:
#               description: |
#                 Party that owes an amount of money to the (ultimate) creditor.
#               allOf:
#                 - $ref: '#/components/schemas/partyDescription'
#             requestedExecutionDate:
#               description: |
#                 Date at which the initiating party requests the clearing agent to process the payment.
#               allOf:
#                 - $ref: '#/components/schemas/ISODate'
#             requestedExecutionDateTime:
#               description: |
#                 Date and time at which the initiating party requests the clearing agent to process the payment.
#               allOf:
#                 - $ref: '#/components/schemas/ISODateTime'
            transactionStatus:
              $ref: '#/components/schemas/TransactionStatus'
            apiClientMessages:
              type: array
              items:
                $ref: '#/components/schemas/clientMessageInformation'
    AccountIdentificationCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      enum: 
        - AIIN
        - BBAN
        - CUID
        - UPIC
      example: 'AIIN'
    error_NG_401_PIS: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_401_PIS'
        _links:
          $ref: '#/components/schemas/links'
    clientMessageInformation_401_AUTHORISATION:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_401'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    agentDescription1:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Agent Description1\" for more details.
      type: object
      required:
        - financialInstitutionId
      properties:
        financialInstitutionId:
          description: |
          allOf:
            - $ref: '#/components/schemas/financialInstitutionIdentification'
    messageCode_PushAisSpecific:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Push AIS Specific Error Codes\" for more details.
      oneOf:
        - $ref: '#/components/schemas/MessageCode_PushAisSpecific_400'
        - $ref: '#/components/schemas/MessageCode_PushAisSpecific_409'
    minimum_generic:
      type: object
      description: |
        Minimum payment data model containing all elements that are common for single payments, periodic payments and bulk payments
      required:
        - creditorAccount
        - instructedAmount
      properties:
        paymentIdentification:
          description: |
            Set of elements used to reference a payment instruction.
          allOf:
            - $ref: '#/components/schemas/paymentIdentification'
        paymentMethod:
          description: |
            Specifies the means of payment that will be used to move the amount of money.
            Usage: Only used for cross-border transactions.
            If no paymentMethod is explicitly stated, paymentMethod will be interpreted as **TRF** (Credit Transfer).
          allOf:
            - $ref: '#/components/schemas/CreditTransferPaymentMethodCode'
#         instructionPriority:
#           description: |
#             Indicator of the urgency or order of importance that the instructing party would like the instructed party to apply to the processing of the instruction.
#           allOf:
#             - $ref: '#/components/schemas/PriorityCode'
#         serviceLevelCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided as a code.
#           allOf:
#             - $ref: '#/components/schemas/ServiceLevelCode'
#         localInstrumentCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided in proprietary encoding. *Remark:* Within the SDD scheme, only "CORE" or "B2B" are used
#           allOf:
#             - $ref: '#/components/schemas/ExternalLocalInstrumentCode'
#         localInstrumentProprietary:
#           description: |
#             *Remark:* Within the SDD scheme, usage of this element is not supported.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         categoryPurposeCode:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided as code.
#           allOf:
#             - $ref: '#/components/schemas/CategoryPurposeCode'
#         categoryPurposeProprietary:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided in proprietary encoding.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
        chargeBearer:
          description: |
            Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
          allOf:
            - $ref: '#/components/schemas/ChargeBearer'
        chargesAccount:
          description: |
            Account used to process charges asso-ciated with a transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference'
        ultimateDebtor:
          description: |
            Ultimate party that owes an amount of money to the (ultimate) creditor. Restriction to the schema are applied depending on the product.
          allOf:
            - $ref: '#/components/schemas/partyDescription'
        instructedAmount:
          description: |
            Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
          allOf:
            - $ref: '#/components/schemas/amount'
#         currencyOfTransfer:
#           description: |
#             This is a data element to indicate a diverging interbank transaction currency.
#             Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.
#           allOf:
#             - $ref: '#/components/schemas/CurrencyCode'
#         exchangeRateInformation:
#           description: |
#             Set of elements used to provide details on the currency exchange rate and contract.
#           allOf:
#             - $ref: '#/components/schemas/paymentExchangeRate'
        creditorAccount:
          description: |
            Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference'
        creditorAgent:
          description: |
            Financial institution servicing an account for the creditor.
          allOf:
            - $ref: '#/components/schemas/agentDescription'
        creditor:
          description: |
            Party to which an amount of money is due.
          allOf:
            - $ref: '#/components/schemas/partyDescription'
        ultimateCreditor:
          description: |
            Ultimate party to which an amount of money is due.
          allOf:
            - $ref: '#/components/schemas/partyDescription'
#         purposeCode:
#           description: |
#             Specifies the purpose of the instruction based the code set ExternalPurpose1Code from ISO 20022.
#           allOf:
#             - $ref: '#/components/schemas/PurposeCode'
#         purposeProprietary:
#           description: |
#             Specifies the purpose of the instruction in proprietary encoding
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
        remittanceInformationUnstructured:
          description: |
              Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, 
              such as commercial invoices in an accounts' receivable system, in an unstructured form.
          type: array
          items:
            $ref: '#/components/schemas/Max140Text'
          example:
            - '{"Ref Number Merchant"}'
        remittanceInformationStructured:
          description: |
              Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, 
              such as commercial invoices in an accounts' receivable system, in a structured form.
          type: array
          items:
            $ref: '#/components/schemas/remittance'
          example: []
#         regulatoryReporting:
#           description: |
#             Information needed due to regulatory and statutory requirements.
#           type: array
#           items:
#             $ref: '#/components/schemas/regulatoryReporting'
#         additionalRequestInformation:
#           description: |
#             Request related information which is not directly linked to the payment transaction.
#             Only applicable for request to pay services and extended payment services.
#           allOf:
#             - $ref: '#/components/schemas/additionalRequestInformation'
    agentDescription:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Agent Description\" for more details.
      type: object
      required:
        - financialInstitutionId
      properties:
        financialInstitutionId:
          description: |
          allOf:
            - $ref: '#/components/schemas/financialInstitutionIdentification'
        branchIdentificationId:
          description: |
            Unique and unambiguous identification of a branch of a financial institution.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        branchIdentificationName:
          description: |
            Name by which an agent is known and which is usually used to identify that agent.
          allOf:
            - $ref: '#/components/schemas/Max140Text'
    authenticationObject:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Authentication Object\" for more details.
      type: object
      required:
        - authenticationType
        - authenticationMethodId
        - name
      properties:
        authenticationType:
          description: |
            Type of the authentication method.
          allOf:
            - $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:
          description: |
            An identification provided by the ASPSP for the later identification of the authentication method selection.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        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
        explanation:
          description: |
            detailed information about the SCA method for the PSU
          type: string
    paymentIdentification:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Payment Identification\" for more details.
      type: object
      properties:
        instructionId:
          description: |
            Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        endToEndId:
          description: |
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        uetr:
          description: |
            Universally unique identifier to provide an end-to-end reference of a payment transaction.
            It is recommended to use time-based version (version 1) and variant 8,9,a or b of the UUID as defined in [RFC4122] for UUID fields such as uetr.
          allOf:
            - $ref: '#/components/schemas/UUID'
    ReferredDocumentTypeCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Referred Document Type Code\" for more details.
      type: string
      enum:
        - MSIN
        - CNFA
        - DNFA
        - CINV
        - CREN
        - DEBN
        - HIRI
        - SBIN
        - CMCN
        - SOAC
        - DISP
        - BOLD
        - VCHR
        - AROI
        - TSUT
        - PUOR
      example: 'PUOR'
    creditorReferenceInformation:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Creditor Reference Information\" for more details.
      type: object
      required:
        - reference
      properties:
        reference:
          description: |
            The actual reference.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        referenceTypeCode:
          description: |
            Type of the reference, provided as code.
          allOf:
            - $ref: '#/components/schemas/CreditorReferenceTypeCode'
        referenceTypeProprietary:
          description: |
            Type of the reference, provided in proprietary encoding.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        referenceIssuer:
          description: |
            Issuer of the reference.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
    interest:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Interest\" for more details.
      type: object
      required:
        - rate
      properties:
        type:
          description: |
            Type of the interest. Currently, interests are distinguished between those with fixed rates (\"FIXD\") and those with rates derived from an index (\"INDE\").
          allOf:
            - $ref: '#/components/schemas/InterestTypeCode3'
        relatedIndices:
          description: |
            List of indices related to the interest rate.
          type: array
          items:
            $ref: '#/components/schemas/index'
        rate:
          description: |
            An array of interest rates, which might apply to different amount ranges.
          type: array
          items:
            $ref: '#/components/schemas/amountDependentRate'
        fromDateTime:
          description: |
            The date from which this interest rate is applicable. If no exact time is applicable, 00:00:00 is chosen as time definition.
          allOf:
            - $ref: '#/components/schemas/ISODateTime'
        toDateTime:
          description: |
            The date until this interest rate is applicable. If no exact time is applicable, 23:59:59 is chosen as time definition.
          allOf:
            - $ref: '#/components/schemas/ISODateTime'
        reason:
          description: |
            Specifies the reason of the interest.
            Though arbitrary text is technically supported, it is recommended to use the following keywords with pre-defined meaning:
            * *arrears:*The addressed interest rate applies only in case of arrears.
            * *alternateRateMaximumOf:* The addressed alternate interest rate applies in cases where this rate implies a higher interest in a dedicated interest period
            than the regular interest rate provided without reason element.
            * *alternateRateMinimumOf:* The addressed alternate interest rate applies in case where this rate implies a lower interest in a dedicated interest period
            than the regular interest rate provided without reason element.
            ASPSPs may define further keywords and shall publish them in their documentation.
          allOf:
                - $ref: '#/components/schemas/Max35Text'
        changeMechanism:
          description: |
            An explanation of a mandated change mechanism.
          allOf:
            - $ref: '#/components/schemas/Max1024Text'
    error_RFC7807_403_PIS: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_403_PIS'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_403_PIS'
        _links:
          $ref: '#/components/schemas/links'
    clientMessageInformation_401_PIS:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_401_PIS'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    Max105Text:
      type: string
      maxLength: 105
      example: 'Text, maximum of 105 characters.'
    MessageCode_403_PIS: 
      description: Message codes defined defined for PIS for PIS for HTTP Error code 403 (FORBIDDEN).
      anyOf:
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_403'
        - $ref: '#/components/schemas/MessageCode_PisSpecific_403'
    proxyAccountIdentification:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Proxy Account Identification\" for more details.
      type: object
      required:
        - identification
      properties:
        typeCode:
          description: |
            Type of the proxy identification
          allOf:
            - $ref: '#/components/schemas/ProxyAccountTypeCode'
        typeProprietary:
          description: |
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        identification:
          description: |
          allOf:
            - $ref: '#/components/schemas/Max2048Text'
    paymentConditions:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Payment Conditions\" for more details.
      type: object
      properties:
        amountModificationAllowed:
          description: |
            Indicates if the debtor is allowed to pay a different amount then the requested amount.
          type: boolean
        earlyPaymentAllowed:
          description: |
            Indicates if the debtor is allowed to pay before the requested execution date.
          type: boolean
    StatusReasonCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Status Reason Code\" for more details.
      type: string
      enum:
        - AM04
        - AM21
        - BEXX
        - CN01
        - DS0C
        - DS0D
        - DS0A
        - DS04
        - FOCR
        - SL11
        - TKSP
        - TKXP
        - AM02
        - DT05
        - AC05
        - AC06
        - DS0K
        - DT01
        - UPAY
        - EOL1
      example: 'AM04'
    ExternalLocalInstrumentCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Exchange Rate Type Code\" for more details.
      type: string
      enum:
        - 0090
        - 0091
        - 0092
        - 0002
        - 0221
        - 0224
        - 0226
        - 0225
        - 0222
        - 0227
        - 0220
        - 0223
        - 0001
        - 0000
        - BTR
        - CKS
        - CTR
        - CTP
        - DEP
        - FFR
        - FFS
        - SVC
        - DRW
        - DRB
        - DRC
        - DDMC
        - DDMP
        - DDMU
        - BPA
        - IPA
        - TRF
        - 82
        - 83
        - CPP
        - RTR
        - GST
        - DDT
        - RDD
        - CHN
        - STR
        - SDD
        - SRT
        - SRD
        - SCN
        - SGT
        - CARD
        - 05
        - 04
        - ISE
        - BSE
        - 58
        - 19
        - ASTI
        - BACP
        - MANP
        - SBTI
        - 85
        - 08
        - 89
        - 60
        - RIBA
        - RIDO
        - RIDV
        - IDEAL
        - INSTNT01
        - INSTTC01
        - INSTIDEAL
        - INSTNT01IDEAL
        - INSTTC01IDEAL
        - NLDO
        - NLUP
        - SDN
        - ACCEPT
        - ICMC
        - NLGOV
        - IN
        - ONCL
        - PERI
        - SDCL
        - DDNR
        - DDFA
        - CORE
        - B2BAMIPM
        - B2B
        - CR1AMIPM
        - CORAMIPM
        - COR1
        - FADAMIPM
        - CLSCCPERX
        - CLSCCPLCH
        - INST
        - ADD
        - UDD
        - CCI
        - IAT
        - CCD
        - CTX
        - PPD
        - CIE
        - RCK
        - ARC
        - WEB
        - POP
        - POS
        - TEL
        - ITP
        - CTP
        - MDP
        - IMD
        - SOP
        - FDP
      example: 'CORE'
    clientMessageInformation_405_PIS_CANC:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_405_PIS_CANC'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    BulkPayment_SCT_inst_Core:
      type: object
      description: |
        The structure defines the data model to be used under /v2/bulk-payments/{credit-transfer-product}.
        Further restrictions on data attribute types, inherited from the credit transfer product might apply.
      required:
        - controlSum
        - creditTransfers
        - debtorAccount
        - numberOfTransactions
        - paymentInformationId
      properties:
        paymentInformationId:
          description: |
            Unique identification as assigned by the sending party to unambiguously identify this bulk payment. 
            This attribute may be used by ASPSPs or communities as an optional field. 
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        paymentMethod:
          description: |
            Specifies the means of payment that will be used to move the amount of money. 
            Usage: Only used for cross-border transactions. 
            If no paymentMethod is explicitly indicated, paymentMethod will be interpreted as "TRF" (Credit Transfer).
          allOf:
            - $ref: '#/components/schemas/CreditTransferPaymentMethodCode'
        batchBooking:
          description: |
            If this element equals true, the PSU pre-fers 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
        numberOfTransactions:
          description: |
            Number of individual transactions con-tained in the related bulk.
          type: integer
        controlSum:
          description: |
            Total of all individual amounts included in the group, irrespective of currencies.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
#         serviceLevelCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided as a code.
#           allOf:
#             - $ref: '#/components/schemas/ServiceLevelCode'
#         chargeBearer:
#           description: |
#             Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
#           allOf:
#                 - $ref: '#/components/schemas/ChargeBearer'
#         categoryPurposeCode:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided as code.
#           allOf:
#             - $ref: '#/components/schemas/CategoryPurposeCode'
#         categoryPurposeProprietary:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided in proprietary encoding.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         localInstrumentCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided in proprietary encoding. *Remark:* Within the SDD scheme, only "CORE" or "B2B" are used
#           allOf:
#             - $ref: '#/components/schemas/ExternalLocalInstrumentCode'
#         localInstrumentProprietary:
#           description: |
#             *Remark:* Within the SDD scheme, usage of this element is not supported.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         debtor:
#           description: |
#             Party that owes an amount of money to the (ultimate) creditor.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription'
#         ultimateDebtor:
#           description: |
#             Ultimate party that owes an amount of money to the (ultimate) creditor. Restriction to the schema are applied depending on the product.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription1'
        debtorAccount:
          description: |
            Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference1'
#         requestedExecutionDate:
#           description: |
#             Date at which the initiating party requests the clearing agent to process the payment.
#           allOf:
#             - $ref: '#/components/schemas/ISODate'
#         requestedExecutionDateTime:
#           description: |
#             Date and time at which the initiating party requests the clearing agent to process the payment.
#           allOf:
#             - $ref: '#/components/schemas/ISODateTime'
        creditTransfers:
          description: |
            The Credit Transfer Bulk Entry  is a type which follows the JSON formats for the supported products for single payments, excluding the data elements
              * debtorAccount, 
              * debtor
              * debtorAgent
              * requestedExecutionDate,
              * requestedExecutionDateTime.
              These data elements may not be contained in any bulk entry.
              In addition, the following entries will be allowed for every single entry, if not used already on bulk level:
              * chargeBearer
              * chargesAccount
              * categoryPurposeCode
              * categoryPurposeProprietary
              * serviceLevelCode
              * localnstrumentCode
              * localInstrumentProprietary
              * ultimateDebtor
              In addition, the attributes
              * purposeCode
              * remittanceInformationStructured
              are always available on entry level if sup-ported by the related payment product.
          type: array
          items: 
            $ref: '#/components/schemas/minimum_SCT_inst_Core'
#         transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#         apiClientMessages:
#           type: array
#           items:
#             $ref: '#/components/schemas/clientMessageInformation'
    accountDetails:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Account Details\" for more details.
      type: object
      required:
        - resourceId
        - currency
      properties:
        resourceId:
          description: |
            This is the data element to be used in the path when retrieving data from a dedicated account.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        iban:
          description: |
            IBAN of the account.
          allOf:
            - $ref: '#/components/schemas/IBAN'
        bban:
          description: |
            BBAN of the account. This data elements is used for payment accounts which have no IBAN.
          allOf:
            - $ref: '#/components/schemas/BBAN'
        msisdn:
          description: |
            An alias to access a payment account via a registered mobile phone number. This alias might be needed e.g. in the payment initiation services.
            The support of this alias must be explicitly documented by the ASPSP for the corresponding API Calls.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        other:
          description: |
            An alias with a proprietary coding
          allOf:
            - $ref: '#/components/schemas/genericAccountIdentification'
        currency:
          description: |
            Account currency
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
        ownerName:
          description: |
            Name of the legal account owner. If there is more than one owner, then e.g. two names might be noted here.
            For a corporate account, the corporate name is used for this attribute.
            Even if supported by the ASPSP, the provision of this field might depend on the fact whether  an explicit consent to this specific additional account information has been given by the PSU.
            NOTE: This attribute is deprecated in later versions.
          allOf:
            - $ref: '#/components/schemas/Max140Text'
        ownerNames:
          description: |
            List of owner names together with a role, where applicable.
            NOTE: This attribute is deprecated in later versions.
          type: array
          items:
            $ref: '#/components/schemas/accountOwner'
        owner:
          description: |
            The party that legally owns the account.
          allOf:
            - $ref: '#/components/schemas/accountOwner'
        owners:
          description: |
            List of account owners.
          type: array
          items:
            $ref: '#/components/schemas/accountOwner'
        name:
          description: |
            Name of the account, as assigned by the ASPSP, in agreement with the account owner in order to provide an additional means of identification of the account.
          allOf: 
            - $ref: '#/components/schemas/Max70Text'
        displayName:
          description: |
            Name of the account as defined by the PSU within online channels.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        product:
          description: |
            Product Name of the Bank for this account, proprietary definition
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        cashAccountType:
          description: |
            ExternalCashAccountType1Code from ISO 20022
          allOf:
            - $ref: '#/components/schemas/CashAccountType'
        status:
          description: |
            Account status.
            If this field is not used, than the account is available in the sense of this specification.
          allOf:
            - $ref: '#/components/schemas/AccountStatusCode'
        bic:
          description: |
                    The BIC associated to the account.
          allOf:
            - $ref: '#/components/schemas/BICFI'
        linkedAccounts:
          description: |
            This data attribute is a field, where an ASPSP can name a cash account associated to the described account, e.g. in case of a securities account or a card account.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        usage:
          description: |
            Specifies the usage of the account
            * \"PRIV\": private personal account
            * \"ORGA\": professional account
          allOf:
            - $ref: '#/components/schemas/Max4Text'
        details:
          description: |
            Specifications that might be provided by the ASPSP
            * characteristics of the account
            * characteristics of the relevant card
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        balances:
          type: array
          items:
            $ref: '#/components/schemas/balance'
        tariffs:
          description: |
            Currently only supported for securities accounts:
            Text information on tariffs related to this securities account.
          allOf:
            - $ref: '#/components/schemas/Max1000Text'
        applicableFees:
          description: |
            Currently only supported for securities accounts:
            Array of elements, each representing one fee (rule) that is individually applicable for this Securities account. 
            If, for example, an ASPSP applies a standard \"managementFee\" X, but the consumer negotiated a discount D, an element should represent (X-D), but neither X nor D.
          type: array
          items:
            $ref: '#/components/schemas/securitiesAccountFee'
        interest:
          description: |
            Currently only supported for savings accounts and loan accounts:
            A set of interest rates associated to this account, e.g. interests for savings or credits.
          type: array
          items:
            $ref: '#/components/schemas/interest'
        relatedDates:
          description: |
            Currently only supported for securities accounts:
            Text information on tariffs related to this securities account.
          allOf:
            - $ref: '#/components/schemas/accountRelatedDates'
        collateralsInvolved:
          description: |
            Currently only supported for loan accounts:
            Is set to true if a collateral is involved securing the loan (e.g. security deposit, physical collaterals like houses, cars). 
            More information might be provided under the \"details\" attribute.
          type: boolean
        guaranteeInvolved:
          description: |
            Currently only supported for loan accounts:
            Is set to true in case of specific collaterals where a guarantee of payment of the loan is given by a different person.
          type: boolean
        _links:
          description: |
            Links to the account, which can be directly used for retrieving account information from this dedicated account.
            Links to \"balances\" and/or \"transactions\".
            Links to \"orders\" and/or \"positions\" in the case of securities accounts.
            These links are only supported, when the corresponding consent has been already granted.
          allOf:
            - $ref: '#/components/schemas/links'
    error_NG_405_PIS: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_405_PIS'
        _links:
          $ref: '#/components/schemas/links'
    clientMessageInformation_403_AUTHORISATION:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_403'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    error_NG_400_AUTHORISATION: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_400_AUTHORISATION'
        _links:
          $ref: '#/components/schemas/links'
    Max1024Text:
      type: string
      maxLength: 1024
      example: 'Text, maximum of 1024 characters.'
    Max2048Text:
      type: string
      maxLength: 2048
      example: 'Text, maximum of 2048 characters.'
    OrganisationIdentificationCode:
      description: |
      type: string
      enum:
        - BANK
        - CBID
        - CHID
        - CINC
        - COID
        - CUST
        - DUNS
        - EMPL
        - GS1G
        - SREN
        - SRET
        - TXID
        - BDID
        - BOID
      example: 'BOID'
    error_RFC7807_409_PIS: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_409_PIS'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_409_PIS'
        _links:
          $ref: '#/components/schemas/links'
    error_NG_405_AUTHORISATION: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_405_AUTHORISATION'
        _links:
          $ref: '#/components/schemas/links'
    BulkPayment_Cross_Border_CT_Core:
      type: object
      description: |
        The structure defines the data model to be used under /v2/bulk-payments/{credit-transfer-product}.
        Further restrictions on data attribute types, inherited from the credit transfer product might apply.
      required:
        - controlSum
        - creditTransfers
        - debtorAccount
        - numberOfTransactions
        - paymentInformationId
      properties:
        paymentInformationId:
          description: |
            Unique identification as assigned by the sending party to unambiguously identify this bulk payment. 
            This attribute may be used by ASPSPs or communities as an optional field. 
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        paymentMethod:
          description: |
            Specifies the means of payment that will be used to move the amount of money. 
            Usage: Only used for cross-border transactions. 
            If no paymentMethod is explicitly indicated, paymentMethod will be interpreted as "TRF" (Credit Transfer).
          allOf:
            - $ref: '#/components/schemas/CreditTransferPaymentMethodCode'
        batchBooking:
          description: |
            If this element equals true, the PSU pre-fers 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
        numberOfTransactions:
          description: |
            Number of individual transactions con-tained in the related bulk.
          type: integer
        controlSum:
          description: |
            Total of all individual amounts included in the group, irrespective of currencies.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
#         serviceLevelCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided as a code.
#           allOf:
#             - $ref: '#/components/schemas/ServiceLevelCode'
        chargeBearer:
          description: |
            Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
          allOf:
                - $ref: '#/components/schemas/ChargeBearer'
#         categoryPurposeCode:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided as code.
#           allOf:
#             - $ref: '#/components/schemas/CategoryPurposeCode'
#         categoryPurposeProprietary:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided in proprietary encoding.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         localInstrumentCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided in proprietary encoding. *Remark:* Within the SDD scheme, only "CORE" or "B2B" are used
#           allOf:
#             - $ref: '#/components/schemas/ExternalLocalInstrumentCode'
#         localInstrumentProprietary:
#           description: |
#             *Remark:* Within the SDD scheme, usage of this element is not supported.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         debtor:
#           description: |
#             Party that owes an amount of money to the (ultimate) creditor.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription'
#         ultimateDebtor:
#           description: |
#             Ultimate party that owes an amount of money to the (ultimate) creditor. Restriction to the schema are applied depending on the product.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription1'
        debtorAccount:
          description: |
            Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference1'
#         requestedExecutionDate:
#           description: |
#             Date at which the initiating party requests the clearing agent to process the payment.
#           allOf:
#             - $ref: '#/components/schemas/ISODate'
#         requestedExecutionDateTime:
#           description: |
#             Date and time at which the initiating party requests the clearing agent to process the payment.
#           allOf:
#             - $ref: '#/components/schemas/ISODateTime'
        creditTransfers:
          description: |
            The Credit Transfer Bulk Entry  is a type which follows the JSON formats for the supported products for single payments, excluding the data elements
              * debtorAccount, 
              * debtor
              * debtorAgent
              * requestedExecutionDate,
              * requestedExecutionDateTime.
              These data elements may not be contained in any bulk entry.
              In addition, the following entries will be allowed for every single entry, if not used already on bulk level:
              * chargeBearer
              * chargesAccount
              * categoryPurposeCode
              * categoryPurposeProprietary
              * serviceLevelCode
              * localnstrumentCode
              * localInstrumentProprietary
              * ultimateDebtor
              In addition, the attributes
              * purposeCode
              * remittanceInformationStructured
              are always available on entry level if sup-ported by the related payment product.
          type: array
          items: 
            $ref: '#/components/schemas/minimum_Cross_Border_CT_Core'
#         transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#         apiClientMessages:
#           type: array
#           items:
#             $ref: '#/components/schemas/clientMessageInformation'
    _links_202_PIS_Payment: 
      type: object
      additionalProperties: 
        $ref: '#/components/schemas/hrefType'
      properties:
        scaRedirect:
          $ref: '#/components/schemas/hrefType'
        scaOAuth:
          $ref: '#/components/schemas/hrefType'
        confirmation:
          $ref: '#/components/schemas/hrefType'
        startAuthorisation:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithPsuIdentification:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithEncryptedPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithAuthenticationMethodSelection:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithTransactionAuthorisation:
          $ref: '#/components/schemas/hrefType'
        self:
          $ref: '#/components/schemas/hrefType'
        status:
          $ref: '#/components/schemas/hrefType'
        scaStatus:
          $ref: '#/components/schemas/hrefType'
        encryptionCertificates:
          type: array
          items: 
            $ref: '#/components/schemas/hrefType'
    clientMessageInformation_405_PIS:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_405_PIS'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    PeriodicPayment_generic:
      allOf:
        - $ref: '#/components/schemas/minimum_generic'
        - type: object
          description: |
            Payment data model for periodic Payments
          required:
            - startDate
          properties:
            debtorAccount:
              description: |
                Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
              allOf:
                - $ref: '#/components/schemas/accountReference'
#             debtor:
#               description: |
#                 Party that owes an amount of money to the (ultimate) creditor.
#               allOf:
#                 - $ref: '#/components/schemas/partyDescription'
            startDate:
              description: |
                The first applicable day of execution starting from this date is the first payment. 
              allOf:
                - $ref: '#/components/schemas/ISODate'
            executionRule:
              description: |
                 \"following\" or \"preceding\" 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 \"preceding\" or \"following\" working day. 
                 ASPSP might reject the request due to the communicated value, if rules in Online-Banking are not supporting this execution rule. 
              type: string
            endDate:
              description: |
                The last applicable day of execution. If not given, it is an infinite standing order.
              allOf:
                - $ref: '#/components/schemas/ISODate'
            frequency:
              description: |
                The frequency of the recurring payment resulting from this standing order.
              allOf:
                - $ref: '#/components/schemas/FrequencyCode'
            dayOfExecution:
              description: |
                 \"31\" is ultimo. The format is following the regular expression \d{1,2}. Example: The first day is addressed by \"1\". 
                 The date is referring to the time zone of the ASPSP. 
              allOf:
                - $ref: '#/components/schemas/Max2Text'
            monthsOfExecution:
              description: |
                The format is following the regular expression \d{1,2}. The array is restricted to 11 entries. The values contained In the 
                array entries shall all be different and the maximum value of one entry is 12. 
                This attribute is contained if and only if the frequency equals \"MonthlyVariable\". 
                Example: An execution on January, April and October each year is addressed by [\"1\". \"4\", \"10\"]. 
              type: array
              items:
                $ref: '#/components/schemas/Max2Text'
            transactionStatus:
              $ref: '#/components/schemas/TransactionStatus'
            apiClientMessages:
              type: array
              items:
                $ref: '#/components/schemas/clientMessageInformation'
    balance:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Balance\" for more details.
      type: object
      required:
        - balanceAmount
        - balanceType
      properties:
        balanceAmount:
          description: |
          allOf:
            - $ref: '#/components/schemas/amount'
        balanceType:
          description: |
          allOf:
            - $ref: '#/components/schemas/BalanceType'
        creditLimitIncluded:
          description: |
            A flag indicating if the credit limit of the corresponding account is included in the calculation of the balance, where applicable.
          type: boolean
        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.
          allOf:
            - $ref: '#/components/schemas/ISODateTime'
        referenceDate:
          description: |
            indicates the date of the balance
          allOf:
            - $ref: '#/components/schemas/ISODate'
        lastCommittedTransaction:
          description: |
            entryReference of the last commited transaction to support the TPP in identifying whether all PSU transactions are already known.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
    _links_200_PUT_AUTHORISATION: 
      type: object
      additionalProperties: 
        $ref: '#/components/schemas/hrefType'
      properties:
        scaRedirect:
          $ref: '#/components/schemas/hrefType'
        scaOAuth:
          $ref: '#/components/schemas/hrefType'
        confirmation:
          $ref: '#/components/schemas/hrefType'
        updatePsuIdentification:
          $ref: '#/components/schemas/hrefType'
        updatePsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        updateAdditionalPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        updateEncryptedPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        updateAdditionalEncryptedPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        updateResourceByDebtorAccountResource:
          $ref: '#/components/schemas/hrefType'
        selectAuthenticationMethod:
          $ref: '#/components/schemas/hrefType'
        authoriseTransaction:
          $ref: '#/components/schemas/hrefType'
        scaStatus:
          $ref: '#/components/schemas/hrefType'
        transactionFees:
          $ref: '#/components/schemas/hrefType'
        status:
          $ref: '#/components/schemas/hrefType'
        encryptionCertificates:
          type: array
          items: 
            $ref: '#/components/schemas/hrefType'
    regulatoryReporting:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Regulatory Reporting\" for more details.
      type: object
      properties:
        debitCreditReportingIndicator:
          description: |
            Identifies whether the regulatory reporting information applies to the debit side, to the credit side or to both debit and credit sides of the transaction.
          allOf:
            - $ref: '#/components/schemas/RegulatoryReportingTypeCode'
        detailsCode:
          description: |
            Specifies the nature, purpose, and reason for the transaction to be reported for regulatory and statutory requirements in a coded form.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        detailsInformation:
          description: |
            Additional details that cater for specific domestic regulatory requirements.
          type: array
          items:
            $ref: '#/components/schemas/Max35Text'
    hrefType:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"href Type\" for more details.
      type: object
      required:
        - href
      properties:
        href:
          description: |
          type: string
    error_RFC7807_405_PIS_CANC: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_405_PIS_CANC'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_405_PIS_CANC'
        _links:
          $ref: '#/components/schemas/links'
    originalTransactionReference:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Original Transaction Reference\" for more details.
      type: object
      properties:
        instructedAmount:
          description: |
          allOf:
            - $ref: '#/components/schemas/amount'
        equivalentAmount:
          description: |
          allOf:
            - $ref: '#/components/schemas/equivalentAmount'
        creditor:
          description: |
          allOf:
            - $ref: '#/components/schemas/partyDescription'
        creditorAccount:
          description: |
          allOf:
            - $ref: '#/components/schemas/accountReference'
        ultimateCreditor:
          description: |
          allOf:
            - $ref: '#/components/schemas/partyDescription'
    PartyNameMatchCode:
      description: |
        See document \"openFinance API Framework Extended Services Verification of Party (VOP) \", 
        section \"Party Name Match Code\" for more details.
        Code    Desription
         MTCH     Match
         NMTC     No match
         MBAM     The provided creditor name closely resembles the account holder name
         NOAP     Validation check is not applicable
         NOTC     Validation check has not been carried out.
      type: string
      enum:
        - MTCH
        - NMTC
        - CMTC
        - NOAP
      example: 'MBAM'
    IBAN:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      pattern: '[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}'
      example: 'FR7612345987650123456789014'
    index:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Index\" for more details.
      type: object
      properties:
        index:
          description: |
            Though arbitrary text is technically supported, it is recommended to use the following keywords:
            * \"CPI\" - customer Price Index
            * \"FC\" - foreign currency
            * \"other\" - for others, not clearly specified index relations.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        rootIndexValue:
          description: |
            A number (represented as a string) giving the basic index value which is the basis for the loan contract.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        exchangeRate:
          description: |
            Intended for usage in case of index = \"FC\".
          allOf:
            - $ref: '#/components/schemas/amountDependentRate'
        additionalInformation:
          description: |
            Explanations e.g. to specify index = \"other\".
          allOf:
            - $ref: '#/components/schemas/Max500Text'
    error_RFC7807_405_PIS: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_405_PIS'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_405_PIS'
        _links:
          $ref: '#/components/schemas/links'
    genericAccountIdentification:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Generic Account Identification\" for more details.
      type: object
      required:
        - identification
      properties:
        identification:
          description: |
            Unique and unambiguous identification of an account.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        schemeNameCode:
          description: |
            An entry provided by an external ISO code list
          allOf:
            - $ref: '#/components/schemas/AccountIdentificationCode'
        schemeNameProprietary:
          description: |
            A scheme name defined in a proprietary way.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        issuer:
          description: |
            Issuer of the identification
          allOf:
            - $ref: '#/components/schemas/Max35Text'
    genericOrganisationIdentification:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Generic Organisation Identification\" for more details.
      type: object
      required:
        - identification
      properties:
        identification:
          description: |
            Unique and unambiguous identification of an organisation.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        schemeNameCode:
          description: |
            An entry provided by an external ISO code list
          allOf:
            - $ref: '#/components/schemas/OrganisationIdentificationCode'
        schemeNameProprietary:
          description: |
            A scheme name defined in a proprietary way.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        issuer:
          description: |
            Issuer of the identification
          allOf:
            - $ref: '#/components/schemas/Max35Text'
    privateIdentification:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Private Identification\" for more details.
      type: object
      properties:
        birthDate:
          description: |
          allOf:
            - $ref: '#/components/schemas/ISODate'
        provinceOfBirth:
          description: |
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        cityOfBirth:
          description: |
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        countryOfBirth:
          description: |
          allOf:
            - $ref: '#/components/schemas/CountryCode'
        others:
          description: |
            Unique identification of a person, as assigned by an institution, using an identification scheme. 
            Shall be used if none of the above attributes is used.
          type: array
          items:
            $ref: '#/components/schemas/personIdentification'
    error_NG_400_PIS: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_400_PIS'
        _links:
          $ref: '#/components/schemas/links'
    MessageCode_409_PIS: 
      description: Message codes defined for PIS for HTTP Error code 409 (CONFLICT).
      anyOf:
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_409'
    GeoLocation:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Geo Location\" for more details.
      type: string
      pattern: 'GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}'
      example: 'GEO:52.506931;13.144558'
    error_RFC7807_401_AUTHORISATION: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_401'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_ServiceUnspecific_401'
        _links:
          $ref: '#/components/schemas/links'
    MessageCode_PisSpecific_400:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"PIS Specific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - PAYMENT_FAILED
        - EXECUTION_DATE_INVALID
      example: 'PAYMENT_FAILED'
    MessageCode_PisSpecific_401:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"PIS Specific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - KID_MISSING
      example: 'KID_MISSING'
    clientMessageInformation_409_PIS:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_409_PIS'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    PriorityCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Priority Code\" for more details.
      type: string
      enum:
        - HIGH
        - NORM
      example: 'HIGH'
    organisationIdentification:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Organisation Identification\" for more details.
      type: object
      properties:
        anyBIC:
          description: |
            A code allocated to a business entity or to a financial institution by a Registration Authority under an international identification scheme.
          allOf:
            - $ref: '#/components/schemas/BICFI'
        lei:
          description: |
            Legal Entity Identifier.
          allOf:
            - $ref: '#/components/schemas/LEI'
        others:
          description: |
            Unique identification of an organisation, as assigned by an institution, using an identification scheme.
          type: array
          items:
            $ref: '#/components/schemas/genericOrganisationIdentification'
    MessageCode_PisSpecific_403:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"PIS Specific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - PRODUCT_INVALID
      example: 'PRODUCT_INVALID'
    MessageCode_PisSpecific_404:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"PIS Specific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - PRODUCT_UNKNOWN
      example: 'PRODUCT_UNKNOWN'
    MessageCode_PisSpecific_405:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"PIS Specific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - CANCELLATION_INVALID
      example: 'CANCELLATION_INVALID'
    BICFI:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      pattern: '[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}'
      example: 'ECBFDEFFFIM'
    PersonIdentificationCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      enum:
        - ARNU
        - CCPT
        - CUST
        - DRLC
        - EMPL
        - NIDN
        - SOSE
        - TELE
        - TXID
        - POID
      example: 'NIDN'
    _links_200_GET_AUTHORISATION_STATUS: 
      type: object
      additionalProperties: 
        $ref: '#/components/schemas/hrefType'
      properties:
        scaStatus:
          $ref: '#/components/schemas/hrefType'
    ProxyAccountTypeCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      enum:
        - TELE
        - EMAL
        - DNAM
        - CINC
        - COTX
        - COID
        - CUST
        - DRLC
        - EIDN
        - EWAL
        - PVTX
        - LEIC
        - MBNO
        - NIDN
        - CCPT
        - SHID
        - SOSE
        - TOKN
        - UBIL
        - VIPN
        - BIID
      example: 'EMAL'
    MessageCode_ServiceUnspecific_409:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Service Unspecific HTTP Error Codes\" for more details.
      enum: 
          - STATUS_INVALID
          - CHANGE_INVALID
      example: 'STATUS_INVALID'
    error_NG_404_AUTHORISATION: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_404_AUTHORISATION'
        _links:
          $ref: '#/components/schemas/links'
    error_RFC7807_400_AUTHORISATION: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_400'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_ServiceUnspecific_400'
        _links:
          $ref: '#/components/schemas/links'
    SecuritiesFeeTypeCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Securities Fee Type Code\" for more details.
      type: string
      enum:
        - transactionFee
        - brokerageFee
        - managementFee
        - courtage
        - custodyFee
        - exchangeFee
        - thirdPartyFee
        - otherFee
      example: 'otherFee'
    _links_200_PUT_RESOURCE_WITH_DEBTOR_ACCOUNT: 
      type: object
      additionalProperties: 
        $ref: '#/components/schemas/hrefType'
      properties:
        scaRedirect:
          $ref: '#/components/schemas/hrefType'
        scaOAuth:
          $ref: '#/components/schemas/hrefType'
        confirmation:
          $ref: '#/components/schemas/hrefType'
        selectAuthenticationMethod:
          $ref: '#/components/schemas/hrefType'
        authoriseTransaction:
          $ref: '#/components/schemas/hrefType'
        scaStatus:
          $ref: '#/components/schemas/hrefType'
        transactionFees:
          $ref: '#/components/schemas/hrefType'
        status:
          $ref: '#/components/schemas/hrefType'
        encryptionCertificates:
          type: array
          items: 
            $ref: '#/components/schemas/hrefType'
    MessageCode_ServiceUnspecific_405:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Service Unspecific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - SERVICE_INVALID
      example: 'SERVICE_INVALID'
    MessageCode_ServiceUnspecific_404:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Service Unspecific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - RESOURCE_UNKNOWN
      example: 'RESOURCE_UNKNOWN'
    MessageCode_ServiceUnspecific_403:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Service Unspecific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - SERVICE_BLOCKED
        - CONSENT_UNKNOWN
        - RESOURCE_UNKNOWN
        - RESOURCE_EXPIRED
      example: 'SERVICE_BLOCKED'
    MessageCode_ServiceUnspecific_401:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Service Unspecific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - CERTIFICATE_INVALID
        - ROLE_INVALID
        - CERTIFICATE_EXPIRED
        - CERTIFICATE_BLOCKED
        - CERTIFICATE_REVOKED
        - CERTIFICATE_MISSING
        - CLIENT_INVALID
        - CLIENT_INCONSISTENT
        - API_CONTRACT_ID_INVALID
        - SIGNATURE_INVALID
        - SIGNATURE_MISSING
        - ROLE_INVALID
        - PSU_CREDENTIALS_INVALID
        - CORPORATE_ID_INVALID
        - CONSENT_INVALID
        - CONSENT_EXPIRED
        - TOKEN_UNKNOWN
        - TOKEN_INVALID
        - TOKEN_EXPIRED
      example: 'CERTIFICATE_INVALID'
    error_NG_404_PIS: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_404_PIS'
        _links:
          $ref: '#/components/schemas/links'
    MessageCode_ServiceUnspecific_400:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Service Unspecific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - FORMAT_ERROR
        - PARAMETER_NOT_CONSISTENT
        - PARAMETER_NOT_SUPPORTED
        - SERVICE_INVALID
        - CONSENT_UNKNOWN
        - RESOURCE_UNKNOWN
        - RESOURCE_EXPIRED
        - RESOURCE_BLOCKED
        - TIMESTAMP_INVALID
        - PERIOD_INVALID
        - SCA_METHOD_UNKNOWN
        - SCA_INVALID
      example: 'FORMAT_ERROR'
    messageCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Message Code\" for more details.
      oneOf:
        - $ref: '#/components/schemas/messageCode_ServiceUnspecific'
        - $ref: '#/components/schemas/messageCode_PisSpecific'
        - $ref: '#/components/schemas/messageCode_AisSpecific'
        - $ref: '#/components/schemas/messageCode_PiisSpecific'
        - $ref: '#/components/schemas/messageCode_SigningBasketSpecific'
        - $ref: '#/components/schemas/messageCode_PushAisSpecific'
    Max4Text:
      type: string
      maxLength: 4
      example: '4CHR'
    referredDocumentInformation:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Referred Document Information\" for more details.
      type: object
      properties:
        typeCode:
          description: |
            Specifies the type of referred document, provided as code.
          allOf:
            - $ref: '#/components/schemas/ReferredDocumentTypeCode'
        typeProprietary:
          description: |
            Specifies the type of referred document, provided in proprietary encoding.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        typeIssuer:
          description: |
            Issuer of the document type.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        number:
          description: |
            Unique and unambiguous identification of the referred document.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        relatedDate:
          description: |
            Date associated with the referred document.
          allOf:
            - $ref: '#/components/schemas/ISODate'
    paymentIdentification1:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Payment Identification1\" for more details.
      type: object
      properties:
        endToEndId:
          description: |
          allOf:
            - $ref: '#/components/schemas/Max35Text'
    MessageCode_SigningBasketSpecific_400:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Signing Basket Specific Error Codes\" for more details.
      type: string
      enum: 
        - REFERENCE_MIX_INVALID
      example: 'REFERENCE_MIX_INVALID'
    clientMessageInformation_404_PIS:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_404_PIS'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    MessageCode_401_PIS: 
      description: Message codes defined for PIS for HTTP Error code 401 (UNAUTHORIZED).
      anyOf:
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_401'
        - $ref: '#/components/schemas/MessageCode_PisSpecific_401'
    SCAStatus:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"SCA Status\" for more details.
      type: string
      enum:
        - received
        - psuIdentified
        - psuAuthenticated
        - scaMethodSelected
        - started
        - unconfirmed
        - finalised
        - failed
        - exempted
      example: 'received'
    MessageCode_SigningBasketSpecific_409:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Signing Basket Specific Error Codes\" for more details.
      type: string
      enum: 
        - REFERENCE_STATUS_INVALID
      example: 'REFERENCE_STATUS_INVALID'
    BalanceType:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Balance Type\" for more details.
      type: string
      enum:
        - closingBooked
        - expected
        - openingBooked
        - interimAvailable
        - interimBooked
        - forwardAvailable
        - nonInvoiced
      example: 'closingBooked'
    links:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Links\" for more details.
      type: object
      properties:
        scaRedirect:
          description: |
            A link to an ASPSP site where SCA is performed within the Redirect SCA approach.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        scaOAuth:
          description: |
            The link refers to a JSON document specifying the OAuth details of the ASPSP's authorisation server. JSON document follows the definition given in [RFC 8414].
          allOf:
            - $ref: '#/components/schemas/hrefType'
        confirmation:
          description: |
            \"confirmation\": Might be added by the ASPSP if either the \"scaRedirect\" or \"scaOAuth\" hyperlink is returned in the same response message. 
            This hyperlink defines the URL to the resource which needs to be updated with 
            * a confirmation code as retrieved after the plain redirect authentication process with the ASPSP authentication server or
            * an access token as retrieved by submitting an authorization code after the integrated Oauth based authentication process with the ASPSP authentication server.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        creditorNameConfirmation:
          description: |
            A link to an endpoint, where the submitted payment needs to be confirmed explicitly for execution after a verification of payee process has detected a deviation in the creditor account/creditor name pair.
            If this hyperlink is provided, the addressed payment will not be executed without a related confirmation.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        startAuthorisation:
          description: |
            A link to an endpoint, where the authorisation of a transaction or the authorisation of a transaction cancellation shall be started with a POST command. 
            No specific data is needed for this process start.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        startAuthorisationWithPsuIdentification:
          description: |
            The link to an endpoint where the authorisation of a transaction or of a transaction cancellation shall be started, where PSU identification shall be uploaded 
            with the corresponding call.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        updatePsuIdentification:
          description: |
            The link to the payment initiation or account information resource, which needs to be updated by the PSU identification if not delivered yet.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        startAuthorisationWithProprietaryData:
          description: |
            A link to the endpoint, where the authorisation of a transaction or of a transaction cancellation shall be started, and where proprietary data needs to be updated with this call. 
            The TPP can find the scope of missing proprietary data in the ASPSP documentation.
            The usage of this hyperlink is not further specified in the specification but is used analogously to e.g. the startAuthorisation withPsuIdentification hyperlink.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        updateProprietaryData:
          description: |
            The link to the payment initiation or account information resource, which needs to be updated by the proprietary data.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        startAuthorisationWithPsuAuthentication:
          description: |
            The link to an endpoint where the authorisation of a transaction or of a transaction cancellation shall be started, where PSU authentication data shall be uploaded 
            with the corresponding call.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        updatePsuAuthentication:
          description: |
            The link to the payment initiation or account information resource, which needs to be updated by a PSU password and eventually the PSU identification if not delivered yet. 
          allOf:
            - $ref: '#/components/schemas/hrefType'
        startAuthorisationWithEncryptedPsuAuthentication:
          description: |
            The link to an endpoint where the authorisation of a transaction or of a transaction cancellation shall be started, where encrypted PSU authentication data shall be uploaded 
            with the corresponding call.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        updateEncryptedPsuAuthentication:
          description: |
            The link to the payment initiation or account information resource, which needs to be updated by an encrypted PSU password and eventually the PSU identification if not delivered yet. 
          allOf:
            - $ref: '#/components/schemas/hrefType'
        startAuthorisationWithAuthenticationMethodSelection:
          description: |
            This is a link to and endpoint where the authorisation of a transaction or of a transaction cancellation shall be started, 
            where the selected SCA method shall be uploaded  with the corresponding call.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        selectAuthenticationMethod:
          description: |
            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. 
          allOf:
            - $ref: '#/components/schemas/hrefType'
        startAuthorisationWithTransactionAuthorisation:
          description: |
            A link to an endpoint, where an authorisation of a transaction or a cancellation can be started, and where the response data for the challenge is uploaded in the same call for the 
            transaction authorisation or transaction cancellation at the same time in the Embedded SCA Approach.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        authoriseTransaction:
          description: |
            The link to the payment initiation or consent resource, where the \"Transaction Authorisation\"Request\" is sent to. This is the link to the resource which will authorise the payment or the consent by 
            checking the SCA authentication data within the Embedded SCA approach.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        updateResourceByDebtorAccountResource:
          description: |
            A link to a payment related resource which needs to be updated by an account, referenced by a resource identification.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        self:
          description: |
            The link to the payment initiation resource created by the request itself. 
            This link can be used later to retrieve the transaction status of the payment initiation.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        status:
          description: |
            A link to retrieve the status of the transaction resource.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        transactionfees:
          description: |
            The link is to the status resource.  
            This link is only added within the authorisation process in case fee information is available via the status resource.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        scaStatus:
          description: |
            A link to retrieve the status of the authorisation or cancellation-authorisation sub-resource.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        account:
          description: |
            A link to the resource providing the details of one account
          allOf:
            - $ref: '#/components/schemas/hrefType'
        savingsAccount:
          description: |
            A link to the resource providing the details of a savings account.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        loanAccount:
          description: |
            A link to the resource providing the details of a loan account.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        balances:
          description: |
            A link to the resource providing the balance of a dedicated account.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        transactions:
          description: |
            A link to the resource providing the transaction history of a dedicated account.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        cardAccount:
          description: |
            A link to the resource providing the details of one card account.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        cardTransactions:
          description: |
            A link to the resource providing the transaction history of a dedicated card account.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        transactionDetails:
          description: |
            A link to the resource providing details of a dedicated transaction.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        ibanCheck:
          description: |
            A link to the endpoint offering the addressed iban check result.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        paymentInitiation:
          description: |
            A link to an initiation related to a payment resource.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        securitiesAccount:
          description: |
            A link to the resource providing the details of one securitiesAccount.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        positions:
          description: |
            A link to the resource providing the list of positions of one securitiesAccount.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        orders:
          description: |
            A link to the resource providing the list of orders of one securitiesAccount.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        orderDetails:
          description: |
            A link to the resource providing details of one specific order.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        relatedOrders:
          description: |
            An array of links to request order details of related orders related to the order that is represented by the data structure containing this element 
            (e.g. other orders that originated from the same order split as this order). 
          type: array
          items:
            $ref: '#/components/schemas/hrefType'
        relatedTransactions:
          description: |
            An array of links to request securities transaction details of transactions that resulted from this order.
          type: array
          items:
            $ref: '#/components/schemas/hrefType'
        subscription:
          description: |
            A link to the resource providing the details of a subscription for Push AIS Services.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        entryStatusRevoked:
          description: |
            Links to entry endpoints where the entry status is revoked.
          type: array
          items:
            $ref: '#/components/schemas/hrefType'
        first:
          description: |
            Navigation link for paginated account reports.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        next:
          description: |
            Navigation link for paginated account reports.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        previous:
          description: |
            Navigation link for paginated account reports.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        last:
          description: |
            Navigation link for paginated account reports.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        download:
          description: |
            Download link for huge AIS data packages.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        confirmInitiation:
          description: |
            link to a confirmation endpoint, where a payment initiation needs to be confirmed explicitly by the API Client for execution.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        aspspParameters:
          description: |
          allOf:
            - $ref: '#/components/schemas/hrefType'
        aspspContacts:
          description: |
          allOf:
            - $ref: '#/components/schemas/hrefType'
        aspspDowntimes:
          description: |
          allOf:
            - $ref: '#/components/schemas/hrefType'
        onboardings:
          description: |
            A link to commercially onboard to the related API, see openFinance, Admin Services for more details.
          allOf:
            - $ref: '#/components/schemas/hrefType'
        readConditions:
          description: |
          allOf:
            - $ref: '#/components/schemas/hrefType'
        confirmConditions:
          description: |
          allOf:
            - $ref: '#/components/schemas/hrefType'
    messageCode_AisSpecific:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"AIS Specific HTTP Error Codes\" for more details.
      oneOf:
        - $ref: '#/components/schemas/MessageCode_AisSpecific_400'
        - $ref: '#/components/schemas/MessageCode_AisSpecific_401'
        - $ref: '#/components/schemas/MessageCode_AisSpecific_404'
        - $ref: '#/components/schemas/MessageCode_AisSpecific_406'
        - $ref: '#/components/schemas/MessageCode_AisSpecific_429'
    UUID:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      format: uuid
      example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'
    RegulatoryReportingTypeCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Regulatory Reporting Type Code\" for more details.
      type: string
      enum:
       - CRED
       - DEBT
       - BOTH
      example: 'BOTH'
    ClearingSystemIdentificationCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more detail
      type: string
      enum:
        - ATBLZ
        - AUBSB
        - CACPA
        - CHBCC
        - CHSIC
        - CNAPS
        - DEBLZ
        - ESNCC
        - GBDSC
        - GRBIC
        - HKNCC
        - IENCC
        - INFSC
        - ITNCC
        - JPZGN
        - NZNCC
        - PLKNR
        - PTNCC
        - RUCBC
        - SESBA
        - SGIBG
        - THCBC
        - TWNCC
        - USABA
        - USPID
        - ZANCC
        - NZRSA
        - MZBMO
        - CNCIP
        - KRBOK
      example: 'DEBLZ'
    SinglePayment_SCT_Core:
      allOf:
        - $ref: '#/components/schemas/minimum_SCT_Core'
        - type: object
          description: |
            Payment data model for Single Payments
          required:
            - debtorAccount
          properties:
            debtorAccount:
              description: |
                Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
              allOf:
                - $ref: '#/components/schemas/accountReference1'
#             debtor:
#               description: |
#                 Party that owes an amount of money to the (ultimate) creditor.
#               allOf:
#                 - $ref: '#/components/schemas/partyDescription'
#             requestedExecutionDate:
#               description: |
#                 Date at which the initiating party requests the clearing agent to process the payment.
#               allOf:
#                 - $ref: '#/components/schemas/ISODate'
#             requestedExecutionDateTime:
#               description: |
#                 Date and time at which the initiating party requests the clearing agent to process the payment.
#               allOf:
#                 - $ref: '#/components/schemas/ISODateTime'
#             transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#             apiClientMessages:
#               type: array
#               items:
#                 $ref: '#/components/schemas/clientMessageInformation'
    securitiesAccountFeeRule:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Securities Account Fee Rule\" for more details.
      type: object
      properties:
        amount:
          description: |
            Amount of the fee.
          allOf:
            - $ref: '#/components/schemas/amount'
        percentage:
          description: |
            Percentage of the fee. Up to 20 significant figures. The decimal separator is a dot.
            Trailing zeroes must be truncated.Fee as a percentage.
          type: string
          pattern: '-?[0-9]{1,20}(\.[0-9]{0,19})?'
        fromBaseAmount:
          description: |
            To be used for fees where a tiered percentage is used to calculate the fee relative to an implicitly defined base amount (such as a transaction's volume being the base amount for a courtage).
            The range of one tier is defined as all applicable entities with base amounts X and 
            fromBaseAmount \u2264 X \u2264 toBaseAmount.
            In any array of fee rules, only one of these entries may be missing the \"fromBaseAmount\" element (indicating that the rule represented by this entry is used without 
            a lower bound to the base amount) and only one entry may be missing the \"toBaseAmount\" element (indicating that the rule represented by this entry is applied without an 
            upper limit to the base amount). In cases, where the fee is not calculated as a tiered percentage, only one entry in array \"feeRules\" is included. 
            This entry must be missing both subelements \"fromBaseAmount\" and \"toBaseAmount\".
          allOf:
            - $ref: '#/components/schemas/amount'
        toBaseAmount:
          description: |
            To be used for fees where a tiered percentage is used to calculate the fee relative to an implicitly defined base amount (such as a transaction's volume being the base amount for a courtage).
            The range of one tier is defined as all applicable entities with base amounts X and 
            fromBaseAmount \u2264 X \u2264 toBaseAmount.
            In any array of fee rules, only one of these entries may be missing the \"fromBaseAmount\" element (indicating that the rule represented by this entry is used without 
            a lower bound to the base amount) and only one entry may be missing the \"toBaseAmount\" element (indicating that the rule represented by this entry is applied without an 
            upper limit to the base amount). In cases, where the fee is not calculated as a tiered percentage, only one entry in array \"feeRules\" is included. 
            This entry must be missing both subelements \"fromBaseAmount\" and \"toBaseAmount\".
          allOf:
            - $ref: '#/components/schemas/amount'
        minimumAmount:
          description: |
            Minimum amount of the fee in each billing period / for each billed event if applicable.
          allOf:
            - $ref: '#/components/schemas/amount'
        maximumAmount:
          description: |
            Maximum amount of the fee in each billing / for each billed event period if applicable.
          allOf:
            - $ref: '#/components/schemas/amount'
    postalAddress:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Postal Address (Either Structured or Unstructured Address)\" for more details.
      type: object
      properties:
        addressLines:
          description: |
            At most seven entries are permitted. May only be used, if none of the structured address elements \"streetName\", \"buildingNumber\", \"postcode\" or \"townName\" is used.
            *Remark:* For SEPA transactions this is further restricted to a maximum of 1 entry.
          type: array
          maxItems: 7
          items:
            $ref: '#/components/schemas/Max140Text'
        department:
          description: |
            Identification of a division of a large organisation or building.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        subDepartment:
          description: |
            Identification of a sub-division of a large organisation or building.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        streetName:
          description: |
            Name of a street or thoroughfare.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        buildingNumber:
          description: |
            Number that identifies the position of a building on a street.
          allOf:
            - $ref: '#/components/schemas/Max16Text'
        buildingName:
          description: |
            Name of the building or house.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        floor:
          description: |
            Floor or storey within a building.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        postBox:
          description: |
            Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for.
          allOf:
            - $ref: '#/components/schemas/Max16Text'
        room:
          description: |
            Building room number.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        postCode:
          description: |
            Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.
          allOf:
            - $ref: '#/components/schemas/Max16Text'
        townName:
          description: |
            Name of a built-up area, with defined boundaries, and a local government. 
            *Usage Rule:* If address lines are not used, this attribute is mandatrory.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        townLocationName:
          description: |
            Specific location name within the town.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        districtName:
          description: |
            Identifies a subdivision within a country sub-division.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        countrySubDivision:
          description: |
            Identifies a subdivision of a country such as state, region, county.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        country:
          description: |
            Nation with its own government.
            *Usage Rule:* If address lines are not used, this attribute is mandatrory.
          allOf:
            - $ref: '#/components/schemas/CountryCode'
    MessageCode_AisSpecific_429:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"AIS Specific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - ACCESS_EXCEEDED
      example: 'ACCESS_EXCEEDED'
    PeriodicPayment_Target2_Core:
      allOf:
        - $ref: '#/components/schemas/minimum_Target2_Core'
        - type: object
          description: |
            Payment data model for periodic Payments
          required:
            - debtorAccount
            - frequency
            - startDate
          properties:
            debtorAccount:
              description: |
                Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
              allOf:
                - $ref: '#/components/schemas/accountReference1'
#             debtor:
#               description: |
#                 Party that owes an amount of money to the (ultimate) creditor.
#               allOf:
#                 - $ref: '#/components/schemas/partyDescription'
            startDate:
              description: |
                The first applicable day of execution starting from this date is the first payment. 
              allOf:
                - $ref: '#/components/schemas/ISODate'
            executionRule:
              description: |
                 \"following\" or \"preceding\" 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 \"preceding\" or \"following\" working day. 
                 ASPSP might reject the request due to the communicated value, if rules in Online-Banking are not supporting this execution rule. 
              type: string
            endDate:
              description: |
                The last applicable day of execution. If not given, it is an infinite standing order.
              allOf:
                - $ref: '#/components/schemas/ISODate'
            frequency:
              description: |
                The frequency of the recurring payment resulting from this standing order.
              allOf:
                - $ref: '#/components/schemas/FrequencyCode'
            dayOfExecution:
              description: |
                 \"31\" is ultimo. The format is following the regular expression \d{1,2}. Example: The first day is addressed by \"1\". 
                 The date is referring to the time zone of the ASPSP. 
              allOf:
                - $ref: '#/components/schemas/Max2Text'
            monthsOfExecution:
              description: |
                The format is following the regular expression \d{1,2}. The array is restricted to 11 entries. The values contained In the 
                array entries shall all be different and the maximum value of one entry is 12. 
                This attribute is contained if and only if the frequency equals \"MonthlyVariable\". 
                Example: An execution on January, April and October each year is addressed by [\"1\". \"4\", \"10\"]. 
              type: array
              items:
                $ref: '#/components/schemas/Max2Text'
#             transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#             apiClientMessages:
#               type: array
#               items:
#                 $ref: '#/components/schemas/clientMessageInformation'
    PartyIdentificationMatchCode:
      description: |
        See document \"openFinance API Framework Extended Services Verification of Party (VOP) \", 
        section \"Party Identification Match Code\" for more details.
        Code    Desription
         MTCH     Match
         NMTC     No match
         NOAP     Validation check is not applicable
         NOTC     Validation check has not been carried out.        
      type: string
      enum:
        - MTCH
        - NMTC
        - NOAP
      example: 'MTCH'
    messageCode_PiisSpecific:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"PIIS Specific Error Codes\" for more details.
      oneOf:
        - $ref: '#/components/schemas/MessageCode_PiisSpecific_400'
    CategoryPurposeCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      enum:
        - BONU
        - CASH
        - CBLK
        - CCRD
        - CORT
        - DCRD
        - DIVI
        - DVPM
        - EPAY
        - FCIN
        - FCOL
        - GP2P
        - GOVT
        - HEDG
        - ICCP
        - IDCP
        - INTC
        - INTE
        - LBOX
        - LOAN
        - MP2B
        - MP2P
        - OTHR
        - PENS
        - RPRE
        - RRCT
        - RVPM
        - SALA
        - SECU
        - SSBE
        - SUPP
        - TAXS
        - TRAD
        - TREA
        - VATX
        - WHLD
        - SWEP
        - TOPG
        - ZABA
        - VOST
        - FCDT
        - CIPC
        - CONC
      example: 'OTHR'
    clearingSystemMemberIdentification:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Clearing System Member Identification\" for more details.
      type: object
      properties:
        memberId:
          description: |
            Identification of a member of a clearing system.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        clearingSystemIdentificationCode:
          description: |
            Identification of a clearing system, in a coded form as published in an external list.
          allOf:
            - $ref: '#/components/schemas/ClearingSystemIdentificationCode'
        clearingSystemIdentificationProprietary:
          description: |
            Identification code for a clearing system, that has not yet been identified in the list of clearing systems.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
    minimum_SCT_Core:
      type: object
      description: |
        Minimum payment data model containing all elements that are common for single payments, periodic payments and bulk payments
      required:
        - creditor
        - creditorAccount
        - instructedAmount
      properties:
        paymentIdentification:
          description: |
            Set of elements used to reference a payment instruction.
          allOf:
            - $ref: '#/components/schemas/paymentIdentification1'
        paymentMethod:
          description: |
            Specifies the means of payment that will be used to move the amount of money.
            Usage: Only used for cross-border transactions.
            If no paymentMethod is explicitly stated, paymentMethod will be interpreted as **TRF** (Credit Transfer).
          allOf:
            - $ref: '#/components/schemas/CreditTransferPaymentMethodCode'
#         instructionPriority:
#           description: |
#             Indicator of the urgency or order of importance that the instructing party would like the instructed party to apply to the processing of the instruction.
#           allOf:
#             - $ref: '#/components/schemas/PriorityCode'
#         serviceLevelCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided as a code.
#           allOf:
#             - $ref: '#/components/schemas/ServiceLevelCode'
#         localInstrumentCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided in proprietary encoding. *Remark:* Within the SDD scheme, only "CORE" or "B2B" are used
#           allOf:
#             - $ref: '#/components/schemas/ExternalLocalInstrumentCode'
#         localInstrumentProprietary:
#           description: |
#             *Remark:* Within the SDD scheme, usage of this element is not supported.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         categoryPurposeCode:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided as code.
#           allOf:
#             - $ref: '#/components/schemas/CategoryPurposeCode'
#         categoryPurposeProprietary:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided in proprietary encoding.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         chargeBearer:
#           description: |
#             Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
#           allOf:
#             - $ref: '#/components/schemas/ChargeBearer'
#         chargesAccount:
#           description: |
#             Account used to process charges asso-ciated with a transaction.
#           allOf:
#             - $ref: '#/components/schemas/accountReference3'
#         ultimateDebtor:
#           description: |
#             Ultimate party that owes an amount of money to the (ultimate) creditor. Restriction to the schema are applied depending on the product.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription1'
        instructedAmount:
          description: |
            Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
          allOf:
            - $ref: '#/components/schemas/amount'
#         currencyOfTransfer:
#           description: |
#             This is a data element to indicate a diverging interbank transaction currency.
#             Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.
#           allOf:
#             - $ref: '#/components/schemas/CurrencyCode'
#         exchangeRateInformation:
#           description: |
#             Set of elements used to provide details on the currency exchange rate and contract.
#           allOf:
#             - $ref: '#/components/schemas/paymentExchangeRate'
        creditorAccount:
          description: |
            Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference1'
        creditorAgent:
          description: |
            Financial institution servicing an account for the creditor.
          allOf:
            - $ref: '#/components/schemas/agentDescription1'
        creditor:
          description: |
            Party to which an amount of money is due.
          allOf:
            - $ref: '#/components/schemas/partyDescription1'
        ultimateCreditor:
          description: |
            Ultimate party to which an amount of money is due.
          allOf:
            - $ref: '#/components/schemas/partyDescription1'
#         purposeCode:
#           description: |
#             Specifies the purpose of the instruction based the code set ExternalPurpose1Code from ISO 20022.
#           allOf:
#             - $ref: '#/components/schemas/PurposeCode'
#         purposeProprietary:
#           description: |
#             Specifies the purpose of the instruction in proprietary encoding
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
        remittanceInformationUnstructured:
          description: |
              Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, 
              such as commercial invoices in an accounts' receivable system, in an unstructured form.
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/Max140Text'
          example:
            - '{"Ref Number Merchant"}'
#         remittanceInformationStructured:
#           description: |
#               Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, 
#               such as commercial invoices in an accounts' receivable system, in a structured form.
#           type: array
#           minItems: 1
#           maxItems: 1
#           items:
#             $ref: '#/components/schemas/remittance'
#           example: []
#         regulatoryReporting:
#           description: |
#             Information needed due to regulatory and statutory requirements.
#           type: array
#           items:
#             $ref: '#/components/schemas/regulatoryReporting'
#         additionalRequestInformation:
#           description: |
#             Request related information which is not directly linked to the payment transaction.
#             Only applicable for request to pay services and extended payment services.
#           allOf:
#             - $ref: '#/components/schemas/additionalRequestInformation'
    additionalPartyInformation:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Additional Party Information\" for more details.
      type: object
      properties:
        tradeName:
          description: |
            Trade name of the related party. For display to the PSU only.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        merchantCategoryCode:
          description: |
            Merchant Category Code as assigned by ISO:
          allOf:
            - $ref: '#/components/schemas/MerchantCategoryCode'
        logoURL:
          description: |
            A hyperlink to the logo of the party.
          allOf:
            - $ref: '#/components/schemas/Max2048Text'
        geoLocation:
          description: |
          allOf:
            - $ref: '#/components/schemas/GeoLocation'
    PurposeCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      enum:
        - BKDF
        - BKFE
        - BKFM
        - BKIP
        - BKPP
        - CBLK
        - CDCB
        - CDCD
        - CDCS
        - CDDP
        - CDOC
        - CDQC
        - ETUP
        - FCOL
        - MTUP
        - ACCT
        - CASH
        - COLL
        - CSDB
        - DEPT
        - INTC
        - INTP
        - 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
        - GIFT
        - 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
        - RRCT
        - RRTP
        - RVPM
        - SLPI
        - SPLT
        - STDY
        - TBAN
        - TBIL
        - TCSC
        - TELI
        - TMPG
        - TPRI
        - TPRP
        - TRNC
        - TRVC
        - WEBI
        - IPAY
        - IPCA
        - IPDO
        - IPEA
        - IPEC
        - IPEW
        - IPPS
        - IPRT
        - IPU2
        - IPUW
        - 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
        - SPSP
        - SSBE
        - LBIN
        - LCOL
        - LFEE
        - LMEQ
        - LMFI
        - LMRK
        - LREB
        - LREV
        - LSFL
        - ESTX
        - FWLV
        - GSTX
        - HSTX
        - INTX
        - NITX
        - PTXP
        - RDTX
        - TAXS
        - VATX
        - WHLD
        - TAXR
        - B112
        - BR12
        - TLRF
        - TLRR
        - AIRB
        - BUSB
        - FERB
        - RLWY
        - TRPT
        - CBTV
        - ELEC
        - ENRG
        - GASB
        - NWCH
        - NWCM
        - OTLC
        - PHON
        - UBIL
        - WTER
        - BOND
        - CABD
        - CAEQ
        - CBCR
        - DBCR
        - DICL
        - EQTS
        - FLCR
        - EFTC
        - EFTD
        - MOMA
        - RAPI
        - GAMB
        - LOTT
        - AMEX
        - SASW
        - AUCO
        - PCOM
        - PDEP
        - PLDS
        - PLRF
        - GAFA
        - GAHO
        - CPEN
        - DEPD
        - RETL
        - DEBT
      example: 'OTHR'
    error_NG_405_PIS_CANC: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_405_PIS_CANC'
        _links:
          $ref: '#/components/schemas/links'
    error_RFC7807_405_AUTHORISATION: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_405'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_ServiceUnspecific_405'
        _links:
          $ref: '#/components/schemas/links'
    MerchantCategoryCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      maxLength: 4
      minLength: 4
    CreditorReferenceTypeCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Creditor Reference Type Code\" for more details.
      type: string
      enum:
        - RADM
        - RPIN
        - FXDR
        - DISP
        - PUOR
        - SCOR
      example: 'PUOR'
    Max1000Text:
      type: string
      maxLength: 1000
      example: 'Text, maximum of 1000 characters.'
    CountryCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      pattern: '[A-Z]{2}'
      example: 'SE'
    clientMessageInformation:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Client Message Information\" for more details.
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          description: |
          allOf:
            - $ref: '#/components/schemas/messageCode'
        path:
          description: |
            Path of the element of the request message which provoked the error message, if applicable
          type: string
        text:
          description: |
            Additional explaining text.
          allOf:
            - $ref: '#/components/schemas/Max500Text'
    error_NG_409_AUTHORISATION: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_409_AUTHORISATION'
        _links:
          $ref: '#/components/schemas/links'
    error_NG_403_PIS: 
      type: object
      properties:
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation_403_PIS'
        _links:
          $ref: '#/components/schemas/links'
    SinglePayment_SCT_inst_Core:
      allOf:
        - $ref: '#/components/schemas/minimum_SCT_inst_Core'
        - type: object
          description: |
            Payment data model for Single Payments
          required:
            - debtorAccount
          properties:
            debtorAccount:
              description: |
                Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
              allOf:
                - $ref: '#/components/schemas/accountReference1'
#             debtor:
#               description: |
#                 Party that owes an amount of money to the (ultimate) creditor.
#               allOf:
#                 - $ref: '#/components/schemas/partyDescription'
#             requestedExecutionDate:
#               description: |
#                 Date at which the initiating party requests the clearing agent to process the payment.
#               allOf:
#                 - $ref: '#/components/schemas/ISODate'
#             requestedExecutionDateTime:
#               description: |
#                 Date and time at which the initiating party requests the clearing agent to process the payment.
#               allOf:
#                 - $ref: '#/components/schemas/ISODateTime'
#             transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#             apiClientMessages:
#               type: array
#               items:
#                 $ref: '#/components/schemas/clientMessageInformation'
    amount:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Amount\" for more details.
      type: object
      required:
        - currency
        - amount
      properties:
        currency:
          description: |
            ISO 4217 Alpha 3 currency code
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
        amount:
          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})?'
    PeriodicPayment_SCT_Core:
      allOf:
        - $ref: '#/components/schemas/minimum_SCT_Core'
        - type: object
          description: |
            Payment data model for periodic Payments
          required:
            - debtorAccount
            - frequency
            - startDate
          properties:
            debtorAccount:
              description: |
                Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
              allOf:
                - $ref: '#/components/schemas/accountReference1'
#             debtor:
#               description: |
#                 Party that owes an amount of money to the (ultimate) creditor.
#               allOf:
#                 - $ref: '#/components/schemas/partyDescription'
            startDate:
              description: |
                The first applicable day of execution starting from this date is the first payment. 
              allOf:
                - $ref: '#/components/schemas/ISODate'
            executionRule:
              description: |
                 \"following\" or \"preceding\" 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 \"preceding\" or \"following\" working day. 
                 ASPSP might reject the request due to the communicated value, if rules in Online-Banking are not supporting this execution rule. 
              type: string
            endDate:
              description: |
                The last applicable day of execution. If not given, it is an infinite standing order.
              allOf:
                - $ref: '#/components/schemas/ISODate'
            frequency:
              description: |
                The frequency of the recurring payment resulting from this standing order.
              allOf:
                - $ref: '#/components/schemas/FrequencyCode'
            dayOfExecution:
              description: |
                 \"31\" is ultimo. The format is following the regular expression \d{1,2}. Example: The first day is addressed by \"1\". 
                 The date is referring to the time zone of the ASPSP. 
              allOf:
                - $ref: '#/components/schemas/Max2Text'
            monthsOfExecution:
              description: |
                The format is following the regular expression \d{1,2}. The array is restricted to 11 entries. The values contained In the 
                array entries shall all be different and the maximum value of one entry is 12. 
                This attribute is contained if and only if the frequency equals \"MonthlyVariable\". 
                Example: An execution on January, April and October each year is addressed by [\"1\". \"4\", \"10\"]. 
              type: array
              items:
                $ref: '#/components/schemas/Max2Text'
#             transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#             apiClientMessages:
#               type: array
#               items:
#                 $ref: '#/components/schemas/clientMessageInformation'
    CreditTransferPaymentMethodCode:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Credit Transfer Payment Method Code\" for more details.
      type: string
      enum:
         - TRF
         - CHK
      example: 'TRF'
    contactDetails:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Contact Details\" for more details.
      type: object
      properties:
        namePrefix:
          description: |
            Specifies the terms used to formally address a person.
          allOf:
            - $ref: '#/components/schemas/NamePrefixCode'
        name:
          description: |
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        phoneNumber:
          description: |
            pattern \+[0-9]{1,3}-[0-9()+\-]{1,30}
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        mobileNumber:
          description: |
            pattern \+[0-9]{1,3}-[0-9()+\-]{1,30}
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        faxNumber:
          description: |
            pattern \+[0-9]{1,3}-[0-9()+\-]{1,30}
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        emailAddress:
          description: |
            Address for electronic mail (e-mail).
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        emailPurpose:
          description: |
            Purpose for which an email address may be used.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        jobTitle:
          description: |
            Title of the function.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        responsibility:
          description: |
            Role of a person in an organisation.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        department:
          description: |
            Identification of a division of a large organisation or building.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        preferredMethod:
          description: |
            Preferred method used to reach the contact.
          allOf:
            - $ref: '#/components/schemas/PreferredMethod'
    _links_200_PIS_ExtendedStatus: 
      type: object
      additionalProperties: 
        $ref: '#/components/schemas/hrefType'
      properties:
        scaRedirect:
          $ref: '#/components/schemas/hrefType'
        scaOAuth:
          $ref: '#/components/schemas/hrefType'
        confirmation:
          $ref: '#/components/schemas/hrefType'
        startAuthorisation:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithPsuIdentification:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithEncryptedPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithAuthenticationMethodSelection:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithTransactionAuthorisation:
          $ref: '#/components/schemas/hrefType'
        self:
          $ref: '#/components/schemas/hrefType'
        status:
          $ref: '#/components/schemas/hrefType'
        scaStatus:
          $ref: '#/components/schemas/hrefType'
        encryptionCertificates:
          type: array
          items: 
            $ref: '#/components/schemas/hrefType'
    LEI:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      pattern: '[A-Z0-9]{18,18}[0-9]{2,2}'
      example: '549300DTUYXVMJXZNY75'
    MessageCode_AisSpecific_401:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"AIS Specific HTTP Error Codes\" for more details.
      type: string
      pattern: '^(?!(CONSENT_INVALID|^(?!(CONSENT_INVALID))))'
    _links_200_PIS_Status: 
      type: object
      additionalProperties: 
        $ref: '#/components/schemas/hrefType'
      properties:
        scaRedirect:
          $ref: '#/components/schemas/hrefType'
        scaOAuth:
          $ref: '#/components/schemas/hrefType'
        confirmation:
          $ref: '#/components/schemas/hrefType'
        startAuthorisation:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithPsuIdentification:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithEncryptedPsuAuthentication:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithAuthenticationMethodSelection:
          $ref: '#/components/schemas/hrefType'
        startAuthorisationWithTransactionAuthorisation:
          $ref: '#/components/schemas/hrefType'
        self:
          $ref: '#/components/schemas/hrefType'
        status:
          $ref: '#/components/schemas/hrefType'
        scaStatus:
          $ref: '#/components/schemas/hrefType'
        encryptionCertificates:
          type: array
          items: 
            $ref: '#/components/schemas/hrefType'
    MessageCode_AisSpecific_404:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"AIS Specific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - CONTENT_TEMPORARILY_NOT_AVAILABLE
      example: 'CONTENT_TEMPORARILY_NOT_AVAILABLE'
    error_RFC7807_404_AUTHORISATION: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_ServiceUnspecific_404'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_ServiceUnspecific_404'
        _links:
          $ref: '#/components/schemas/links'
    BulkPayment_SCT_Core:
      type: object
      description: |
        The structure defines the data model to be used under /v2/bulk-payments/{credit-transfer-product}.
        Further restrictions on data attribute types, inherited from the credit transfer product might apply.
      required:
        - controlSum
        - creditTransfers
        - debtorAccount
        - numberOfTransactions
        - paymentInformationId
      properties:
        paymentInformationId:
          description: |
            Unique identification as assigned by the sending party to unambiguously identify this bulk payment. 
            This attribute may be used by ASPSPs or communities as an optional field. 
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        paymentMethod:
          description: |
            Specifies the means of payment that will be used to move the amount of money. 
            Usage: Only used for cross-border transactions. 
            If no paymentMethod is explicitly indicated, paymentMethod will be interpreted as "TRF" (Credit Transfer).
          allOf:
            - $ref: '#/components/schemas/CreditTransferPaymentMethodCode'
        batchBooking:
          description: |
            If this element equals true, the PSU pre-fers 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
        numberOfTransactions:
          description: |
            Number of individual transactions con-tained in the related bulk.
          type: integer
        controlSum:
          description: |
            Total of all individual amounts included in the group, irrespective of currencies.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
#         serviceLevelCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided as a code.
#           allOf:
#             - $ref: '#/components/schemas/ServiceLevelCode'
#         chargeBearer:
#           description: |
#             Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
#           allOf:
#                 - $ref: '#/components/schemas/ChargeBearer'
#         categoryPurposeCode:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided as code.
#           allOf:
#             - $ref: '#/components/schemas/CategoryPurposeCode'
#         categoryPurposeProprietary:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided in proprietary encoding.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         localInstrumentCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided in proprietary encoding. *Remark:* Within the SDD scheme, only "CORE" or "B2B" are used
#           allOf:
#             - $ref: '#/components/schemas/ExternalLocalInstrumentCode'
#         localInstrumentProprietary:
#           description: |
#             *Remark:* Within the SDD scheme, usage of this element is not supported.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         debtor:
#           description: |
#             Party that owes an amount of money to the (ultimate) creditor.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription'
#         ultimateDebtor:
#           description: |
#             Ultimate party that owes an amount of money to the (ultimate) creditor. Restriction to the schema are applied depending on the product.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription1'
        debtorAccount:
          description: |
            Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference1'
#         requestedExecutionDate:
#           description: |
#             Date at which the initiating party requests the clearing agent to process the payment.
#           allOf:
#             - $ref: '#/components/schemas/ISODate'
#         requestedExecutionDateTime:
#           description: |
#             Date and time at which the initiating party requests the clearing agent to process the payment.
#           allOf:
#             - $ref: '#/components/schemas/ISODateTime'
        creditTransfers:
          description: |
            The Credit Transfer Bulk Entry  is a type which follows the JSON formats for the supported products for single payments, excluding the data elements
              * debtorAccount, 
              * debtor
              * debtorAgent
              * requestedExecutionDate,
              * requestedExecutionDateTime.
              These data elements may not be contained in any bulk entry.
              In addition, the following entries will be allowed for every single entry, if not used already on bulk level:
              * chargeBearer
              * chargesAccount
              * categoryPurposeCode
              * categoryPurposeProprietary
              * serviceLevelCode
              * localnstrumentCode
              * localInstrumentProprietary
              * ultimateDebtor
              In addition, the attributes
              * purposeCode
              * remittanceInformationStructured
              are always available on entry level if sup-ported by the related payment product.
          type: array
          items: 
            $ref: '#/components/schemas/minimum_SCT_Core'
#         transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#         apiClientMessages:
#           type: array
#           items:
#             $ref: '#/components/schemas/clientMessageInformation'
    MessageCode_AisSpecific_406:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"AIS Specific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - REQUESTED_FORMATS_INVALID
      example: 'REQUESTED_FORMATS_INVALID'
    InterestTypeCode3:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Interest Type Code\" for more details.
      type: string
      enum:
        - FIXD
        - INDE
      example: 'FIXD'
    MessageCode_405_PIS:
      description: |
        Message codes defined for PIS for HTTP Error code 405 (METHOD NOT ALLOWED).
      anyOf:
        - $ref: '#/components/schemas/MessageCode_ServiceUnspecific_405'
    minimum_Cross_Border_CT_Core:
      type: object
      description: |
        Minimum payment data model containing all elements that are common for single payments, periodic payments and bulk payments
      required:
        - creditor
        - creditorAccount
        - instructedAmount
      properties:
#         paymentIdentification:
#           description: |
#             Set of elements used to reference a payment instruction.
#           allOf:
#             - $ref: '#/components/schemas/paymentIdentification'
        paymentMethod:
          description: |
            Specifies the means of payment that will be used to move the amount of money.
            Usage: Only used for cross-border transactions.
            If no paymentMethod is explicitly stated, paymentMethod will be interpreted as **TRF** (Credit Transfer).
          allOf:
            - $ref: '#/components/schemas/CreditTransferPaymentMethodCode'
#         instructionPriority:
#           description: |
#             Indicator of the urgency or order of importance that the instructing party would like the instructed party to apply to the processing of the instruction.
#           allOf:
#             - $ref: '#/components/schemas/PriorityCode'
#         serviceLevelCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided as a code.
#           allOf:
#             - $ref: '#/components/schemas/ServiceLevelCode'
#         localInstrumentCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided in proprietary encoding. *Remark:* Within the SDD scheme, only "CORE" or "B2B" are used
#           allOf:
#             - $ref: '#/components/schemas/ExternalLocalInstrumentCode'
#         localInstrumentProprietary:
#           description: |
#             *Remark:* Within the SDD scheme, usage of this element is not supported.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         categoryPurposeCode:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided as code.
#           allOf:
#             - $ref: '#/components/schemas/CategoryPurposeCode'
#         categoryPurposeProprietary:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided in proprietary encoding.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
        chargeBearer:
          description: |
            Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
          allOf:
            - $ref: '#/components/schemas/ChargeBearer'
        chargesAccount:
          description: |
            Account used to process charges asso-ciated with a transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference3'
#         ultimateDebtor:
#           description: |
#             Ultimate party that owes an amount of money to the (ultimate) creditor. Restriction to the schema are applied depending on the product.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription1'
        instructedAmount:
          description: |
            Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
          allOf:
            - $ref: '#/components/schemas/amount'
#         currencyOfTransfer:
#           description: |
#             This is a data element to indicate a diverging interbank transaction currency.
#             Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.
#           allOf:
#             - $ref: '#/components/schemas/CurrencyCode'
#         exchangeRateInformation:
#           description: |
#             Set of elements used to provide details on the currency exchange rate and contract.
#           allOf:
#             - $ref: '#/components/schemas/paymentExchangeRate'
        creditorAccount:
          description: |
            Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference1'
        creditorAgent:
          description: |
            Financial institution servicing an account for the creditor.
          allOf:
            - $ref: '#/components/schemas/agentDescription1'
        creditor:
          description: |
            Party to which an amount of money is due.
          allOf:
            - $ref: '#/components/schemas/partyDescription1'
        ultimateCreditor:
          description: |
            Ultimate party to which an amount of money is due.
          allOf:
            - $ref: '#/components/schemas/partyDescription2'
#         purposeCode:
#           description: |
#             Specifies the purpose of the instruction based the code set ExternalPurpose1Code from ISO 20022.
#           allOf:
#             - $ref: '#/components/schemas/PurposeCode'
#         purposeProprietary:
#           description: |
#             Specifies the purpose of the instruction in proprietary encoding
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
        remittanceInformationUnstructured:
          description: |
              Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, 
              such as commercial invoices in an accounts' receivable system, in an unstructured form.
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/Max140Text'
          example:
            - '{"Ref Number Merchant"}'
#         remittanceInformationStructured:
#           description: |
#               Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, 
#               such as commercial invoices in an accounts' receivable system, in a structured form.
#           type: array
#           minItems: 1
#           maxItems: 1
#           items:
#             $ref: '#/components/schemas/remittance'
#           example: []
#         regulatoryReporting:
#           description: |
#             Information needed due to regulatory and statutory requirements.
#           type: array
#           items:
#             $ref: '#/components/schemas/regulatoryReporting'
#         additionalRequestInformation:
#           description: |
#             Request related information which is not directly linked to the payment transaction.
#             Only applicable for request to pay services and extended payment services.
#           allOf:
#             - $ref: '#/components/schemas/additionalRequestInformation'
    BulkPayment_generic:
      type: object
      description: |
        The structure defines the data model to be used under /v2/bulk-payments/{credit-transfer-product}.
        Further restrictions on data attribute types, inherited from the credit transfer product might apply.
      required:
        - controlSum
        - numberOfTransactions
        - paymentInformationId
      properties:
        paymentInformationId:
          description: |
            Unique identification as assigned by the sending party to unambiguously identify this bulk payment. 
            This attribute may be used by ASPSPs or communities as an optional field. 
          allOf:
            - $ref: '#/components/schemas/Max35Text'
        paymentMethod:
          description: |
            Specifies the means of payment that will be used to move the amount of money. 
            Usage: Only used for cross-border transactions. 
            If no paymentMethod is explicitly indicated, paymentMethod will be interpreted as "TRF" (Credit Transfer).
          allOf:
            - $ref: '#/components/schemas/CreditTransferPaymentMethodCode'
        batchBooking:
          description: |
            If this element equals true, the PSU pre-fers 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
        numberOfTransactions:
          description: |
            Number of individual transactions con-tained in the related bulk.
          type: integer
        controlSum:
          description: |
            Total of all individual amounts included in the group, irrespective of currencies.
          allOf:
            - $ref: '#/components/schemas/Max35Text'
#         serviceLevelCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided as a code.
#           allOf:
#             - $ref: '#/components/schemas/ServiceLevelCode'
        chargeBearer:
          description: |
            Specifies which party/parties will bear the charges associated with the processing of the payment transaction.
          allOf:
                - $ref: '#/components/schemas/ChargeBearer'
#         categoryPurposeCode:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided as code.
#           allOf:
#             - $ref: '#/components/schemas/CategoryPurposeCode'
#         categoryPurposeProprietary:
#           description: |
#             Specifies the high level purpose of the instruction based on a set of pre-defined categories; provided in proprietary encoding.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         localInstrumentCode:
#           description: |
#             Agreement under which or rules under which the transaction should be processed, provided in proprietary encoding. *Remark:* Within the SDD scheme, only "CORE" or "B2B" are used
#           allOf:
#             - $ref: '#/components/schemas/ExternalLocalInstrumentCode'
#         localInstrumentProprietary:
#           description: |
#             *Remark:* Within the SDD scheme, usage of this element is not supported.
#           allOf:
#             - $ref: '#/components/schemas/Max35Text'
#         debtor:
#           description: |
#             Party that owes an amount of money to the (ultimate) creditor.
#           allOf:
#             - $ref: '#/components/schemas/partyDescription'
        ultimateDebtor:
          description: |
            Ultimate party that owes an amount of money to the (ultimate) creditor. Restriction to the schema are applied depending on the product.
          allOf:
            - $ref: '#/components/schemas/partyDescription'
        debtorAccount:
          description: |
            Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
          allOf:
            - $ref: '#/components/schemas/accountReference'
#         requestedExecutionDate:
#           description: |
#             Date at which the initiating party requests the clearing agent to process the payment.
#           allOf:
#             - $ref: '#/components/schemas/ISODate'
#         requestedExecutionDateTime:
#           description: |
#             Date and time at which the initiating party requests the clearing agent to process the payment.
#           allOf:
#             - $ref: '#/components/schemas/ISODateTime'
        creditTransfers:
          description: |
            The Credit Transfer Bulk Entry  is a type which follows the JSON formats for the supported products for single payments, excluding the data elements
              * debtorAccount, 
              * debtor
              * debtorAgent
              * requestedExecutionDate,
              * requestedExecutionDateTime.
              These data elements may not be contained in any bulk entry.
              In addition, the following entries will be allowed for every single entry, if not used already on bulk level:
              * chargeBearer
              * chargesAccount
              * categoryPurposeCode
              * categoryPurposeProprietary
              * serviceLevelCode
              * localnstrumentCode
              * localInstrumentProprietary
              * ultimateDebtor
              In addition, the attributes
              * purposeCode
              * remittanceInformationStructured
              are always available on entry level if sup-ported by the related payment product.
          type: array
          items: 
            $ref: '#/components/schemas/minimum_generic'
        transactionStatus:
              $ref: '#/components/schemas/TransactionStatus'
        apiClientMessages:
          type: array
          items:
            $ref: '#/components/schemas/clientMessageInformation'
    challenge:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Challenge\" for more details.
      type: object
      properties:
        image:
          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.
          type: string
        data:
          description: |
            A collection of challenge data
          type: array
          items: 
            type: string
        imageLink:
          description: |
            A link where the ASPSP will provides the challenge image for the TPP.
          type: string
        otpMaxLength:
          description: |
            The maximal length for the OTP to be typed in by the PSU.
          type: integer
        otpFormat:
          description: |
            The format type of the OTP to be typed in. The admitted values are \"characters\" or \"integer\".
          type: string
        additionalInformation:
          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.
          type: string
    ISODateTime:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Other ISO-related basic Types\" for more details.
      type: string
      format: date-time
      example: '2020-01-01T13:00:00.999-01:00'
    clientMessageInformation_403_PIS:
      type: object
      required:
        - category
        - code
      properties:
        category:
          description: |
            Only \"ERROR\" or \"WARNING\" permitted
          type: string
        code:
          $ref: '#/components/schemas/MessageCode_403_PIS'
        path:
          type: string
        text:
          $ref: '#/components/schemas/Max500Text'
    PeriodicPayment_Cross_Border_CT_Core:
      allOf:
        - $ref: '#/components/schemas/minimum_Cross_Border_CT_Core'
        - type: object
          description: |
            Payment data model for periodic Payments
          required:
            - debtorAccount
            - frequency
            - startDate
          properties:
            debtorAccount:
              description: |
                Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.
              allOf:
                - $ref: '#/components/schemas/accountReference1'
#             debtor:
#               description: |
#                 Party that owes an amount of money to the (ultimate) creditor.
#               allOf:
#                 - $ref: '#/components/schemas/partyDescription'
            startDate:
              description: |
                The first applicable day of execution starting from this date is the first payment. 
              allOf:
                - $ref: '#/components/schemas/ISODate'
            executionRule:
              description: |
                 \"following\" or \"preceding\" 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 \"preceding\" or \"following\" working day. 
                 ASPSP might reject the request due to the communicated value, if rules in Online-Banking are not supporting this execution rule. 
              type: string
            endDate:
              description: |
                The last applicable day of execution. If not given, it is an infinite standing order.
              allOf:
                - $ref: '#/components/schemas/ISODate'
            frequency:
              description: |
                The frequency of the recurring payment resulting from this standing order.
              allOf:
                - $ref: '#/components/schemas/FrequencyCode'
            dayOfExecution:
              description: |
                 \"31\" is ultimo. The format is following the regular expression \d{1,2}. Example: The first day is addressed by \"1\". 
                 The date is referring to the time zone of the ASPSP. 
              allOf:
                - $ref: '#/components/schemas/Max2Text'
            monthsOfExecution:
              description: |
                The format is following the regular expression \d{1,2}. The array is restricted to 11 entries. The values contained In the 
                array entries shall all be different and the maximum value of one entry is 12. 
                This attribute is contained if and only if the frequency equals \"MonthlyVariable\". 
                Example: An execution on January, April and October each year is addressed by [\"1\". \"4\", \"10\"]. 
              type: array
              items:
                $ref: '#/components/schemas/Max2Text'
#             transactionStatus:
#               $ref: '#/components/schemas/TransactionStatus'
#             apiClientMessages:
#               type: array
#               items:
#                 $ref: '#/components/schemas/clientMessageInformation'
    partyIdentification:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"Party Identification\" for more details.
      type: object
      properties:
        organisationId:
          description: |
            An entry provided by an external ISO code list
          allOf:
            - $ref: '#/components/schemas/organisationIdentification'
        privateId:
          description: |
            A scheme name defined in a proprietary way.
          allOf:
            - $ref: '#/components/schemas/privateIdentification'
    MessageCode_AisSpecific_400:
      description: |
        See document \"openFinance API Framework Data Dictionary\", section \"AIS Specific HTTP Error Codes\" for more details.
      type: string
      enum: 
        - CONSENT_TYPE_NOT_SUPPORTED
        - SESSIONS_NOT_SUPPORTED
      example: 'SESSIONS_NOT_SUPPORTED'
    error_RFC7807_401_PIS: 
      description: |
        Standardised definition of reporting error information according to [RFC7807].
      type: object
      required:
        - type
        - code
      properties:
        type: 
          description: |
            A URI reference [RFC3986] that identifies the problem type. 
            Remark For Future: These URI will be provided by openFinance API Framework in future.
          type: string
          format: uri
          maxLength: 70
        title:
          description: |
            Short human readable description of error type. Could be in local language. To be provided by ASPSPs.
          allOf:
            - $ref: '#/components/schemas/Max70Text'
        status:
          description: |
            HTTP response code generated by the server.
            If contained, this is more relevant as the actual http response code in the actual response, because it is introduced by the application server.            
          type: integer
        detail:
          description: |
            Detailed human readable text specific to this instance of the error. 
          allOf:
            - $ref: '#/components/schemas/Max500Text'
        instance:
          description: |
            This attribute is containing a JSON pointer (as defined in [RFC6901]) or XPath expression to indicate the path to an issue generating the error in the related request.
          allOf:
            - $ref: '#/components/schemas/Max256Text'
        code:
          $ref: '#/components/schemas/MessageCode_401_PIS'
        additionalErrors:
          description: |
            Array of Error Information Blocks.
            Might be used if more than one error is to be communicated
          type: array
          items: #ErrorInformation
            description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. 
            type: object
            required:
              - code
            properties:
              title:
                $ref: '#/components/schemas/Max70Text'
              detail:
                $ref: '#/components/schemas/Max500Text'
              code:
                $ref: '#/components/schemas/MessageCode_401_PIS'
        _links:
          $ref: '#/components/schemas/links'
  parameters:
    HEADER_psuAccept:
      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
      example: 'application/json'
    HEADER_psuGeoLocation:
      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,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}'
      required: false
      example: 'GEO:52.506931;13.144558'
    HEADER_psuId: 
      name: PSU-ID
      in: header
      description: |
        Client ID of the PSU in the ASPSP client interface. 
        Might be mandated in the ASPSP's documentation.
        It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding
        AIS service in the same session.
        In this case the ASPSP might check whether PSU-ID and token match, 
        according to ASPSP documentation.
      required: false
      schema:
        $ref: '#/components/schemas/Max140Text'
      example: 'PSU-1234'
    HEADER_psuIdType: 
      name: PSU-ID-Type
      in: header
      description: |
        Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.
        In this case, the mean and use are then defined in the ASPSP's documentation.
      required: false
      schema:
        $ref: '#/components/schemas/Max35Text'
      example: 'PSU-ID-TYPE_C'
    HEADER_clientNotificationContentPreferred:
      name: Client-Notification-Content-Preferred
      in: header
      description: |
        The string has the form 
        status=X1, ..., Xn
        where Xi is one of the constants SCA, PROCESS, LAST and where constants are not
        repeated.
        The usage of the constants supports the of following semantics:
          SCA: A notification on every change of the scaStatus attribute for all related authorisation processes is preferred by the API Client.
          PROCESS: A notification on all changes of consentStatus or transactionStatus attributes is preferred by the API Client.
          LAST: Only a notification on the last consentStatus or transactionStatus as available in the XS2A interface is preferred by the API Client.
        This header field may be ignored, if the ASPSP does not support resource notification services for the related API Client.
      schema:
        type: string
      required: false
      example: 'status=SCA'
    HEADER_clientScaApproachPreference:
      name: Client-SCA-Approach-Preference
      in: header
      description: |
        A comma separated list of attributes, where the first entry will have a higher priority than the next or to every SCA Approach which is not indicated at all, e.g.
        \"decoupled, redirect, embedded\"
        or 
        \"decoupled\"
        This attribute may be ignored by the ASPSP
      schema:
        $ref: '#/components/schemas/Max35Text'
      required: false
      example: 'decoupled, redirect, embedded'
    HEADER_clientVopRequestId:
      name: Client-VOP-Request-ID
      in: header
      description: |
        This attribute contains the X-Request-ID of the related request on the dedicated VOP API. 
        This attribute might be ignored by the ASPSP.
        If the ASPSP offers the dedicated VOP API, it might mandate the usage of this attribute via the ASPSP documentation and then make the usage of this attribute mandatory, if applicable to the related payment product and if VOP has not been opted out.
      schema:
        type: string
        format: uuid
      required: false
      example: "99435c7e-ad88-49ec-a2ad-99ddcb1f5555"
    HEADER_psuAcceptEncoding:
      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
      example: '*'
    HEADER_bodySigProfile:
      name: Body-Sig-Profile 
      in: header
      description: |
         Indicates the signature profile used for signing (parts of) the body. Shall be used if the body is signed.
      required: false
      schema:
        type: string
        enum:
          - JAdES_JS
          - XAdES
          - EMV_AC
      example: 'XAdES'
    HEADER_psuAcceptCharset:
      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
      example: '*'
    HEADER_psuDeviceId:
      name: PSU-Device-ID
      in: header
      description: |
        UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available.
        UUID identifies either a device or a device dependant application installation.
        In case of an installation identification this ID needs to be unaltered until removal from device.
      schema:
        type: string
        format: uuid
      required: false
      example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'
    PATH_paymentProduct_all:
      name: payment-product
      in: path
      description: |
         The payment product, under which the payment under paymentId has been initiated.
         It shall be checked by the ASPSP, if the payment-product is matching the payment initiation addressed by paymentId.
      required: true
      schema:
        type: string
        enum:
          - sepa-credit-transfers
          - instant-sepa-credit-transfers
          - target-2-payments
          - cross-border-credit-transfers
          - pain.001-sepa-credit-transfers
          - pain.001-instant-sepa-credit-transfers
          - pain.001-target-2-payments
          - pain.001-cross-border-credit-transfers
          - pain.001-proprietary-credit-transfers
      example: 'sepa-credit-transfers'
    HEADER_psuUserAgent:
      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
      example: 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0'
    PATH_paymentService:
      name: payment-service
      in: path
      description: |
        Payment service:
        Possible values are:
        * payments
        * bulk-payments
        * periodic-payments
      required: true
      schema:
        type: string
        enum:
          - payments
          - bulk-payments
          - periodic-payments
      example: 'payments'
    HEADER_clientNokRedirectUri:
      name: Client-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 Client-Redirect-URI in case
        of a negative result of the redirect SCA method. This might be ignored by the ASPSP.
      schema:
        type: string
        format: uri
      required: false
      example: 'https://exampleclient.com/NokUri?clientEvent=11111111'
    HEADER_bodyEncList:
      name: Body-Enc-List
      in: header
      description: |
          Contains a List of names of data elements/ attributes of the body which contain encrypted information
      required: false
      schema:
        type: string
      example: 'BODY'
    HEADER_clientExplicitAuthorisationPreferred:
      name: Client-Explicit-Authorisation-Preferred
      in: header
      description: |
        If it equals \"true\", the API Client prefers to start the authorisation process separately, 
        e.g. because of the usage of a signing basket or because of asynchronous authorisation. 
        This preference might be ignored by the ASPSP, if a signing basket is not supported as functionality or if asynchronous authorisation is not supported.
        If it equals \"false\" or if the parameter is not used, there is no preference of the API Client. 
        This especially indicates that the API Client assumes a direct authorisation of the transaction in the next step, 
        without using a signing basket.
      schema:
        type: boolean
      required: false
      example: true
    HEADER_psuAcceptLanguage:
      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
      example: 'en-gb,en;0.8'
    HEADER_psuIpPort:
      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'
    PATH_authorisationCategory:
      name: authorisation-category
      in: path
      description: |
        The following two categories are supported: 
        * authorisations: used in case of an authorisation of the related business transaction.
        * cancellation-authorisations: used in case of the cancellation authorisation of the related business transaction. Used only if applicable to the addressed {service} 
      required: true
      schema:
        type: string
        enum: 
          - authorisations
          - cancellation-authorisations
      example: 'authorisations'
    HEADER_clientNotificationUri:
      name: Client-Notification-URI
      in: header
      description: |
         URI for the Endpoint of the Client API to which the status of the resource should be sent. 
         This header field may by ignored by the ASPSP if the resource status push function is not supported for the related API client. 
      schema:
        type: string
      required: false
      example: 'https://exampleclient.com/NotificationUri?clientEvent=11111111'
    HEADER_digest:
      name: Digest
      in: header
      description: |
        When API Client include a signature according to this signature profile, they also must include a \"Digest\" header as defined in [RFC3230]. 
        The \"Digest\" Header contains a Hash of the message body. If the message does not contain a body, the \"Digest\" header must contain the hash of an empty byte list.
        The only hash algorithms that may be used to calculate the Digest within the context of this specification are SHA-256 and SHA-512 as defined in [RFC5843]. 
      schema:
        type: string
      required: false # conditional
      example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='
    HEADER_tppRejectionNoFundsPreferred:
      name: TPP-Rejection-NoFunds-Preferred
      in: header
      description: |
        If it equals \"true\" then the TPP prefers a rejection of the payment initiation in case the ASPSP is 
        providing an integrated confirmation of funds request an the result of this is that not sufficient 
        funds are available.
        If it equals \"false\" then the TPP prefers that the ASPSP is dealing with the payment initiation like 
        in the ASPSPs online channel, potentially waiting for a certain time period for funds to arrive to initiate the payment.
        This parameter might be ignored by the ASPSP.
      schema:
        type: boolean
      required: false
      example: true
    PATH_resourceId:
      name: resourceId
      in: path
      description: |
        Resource identification of the related payment initiation, signing basket, consent, subscription or other related business transaction resource. 
      required: true
      schema:
        $ref: '#/components/schemas/Max70Text'
      example: '1234-resource-567'
    PATH_paymentProduct_SinglePayments:
      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 products are supported:
          - For request bodies with JSON encoding:
          -- sepa-credit-transfers
          -- instant-sepa-credit-transfers
          -- target-2-payments
          -- cross-border-credit-transfers
          - For request bodies with XML encoding (ISO20022 pain.001):
          -- pain.001-sepa-credit-transfers
          -- pain.001-instant-sepa-credit-transfers
          -- pain.001-target-2-payments
          -- pain.001-cross-border-credit-transfers
        The ASPSP will publish which of the payment products/endpoints will be supported. 
        For definitions of basic non euro generic products see [oFA PFDom].
        Further products might be published by the ASPSP within its XS2A documentation. These new product types will end in further endpoints of the XS2A Interface. 
      required: true
      schema:
        type: string
        enum:
          - sepa-credit-transfers
          - instant-sepa-credit-transfers
          - target-2-payments
          - cross-border-credit-transfers
          - pain.001-sepa-credit-transfers
          - pain.001-instant-sepa-credit-transfers
          - pain.001-target-2-payments
          - pain.001-cross-border-credit-transfers
      example: 'sepa-credit-transfers'
    PATH_resourcePath:
      name: resource-path
      in: path
      description: |
        This resource path can be a one-level parameter {service} or a two-level parameter {service}/{product-type}, where 
        * {service} stands for the service type of the related business transaction, e.g. /payments or /consents source.
        * {product-type} stands for the product-type of the related business transaction where applicable, e.g. 
        sepa-credit-transfers in the case of payments or account-access in case of consents.
      required: true
      schema:
        type: string
      example: 'consents/account-access'
    HEADER_consentId_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/Max70Text'
      example: '123cons456'
    HEADER_clientVopRequested:
      name: Client-VOP-Requested
      in: header
      description: |
        true: The client requests the ASPSP to perform a VOP check, where applicable. 
        false: The API Client requests the ASPSP not to perform a VOP check.             
        Reasons for this are e.g. that the API client has already performed the VOP check in a TPP scenario or is requiring an opt out in a direct access scenario.             
        The related VOP check could have been performed up front via the dedicated VOP API, if provided by the ASPSP.
        not used: The API Client does not request to perform a VOP request.
        An ASPSP may ignore this header
      required: false
      schema:
        type: boolean
    HEADER_psuCorporateId: 
      name: PSU-Corporate-ID
      in: header
      description: |
        Might be mandated in the ASPSP's documentation. Only used in a corporate context.
      required: false
      schema:
        $ref: '#/components/schemas/Max140Text'
      example: 'PSU-CORP-ID1234'
    HEADER_psuIpAddress_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. Conditions will be defined within service specifications, If applicable. 
      schema:
        type: string
        format: ipv4
      required: false
      example: '192.168.8.78'
    PATH_authorisationId:
      name: authorisationId
      in: path
      description: Resource identification of the related SCA.
      required: true
      schema:
        $ref: '#/components/schemas/Max70Text'
      example: '123auth456'
    HEADER_contentType_mandatory:
      name: Content-Type
      in: header
      description: |
      required: true
      schema:
        type: string
      example: 'application/json'
    HEADER_clientRedirectUri:
      name: Client-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. 
        It is recommended to always use this header field. 
      schema:
        type: string
        format: uri
      required: false # conditional
      example: 'https://exampleclient.com/redirectUri?clientEvent=11111111'
    HEADER_xRequestId:
      name: X-Request-ID
      in: header
      description: ID of the request, unique to the call, as determined by the initiating party.
      required: true
      schema:
        type: string
        format: uuid
      example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'
    HEADER_psuIpAddress_mandatory:
      name: PSU-IP-Address
      in: header
      description: |
        The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.
        If not available, the TPP shall use the IP Address used by the TPP when submitting this request.
      schema:
        type: string
        format: ipv4
      required: true
      example: '192.168.8.78'
    PATH_paymentId:
      name: paymentId
      in: path
      description: Resource identification of the related payment.
      required: true
      schema:
        $ref: '#/components/schemas/Max70Text'
      example: 'fe7552ee-0728-4bd1-baf7-94942331e478'
    HEADER_bodyEncProfile:
      name: Body-Enc-Profile 
      in: header
      description: |
         Indicates the encryption profile used for the encryption of (parts of) the body.
      required: false
      schema:
        type: string
        enum:
          - JWE_CS
          - XML_ENC
      example: 'JWE_CS'
    HEADER_psuHttpMethod:
      name: PSU-Http-Method
      in: header
      description: |
        HTTP method used at the PSU ? TPP interface, if available.
        Valid values are:
        * GET
        * POST
        * PUT
        * PATCH
        * DELETE
      schema:
        type: string
        enum:
          - GET
          - POST
          - PUT
          - PATCH
          - DELETE
      required: false
      example: 'GET'
    HEADER_clientBrandLoggingInformation:
      name: Client-Brand-Logging-Information
      in: header
      description: |
        This header might be used by API Clients to inform the ASPSP about the brand used by the API Client towards the PSU. This information is meant for 
        logging entries to enhance communication between ASPSP and PSU or ASPSP and API Client.
        This header might be ignored by the ASPSP. 
      schema:
        $ref: '#/components/schemas/Max140Text'
      required: false
      example: 'ClientBrandB'
    HEADER_psuCorporateIdType: 
      name: PSU-Corporate-ID-Type
      in: header
      description: |
        Might be mandated in the ASPSP's documentation. Only used in a corporate context.
      required: false
      schema:
        $ref: '#/components/schemas/Max35Text'
      example: 'PSU-CORP-ID-TYPE_A'
    HEADER_xJwsSignature:
      name: x-jws-signature
      in: header
      description: |
        The attribute x-jws-signature contains the JSON Web Signature.
      schema:
        type: string
      required: false # conditional
      example: 'eyJiNjQiOmZhbHNlLCJ4NXQjUzI1NiI6ImR5dFBwU2tKWXpoVGRQWFNXUDdqaFhnRzRrQ09XSVdHaWVzZHprdk5MelkiLCJjcml0IjpbInNpZ1QiLCJzaWdEIiwiYjY0Il0sInNpZ1QiOiIyMDIwLTEwLTI2VDExOjI2OjU3WiIsInNpZ0QiOnsicGFycyI6WyJ4LXJlcXVlc3QtaWQiLCJkaWdlc3QiXSwibUlkIjoiaHR0cDovL3VyaS5ldHNpLm9yZy8xOTE4Mi9IdHRwSGVhZGVycyJ9LCJhbGciOiJSUzI1NiJ9..NuGglWBtHcXavob2ZmW-PoSpMmhJS9U6z8zPqHFoE97vHI3z8wtaVdbwsj5WzgPjtVWUUnk8cxP4JjLXdwzwhhHB2uJ5FI4ZZGdSQQw-9pXPUx3cCJSzHmrgkJ-di-A4'
    PATH_paymentProduct_BulkPayments:
      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 products are supported:
          - For request bodies with JSON encoding:
          -- sepa-credit-transfers
          -- instant-sepa-credit-transfers
          -- target-2-payments
          -- cross-border-credit-transfers
          - For request bodies with XML encoding (ISO20022 pain.001):
          -- pain.001-sepa-credit-transfers
          -- pain.001-instant-sepa-credit-transfers
          -- pain.001-proprietary-credit-transfers
        The ASPSP will publish which of the payment products/endpoints will be supported. 
        For definitions of basic non euro generic products see [oFA PFDom].
        Further products might be published by the ASPSP within its XS2A documentation. These new product types will end in further endpoints of the XS2A Interface. 
      required: true
      schema:
        type: string
        enum:
          - sepa-credit-transfers
          - instant-sepa-credit-transfers
          - target-2-payments
          - cross-border-credit-transfers
          - pain.001-sepa-credit-transfers
          - pain.001-instant-sepa-credit-transfers
          - pain.001-proprietary-credit-transfers
      example: 'sepa-credit-transfers'
  requestBodies: {}
  headers:
    ASPSP-Notification-Support:
      description: |
        true if the ASPSP supports resource status notification services.
        false if the ASPSP supports resource status notification in general, but not for the current request.
        Not used, if resource status notification services are generally not supported by the ASPSP.
        Shall be supported if the ASPSP supports resource status notification services.
      schema:
        type: boolean       
      required: false
      example: true
    X-Reference-API-Version:
      description: ID of the request, unique to the call, as determined by the initiating party.
      required: true
      schema:
        type: string
      example: '2.1.3'
    X-Reference-API-Document:
      description: |
        The name of the Implementation Guideline document, where the service is based on, e.g. \"Extended Payment Initiation Services\". 
      required: false
      schema:
        type: string
      example: 'Extended Payment Initiation Services'
    X-Request-ID:
      description: |
        ID of the request, unique to the call, as determined by the initiating party.
      required: true
      schema:
        type: string
        format: uuid
      example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'
    X-Reference-API-Name:
      description: |
        \"Berlin Group openFinance API\" 
      required: false
      schema:
        type: string
      example: 'Berlin Group openFinance API'
    ASPSP-SCA-Approach:
      description: |
        This data element must be contained, if the SCA Approach is already fixed.
        Possible values are
          * EMBEDDED
          * DECOUPLED
          * REDIRECT
          * ASPSP-CHANNEL
        The OAuth SCA approach will be subsumed by REDIRECT.
      schema:
        type: string
        enum:
          - EMBEDDED
          - DECOUPLED
          - REDIRECT
          - ASPSP-CHANNEL
      required: false
      example: 'EMBEDDED'
    ASPSP-Notification-Content:
      description: |
        The string has the form
        status=X1, ..., Xn
        where Xi is one of the constants SCA, PROCESS, LAST and where constants are not repeated.
        The usage of the constants supports the following semantics
        SCA - Notification on every change of the scaStatus attribute for all related authorisation processes is provided by the ASPSP for the related resource.
        PROCESS - Notification on all changes of consentStatus or transactionStatus attributes is provided by the ASPSP for the related resource
        LAST - Notification on the last consentStatus or transactionStatus as available in the XS2A interface is provided by the ASPSP for the related resource.
        This field must be provided if the ASPSP-Notification-Support=true. The ASPSP might consider the notification content as preferred by the TPP, but can also respond independently of the preferred request    
      schema:
        type: string        
      required: false
      example: 'status=SCA'
    Location:
      description: |
        Location of the created resource.
      schema:
        type: string
        format: url
      required: false
      example: 'https://testbank.com/xs2a/v2/consents/account-access/123cons456'
  responses:
    Ok_200_PIS_Payment:
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      description: OK
      content:
        application/json:
           schema:
            anyOf:  #Different Payment Products with status
              - $ref: '#/components/schemas/SinglePayment_generic'
              - $ref: '#/components/schemas/BulkPayment_generic'
              - $ref: '#/components/schemas/PeriodicPayment_generic'
        application/xml:
          schema:
            description: |
              For XML based {payment-services}, the pain.001 objects are returned.
            type: string #no detailed schema for XML based bodies  
        multipart/form-data:
          schema:
            description: |
              In case of a submitted standing order where the payment information has been submitted in a pain.001 format, the 
              resource content is returned in a multipart message as the submission.
            type: object
            properties:
              xml_sct:
                type: string
              json_standingorderType:
                type: object
                required:
                  - startDate
                  - frequency
                properties:
                  startDate:
                    description: |
                      The first applicable day of execution starting from this date is the first payment. 
                    allOf:
                      - $ref: '#/components/schemas/ISODate'
                  executionRule:
                    description: |
                      \"following\" or \"preceding\" 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 \"preceding\" or \"following\" working day.ASPSP might reject 
                      the request due to the communicated value, if rules in Online-Banking are not supporting this execution rule. 
                    type: string
                  endDate:
                    description: |
                      The last applicable day of execution\r\n If not given, it is an infinite standing order.
                    allOf:
                      - $ref: '#/components/schemas/ISODate'
                  frequency:
                    description: |
                      Frequency of the recurring payment resulting from this standing order. 
                    allOf:
                      - $ref: '#/components/schemas/FrequencyCode'
                  dayOfExecution:
                    description: |
                      \"31\" is ultimo
                    allOf:
                      - $ref: '#/components/schemas/Max2Text'
                  monthsOfExecution:
                    description: |
                      The format is following the regular expression \d{1,2}. The array is restricted to 11 entries. The values contained In the 
                      array entries shall all be different and the maximum value of one entry is 12. 
                      This attribute is contained if and only if the frequency equals \"MonthlyVariable\". 
                      Example: An execution on January, April and October each year is addressed by [\"1\". \"4\", \"10\"]. 
                    type: array
                    items:
                      $ref: '#/components/schemas/Max2Text'
          encoding:
            xml_sct:
              contentType: application/xml
            json_standingorderType:
              contentType: application/json
    decline_408_PIS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support :
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Request Timeout
    decline_415_AUTHORISATION:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support :
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Unsupported Media Type
    Ok_200_PUT_AUTHORISATION:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        ASPSP-SCA-Approach:
          $ref: '#/components/headers/ASPSP-SCA-Approach'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      description: OK
      content:
        application/json:
          schema:
            anyOf:
              - type: object #case \"Update PSU Data (Identification) \"
                required:
                  - scaStatus
                  - _links
                properties:
                  transactionFees:
                    description: |
                      Might be used by the ASPSP to transport the total transaction fee relevant for the underlying payments. 
                      This field includes the entry of the currencyConversionFees if applicable.
                    allOf:
                      - $ref: '#/components/schemas/amount'
                  currencyConversionFees:
                    description: |
                      Might be used by the ASPSP to transport specific currency conversion fees related to the initiated credit transfer.
                    allOf:
                      - $ref: '#/components/schemas/amount'
                  estimatedTotalAmount:
                    description: |
                      The estimated amount to be transferred to the payee.
                      Note: This amount includes fees. 
                    allOf:
                      - $ref: '#/components/schemas/amount'
                  estimatedInterbankSettlementAmount:
                    description: |
                      The estimated amount to be transferred to the payee in case of a payment resource. 
                    allOf:
                      - $ref: '#/components/schemas/amount'
                  scaStatus:
                    description: |
                    allOf:
                      - $ref: '#/components/schemas/SCAStatus'
                  scaMethods:
                    description: |
                      This data element might be contained, if SCA is required and if the PSU has a choice between different authentication methods. 
                      Depending on the risk management of the ASPSP this choice might be offered before or after the PSU has been identified with the 
                      first relevant factor, or if an access token is transported. If this data element is contained, then there is also a hyperlink of 
                      type \"selectAuthenticationMethod\" contained in the response body. 
                      These methods shall be presented towards the PSU for selection by the API Client. 
                    type: array
                    items:
                      $ref: '#/components/schemas/authenticationObject'
                  _links:
                    description: |
                      A list of hyperlinks to be recognised by the API Client. The actual hyperlinks used in the response depend on the dynamical decisions of the ASPSP 
                      when processing the request. The potential links for this response message are generically defined in [oFA SMPF] for all Transaction Initiation 
                      Response messages. These links will also be contained in the related Open API files. 
                      Remark: All links can be relative or full links, to be decided by the ASPSP.
                    allOf:
                      - $ref: '#/components/schemas/_links_200_PUT_AUTHORISATION'
                  psuMessage:
                    description: |
                      Text to be displayed to the PSU.
                    allOf:
                      - $ref: '#/components/schemas/Max500Text'
              - type: object  #case \"Update PSU Data (Select Authentication Method)\"
                required:
                  - scaStatus
                  - _links
                properties:
                  originalTransactionInformationAndVopStatus:
                    description: |
                      VOP result information. Will be provided, if
                      •  an account/owner name match was requested and performed,
                      •  the result was not yet provided and
                      the related code in the interbank VOP service was "CMTC", "NMTC" or "NOAP".
                    type: array
                    items:
                      $ref: '#/components/schemas/originalTransactionInformationAndVOPStatus'
                  scaStatus:
                    description: |
                    allOf:
                      - $ref: '#/components/schemas/SCAStatus'
                  chosenScaMethod:
                    description: |
                      This data element is only contained in the response if the ASPSP has chosen the Embedded SCA Approach, if the PSU is already identified e.g. 
                      with the first relevant factor or alternatively an access token, if SCA is required and if the authentication method is implicitly selected.
                    allOf:
                      - $ref: '#/components/schemas/authenticationObject'
                  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\" or 
                      \"startAuthorisactionWithEncryptedPsuAuthentication\" link. 
                    allOf:
                      - $ref: '#/components/schemas/challenge'
                  _links:
                    description: |
                      A list of hyperlinks to be recognised by the API Client. The actual hyperlinks used in the response depend on the dynamical decisions of the ASPSP 
                      when processing the request. The potential links for this response message are generically defined in [oFA SMPF] for all Transaction Initiation 
                      Response messages. These links will also be contained in the related Open API files. 
                      Remark: All links can be relative or full links, to be decided by the ASPSP.
                    allOf:
                      - $ref: '#/components/schemas/_links_200_PUT_AUTHORISATION'
                  psuMessage:
                    description: |
                      Text to be displayed to the PSU.
                    allOf:
                      - $ref: '#/components/schemas/Max500Text'
              - type: object  #case \"Update PSU Data (Authentication) \"
                required:
                  - scaStatus
                  - _links
                properties:
                  originalTransactionInformationAndVopStatus:
                    description: |
                      VOP result information. Will be provided, if
                      •  an account/owner name match was requested and performed,
                      •  the result was not yet provided and
                      the related code in the interbank VOP service was "CMTC", "NMTC" or "NOAP".
                    type: array
                    items:
                      $ref: '#/components/schemas/originalTransactionInformationAndVOPStatus'
                  scaStatus:
                    description: |
                    allOf:
                      - $ref: '#/components/schemas/SCAStatus'
                  scaMethods:
                    description: |
                      This data element might be contained, if SCA is required and if the PSU has a choice between different authentication methods. 
                      Depending on the risk management of the ASPSP this choice might be offered before or after the PSU has been identified with the 
                      first relevant factor, or if an access token is transported. If this data element is contained, then there is also a hyperlink of 
                      type \"selectAuthenticationMethod\" contained in the response body. 
                      These methods shall be presented towards the PSU for selection by the API Client. 
                    type: array
                    items:
                      $ref: '#/components/schemas/authenticationObject'
                  chosenScaMethod:
                    description: |
                      This data element is only contained in the response if the ASPSP has chosen the Embedded SCA Approach, if the PSU is already identified e.g. 
                      with the first relevant factor or alternatively an access token, if SCA is required and if the authentication method is implicitly selected.
                    allOf:
                      - $ref: '#/components/schemas/authenticationObject'
                  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\" or 
                      \"startAuthorisactionWithEncryptedPsuAuthentication\" link. 
                    allOf:
                      - $ref: '#/components/schemas/challenge'
                  accounts:
                    description: |
                      Provided, if the PSU account reference has not been provided in the related resource data submission and if more than one account is available.
                    type: array
                    items:
                      $ref: '#/components/schemas/accountDetails'
                  _links:
                    description: |
                      A list of hyperlinks to be recognised by the API Client. The actual hyperlinks used in the response depend on the dynamical decisions of the ASPSP 
                      when processing the request. The potential links for this response message are generically defined in [oFA SMPF] for all Transaction Initiation 
                      Response messages. These links will also be contained in the related Open API files. 
                      Remark: All links can be relative or full links, to be decided by the ASPSP.
                    allOf:
                      - $ref: '#/components/schemas/_links_200_PUT_AUTHORISATION'
                  psuMessage:
                    description: |
                      Text to be displayed to the PSU.
                    allOf:
                      - $ref: '#/components/schemas/Max500Text'
              - type: object  #case \"Transaction Authorisation\"
                required:
                  - scaStatus
                  - _links
                properties:
                  scaStatus:
                    description: |
                    allOf:
                      - $ref: '#/components/schemas/SCAStatus'
                  _links:
                    description: |
                      A list of hyperlinks to be recognised by the API Client. The actual hyperlinks used in the response depend on the dynamical decisions of the ASPSP 
                      when processing the request. The potential links for this response message are generically defined in [oFA SMPF] for all Transaction Initiation 
                      Response messages. These links will also be contained in the related Open API files. 
                      Remark: All links can be relative or full links, to be decided by the ASPSP.
                    allOf:
                      - $ref: '#/components/schemas/_links_200_PUT_AUTHORISATION'
              - type: object  #case \"Authorisation Confirmation\"
                required:
                  - scaStatus
                  - _links
                properties:
                  scaStatus:
                    description: |
                    allOf:
                      - $ref: '#/components/schemas/SCAStatus'
                  _links:
                    description: |
                      A list of hyperlinks to be recognised by the API Client. The actual hyperlinks used in the response depend on the dynamical decisions of the ASPSP 
                      when processing the request. The potential links for this response message are generically defined in [oFA SMPF] for all Transaction Initiation 
                      Response messages. These links will also be contained in the related Open API files. 
                      Remark: All links can be relative or full links, to be decided by the ASPSP.
                    allOf:
                      - $ref: '#/components/schemas/_links_200_PUT_AUTHORISATION'
                  psuMessage:
                    description: |
                      Text to be displayed to the PSU.
                    allOf:
                      - $ref: '#/components/schemas/Max500Text'
    decline_503:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support :
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Service Unavailable
    decline_403_PIS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_403_PIS'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_403_PIS'
    decline_500:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support :
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Internal Server Error
    created_200_GET_AUTHORISATION_IDS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      description: OK
      content:
        application/json:
          schema:
            type: object
            required:
              - authorisationIds
            properties:
              authorisationIds:
                description: |
                   An array of all authorisationIds connected to the related business transaction. 
                type: array
                items:
                  type: string
    decline_408:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support :
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Request Timeout
    decline_406:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support :
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Not Acceptable
    created_201_PIS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        ASPSP-SCA-Approach:
          $ref: '#/components/headers/ASPSP-SCA-Approach'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
        ASPSP-Notification-Content:
          $ref: '#/components/headers/ASPSP-Notification-Content'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      description: CREATED
      content:
        application/json:
          schema:
            type: object
            required:
              - transactionStatus
              - paymentId
              - _links
            properties:
              transactionStatus:
                description: |
                  Payment transaction status.
                allOf:
                  - $ref: '#/components/schemas/TransactionStatus'
              paymentId:
                description: |
                  resource identification of the generated payment initiation resource.
                allOf:
                  - $ref: '#/components/schemas/Max70Text'
              transactionFees:
                description: |
                  Might be used by the ASPSP to transport the total transaction fees relevant for the underlying payments.
                  This field includes the entry of the \"currencyConversionFees\" if applicable. 
                allOf:
                  - $ref: '#/components/schemas/amount'
              currencyConversionFee:
                description: |
                  Might be used by the ASPSP to transport specific currency conversion fees related to the initiated credit transfer.
                allOf:
                  - $ref: '#/components/schemas/amount'
              estimatedTotalAmount:
                description: |
                  The amount which is estimated to be debted from the debtor account. Note: This amount includes fees.
                allOf:
                  - $ref: '#/components/schemas/amount'
              estimatedInterbankSettlementAmount:
                description: |
                  The estimated amount to be transferred to the payee.
                allOf:
                  - $ref: '#/components/schemas/amount'
              transactionFeeIndicator:
                description: |
                  If equals \"true\", the transaction will involve specific transaction cost as shown by the ASPSP in
                  their public price list or as agreed between ASPSP and PSU.
                  If equals \"false\", the transaction will not involve additional specific transaction costs to the PSU unless the fee amount is given specifically in the data elements transactionFees and/or currencyConversionFees.
                  If this data element is not used, there is no information about transaction fees unless the fee amount is given explicitly in the data element transactionFees and/or currencyConversionFees.
                type: boolean
              scaMethods:
                description: |
                  This data element might be contained, if SCA is required and if the PSU has a choice between different
                  authentication methods.
                  Depending on the risk management of the ASPSP this choice might be offered before or after the PSU
                  has been identified with the first relevant factor, or if an access token is transported.
                  If this data element is contained, then there is also a hyperlink of type \"startAuthorisationWithAuthenticationMethodSelection\"
                  contained in the response body.
                  These methods shall be presented towards the PSU for selection by the TPP.
                type: array
                items:
                  $ref: '#/components/schemas/authenticationObject'
              chosenScaMethod:
                description: |
                  This data element is only contained in the response if the ASPSP has chosen the Embedded SCA Approach, if the PSU is already identified e.g. 
                  with the first relevant factor or alternatively an access token, if SCA is required and if the authentication method is implicitly selected.
                allOf:
                  - $ref: '#/components/schemas/authenticationObject'
              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\" or 
                  \"startAuthorisactionWithEncryptedPsuAuthentication\" link. 
                allOf:
                  - $ref: '#/components/schemas/challenge'
              _links:
                description: |
                  A list of hyperlinks to be recognised by the API Client. The actual hyperlinks used in the response depend on the dynamical decisions of the ASPSP 
                  when processing the request. The potential links for this response message are generically defined in [oFA SMPF] for all Transaction Initiation 
                  Response messages. These links will also be contained in the related Open API files. 
                  Remark: All links can be relative or full links, to be decided by the ASPSP.
                allOf:
                  - $ref: '#/components/schemas/_links_201_PIS'
              psuMessage:
                description: |
                  Text to be displayed to the PSU.
                allOf:
                  - $ref: '#/components/schemas/Max500Text'
              apiClientMessages:
                type: array
                items:
                  $ref: '#/components/schemas/clientMessageInformation'
    decline_409_PIS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_409_PIS'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_409_PIS'
    decline_400_AUTHORISATION:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_400_AUTHORISATION'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_400_AUTHORISATION'
    decline_404_AUTHORISATION:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_404_AUTHORISATION'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_404_AUTHORISATION'
    decline_400_PIS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_400_PIS'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_400_PIS'
    decline_409_AUTHORISATION:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_409_AUTHORISATION'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_409_AUTHORISATION'
    created_204_PIS_Payment:
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      description: NO CONTENT
    created_201_AUTHORISATION:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        ASPSP-SCA-Approach:
          $ref: '#/components/headers/ASPSP-SCA-Approach'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
        ASPSP-Notification-Content:
          $ref: '#/components/headers/ASPSP-Notification-Content'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      description: CREATED
      content:
        application/json:
          schema:
            type: object
            required:
              - scaStatus
              - authorisationId
              - _links
            properties:
              transactionFees:
                description: |
                  Might be used by the ASPSP to transport the total transaction fee relevant for the underlying payments in case of a payment 
                  resource. This field includes the entry of the currencyConversionFees if applicable. 
                allOf:
                  - $ref: '#/components/schemas/amount'
              currencyConversionFees:
                description: |
                   Might be used by the ASPSP to transport specific currency conversion fees related to the initiated credit transfer in case of a payment resource id.
                allOf:
                  - $ref: '#/components/schemas/amount'
              estimatedTotalAmount:
                description: |
                   The amount which is estimated to be debted from the debtor account in case of a payment resource. 
                   Note: This amount includes fees. 
                allOf:
                  - $ref: '#/components/schemas/amount'
              estimatedInterbankSettlementAmount:
                description: |
                   The estimated amount to be transferred to the payee in case of a payment resource. 
                allOf:
                  - $ref: '#/components/schemas/amount'
              scaStatus:
                description: |
                allOf:
                  - $ref: '#/components/schemas/SCAStatus'
              authorisationId:
                description: |
                   Unique resource identification of the created authorisation or cancellation authorisation sub-resource. 
                type: string
              originalTransactionInformationAndVopStatus:
                description: |
                  VOP result information. Will be provided, if
                  •  an account/owner name match was requested and performed,
                  •  the result was not yet provided and
                  the related code in the interbank VOP service was "CMTC", "NMTC" or "NOAP".
                type: array
                items:
                  $ref: '#/components/schemas/originalTransactionInformationAndVOPStatus'
              scaMethods:
                description: |
                  This data element might be contained, if SCA is required and if the PSU has a choice between different authentication methods. 
                  Depending on the risk management of the ASPSP this choice might be offered before or after the PSU has been identified with the 
                  first relevant factor, or if an access token is transported. If this data element is contained, then there is also a hyperlink of 
                  type \"selectAuthenticationMethod\" contained in the response body. 
                  These methods shall be presented towards the PSU for selection by the API Client. 
                type: array
                items:
                  $ref: '#/components/schemas/authenticationObject'
              chosenScaMethod:
                description: |
                  This data element is only contained in the response if the ASPSP has chosen the Embedded SCA Approach, if the PSU is already identified e.g. 
                  with the first relevant factor or alternatively an access token, if SCA is required and if the authentication method is implicitly selected.
                allOf:
                  - $ref: '#/components/schemas/authenticationObject'
              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\" or 
                  \"startAuthorisactionWithEncryptedPsuAuthentication\" link. 
                allOf:
                  - $ref: '#/components/schemas/challenge'
              _links:
                description: |
                  A list of hyperlinks to be recognised by the API Client. The actual hyperlinks used in the response depend on the dynamical decisions of the ASPSP 
                  when processing the request. The potential links for this response message are generically defined in [oFA SMPF] for all Transaction Initiation 
                  Response messages. These links will also be contained in the related Open API files. 
                  Remark: All links can be relative or full links, to be decided by the ASPSP.
                allOf:
                  - $ref: '#/components/schemas/_links_201_AUTHORISATION'
              psuMessage:
                description: |
                  Text to be displayed to the PSU.
                allOf:
                  - $ref: '#/components/schemas/Max500Text'
    decline_404_PIS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_404_PIS'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_404_PIS'
    decline_408_AUTHORISATION:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support :
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Request Timeout
    Ok_200_PIS_ExtendedStatus:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      description: OK
      content:
        application/json:
          schema:
            type: object
            required:
              - groupStatus
            properties:
              groupStatus:
                description: |
                  This is the bulk status as defined in the related bulk status endpoint.
                allOf:
                  - $ref: '#/components/schemas/groupStatus'
              reasonCode:
                description: |
                  Additional information on the reason for e.g. rejecting the request 
                allOf:
                  - $ref: '#/components/schemas/StatusReasonCode'
              reasonProprietary:
                description: |
                  Proprietary additional information on the reason for e.g. rejecting the request. 
                  Remark: If an ISO Code is available it should be used instead of Proprietary 
                  Reasons. Further restrictions could be defined by API Access Schemes.
                allOf:
                  - $ref: '#/components/schemas/Max35Text'
              fundsAvailable:
                description: |
                  This data element is contained, if supported by the ASPSP, if a funds check has been 
                  performed and if the transactionStatus is \"ACTC\", \"ACWC\" or \"ACCP\". 
                type: boolean
              originalTransactionInformationAndStatus:
                description: |
                  Provides information on the original transactions to which the status report message refers and which have been rejected.
                allOf:
                  - $ref: '#/components/schemas/originalTransactionInformationAndStatus'
              transactionFees:
                description: |
                  Might be used by the ASPSP to transport the total transaction fee relevant in case of an
                  underlying payment initiation service. This field includes the entry of the 
                  currencyConversionFees if applicable. 
                allOf:
                  - $ref: '#/components/schemas/amount'
              currencyConversionFees:
                description: |
                  Might be used by the ASPSP to transport specific currency conversion fees related to 
                  the initiated credit transfer, in case of an underlying payment initiation service.
                allOf:
                  - $ref: '#/components/schemas/amount'
              estimatedTotalAmount:
                description: |
                  The amount which is estimated to be debted from the debtor account in case of an 
                  underlying payment initiation service. 
                  Note: This amount includes fees.
                allOf:
                  - $ref: '#/components/schemas/amount'
              estimatedInterbankSettlementAmount:
                description: |
                  The estimated amount to be transferred to the payee in case of an underlying payment initiation service. 
                allOf:
                  - $ref: '#/components/schemas/amount'
              psuMessage:
                description: |
                allOf:
                  - $ref: '#/components/schemas/Max500Text'
              ownerNames:
                description: |
                  List of owner names. 
                  Should only be delivered after successful SCA. 
                  Could be restricted to the current PSU by the ASPSP. 
                type: array
                items:
                  $ref: '#/components/schemas/accountOwner'
              _links:
                description: |
                  Should refer to next steps if a potential situation blocking the finalisation of the 
                  payment can be resolved via the interface e.g. for re-submission of credentials. 
                allOf:
                  - $ref: '#/components/schemas/_links_200_PIS_ExtendedStatus'
              apiClientMessages:
                description: |
                  Messages to the TPP on operational issues.
                type: array
                items:
                  $ref: '#/components/schemas/clientMessageInformation'
        application/xml:
          schema:
            description: |
              If the Payment Initiation Request is encoded in XML, cp. Section 3.4.2, then the status might 
              be returned by the ASPSP  as a pain.002 structure or as JSON structure as defined above. 
              The ASPSP can choose in this case one of the two status formats or offer both.  In case of an 
              XML format, the chosen XML schema of the Status Request is following the XML schema 
              definitions of the original pain.001 schema. 
            type: string #no detailed schema for XML based bodies
    decline_403_AUTHORISATION:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_403_AUTHORISATION'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_403_AUTHORISATION'
    Ok_200_PUT_RESOURCE_WITH_DEBTOR_ACCOUNT:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        ASPSP-SCA-Approach:
          $ref: '#/components/headers/ASPSP-SCA-Approach'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      description: OK
      content:
        application/json:
          schema:
            type: object
            properties:
              chosenScaMethod:
                description: |
                  A definition of the provided SCA method is contained, if only one authentication method is available, and if the Embedded SCA approach is chosen by the ASPSP.
                allOf:
                  - $ref: '#/components/schemas/authenticationObject'
              challengeData:
                description: |
                  Challenge data might be contained, if only one authentication method is available, and if the Embedded SCA approach is chosen by the ASPSP. 
                allOf:
                  - $ref: '#/components/schemas/challenge'
              scaMethods:
                description: |
                  Might be contained, if several authentication methods are available. (name, type)
                type: array
                items:
                  $ref: '#/components/schemas/authenticationObject'
              _links:
                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.
                allOf:
                  - $ref: '#/components/schemas/_links_200_PUT_RESOURCE_WITH_DEBTOR_ACCOUNT'
              psuMessage:
                description: |
                  Text to be displayed to the PSU.
                allOf:
                  - $ref: '#/components/schemas/Max500Text'
    decline_405_PIS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Method not allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_405_PIS'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_405_PIS'
    decline_415:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support :
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Unsupported Media Type
    decline_401_PIS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Unauthorised
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_401_PIS'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_401_PIS'
    accepted_202_PIS_Payment:
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      description: ACCEPTED
      content:
        application/json:
           schema:
            description: |
              In case of HTTP code 202, the following body is used: 
            type: object
            required:
              - transactionStatus
            properties:
              transactionStatus:
                $ref: '#/components/schemas/TransactionStatus'
              scaMethods:
                description: |
                  This data element might be contained, if SCA is required and if the PSU has a choice between different
                  authentication methods.
                  Depending on the risk management of the ASPSP this choice might be offered before or after the PSU
                  has been identified with the first relevant factor, or if an access token is transported.
                  If this data element is contained, then there is also a hyperlink of type \"startAuthorisationWithAuthenticationMethodSelection\"
                  contained in the response body.
                  These methods shall be presented towards the PSU for selection by the TPP.
                type: array
                items:
                  $ref: '#/components/schemas/authenticationObject'
              chosenScaMethod:
                description: |
                  This data element is only contained in the response if the ASPSP has chosen the Embedded SCA Approach, if the PSU is already identified e.g. 
                  with the first relevant factor or alternatively an access token, if SCA is required and if the authentication method is implicitly selected.
                allOf:
                  - $ref: '#/components/schemas/authenticationObject'
              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\" or 
                  \"startAuthorisactionWithEncryptedPsuAuthentication\" link. 
                allOf:
                  - $ref: '#/components/schemas/challenge'
              _links:
                description: |
                  A list of hyperlinks to be recognised by the API Client. The actual hyperlinks used in the 
                  response depend on the dynamical decisions of the ASPSP when processing the request. The 
                  potential links for this response message are 
                  generically defined in [oFA SMPF] for all Transaction Initiation Response messages or response message for other requests which 
                  need authorisation. These links will also be contained in the related Open API files.
                  Remark: All links can be relative or full links, to be decided by the ASPSP. 
                allOf:
                  - $ref: '#/components/schemas/_links_202_PIS_Payment'
    decline_406_AUTHORISATION:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support :
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Not Acceptable
    decline_405_AUTHORISATION:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Method not allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_405_AUTHORISATION'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_405_AUTHORISATION'
    decline_405_PIS_CANC:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Method not allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_405_PIS_CANC'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_405_PIS_CANC'
    decline_401_AUTHORISATION:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support:
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Unauthorised
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_NG_401_AUTHORISATION'
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error_RFC7807_401_AUTHORISATION'
    created_200_GET_AUTHORISATION_STATUS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      description: OK
      content:
        application/json:
          schema:
            type: object
            required:
              - scaStatus
            properties:
              scaStatus:
                description: |
                   This data element is containing information about the status of the SCA method applied. 
                allOf:
                  - $ref: '#/components/schemas/SCAStatus'
              psuName:
                description: |
                   Name of the PSU (Usage is following the mandate resulting from EBA Q&A 2020_5165).
                   In case of a corporate account, this might be the person acting on behalf of the corporate.  
                allOf:
                  - $ref: '#/components/schemas/Max140Text'
              _links:
                description: |
                  Should refer to next steps if the problem can be resolved via the interface e.g. for re-submission of credentials.
                allOf:
                  - $ref: '#/components/schemas/_links_200_GET_AUTHORISATION_STATUS'
              apiClientMessages:
                description: |
                   Messages to the TPP on operational issues.
                type: array
                items:
                  $ref: '#/components/schemas/clientMessageInformation'
    decline_406_PIS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support :
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Not Acceptable
    Ok_200_PIS_Status:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      description: OK
      content:
        application/json:
          schema:
            type: object
            required:
              - transactionStatus
            properties:
              transactionStatus:
                description: |
                  In case where the Payment Initiation Request was JSON encoded, the status is returned in this 
                  JSON based encoding. 
                  Remark: If the PSU does not complete a required SCA within the required timeframe 
                  the payment resource's status must be set to \"RJCT\". 
                  Particularly, if a multi-level-SCA is required and the number of successful SCAs 
                  during the required timeframe is insufficient, the status must also be set to \"RJCT\".
                allOf:
                  - $ref: '#/components/schemas/TransactionStatus'
              reasonCode:
                description: |
                  Additional information on the reason for e.g. rejecting the request 
                allOf:
                  - $ref: '#/components/schemas/StatusReasonCode'
              reasonProprietary:
                description: |
                  Proprietary additional information on the reason for e.g. rejecting the request. 
                  Remark: If an ISO Code is available it should be used instead of Proprietary 
                  Reasons. Further restrictions could be defined by API Access Schemes.
                allOf:
                  - $ref: '#/components/schemas/Max35Text'
              fundsAvailable:
                description: |
                  This data element is contained, if supported by the ASPSP, if a funds check has been 
                  performed and if the transactionStatus is \"ACTC\", \"ACWC\" or \"ACCP\". 
                type: boolean
              transactionFees:
                description: |
                  Might be used by the ASPSP to transport the total transaction fee relevant in case of an
                  underlying payment initiation service. This field includes the entry of the 
                  currencyConversionFees if applicable. 
                allOf:
                  - $ref: '#/components/schemas/amount'
              currencyConversionFees:
                description: |
                  Might be used by the ASPSP to transport specific currency conversion fees related to 
                  the initiated credit transfer, in case of an underlying payment initiation service.
                allOf:
                  - $ref: '#/components/schemas/amount'
              estimatedTotalAmount:
               description: |
                 The amount which is estimated to be debted from the debtor account in case of an 
                 underlying payment initiation service. 
                 Note: This amount includes fees.
               allOf:
                  - $ref: '#/components/schemas/amount'
              estimatedInterbankSettlementAmount:
                description: |
                  The estimated amount to be transferred to the payee in case of an underlying payment initiation service. 
                allOf:
                  - $ref: '#/components/schemas/amount'
              psuMessage:
                description: |
                allOf:
                  - $ref: '#/components/schemas/Max500Text'
              ownerNames:
                description: |
                  List of owner names. 
                  Should only be delivered after successful SCA. 
                      Could be restricted to the current PSU by the ASPSP. 
                type: array
                items:
                  $ref: '#/components/schemas/accountOwner'
              _links:
                description: |
                  Should refer to next steps if a potential situation blocking the finalisation of the 
                  payment can be resolved via the interface e.g. for re-submission of credentials. 
                allOf:
                  - $ref: '#/components/schemas/_links_200_PIS_Status'
              apiClientMessages:
                description: |
                  Messages to the TPP on operational issues.
                type: array
                items:
                  $ref: '#/components/schemas/clientMessageInformation'
        application/xml:
          schema:
            description: |
              If the Payment Initiation Request is encoded in XML, cp. Section 3.4.2, then the status might 
              be returned by the ASPSP  as a pain.002 structure or as JSON structure as defined above. 
              The ASPSP can choose in this case one of the two status formats or offer both.  In case of an 
              XML format, the chosen XML schema of the Status Request is following the XML schema 
              definitions of the original pain.001 schema. 
            type: string #no detailed schema for XML based bodies
    decline_415_PIS:
      headers:
        X-Reference-API-Name:
          $ref: '#/components/headers/X-Reference-API-Name'
        X-Reference-API-Document:
          $ref: '#/components/headers/X-Reference-API-Document'
        X-Reference-API-Version:
          $ref: '#/components/headers/X-Reference-API-Version'
        Location:
          $ref: '#/components/headers/Location'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
        ASPSP-Notification-Support :
          $ref: '#/components/headers/ASPSP-Notification-Support'
      description: Unsupported Media Type
  examples: {}

