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

# Hareket durumlarını toplu günceller (entegratör)

> Entegratör anahtarıyla müşteri firmasının verisi; davranış firma anahtarındaki /v1/bank-transactions/bulk-actions ile aynıdır. Yalnız set_status işlemi desteklenir. Bir istekte en fazla 500 hareket kimliği gönderilebilir; tekrar eden kimlikler tekilleştirilir ve bütün benzersiz kimlikler yetkili kapsamda bulunmalıdır.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/companies/{companyId}/bank-transactions/bulk-actions
openapi: 3.0.3
info:
  title: BankaPro API
  version: 1.0.0
  description: >-
    BankaPro'nun sunucudan sunucuya kullanılan REST API'sidir. Kimlik doğrulama
    HTTP Basic ile yapılır: kullanıcı adı anahtar kimliği, parola secret key
    değeridir. İki tür anahtar vardır. Firma anahtarı tek firmaya bağlıdır;
    firma anahtarın kendisinden belirlenir ve veri uçları /v1/... adresiyle
    çağrılır. Entegratör anahtarı yazılım firmaları içindir: birden çok müşteri
    firmasını (VKN) ve bu firmaların banka bağlantılarını yönetir, firma
    verisine /v1/companies/{companyId}/... adresiyle erişir; entegratör anahtarı
    firma adresi olmadan bir veri ucunu çağırırsa 400 COMPANY_REQUIRED döner,
    firma anahtarı entegratör uçlarını çağırırsa 403 FORBIDDEN döner.
    Entegratörde her müşteri firmasında bağlı her banka bir kredidir; dönemin
    herhangi bir anında aktif olan her firma-banka ikilisi o dönem için sayılır
    ve kota dolunca yeni bağlantı 403 CREDIT_LIMIT_REACHED ile reddedilir. Her
    iki anahtarda da companies, companiesId, companyIds veya scope adlı sorgu
    parametresi ya da başlık kabul edilmez. Tarayıcı kaynaklı (Origin başlığı
    taşıyan) istekler reddedilir. Anahtarın IP kısıtı doluysa istek yalnız
    listedeki adreslerden kabul edilir. Veri uçları baAccounts, baTransactions,
    baOperations veya baSync yetkisiyle, entegratör uçları baCompanies veya
    baConnections yetkisiyle korunur; karşı taraf IBAN ve TCKN/VKN değerlerini
    açık görmek için baPii ayrıca atanmalıdır. Başarı yanıtı success/data/meta,
    hata yanıtı success:false/error/traceId biçimindedir. Tüm yanıtlarda
    x-request-id ve Cache-Control: no-store bulunur. Zamanlar UTC ISO-8601,
    parasal değerler iki ondalıklı metindir; farklı para birimleri tek toplamda
    birleştirilmez. Bilinmeyen bakiye null, bankanın bildirdiği gerçek sıfır
    0.00 olarak döner. Bu sözleşme banka hesabı, banka hareketi, manuel banka
    sorgusu ve entegratör (müşteri firması, banka bağlantısı, kredi) uçlarını
    kapsar.
servers:
  - url: https://api.banka.pro
    description: BankaPro canlı API
security:
  - BasicAuth: []
tags:
  - name: Accounts
    description: >-
      Credential firmasının banka hesapları, bakiye özetleri ve doğrulanmış
      bakiye geçmişi
  - name: Transactions
    description: Credential firmasının banka hareketleri, özetleri ve izinli operasyonları
  - name: Queries
    description: >-
      Credential firmasının banka hesaplarında mevcut sorgu motoruyla manuel
      yenileme
  - name: Integrator
    description: 'Entegratör anahtarı: müşteri firmaları (VKN) ve kredi özeti'
  - name: Bank connections
    description: >-
      Entegratör anahtarı: müşteri firmalarının banka bağlantıları ve banka
      kataloğu
