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

# List account transactions

> Returns banking transactions for one eligible account in your API key’s organization, including posted movements and active pending holds. This is not limited to payouts created through the API and does not combine multiple accounts. Results are ordered by transactionAt ascending, then ID. Uses limit/offset and data/meta; limit defaults to 100 and values above 100 are capped at 100. total counts all matching records even on an empty page. Keep date/status filters fixed while paging; pending completion and late postings can shift offsets, so deduplicate by ID and reconcile periodically. startTime must precede endTime; offset plus the effective limit must not exceed 2147483647. See the account transactions guide for synchronization.



## OpenAPI

````yaml /api-reference/openapi.json get /accounts/{accountId}/transactions
openapi: 3.1.0
info:
  title: Karat Payout API
  description: >-
    Your gateway to seamless, automated, and scalable payment solutions. The
    Karat Payout API lets you create recipients, send payouts, track payment
    status, manage tax documents and invoices, record external payments, and
    subscribe to webhook events.
  version: 1.0.0
servers:
  - url: https://payouts.api.trykarat.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Account
    description: Retrieve payout source accounts, balances, and payout totals.
  - name: Payments
    description: Create and manage outgoing payouts to recipients.
  - name: Recipients
    description: Manage the payees you send payouts to.
  - name: Tax
    description: Retrieve recipient tax forms (W-9) and download links.
  - name: External Payments
    description: Record and manage payments made outside of Karat.
  - name: Webhooks
    description: Subscribe to event notifications for payout activity.
  - name: Invoices
    description: >-
      Create, list, retrieve, cancel, and send reminders for invoices; retrieve
      temporary PDF links.
paths:
  /accounts/{accountId}/transactions:
    get:
      tags:
        - Account
      summary: List account transactions
      description: >-
        Returns banking transactions for one eligible account in your API key’s
        organization, including posted movements and active pending holds. This
        is not limited to payouts created through the API and does not combine
        multiple accounts. Results are ordered by transactionAt ascending, then
        ID. Uses limit/offset and data/meta; limit defaults to 100 and values
        above 100 are capped at 100. total counts all matching records even on
        an empty page. Keep date/status filters fixed while paging; pending
        completion and late postings can shift offsets, so deduplicate by ID and
        reconcile periodically. startTime must precede endTime; offset plus the
        effective limit must not exceed 2147483647. See the account transactions
        guide for synchronization.
      operationId: listAccountTransactions
      parameters:
        - name: accountId
          in: path
          required: true
          description: >-
            An open, unlocked operational checking account belonging to the
            organization authenticated by your API key. Obtain its ID from GET
            /accounts.
          schema:
            type: string
            format: uuid
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Offset'
        - name: status
          in: query
          description: >-
            Omit to include both posted and active pending records. Completed
            pending entries are excluded.
          schema:
            type: string
            enum:
              - pending
              - posted
        - name: startTime
          in: query
          description: Inclusive lower bound, as an RFC3339 timestamp with timezone.
          schema:
            type: string
            format: date-time
        - name: endTime
          in: query
          description: >-
            Exclusive upper bound, as an RFC3339 timestamp with timezone.
            Defaults to the request time; specify a fixed value while paging.
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: Matching posted and active pending transactions.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - meta
                properties:
                  data:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/AccountTransaction'
                        - type: object
                          properties:
                            status:
                              enum:
                                - pending
                                - posted
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
              example:
                data:
                  - id: transaction_example
                    accountId: 4f266e59-5dae-49f7-9ef9-9bdf6d2b7c86
                    amount: -12500
                    currency: USD
                    status: posted
                    transactionAt: '2026-10-01T10:00:00Z'
                    postedAt: '2026-10-01T10:00:00Z'
                    timestampSource: provider
                    description: Outgoing transfer
                    type: account_transfer_intention
                    relatedTransactionId: null
                meta:
                  total: 1
                  limit: 100
                  offset: 0
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: >-
            The account does not exist, belongs to another organization, or is
            not an eligible open, unlocked operational checking account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: >-
            Transaction retrieval failed. No successful partial page is
            returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    Limit:
      name: limit
      in: query
      description: Maximum number of results to return (max 100, default 100).
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 100
    Offset:
      name: offset
      in: query
      description: Number of results to skip for pagination (default 0).
      required: false
      schema:
        type: integer
        minimum: 0
        default: 0
  schemas:
    AccountTransaction:
      type: object
      required:
        - id
        - accountId
        - amount
        - currency
        - status
        - transactionAt
        - postedAt
        - timestampSource
        - description
        - type
        - relatedTransactionId
      properties:
        id:
          type: string
          description: >-
            Transaction ID. Pending and posted records have separate IDs; upsert
            by this ID.
        accountId:
          type: string
          format: uuid
          description: Karat account ID from GET /accounts.
        amount:
          type: integer
          format: int64
          description: >-
            Signed integer minor units (USD cents). Positive credits the
            selected account; negative debits it. Pending amounts represent
            holds, not booked movements.
        currency:
          type: string
          example: USD
        status:
          type: string
          enum:
            - pending
            - posted
            - complete
          description: >-
            The list endpoint returns pending or posted. complete is a terminal
            pending record delivered only by transaction.pending_completed.
        transactionAt:
          type: string
          format: date-time
          description: >-
            Provider transaction timestamp, or database creation time when the
            provider timestamp is unavailable. Used for filtering and ordering.
        postedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Provider timestamp for a posted record; null for pending/completed
            entries and legacy records without a provider timestamp.
        timestampSource:
          type: string
          enum:
            - provider
            - recorded
          description: >-
            recorded means transactionAt uses database creation time, not a
            known provider booking time.
        description:
          type: string
        type:
          type: string
          description: >-
            Provider category. Accept unfamiliar values; all categories are
            included.
        relatedTransactionId:
          type:
            - string
            - 'null'
          description: >-
            Provider-supplied associated transaction ID, when known. Not a
            guaranteed pending-to-posted match; never infer a match from amount
            or description.
    PaginationMeta:
      type: object
      properties:
        total:
          type: integer
          description: Total number of matching records.
        limit:
          type: integer
        offset:
          type: integer
    Error:
      type: object
      description: Standard error envelope returned for all non-2xx responses.
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
          required:
            - message
      required:
        - error
  responses:
    BadRequest:
      description: The request was invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: 'amount: amount must be positive'
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: Invalid api key
    Forbidden:
      description: The authenticated organization does not have access to this feature.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: Fee analytics are not enabled for this organization
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Pass your API key as a bearer token: `Authorization: Bearer <API_KEY>`.'

````