Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Awesome api app render macro
authHeaderName
linksColor#0052cc
showInfotrue
allowSpecUrlLoadfalse
primaryColor#0052CC
schemaStyletable
methodGetColor#0065FF
authHeaderValue
methodPutColor#6554c0
generalThemeconfluence_light
allowTryfalse
layoutHeight800
allowAdvancedSearchtrue
codeBg#F4F5F7
methodHeadColor#ffab00
navHoverTextColor
showComponentstrue
allowServerSelectiontrue
textColor#172B4D
methodPatchColor#ffab00
navBgColor#FAFBFC
codeFg#172B4D
navTextColor#172B4D
fontSizedefault
sortEndpointsBymethod
usePathInNavBarfalse
navAccentColor#6554C0
methodDeleteColor#ff5630
headerColor#fff
allowAuthenticationfalse
bgColor#fff
allowSearchtrue
sortTagstrue
themelight
methodPostColor#36b37e
authTypeNone
inlineCodeFg#6554C0
resourceContentTypejson
showHeaderfalse
allowSpecFileLoadfalse
inlineCodeBg#F4F5F7
renderStyleread
layoutcolumn
headingText
navItemSpacingdefault
infoDescriptionHeadingsInNavbartrue
specUrl
navHoverBgColor
resourceTypeCONTENT
openapi: 3.0.0
info:
  title: UAE Account Information API
  description: '## UAE Open Finance Account Information API Specification'
  version: v1.1
servers:
  - url: /open-finance/account-information/v1.1
tags:
  - name: Account Access
    description: Account Access Consents Resource
  - name: Accounts
    description: Accounts Resource
  - name: Balances
    description: Balances Resource
  - name: Beneficiaries
    description: Beneficiaries Resource
  - name: Direct Debits
    description: Direct Debits Resource
  - name: Product
    description: Product Resource
  - name: Scheduled Payments
    description: Scheduled Payments Resource
  - name: Standing Orders
    description: Standing Orders Resource
  - name: Transactions
    description: Transactions Resource
  - name: Consents
    description: Consents Resource
  - name: Parties
    description: Parties Resource
paths:
  /account-access-consents:
    get:
      tags:
        - Account Access
      summary: Retrieve Account Access Consents by BaseConsentId
      description: |
        Retrieve all Account Access Consents for an BaseConsentId
      operationId: GetAccountAccessConsentsByBaseConsentId
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/baseConsentId'
      responses:
        '200':
          $ref: '#/components/responses/200BaseConsentIdConsentsRetrieve'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '404':
          $ref: '#/components/responses/404Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '415':
          $ref: '#/components/responses/415Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - TPPOAuth2Security:
            - openid
            - accounts
  /account-access-consents/{ConsentId}:
    get:
      tags:
        - Account Access
      summary: Get Account Access Consents
      description: |
        Retrieve Account Access Consents
      operationId: GetAccountAccessConsentsConsentId
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/ConsentId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        '200':
          $ref: '#/components/responses/200AccountAccessConsentsConsentIdRead'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - TPPOAuth2Security:
            - openid
            - accounts
    patch:
      tags:
        - Account Access
      summary: Patch Consent
      description: |
        Update and Account Access Consent Status or Webhook Subscription
      operationId: PatchAccountAccessConsentsConsentId
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/ConsentId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        description: |
          Request Body
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/AEPatchConsent'
          application/json:
            schema:
              $ref: '#/components/schemas/AEPatchConsent'
          application/jwt:
            schema:
              $ref: '#/components/schemas/AEPatchConsentSigned'
      responses:
        '204':
          $ref: '#/components/responses/204AccountAccessConsentsConsentIdDeleted'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '415':
          $ref: '#/components/responses/415Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - TPPOAuth2Security:
            - openid
            - accounts
  /accounts:
    get:
      tags:
        - Accounts
      summary: Get Accounts
      description: >
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadAccountsBasic 

        * ReadAccountsDetail


        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      operationId: GetAccounts
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        '200':
          $ref: '#/components/responses/200AccountsRead'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
  /accounts/{AccountId}:
    get:
      tags:
        - Accounts
      summary: Get an Account
      description: >
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadAccountsBasic

        * ReadAccountsDetail


        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      operationId: GetAccountsAccountId
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/AccountId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        '200':
          $ref: '#/components/responses/200AccountsAccountIdRead'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
  /accounts/{AccountId}/balances:
    get:
      tags:
        - Balances
      summary: Get Balances
      description: >
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadBalances


        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      operationId: GetAccountsAccountIdBalances
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/AccountId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        '200':
          $ref: '#/components/responses/200AccountsAccountIdBalancesRead'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
  /accounts/{AccountId}/beneficiaries:
    get:
      tags:
        - Beneficiaries
      summary: Get Beneficiaries
      description: >
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadBeneficiariesBasic

        * ReadBeneficiariesDetail


        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      operationId: GetAccountsAccountIdBeneficiaries
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/AccountId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        '200':
          $ref: '#/components/responses/200AccountsAccountIdBeneficiariesRead'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
  /accounts/{AccountId}/direct-debits:
    get:
      tags:
        - Direct Debits
      summary: Get Direct Debits
      description: >
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadDirectDebits


        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      operationId: GetAccountsAccountIdDirectDebits
      parameters:
        - $ref: '#/components/parameters/AccountId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        '200':
          $ref: '#/components/responses/200AccountsAccountIdDirectDebitsRead'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '404':
          $ref: '#/components/responses/404Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
  /accounts/{AccountId}/product:
    get:
      tags:
        - Product
      summary: Get Product for an Account
      description: >
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadProduct


        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      operationId: GetAccountsAccountIdProduct
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/AccountId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        '200':
          $ref: '#/components/responses/200AccountsAccountIdProductRead'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '404':
          $ref: '#/components/responses/404Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
  /accounts/{AccountId}/scheduled-payments:
    get:
      tags:
        - Scheduled Payments
      summary: Get Scheduled Payments
      description: >
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadScheduledPaymentsBasic

        * ReadScheduledPaymentsDetail


        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      operationId: GetScheduledPayments
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/AccountId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        '200':
          $ref: '#/components/responses/200AccountsAccountIdScheduledPaymentsRead'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '404':
          $ref: '#/components/responses/404Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
  /accounts/{AccountId}/standing-orders:
    get:
      tags:
        - Standing Orders
      summary: Get Standing Orders
      description: >
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadStandingOrdersBasic

        * ReadStandingOrdersDetail


        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      operationId: GetAccountsAccountIdStandingOrders
      parameters:
        - $ref: '#/components/parameters/AccountId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        '200':
          $ref: '#/components/responses/200AccountsAccountIdStandingOrdersRead'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '404':
          $ref: '#/components/responses/404Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
  /accounts/{AccountId}/transactions:
    get:
      tags:
        - Transactions
      summary: Get Transactions
      description: >
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadTransactionsBasic

        * ReadTransactionsDetail

        * ReadTransactionsCredits

        * ReadTransactionsDebits


        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      operationId: GetAccountsAccountIdTransactions
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/AccountId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/FromBookingDateTimeParam'
        - $ref: '#/components/parameters/ToBookingDateTimeParam'
      responses:
        '200':
          $ref: '#/components/responses/200AccountsAccountIdTransactionsRead'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
  /accounts/{AccountId}/consents:
    get:
      tags:
        - Consents
      summary: Get Consents
      description: >
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadConsents


        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      operationId: GetAccountsAccountIdConsents
      parameters:
        - $ref: '#/components/parameters/AccountId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        '200':
          $ref: '#/components/responses/200AccountsAccountIdConsentsRead'
        '400':
          $ref: '#/components/responses/400Error'
        '401':
          $ref: '#/components/responses/401Error'
        '403':
          $ref: '#/components/responses/403Error'
        '404':
          $ref: '#/components/responses/404Error'
        '405':
          $ref: '#/components/responses/405Error'
        '406':
          $ref: '#/components/responses/406Error'
        '429':
          $ref: '#/components/responses/429Error'
        '500':
          $ref: '#/components/responses/500Error'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
  /accounts/{AccountId}/parties:
    get:
      tags:
        - Parties
      operationId: PartiesByAccountId_read
      summary: Get Parties for an Account
      description: >-
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadParty
        * ReadPartyPSUReadPartyUser
        * ReadPartyPSUIdentityReadPartyUserIdentity

        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/AccountId'
      responses:
        '200':
          description: The request has succeeded.
          headers:
            x-fapi-interaction-id:
              required: false
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/AEReadParty2'
            application/json:
              schema:
                $ref: '#/components/schemas/AEReadParty2'
            application/jwt:
              schema:
                $ref: '#/components/schemas/AEReadParty2Signed'
        '400':
          description: Bad request
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/jwt:
              schema:
                $ref: '#/components/schemas/AEErrorSignedResponse'
        '401':
          description: Unauthorized
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '403':
          description: Forbidden
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/jwt:
              schema:
                $ref: '#/components/schemas/AEErrorSignedResponse'
        '404':
          description: Not found
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '405':
          description: Method Not Allowed
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '406':
          description: Not Acceptable
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '415':
          description: Unsupported Media Type
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '429':
          description: Too Many Requests
          headers:
            retry-after:
              required: true
              description: Number in seconds to wait
              schema:
                type: integer
                format: int64
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '500':
          description: Internal Server Error
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/jwt:
              schema:
                $ref: '#/components/schemas/AEErrorSignedResponse'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
  /parties:
    get:
      tags:
        - Parties
      operationId: Parties_read
      summary: Get Parties
      description: >-
        **The list below outlines the Consent Permissions that are applicable to
        this resource:**          

        * ReadParty
        * ReadPartyPSUReadPartyUser
        * ReadPartyPSUIdentityReadPartyUserIdentity

        Refer to *Customer Experience Guidelines*, *Account Information*, *Data
        Groups* for further information.
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
      responses:
        '200':
          description: The request has succeeded.
          headers:
            x-fapi-interaction-id:
              required: false
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/AEReadParty4'
            application/json:
              schema:
                $ref: '#/components/schemas/AEReadParty4'
            application/jwt:
              schema:
                $ref: '#/components/schemas/AEReadParty4Signed'
        '400':
          description: Bad request
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/jwt:
              schema:
                $ref: '#/components/schemas/AEErrorSignedResponse'
        '401':
          description: Unauthorized
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '403':
          description: Forbidden
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/jwt:
              schema:
                $ref: '#/components/schemas/AEErrorSignedResponse'
        '404':
          description: Not found
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '405':
          description: Method Not Allowed
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '406':
          description: Not Acceptable
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '415':
          description: Unsupported Media Type
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '429':
          description: Too Many Requests
          headers:
            retry-after:
              required: true
              description: Number in seconds to wait
              schema:
                type: integer
                format: int64
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
        '500':
          description: Internal Server Error
          headers:
            x-fapi-interaction-id:
              required: true
              description: An RFC4122 UID used as a correlation id.
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/AEErrorResponse'
            application/jwt:
              schema:
                $ref: '#/components/schemas/AEErrorSignedResponse'
      security:
        - UserOAuth2Security:
            - openid
            - accounts
