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

# Save bank transfers

> Save a new (or update an existing) set of bank transfers



## OpenAPI

````yaml https://dev.hurdlr.com/rest/v1/devUtils/documentation?version=5&Authorization=dexfeE6aRK3zwXP4ku5aWm8w&env=sandbox post /v5/banks/bankTransfers
openapi: 3.0.1
info:
  title: Tight API
  contact:
    name: Hurdlr, Inc. (dba Tight)
    url: https://www.tight.com
    email: api@tight.com
  version: 6.0.0
servers:
  - url: https://sandbox.hurdlr.com/rest
    description: Staging Environment
  - url: https://prod.hurdlr.com/rest
    description: Production Environment
security:
  - accessTokenSecurity: []
  - basicSecurity: []
tags:
  - name: Authentication
  - name: Banks
  - name: Business & Client Management
  - name: Invoicing
  - name: Revenue
  - name: Investments
  - name: Payouts
  - name: Bills
  - name: Expenses
  - name: Payroll
  - name: Reports
  - name: Accounting
  - name: Mileage
  - name: Taxes
  - name: Time Tracking
  - name: Imports
  - name: Files
  - name: Accountant
  - name: Audit Trail
  - name: Support
  - name: Tax Engine Express
  - name: Interview Endpoint
  - name: Ledgering
  - name: Configuration
  - name: Templates
paths:
  /v5/banks/bankTransfers:
    post:
      tags:
        - Banks
      summary: Save bank transfers
      description: Save a new (or update an existing) set of bank transfers
      operationId: postBankTransfers
      requestBody:
        description: bankTransfers object
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/TRAX_POST_BODYBankTransferPostDTOV5List'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormRetVal'
      security:
        - accessTokenSecurity: []
