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

# Update bank internal transfer

> Replaces all fields of the voucher and its lines.

To change individual fields, use a [partial update](/en/v1/guides/partial-update): `PATCH` changes only the fields you send.
`VoucherNumber` cannot be `"Next"`. A posted voucher cannot be updated. Lines are fully replaced, and the balance requirement applies again.

## Error codes

Codes this endpoint can return. The [general errors](/en/v1/guides/result-codes) that apply to every endpoint (authentication, permissions, request headers, daily limit) are not repeated here.

| Code   | HTTP | Meaning                                                                                                                                                               |
| ------ | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `0002` | 400  | Request body could not be read (malformed JSON, wrong field type)                                                                                                     |
| `0003` | 400  | A field exceeds its maximum length (the message names the field and the limit)                                                                                        |
| `0580` | 400  | A value given as text (a code or a name) matches more than one record; add the detail that tells them apart (for example `City` for a district, `Country` for a city) |
| `8500` | 404  | Bank internal transfer not found                                                                                                                                      |
| `8501` | 400  | `VoucherNumber` is required                                                                                                                                           |
| `8502` | 400  | `VoucherNumber` is already used in the company (among all bank voucher types)                                                                                         |
| `8503` | 400  | `VoucherNumber` cannot be "Next" on update                                                                                                                            |
| `8504` | 400  | `Date` is required                                                                                                                                                    |
| `8505` | 400  | At least one line is required                                                                                                                                         |
| `8506` | 400  | The voucher has been posted to accounting and can no longer be updated or deleted                                                                                     |
| `8507` | 400  | `SharingCode` is not one of the user's sharing codes                                                                                                                  |
| `8508` | 400  | The total `Debit` of the lines must equal the total `Credit`                                                                                                          |
| `8600` | 400  | Line `BankAccountCode` is required                                                                                                                                    |
| `8601` | 400  | Line `BankAccountCode` was not found                                                                                                                                  |
| `8602` | 400  | Line `ExchangeRate` is required and must be greater than 0                                                                                                            |
| `8603` | 400  | Exactly one of the line's `Debit`/`Credit` must be greater than 0                                                                                                     |


## OpenAPI

