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

# Banka havale fişi oluştur

> Yeni banka havale fişini satırlarıyla birlikte tek işlemde ekler.

Zorunlu alanlar, satırlar, kur hesabı ve cari hareket farkı kuralları için [genel bakış](/tr/v1/finance/bank-transfers/overview) sayfasına bakın.

## Hata kodları

Bu endpoint'in dönebileceği kodlar. Her endpoint için geçerli olan [genel hatalar](/tr/v1/guides/result-codes) (kimlik doğrulama, yetki, istek header'ları, günlük limit) burada tekrarlanmaz.

| Kod    | HTTP | Anlamı                                                                                                                                                       |
| ------ | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `0002` | 400  | İstek gövdesi okunamadı (bozuk JSON, alan tipi uyumsuz)                                                                                                      |
| `0003` | 400  | Alan azami uzunluğu aşıyor (mesajda alan adı ve sınır yazar)                                                                                                 |
| `0580` | 400  | Metinle verilen değer (kod ya da ad) birden fazla kayıtla eşleşiyor; hangisi olduğunu ayırt edecek bilgiyi ekleyin (ör. ilçe için `City`, il için `Country`) |
| `8101` | 400  | `TransferType` 1 (gelen) ya da 2 (giden) olmalı                                                                                                              |
| `8102` | 400  | `VoucherNumber` zorunlu                                                                                                                                      |
| `8103` | 400  | `VoucherNumber` şirkette (banka fişi tipleri arasında) kullanılıyor                                                                                          |
| `8104` | 400  | `VoucherNumber` güncellemede "Next" olamaz                                                                                                                   |
| `8105` | 400  | `Date` zorunlu                                                                                                                                               |
| `8106` | 400  | `BankAccountCode` zorunlu                                                                                                                                    |
| `8107` | 400  | `BankAccountCode` bulunamadı                                                                                                                                 |
| `8108` | 400  | En az bir satır zorunlu                                                                                                                                      |
| `8110` | 400  | `SharingCode` kullanıcının paylaşım kodlarından biri değil                                                                                                   |
| `8180` | 400  | Şirket için `"BANKAFİŞNO"` seri tanımı bulunamadı                                                                                                            |
| `8181` | 400  | Seri tanımının detayı yok                                                                                                                                    |
| `8182` | 400  | Desteklenmeyen seri numarası bölüm tipi                                                                                                                      |
| `8183` | 400  | Üretilen fiş numarası azami uzunluğu aşıyor                                                                                                                  |
| `8184` | 400  | Üretilen fiş numarası şirkette zaten kullanılıyor                                                                                                            |
| `8185` | 400  | Fiş numarası üretilemedi                                                                                                                                     |
| `8200` | 400  | Satırda `CustomerCode` zorunlu                                                                                                                               |
| `8201` | 400  | Satırda cari bulunamadı                                                                                                                                      |
| `8202` | 400  | Satırda `Amount` 0'dan büyük olmalı                                                                                                                          |
| `8203` | 400  | Satırda `ExchangeRate` (ya da `CustomerExchangeRate`) zorunlu ve 0'dan büyük olmalı                                                                          |
| `8204` | 400  | Satırda `CustomerCurrencyCode` bulunamadı                                                                                                                    |
| `8205` | 400  | Satırda `CustomerAmount x CustomerExchangeRate`, `Amount x ExchangeRate`'e eşit değil                                                                        |
| `8206` | 400  | Satırda `CustomerAmount` ve `CustomerCurrencyCode` birlikte gönderilmeli                                                                                     |


## OpenAPI

````yaml api-reference/openapi.tr.json POST /api/v1/finance/bank-transfers
openapi: 3.1.1
info:
  title: Noyax API
  description: Server-to-server API for integrations to access Noyax data.
  version: '1.0'
servers:
  - url: https://dev.noyax.com/services/noyax_api
security:
  - Bearer: []
