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

# List account transactions

> Filters and pagination are both optional; pagination defaults to page 1, 50 per page. `pagination.total_records` and `pagination.total_pages` are always null here — call POST /transactions/count with the same body for the totals.



## OpenAPI

````yaml /openapi.json post /transactions
openapi: 3.1.0
info:
  title: Finup Public API
  version: 1.0.0
  description: >-
    Client-facing Finup API reference generated from current public endpoint
    metadata.
servers:
  - url: https://api.finup.io/backend
    description: Production
security: []
tags:
  - name: Accounts
    description: Current account, account setup, and account capabilities.
  - name: Transactions
    description: Account transaction lists and aggregates.
  - name: Cards
    description: Card issuing, listing, funding, and status changes.
paths:
  /transactions:
    post:
      tags:
        - Transactions
      summary: List account transactions
      description: >-
        Filters and pagination are both optional; pagination defaults to page 1,
        50 per page. `pagination.total_records` and `pagination.total_pages` are
        always null here — call POST /transactions/count with the same body for
        the totals.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionsRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - result
                properties:
                  result:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transaction'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          description: Missing or invalid credentials
        '403':
          description: Insufficient permission for this operation
        '404':
          description: Resource not found
      security:
        - apiKeyAuth: []
components:
  schemas:
    TransactionsRequest:
      type: object
      properties:
        filters:
          $ref: '#/components/schemas/TransactionFilters'
        pagination:
          $ref: '#/components/schemas/PaginationInput'
    Transaction:
      type: object
      properties:
        id:
          type: string
          example: 65fc4e136fb5c06281ac5e4e
        account_id:
          type: string
          example: 622c22cf766d7a2c1fafe2d6
        user_id:
          type: string
          nullable: true
          example: 65fc3d09766d7a2c1fafef99
        user:
          $ref: '#/components/schemas/PaymentUser'
          nullable: true
        status:
          type: string
          enum:
            - approved
            - canceled
            - declined
            - pending
            - processing
          example: approved
        side:
          type: string
          enum:
            - credit
            - debit
          example: debit
        amount:
          type: string
          description: >-
            Decimal money string in USD. For non-fee payments it already
            includes crossborder fees.
          example: '150.00'
        total_amount:
          type: string
          description: >-
            Payment amount including related fees: same-side fees are added,
            opposite-side fees subtracted. Decimal money string in USD.
          example: '151.25'
        currency:
          type: string
          example: USD
        type:
          type: string
          enum:
            - adjustment
            - card_transaction
            - card_deposit
            - card_withdraw
            - deposit
            - fee
            - reward
            - user_transfer
            - account_transfer
            - withdraw
          example: card_transaction
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        source_identifier:
          type: string
          nullable: true
          example: 1234 56•• •••• 5678
          description: Masked PAN for card rows, the member email for wallet rows.
        card:
          $ref: '#/components/schemas/PaymentCard'
        card_transaction_data:
          type: object
          additionalProperties: true
        fee_data:
          $ref: '#/components/schemas/PaymentFeeData'
        related_fees:
          type: array
          items:
            $ref: '#/components/schemas/RelatedFee'
          description: >-
            Same-account fee payments linked to this one. Crossborder fees are
            not listed here — they are only reflected in amount / total_amount.
        user_transfer_data:
          $ref: '#/components/schemas/TransferParties'
        account_transfer_data:
          $ref: '#/components/schemas/TransferParties'
        card_deposit_data:
          $ref: '#/components/schemas/CardTransferData'
        card_withdraw_data:
          $ref: '#/components/schemas/CardTransferData'
        deposit_data:
          $ref: '#/components/schemas/CryptoDepositData'
        withdraw_data:
          $ref: '#/components/schemas/CryptoWithdrawData'
        rule_execution_id:
          type: string
          nullable: true
          example: 68b2f1c7a1d4e90012ab34ce
          description: >-
            The automation-rule run this row belongs to, null on everything a
            rule never touched.
    Pagination:
      type: object
      properties:
        current_page:
          type: integer
          example: 1
        total_records:
          type: integer
          nullable: true
          example: 42
          description: >-
            Total matching records. Always null on POST /transactions — call
            POST /transactions/count for the totals.
        total_pages:
          type: integer
          nullable: true
          example: 5
    TransactionFilters:
      type: object
      properties:
        side:
          type: array
          items:
            type: string
            enum:
              - credit
              - debit
            example: debit
          description: Payment sides to include.
          example:
            - debit
        type:
          type: array
          items:
            type: string
            enum:
              - adjustment
              - card_transaction
              - card_deposit
              - card_withdraw
              - deposit
              - fee
              - reward
              - user_transfer
              - account_transfer
              - withdraw
            example: card_transaction
          description: Payment types to include.
          example:
            - card_transaction
        status:
          type: array
          items:
            type: string
            enum:
              - approved
              - canceled
              - declined
              - pending
              - processing
            example: approved
          example:
            - approved
            - pending
        card_id:
          type: array
          items:
            type: string
          description: Card ids to include.
          example:
            - 67fc3d0a766d7a2c1fafefb8
        id:
          type: array
          items:
            type: string
          description: >-
            Transaction ids to include. Restricts the result to exactly these
            transactions; combines (AND) with every other filter.
          example:
            - 68b2f1c7a1d4e90012ab34cd
        tag_ids:
          type: array
          items:
            type: string
          description: >-
            Card tag ids. Keeps only transactions on cards carrying at least one
            of these tags. Omitted or empty disables tag filtering.
          example:
            - 67fc3d0a766d7a2c1fafefb7
        merchant_category:
          type: array
          items:
            type: string
          description: >-
            Merchant categories (card_transaction_data.merchant_category, exact
            match, any of). Only card transactions carry a category, so a
            non-empty value restricts the result to card transactions.
          example:
            - Advertising
        search:
          type: string
          example: spotify
        from_created_at:
          type: string
          format: date-time
          example: '2026-06-01T00:00:00.000Z'
        to_created_at:
          type: string
          format: date-time
          example: '2026-06-30T23:59:59.999Z'
        include_transfers:
          type: boolean
          example: false
          description: >-
            Include transfer legs (user_transfer, card_deposit, card_withdraw)
            in the list.
        own:
          type: boolean
          example: true
          description: Limit results to transactions initiated by the caller.
        users:
          type: array
          items:
            type: string
          description: >-
            Member user ids to include. Available to roles that can see team
            data.
          example:
            - 67fc3d0a766d7a2c1fafefb9
        timezone:
          type: string
          example: Europe/Warsaw
          description: IANA timezone applied to the date filters.
    PaginationInput:
      type: object
      properties:
        page:
          type: integer
          minimum: 1
          default: 1
          example: 1
        per_page:
          type: integer
          minimum: 1
          maximum: 100
          default: 50
          example: 50
        sort_by:
          type: string
          example: created_at
        sort_direction:
          type: string
          enum:
            - asc
            - desc
          default: desc
          example: desc
    PaymentUser:
      type: object
      properties:
        id:
          type: string
          example: 65fc3d09766d7a2c1fafef99
        first_name:
          type: string
          nullable: true
          example: Alex
        last_name:
          type: string
          nullable: true
          example: Morgan
        email:
          type: string
          nullable: true
          example: alex@example.com
    PaymentCard:
      type: object
      properties:
        id:
          type: string
          example: 67c48f6fc8614632e0b338fc
        name:
          type: string
          nullable: true
          example: Marketing card
        category:
          type: string
          enum:
            - business
            - platinum
            - advertising
          example: business
          nullable: true
        masked_PAN:
          type: string
          nullable: true
          example: 1234 56•• •••• 5678
    PaymentFeeData:
      type: object
      properties:
        type:
          type: string
          enum:
            - auth
            - crossborder
            - decline
            - deposit
            - exchange
            - issuing
            - refund
            - reversal
            - withdraw
          example: crossborder
          nullable: true
          description: What the fee was charged for.
    RelatedFee:
      type: object
      properties:
        id:
          type: string
          example: 65fc4e136fb5c06281ac5e4f
        status:
          type: string
          enum:
            - approved
            - canceled
            - declined
            - pending
            - processing
          example: approved
          nullable: true
        side:
          type: string
          enum:
            - credit
            - debit
          example: debit
          nullable: true
        amount:
          type: string
          description: Decimal money string in USD.
          example: '0.50'
        type:
          type: string
          enum:
            - adjustment
            - card_transaction
            - card_deposit
            - card_withdraw
            - deposit
            - fee
            - reward
            - user_transfer
            - account_transfer
            - withdraw
          example: fee
        fee_data:
          $ref: '#/components/schemas/PaymentFeeData'
        created_at:
          type: string
          format: date-time
          nullable: true
          example: '2026-08-17T10:00:00.000Z'
        updated_at:
          type: string
          format: date-time
          nullable: true
          example: '2026-08-17T10:00:00.000Z'
    TransferParties:
      type: object
      properties:
        from_user_id:
          type: string
          nullable: true
          example: 65fc3d09766d7a2c1fafef99
        to_user_id:
          type: string
          nullable: true
          example: 65fc3d09766d7a2c1fafefaa
        from_first_name:
          type: string
          example: Alex
        from_last_name:
          type: string
          example: Morgan
        to_first_name:
          type: string
          example: Sam
        to_last_name:
          type: string
          example: Rivera
    CardTransferData:
      type: object
      properties:
        card_id:
          type: string
          nullable: true
          example: 67c48f6fc8614632e0b338fc
        wallet_user_id:
          type: string
          nullable: true
          example: 65fc3d09766d7a2c1fafef99
          description: Whose wallet was the counterparty of the card funding / withdrawal.
    CryptoDepositData:
      type: object
      properties:
        tx:
          type: string
          nullable: true
          example: '0xabc123'
        currency:
          type: string
          nullable: true
          example: USDT
        original_amount:
          type: string
          nullable: true
          example: '150'
        network:
          type: string
          nullable: true
          example: Tron
        address:
          type: string
          nullable: true
          example: TDepositAddress
        blockchain_url:
          type: string
          nullable: true
          example: https://tronscan.org/#/transaction/0xabc123
    CryptoWithdrawData:
      type: object
      properties:
        tx:
          type: string
          nullable: true
          example: '0xabc123'
        currency:
          type: string
          nullable: true
          example: USDT
        network:
          type: string
          nullable: true
          example: Tron
        address:
          type: string
          nullable: true
          example: TWithdrawAddress
        blockchain_url:
          type: string
          nullable: true
          example: https://tronscan.org/#/transaction/0xabc123
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.