````yaml api-reference/openapi.json PUT /api/v1/finance/bank-internal-transfers/{bankInternalTransferId}
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-internal-transfers/{bankInternalTransferId}:
    put:
      tags:
        - Bank Internal Transfers
      summary: Update bank internal transfer
      description: >-
        Replaces all fields of the voucher and replaces its lines (the existing
        lines are removed and the lines in the request are saved). VoucherNumber
        cannot be "Next". A posted voucher (already sent to accounting) cannot
        be updated.
      parameters:
        - name: bankInternalTransferId
          in: path
          description: Bank internal transfer ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: X-UserID
          in: header
          description: >-
            ID of the Noyax user the request is made on behalf of. Written to
            the audit fields of created, updated and deleted records.
          required: true
          schema:
            minimum: 1
            type: integer
            format: int32
        - name: X-CompanyID
          in: header
          description: >-
            ID of the company. The user must be assigned to this company. All
            reads and writes are limited to this company.
          required: true
          schema:
            minimum: 1
            type: integer
            format: int32
        - name: X-PeriodID
          in: header
          description: >-
            ID of the accounting period. Optional for customer endpoints; if
            sent, it is written to created records.
          schema:
            minimum: 1
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankJournalVoucherRequestDto'
          text/json:
            schema:
              $ref: '#/components/schemas/BankJournalVoucherRequestDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/BankJournalVoucherRequestDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataResultOfBankJournalVoucherDetailDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '8506'
                Message: >-
                  The voucher has been posted to accounting and can no longer be
                  updated.
                Errors:
                  - Code: '8506'
                    Message: >-
                      The voucher has been posted to accounting and can no
                      longer be updated.
        '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.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '8500'
                Message: Bank internal transfer not found.
                Errors:
                  - Code: '8500'
                    Message: Bank internal transfer not found.
        '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:
    BankJournalVoucherRequestDto:
      type: object
      properties:
        VoucherNumber:
          type:
            - 'null'
            - string
          description: >-
            Required. Voucher number, unique within the company among all bank
            vouchers. Send "Next" on create to generate it from the company's
            bank voucher number series. At most 20 characters.
          example: Next
        Date:
          type:
            - 'null'
            - string
          description: >-
            Required. Voucher date. If a time is sent it is stored as the
            voucher time, otherwise the current time is used.
          format: date-time
          example: '2026-09-24T14:06:00'
        Description:
          type:
            - 'null'
            - string
          description: Description. At most 1000 characters.
        SharingCode:
          type:
            - 'null'
            - string
          description: >-
            Sharing code that limits who can see the voucher. Empty means
            visible to everyone; otherwise it must be one of the user's sharing
            codes.
        Lines:
          type: array
          items:
            $ref: '#/components/schemas/BankJournalVoucherLineRequestDto'
          description: Required, at least one line.
    DataResultOfBankJournalVoucherDetailDto:
      required:
        - Success
        - ResultCode
        - Data
      type: object
      properties:
        Success:
          type: boolean
          description: Whether the operation succeeded.
          example: true
        ResultCode:
          type: string
          description: >-
            "0000" on success. On failure, the code of the first error; all
            errors are listed in Errors.
          example: '0000'
        Message:
          type:
            - 'null'
            - string
          description: >-
            Error message when Success is false. Messages of all errors are
            joined into a single text.
        Data:
          $ref: '#/components/schemas/BankJournalVoucherDetailDto'
    ErrorResult:
      type: object
      properties:
        Success:
          type: boolean
          description: Whether the operation succeeded.
          example: false
        ResultCode:
          type:
            - 'null'
            - string
          description: >-
            "0000" on success. On failure, the code of the first error; all
            errors are listed in Errors.
        Message:
          type:
            - 'null'
            - string
          description: >-
            Error message when Success is false. Messages of all errors are
            joined into a single text.
        Errors:
          type:
            - 'null'
            - array
          items:
            $ref: '#/components/schemas/ResultError'
          description: All errors with their codes. Only present when Success is false.
    BankJournalVoucherLineRequestDto:
      type: object
      properties:
        BankAccountCode:
          type:
            - 'null'
            - string
          description: >-
            Required. Bank account name (Name from GET
            /api/v1/finance/bank-accounts). The line's currency is the account's
            own currency.
          example: TEST POS
        Debit:
          type: number
          description: >-
            Debit amount, in the bank account's own currency. Exactly one of
            Debit/Credit must be greater than 0, the other must be 0.
          format: double
          example: 0
        Credit:
          type: number
          description: >-
            Credit amount, in the bank account's own currency. Exactly one of
            Debit/Credit must be greater than 0, the other must be 0.
          format: double
          example: 500
        ExchangeRate:
          type:
            - 'null'
            - number
          description: >-
            Exchange rate of the bank account's currency against the company's
            default currency. Required, and must be greater than 0, only when
            the bank account's currency differs from the default currency;
            otherwise treated as 1.
          format: double
          example: 1
        Description:
          type:
            - 'null'
            - string
          description: Description. At most 255 characters.
    BankJournalVoucherDetailDto:
      type: object
      properties:
        Id:
          type: string
          description: Voucher ID.
          format: uuid
        VoucherNumber:
          type:
            - 'null'
            - string
          description: Voucher number.
        Date:
          type:
            - 'null'
            - string
          description: Voucher date.
          format: date-time
        Description:
          type:
            - 'null'
            - string
          description: Description.
        SharingCode:
          type:
            - 'null'
            - string
          description: Sharing code that limits who can see the voucher.
        SharingCodeId:
          type:
            - 'null'
            - string
          description: Sharing code ID.
          format: uuid
        TotalDebit:
          type: number
          description: Total debit (sum of the lines' Debit).
          format: double
        TotalCredit:
          type: number
          description: Total credit (sum of the lines' Credit).
          format: double
        ExchangeRate:
          type: number
          description: >-
            Weighted average exchange rate across the lines: sum(LineAmount x
            ExchangeRate) / sum(LineAmount), where LineAmount is Debit + Credit.
          format: double
        IsPosted:
          type: boolean
          description: >-
            Whether the voucher has been posted to accounting. A posted voucher
            cannot be updated or deleted.
        CreateDate:
          type:
            - 'null'
            - string
          format: date-time
        ModifyDate:
          type:
            - 'null'
            - string
          format: date-time
        Lines:
          type: array
          items:
            $ref: '#/components/schemas/BankJournalVoucherLineDto'
          description: Lines, in line order.
      description: Response data. Null when Success is false.
    ResultError:
      required:
        - Code
        - Message
      type: object
      properties:
        Code:
          type: string
          description: Error code. See the result codes page for the full list.
        Message:
          type: string
          description: Error description.
    BankJournalVoucherLineDto:
      type: object
      properties:
        CurrencyCode:
          type:
            - 'null'
            - string
          description: Currency code of the bank account.
        BankAccountId:
          type:
            - 'null'
            - string
          format: uuid
        CurrencyId:
          type:
            - 'null'
            - string
          format: uuid
        BankAccountCode:
          type:
            - 'null'
            - string
          description: >-
            Required. Bank account name (Name from GET
            /api/v1/finance/bank-accounts). The line's currency is the account's
            own currency.
          example: TEST POS
        Debit:
          type: number
          description: >-
            Debit amount, in the bank account's own currency. Exactly one of
            Debit/Credit must be greater than 0, the other must be 0.
          format: double
          example: 0
        Credit:
          type: number
          description: >-
            Credit amount, in the bank account's own currency. Exactly one of
            Debit/Credit must be greater than 0, the other must be 0.
          format: double
          example: 500
        ExchangeRate:
          type:
            - 'null'
            - number
          description: >-
            Exchange rate of the bank account's currency against the company's
            default currency. Required, and must be greater than 0, only when
            the bank account's currency differs from the default currency;
            otherwise treated as 1.
          format: double
          example: 1
        Description:
          type:
            - 'null'
            - string
          description: Description. At most 255 characters.
  securitySchemes:
    Bearer:
      type: http
      description: Access token obtained from the Noyax auth service with your API key.
      scheme: bearer
      bearerFormat: JWT

````