paths:
  /v1/companies/{companyId}/bank-transactions/bulk-actions:
    parameters:
      - $ref: '#/components/parameters/RequestIdInput'
      - $ref: '#/components/parameters/CompanyIdPath'
    post:
      tags:
        - Transactions
      summary: Hareket durumlarını toplu günceller (entegratör)
      description: >-
        Entegratör anahtarıyla müşteri firmasının verisi; davranış firma
        anahtarındaki /v1/bank-transactions/bulk-actions ile aynıdır. Yalnız
        set_status işlemi desteklenir. Bir istekte en fazla 500 hareket kimliği
        gönderilebilir; tekrar eden kimlikler tekilleştirilir ve bütün benzersiz
        kimlikler yetkili kapsamda bulunmalıdır.
      operationId: bulkUpdateBankTransactionsForCompany
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkActionRequestEnvelope'
            example:
              data:
                action: set_status
                ids:
                  - 64f000000000000000000201
                  - 64f000000000000000000202
                status: 1
      responses:
        '200':
          description: Toplu güncelleme sayıları
          headers:
            x-request-id:
              $ref: '#/components/headers/RequestId'
            Cache-Control:
              $ref: '#/components/headers/NoStore'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkActionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '413':
          $ref: '#/components/responses/PayloadTooLarge'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  parameters:
    RequestIdInput:
      name: x-request-id
      in: header
      required: false
      description: >-
        Opsiyonel izleme kimliği. Değer 1-100 karakter ve yalnız harf, rakam,
        nokta, alt çizgi, iki nokta veya tire içeriyorsa korunur; aksi halde
        sunucu yeni bir UUID üretir.
      schema:
        type: string
        minLength: 1
        maxLength: 100
        pattern: ^[A-Za-z0-9._:-]{1,100}$
      example: 9cc0d3d1-1e63-4c90-b08f-90b6332e70ca
    CompanyIdPath:
      name: companyId
      in: path
      required: true
      description: >-
        Müşteri firmasının kimliği (`POST /v1/companies` yanıtındaki `id`).
        Firma bu entegratöre ait değilse 404, pasifse 403 COMPANY_PASSIVE döner.
      schema:
        $ref: '#/components/schemas/ObjectId'
  schemas:
    BulkActionRequestEnvelope:
      type: object
      additionalProperties: false
      required:
        - data
      properties:
        data:
          type: object
          additionalProperties: false
          required:
            - action
            - ids
            - status
          properties:
            action:
              type: string
              enum:
                - set_status
            ids:
              type: array
              minItems: 1
              maxItems: 500
              description: Tekrar eden kimlikler sunucu tarafından tekilleştirilir.
              items:
                $ref: '#/components/schemas/ObjectId'
            status:
              $ref: '#/components/schemas/TransactionStatus'
    BulkActionResponse:
      allOf:
        - $ref: '#/components/schemas/SuccessBase'
        - type: object
          required:
            - data
          properties:
            data:
              type: object
              required:
                - action
                - status
                - matchedCount
                - modifiedCount
              properties:
                action:
                  type: string
                  enum:
                    - set_status
                status:
                  $ref: '#/components/schemas/TransactionStatus'
                matchedCount:
                  type: integer
                  minimum: 0
                modifiedCount:
                  type: integer
                  minimum: 0
    ObjectId:
      type: string
      pattern: ^[a-fA-F0-9]{24}$
      example: 64f000000000000000000001
    TransactionStatus:
      type: integer
      enum:
        - 0
        - 1
        - 2
      description: 0=pending, 1=processed, 2=ignored.
    SuccessBase:
      type: object
      required:
        - success
        - meta
      properties:
        success:
          type: boolean
          enum:
            - true
        meta:
          $ref: '#/components/schemas/ResponseMeta'
    ErrorEnvelope:
      type: object
      required:
        - success
        - error
        - traceId
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: object
          required:
            - code
            - message
            - details
          properties:
            code:
              type: string
              example: VALIDATION_FAILED
            message:
              type: string
              example: İstek doğrulanamadı.
            details:
              type: array
              items:
                $ref: '#/components/schemas/ValidationDetail'
        traceId:
          type: string
          nullable: true
          example: 9cc0d3d1-1e63-4c90-b08f-90b6332e70ca
    ResponseMeta:
      type: object
      required:
        - requestId
        - timestamp
      properties:
        requestId:
          type: string
          example: 9cc0d3d1-1e63-4c90-b08f-90b6332e70ca
        timestamp:
          $ref: '#/components/schemas/UtcTimestamp'
        partial:
          type: boolean
          description: Yanıtın kontrollü fallback veya eksik veri içerdiğini belirtir.
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/ApiWarning'
    ValidationDetail:
      type: object
      required:
        - field
        - rule
      properties:
        field:
          type: string
          example: pageSize
        rule:
          type: string
          example: min:1,max:100
    UtcTimestamp:
      type: string
      format: date-time
      description: UTC ISO-8601 zamanı.
      example: '2026-09-08T20:00:00.000Z'
    ApiWarning:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          enum:
            - TODAY_BALANCE_SNAPSHOT_FALLBACK
            - BALANCE_HISTORY_MISSING
            - BALANCE_HISTORY_PARTIAL
            - BALANCE_CURRENCY_MISMATCH
            - BALANCE_VALUE_UNKNOWN
            - BALANCE_VALUE_STALE
            - INVALID_ACCOUNT_CURRENCY
        message:
          type: string
        date:
          type: string
          format: date
          example: '2026-09-07'
        accountCount:
          type: integer
          minimum: 0
  headers:
    RequestId:
      description: >-
        İsteğin izleme kimliği. İstemcinin gönderdiği değer 1-100 karakter ve
        yalnız harf, rakam, nokta, alt çizgi, iki nokta veya tire içeriyorsa
        korunur; aksi halde sunucu tarafından UUID üretilir.
      schema:
        type: string
        maxLength: 100
        pattern: ^[A-Za-z0-9._:-]{1,100}$
        example: 9cc0d3d1-1e63-4c90-b08f-90b6332e70ca
    NoStore:
      description: Banka verisinin istemci veya ara katmanda saklanmamasını belirtir.
      schema:
        type: string
        enum:
          - no-store
    WwwAuthenticate:
      description: HTTP Basic kimlik doğrulama challenge değeri.
      schema:
        type: string
        example: Basic realm="BankaPro API", charset="UTF-8"
    RetryAfter:
      description: İsteğin kaç saniye sonra yeniden denenebileceğini belirtir.
      schema:
        type: integer
        minimum: 0
    RateLimit:
      description: >-
        Geçerli oran sınırı ve kalan kota bilgisini standart RateLimit biçiminde
        taşır.
      schema:
        type: string
  responses:
    BadRequest:
      description: İstek doğrulama hatası
      headers:
        x-request-id:
          $ref: '#/components/headers/RequestId'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            success: false
            error:
              code: VALIDATION_FAILED
              message: pageSize 1-100 araliginda olmalidir.
              details:
                - field: pageSize
                  rule: min:1,max:100
            traceId: 9cc0d3d1-1e63-4c90-b08f-90b6332e70ca
    Unauthorized:
      description: HTTP Basic credential yok, geçersiz, iptal edilmiş veya süresi geçmiş
      headers:
        x-request-id:
          $ref: '#/components/headers/RequestId'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
        WWW-Authenticate:
          $ref: '#/components/headers/WwwAuthenticate'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Forbidden:
      description: >-
        Anahtarın firması veya entegratör sözleşmesi uygun değil, zorunlu
        ürün/uç yetkisi yok, uç bu anahtar türüne kapalı, kredi kotası dolu veya
        IP kısıtı bağlantının güvenilir istemci IP'siyle eşleşmiyor
      headers:
        x-request-id:
          $ref: '#/components/headers/RequestId'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            success: false
            error:
              code: FORBIDDEN
              message: Bu islem icin yetkiniz bulunmuyor.
              details: []
            traceId: 9cc0d3d1-1e63-4c90-b08f-90b6332e70ca
    NotFound:
      description: Yetkili kapsamda kaynak bulunamadı
      headers:
        x-request-id:
          $ref: '#/components/headers/RequestId'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            success: false
            error:
              code: RESOURCE_NOT_FOUND
              message: Banka hareketi bulunamadi.
              details: []
            traceId: 9cc0d3d1-1e63-4c90-b08f-90b6332e70ca
    PayloadTooLarge:
      description: İstek gövdesi izin verilen boyutu aşıyor
      headers:
        x-request-id:
          $ref: '#/components/headers/RequestId'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            success: false
            error:
              code: PAYLOAD_TOO_LARGE
              message: Istek govdesi izin verilen boyutu asiyor.
              details: []
            traceId: 9cc0d3d1-1e63-4c90-b08f-90b6332e70ca
    TooManyRequests:
      description: İstek limiti aşıldı
      headers:
        x-request-id:
          $ref: '#/components/headers/RequestId'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
        RateLimit:
          $ref: '#/components/headers/RateLimit'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            success: false
            error:
              code: RATE_LIMITED
              message: Istek limiti asildi. Daha sonra tekrar deneyin.
              details: []
            traceId: 9cc0d3d1-1e63-4c90-b08f-90b6332e70ca
    InternalError:
      description: Beklenmeyen sunucu hatası
      headers:
        x-request-id:
          $ref: '#/components/headers/RequestId'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: >-
        Kullanıcı adı anahtar kimliği, parola secret key değeridir. Anahtar
        aktif olmalı, erişim bitiş tarihi geçmemiş olmalı ve BankaPro erişimine
        sahip olmalıdır. Firma anahtarında firma anahtardan sunucu tarafında
        belirlenir; istemciden firma kimliği alınmaz. Entegratör anahtarı
        firmayı yalnız /v1/companies/{companyId} adresinden alır ve yalnız kendi
        müşteri firmalarına erişir. Anahtarın IP kısıtı doluysa istek yalnız
        listedeki adreslerden kabul edilir. Kimlik bilgileri yalnız HTTPS
        üzerinden gönderilmelidir.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.