components:
  responses:
    TPPWebhookResponse:
      description: Response Status Code
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          schema:
            type: string
          required: true
    403Error:
      description: Forbidden
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEErrorResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/AEErrorResponse'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEErrorResponseSigned'
    404Error:
      description: Not found
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
    405Error:
      description: Method Not Allowed
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
    406Error:
      description: Not Acceptable
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
    415Error:
      description: Unsupported Media Type
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
    429Error:
      description: Too Many Requests
      headers:
        Retry-After:
          description: Number in seconds to wait
          schema:
            type: integer
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          schema:
            type: string
    500Error:
      description: Internal Server Error
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEErrorResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/AEErrorResponse'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEErrorResponseSigned'
    401Error:
      description: Unauthorized
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
    400Error:
      description: Bad request
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEErrorResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/AEErrorResponse'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEErrorResponseSigned'
    200AccountsAccountIdDirectDebitsRead:
      description: Direct Debits Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEReadDirectDebit'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadDirectDebit'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadDirectDebitSigned'
    200AccountsAccountIdStandingOrdersRead:
      description: Standing Orders Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEReadStandingOrder'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadStandingOrder'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadStandingOrderSigned'
    200AccountsAccountIdScheduledPaymentsRead:
      description: Scheduled Payments Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEReadScheduledPayment'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadScheduledPayment'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadScheduledPaymentSigned'
    200AccountsAccountIdBeneficiariesRead:
      description: Beneficiaries Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEReadBeneficiary'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadBeneficiary'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadBeneficiarySigned'
    200AccountsAccountIdTransactionsRead:
      description: Transactions Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEReadTransaction'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadTransaction'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadTransactionSigned'
    200AccountsAccountIdProductRead:
      description: Product Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEReadProduct1'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadProduct1'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadProduct1Signed'
    200AccountsAccountIdBalancesRead:
      description: Balances Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEReadBalance'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadBalance'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadBalanceSigned'
    200AccountsAccountIdRead:
      description: Account ID Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEReadAccountId'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadAccountId'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadAccountIdSigned'
    204AccountAccessConsentsConsentIdDeleted:
      description: No Content
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
    200AccountAccessConsentsConsentIdRead:
      description: Account Access Consents Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEReadConsentResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadConsentResponse'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadConsentResponseSigned'
    200AccountsRead:
      description: Accounts Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEReadAccount'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadAccount'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadAccountSigned'
    200AccountsAccountIdConsentsRead:
      description: Consents Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEReadConsent'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadConsent'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadConsentSigned'
    200BaseConsentIdConsentsRetrieve:
      description: Retrieve Payment Consents by BaseConsentId
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/AEConsentsByBaseConsentIdResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/AEConsentsByBaseConsentIdResponse'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEConsentsByBaseConsentIdResponseSigned'
  schemas:
    Jwt:
      description: >
        [https://www.rfc-editor.org/rfc/rfc7519](https://www.rfc-editor.org/rfc/rfc7519)
      type: object
      properties:
        iss:
          description: >
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
          type: string
        exp:
          description: >
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
          type: number
        nbf:
          description: >
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
          type: number
        aud:
          description: >
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
          type: array
          items:
            type: string
        iat:
          description: >
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
          type: number
      required:
        - iss
        - exp
        - nbf
      additionalProperties: false
    AEReadConsentResponseSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadConsentResponse'
          required:
            - message
          additionalProperties: false
    AEConsentsByBaseConsentIdResponseSigned:
      description: |
        Payment Consents By BaseConsentId Response Signed Schema
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              type: array
              items:
                $ref: '#/components/schemas/AEReadConsentResponse'
          required:
            - message
          additionalProperties: false
    AEErrorResponseSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEErrorResponse'
          required:
            - message
          additionalProperties: false
    WebhookEventSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/WebhookEvent'
          required:
            - message
          additionalProperties: false
    AEReadAccountSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadAccount'
          required:
            - message
          additionalProperties: false
    AEReadAccountIdSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadAccountId'
          required:
            - message
          additionalProperties: false
    AEReadBalanceSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadBalance'
          required:
            - message
          additionalProperties: false
    AEReadBeneficiarySigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadBeneficiary'
          required:
            - message
          additionalProperties: false
    AEReadDirectDebitSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadDirectDebit'
          required:
            - message
          additionalProperties: false
    AEReadProduct1Signed:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadProduct1'
          required:
            - message
          additionalProperties: false
    AEReadScheduledPaymentSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadScheduledPayment'
          required:
            - message
          additionalProperties: false
    AEReadStandingOrderSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadStandingOrder'
          required:
            - message
          additionalProperties: false
    AEReadTransactionSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadTransaction'
          required:
            - message
          additionalProperties: false
    EventNotification:
      type: object
      description: |
        A Webhook Subscription Schema
      required:
        - Webhook
      properties:
        Webhook:
          description: |
            A Webhook Schema
          type: object
          properties:
            Url:
              description: |
                The TPP Callback URL being registered with the LFI
              type: string
              example: https://api.tpp.com/webhook/callbackUrl
            IsActive:
              description: >
                The TPP specifying whether the LFI should send (IsActive true)
                or not send (IsActive false) Webhook Notifications to the TPP's
                Webhook URL
              type: boolean
              example: false
          additionalProperties: false
      additionalProperties: false
    WebhookEvent:
      type: object
      description: Webhook Event
      required:
        - Data
        - EventMeta
      properties:
        Data:
          type: object
          description: >-
            Event Data. This Data Object will contain the same API resource and
            Schema that has triggered the Event.
          additionalProperties: false
        Links:
          $ref: '#/components/schemas/LinksSelf'
        EventMeta:
          type: object
          description: Event Metadata
          required:
            - EventDateTime
            - EventResource
            - EventType
            - ConsentId
          properties:
            EventDateTime:
              type: string
              format: date-time
              description: Date Time of the first Event in the Message
            EventResource:
              type: string
              description: The API resource to which the Event itself is associated
              example: /accounts/123
            EventType:
              type: string
              enum:
                - Resource.Created
                - Resource.Updated
                - Resource.Deleted
              description: The Type of Event
            ConsentId:
              description: >-
                Unique identification as assigned to identify the consents
                resource.
              type: string
              minLength: 1
              maxLength: 128
          additionalProperties: false
      additionalProperties: false
    OnBehalfOf:
      type: object
      description: On Behalf Of
      properties:
        TradingName:
          type: string
          description: Trading Name
          example: Acme Accounting Trading Name
        LegalName:
          type: string
          description: Legal Name
          example: Acme Accounting Legal Name
        IdentifierType:
          type: string
          description: Identifier Type
          enum:
            - Other
        Identifier:
          type: string
          description: Identifier
          example: abcd1234
      additionalProperties: false
    AEErrorResponse:
      description: >-
        An array of detail error codes, and messages, and URLs to documentation
        to help remediation.
      type: object
      properties:
        Errors:
          items:
            $ref: '#/components/schemas/AEError'
          type: array
          minItems: 1
      required:
        - Errors
      additionalProperties: false
    AEError:
      description: Error
      type: object
      properties:
        Code:
          description: Low level textual error code, e.g., Field.Missing
          type: string
          enum:
            - AccessToken.Unauthorized
            - AccessToken.InvalidScope
            - Consent.Revoked
            - Consent.TransientAccountAccessFailure
            - Consent.AccountTemporarilyBlocked
            - Consent.PermanentAccountAccessFailure
            - Consent.Invalid
            - JWS.InvalidSignature
            - JWS.Malformed
            - JWS.InvalidClaim
            - JWS.InvalidHeader
            - GenericRecoverableError
            - GenericError
            - JWE.DecryptionError
            - JWE.InvalidHeader
            - Event.UnexpectedEvent
            - Body.InvalidFormat
            - Resource.InvalidResourceId
            - Resource.InvalidFormat
            - Consent.BusinessRuleViolation
        Message:
          description: >-
            A description of the error that occurred. e.g., 'A mandatory field
            isn't supplied' or 'RequestedExecutionDateTime must be in future'

            UAEOF doesn't standardise this field
          type: string
          minLength: 1
          maxLength: 500
        Path:
          description: >-
            Recommended but optional reference to the JSON Path of the field
            with error, e.g., Data.Initiation.InstructedAmount.Currency
          type: string
          minLength: 1
          maxLength: 500
        Url:
          description: >-
            URL to help remediate the problem, or provide more information, or
            to API Reference, or help etc
          type: string
      required:
        - Code
        - Message
      additionalProperties: false
      minProperties: 1
    LinksSelf:
      type: object
      description: Links relevant to the resource
      required:
        - Self
      properties:
        Self:
          $ref: '#/components/schemas/Self'
      additionalProperties: false
    Links:
      description: Links relevant to the resource
      required:
        - Self
      properties:
        Self:
          $ref: '#/components/schemas/Self'
        First:
          $ref: '#/components/schemas/First'
        Prev:
          $ref: '#/components/schemas/Prev'
        Next:
          $ref: '#/components/schemas/Next'
        Last:
          $ref: '#/components/schemas/Last'
      additionalProperties: false
    Meta:
      type: object
      description: Meta Data relevant to the resource
      additionalProperties: false
    MetaTotalPages:
      description: Meta Data relevant to the resource
      type: object
      required:
        - TotalPages
      properties:
        TotalPages:
          $ref: '#/components/schemas/TotalPages'
      additionalProperties: false
    MetaTransactions:
      description: Meta Data relevant to the resource
      type: object
      required:
        - TotalPages
      properties:
        TotalPages:
          $ref: '#/components/schemas/TotalPages'
        FirstAvailableDateTime:
          $ref: '#/components/schemas/ISODateTime'
        LastAvailableDateTime:
          $ref: '#/components/schemas/ISODateTime'
      additionalProperties: false
    Self:
      description: A link to the current resource
      type: string
      format: uri
    First:
      description: A link to the first page in a paginated result set
      type: string
      format: uri
    Prev:
      description: A link to the previous page in a paginated result set
      type: string
      format: uri
    Next:
      description: A link to the next page in a paginated result set
      type: string
      format: uri
    Last:
      description: A link to the last page in a paginated result set
      type: string
      format: uri
    TotalPages:
      description: Total number of Pages where a result set is paginated
      type: integer
      format: int32
      minimum: 0
    TransactionDateTime:
      description: >
        The Date Time of when the transaction occurred.

        All dates in the JSON payloads are represented in ISO 8601 date-time
        format. 

        All date-time fields in responses must include the timezone. 

        An example is below: 2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    PaymentMode:
      description: The mode of payment
      type: string
      enum:
        - Online
        - Offline
        - Batch
    TransactionType:
      description: The type of transaction
      type: string
      enum:
        - POS
        - ECommerce
        - ATM
        - BillPayments
        - LocalBankTransfer
        - SameBankTransfer
        - InternationalTransfer
        - Teller
        - Cheque
        - Other
    SubTransactionType:
      description: The sub-type of a transaction
      type: string
      enum:
        - Purchase
        - Reversal
        - Refund
        - Withdrawal
        - WithdrawalReversal
        - Deposit
        - DepositReversal
        - MoneyTransfer
        - NotApplicable
    Flags:
      description: The flag of a transaction
      type: string
      enum:
        - Cashback
        - Payroll
        - DirectDebit
        - StandingOrder
        - Loan
        - Dividend
    AccountHolderName:
      type: string
      description: >
        * /accounts resource

        The Account Holder Name is the name or names of the Account owner(s)
        represented at the account level


        * /accounts/{AccountId} resource

        The Account Holder Name is the name or names of the Account owner(s)
        represented at the account level


        * /beneficiaries resource

        The Account Holder Name is the name or names of the Beneficiary account
        owner(s) represented at the account level, as displayed by the Creditor
        Agent's online channels and as provided by the Beneficiary to the User 1
        when adding the Beneficiary in the Beneficiary list. 

        Note, the Account Holder Name is not the product name or the nickname of
        the account.              


        * /scheduled-payments resource

        The Account Holder Name is the name or names of the Beneficiary account
        owner(s) represented at the account level, as displayed by the Creditor
        Agent's online channels and as provided by the Beneficiary to the User 1
        when adding the Beneficiary in the Beneficiary list. 

        Note, the Account Holder Name is not the product name or the nickname of
        the account.              


        * /standing-orders resource

        The Account Holder Name is the name or names of the Beneficiary account
        owner(s) represented at the account level, as displayed by the Creditor
        Agent's online channels and as provided by the Beneficiary to the User 1
        when adding the Beneficiary in the Beneficiary list. 

        Note, the Account Holder Name is not the product name or the nickname of
        the account.
    AccountHolderShortName:
      type: string
      description: |
        * /accounts resource
        The Account holder nick name

        * /accounts/{AccountId} resource
        The Account holder nick name

        * /beneficiaries resource
        The Beneficiary account holder nick name

        * /scheduled-payments resource
        The Beneficiary account holder nick name

        * /standing-orders resource
        The Beneficiary account holder nick name
    StatementReference:
      description: >-
        Unique reference for the statement. This reference may be optionally
        populated if available.
      type: string
      minLength: 1
      maxLength: 35
    LocalTimeZone:
      description: >
        The UTC offset of the local date and time of where the transaction
        occurred

        E.g. UTC+03:00
      type: string
      example: UTC+03:00
      pattern: ^UTC[+-]([01]\d|2[0-4])(:?[0-5]\d)?$
    ISODateTime:
      description: >-
        All dates in the JSON payloads are represented in ISO 8601 date-time
        format. 

        All date-time fields in responses must include the timezone. An example
        is below:

        2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    StandingOrderId:
      description: >-
        A unique and immutable identifier produced by the LFI to identify the
        account resource. This identifier has no meaning to the account owner.
      type: string
      minLength: 1
      maxLength: 40
    StandingOrderType:
      description: The type of Standing Order.
      type: string
      enum:
        - BetweenMyAccounts
        - SameBankTransfer
        - LocalBankTransfer
        - InternationalTransfer
        - Charity
    Frequency:
      type: string
      minLength: 1
      maxLength: 35
      description: >
        * The frequency that the Standing Order payments are executed from the
        User1s account. Encoded with allowable values as follows:


        * Individual Definitions:

        NotKnown - SO frequency is not known (i.e. not provided) 

        EveryDay - SO frequency is Every day

        EveryWorkingDay - SO frequency is every working day 

        IntervalDay - SO frequency is an interval specified in number of
        calendar days (2 to 31) 

        IntervalWeekDay - SO frequency is an interval specified in weeks (1 to
        51), and the day within the week (1 to 7) 

        WeekInMonthDay - SO frequency is a monthly interval, specifying the week
        of the month (1 to 5) and day within the week (1 to 7) 

        IntervalMonthDay - SO frequency is an interval specified in months
        (between 1 to 6, 12, 24), specifying the day within the month (-5 to -1,
        1 to 31) 

        QuarterDay - SO frequency is quarterly RECEIVED

        BiAnnual - SO frequency is every 6 months

        Annual - SO frequency is every year

        RECEIVED = Paid on the 20th March, 19th June, 24th September and 20th
        December. 


        * Individual Patterns:

        NotKnown (ScheduleCode)

        EveryDay (ScheduleCode)

        EveryWorkingDay (ScheduleCode)

        IntervalDay:NoOfDay (ScheduleCode + NoOfDay)

        IntervalWeekDay:IntervalInWeeks:DayInWeek (ScheduleCode +
        IntervalInWeeks + DayInWeek)

        WeekInMonthDay:WeekInMonth:DayInWeek (ScheduleCode + WeekInMonth +
        DayInWeek)

        IntervalMonthDay:IntervalInMonths:DayInMonth (ScheduleCode +
        IntervalInMonths + DayInMonth)

        QuarterDay: + either (RECEIVED) ScheduleCode + QuarterDay


        * The regular expression for this element combines five smaller versions
        for each permitted pattern. To aid legibility - the components are
        presented individually here:

        NotKnown

        EveryDay

        EveryWorkingDay

        IntervalDay:(([2-9])|([1-2][0-9])|3[0-1])

        IntervalWeekDay:[1-51]:[1-7]

        WeekInMonthDay:[1-5]:[1-7]

        IntervalMonthDay:([1-6]|12|24):(-[1-5]|[1-9]|[12][0-9]|3[01])

        QuarterDay:(RECEIVED)


        * Full Regular Expression:

        ^(NotKnown)$|^(EveryDay)$|^(EveryWorkingDay)$|^(IntervalDay:(([2-9])|([1-2][0-9])|3[0-1]))$|^(IntervalWeekDay:[1-51]:[1-7])$|^(WeekInMonthDay:[1-5]:[1-7])$|^(IntervalMonthDay:([1-6]|12|24):(-[1-5]|[1-9]|[12][0-9]|3[01]))$|^(QuarterDay:(RECEIVED))$"

        type: "string"

        pattern:
        "^(NotKnown)$|^(EveryDay)$|^(EveryWorkingDay)$|^(IntervalDay:(([2-9])|([1-2][0-9])|3[0-1]))$|^(IntervalWeekDay:[1-51]:[1-7])$|^(WeekInMonthDay:[1-5]:[1-7])$|^(IntervalMonthDay:([1-6]|12|24):(-[1-5]|[1-9]|[12][0-9]|3[01]))$|^(QuarterDay:(RECEIVED))$"
    PurposeSO:
      description: >
        The purpose of the Standing Order payment.

        A free format string in the form of transaction categorisation.

        Example: "Bills and expenses", "Government payment", "Personal
        Expenses".
      type: string
      minLength: 1
      maxLength: 50
    FirstPaymentDateTime:
      description: >-
        The date on which the first payment for a Standing Order schedule will
        be made.All dates in the JSON payloads are represented in ISO 8601
        date-time format. 

        All date-time fields in responses must include the timezone. An example
        is below:

        2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    NextPaymentDateTime:
      description: >-
        The date on which the next payment for a Standing Order schedule will be
        made.All dates in the JSON payloads are represented in ISO 8601
        date-time format. 

        All date-time fields in responses must include the timezone. An example
        is below:

        2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    LastPaymentDateTime:
      description: >-
        The date on which the last (most recent) payment for a Standing Order
        schedule was made.All dates in the JSON payloads are represented in ISO
        8601 date-time format. 

        All date-time fields in responses must include the timezone. An example
        is below:

        2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    FinalPaymentDateTime:
      description: >-
        The date on which the final payment for a Standing Order schedule will
        be made.All dates in the JSON payloads are represented in ISO 8601
        date-time format. 

        All date-time fields in responses must include the timezone. An example
        is below:

        2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    NumberOfPayments:
      description: >-
        Number of the payments that will be made in completing this frequency
        sequence including any executed since the sequence start date.
      type: string
      minLength: 1
      maxLength: 35
    AEExternalStandingOrderStatusCode:
      description: Specifies the status of the standing order in code form.
      type: string
      enum:
        - Active
        - Inactive
    DirectDebitId:
      description: >-
        A unique and immutable identifier used to identify the direct debit
        resource. This identifier has no meaning to the account owner.
      type: string
      minLength: 1
      maxLength: 256
    MandateIdentification:
      description: >-
        This is the unique and immutable reference to the User 1 for the Direct
        Debit mandate.
      type: string
      minLength: 1
      maxLength: 35
    AEExternalDirectDebitStatusCode:
      description: >-
        Specifies the status of the direct debit. Encoded with allowable values
        of: 'Active', 'Inactive'
      type: string
      enum:
        - Active
        - Inactive
    FrequencyDD:
      description: >-
        Specifies the frequency of the Direct Debit collections to the User 1
        account.
      type: string
      enum:
        - Annual
        - Daily
        - Fortnightly
        - HalfYearly
        - Monthly
        - NotKnown
        - Quarterly
        - Weekly
    PreviousPaymentDateTime:
      description: >-
        The date of most recent direct debit collection to the User 1 account.
        All dates in the JSON payloads are represented in ISO 8601 date-time
        format. 

        All date-time fields in responses must include the timezone. An example
        is below:

        2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    AEActiveOrHistoricCurrencyAndAmount_0:
      type: object
      required:
        - Amount
        - Currency
      description: >-
        This is the value of the last direct debit collection from the User 1
        account.
      properties:
        Amount:
          $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
        Currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
      additionalProperties: false
    AEActiveOrHistoricCurrencyAndAmount_1:
      type: object
      required:
        - Amount
        - Currency
      description: >
        The amount of money that was moved between the User 1 (Debtor) and the
        payment beneficiary (Creditor) by the LFI, before adding any charges
        from the sending LFI.

        It is expressed in the currency as ordered by the User 1 (i.e. the
        initiating party of the payment). This amount is transported unchanged
        through the transaction chain.
      properties:
        Amount:
          $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
        Currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
      additionalProperties: false
    AEActiveOrHistoricCurrencyAndAmount_2:
      type: object
      required:
        - Amount
        - Currency
      description: The amount of the first Standing Order
      properties:
        Amount:
          $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
        Currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
      additionalProperties: false
    AEActiveOrHistoricCurrencyAndAmount_3:
      type: object
      required:
        - Amount
        - Currency
      description: The amount of the next Standing Order.
      properties:
        Amount:
          $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
        Currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
      additionalProperties: false
    AEActiveOrHistoricCurrencyAndAmount_4:
      type: object
      required:
        - Amount
        - Currency
      description: The amount of the final Standing Order
      properties:
        Amount:
          $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
        Currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
      additionalProperties: false
    AEActiveOrHistoricCurrencyAndAmount_5:
      type: object
      required:
        - Amount
        - Currency
      description: Amount of money in the transaction entry.
      properties:
        Amount:
          $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
        Currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
      additionalProperties: false
    AEActiveOrHistoricCurrencyAndAmount_6:
      type: object
      required:
        - Amount
        - Currency
      description: Transaction charges to be paid by the charge bearer.
      properties:
        Amount:
          $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
        Currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
        ChargeIncluded:
          description: >
            If true then the value in the Amount has the ChargeAmount deducted
            from it
          type: boolean
      additionalProperties: false
    AEActiveOrHistoricCurrencyAndAmount_7:
      type: object
      required:
        - Amount
        - Currency
      description: The amount of the last (most recent) Standing Order instruction.
      properties:
        Amount:
          $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
        Currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
      additionalProperties: false
    AEActiveOrHistoricCurrencyAndAmount_8:
      type: object
      required:
        - Amount
        - Currency
      description: ' The VAT associated with the ChargeAmount'
      properties:
        Amount:
          $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
        Currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
      additionalProperties: false
    AEReadDirectDebit:
      description: List of Direct Debits for an Account
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - AccountId
            - DirectDebit
          properties:
            AccountId:
              $ref: '#/components/schemas/AccountId'
            DirectDebit:
              type: array
              items:
                $ref: '#/components/schemas/AEDirectDebit'
          additionalProperties: false
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/MetaTotalPages'
      additionalProperties: false
    AEDirectDebit:
      type: object
      description: Account to or from which a cash entry is made.
      required:
        - DirectDebitId
        - MandateIdentification
        - DirectDebitStatusCode
        - Name
        - Frequency
      properties:
        DirectDebitId:
          $ref: '#/components/schemas/DirectDebitId'
        MandateIdentification:
          $ref: '#/components/schemas/MandateIdentification'
        DirectDebitStatusCode:
          $ref: '#/components/schemas/AEExternalDirectDebitStatusCode'
        Name:
          $ref: '#/components/schemas/Name_2'
        Frequency:
          $ref: '#/components/schemas/FrequencyDD'
        PreviousPaymentDateTime:
          $ref: '#/components/schemas/PreviousPaymentDateTime'
        PreviousPaymentAmount:
          $ref: '#/components/schemas/AEActiveOrHistoricCurrencyAndAmount_0'
      additionalProperties: false
    AEReadStandingOrder:
      description: List of Standing Orders for an Account
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - AccountId
            - StandingOrder
          properties:
            AccountId:
              $ref: '#/components/schemas/AccountId'
            StandingOrder:
              type: array
              items:
                $ref: '#/components/schemas/AEStandingOrder'
          additionalProperties: false
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/MetaTotalPages'
      additionalProperties: false
    AEStandingOrder:
      description: Standing Orders for a specific AccountId
      type: object
      required:
        - Frequency
        - StandingOrderId
        - FirstPaymentDateTime
        - FinalPaymentDateTime
        - NumberOfPayments
        - StandingOrderStatusCode
        - FirstPaymentAmount
        - FinalPaymentAmount
      properties:
        StandingOrderId:
          $ref: '#/components/schemas/StandingOrderId'
        AccountHolderName:
          $ref: '#/components/schemas/AccountHolderName'
        AccountHolderShortName:
          $ref: '#/components/schemas/AccountHolderShortName'
        StandingOrderType:
          $ref: '#/components/schemas/StandingOrderType'
        Frequency:
          $ref: '#/components/schemas/Frequency'
        CreditorReference:
          $ref: '#/components/schemas/Reference'
        Purpose:
          $ref: '#/components/schemas/PurposeSO'
        FirstPaymentDateTime:
          $ref: '#/components/schemas/FirstPaymentDateTime'
        NextPaymentDateTime:
          $ref: '#/components/schemas/NextPaymentDateTime'
        LastPaymentDateTime:
          $ref: '#/components/schemas/LastPaymentDateTime'
        FinalPaymentDateTime:
          $ref: '#/components/schemas/FinalPaymentDateTime'
        NumberOfPayments:
          $ref: '#/components/schemas/NumberOfPayments'
        StandingOrderStatusCode:
          $ref: '#/components/schemas/AEExternalStandingOrderStatusCode'
        FirstPaymentAmount:
          $ref: '#/components/schemas/AEActiveOrHistoricCurrencyAndAmount_2'
        NextPaymentAmount:
          $ref: '#/components/schemas/AEActiveOrHistoricCurrencyAndAmount_3'
        LastPaymentAmount:
          $ref: '#/components/schemas/AEActiveOrHistoricCurrencyAndAmount_7'
        FinalPaymentAmount:
          $ref: '#/components/schemas/AEActiveOrHistoricCurrencyAndAmount_4'
        CreditorAgent:
          $ref: >-
            #/components/schemas/AEBranchAndFinancialInstitutionIdentification5_1
        CreditorAccount:
          type: array
          items:
            $ref: '#/components/schemas/AECashAccount5_0'
        SupplementaryData:
          $ref: '#/components/schemas/AESupplementaryData'
      additionalProperties: false
    AEBranchAndFinancialInstitutionIdentification5_1:
      type: object
      required:
        - SchemeName
        - Identification
      description: >
        Creditor Agent refers to the Financial Institution that manages the
        account on behalf of the scheduled payment beneficiary party, managing
        registration, booking of entries on the account, calculating balances on
        the account and providing information about the account. This is the
        servicing Financial Institution of the Beneficiary account.
      properties:
        SchemeName:
          $ref: >-
            #/components/schemas/AEExternalFinancialInstitutionIdentificationCode
        Identification:
          $ref: '#/components/schemas/Identification_1'
      additionalProperties: false
    DebtorReference:
      description: >
        Reference in the context of the User 1 (i.e. the Debtor) to refer to the
        payment transaction. 

        Usage: If available, the initiating party (i.e. Debtor) generates this
        reference for internal purposes (e.g. to enable reconciliation, refer to
        a PO, invoice etc). This field is captured by the LFI and is not
        transmitted via the payment rails to the Creditor of the payment.
      type: string
      minLength: 1
      maxLength: 35
    AEExternalScheduleTypeCode:
      description: >
        Specifies the type of scheduled payment date provided under
        ScheduledPaymentDateTime. 
          Encoded with allowable values of:
          "Arrival" - User1 specifies the date for the arrival of funds in the beneficiary (Creditor) account
          "Execution" - User1 specifies the date which the payment needs to be executed from the User 1 (Debtor) account.
      type: string
      enum:
        - Arrival
        - Execution
    ScheduledPaymentDateTime:
      description: >-
        Date (and time) information related to the scheduled payment (Arrival or
        Execution) based on the ScheduleType field. All dates in the JSON
        payloads are represented in ISO 8601 date-time format. 

        All date-time fields in responses must include the timezone. An example
        is below:

        2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    ProductId:
      description: >-
        Identifier within the LFI for the product. Must be unique in the
        organisation.
      type: string
      minLength: 1
      maxLength: 40
    AEProductType1Code:
      description: Descriptive code for the product.
      type: string
    AEProductName:
      description: Descriptive name for the product.
      type: string
    ScheduledPaymentId:
      description: >-
        A unique and immutable identifier produced by the LFI to identify the
        scheduled payment resource. This identifier has no meaning to the
        account owner.
      type: string
      minLength: 1
      maxLength: 40
    BeneficiaryId:
      description: >-
        A unique and immutable identifier used to identify the beneficiary
        resource. This identifier has no meaning to the account owner.
      type: string
      minLength: 1
      maxLength: 40
    AEBeneficiaryTypeCode:
      description: >-
        Specifies the Beneficiary Type. Encoded with allowable values of:
        'Activated' - Beneficiary has been added to the beneficiary list using
        SCA. 'NotActivated' - Beneficiary has been added to the beneficiary list
        without SCA
      type: string
      enum:
        - Activated
        - NotActivated
    AEBranchAndFinancialInstitutionIdentification6_0:
      type: object
      description: >-
        Party that manages the account on behalf of the account owner, that is
        manages the registration and booking of entries on the account,
        calculates balances on the account and provides information about the
        account.

        This is the servicer of the beneficiary account.
      required:
        - SchemeName
        - Identification
      properties:
        SchemeName:
          $ref: >-
            #/components/schemas/AEExternalFinancialInstitutionIdentificationCode
        Identification:
          $ref: '#/components/schemas/Identification_1'
        Name:
          $ref: '#/components/schemas/Name_1'
        PostalAddress:
          $ref: '#/components/schemas/AEPostalAddress6'
      additionalProperties: false
    AECashAccount5_0:
      type: object
      required:
        - SchemeName
        - Identification
      description: Provides the details to identify the beneficiary account.
      properties:
        SchemeName:
          $ref: '#/components/schemas/AEExternalAccountIdentificationCode1'
        Identification:
          $ref: '#/components/schemas/Identification_0'
      additionalProperties: false
    AECashAccount6_0:
      type: object
      description: >
        Creditor account details available in case the transaction is a Debit
        transaction.

        These are optional because there are situations where this cannot be
        populated for the following Debit transactions:

        - cash withdrawals (no creditor account/agent)

        - cheques and DDs may not have this information at least during the
        process of clearing and sometimes (e.g. for agency banks) may not be
        reconciled ever

        - some corner situations with international payments 

        - for card payments (instead merchant information fields should be
        populated)
      properties:
        SchemeName:
          $ref: '#/components/schemas/AEExternalAccountIdentificationCode'
        Identification:
          $ref: '#/components/schemas/Identification_0'
        Name:
          $ref: '#/components/schemas/Name_0'
      additionalProperties: false
    AECashAccount6_1:
      type: object
      description: >
        Account details of the Debtor in case the transaction is a Credit
        transaction.


        These are optional because there are situations where this cannot be
        populated for the following Credit transactions

        - cash deposits (no creditor account/agent)

        - cheques and DDs may not have this information at least during the
        process of clearing and sometimes (e.g. for agency banks) may not be
        reconciled ever

        - some corner situations with international payments 

        - for refunds with card payments  (instead merchant information fields
        should be populated)
      properties:
        SchemeName:
          $ref: '#/components/schemas/AEExternalAccountIdentificationCode'
        Identification:
          $ref: '#/components/schemas/Identification_0'
        Name:
          $ref: '#/components/schemas/Name_0'
      additionalProperties: false
    Reference:
      description: >-
        Unique reference in the context of the creditor, provided by the
        creditor to the User1 (Debtor), to unambiguously refer to the payment
        transaction. Usage: If available, the initiating party (i.e. Debtor)
        provides this reference in the structured remittance information, to
        enable reconciliation by the Creditor upon receipt of the amount of
        money. This field is populated by the User 1 (who is the initiating
        party of the payment e.g. the Debtor). Field is free format text
      type: string
      minLength: 1
      maxLength: 35
    TransactionId:
      description: >-
        Unique identifier for the transaction within an servicing institution.
        This identifier is both unique and immutable.
      type: string
      minLength: 1
      maxLength: 210
    TransactionReference:
      description: >
        Unique reference for the transaction.

        When processed through a national payment system, it is mandatory to be
        populated by the LFI.

        As an example, it may be a reference code for the local payment scheme."
      type: string
      minLength: 1
      maxLength: 210
    AECreditDebitCode_1:
      description: Indicates whether the transaction is a credit or a debit entry.
      type: string
      enum:
        - Credit
        - Debit
    AEEntryStatusCode:
      description: Status of a transaction entry on the books of the account servicer.
      type: string
      enum:
        - Booked
        - Pending
        - Rejected
    AETransactionMutabilityCode:
      description: Specifies the Mutability of the Transaction record.
      type: string
      enum:
        - Mutable
        - Immutable
    BookingDateTime:
      description: >
        Date and time when a transaction entry is posted to an account on the
        account servicer's books.

        Usage: Booking date is the expected booking date, unless the status is
        booked, in which case it is the actual booking date.

        All dates in the JSON payloads are represented in ISO 8601 date-time
        format. 

        All date-time fields in responses must include the timezone. An example
        is below: 2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    ValueDateTime:
      description: >
        Date and time at which assets become available to the account owner in
        case of a credit entry, or cease to be available to the account owner in
        case of a debit transaction entry. 

        Usage: If transaction entry status is pending and value date is present,
        then the value date refers to an expected/requested value date. 

        For transaction entries subject to availability/float and for which
        availability information is provided, the value date must not be used.
        In this case the availability component identifies the number of
        availability days.

        Availability float refers to the time period between fund deposits and
        clearing.

        The float is essentially double-counted money: a paid sum which, due to
        delays in processing, appears simultaneously in the accounts of the
        Debtor and the Creditor.

        All dates in the JSON payloads are represented in ISO 8601 date-time
        format. All date-time fields in responses must include the timezone. An
        example is below: 2017-04-05T10:43:07+00:00"
      type: string
      format: date-time
    TransactionInformation:
      description: >-
        Further details of the transaction. This is the transaction narrative,
        which is unstructured text.
      type: string
      minLength: 1
      maxLength: 500
    StreetName:
      description: Name of a street or thoroughfare.
      type: string
      minLength: 1
      maxLength: 70
    ShortAddress:
      description: 8 character Unique alphanumeric Code.
      type: string
      minLength: 1
      maxLength: 8
    BuildingNumber:
      description: Number that identifies the position of a building on a street.
      type: string
      minLength: 4
      maxLength: 4
    SecondaryNumber:
      description: Secondary Number, if required
      type: string
      minLength: 4
      maxLength: 4
    District:
      description: Identifies the District of a City
      type: string
      minLength: 1
      maxLength: 35
    AECountry:
      description: Identifies a county either by full name or country code
      type: string
      pattern: ^[A-Z]{2,2}$
    City:
      description: Identifies the City of a Country
      type: string
      minLength: 1
      maxLength: 35
    AccountId:
      description: >-
        A unique and immutable identifier produced by the LFI to identify the
        account resource.This identifier has no meaning to the account owner
        (User 1).
      type: string
      minLength: 1
      maxLength: 40
    StatusUpdateDateTime:
      description: >-
        Date and time at which the account resource status was updated. All
        dates in the JSON payloads are represented in ISO 8601 date-time
        format. 

        All date-time fields in responses must include the timezone. An example
        is below:

        2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    AEUnitNumber:
      description: This is the unit number of the business premises or dwelling
      type: number
      example: 10
    AEAddressTypeCode:
      description: Postal Address type specifies the the nature of the postal address.
      type: string
      enum:
        - Business
        - Correspondence
        - DeliveryTo
        - MailTo
        - POBox
        - Postal
        - Residential
        - Statement
    AEAccountStatusCode:
      description: |
        Specifies the status of account resource in code form.

        * Active: The account exist and is in an active state.

        * Inactive: The account is deemed not active by the LFI. Please refer to the 
          [CBUAE Website](https://rulebook.centralbank.ae/en/rulebook/dormant-accounts-regulation)
          for qualification of Inactive status.

        * Dormant: Please refer to the [CBUAE Website](https://rulebook.centralbank.ae/en/rulebook/dormant-accounts-regulation)
          for the definition of Dormant status.

        * Unclaimed: Please refer to the [CBUAE Website](https://rulebook.centralbank.ae/en/rulebook/dormant-accounts-regulation)
          for the definition of Unclaimed status.

        * Deceased: The account holder has passed away.

        * Suspended: The account has been temporarily deactivated by the LFI for reasons such as
          suspicious activities or non-compliance with regulations. The account holder might
          be unable to access funds or perform transactions until the bank's requirements 
          are met, and the suspension is lifted. 
        
        * Closed: The account is closed
      type: string
      enum:
        - Active
        - Inactive
        - Dormant
        - Unclaimed
        - Deceased
        - Suspended
        - Closed
    ActiveOrHistoricCurrencyCode_0:
      description: >-
        Identification of the currency in which the account is held. A code
        allocated to a currency under an international currency identification
        scheme, as described in the latest edition of the international standard
        ISO 4217 'Codes for the representation of currencies and funds'.
      type: string
      pattern: ^[A-Z]{3,3}$
      example: AED
    ActiveOrHistoricCurrencyCode_1:
      description: >-
        A 3 character alphabetic code allocated to a currency under an
        international currency identification scheme, as described in the latest
        edition of the international standard ISO 4217 'Codes for the
        representation of currencies and funds'.
      type: string
      pattern: ^[A-Z]{3,3}$
      example: AED
    AEExternalAccountTypeCode:
      description: Specifies the type of account (Retail, SME or Corporate).
      type: string
      enum:
        - Retail
        - SME
        - Corporate
    AEExternalAccountSubTypeCode:
      description: >-
        Specifies the sub type of account (product family group). Examples
        values include: CurrentAccount, Savings
      type: string
      x-namespaced-enum:
        - CurrentAccount
        - Savings
    Description_0:
      description: Specifies the description of the account sub-type.
      type: string
      minLength: 1
      maxLength: 35
    Nickname:
      description: >-
        The nickname of the account, assigned by User 1 to provide an additional
        and easier means of identification of the account at the LFI.
      type: string
      minLength: 1
      maxLength: 70
    OpeningDate:
      description: >-
        Date on which the account and its related basic services by LFI started
        to be operational for User 1. All dates in the JSON payloads are
        represented in ISO 8601 date-time format. All date-time fields in
        responses must include the timezone. An example is below:
        2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    MaturityDate:
      description: >
        * Fixed Term Savings Account
          MaturityDate is the date on which the savings mature and the balance can be withdrawn by the User without penalty

        * All dates in the JSON payloads are represented in ISO 8601 date-time
        format. All date-time fields in responses must include the timezone. An
        example is: 2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    AEExternalAccountIdentificationCode:
      description: >-
        Name of the identification scheme for the account. Encoded with
        allowable values published in an external list.
      type: string
      enum:
        - IBAN
        - AccountNumber
    AEExternalAccountIdentificationCode1:
      description: >-
        Name of the identification scheme for the account. Encoded with
        allowable values published in an external list.
      type: string
      enum:
        - IBAN
        - AccountNumber
        - MaskedPAN
        - MobileNumber
        - UtilityName
        - EWallet
    Identification_0:
      description: >
        Identification for the account assigned by the LFI based on the Account
        Scheme Name. This identification is known by the User 1 account owner.
        For IBAN, refer to the ISO Standard 13616.
      type: string
      minLength: 1
      maxLength: 400
    Identification_1:
      description: >
        * /accounts resource

        Unique and unambiguous identification of the LFI as the account
        servicing institution for the Open Banking Services. 


        * /beneficiaries resource

        Unique and unambiguous identification of the Creditor Agency as the
        servicing institution of the Beneficiary.


        * /scheduled-payments resource 

        Unique and unambiguous identification of the LFI as the account
        servicing institution for the Open Banking Services. 


        * /standing-orders resource 

        Unique and unambiguous identification of the LFI as the account
        servicing institution for the Open Banking Services. 


        * /transactions resource 
         Unique and unambiguous identification of the LFI as the account servicing institution for the Open Banking Services. 

        *  Notes:

        Based on the value of the field **SchemeName**, this entry may
        be :

        * BICFI: The BIC/SWIFT Code        

        * Other: The ID; A Country Code followed by a Bank Code (4 character code). 
      type: string
      minLength: 1
      maxLength: 35
    AEExternalFinancialInstitutionIdentificationCode:
      description: >
        * /accounts resource 

        The name of the identification scheme for the LFI as the account
        services provider. Encoded with allowable value as published in an
        external list.


        * /beneficiaries resource 

        Refers to the Financial Institution that manages the account on behalf
        of the Beneficiary party, managing registration, booking of entries on
        the account, calculating balances on the account and providing
        information about the account. This is the servicing Financial
        Institution of the Beneficiary account.


        * /scheduled-payments resource 

        Refers to the identification scheme for uniquely identifying the
        Creditor Agent.


        * /standing-orders resource 

        Refers to the identification scheme for uniquely identifying the
        Creditor Agent.


        * /transactions resource 

        Refers to the identification scheme for uniquely identifying the
        Creditor Agent.
      type: string
      enum:
        - BICFI
        - Other
    AccountIdentifiers:
      type: array
      items:
        type: object
        description: Provides the details to identify an account.
        required:
          - SchemeName
          - Identification
        properties:
          SchemeName:
            $ref: '#/components/schemas/AEExternalAccountIdentificationCode'
          Identification:
            $ref: '#/components/schemas/Identification_0'
          Name:
            $ref: '#/components/schemas/Name_0'
        additionalProperties: false
    AEBranchAndFinancialInstitutionIdentification5_0:
      type: object
      required:
        - SchemeName
        - Identification
      description: >-
        Party that manages the account on behalf of the account owner, that is
        manages the registration and booking of entries on the account,
        calculates balances on the account and provides information about the
        account.
      properties:
        SchemeName:
          $ref: >-
            #/components/schemas/AEExternalFinancialInstitutionIdentificationCode
        Identification:
          $ref: '#/components/schemas/Identification_1'
      additionalProperties: false
    CreationDateTime:
      description: >-
        Date and time at which the resource was created.All dates in the JSON
        payloads are represented in ISO 8601 date-time format. 

        All date-time fields in responses must include the timezone. An example
        is below:

        2017-04-05T10:43:07+00:00
      type: string
      format: date-time
    AEConsentPermissions:
      type: array
      description: >
        Specifies the permitted Account Access data types. 

        This is a list of the data groups being consented by the User, and
        requested for authorization with the LFI.
      items:
        type: string
        enum:
          - ReadAccountsBasic
          - ReadAccountsDetail
          - ReadBalances
          - ReadBeneficiariesBasic
          - ReadBeneficiariesDetail
          - ReadTransactionsBasic
          - ReadTransactionsDetail
          - ReadTransactionsCredits
          - ReadTransactionsDebits
          - ReadProduct
          - ReadScheduledPaymentsBasic
          - ReadScheduledPaymentsDetail
          - ReadDirectDebits
          - ReadStandingOrdersBasic
          - ReadStandingOrdersDetail
          - ReadConsents
          - ReadPartyPSUReadPartyUser
          - ReadPartyPSUIdentityReadPartyUserIdentity
          - ReadParty
      minItems: 1
    AEReadBeneficiary:
      description: List of Beneficiaries for an Account
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - AccountId
            - Beneficiary
          properties:
            AccountId:
              $ref: '#/components/schemas/AccountId'
            Beneficiary:
              type: array
              items:
                $ref: '#/components/schemas/AEBeneficiary'
          additionalProperties: false
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/MetaTotalPages'
      additionalProperties: false
    AEBeneficiary:
      description: Beneficiaries for a specific AccountId
      type: object
      required:
        - BeneficiaryId
        - BeneficiaryType
      properties:
        BeneficiaryId:
          $ref: '#/components/schemas/BeneficiaryId'
        BeneficiaryType:
          $ref: '#/components/schemas/AEBeneficiaryTypeCode'
        AccountHolderName:
          $ref: '#/components/schemas/AccountHolderName'
        AccountHolderShortName:
          $ref: '#/components/schemas/AccountHolderShortName'
        Reference:
          $ref: '#/components/schemas/Reference'
        SupplementaryData:
          $ref: '#/components/schemas/AESupplementaryData'
        CreditorAgent:
          $ref: >-
            #/components/schemas/AEBranchAndFinancialInstitutionIdentification6_0
        CreditorAccount:
          type: array
          items:
            $ref: '#/components/schemas/AECashAccount5_0'
      additionalProperties: false
    AEReadAccount:
      description: List of Accounts
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - Account
          properties:
            Account:
              type: array
              items:
                $ref: '#/components/schemas/AEAccountArrayId'
          additionalProperties: false
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/MetaTotalPages'
      additionalProperties: false
    AEReadAccountId:
      description: Individual Account
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - AccountId
            - Account
          properties:
            AccountId:
              $ref: '#/components/schemas/AccountId'
            Account:
              $ref: '#/components/schemas/AEAccountId'
          additionalProperties: false
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/MetaTotalPages'
      additionalProperties: false
    AEActiveCurrencyAndAmount_SimpleType:
      description: >-
        A number of monetary units specified in an active currency where the
        unit of currency is explicit and compliant with ISO 4217.
      type: string
      pattern: ^\d{1,13}$|^\d{1,13}\.\d{1,5}$
    AECreditDebitCode_2:
      description: >-
        Indicates whether the balance of the account is a credit or a debit
        balance. Encoded with allowable values: 'Credit', 'Debit' Usage: A zero
        balance is considered to be a credit balance.
      type: string
      enum:
        - Credit
        - Debit
    AEBalanceTypeCode:
      description: >
        The type of balance for the account. 

        Encoded with allowable values of: 

        * 'ClosingAvailable' - end of day balance specifying the amount
        available to User 1 to withdraw or use. 

        * 'ClosingBooked' - end of day balance including value of payments for
        cheques or payments which have not been cleared yet. 

        * 'ClosingCleared' - end of day balance including value of payments for
        cheques or payments which have been cleared. 

        * 'Expected' - intra day balance including value of payments for cheques
        or payments which have been cleared. 

        * 'ForwardAvailable' - intraday balance specifying the amount available
        to User 1 to withdraw or use considering forward dated payments or other
        intraday payments or cheques that will be clearing to the account. 

        * 'Information' - TBC. 

        * 'InterimAvailable' - intraday balance specifying the amount available
        to User 1 to withdraw or use (most probably real-time.'InterimBooked' -
        intraday balance including value of payments for cheques or payments
        which have not been cleared yet. 

        * 'InterimCleared' - intraday balance including value of payments for
        cheques or payments which have been cleared (probably real-time). 

        * 'OpeningAvailable' - start of day balance specifying the amount
        available to User 1 to withdraw or use. 

        * 'OpeningBooked' - start of day balance including value of payments for
        cheques or payments which have not been cleared yet. 

        * 'OpeningCleared' - start of day balance including value of payments
        for cheques or payments which have been cleared.

        * 'PreviouslyClosedBooked' -TBC. 


        Note: LFIs support different types for presenting account balance, so
        this list is used to support different LFI systems in UAE.
      type: string
      enum:
        - ClosingAvailable
        - ClosingBooked
        - ClosingCleared
        - Expected
        - ForwardAvailable
        - Information
        - InterimAvailable
        - InterimBooked
        - InterimCleared
        - OpeningAvailable
        - OpeningBooked
        - OpeningCleared
        - PreviouslyClosedBooked
    ProprietaryBankTransactionCodeStructure1:
      type: object
      required:
        - Code
      description: >
        ProprietaryBankTransactionCode is mandatory when the BankTransactionCode
        (with code specifying the Domain, Family and SubFamily as per External
        Codes ISO20022) is absent.        

        Set of elements to fully identify a proprietary bank transaction code
      properties:
        Code:
          description: >-
            Proprietary bank transaction code to identify the underlying
            transaction.
          type: string
          minLength: 1
          maxLength: 35
        Issuer:
          description: >-
            Identification of the issuer of the proprietary bank transaction
            code.
          type: string
          minLength: 1
          maxLength: 35
      additionalProperties: false
    Name_0:
      description: >-
        The account name is the name or names of the User 1 account owner(s)
        represented at an account level, as displayed by the LFI's online
        channels. Note: The account name is not the product name or the nickname
        of the account.
      type: string
      minLength: 1
      maxLength: 70
    Name_1:
      description: >
        * Beneficiary

        Name by which an agent is known and which is usually used to identify
        that agent


        * Creditor agent

        Name by which the Financial institution(FI) which is the creditor is
        known and which is usually used to identify that FI.


        * DebtorAgent

        Name by which an financial institution of the debtor is known and which
        is usually used to identify that financial institution.
      type: string
      minLength: 1
      maxLength: 140
    Name_2:
      description: >-
        This is the name of the regulated beneficiary entity that initiates the
        Direct Debit collection.
      type: string
      minLength: 1
      maxLength: 70
    AEBranchAndFinancialInstitutionIdentification6_1:
      type: object
      description: >
        Financial institution servicing an account for the creditor in case the
        transaction is a Debit transaction.

        These are optional because there are situations where this cannot be
        populated for the following Debit transactions

        - Cash withdrawals (no creditor account/agent)

        - Cheques and DDs may not have this information at least during the
        process of clearing and sometimes (e.g. for agency banks) may not be
        reconciled ever

        - Some corner situations with international payments 

        - For card payments (instead merchant information fields should be
        populated)
      properties:
        SchemeName:
          $ref: >-
            #/components/schemas/AEExternalFinancialInstitutionIdentificationCode
        Identification:
          $ref: '#/components/schemas/Identification_1'
        Name:
          $ref: '#/components/schemas/Name_1'
        PostalAddress:
          $ref: '#/components/schemas/AEPostalAddress6'
      additionalProperties: false
    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.
      type: string
      minLength: 1
      maxLength: 16
    AEPostalAddress6:
      type: object
      description: >-
        Postal Address specifies Information that locate and identify a specific
        address, as defined by postal services.
      properties:
        AddressType:
          $ref: '#/components/schemas/AEAddressTypeCode'
        ShortAddress:
          $ref: '#/components/schemas/ShortAddress'
        BuildingNumber:
          $ref: '#/components/schemas/BuildingNumber'
        UnitNumber:
          $ref: '#/components/schemas/AEUnitNumber'
        StreetName:
          $ref: '#/components/schemas/StreetName'
        SecondaryNumber:
          $ref: '#/components/schemas/SecondaryNumber'
        District:
          $ref: '#/components/schemas/District'
        PostalCode:
          $ref: '#/components/schemas/PostCode'
        City:
          $ref: '#/components/schemas/City'
        Country:
          $ref: '#/components/schemas/AECountry'
      additionalProperties: false
    AEMerchantDetails1:
      type: object
      description: >
        Details of the Merchant involved in the transaction.

        Merchant Details are specified only for those merchant categories that
        are generally expected to originate retail financial transactions
      properties:
        MerchantId:
          description: MerchantId
          type: integer
          minLength: 8
          maxLength: 20
        MerchantName:
          description: Name by which the merchant is known.
          type: string
          minLength: 1
          maxLength: 350
        MerchantCategoryCode:
          description: >
            Category code values are used to enable the classification of
            merchants into specific categories based on the type of business,
            trade or services supplied. 

            Category code conforms to ISO 18245, related to the type of services
            or goods the merchant provides for the transaction."
          type: string
          minLength: 3
          maxLength: 4
      additionalProperties: false
    AETransactionCashBalance:
      type: object
      required:
        - CreditDebitIndicator
        - Type
        - Amount
      description: >-
        Set of elements used to define the balance as a numerical representation
        of the net increases and decreases in an account after a transaction
        entry is applied to the account.
      properties:
        CreditDebitIndicator:
          $ref: '#/components/schemas/AECreditDebitCode_2'
        Type:
          $ref: '#/components/schemas/AEBalanceTypeCode'
        Amount:
          type: object
          required:
            - Amount
            - Currency
          description: >-
            Amount of money of the cash balance after a transaction entry is
            applied to the account..
          properties:
            Amount:
              $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
            Currency:
              $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
          additionalProperties: false
      additionalProperties: false
    AEBankTransactionCodeStructure:
      type: object
      description: >
        BankTransactionCode is mandatory (with code specifying the Domain,
        Family and SubFamily as per External Codes ISO20022) when the
        ProprietaryBankTransactionCode is absent.        

        Specifies the domain, the family and the sub-family of the bank
        transaction code, in a structured and hierarchical format.

        Usage: If a specific family or sub-family code cannot be provided, the
        generic family code defined for the domain or the generic sub-family
        code defined for the family should be provided.

        [https://www.iso20022.org/sites/default/files/2022-05/BTC_Codification_31May2022.xls](https://www.iso20022.org/sites/default/files/2022-05/BTC_Codification_31May2022.xls)
      properties:
        Domain:
          description: Specifies the Domain
          type: string
        DomainCode:
          description: Specifies the Domain Code.
          type: string
        Family:
          description: Specifies the Family
          type: string
        FamilyCode:
          description: Specifies the Family Code
          type: string
        SubFamily:
          description: Specifies the Sub-Family
          type: string
        SubFamilyCode:
          description: Specifies the Sub-family Code
          type: string
      additionalProperties: false
    AECurrencyExchange:
      type: object
      required:
        - SourceCurrency
        - TargetCurrency
        - UnitCurrency
        - ExchangeRate
        - InstructedAmount
      description: Set of elements used to provide details on the currency exchange.
      properties:
        SourceCurrency:
          description: >-
            Currency from which an amount is to be converted in a currency
            conversion. A code allocated to a currency by a Maintenance Agency
            under an international identification scheme, as described in the
            latest edition of the international standard ISO 4217 "Codes for the
            representation of currencies and funds".
          type: string
          pattern: ^[A-Z]{3,3}$
        TargetCurrency:
          description: >-
            Currency into which an amount is to be converted in a currency
            conversion.A code allocated to a currency by a Maintenance Agency
            under an international identification scheme, as described in the
            latest edition of the international standard ISO 4217 "Codes for the
            representation of currencies and funds".
          type: string
          pattern: ^[A-Z]{3,3}$
        UnitCurrency:
          description: >-
            Currency in which the rate of exchange is expressed in a currency
            exchange. In the example 1AED = xxxCUR, the unit currency is AED.A
            code allocated to a currency by a Maintenance Agency under an
            international identification scheme, as described in the latest
            edition of the international standard ISO 4217 "Codes for the
            representation of currencies and funds".
          type: string
          pattern: ^[A-Z]{3,3}$
        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.

            Usage: ExchangeRate expresses the ratio between UnitCurrency and
            QuotedCurrency (ExchangeRate = UnitCurrency/QuotedCurrency).
          type: number
        ContractIdentification:
          description: >-
            Unique identification to unambiguously identify the foreign exchange
            contract.
          type: string
          minLength: 1
          maxLength: 35
        QuotationDate:
          description: >-
            Date and time at which an exchange rate is quoted.All dates in the
            JSON payloads are represented in ISO 8601 date-time format. 

            All date-time fields in responses must include the timezone. An
            example is below:

            2017-04-05T10:43:07+00:00
          type: string
          format: date-time
        InstructedAmount:
          type: object
          required:
            - Amount
            - Currency
          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.
          properties:
            Amount:
              $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
            Currency:
              $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
          additionalProperties: false
      additionalProperties: false
    AEReadProduct1:
      description: Product detail for an Account
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - AccountId
            - Product
          properties:
            AccountId:
              $ref: '#/components/schemas/AccountId'
            Product:
              type: array
              items:
                $ref: '#/components/schemas/AEProduct'
          additionalProperties: false
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/MetaTotalPages'
      additionalProperties: false
    AEProduct:
      type: object
      description: Set of elements used to define the product details.
      required:
        - ProductId
        - ProductType
      properties:
        ProductId:
          $ref: '#/components/schemas/ProductId'
        ProductType:
          $ref: '#/components/schemas/AEProductType1Code'
        ProductName:
          $ref: '#/components/schemas/AEProductName'
        IsIslamic:
          $ref: '#/components/schemas/AEIsIslamic'
        Charges:
          $ref: '#/components/schemas/AECharge'
        LendingRates:
          $ref: '#/components/schemas/AELendingRate'
        DepositRates:
          $ref: '#/components/schemas/AEDepositRate'
      additionalProperties: false
    AEReadTransaction:
      description: List of Transactions for an Account
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - AccountId
            - Transaction
          properties:
            AccountId:
              $ref: '#/components/schemas/AccountId'
            Transaction:
              type: array
              items:
                $ref: '#/components/schemas/AETransaction'
          additionalProperties: false
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/MetaTransactions'
      additionalProperties: false
    AETransactionCardInstrument:
      type: object
      required:
        - CardSchemeName
        - InstrumentType
      description: Set of elements to describe the card instrument used in the transaction.
      properties:
        CardSchemeName:
          description: Name of the card scheme.
          type: string
          enum:
            - AmericanExpress
            - Diners
            - Discover
            - GCC
            - MasterCard
            - UPI
            - VISA
        InstrumentType:
          description: The card instrument type.
          type: string
          enum:
            - ApplePay
            - Contactless
            - MagStripe
            - Chip
            - Other
        Name:
          description: Name of the cardholder using the card instrument.
          type: string
          minLength: 1
          maxLength: 70
        Identification:
          description: >-
            Identification assigned by an institution to identify the card
            instrument used in the transaction. This identification is known by
            the account owner, and MUST be masked.
          type: string
          minLength: 1
          maxLength: 16
          example: 1234********4321
      additionalProperties: false
    AESupplementaryData:
      type: object
      properties: {}
      additionalProperties: false
      description: >-
        Additional information that can not be captured in the structured fields
        and/or any other specific block.
    AEBranchAndFinancialInstitutionIdentification6_2:
      type: object
      description: >
        Financial institution servicing an account for the Debtor in case the
        transaction is a Credit transaction.

        These are optional because there are situations where this cannot be
        populated for the following Credit transactions

        - cash deposits (no creditor account/agent)

        - cheques and DDs may not have this information at least during the
        process of clearing and sometimes (e.g. for agency banks) may not be
        reconciled ever

        - some corner situations with international payments 

        - for refunds with card payments  (instead merchant information fields
        should be populated)
      properties:
        SchemeName:
          $ref: >-
            #/components/schemas/AEExternalFinancialInstitutionIdentificationCode
        Identification:
          $ref: '#/components/schemas/Identification_1'
        Name:
          $ref: '#/components/schemas/Name_1'
        PostalAddress:
          $ref: '#/components/schemas/AEPostalAddress6'
      additionalProperties: false
    AETransaction:
      type: object
      description: Provides further details on an entry in the report.
      required:
        - TransactionId
        - CreditDebitIndicator
        - Status
        - BookingDateTime
        - Amount
        - TransactionDateTime
        - TransactionType
        - SubTransactionType
        - PaymentModes
      properties:
        TransactionId:
          $ref: '#/components/schemas/TransactionId'
        TransactionDateTime:
          $ref: '#/components/schemas/TransactionDateTime'
        LocalTimeZone:
          $ref: '#/components/schemas/LocalTimeZone'
        StatementReference:
          $ref: '#/components/schemas/StatementReference'
        TransactionReference:
          $ref: '#/components/schemas/TransactionReference'
        TransactionType:
          $ref: '#/components/schemas/TransactionType'
        SubTransactionType:
          $ref: '#/components/schemas/SubTransactionType'
        TerminalId:
          $ref: '#/components/schemas/TerminalId'
        Flags:
          type: array
          items:
            $ref: '#/components/schemas/Flags'
        PaymentModes:
          $ref: '#/components/schemas/PaymentMode'
        CreditDebitIndicator:
          $ref: '#/components/schemas/AECreditDebitCode_1'
        Status:
          $ref: '#/components/schemas/AEEntryStatusCode'
        TransactionMutability:
          $ref: '#/components/schemas/AETransactionMutabilityCode'
        BookingDateTime:
          $ref: '#/components/schemas/BookingDateTime'
        ValueDateTime:
          $ref: '#/components/schemas/ValueDateTime'
        TransactionInformation:
          $ref: '#/components/schemas/TransactionInformation'
        Amount:
          $ref: '#/components/schemas/AEActiveOrHistoricCurrencyAndAmount_5'
        ChargeAmount:
          $ref: '#/components/schemas/AEActiveOrHistoricCurrencyAndAmount_6'
        ChargeAmountVat:
          $ref: '#/components/schemas/AEActiveOrHistoricCurrencyAndAmount_8'
        CurrencyExchange:
          $ref: '#/components/schemas/AECurrencyExchange'
        BankTransactionCode:
          $ref: '#/components/schemas/AEBankTransactionCodeStructure'
        ProprietaryBankTransactionCode:
          $ref: '#/components/schemas/ProprietaryBankTransactionCodeStructure1'
        Balance:
          $ref: '#/components/schemas/AETransactionCashBalance'
        MerchantDetails:
          $ref: '#/components/schemas/AEMerchantDetails1'
        CreditorAgent:
          $ref: >-
            #/components/schemas/AEBranchAndFinancialInstitutionIdentification6_1
        CreditorAccount:
          type: array
          items:
            $ref: '#/components/schemas/AECashAccount6_0'
        DebtorAgent:
          $ref: >-
            #/components/schemas/AEBranchAndFinancialInstitutionIdentification6_2
        DebtorAccount:
          $ref: '#/components/schemas/AECashAccount6_1'
        CardInstrument:
          $ref: '#/components/schemas/AETransactionCardInstrument'
        SupplementaryData:
          $ref: '#/components/schemas/AESupplementaryData'
        BillDetails:
          $ref: '#/components/schemas/BillDetails'
        GeoLocation:
          $ref: '#/components/schemas/AEGeoLocation'
        PaymentPurposeCode:
          $ref: '#/components/schemas/AEPaymentPurposeCode'
      additionalProperties: false
    AEAccountId:
      type: object
      description: >-
        Unambiguous identification of the account to which credit and debit
        entries are made. The following fields are optional only for accounts
        that are switched:

          * Data.Currency  
          * Data.AccountType  
          * Data.AccountSubType

        For all other accounts, the fields must be populated by the LFI.
      properties:
        AccountHolderName:
          $ref: '#/components/schemas/AccountHolderName'
        AccountHolderShortName:
          $ref: '#/components/schemas/AccountHolderShortName'
        Status:
          $ref: '#/components/schemas/AEAccountStatusCode'
        StatusUpdateDateTime:
          $ref: '#/components/schemas/StatusUpdateDateTime'
        Currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_0'
        AccountType:
          $ref: '#/components/schemas/AEExternalAccountTypeCode'
        AccountSubType:
          $ref: '#/components/schemas/AEExternalAccountSubTypeCode'
        Description:
          $ref: '#/components/schemas/Description_0'
        Nickname:
          $ref: '#/components/schemas/Nickname'
        OpeningDate:
          $ref: '#/components/schemas/OpeningDate'
        MaturityDate:
          $ref: '#/components/schemas/MaturityDate'
        AccountIdentifiers:
          $ref: '#/components/schemas/AccountIdentifiers'
        Servicer:
          $ref: >-
            #/components/schemas/AEBranchAndFinancialInstitutionIdentification5_0
      additionalProperties: false
    AEAccountArrayId:
      type: object
      description: >-
        Unambiguous identification of the account to which credit and debit
        entries are made. The following fields are optional only for accounts
        that are switched:

          * Data.Currency  
          * Data.AccountType  
          * Data.AccountSubType

        For all other accounts, the fields must be populated by the LFI.
      required:
        - AccountId
      properties:
        AccountId:
          $ref: '#/components/schemas/AccountId'
        AccountHolderName:
          $ref: '#/components/schemas/AccountHolderName'
        AccountHolderShortName:
          $ref: '#/components/schemas/AccountHolderShortName'
        Status:
          $ref: '#/components/schemas/AEAccountStatusCode'
        StatusUpdateDateTime:
          $ref: '#/components/schemas/StatusUpdateDateTime'
        Currency:
          $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_0'
        AccountType:
          $ref: '#/components/schemas/AEExternalAccountTypeCode'
        AccountSubType:
          $ref: '#/components/schemas/AEExternalAccountSubTypeCode'
        Description:
          $ref: '#/components/schemas/Description_0'
        Nickname:
          $ref: '#/components/schemas/Nickname'
        OpeningDate:
          $ref: '#/components/schemas/OpeningDate'
        MaturityDate:
          $ref: '#/components/schemas/MaturityDate'
        AccountIdentifiers:
          $ref: '#/components/schemas/AccountIdentifiers'
        Servicer:
          $ref: >-
            #/components/schemas/AEBranchAndFinancialInstitutionIdentification5_0
      additionalProperties: false
    AEPatchConsentSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEPatchConsent'
          required:
            - message
          additionalProperties: false
    AEPatchConsent:
      description: Patch Account Access Consent
      type: object
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - Status
          properties:
            Status:
              $ref: '#/components/schemas/PatchConsentStatus'
            RevokedBy:
              $ref: '#/components/schemas/AERevokedBy'
          additionalProperties: false
        Subscription:
          $ref: '#/components/schemas/EventNotification'
      additionalProperties: false
    AEReadConsentResponse:
      description: Account Access Consent
      type: object
      required:
        - Data
        - Links
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - ConsentId
            - BaseConsentId
            - CreationDateTime
            - Status
            - StatusUpdateDateTime
            - Permissions
            - ExpirationDateTime
            - OpenFinanceBilling
          properties:
            ConsentId:
              $ref: '#/components/schemas/AEConsentId'
            BaseConsentId:
              $ref: '#/components/schemas/AEBaseConsentId'
            CreationDateTime:
              $ref: '#/components/schemas/CreationDateTime'
            Status:
              $ref: '#/components/schemas/ConsentStatus'
            StatusUpdateDateTime:
              $ref: '#/components/schemas/StatusUpdateDateTime'
            Permissions:
              $ref: '#/components/schemas/AEConsentPermissions'
            ExpirationDateTime:
              description: >-
                Specified date and time the permissions will expire.

                All date-time fields in responses must include the timezone. An
                example is below:

                2017-04-05T10:43:07+00:00
              type: string
              format: date-time
            TransactionFromDateTime:
              description: >-
                Specified start date and time for the transaction query period.

                If this is not populated, the start date will be open ended, and
                data will be returned from the earliest available
                transaction.All dates in the JSON payloads are represented in
                ISO 8601 date-time format. 

                All date-time fields in responses must include the timezone. An
                example is below:

                2017-04-05T10:43:07+00:00
              type: string
              format: date-time
            TransactionToDateTime:
              description: >-
                Specified end date and time for the transaction query period.

                If this is not populated, the end date will be open ended, and
                data will be returned to the latest available transaction.All
                dates in the JSON payloads are represented in ISO 8601 date-time
                format. 

                All date-time fields in responses must include the timezone. An
                example is below:

                2017-04-05T10:43:07+00:00
              type: string
              format: date-time
            AccountType:
              type: array
              items:
                $ref: '#/components/schemas/AEExternalAccountTypeCode'
            AccountSubType:
              type: array
              items:
                $ref: '#/components/schemas/AEExternalAccountSubTypeCode'
            OnBehalfOf:
              $ref: '#/components/schemas/OnBehalfOf'
            OpenFinanceBilling:
                $ref: '#/components/schemas/AEAccountAccessOpenFinanceBilling'
            RevokedBy:
              $ref: '#/components/schemas/AERevokedBy'
          additionalProperties: false
        Subscription:
          $ref: '#/components/schemas/EventNotification'
        Links:
          $ref: '#/components/schemas/LinksSelf'
        Meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    AEConsentsByBaseConsentIdResponse:
      type: array
      items:
        $ref: '#/components/schemas/AEReadConsentResponse'
    AEReadBalance:
      description: List of Balances for an Account
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - AccountId
            - Balance
          properties:
            AccountId:
              $ref: '#/components/schemas/AccountId'
            Balance:
              type: array
              items:
                $ref: '#/components/schemas/AEBalance'
              minItems: 1
          additionalProperties: false
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/MetaTotalPages'
      additionalProperties: false
    AEBalance:
      type: object
      description: Set of elements used to define the balance details.
      required:
        - CreditDebitIndicator
        - Type
        - DateTime
        - Amount
      properties:
        CreditDebitIndicator:
          $ref: '#/components/schemas/AECreditDebitCode_2'
        Type:
          $ref: '#/components/schemas/AEBalanceTypeCode'
        DateTime:
          description: >-
            Indicates the date (and time) that the account balance was
            checked.All dates in the JSON payloads are represented in ISO 8601
            date-time format. All date-time fields in responses must include the
            timezone. An example is below: 2017-04-05T10:43:07+00:00
          type: string
          format: date-time
        Amount:
          type: object
          required:
            - Amount
            - Currency
          description: Amount of money of the cash balance.
          properties:
            Amount:
              $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
            Currency:
              $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
          additionalProperties: false
        CreditLine:
          type: array
          items:
            type: object
            description: Set of elements used to provide details on the credit line.
            required:
              - Included
              - Type
              - Amount
            properties:
              Included:
                description: >-
                  Boolean flag to Indicate whether or not a credit line is
                  included in the balance of the account. Usage: If not present,
                  credit line is not included in the balance amount of the
                  account.
                type: boolean
              Type:
                description: >-
                  Type of credit line provided to the account. Encoded with
                  allowable values of: Available, Credit, Emergency, Pre-Agreed,
                  Temporary. Note: LFIs support different types of credit lines
                  on accounts, so this list is used to support different LFI
                  systmes in UAE.
                type: string
                enum:
                  - Available
                  - Credit
                  - Emergency
                  - Pre-Agreed
                  - Temporary
              Amount:
                type: object
                required:
                  - Amount
                  - Currency
                description: Amount of money of the credit line.
                properties:
                  Amount:
                    $ref: '#/components/schemas/AEActiveCurrencyAndAmount_SimpleType'
                  Currency:
                    $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
                additionalProperties: false
            additionalProperties: false
      additionalProperties: false
    AEReadScheduledPayment:
      description: List of Scheduled Payments for an Account
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - AccountId
            - ScheduledPayment
          properties:
            AccountId:
              $ref: '#/components/schemas/AccountId'
            ScheduledPayment:
              type: array
              items:
                $ref: '#/components/schemas/AEScheduledPayment'
          additionalProperties: false
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/MetaTotalPages'
      additionalProperties: false
    AEScheduledPayment:
      description: Scheduled Payments for a specific AccountId
      type: object
      required:
        - ScheduledPaymentId
        - ScheduledPaymentDateTime
        - ScheduledType
        - InstructedAmount
      properties:
        ScheduledPaymentId:
          $ref: '#/components/schemas/ScheduledPaymentId'
        AccountHolderName:
          $ref: '#/components/schemas/AccountHolderName'
        AccountHolderShortName:
          $ref: '#/components/schemas/AccountHolderShortName'
        ScheduledType:
          $ref: '#/components/schemas/AEExternalScheduleTypeCode'
        ScheduledPaymentDateTime:
          $ref: '#/components/schemas/ScheduledPaymentDateTime'
        CreditorReference:
          $ref: '#/components/schemas/Reference'
        DebtorReference:
          $ref: '#/components/schemas/DebtorReference'
        InstructedAmount:
          $ref: '#/components/schemas/AEActiveOrHistoricCurrencyAndAmount_1'
        CreditorAgent:
          $ref: >-
            #/components/schemas/AEBranchAndFinancialInstitutionIdentification5_1
        CreditorAccount:
          type: array
          items:
            $ref: '#/components/schemas/AECashAccount5_0'
      additionalProperties: false
    TerminalId:
      description: ID of the Terminal if the transaction was initiated from a retail POS
      type: integer
      minLength: 8
      maxLength: 20
    BillDetails:
      description: Bill Details
      type: object
      properties:
        BillerId:
          description: >-
            This should be 'BillerCode' as per SP-SADAD specifications. It is a
            unique biller identifier within SADAD that could be used by the
            end-user to refer to a specific SADAD biller (e.g. STC biller code
            is 001, water services biller code is 015, etc.)
          type: number
        BillNumber:
          description: Unique bill identifier within the account.
          type: string
        BillPaymentType:
          description: >
            Indicates whether the bill could be a One-off payment, Recurring
            payment, Postpaid, Pre-paid, etc. Example values:

            - "Post-Paid"

            - "AdvancePaymentForRoaming"

            - "Recharge"

            - "Renewal"

            - "RoamingDeposit"

            - "One-Off"

            - "RecurringPayment"
          type: string
          x-namespaced-enum:
            - Post-Paid
            - AdvancePaymentForRoaming
            - Recharge
            - Renewal
            - RoamingDeposit
            - One-Off
            - RecurringPayment
      additionalProperties: false
    ConsentStatus:
      description: Specifies the status of consent resource in code form.
      type: string
      enum:
        - Authorized
        - AwaitingAuthorization
        - Rejected
        - Revoked
        - Expired
        - Suspended
    PatchConsentStatus:
      description: >-
        The Revoked status must only be set if the current Consent Status is set
        to either Authorized or AwaitingAuthorization
      type: string
      enum:
        - Revoked
    AERevokedBy:
      description: |
        Denotes the Identifier of the revocation.

        | Identifier| Description|
        |-----------|------------|
        | LFI | Revoked by LFI without User initiation|
        | TPP | Revoked by TPP without User initiation|
        | LFI.InitiatedByUser | Initiated by User via the LFI|
        | TPP.InitiatedByUser | Initiated by User via the TPP|
      type: string
      enum:
        - LFI
        - TPP
        - LFI.InitiatedByUser
        - TPP.InitiatedByUser
    AEIsIslamic:
      type: boolean
      description: |
        A flag to denote if the Product is an Islamic product
      default: false
    AEGeoLocation:
      description: >-
        Estimated latitude and longitude coordinates, in degrees. Contains one
        latitude and one longitude subfield.
      type: object
      required:
        - Latitude
        - Longitude
      properties:
        Latitude:
          description: Latitude in degrees
          type: string
        Longitude:
          description: Longitude in degrees
          type: string
      additionalProperties: false
    AEAccountAccessAuthorizationDetail:
      description: The schema for account access object in the authorization_details
      type: object
      required:
        - type
        - consent
      properties:
        type:
          type: string
          description: The type of the account access object
          enum:
            - urn:openfinanceuae:account-access-consent:v1.01
        consent:
          type: object
          description: Primary data for the resource
          required:
            - ConsentId
            - Permissions
            - OpenFinanceBilling
          properties:
            ConsentId:
              $ref: '#/components/schemas/AEConsentId'
            BaseConsentId:
              $ref: '#/components/schemas/AEBaseConsentId'
            Permissions:
              $ref: '#/components/schemas/AEConsentPermissions'
            ExpirationDateTime:
              description: >-
                Specified date and time the permissions will expire.

                All date-time fields in responses must include the timezone. An
                example is below:

                2017-04-05T10:43:07+00:00
              type: string
              format: date-time
            TransactionFromDateTime:
              description: >-
                Specified start date and time for the transaction query period.

                If this is not populated, the start date will be open ended, and
                data will be returned from the earliest available
                transaction.All dates in the JSON payloads are represented in
                ISO 8601 date-time format. 

                All date-time fields in responses must include the timezone. An
                example is below:

                2017-04-05T10:43:07+00:00
              type: string
              format: date-time
            TransactionToDateTime:
              description: >-
                Specified end date and time for the transaction query period.

                If this is not populated, the end date will be open ended, and
                data will be returned to the latest available transaction.All
                dates in the JSON payloads are represented in ISO 8601 date-time
                format. 

                All date-time fields in responses must include the timezone. An
                example is below:

                2017-04-05T10:43:07+00:00
              type: string
              format: date-time
            AccountType:
              type: array
              items:
                $ref: '#/components/schemas/AEExternalAccountTypeCode'
            AccountSubType:
              type: array
              items:
                $ref: '#/components/schemas/AEExternalAccountSubTypeCode'
            OnBehalfOf:
              $ref: '#/components/schemas/OnBehalfOf'
            OpenFinanceBilling:
              $ref: '#/components/schemas/AEAccountAccessOpenFinanceBilling'
          additionalProperties: false
        Subscription:
          $ref: '#/components/schemas/EventNotification'
      additionalProperties: false
    AEReadConsentSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadConsent'
          required:
            - message
          additionalProperties: false
    AEReadConsent:
      description: List of Standing Orders for an Account
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          type: object
          description: Primary data for the resource
          required:
            - AccountId
            - Consent
          properties:
            AccountId:
              $ref: '#/components/schemas/AccountId'
            Consent:
              type: array
              items:
                type: object
                additionalProperties: false
                oneOf:
                  - $ref: '#/components/schemas/AEAccountAccessAuthorizationDetail'
                discriminator:
                  propertyName: type
          additionalProperties: false
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/MetaTotalPages'
      additionalProperties: false
    AEConsentId:
      description: >
        Unique identification assigned by the TPP to identify the consent
        resource.
      type: string
      minLength: 1
      maxLength: 128
      example: aac-69255d98-ab0e-4758-92a7-cacbf3073efa
    AEBaseConsentId:
      description: >
        The original ConsentId assigned by the TPP.

        It is used by the TPP for updating/renewing parameters associated with
        long-lived consents.

        It must be provided when long-lived consent parameters are
        updated/renewed for a current consent that has not yet finished.
      type: string
      minLength: 1
      maxLength: 128
      example: abc-19877d98-ab0e-4758-92a7-vvffr1234abv
    AEPaymentPurposeCode:
      description: >
        A Category code, related to the type of services or goods that
        corresponds to the underlying purpose of the Payment.

        * The ISO20022 External code sets
      type: string
      minLength: 1
      maxLength: 4
      pattern: ^[A-Z]{4}$
    AEDuration:
      description: |
        The period of time for which the credit line is available.
        Formatted according to ISO 8601 Durations (excludes recurrence syntax)
      type: string
      minLength: 1
      maxLength: 40
      pattern: ^P(?=\d)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?$
    AECharge:
      description: |
        Fees and charges applicable to the account
      type: array
      items:
        type: object
        required:
          - Name
          - ChargeType
          - Amount
        properties:
          Name:
            type: string
            description: |
              Name of the charge
            minLength: 1
            maxLength: 40
          ChargeType:
            type: string
            description: |
              Type of the charge
            minLength: 1
            maxLength: 10
          Amount:
            $ref: '#/components/schemas/AEActiveOrHistoricCurrencyAndAmount_0'
          Frequency:
            $ref: '#/components/schemas/AEDuration'
          Notes:
            type: string
            description: |
              Notes providing more information on the charge.
            minLength: 1
            maxLength: 500
        additionalProperties: false
    AELendingRate:
      description: |
        Lending rates for this account
      type: array
      items:
        type: object
        required:
          - LendingRateType
          - Rate
        properties:
          LendingRateType:
            type: string
            minLength: 1
            maxLength: 10
          Rate:
            $ref: '#/components/schemas/AERate'
          Amount:
            $ref: '#/components/schemas/AEActiveOrHistoricCurrencyAndAmount_0'
          CalculationFrequency:
            $ref: '#/components/schemas/AEDuration'
          ApplicationFrequency:
            $ref: '#/components/schemas/AEDuration'
          RepaymentType:
            type: string
            description: |
              Options in place for repayments
            minLength: 1
            maxLength: 40
          Notes:
            type: string
            description: |
              Notes providing more information on the rate.
            minLength: 1
            maxLength: 500
        additionalProperties: false
    AEDepositRate:
      description: |
        Deposit rates for this account
      type: array
      items:
        type: object
        required:
          - DepositRateType
          - Rate
        properties:
          DepositRateType:
            type: string
            minLength: 1
            maxLength: 10
          Rate:
            $ref: '#/components/schemas/AERate'
          CalculationFrequency:
            $ref: '#/components/schemas/AEDuration'
          ApplicationFrequency:
            $ref: '#/components/schemas/AEDuration'
          RepaymentType:
            type: string
            description: |
              Options in place for repayments
            minLength: 1
            maxLength: 40
          Notes:
            type: string
            description: |
              Notes providing more information on the rate.
            minLength: 1
            maxLength: 500
        additionalProperties: false
    AERate:
      description: >
        A string representing a percentage (e.g. an interest rate). 

        A rate of 100% would be represented by the value 1.0 and a rate of -100%
        by -1.0

        - At least 1 and up to a total of 16 significant digits before decimal
        point

        - Up to 16 digits following the decimal point

        - No formatting, eg thousand separating commas
      type: string
      minLength: 1
      maxLength: 18
    AEErrorSignedResponse:
      type: object
      required:
        - iss
        - exp
        - nbf
        - message
      properties:
        iss:
          type: string
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
        exp:
          type: number
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
        nbf:
          type: number
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
        aud:
          type: array
          items:
            type: string
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
        iat:
          type: number
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
        message:
          $ref: '#/components/schemas/AEErrorResponse'
      description: Signed error response payload
      additionalProperties: false
    AEExternalAccountRoleCode:
      type: string
      enum:
        - Administrator
        - Beneficiary
        - CustodianForMinor
        - Granter
        - LegalGuardian
        - OtherParty
        - PowerOfAttorney
        - Principal
        - Protector
        - RegisteredShareholderName
        - SecondaryOwner
        - SeniorManagingOfficial
        - Settlor
        - SuccessorOnDeath
      description: Specifies the Party's role with respect to the related account.
    AEExternalPartyTypeCode:
      type: string
      enum:
        - Delegate
        - Joint
        - Sole
      description: >
        Specifies the party type.

        Encoded with allowable values: 

        "Delegate" - Used for business accounts when user has delegated
        authority to access the account , 

        "Joint" - Party is a joint owner of the account 

        "Sole" - Party is the sole owner of the account
    AEPartyCalendarType:
      type: string
      enum:
        - IslamicCalendar
        - GregorianCalendar
      description: >
        The type of calendar used for the date of issuance and date of expiry in
        the document evidence

        Allowable values:

        "Islamic Calendar"

        "Gregorian Calendar"

        Both calendars must follow YYYY-MM-DD
    AEPartyIdentityAddressClaim:
      type: object
      required:
        - Formatted
        - StreetAddress
        - Locality
        - Region
        - PostalCode
        - Country
      properties:
        Formatted:
          type: string
          description: |
            The address number and street claim that has been verified.
        StreetAddress:
          type: string
          description: |
            The address street claim that has been verified.
        Locality:
          type: string
          description: >
            The address locality (village, town, city etc) claim that has been
            verified.
        Region:
          type: string
          description: |
            The address region claim that has been verified.
        PostalCode:
          $ref: '#/components/schemas/PostalCode'
        Country:
          $ref: '#/components/schemas/CountryCode'
      description: >
        Address object as per OpenID Connect Core 1.0 Address Claim

        [https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim](https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim)
      additionalProperties: false
    AEPartyIdentityAssurance2:
      type: object
      required:
        - PartyId
        - PartyType
        - AccountRole
        - VerifiedClaims
      properties:
        PartyId:
          type: string
          minLength: 1
          maxLength: 40
          description: >-
            A unique and immutable identifier used to identify the customer
            resource. This identifier has no meaning to the account owner.
        PartyNumber:
          type: string
          minLength: 1
          maxLength: 35
          description: Number assigned by an agent to identify its customer.
        PartyType:
          $ref: '#/components/schemas/AEExternalPartyTypeCode'
        AccountRole:
          $ref: '#/components/schemas/AEExternalAccountRoleCode'
        VerifiedClaims:
          type: array
          items:
            $ref: '#/components/schemas/VerifiedClaim'
          description: >-
            Container object containing entries for the trust framework and the
            evidence used to verify the claims
      description: >
        Party Identity Assurance (Response) Schema 

        Based on the [OpenID Connect for Identity Assurance 1.0
        Specification](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html)
      additionalProperties: false
    AEPartyIdentityAssurance4:
      type: object
      required:
        - PartyId
        - VerifiedClaims
      properties:
        PartyId:
          type: string
          minLength: 1
          maxLength: 40
          description: >-
            A unique and immutable identifier used to identify the customer
            resource. This identifier has no meaning to the account owner.
        PartyNumber:
          type: string
          minLength: 1
          maxLength: 35
          description: Number assigned by an agent to identify its customer.
        VerifiedClaims:
          type: array
          items:
            $ref: '#/components/schemas/VerifiedClaim'
          description: >-
            Container object containing entries for the trust framework and the
            evidence used to verify the claims
      description: >
        Party Identity Assurance (Response) Schema 

        Based on the [OpenID Connect for Identity Assurance 1.0
        Specification](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html)
      additionalProperties: false
    AEPartyIdentityCheckDetail:
      type: object
      properties:
        CheckMethod:
          type: string
          description: >
            Identifes the method used by PASP for checking the evidence for
            verification

            String representing the check done, this includes processes such as
            checking the authenticity of the document, or verifying the user's
            biometric against an identity document.
        Organization:
          type: string
          description: >
            String denoting the legal entity that performed the check. This
            SHOULD be included if the OP did not perform the check itself
        Txn:
          type: string
          description: >
            Identifier referring to the identity verification transaction. The
            OP MUST ensure that this is present when EvidenceRef element is
            used. The OP MUST ensure that the transaction identifier can be
            resolved into transaction details during an audit
        Time:
          $ref: '#/components/schemas/ISODateTime'
      description: >
        Identifes the method used by PASP for checking the evidence for
        verification.

        Representing the checks done in relation to the evidence

        OpenID Connect for Identity Assurance 1.0:
        [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-element](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-element)                
      additionalProperties: false
    AEPartyIdentityEvidenceAttachment:
      type: object
      required:
        - Desc
        - ContentType
        - Content
        - Txn
      properties:
        Desc:
          type: string
          description: >
            Description of the document. This can be the filename or just an
            explanation of the content.
        ContentType:
          type: string
          description: |
            Content (MIME) type of the document            
        Content:
          type: string
          description: |
            Base64 encoded representation of the document content
        Txn:
          type: string
          description: |
            Identifier referring to the transaction
      additionalProperties: false
    AEPartyIdentityEvidenceAttachments:
      type: object
      required:
        - AEPartyIdentityEvidenceAttachments
      properties:
        AEPartyIdentityEvidenceAttachments:
          type: array
          items:
            $ref: '#/components/schemas/AEPartyIdentityEvidenceAttachment'
          description: >
            Attachments

            [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-attachments](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-attachments)
      additionalProperties: false
    AEPartyIdentityEvidenceTypeDocument:
      type: object
      properties:
        Type:
          allOf:
            - $ref: '#/components/schemas/DocumentEvidenceType'
          description: The type of evidence allowed for providing verification.
        CheckDetails:
          type: array
          items:
            $ref: '#/components/schemas/AEPartyIdentityCheckDetail'
        Verifier:
          $ref: '#/components/schemas/DocumentEvidenceVerifier'
        Time:
          $ref: '#/components/schemas/ISODateTime'
        DocumentDetails:
          $ref: '#/components/schemas/DocumentEvidenceDetails'
        Attachments:
          $ref: '#/components/schemas/AEPartyIdentityEvidenceAttachments'
      description: >
        Document Evidence

        [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-type-document](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-type-document)
      additionalProperties: false
    AEPartyIdentityEvidenceTypeElectronicRecord:
      type: object
      properties:
        Type:
          allOf:
            - $ref: '#/components/schemas/ElectronicRecordEvidenceType'
          description: The type of evidence allowed for providing verification.
        CheckDetails:
          type: array
          items:
            $ref: '#/components/schemas/AEPartyIdentityCheckDetail'
        Time:
          $ref: '#/components/schemas/ISODateTime'
        Record:
          $ref: '#/components/schemas/ElectronicRecordProperties'
        Attachments:
          $ref: '#/components/schemas/AEPartyIdentityEvidenceAttachments'
      description: >
        Electronic Record Evidence

        [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-type-electronic_re](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-type-electronic_re)
      additionalProperties: false
    AEReadParty2:
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          $ref: '#/components/schemas/AEReadParty2Data'
        Links:
          $ref: '#/components/schemas/LinksResource'
        Meta:
          $ref: '#/components/schemas/MetaTotalPages'
      description: List of Parties for an Account
      additionalProperties: false
    AEReadParty2Data:
      type: object
      required:
        - AccountId
        - Party
      properties:
        AccountId:
          $ref: '#/components/schemas/AccountId'
        Party:
          type: array
          items:
            $ref: '#/components/schemas/AEPartyIdentityAssurance2'
      description: Primary data for the resource
      additionalProperties: false
    AEReadParty2Signed:
      type: object
      required:
        - iss
        - exp
        - nbf
        - message
      properties:
        iss:
          type: string
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
        exp:
          type: number
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
        nbf:
          type: number
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
        aud:
          type: array
          items:
            type: string
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
        iat:
          type: number
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
        message:
          $ref: '#/components/schemas/AEReadParty2'
      additionalProperties: false
    AEReadParty4:
      type: object
      required:
        - Data
        - Links
        - Meta
      properties:
        Data:
          $ref: '#/components/schemas/AEReadParty4Data'
        Links:
          $ref: '#/components/schemas/LinksResource'
        Meta:
          $ref: '#/components/schemas/MetaTotalPages'
      description: Current PSUUser Information
      additionalProperties: false
    AEReadParty4Data:
      type: object
      required:
        - Party
      properties:
        Party:
          $ref: '#/components/schemas/AEPartyIdentityAssurance4'
      additionalProperties: false
    AEReadParty4Signed:
      type: object
      required:
        - iss
        - exp
        - nbf
        - message
      properties:
        iss:
          type: string
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
        exp:
          type: number
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
        nbf:
          type: number
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
        aud:
          type: array
          items:
            type: string
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
        iat:
          type: number
          description: >-
            [https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
        message:
          $ref: '#/components/schemas/AEReadParty4'
      additionalProperties: false
    AssuranceDetails:
      type: object
      required:
        - AssuranceType
        - AssuranceClassification
        - EvidenceRef
      properties:
        AssuranceType:
          type: string
          description: >-
            String denoting which part of the assurance_process the evidence
            fulfils
        AssuranceClassification:
          type: string
          description: >-
            String reflecting how the evidence has been classified or measured
            as required by the TrustFramework
        EvidenceRef:
          type: array
          items:
            $ref: '#/components/schemas/EvidenceRef'
      description: Denoting the details about how the evidence complies with the policy
      additionalProperties: false
    AssuranceProcess:
      type: object
      required:
        - Policy
        - Procedure
        - AssuranceDetails
      properties:
        Policy:
          type: string
          description: Representing the standard or policy that was followed.
        Procedure:
          type: string
          description: Representing a specific procedure from the policy that was followed.
        AssuranceDetails:
          type: array
          items:
            $ref: '#/components/schemas/AssuranceDetails'
      description: >
        Determines the assurance process that was followed. This reflects how
        the evidence meets the requirements of the TrustFramework and
        AssuranceLevel. The factual record of the evidence and the procedures
        followed are recorded in the evidence element, this element is used to
        cross reference the evidence to the AssuranceLevel followed

        OpenID Connect for Identity Assurance 1.0:
        [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element)                
      additionalProperties: false
    Claims:
      type: object
      properties:
        GivenName:
          type: string
          description: >-
            Given name of the Party. Given name (also called forename) is used
            to differentiate from the surname or family name.
        Surname:
          type: string
          description: Surname of the Party
        MiddleName:
          type: string
          description: Middle name of the Party
        Nickname:
          type: string
          description: Nickname of the Party
        EmiratesId:
          type: string
          description: Emirates ID number of the Party
        EmiratesIdExpiryDate:
          type: string
          format: date
          description: Emirates ID card expiry date
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the Party
        SourceOfIncome:
          type: string
        Salary:
          type: number
        Nationality:
          type: string
        ResidentialAddress:
          $ref: '#/components/schemas/AEPartyIdentityAddressClaim'
        MobileNumber:
          type: string
        Email:
          type: string
        MaritalStatus:
          type: string
        Salutation:
          type: string
        Language:
          type: string
        EmployerName:
          type: string
        EmploymentSinceDate:
          type: string
          format: date
        PowerofAttorney:
          type: boolean
        SalaryTransfer:
          type: boolean
        Profession:
          type: string
        UpdatedAt:
          type: string
          format: time
      description: >
        Standard Claims: 

        [https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims)

        IdentityAssurance Claims:

        [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-claims](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-claims)
      additionalProperties: false
    CountryCode:
      type: object
      required:
        - CountryCode
      properties:
        CountryCode:
          type: string
          pattern: ^[A-Z]{2,2}$
          description: Nation with its own government, occupying a particular territory.
      additionalProperties: false
    DocumentEvidenceDetails:
      type: object
      properties:
        Type:
          $ref: '#/components/schemas/DocumentEvidenceDetailsType'
        DocumentNumber:
          type: string
          description: The unique id number in the evidence used for verification checking
        PersonalNumber:
          type: string
          description: >
            An identifier that is assigned to the End-User and is not limited to
            being used in one document, for example a national identification
            number, personal identity number, citizen number, social security
            number, driver number, account number, customer number, licensee
            number, etc
        SerialNumber:
          type: string
          description: >
            An identifier/number that identifies the document irrespective of
            any personalization information (this usually only applies to
            physical artifacts and is present before personalization).
        CalendarType:
          $ref: '#/components/schemas/AEPartyCalendarType'
        DateOfIssuance:
          $ref: '#/components/schemas/ISODateTime'
        DateOfExpiry:
          $ref: '#/components/schemas/ISODateTime'
        Issuer:
          $ref: '#/components/schemas/DocumentEvidenceDetailsIssuer'
      description: 'Representing the document used to perform the identity verification. '
      additionalProperties: false
    DocumentEvidenceDetailsIssuer:
      type: object
      required:
        - Name
        - Address
        - CountryCode
        - Jurisdiction
      properties:
        Name:
          type: string
          description: |
            Designation of the issuer of the document.
        Address:
          $ref: '#/components/schemas/AEPartyIdentityAddressClaim'
        CountryCode:
          allOf:
            - $ref: '#/components/schemas/CountryCode'
          description: >
            String denoting the country or supranational organization that
            issued the document as ISO 3166
        Jurisdiction:
          type: string
          description: >
            String containing the name of the
            region(s)/state(s)/province(s)/municipality(ies) that issuer has
            jurisdiction over (if this information is not common knowledge or
            derivable from the address)
      description: Containing information about the issuer of this document.
      additionalProperties: false
    DocumentEvidenceDetailsType:
      type: string
      enum:
        - passport
        - driving_permit
        - idcard
        - residence_permit
      description: >
        The type of document used for evidence checking

        [https://bitbucket.org/openid/ekyc-ida/wiki/identifiers](https://bitbucket.org/openid/ekyc-ida/wiki/identifiers)"
    DocumentEvidenceType:
      type: string
      enum:
        - document
    DocumentEvidenceVerifier:
      type: object
      required:
        - Organization
      properties:
        Organization:
          type: string
          description: >-
            String denoting the organization which performed the verification on
            behalf of the OP.
        Txn:
          type: string
          description: >-
            Identifier referring to the identity verification transaction. The
            OP MUST ensure that the transaction identifier can be resolved into
            transaction details during an audit.
      description: >-
        Denoting the legal entity that performed the identity verification. This
        object SHOULD be included if the OP did not perform the identity
        verification itself. This object is retained for backward compatibility,
        implementers are recommended to use CheckDetails & Organization instead
      additionalProperties: false
    ElectronicRecordEvidenceType:
      type: string
      enum:
        - electronic_record
    ElectronicRecordProperties:
      type: object
      required:
        - Type
        - PersonalNumber
        - CalendarType
        - CreatedAt
        - DateOfExpiry
        - Source
      properties:
        Type:
          $ref: '#/components/schemas/ElectronicRecordType'
        PersonalNumber:
          type: string
          description: >
            String representing an identifier that is assigned to the PSU1User and
            is not limited to being used in one record, for example a national
            identification number, personal identity number, citizen number,
            social security number, driver number, account number, customer
            number, licensee number, etc.
        CalendarType:
          $ref: '#/components/schemas/AEPartyCalendarType'
        CreatedAt:
          $ref: '#/components/schemas/ISODateTime'
        DateOfExpiry:
          $ref: '#/components/schemas/ISODateTime'
        Source:
          $ref: '#/components/schemas/ElectronicRecordSourceProperties'
      description: |
        Representing the record used to perform the identity verification.
      additionalProperties: false
    ElectronicRecordSourceProperties:
      type: object
      required:
        - Name
        - Address
        - CountryCode
        - Jurisdiction
      properties:
        Name:
          type: string
          description: |
            Designation of the source of the electronic_record
        Address:
          $ref: '#/components/schemas/AEPartyIdentityAddressClaim'
        CountryCode:
          allOf:
            - $ref: '#/components/schemas/CountryCode'
          description: >
            String denoting the country or supranational organization that
            issued the evidence as ISO 3166
        Jurisdiction:
          type: string
          description: >
            String containing the name of the region(s) / state(s) / province(s)
            / municipality(ies) that source has jurisdiction over (if it's not
            common knowledge or derivable from the address)
      description: |
        Information about the source of this record
      additionalProperties: false
    ElectronicRecordType:
      type: string
      enum:
        - bank_account
        - mortgage_account
        - loan_account
      description: >
        String denoting the type of electronic record
    EvidenceMetadata:
      type: object
      required:
        - EvidenceClassification
      properties:
        EvidenceClassification:
          type: string
      description: >-
        Object indicating any meta data about the evidence that is required by
        the AssuranceProcess in order to demonstrate compliance with the
        TrustFramework. It has the following sub-elements
      additionalProperties: false
    EvidenceRef:
      type: object
      required:
        - Txn
        - EvidenceMetadata
      properties:
        Txn:
          type: string
          description: Identifier referring to the txn used in the CheckDetails.
        EvidenceMetadata:
          $ref: '#/components/schemas/EvidenceMetadata'
      description: Evidence being referred to
      additionalProperties: false
    EvidenceType:
      anyOf:
        - $ref: '#/components/schemas/AEPartyIdentityEvidenceTypeDocument'
        - $ref: '#/components/schemas/AEPartyIdentityEvidenceTypeElectronicRecord'
    LinksResource:
      type: object
      required:
        - Self
      properties:
        Self:
          $ref: '#/components/schemas/Self'
        First:
          $ref: '#/components/schemas/First'
        Prev:
          $ref: '#/components/schemas/Prev'
        Next:
          $ref: '#/components/schemas/Next'
        Last:
          $ref: '#/components/schemas/Last'
      description: Links relevant to the resource
      additionalProperties: false
    PostalCode:
      type: object
      required:
        - PostalCode
      properties:
        PostalCode:
          type: string
          minLength: 5
          maxLength: 5
          description: >-
            Identifier consisting of a group of letters and/or numbers that is
            added to a postal address to assist the sorting of mail.
      additionalProperties: false
    TrustFrameworkCode:
      type: string
      enum:
        - Undefined
      description: >-
        Identifies the trust framework used for verification. This consists of a
        set of rules and standards and sets out requirements so that
        organisations know what ‘good’ identity verification looks like.

        Trust Frameworks:
        [https://bitbucket.org/openid/ekyc-ida/wiki/identifiers](https://bitbucket.org/openid/ekyc-ida/wiki/identifiers)
    VerifiedClaim:
      type: object
      required:
        - Verification
        - Claims
      properties:
        Verification:
          $ref: '#/components/schemas/VerifiedClaimVerification'
        Claims:
          allOf:
            - $ref: '#/components/schemas/Claims'
          description: >
            Standard Claims: 

            [https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims)

            IdentityAssurance Claims:

            [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-claims](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-claims)
      description: >
        Verified Claims

        Container object containing entries for the trust framework and the
        evidence used to verify the claims

        [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-representing-verified-claim](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-representing-verified-claim)
      additionalProperties: false
    VerifiedClaimVerification:
      type: object
      required:
        - TrustFramework
      properties:
        TrustFramework:
          $ref: '#/components/schemas/TrustFrameworkCode'
        AssuranceLevel:
          type: string
          description: >
            Determines the assurance level associated with the PSU1User in the
            respective VerifiedClaims. The value range depends on the respective
            TrustFramework value.

            Assurance Level:
            [https://bitbucket.org/openid/ekyc-ida/wiki/identifiers](https://bitbucket.org/openid/ekyc-ida/wiki/identifiers)
        AssuranceProcess:
          $ref: '#/components/schemas/AssuranceProcess'
        Time:
          allOf:
            - $ref: '#/components/schemas/ISODateTime'
          description: >
            Representing the date and time when the identity verification
            process took place. All dates in the JSON payloads are represented
            in ISO 8601 date-time format. All date-time fields in responses must
            include the timezone. An example is below: 2017-04-05T10:43:07+00:00
        VerificationProcess:
          type: string
          description: >
            Unique reference to the identity verification process as performed
            by the OP. Used for identifying and retrieving details in case of
            disputes or audits. Presence of this element might be required for
            certain trust frameworks.
        Evidence:
          allOf:
            - $ref: '#/components/schemas/EvidenceType'
          description: >
            The type of evidence allowed for providing verification.

            OpenID Connect for Identity Assurance 1.0:
            [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-element](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-element)                
      description: >
        Verification

        [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element)
      additionalProperties: false
    AEAccountAccessOpenFinanceBilling:
      type: object
      required:
        - UserType
        - Purpose
      properties:
        IsLargeCorporate:
          type: "boolean"
          description: Customer has more than 100 million AED turnover
        UserType:
          description: Type of Customer
          type: string
          enum:
            - Retail
            - SME
            - Corporate
        Purpose:
          description: Purpose of data sharing request
          type: string
          enum:
            - AccountAggregation
            - RiskAssessment
            - TaxFiling
            - Onboarding
            - Verification
            - QuoteComparison
            - BudgetingAnalysis
            - FinancialAdvice
            - AuditReconciliation
      description: Billing parameters specified by the TPP
      additionalProperties: false
  parameters:
    Authorization:
      name: authorization
      in: header
      required: true
      description: An authorization Token as per https://tools.ietf.org/html/rfc6750
      schema:
        type: string
    x-customer-user-agent:
      in: header
      name: x-customer-user-agent
      description: Indicates the user-agent that the User is using.
      required: false
      schema:
        type: string
    x-fapi-customer-ip-address:
      in: header
      name: x-fapi-customer-ip-address
      required: false
      description: The User's IP address if the User is currently logged in with the TPP.
      schema:
        type: string
    x-fapi-auth-date:
      in: header
      name: x-fapi-auth-date
      required: false
      description: >-
        The time when the User last logged in with the TPP. 

        All dates in the HTTP headers are represented as RFC 7231 Full Dates. An
        example is below: 

        Sun, 10 Sep 2017 19:43:31 UTC
      schema:
        type: string
        pattern: >-
          ^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2}
          (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4}
          \d{2}:\d{2}:\d{2} (GMT|UTC)$
    x-fapi-interaction-id:
      in: header
      name: x-fapi-interaction-id
      required: false
      description: An RFC4122 UID used as a correlation id.
      schema:
        type: string
    ConsentId:
      name: ConsentId
      in: path
      description: ConsentId
      required: true
      schema:
        type: string
    AccountId:
      name: AccountId
      in: path
      description: AccountId
      required: true
      schema:
        type: string
    FromBookingDateTimeParam:
      in: query
      name: fromBookingDateTime
      description: >-
        The UTC ISO 8601 Date Time to filter transactions FROM

        NB Time component is optional - set to 00:00:00 for just Date.

        If the Date Time contains a timezone, the LFI must ignore the timezone
        component.
      schema:
        type: string
        format: date-time
    ToBookingDateTimeParam:
      in: query
      name: toBookingDateTime
      description: >-
        The UTC ISO 8601 Date Time to filter transactions TO

        NB Time component is optional - set to 00:00:00 for just Date.

        If the Date Time contains a timezone, the LFI must ignore the timezone
        component.
      schema:
        type: string
        format: date-time
    baseConsentId:
      in: query
      name: baseConsentId
      required: true
      description: |
        A specific baseConsentId. For example:
        ```
        baseConsentId=abc-19877d98-ab0e-4758-92a7-vvffr1234abv 
        ```
      schema:
        type: string
      allowEmptyValue: false
      example: abc-19877d98-ab0e-4758-92a7-vvffr1234abv
  securitySchemes:
    TPPOAuth2Security:
      type: oauth2
      description: >-
        TPP confidential client authorization with the LFI to stage a consent.
        **Please refer to [OpenID FAPI Security Profile 1.0 -Part 2
        Advanced](https://openid.net/specs/openid-financial-api-part-2-1_0.html#authorization-server)
        - 5.2.2 point 14 - shall authenticate the confidential client using one
        of the following methods private_key_jwt and [OpenID Connect Core
        1.0](https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication)
        9. Client Authentication private_key_jwt**
      flows:
        clientCredentials:
          tokenUrl: https://authserver.example/token
          scopes:
            openid: Activates OpenID Connect Support
            accounts: Ability to read Accounts Information
    UserOAuth2Security:
      type: oauth2
      description: >-
        [OAuth2 PAR flow](https://datatracker.ietf.org/doc/html/rfc9126), it is
        required when the User needs to perform SCA with the LFI when a TPP
        wants to access an LFI resource owned by the User. **Please refer to
        [OpenID FAPI Security Profile 1.0 -Part 2
        Advanced](https://openid.net/specs/openid-financial-api-part-2-1_0.html#authorization-server)
        - 5.2.2 point 14 - shall authenticate the confidential client using one
        of the following methods private_key_jwt and [OpenID Connect Core
        1.0](https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication)
        9. Client Authentication private_key_jwt**
      flows:
        authorizationCode:
          authorizationUrl: https://authserver.example/authorization
          tokenUrl: https://authserver.example/token
          scopes:
            openid: Activates OpenID Connect Support
            accounts: >-
              Ability to read Accounts Information. This is a parameterized
              scope with the ConsentId
    LFIWebhookSecurity:
      type: http
      description: >-
        The LFI generates a Self Signed JWT Authorization Token for Client
        Authentication with the TPP. **Please refer to Self-Signed JWT
        Authorization Token Specification in the UAE Standard API User Guide**
      scheme: bearer
      bearerFormat: JWT

...