> ## Documentation Index
> Fetch the complete documentation index at: https://tahsil.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Banka hareketlerini listele

> Provider senkronizasyonuyla oluşan hareketleri tenant kapsamında döndürür. Hareketler değiştirilemez; manuel iş bağlama işlemleri assignment endpointlerinden yapılır. Referans filtreleri üçlü olarak birlikte gönderilmelidir.



## OpenAPI

````yaml /openapi/openapi.yaml get /banks/transactions
openapi: 3.1.0
info:
  title: Tahsil API
  version: 1.0.0
  description: >-
    Tahsil banka bağlantıları, provider senkronizasyonu, değiştirilemez
    hareketler, zamanlamalar ve hareket otomasyonu için tenant-scoped public API
    sözleşmesi.
servers:
  - url: https://api.tahsil.dev
    description: Production
security:
  - apiKeyAuth: []
    apiSecretAuth: []
tags:
  - name: Sistem - Sağlık
    description: Servis canlılığı ve bağımlılık hazır olma kontrolleri.
  - name: Banka - Bağlantılar
    description: Banka bağlantısı, credential, setup, sync, health ve kullanım işlemleri.
  - name: Banka - Hareketler
    description: >-
      Provider senkronizasyonuyla oluşan değiştirilemez banka hareketleri ve CSV
      dışa aktarımı.
  - name: Banka - Otomasyon
    description: Hareket atamaları, kurallar, preview ve backfill çalışmaları.
  - name: Banka - Zamanlamalar
    description: Banka sorgularının zamanlama ve çalışma durumu yönetimi.
  - name: Banka - Analitik
    description: Tenant kapsamlı dashboard sorgu kataloğu ve analitik sonuçları.
  - name: Denetim - Connector Logları
    description: Maskelenmiş banka connector istek ve yanıt kayıtları.
paths:
  /banks/transactions:
    get:
      tags:
        - Banka - Hareketler
      summary: Banka hareketlerini listele
      description: >-
        Provider senkronizasyonuyla oluşan hareketleri tenant kapsamında
        döndürür. Hareketler değiştirilemez; manuel iş bağlama işlemleri
        assignment endpointlerinden yapılır. Referans filtreleri üçlü olarak
        birlikte gönderilmelidir.
      operationId: getBanksTransactions
      parameters:
        - $ref: '#/components/parameters/XCompanyId'
        - $ref: '#/components/parameters/XCompanyIds'
        - name: accountId
          in: query
          description: Banka bağlantısı kimliği.
          schema:
            type: string
        - name: subAccountKey
          in: query
          description: Provider-owned alt hesap kimliği.
          schema:
            type: string
            maxLength: 128
        - name: bankCode
          in: query
          description: Tek banka kodu veya virgülle ayrılmış banka kodları.
          schema:
            type: string
            maxLength: 500
        - name: currency
          in: query
          description: Tek para birimi veya virgülle ayrılmış para birimleri.
          schema:
            type: string
            maxLength: 100
        - name: incoming
          in: query
          description: true gelen, false giden hareketleri seçer.
          schema:
            type: boolean
        - name: status
          in: query
          description: Hareketin aktiflik durumu.
          schema:
            type: boolean
        - name: idNo
          in: query
          description: Provider hareket numarası.
          schema:
            type: string
            maxLength: 100
        - name: iban
          in: query
          description: IBAN ile tam eşleşme.
          schema:
            type: string
            maxLength: 100
        - name: minAmount
          in: query
          description: Dahil en düşük tutar; maxAmount değerini aşamaz.
          schema:
            type: number
        - name: maxAmount
          in: query
          description: Dahil en yüksek tutar.
          schema:
            type: number
        - name: from
          in: query
          description: Dahil başlangıç zamanı; to değerinden sonra olamaz.
          schema:
            type: string
            format: date-time
        - name: to
          in: query
          description: Dahil bitiş zamanı.
          schema:
            type: string
            format: date-time
        - name: dateField
          in: query
          description: Tarih aralığının uygulanacağı alan.
          schema:
            type: string
            enum:
              - transactionDate
              - fetchedAt
            default: transactionDate
        - name: q
          in: query
          description: >-
            Açıklama, ad soyad ve providerStamp alanlarında güvenli metin
            araması.
          schema:
            type: string
            maxLength: 100
        - name: referenceSource
          in: query
          description: >-
            Referans üçlüsünün kaynağı; diğer iki referans alanıyla birlikte
            zorunludur.
          schema:
            type: string
            maxLength: 64
        - name: referenceType
          in: query
          description: Referans varlık türü.
          schema:
            type: string
            maxLength: 64
        - name: referenceId
          in: query
          description: Harici referans kimliği.
          schema:
            type: string
            maxLength: 256
        - name: tag
          in: query
          description: Normalize edilmiş atama etiketi.
          schema:
            type: string
            maxLength: 50
        - name: automationStatus
          in: query
          description: Hareket otomasyonu çalışma durumu.
          schema:
            type: string
            enum:
              - legacy
              - pending
              - processing
              - retry
              - completed
              - dead
        - name: sortBy
          in: query
          description: Sıralama alanı.
          schema:
            type: string
            enum:
              - transactionDate
              - fetchedAt
              - amount
              - balance
            default: transactionDate
        - name: direction
          in: query
          description: Sıralama yönü.
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
        - name: includeAssignments
          in: query
          description: true ise atama detaylarını hareketlere ekler.
          schema:
            type: boolean
            default: false
        - name: pagination
          in: query
          description: Offset veya cursor sayfalama modu.
          schema:
            type: string
            enum:
              - offset
              - cursor
            default: offset
        - name: cursor
          in: query
          description: Cursor modunda bir önceki pageInfo.nextCursor değeri.
          schema:
            type: string
            maxLength: 2048
        - name: page
          in: query
          description: Offset modunda sayfa numarası.
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: pageSize
          in: query
          description: >-
            Offset modunda en fazla 250, cursor modunda en fazla 100. Sınır
            aşımı 400 döndürür; sessiz kırpma yapılmaz.
          schema:
            type: integer
            minimum: 1
            maximum: 250
      responses:
        '200':
          $ref: '#/components/responses/BankTransactionListResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
