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

# Ingest bank transaction record



## OpenAPI

````yaml /openapi/openapi.yaml post /banks/transactions
openapi: 3.1.0
info:
  title: Tahsil API
  version: 1.0.0
  description: >-
    Tahsil müşterilerinin web ve mobil uygulamalarda kullandığı tenant-scoped
    müşteri API sözleşmesi.
servers:
  - url: https://api.tahsil.dev
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Operations - Health
    description: Public liveness and dependency readiness probes.
  - name: Identity - Auth
    description: User login, refresh and logout flows for token-based access.
  - name: Banking - Accounts
    description: Bank account aggregation endpoints available to customer tenants.
  - name: Banking - Transactions
    description: Bank transaction ingestion and retrieval endpoints.
  - name: Banking - Automation
    description: Tenant transaction matching rules, assignments and historical runs.
  - name: Banking - Polling
    description: Polling schedule definitions for bank connector queries.
  - name: Banking - Dashboard
    description: Flexible tenant dashboard analytics and widget query endpoints.
  - name: Audit - Connector Logs
    description: Customer-visible bank connector request/response audit trail.
  - name: Payments - Orchestration
    description: Tenant Virtual POS, rate plan and payment intent orchestration.
paths:
  /banks/transactions:
    post:
      tags:
        - Banking - Transactions
      summary: Ingest bank transaction record
      operationId: postBanksTransactions
      parameters:
        - name: x-company-id
          in: header
          required: true
          schema:
            type: string
          description: Target tenant company id for write operation.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionCreate'
      responses:
        '200':
          $ref: '#/components/responses/ItemResponse'
        '402':
          $ref: '#/components/responses/StatusResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    TransactionCreate:
      type: object
      required:
        - version
        - providerStamp
        - idNo
        - findAI
        - incoming
        - amount
        - balance
        - bankCode
      example:
        version: '1'
        providerStamp: DEMO-20260715-0001
        idNo: '11111111111'
        findAI: false
        incoming: true
        amount: 1250.5
        balance: 28750.5
        bankCode: demo
      properties:
        accountId:
          type:
            - string
            - 'null'
        subAccountKey:
          type:
            - string
            - 'null'
        version:
          type: string
        providerStamp:
          type: string
          description: >-
            Immutable provider idempotency key, including the bank-specific
            prefix.
        stamp:
          type: string
          format: date-time
          deprecated: true
          description: Legacy fetch timestamp; use fetchedAt for new records.
        transactionDate:
          type:
            - string
            - 'null'
          format: date-time
        fetchedAt:
          type:
            - string
            - 'null'
          format: date-time
        idNo:
          type: string
        findAI:
          type: boolean
        incoming:
          type: boolean
        amount:
          type: number
        balance:
          type: number
        bankCode:
          type: string
  responses:
    ItemResponse:
      description: Single entity response
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: boolean
              result:
                type: object
                additionalProperties: true
          example:
            status: true
            result:
              id: 64f000000000000000000001
    StatusResponse:
      description: Operation completed
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: boolean
          example:
            status: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

## Related topics

- [Delete transaction record](/api-reference/banking--transactions/delete-transaction-record.md)
- [List ingested bank transactions](/api-reference/banking--transactions/list-ingested-bank-transactions.md)
- [Discover and persist provider sub-accounts](/api-reference/banking--accounts/discover-and-persist-provider-sub-accounts.md)
- [Transaction detail](/api-reference/banking--transactions/transaction-detail.md)
- [Update transaction metadata](/api-reference/banking--transactions/update-transaction-metadata.md)