components:
  schemas:
    TRAX_POST_BODYBankTransferPostDTOV5List:
      properties:
        bankTransfers:
          type: array
          items:
            $ref: '#/components/schemas/BankTransferPostDTOV5'
    FormRetVal:
      type: object
      properties:
        result:
          type: string
          description: The result of the action performed
          enum:
            - SUCCESS
            - FAILURE
        errors:
          $ref: '#/components/schemas/ValidationRetVal'
        id:
          type: string
          description: Id of the entity being acted upon
        webhook:
          $ref: '#/components/schemas/EntityUpdateEvent'
      description: Object containing details about result of the action performed
    BankTransferPostDTOV5:
      required:
        - bankAccountId
        - id
      type: object
      properties:
        type:
          type: string
          description: Type of the bank transfer
          enum:
            - CONFIRMED
            - PENDING
            - MATCHED
        id:
          type: integer
          description: Id of the bank transfer
          format: int64
        status:
          type: string
          description: Status of the bank transfer
          readOnly: true
          enum:
            - ACTIVE
            - INACTIVE
        reviewStatus:
          type: string
          description: Review status of the bank transfer
          enum:
            - PARTNER_REVIEW_REQUIRED
            - USER_REVIEW_REQUIRED
            - ACCOUNTANT_REVIEW_REQUIRED
            - RECONCILIATION_STAGED
            - RECONCILED
            - RECONCILIATION_DISCREPANCY
            - ADJUSTMENT_USER_REVIEW_REQUIRED
            - ADJUSTMENT_ACCOUNTANT_REVIEW_REQUIRED
            - ADJUSTMENT_RECONCILIATION_STAGED
        userAccess:
          type: string
          description: >-
            Access level for the user. This field uses the default configuration
            for the Partner; however, it can be overridden to manipulate how a
            user can interact with this bank transfer.
          enum:
            - NONE
            - READ_ONLY
            - READ_WRITE
        accountantAccess:
          type: string
          description: >-
            Access level for the accountant. This field uses the default
            configuration for the Partner; however, it can be overridden to
            manipulate how an accountant can interact with this bank transfer.
          enum:
            - NONE
            - READ_ONLY
            - READ_WRITE
        transferType:
          type: string
          description: Transfer type of the bank transfer
          readOnly: true
          enum:
            - DEPOSIT
            - WITHDRAWAL
        amount:
          type: number
          description: Total amount of the bank transfer
          example: 50.01
        date:
          type: string
          description: 'Date of the bank transfer '
          format: date
          example: '2021-01-04'
        description:
          type: string
          description: Description of the bank transfer
          example: Online Banking payment
        creditAccountId:
          type: integer
          description: 'Id of the credit account associated with this bank transfer '
          format: int64
        debitAccountId:
          type: integer
          description: 'Id of the debit account associated with this bank transfer '
          format: int64
        apiExpenseId:
          type: string
          description: Id of the expense on associated API
          readOnly: true
        apiPaymentId:
          type: string
          description: Id of the payment on associated API
          readOnly: true
        apiTransactionId:
          type: string
          description: Id of the bank transfer on associated API
          readOnly: true
        apiName:
          type: string
          description: Name of the API from which this transaction originated
          readOnly: true
          example: PLAID
          enum:
            - GOOGLELOGIN
            - LINKEDINLOGIN
            - DROPBOX
            - BOX
            - SKYDRIVE
            - CLOVER
            - STRIPE
            - GOOGLESTORAGE
            - GOOGLECONTACTS
            - GOOGLEEMAIL
            - LINKEDINCONTACTS
            - PLAID
            - KNOX
            - UBER
            - FACEBOOKLOGIN
            - FRESHBOOKS
            - HARVEST
            - KW
            - FRESHBOOKS2
            - CAPITAL_ONE
            - SQUARE
            - S3
            - DOTLOOP
            - XERO_DEPRECATED
            - REALOGY
            - UPWORK
            - SHOPIFY
            - DEDUCTR
            - ENTERPRISE
            - MOXIWORKS
            - STRIPE_EXPRESS
            - APPLELOGIN
            - APPDIRECT
            - LONEWOLF
            - USER_IMPORTED
            - LONEWOLF_TRANSACTIONDESK
            - SAMPLE_BANK
            - TAXBOT
            - THIRD_PARTY_BANK
            - GUSTO
            - THIRD_PARTY_PAYMENTS
            - XERO
            - UNIT
            - USER_ENTRY
            - MOOV
            - QBO
            - COLUMN
            - QUALPAY
            - BENCH
            - PARTNER_IMPLEMENTATION
            - CHECK
            - RUTTER
            - WAVE
            - ADYEN
            - APRIL
            - PAYABLI
        bankAccountId:
          type: integer
          description: id of the user's bank account
          format: int64
          readOnly: true
        bankDescription:
          type: string
          description: >-
            Transaction description, similar to what will show on the user's
            bank statement
          readOnly: true
        apiAccountNo:
          type: string
          description: >-
            Mask of the user's bank account, often the last 4 digits of the
            account number
          readOnly: true
        apiAccountName:
          type: string
          description: >-
            Display name for the bank account from which this bank transfer
            originated
          readOnly: true
          example: Citi Premier® Card
        apiInstitutionId:
          type: string
          description: Name or id of the institution from which the transaction originated
          readOnly: true
        matchingBankTransferId:
          type: integer
          description: Id of the matching bank transfer
          format: int64
        suggestedMatchingBankTransferIds:
          uniqueItems: true
          type: array
          description: List of ids of the suggested matching bank transfers
          readOnly: true
          items:
            type: integer
            description: List of ids of the suggested matching bank transfers
            format: int64
            readOnly: true
        customData:
          type: object
          description: >-
            Custom JSON in which you can store any data with max length of 2000
            characters
        isPayout:
          type: boolean
          description: >-
            Whether this bank transfer is an aggregate payout of other
            transactions
          readOnly: true
        v6EntityId:
          type: string
          description: Entity id on the v6 API for this bank transfer
        payoutEntries:
          $ref: '#/components/schemas/PayoutDTO'
        expenseId:
          type: integer
          description: Id of the expense to convert to a bank transfer
          format: int64
        revenueId:
          type: integer
          description: Id of the revenue to convert to a bank transfer
          format: int64
        taxPaymentId:
          type: integer
          description: Id of the tax payment to convert to a bank transfer
          format: int64
    ValidationRetVal:
      type: object
      properties:
        fieldErrors:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ValidationError'
          description: Map of field-level errors, often originating from validation errors
        globalErrors:
          type: array
          description: List of higher-level errors
          items:
            $ref: '#/components/schemas/ValidationError'
      description: Error object containing details errors incurred, if any
    EntityUpdateEvent:
      type: object
      properties:
        userId:
          type: string
        accountantUserId:
          type: string
        type:
          type: string
          enum:
            - ENTITY_UPDATE
            - LIFECYCLE_EVENT
            - LIFECYCLE
    PayoutDTO:
      type: object
      properties:
        expenseIds:
          uniqueItems: true
          type: array
          description: List of expense ids paid out by this bank transfer
          items:
            type: integer
            description: List of expense ids paid out by this bank transfer
            format: int64
        revenueIds:
          uniqueItems: true
          type: array
          description: List of revenue ids paid out by this bank transfer
          items:
            type: integer
            description: List of revenue ids paid out by this bank transfer
            format: int64
        invoiceIds:
          uniqueItems: true
          type: array
          description: List of invoice ids paid out by this bank transfer
          items:
            type: integer
            description: List of invoice ids paid out by this bank transfer
            format: int64
        invoicePaymentIds:
          uniqueItems: true
          type: array
          description: List of invoice payment ids paid out by this bank transfer
          items:
            type: integer
            description: List of invoice payment ids paid out by this bank transfer
            format: int64
        bankTransferIds:
          uniqueItems: true
          type: array
          description: List of bank transfer ids paid out by this bank transfer
          items:
            type: integer
            description: List of bank transfer ids paid out by this bank transfer
            format: int64
      description: Transactions paid out by this bank transfer
    ValidationError:
      type: object
      properties:
        type:
          type: string
          description: A broad categorization of the error
          enum:
            - DUPLICATE
            - REQUIRED
            - DELETE
            - INVALID_VALUE
            - NOT_MODIFIABLE
            - GENERAL
            - INVALID_FORMAT
        errorMessage:
          type: string
          description: Human-friendly message describing this error
        message:
          type: string
          writeOnly: true
          enum:
            - DUPLICATE
            - REQUIRED
            - DELETE
            - INVALID_VALUE
            - NOT_MODIFIABLE
            - GENERAL
            - INVALID_FORMAT
            - INVALID_MAPPING
      description: List of higher-level errors
  securitySchemes:
    accessTokenSecurity:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: /auth/account
          scopes:
            write: ''

````