tags:
  - name: Sections
  - name: Warehouses
  - name: Quotes
  - name: Product Critical Stock
  - name: Product groups
  - name: Product Parameter Definitions
  - name: Product Parameters
  - name: Product Prices
  - name: Products
  - name: Orders
  - name: Bank Accounts
  - name: Bank Internal Transfers
  - name: Bank Openings
  - name: Banks
  - name: Bank Transfers
  - name: Credit Card Collections
  - name: Repayment Plans
  - name: Despatches
  - name: Cities
  - name: Countries
  - name: Currencies
  - name: Districts
  - name: Line Groups
  - name: Shipment Definitions
  - name: Units
  - name: VAT rates
  - name: Customer Addresses
  - name: Customer Bank Accounts
  - name: Customer Definitions
  - name: Customer Group Members
  - name: Customer Links
  - name: Customer Parameters
  - name: Customer Representatives
  - name: Customers
  - name: Customer Statement
  - name: Customer Telephones
paths:
  /api/v1/finance/bank-transfers:
    post:
      tags:
        - Bank Transfers
      summary: Banka havale fişi oluştur
      description: >-
        Yeni banka havale fişini satırlarıyla birlikte tek işlemde ekler. Her
        satır bir cariye yapılan/cariden gelen tutarı kaydeder;
        CustomerAmount/CustomerCurrencyCode/CustomerExchangeRate ile
        değiştirilmedikçe carinin kendi hesap hareketi satırın
        Amount/ExchangeRate değerlerini birebir yansıtır. Fişin kur değeri,
        satırların ExchangeRate'inin tutar ağırlıklı ortalamasıdır. Şirketin
        banka fişi numara serisinden üretilmesi için VoucherNumber'ı "Next"
        olarak gönderin.
      parameters:
        - name: X-UserID
          in: header
          description: >-
            İsteğin adına yapıldığı Noyax kullanıcısının ID'si. Oluşturulan,
            güncellenen ve silinen kayıtların denetim alanlarına yazılır.
          required: true
          schema:
            minimum: 1
            type: integer
            format: int32
        - name: X-CompanyID
          in: header
          description: >-
            Şirketin ID'si. Kullanıcı bu şirkete tanımlı olmalıdır. Bütün okuma
            ve yazma işlemleri bu şirketle sınırlıdır.
          required: true
          schema:
            minimum: 1
            type: integer
            format: int32
        - name: X-PeriodID
          in: header
          description: >-
            Muhasebe döneminin ID'si. Cari endpoint'lerinde isteğe bağlıdır;
            gönderilirse oluşturulan kayıtlara yazılır.
          schema:
            minimum: 1
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankTransferRequestDto'
          text/json:
            schema:
              $ref: '#/components/schemas/BankTransferRequestDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/BankTransferRequestDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataResultOfBankTransferDetailDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '8108'
                Message: At least one line is required.
                Errors:
                  - Code: '8108'
                    Message: At least one line is required.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0102'
                Message: Token has expired. Obtain a new token using the refresh token.
                Errors:
                  - Code: '0102'
                    Message: >-
                      Token has expired. Obtain a new token using the refresh
                      token.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0110'
                Message: You do not have permission for this operation.
                Errors:
                  - Code: '0110'
                    Message: You do not have permission for this operation.
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0120'
                Message: Daily request limit (10000) exceeded.
                Errors:
                  - Code: '0120'
                    Message: Daily request limit (10000) exceeded.
