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

# List all deposits

> List the money that has arrived across all of your virtual accounts, newest first. This feed is available in production.

The rows arrive in `deposits`. Alongside them, `total` reports how many deposits match your filters and `total_pages` how many pages that is.



## OpenAPI

````yaml /openapi/kira-api.2026-06-01.json get /v1/virtual-accounts/deposits
openapi: 3.1.0
info:
  title: Kira API
  version: '2026-06-01'
  description: >-
    REST API for users, KYC/KYB verification, virtual accounts, payouts,
    recipients, and webhooks. Every request requires an `x-api-key` header and a
    bearer access token (see Authentication). Pin your account to version
    `2026-04-14` before integrating.
  contact:
    name: Kira API Support
    email: support@kirafin.ai
servers:
  - url: https://api.balampay.com
    description: Production
  - url: https://api.balampay.com/sandbox
    description: Sandbox
security:
  - bearerAuth: []
    apiKeyAuth: []
tags:
  - name: Authentication
  - name: Versioning
  - name: Users
  - name: Virtual Accounts
  - name: Recipients
  - name: Quotations
  - name: Payouts
  - name: Reference
  - name: RFIs
paths:
  /v1/virtual-accounts/deposits:
    get:
      tags:
        - Virtual Accounts
      summary: List all deposits
      description: >-
        List the money that has arrived across all of your virtual accounts,
        newest first. This feed is available in production.


        The rows arrive in `deposits`. Alongside them, `total` reports how many
        deposits match your filters and `total_pages` how many pages that is.
      operationId: get_v1-virtual-accounts-deposits
      parameters:
        - in: header
          name: X-Api-Version
          required: false
          description: >-
            Version applied to this request. It wins over your account's pinned
            version — see [Versioning](/using-the-api/versioning).
          schema:
            type: string
            example: '2026-06-01'
        - in: query
          name: page
          required: false
          description: >-
            Which page to return, counting from `1`. This feed pages by number,
            not by offset.
          schema:
            type: integer
            minimum: 1
            default: 1
        - in: query
          name: limit
          required: false
          description: >-
            How many deposits to return. Between `1` and `100`, and `10` when
            you omit it.


            A value outside that range is rejected with a `400`.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - in: query
          name: status
          required: false
          description: >-
            Filter by deposit status.


            Available options: `PENDING`, `COMPLETED`, `FAILED`, `REFUNDED`,
            `KYT_PENDING`, `KYT_REJECTED`. See [Virtual account
            values](/reference/virtual-accounts/values#deposit-status) for what
            each one means.
          schema:
            type: string
        - in: query
          name: virtual_account_id
          required: false
          description: Return only the deposits into this one account.
          schema:
            type: string
            format: uuid
        - in: query
          name: from_date
          required: false
          description: >-
            Return only deposits from this moment on, included. Send a full ISO
            8601 timestamp or just a date as `YYYY-MM-DD`.
          schema:
            type: string
        - in: query
          name: to_date
          required: false
          description: >-
            Return only deposits up to this moment, included. Send a full ISO
            8601 timestamp or just a date as `YYYY-MM-DD`, which covers that
            whole day.
          schema:
            type: string
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
                properties:
                  deposits:
                    type: array
                    items:
                      $ref: '#/components/schemas/DepositListItem'
                  total:
                    type: integer
                    description: Total number of deposits matching the filters.
                  page:
                    type: integer
                    description: The page returned.
                  limit:
                    type: integer
                    description: The limit applied to this page.
                  total_pages:
                    type: integer
                    description: How many pages the filters produce at this limit.
              example:
                deposits:
                  - id: 77777777-8888-9999-aaaa-bbbbbbbbbbbb
                    virtual_account_id: 11111111-2222-3333-4444-555555555555
                    amount: '1000.00'
                    currency: USD
                    status: COMPLETED
                    sender:
                      name: Acme Corp
                      account_number: '****6789'
                      address: 123 Market St, San Francisco, CA
                    recipient:
                      name: Alice Smith
                      company_name: Northwind Trading LLC
                      country: USA
                    payment_rail: wire
                    settlement_tx_hash: null
                    source:
                      name: Acme Corp
                      account_number: '****6789'
                      address: 123 Market St, San Francisco, CA
                      payment_rail: wire
                      reference_number: REF-998877
                      imad: 20260901MMQFMP0100001
                      omad: null
                      trace_number: null
                    fees:
                      base_fees:
                        fixed_fee: '2.50'
                        percentage_fee: '0.00'
                        fx_markup: '0.00'
                      client_markup:
                        fixed_fee: '1.00'
                        percentage_fee: '0.00'
                        fx_markup: '0.00'
                      total_fees: '3.50'
                    net_amount: '996.50'
                    net_currency: USD
                    created_at: '2026-09-01T18:05:32.000Z'
                    updated_at: '2026-09-01T18:07:10.000Z'
                    metadata:
                      invoice_id: INV-2026-0042
                total: 42
                page: 1
                limit: 10
                total_pages: 5
        '400':
          description: >-
            A query parameter is out of range, or is not one of the values it
            accepts. `errors` names each one.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: Always `validation_error`.
                  message:
                    type: string
                    description: Always `Invalid query parameters`.
                  errors:
                    type: array
                    description: One entry per parameter that was rejected.
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: The parameter that was rejected.
                        message:
                          type: string
                          description: What is wrong with it.
              example:
                code: validation_error
                message: Invalid query parameters
                errors:
                  - field: limit
                    message: Number must be less than or equal to 100
        '403':
          description: >-
            Your request was turned away before it reached the API. The message
            talks about routing, but any of these causes it:


            - The `x-api-key` header is missing or wrong.

            - Your bearer token has expired. Get a new one from [Get access
            token](/api-reference/authentication/get-access-token).

            - The path or the HTTP method does not match.


            A missing `Authorization` header comes back as a `401` with the same
            body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                code: invalid_request
                message: >-
                  The request could not be matched to a valid route, or was
                  malformed. Verify the path and HTTP method against the API
                  reference. This is a routing or request error, not a
                  credentials or signature problem.
      security:
        - bearerAuth: []
          apiKeyAuth: []
      servers:
        - url: https://api.balampay.com
          description: Production
components:
  schemas:
    DepositListItem:
      type: object
      description: >-
        One deposit.


        `source` repeats what `sender` holds and adds the rail and its tracking
        numbers. Both are `null` together, when the bank has not told us who
        sent the money.
      properties:
        id:
          type: string
          format: uuid
          description: Deposit UUID.
        virtual_account_id:
          type: string
          format: uuid
          description: UUID of the account the money arrived in.
        amount:
          type: string
          description: How much arrived, before charges, as a decimal string.
        currency:
          type: string
          description: Currency of `amount`.
        status:
          type: string
          description: >-
            Where the deposit has got to — see [Virtual account
            values](/reference/virtual-accounts/values#deposit-status).
            Available options: `PENDING`, `COMPLETED`, `FAILED`, `REFUNDED`,
            `KYT_PENDING`, `KYT_REJECTED`.
        sender:
          type:
            - object
            - 'null'
          description: Who sent the money, as the bank reported it.
          properties:
            name:
              type:
                - string
                - 'null'
              description: Name on the sending account.
            account_number:
              type:
                - string
                - 'null'
              description: Sending account number, usually masked by the bank.
            address:
              type:
                - string
                - 'null'
              description: Address on the sending account.
        recipient:
          type: object
          description: >-
            The user who owns the account the money arrived in. Every field is
            `null` if that user can no longer be read.
          properties:
            name:
              type:
                - string
                - 'null'
              description: The user's full name, joined from the names on record.
            company_name:
              type:
                - string
                - 'null'
              description: The user's registered company name.
            country:
              type:
                - string
                - 'null'
              description: Country on the user's address, as an ISO 3166-1 alpha-3 code.
        payment_rail:
          type:
            - string
            - 'null'
          description: >-
            How the money travelled, such as `wire` or `ach_push`. Mirrors
            `source.payment_rail`.
        settlement_tx_hash:
          type:
            - string
            - 'null'
          description: >-
            On-chain transaction that settled the deposit. `null` on a fiat
            account, and until settlement runs.
        source:
          type:
            - object
            - 'null'
          description: Who sent the money, plus what the rail recorded about the transfer.
          properties:
            name:
              type:
                - string
                - 'null'
              description: Name on the sending account.
            account_number:
              type:
                - string
                - 'null'
              description: Sending account number, usually masked by the bank.
            address:
              type:
                - string
                - 'null'
              description: Address on the sending account.
            payment_rail:
              type:
                - string
                - 'null'
              description: >-
                How the money travelled, such as `wire` or `ach_push`;
                `stablecoin` on a crypto-funded deposit. `null` until the rail
                resolves.


                Not a closed set: a scheme Kira does not recognise arrives
                verbatim, so read it as an open string rather than switching on
                every value.
            reference_number:
              type:
                - string
                - 'null'
              description: Reference the sender attached to the payment.
            imad:
              type:
                - string
                - 'null'
              description: >-
                Input Message Accountability Data — the wire's identifier at the
                sending bank.
            omad:
              type:
                - string
                - 'null'
              description: >-
                Output Message Accountability Data — the same wire's identifier
                at the receiving bank.
            trace_number:
              type:
                - string
                - 'null'
              description: The ACH transfer's trace number.
        fees:
          type: object
          description: >-
            What was charged on this deposit. Every figure is a decimal string,
            and they are all `0.00` when nothing was charged.
          properties:
            base_fees:
              type: object
              description: What Kira charged.
              properties:
                fixed_fee:
                  type: string
                  description: A flat charge, as a decimal string.
                percentage_fee:
                  type: string
                  description: A charge worked out from the amount, as a decimal string.
                fx_markup:
                  type: string
                  description: A currency-conversion charge. An amount, not a rate.
            client_markup:
              type: object
              description: What you added on top, from the account's `markup`.
              properties:
                fixed_fee:
                  type: string
                  description: A flat charge, as a decimal string.
                percentage_fee:
                  type: string
                  description: A charge worked out from the amount, as a decimal string.
                fx_markup:
                  type: string
                  description: A currency-conversion charge. An amount, not a rate.
            total_fees:
              type: string
              description: Everything in `base_fees` and `client_markup` added up.
        net_amount:
          type: string
          description: '`amount` less `total_fees`, as a decimal string. Never below `0.00`.'
        net_currency:
          type: string
          description: Currency of `net_amount`.
        created_at:
          type: string
          description: When the deposit was first recorded, as an ISO 8601 timestamp.
        updated_at:
          type: string
          description: When it last changed, as an ISO 8601 timestamp.
        metadata:
          type: object
          description: Key/value pairs attached to the deposit. `{}` when there are none.
          additionalProperties: true
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
        statusCode:
          type: number
        error:
          type: string
        timestamp:
          type: string
        path:
          type: string
        details: {}
      required:
        - message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        The `data.access_token` value from [Get access
        token](/api-reference/authentication/get-access-token).
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key issued by Kira.

````