components:
  parameters:
    XCompanyId:
      name: x-company-id
      in: header
      required: false
      schema:
        type: string
      description: >-
        Hedef firma kimliği. Müşteri banka endpointlerindeki yazma işlemleri
        için zorunludur.
    XCompanyIds:
      name: x-company-ids
      in: header
      required: false
      schema:
        type: string
      description: >-
        API credential tek firma kapsamlıdır; gönderilirse credential firmasıyla
        eşleşen tek kimlik içermelidir.
  responses:
    BankTransactionListResponse:
      description: Offset veya cursor ile sayfalanmış banka hareketleri.
      content:
        application/json:
          schema:
            oneOf:
              - type: object
                required:
                  - status
                  - result
                  - paginate
                properties:
                  status:
                    type: boolean
                    const: true
                  result:
                    type: array
                    items:
                      $ref: '#/components/schemas/BankTransaction'
                  paginate:
                    $ref: '#/components/schemas/OffsetPagination'
                additionalProperties: false
              - type: object
                required:
                  - status
                  - result
                  - pageInfo
                properties:
                  status:
                    type: boolean
                    const: true
                  result:
                    type: array
                    items:
                      $ref: '#/components/schemas/BankTransaction'
                  pageInfo:
                    $ref: '#/components/schemas/CursorPageInfo'
                additionalProperties: false
    ErrorResponse:
      description: İstek başarısız oldu.
      content:
        application/json:
          schema:
            type: object
            required:
              - status
            properties:
              status:
                type: boolean
                const: false
              code:
                type: string
                description: >-
                  Kararlı hata kodu; kodlanmış domain ve güvenlik hatalarında
                  döner.
              message:
                type: string
                description: >-
                  İnsan tarafından okunabilir hata açıklaması; mevcutsa
                  entegrasyon kararı için kullanılmamalıdır.
              meta:
                type: object
                additionalProperties: true
              result:
                type: array
                deprecated: true
                description: Legacy Joi doğrulama hatalarında dönen alan listesi.
                items:
                  type: object
                  properties:
                    type:
                      type: string
                    joiType:
                      type: string
                    path:
                      type:
                        - string
                        - number
                    label:
                      type: string
                  additionalProperties: false
              description:
                type: string
            additionalProperties: false
          example:
            status: false
            code: TRANSACTION_AMOUNT_RANGE_INVALID
            message: minAmount, maxAmount değerinden büyük olamaz.
  schemas:
    BankTransaction:
      type: object
      description: >-
        Provider senkronizasyonuyla oluşan, public API üzerinden
        değiştirilemeyen banka hareketi.
      required:
        - id
        - companies
        - status
        - version
        - providerStamp
        - idNo
        - findAI
        - incoming
        - amount
        - balance
        - bankCode
      properties:
        id:
          type: string
          description: MongoDB kaynak kimliği.
        companies:
          type: string
          description: Hareketin ait olduğu firma kimliği.
        accountId:
          type:
            - string
            - 'null'
        subAccountKey:
          type:
            - string
            - 'null'
        status:
          type: boolean
        version:
          type: string
        providerStamp:
          type: string
          readOnly: true
          description: Tenant ve banka kapsamında idempotency sağlayan provider kimliği.
        stamp:
          type:
            - string
            - 'null'
          format: date-time
          deprecated: true
        transactionDate:
          type:
            - string
            - 'null'
          format: date-time
        fetchedAt:
          type:
            - string
            - 'null'
          format: date-time
        code:
          type:
            - string
            - 'null'
        idNo:
          type: string
        findAI:
          type: boolean
        nameSurname:
          type:
            - string
            - 'null'
        iban:
          type:
            - string
            - 'null'
        incoming:
          type: boolean
        amount:
          type: number
        balance:
          type: number
        description:
          type:
            - string
            - 'null'
        currency:
          type:
            - string
            - 'null'
          example: TRY
        bankCode:
          type: string
          example: akbank
        assignmentSummary:
          $ref: '#/components/schemas/TransactionAssignmentSummary'
        automation:
          $ref: '#/components/schemas/TransactionAutomation'
        assignments:
          type: array
          items:
            $ref: '#/components/schemas/TransactionAssignment'
        createdAt:
          type:
            - string
            - 'null'
          format: date-time
        updatedAt:
          type:
            - string
            - 'null'
          format: date-time
      additionalProperties: false
    OffsetPagination:
      type: object
      required:
        - total
        - size
        - page
        - totalPage
      properties:
        total:
          type: integer
          minimum: 0
        size:
          type: integer
          minimum: 1
          maximum: 250
        page:
          type: integer
          minimum: 1
        totalPage:
          type: integer
          minimum: 0
      additionalProperties: false
    CursorPageInfo:
      type: object
      required:
        - pageSize
        - hasNextPage
        - nextCursor
        - sortBy
        - direction
      properties:
        pageSize:
          type: integer
          minimum: 1
          maximum: 100
        hasNextPage:
          type: boolean
        nextCursor:
          type:
            - string
            - 'null'
          description: Sonraki sayfa için opak cursor; son sayfada null.
        sortBy:
          type: string
          enum:
            - transactionDate
            - fetchedAt
            - amount
            - balance
        direction:
          type: string
          enum:
            - asc
            - desc
      additionalProperties: false
    TransactionAssignmentSummary:
      type: object
      required:
        - referenceKeys
        - tags
        - count
      properties:
        referenceKeys:
          type: array
          items:
            type: string
        tags:
          type: array
          items:
            type: string
        count:
          type: integer
          minimum: 0
        updatedAt:
          type:
            - string
            - 'null'
          format: date-time
      additionalProperties: false
    TransactionAutomation:
      type: object
      required:
        - status
        - attempts
      properties:
        status:
          type: string
          enum:
            - legacy
            - pending
            - processing
            - retry
            - completed
            - dead
        attempts:
          type: integer
          minimum: 0
        nextAttemptAt:
          type:
            - string
            - 'null'
          format: date-time
        lastAttemptAt:
          type:
            - string
            - 'null'
          format: date-time
        lastEvaluatedAt:
          type:
            - string
            - 'null'
          format: date-time
        lastError:
          type:
            - string
            - 'null'
        lockOwner:
          type:
            - string
            - 'null'
        lockUntil:
          type:
            - string
            - 'null'
          format: date-time
      additionalProperties: false
    TransactionAssignment:
      type: object
      required:
        - id
        - companies
        - transactionId
        - origin
        - originId
        - reference
        - tags
        - status
      properties:
        id:
          type: string
          description: MongoDB kaynak kimliği.
        companies:
          type: string
          description: MongoDB kaynak kimliği.
        transactionId:
          type: string
          description: MongoDB kaynak kimliği.
        origin:
          type: string
          enum:
            - rule
            - manual
        originId:
          type: string
        ruleId:
          type:
            - string
            - 'null'
        ruleVersion:
          type:
            - integer
            - 'null'
        reference:
          $ref: '#/components/schemas/ExternalReference'
        referenceKey:
          type: string
          readOnly: true
        tags:
          type: array
          items:
            type: string
        status:
          type: string
          enum:
            - active
            - revoked
        matchedAt:
          type:
            - string
            - 'null'
          format: date-time
        revokedAt:
          type:
            - string
            - 'null'
          format: date-time
        revokedReason:
          type:
            - string
            - 'null'
        createdAt:
          type:
            - string
            - 'null'
          format: date-time
        updatedAt:
          type:
            - string
            - 'null'
          format: date-time
        ruleSnapshotHash:
          type:
            - string
            - 'null'
        createdBy:
          type:
            - string
            - 'null'
        updatedBy:
          type:
            - string
            - 'null'
      additionalProperties: false
    ExternalReference:
      type: object
      required:
        - source
        - entityType
        - externalId
      properties:
        source:
          type: string
          maxLength: 64
          pattern: ^[a-z0-9][a-z0-9_-]{0,63}$
        entityType:
          type: string
          maxLength: 64
          pattern: ^[a-z0-9][a-z0-9_-]{0,63}$
        externalId:
          type: string
          maxLength: 256
        label:
          type:
            - string
            - 'null'
          maxLength: 200
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Tenant admin tarafından oluşturulan API anahtarının kimliği.
    apiSecretAuth:
      type: apiKey
      in: header
      name: x-api-secret
      description: >-
        Yalnız oluşturma anında gösterilen API anahtarı secret değeri. x-api-key
        ile aynı istekte gönderilir.

````