components:
  schemas:
    BankTransferRequestDto:
      type: object
      properties:
        TransferType:
          type: integer
          description: >-
            Zorunlu. 1: Gelen havale (Gelen EFT/Havale), 2: Giden havale (Giden
            EFT/Havale). Fiş oluşturulduktan sonra değiştirilemez.
          format: int32
          example: 1
        VoucherNumber:
          type:
            - 'null'
            - string
          description: >-
            Zorunlu. Fiş numarası, şirkette tüm banka fişleri arasında
            benzersiz. Oluştururken "Next" gönderirseniz şirketin banka fişi
            numara serisinden üretilir. En fazla 20 karakter.
          example: Next
        Date:
          type:
            - 'null'
            - string
          description: >-
            Zorunlu. Fiş tarihi. Saat de gönderilirse fiş saati olarak yazılır,
            gönderilmezse o anki saat kullanılır.
          format: date-time
          example: '2026-09-24T14:06:00'
        BankAccountCode:
          type:
            - 'null'
            - string
          description: >-
            Zorunlu. Banka hesabı adı (GET /api/v1/finance/bank-accounts'tan
            Name). Fişteki bütün satırlar bu hesaba yazılır.
          example: TEST POS
        Description:
          type:
            - 'null'
            - string
          description: Açıklama. En fazla 1000 karakter.
        SharingCode:
          type:
            - 'null'
            - string
          description: >-
            Fişi kimlerin görebileceğini sınırlayan paylaşım kodu. Boşsa herkes
            görür; doluysa kullanıcının paylaşım kodlarından biri olmalıdır.
        Lines:
          type: array
          items:
            $ref: '#/components/schemas/BankTransferLineRequestDto'
          description: Zorunlu, en az bir satır.
    DataResultOfBankTransferDetailDto:
      required:
        - Success
        - ResultCode
        - Data
      type: object
      properties:
        Success:
          type: boolean
          description: İşlemin başarılı olup olmadığı.
          example: true
        ResultCode:
          type: string
          description: >-
            Başarıda "0000". Hatada ilk hatanın kodu; hataların tamamı Errors
            içinde listelenir.
          example: '0000'
        Message:
          type:
            - 'null'
            - string
          description: >-
            Success false olduğunda hata mesajı. Bütün hataların mesajları tek
            metinde birleştirilir.
        Data:
          $ref: '#/components/schemas/BankTransferDetailDto'
    ErrorResult:
      type: object
      properties:
        Success:
          type: boolean
          description: İşlemin başarılı olup olmadığı.
          example: false
        ResultCode:
          type:
            - 'null'
            - string
          description: >-
            Başarıda "0000". Hatada ilk hatanın kodu; hataların tamamı Errors
            içinde listelenir.
        Message:
          type:
            - 'null'
            - string
          description: >-
            Success false olduğunda hata mesajı. Bütün hataların mesajları tek
            metinde birleştirilir.
        Errors:
          type:
            - 'null'
            - array
          items:
            $ref: '#/components/schemas/ResultError'
          description: >-
            Kodlarıyla birlikte bütün hatalar. Yalnızca Success false olduğunda
            bulunur.
    BankTransferLineRequestDto:
      type: object
      properties:
        CustomerCode:
          type:
            - 'null'
            - string
          description: >-
            Zorunlu. Cari kodu (GET /api/v1/customers'taki carinin CustomerCode
            değeri).
          example: C-0001
        Amount:
          type: number
          description: >-
            Zorunlu. Banka hesabının kendi dövizinde tutar. 0'dan büyük
            olmalıdır.
          format: double
          example: 500
        ExchangeRate:
          type:
            - 'null'
            - number
          description: >-
            Banka hesabının dövizinin şirketin varsayılan dövizine karşı kur
            değeri. Yalnızca banka hesabının dövizi varsayılan dövizden
            farklıysa zorunludur (ve 0'dan büyük olmalıdır); aksi halde 1 kabul
            edilir.
          format: double
          example: 1
        Description:
          type:
            - 'null'
            - string
          description: Açıklama. En fazla 255 karakter.
        CustomerAmount:
          type:
            - 'null'
            - number
          description: >-
            Carinin kendi hesabına yazılan tutarı değiştirir
            (CustomerCurrencyCode ve CustomerExchangeRate ile birlikte
            gönderilir, ya da cari hareketin banka hareketiyle aynı
            tutar/döviz/kurda yazılması için üçü de boş bırakılır).
            CustomerAmount ile CustomerExchangeRate çarpımı, Amount ile
            ExchangeRate çarpımına eşit olmalıdır.
          format: double
        CustomerCurrencyCode:
          type:
            - 'null'
            - string
          description: >-
            Cari hareket farkı için döviz kodu (GET
            /api/v1/definitions/currencies'ten). CustomerAmount ve
            CustomerExchangeRate ile birlikte gönderilir.
        CustomerExchangeRate:
          type:
            - 'null'
            - number
          description: >-
            Cari hareket farkı için kur değeri. CustomerCurrencyCode şirketin
            varsayılan dövizinden farklıysa zorunludur (ve 0'dan büyük
            olmalıdır).
          format: double
    BankTransferDetailDto:
      type: object
      properties:
        Id:
          type: string
          description: Banka havale fişi ID'si.
          format: uuid
        TransferType:
          type: integer
          description: >-
            1: Gelen havale (Gelen EFT/Havale), 2: Giden havale (Giden
            EFT/Havale).
          format: int32
          example: 1
        VoucherNumber:
          type:
            - 'null'
            - string
          description: Fiş numarası.
          example: 5466CACC0016
        Date:
          type:
            - 'null'
            - string
          description: Fiş tarihi.
          format: date-time
        BankAccountCode:
          type:
            - 'null'
            - string
          description: Banka hesabı adı.
          example: TEST POS
        BankAccountId:
          type:
            - 'null'
            - string
          description: Banka hesabı ID'si.
          format: uuid
        CurrencyCode:
          type:
            - 'null'
            - string
          description: Banka hesabının (ve her satırın Amount alanının) döviz kodu.
        CurrencyId:
          type:
            - 'null'
            - string
          description: Banka hesabının döviz ID'si.
          format: uuid
        ExchangeRate:
          type: number
          description: >-
            Satırların ağırlıklı ortalama kur değeri: toplam(Amount x
            ExchangeRate) / toplam(Amount).
          format: double
        Amount:
          type: number
          description: Toplam tutar (satırların Amount toplamı).
          format: double
        Description:
          type:
            - 'null'
            - string
          description: Açıklama.
        SharingCode:
          type:
            - 'null'
            - string
          description: Fişi kimlerin görebileceğini sınırlayan paylaşım kodu.
        SharingCodeId:
          type:
            - 'null'
            - string
          description: Paylaşım kodu ID'si.
          format: uuid
        IsPosted:
          type: boolean
          description: >-
            Fişin muhasebeye işlenip işlenmediği. Muhasebeleşmiş bir fiş
            güncellenemez ya da silinemez.
        CreateDate:
          type:
            - 'null'
            - string
          format: date-time
        ModifyDate:
          type:
            - 'null'
            - string
          format: date-time
        Lines:
          type: array
          items:
            $ref: '#/components/schemas/BankTransferLineDto'
          description: Satırlar, satır sırasıyla.
      description: Response data. Null when Success is false.
    ResultError:
      required:
        - Code
        - Message
      type: object
      properties:
        Code:
          type: string
          description: Hata kodu. Tam liste için sonuç kodları sayfasına bakın.
        Message:
          type: string
          description: Hata açıklaması.
    BankTransferLineDto:
      type: object
      properties:
        CustomerName:
          type:
            - 'null'
            - string
          description: Cari adı.
        CustomerId:
          type:
            - 'null'
            - string
          format: uuid
        CustomerCurrencyId:
          type:
            - 'null'
            - string
          format: uuid
        CustomerCode:
          type:
            - 'null'
            - string
          description: >-
            Zorunlu. Cari kodu (GET /api/v1/customers'taki carinin CustomerCode
            değeri).
          example: C-0001
        Amount:
          type: number
          description: >-
            Zorunlu. Banka hesabının kendi dövizinde tutar. 0'dan büyük
            olmalıdır.
          format: double
          example: 500
        ExchangeRate:
          type:
            - 'null'
            - number
          description: >-
            Banka hesabının dövizinin şirketin varsayılan dövizine karşı kur
            değeri. Yalnızca banka hesabının dövizi varsayılan dövizden
            farklıysa zorunludur (ve 0'dan büyük olmalıdır); aksi halde 1 kabul
            edilir.
          format: double
          example: 1
        Description:
          type:
            - 'null'
            - string
          description: Açıklama. En fazla 255 karakter.
        CustomerAmount:
          type:
            - 'null'
            - number
          description: >-
            Carinin kendi hesabına yazılan tutarı değiştirir
            (CustomerCurrencyCode ve CustomerExchangeRate ile birlikte
            gönderilir, ya da cari hareketin banka hareketiyle aynı
            tutar/döviz/kurda yazılması için üçü de boş bırakılır).
            CustomerAmount ile CustomerExchangeRate çarpımı, Amount ile
            ExchangeRate çarpımına eşit olmalıdır.
          format: double
        CustomerCurrencyCode:
          type:
            - 'null'
            - string
          description: >-
            Cari hareket farkı için döviz kodu (GET
            /api/v1/definitions/currencies'ten). CustomerAmount ve
            CustomerExchangeRate ile birlikte gönderilir.
        CustomerExchangeRate:
          type:
            - 'null'
            - number
          description: >-
            Cari hareket farkı için kur değeri. CustomerCurrencyCode şirketin
            varsayılan dövizinden farklıysa zorunludur (ve 0'dan büyük
            olmalıdır).
          format: double
  securitySchemes:
    Bearer:
      type: http
      description: Access token obtained from the Noyax auth service with your API key.
      scheme: bearer
      bearerFormat: JWT

````