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

# Manuel banka sorgusu başlatır

> Anahtarın bağlı olduğu firmanın banka hesaplarını bankadan hemen sorgular. Gövdedeki scope yetki veya firma seçimi değildir: account tek hesabı, current_company_all firmanın uygun bütün hesaplarını sırayla sorgular; yanıt sorgular bitince döner. Boş gövde bütün hesaplar anlamına gelmez. Aynı hesap için süren bir sorgu varsa o hesabın sonucu skipped olur; bütün hedefler skipped olsa da yanıt başarılıdır. İstek idempotent değildir; tekrarlanan istek önceki sonucu döndürmeyi garanti etmez. Anahtar başına dakikada en fazla 6 istek kabul edilir.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/bank-queries
openapi: 3.0.3
info:
  title: BankaPro API
  version: 1.0.0
  description: >-
    BankaPro'nun sunucudan sunucuya kullanılan, tek firmalı REST API'sidir.
    Kimlik doğrulama HTTP Basic ile yapılır: kullanıcı adı anahtar kimliği,
    parola secret key değeridir. Firma anahtarın kendisinden belirlenir;
    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. Uçlar baAccounts, baTransactions, baOperations veya baSync
    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 ve manuel banka sorgusu 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
paths:
  /v1/bank-queries:
    parameters:
      - $ref: '#/components/parameters/RequestIdInput'
    post:
      tags:
        - Queries
      summary: Manuel banka sorgusu başlatır
      description: >-
        Anahtarın bağlı olduğu firmanın banka hesaplarını bankadan hemen
        sorgular. Gövdedeki scope yetki veya firma seçimi değildir: account tek
        hesabı, current_company_all firmanın uygun bütün hesaplarını sırayla
        sorgular; yanıt sorgular bitince döner. Boş gövde bütün hesaplar
        anlamına gelmez. Aynı hesap için süren bir sorgu varsa o hesabın sonucu
        skipped olur; bütün hedefler skipped olsa da yanıt başarılıdır. İstek
        idempotent değildir; tekrarlanan istek önceki sonucu döndürmeyi garanti
        etmez. Anahtar başına dakikada en fazla 6 istek kabul edilir.
      operationId: createBankQuery
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankQueryRequestEnvelope'
            examples:
              singleAccount:
                summary: Tek hesap
                value:
                  data:
                    scope: account
                    accountId: 64f000000000000000000101
              currentCompanyAll:
                summary: Credential firmasının tüm uygun hesapları
                value:
                  data:
                    scope: current_company_all
      responses:
        '200':
          description: Sorgu sonuç sayaçları
          headers:
            x-request-id:
              $ref: '#/components/headers/RequestId'
            Cache-Control:
              $ref: '#/components/headers/NoStore'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankQueryResponse'
              examples:
                allSkipped:
                  summary: Bütün hesaplarda süren bir sorgu olduğu için hepsi atlandı
                  value:
                    success: true
                    data:
                      total: 2
                      triggered: 0
                      succeeded: 0
                      failed: 0
                      skipped: 2
                      results:
                        - accountId: 64f000000000000000000101
                          status: skipped
                        - accountId: 64f000000000000000000102
                          status: skipped
                      ranAt: '2026-09-08T20:00:00.000Z'
                    meta:
                      requestId: 9cc0d3d1-1e63-4c90-b08f-90b6332e70ca
                      timestamp: '2026-09-08T20:00:00.000Z'
        '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
  schemas:
    BankQueryRequestEnvelope:
      type: object
      additionalProperties: false
      required:
        - data
      properties:
        data:
          oneOf:
            - type: object
              additionalProperties: false
              required:
                - scope
                - accountId
              properties:
                scope:
                  type: string
                  enum:
                    - account
                accountId:
                  $ref: '#/components/schemas/ObjectId'
            - type: object
              additionalProperties: false
              required:
                - scope
              properties:
                scope:
                  type: string
                  enum:
                    - current_company_all
    BankQueryResponse:
      allOf:
        - $ref: '#/components/schemas/SuccessBase'
        - type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/BankQueryData'
    ObjectId:
      type: string
      pattern: ^[a-fA-F0-9]{24}$
      example: 64f000000000000000000001
    SuccessBase:
      type: object
      required:
        - success
        - meta
      properties:
        success:
          type: boolean
          enum:
            - true
        meta:
          $ref: '#/components/schemas/ResponseMeta'
    BankQueryData:
      type: object
      required:
        - total
        - triggered
        - succeeded
        - failed
        - skipped
        - results
        - ranAt
      properties:
        total:
          type: integer
          minimum: 0
        triggered:
          type: integer
          minimum: 0
        succeeded:
          type: integer
          minimum: 0
        failed:
          type: integer
          minimum: 0
        skipped:
          type: integer
          minimum: 0
        results:
          type: array
          items:
            $ref: '#/components/schemas/BankQueryItemResult'
        ranAt:
          $ref: '#/components/schemas/UtcTimestamp'
      example:
        total: 2
        triggered: 1
        succeeded: 1
        failed: 0
        skipped: 1
        results:
          - accountId: 64f000000000000000000101
            status: success
          - accountId: 64f000000000000000000102
            status: skipped
        ranAt: '2026-09-08T20:00:00.000Z'
    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'
    BankQueryItemResult:
      type: object
      required:
        - accountId
        - status
      properties:
        accountId:
          $ref: '#/components/schemas/ObjectId'
        status:
          type: string
          enum:
            - success
            - failed
            - skipped
    UtcTimestamp:
      type: string
      format: date-time
      description: UTC ISO-8601 zamanı.
      example: '2026-09-08T20:00:00.000Z'
    ValidationDetail:
      type: object
      required:
        - field
        - rule
      properties:
        field:
          type: string
          example: pageSize
        rule:
          type: string
          example: min:1,max:100
    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: >-
        Credential firması banka ürününe uygun değil, zorunlu ürün/endpoint
        yetkisi bulunmuyor veya yapılandırılmış IP allowlist 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 anahtardan sunucu tarafında belirlenir;
        istemciden firma kimliği alınmaz. 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.