> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openfinance-hackathon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Transactions

> **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.




## OpenAPI

````yaml open-finance-api/yaml/uae-account-information-openapi.yaml get /accounts/{AccountId}/transactions
openapi: 3.0.0
info:
  title: UAE Account Information API
  description: '## UAE Open Finance Account Information API Specification'
  version: v1.2
servers:
  - url: /open-finance/account-information/v1.2
security: []
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:
  /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
components:
  parameters:
    Authorization:
      name: authorization
      in: header
      required: true
      description: An authorization Token as per https://tools.ietf.org/html/rfc6750
      schema:
        type: string
    AccountId:
      name: AccountId
      in: path
      description: AccountId
      required: true
      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-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-interaction-id:
      in: header
      name: x-fapi-interaction-id
      required: false
      description: An RFC4122 UID used as a correlation id.
      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
    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
  responses:
    200AccountsAccountIdTransactionsRead:
      description: Transactions Read
      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/AEReadTransaction'
        application/json:
          schema:
            $ref: '#/components/schemas/AEReadTransaction'
        application/jwt:
          schema:
            $ref: '#/components/schemas/AEReadTransactionSigned'
    400Error:
      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/AEErrorResponseSigned'
    401Error:
      description: Unauthorized
      headers:
        x-fapi-interaction-id:
          required: true
          description: An RFC4122 UID used as a correlation id.
          schema:
            type: string
    403Error:
      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/AEErrorResponseSigned'
    405Error:
      description: Method Not Allowed
      headers:
        x-fapi-interaction-id:
          required: true
          description: An RFC4122 UID used as a correlation id.
          schema:
            type: string
    406Error:
      description: Not Acceptable
      headers:
        x-fapi-interaction-id:
          required: true
          description: An RFC4122 UID used as a correlation id.
          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:
          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/AEErrorResponseSigned'
  schemas:
    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
    AEReadTransactionSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEReadTransaction'
          required:
            - message
          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
    AEErrorResponseSigned:
      allOf:
        - $ref: '#/components/schemas/Jwt'
        - type: object
          properties:
            message:
              $ref: '#/components/schemas/AEErrorResponse'
          required:
            - message
          additionalProperties: false
    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
    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
    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
    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
    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
    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
    TransactionId:
      description: >-
        Unique identifier for the transaction within an servicing institution.
        This identifier is both unique and immutable.
      type: string
      minLength: 1
      maxLength: 210
    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
    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)?$
    StatementReference:
      description: >-
        Unique reference for the statement. This reference may be optionally
        populated if available.
      type: string
      minLength: 1
      maxLength: 35
    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
    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
    TerminalId:
      description: ID of the Terminal if the transaction was initiated from a retail POS
      type: integer
      minLength: 8
      maxLength: 20
    Flags:
      description: The flag of a transaction
      type: string
      enum:
        - Cashback
        - Payroll
        - DirectDebit
        - StandingOrder
        - Loan
        - Dividend
    PaymentMode:
      description: The mode of payment
      type: string
      enum:
        - Online
        - Offline
        - Batch
    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
    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_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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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.
    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
    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
    AEPaymentPurposeCode:
      description: >-
        A category code that relates to the type of services or goods that
        corresponds to the underlying purpose of the payment. The code must
        conform to the published Aani payment purpose code list.
      type: string
      minLength: 1
      maxLength: 3
      pattern: ^[A-Z]{3}$
    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
    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
    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}$
    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
    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
    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
    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
    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
    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
    AEExternalAccountIdentificationCode:
      description: >-
        Name of the identification scheme for the account. Encoded with
        allowable values published in an external list.
      type: string
      enum:
        - IBAN
        - AccountNumber
    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
    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
    AEAddressTypeCode:
      description: Postal Address type specifies the the nature of the postal address.
      type: string
      enum:
        - Business
        - Correspondence
        - DeliveryTo
        - MailTo
        - POBox
        - Postal
        - Residential
        - Statement
    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
    AEUnitNumber:
      description: This is the unit number of the business premises or dwelling
      type: number
      example: 10
    StreetName:
      description: Name of a street or thoroughfare.
      type: string
      minLength: 1
      maxLength: 70
    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
    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
    City:
      description: Identifies the City of a Country
      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}$
  securitySchemes:
    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

````