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

# Virtual Account Activity

> History of activity for a Virtual Account



## OpenAPI

````yaml https://withbridge-image1-sv-usw2-monorail-openapi.s3.amazonaws.com/latest.json get /customers/{customerID}/virtual_accounts/{virtualAccountID}/history
openapi: 3.0.2
info:
  title: Bridge API
  description: APIs to move into, out of, and between any form of a dollar
  version: '1'
servers:
  - url: https://api.bridge.xyz/v0
    description: The base path for all resources
security:
  - ApiKey: []
tags:
  - name: Customers
  - name: Fiat Payout Configuration
  - name: External Accounts
  - name: Transfers
  - name: Prefunded Accounts
  - name: Balances
  - name: Liquidation Addresses
  - name: Developers
  - name: API Keys
  - name: Plaid
  - name: Virtual Accounts
  - name: Static Memos
  - name: Cards
  - name: Funds Requests
  - name: Webhooks
  - name: Lists
  - name: Crypto Return Policies
  - name: Rewards
  - name: Associated Persons
  - name: Sandbox
paths:
  /customers/{customerID}/virtual_accounts/{virtualAccountID}/history:
    parameters:
      - $ref: '#/components/parameters/CustomerIDParameter'
      - $ref: '#/components/parameters/VirtualAccountIDParameter'
      - $ref: '#/components/parameters/DepositIDQueryParameter'
      - $ref: '#/components/parameters/DepositIDsQueryParameter'
      - $ref: '#/components/parameters/TxHashParameter'
      - $ref: '#/components/parameters/LimitParameter'
      - $ref: '#/components/parameters/EventStartingAfterParameter'
      - $ref: '#/components/parameters/EventEndingBeforeParameter'
      - $ref: '#/components/parameters/EventTypeParameter'
    get:
      tags:
        - Virtual Accounts
      summary: Virtual Account Activity
      description: History of activity for a Virtual Account
      responses:
        '200':
          description: List of Virtual Account events
          content:
            application/json:
              schema:
                title: Virtual Account history
                type: object
                required:
                  - count
                  - data
                properties:
                  count:
                    type: integer
                    description: The number of events returned
                  data:
                    type: array
                    minItems: 0
                    items:
                      $ref: '#/components/schemas/VirtualAccountEvent'
              examples:
                History:
                  $ref: '#/components/examples/VirtualAccountHistoryExample'
components:
  parameters:
    CustomerIDParameter:
      name: customerID
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Id'
    VirtualAccountIDParameter:
      name: virtualAccountID
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Id'
    DepositIDQueryParameter:
      name: deposit_id
      in: query
      required: false
      schema:
        type: string
      description: >-
        The deposit id associated with the events. Cannot be passed if
        deposit_ids is also passed
    DepositIDsQueryParameter:
      name: deposit_ids
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
      description: >-
        The deposit ids associated with the events. Pass a list of deposit ids
        like "deposit_ids[]=id1&deposit_ids[]=id2". Cannot be passed if
        deposit_id is also passed
    TxHashParameter:
      name: tx_hash
      in: query
      required: false
      schema:
        type: string
      description: The hash of the transaction
    LimitParameter:
      in: query
      name: limit
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
      description: The number of items to return (min 1, default 10, max 100)
    EventStartingAfterParameter:
      in: query
      name: starting_after
      schema:
        type: string
      description: >-
        This is an event id. If this is specified, the next page that starts
        with an event right AFTER the specified event id on the event timeline,
        which is always ordered from the newest to the oldest by creation time,
        will be returned. This also implies that events older than the specified
        event id will be returned (shouldn't be set if ending_before is set)
    EventEndingBeforeParameter:
      in: query
      name: ending_before
      schema:
        type: string
      description: >-
        This is an event id. If this is specified, the previous page that ends
        with an event right BEFORE the specified event id on the event timeline,
        which is always ordered from the newest to the oldest by creation time,
        will be returned. This also implies that events newer than the specified
        event id will be returned (shouldn't be set if starting_after is set)
    EventTypeParameter:
      name: event_type
      in: query
      required: false
      schema:
        type: string
        enum:
          - funds_received
          - payment_submitted
          - payment_processed
          - in_review
          - refund
          - refund_in_flight
          - refund_failed
          - microdeposit
          - account_update
          - deactivation
          - activation
      description: Filter history by event type
  schemas:
    VirtualAccountEvent:
      required:
        - id
      properties:
        id:
          $ref: '#/components/schemas/Id'
          readOnly: true
        type:
          type: string
          description: The type of activity
          enum:
            - funds_scheduled
            - funds_received
            - payment_submitted
            - payment_processed
            - in_review
            - refund
            - refund_in_flight
            - refund_failed
            - microdeposit
            - account_update
            - deactivation
            - activation
        customer_id:
          $ref: '#/components/schemas/Id'
          description: >-
            The id of the Bridge customer that this Virtual Account event
            belongs to
          type: string
          minLength: 1
          readOnly: true
        virtual_account_id:
          $ref: '#/components/schemas/Id'
          description: >-
            The id of the Virtual Account that this Virtual Account event
            belongs to
          type: string
          minLength: 1
          readOnly: true
        amount:
          type: string
          description: >-
            Amount for that event, represented as a dollar denominated string.
            Examples include "100.25", "0.1", "1.234567" etc. For "incoming"
            events such as funds_received or under_review, this is the initial
            amount received. For "outgoing" events such as payment_submitted and
            payment_processed, this is the amount of funds sent to the
            destination. For non-transactional events such as account_update,
            this will be zero.
        currency:
          $ref: '#/components/schemas/Currency'
        developer_fee_amount:
          type: string
          description: >-
            Amount of the developer fee if any, represented as a dollar
            denominated string. This is the final amount taken out of what is
            ultimately received by your customer, not a percentage. Examples
            include "100.25", "0.1", "1.234567" etc.
        exchange_fee_amount:
          type: string
          description: >-
            Amount of the exchange fee if any, represented as a dollar
            denominated string. Examples include "100.25", "0.1", "1.234567"
            etc.
        subtotal_amount:
          type: string
          description: >-
            Amount of the subtotal, represented as a dollar denominated string.
            Examples include "100.25", "0.1", "1.234567" etc.
        gas_fee:
          type: string
          description: >-
            Amount of the gas fee if any, represented as a dollar denominated
            string. Examples include "100.25", "0.1", "1.234567" etc.
        deposit_id:
          type: string
          description: >-
            The id of the deposit related to this event. This id can be used to
            link multiple events to the same transaction. Omitted for some
            `refund` cases.
        destination_tx_hash:
          type: string
          description: The hash of the on-chain transfer to the destination address
        destination_payment_rail:
          type: string
          description: The destination payment rail where the funds are deposited to
        source:
          $ref: '#/components/schemas/VirtualAccountEventSource'
        created_at:
          readOnly: true
          type: string
          description: Time of creation of the event
          format: date-time
        receipt:
          $ref: '#/components/schemas/Receipt'
          readOnly: true
          description: >-
            Receipt information of a virtual account event. Available for drain
            and payment_processed events.
        refund:
          $ref: '#/components/schemas/VirtualAccountRefundDetails'
          readOnly: true
          description: >-
            Refund information of a virtual account event. Available for refund
            events.
    Id:
      description: A UUID that uniquely identifies a resource
      type: string
      pattern: '[a-z0-9]*'
      minLength: 1
      maxLength: 42
    Currency:
      type: string
      enum:
        - usdb
        - usdc
        - usdt
        - usd
        - pyusd
    VirtualAccountEventSource:
      required:
        - payment_rail
      properties:
        payment_rail:
          $ref: '#/components/schemas/VirtualAccountEventPaymentRails'
        description:
          description: >-
            (ACH, SPEI, and FedNow only) The description of the deposit that the
            customer sent
          type: string
          readOnly: true
        sender_name:
          description: >-
            (ACH, SEPA, SPEI, and FedNow only) The name of the business or
            individual who initiated the transaction
          type: string
          readOnly: true
        sender_bank_routing_number:
          description: >-
            (ACH and FedNow only) The routing number of the entity that
            initiated this transaction
          type: string
          readOnly: true
        end_to_end_id:
          $ref: '#/components/schemas/EndToEndId'
          readOnly: true
        trace_number:
          description: >-
            (ACH only) The unique, a 15-digit number associated with each ACH
            transaction that is used for tracking and reconciling transactions
          type: string
          readOnly: true
        bank_routing_number:
          description: >-
            (Wire only) The routing number of the bank that sent the wire to the
            Virtual Account
          type: string
          readOnly: true
        bank_name:
          description: (Wire and SPEI only) The name of the bank that sent the deposit.
          type: string
          readOnly: true
        bank_code:
          description: >-
            (SPEI only) The bank code of the sender's bank that initiated this
            SPEI transaction.
          type: string
          readOnly: true
        bank_beneficiary_name:
          description: (Wire only) The beneficiary name of this wire
          type: string
          readOnly: true
        bank_beneficiary_address:
          description: (Wire only) The beneficiary address of this wire
          type: string
          readOnly: true
        originator_name:
          description: (Wire only) The originator name of this wire
          type: string
          readOnly: true
        originator_address:
          description: (Wire only) The originator address of this wire
          type: string
          readOnly: true
        wire_message:
          description: (Wire only) The memo for this wire
          type: string
          readOnly: true
        imad:
          $ref: '#/components/schemas/Imad'
          readOnly: true
        bic:
          description: (SEPA only) The BIC of the bank that initiated this transaction
          type: string
          readOnly: true
        iban:
          description: >-
            (SEPA only) The full IBAN of the account that initiated this
            transaction
          type: string
          readOnly: true
        iban_last_4:
          description: >-
            (SEPA only) The last 4 digits of the IBAN of the account that
            initiated this transaction
          type: string
          readOnly: true
        clabe:
          description: >-
            (SPEI only) The CLABE (account number) of the account that initiated
            this transaction
          type: string
          readOnly: true
        reference:
          $ref: '#/components/schemas/SepaReference'
          description: >-
            (SEPA and SPEI only) The SEPA/SPEI (concepto de pago) reference
            field set by the initiator of this transaction
          readOnly: true
        tracking_number:
          description: >-
            (SPEI only) The clave de rastreo or tracking number of the SPEI
            transaction
          type: string
          readOnly: true
        payment_scheme:
          $ref: '#/components/schemas/PaymentScheme'
          description: >-
            (SEPA only) The payment scheme used for this transaction, such as
            SEPA Credit Transfer or SEPA Instant
        uetr:
          $ref: '#/components/schemas/Uetr'
    Receipt:
      required:
        - initial_amount
        - developer_fee
        - exchange_fee
        - subtotal_amount
      properties:
        initial_amount:
          description: >-
            The initial amount of the transfer, represented as a decimal string.
            Examples include "100.25", "0.1", "1.234567", "1.01" etc.


            It's denominated in the transfer's fiat currency (see the top-level
            `currency` field for more info)
          type: string
        developer_fee:
          description: >-
            The fee, expressed as a decimal string, represents the amount you
            wish to reserve for your own account.  This fee is the final amount
            deducted from what your customer ultimately receives, rather than a
            percentage.


            It is denominated in the transfer's fiat currency (see the top-level
            `currency` field for more info).
          type: string
        exchange_fee:
          description: >-
            The fee, expressed as a decimal string, represents the amount Bridge
            charges for facilitating the transfer.  This is the final amount to
            take out of what is ultimately received by your customer, not a
            percentage.


            It's denominated in the transfer's fiat currency (see top-level
            `currency` field for more info).
          type: string
        subtotal_amount:
          description: >-
            The initial amount of the transfer less fixed fees (including the
            developer_fee and exchange_fee). Examples include "100.25", "0.1",
            "1.234567", "1.01" etc.


            It's denominated in the transfer's fiat currency (see top-level
            `currency` field for more info).
          type: string
        remaining_prefunded_balance:
          description: >-
            For Prefunded Accounts, this value will represent the remaining
            account balance after the transfer.
          type: string
        gas_fee:
          description: >-
            The fee, expressed as a decimal string. It's deducted from the
            withdrawn amount to pay for gas.  Only nonzero to crypto withdrawals
            that cost gas (e.g. USDT), and only known when the transaction is
            confirmed on-chain.  Will be missing if not yet known.


            It's denominated in the fiat currency to which the destination
            currency is pegged.
          type: string
        final_amount:
          description: >-
            The final amount of the transfer, expressed as a decimal string,
            equal to the subtotal_amount minus any gas fees.  If the gas fee is
            not known, this field will be missing.  Examples include "100.25",
            "0.1", "1.234567", "1.01" etc.


            It's denominated in the destination currency if that is a fiat
            currency or the fiat currency to which the destination currency is
            pegged.
          type: string
        source_tx_hash:
          description: >-
            The hash of the on-chain deposit to the source address, where
            applicable
        destination_tx_hash:
          description: >-
            The hash of the on-chain transfer to the destination address, where
            applicable
        exchange_rate:
          description: >-
            The effective exchange rate can be calculated by dividing the
            converted amount by the amount available for conversion after
            deducting the developer fee. This rate includes a currency
            conversion spread and is subject to a rounding precision loss during
            the calculation. Currently it's populated for SEPA onramp/offramp
            transfers only.
        url:
          description: The URL of a user-facing copy of the receipt.
          type: string
        bank_details:
          description: >-
            Bank-lookup details for fiat offramp receipts, to help the
            recipient's bank locate the payment. Present for enabled developers
            once the offramp's bank leg exists; individual fields may be null
            until they become available (e.g. the ACH trace ID before submission
            to the Fed).
          type: object
          properties:
            sending_routing_number:
              description: Routing number of the bank Bridge sent the payment from.
              type: string
            ach_description:
              description: Statement descriptor on the outgoing ACH credit.
              type: string
            ach_trace_id:
              description: ACH trace number, populated after submission to the Fed.
              type: string
            recipient_name:
              description: Name on the receiving external account.
              type: string
    VirtualAccountRefundDetails:
      required:
        - code
        - reason
        - refunded_at
      properties:
        code:
          type: string
          description: The code of the refund
        reason:
          type: string
          description: The reason of the refund
        refunded_at:
          type: string
          description: The time of the refund
        risk_rejection_reason:
          description: >-
            If the return is due to a risk rejection, this field will be
            populated with the reason for the risk rejection.
          type: string
    VirtualAccountEventPaymentRails:
      type: string
      enum:
        - ach_push
        - bre_b
        - faster_payments
        - fednow
        - pix
        - sepa
        - spei
        - wire
    EndToEndId:
      description: >-
        The end-to-end ID of the FedNow transaction, assigned by the sending
        bank, and is not guaranteed to be unique across payments.
      type: string
    Imad:
      description: (Wire only) The IMAD of a wire transfer, if available
      type: string
      pattern: '[a-z0-9]*'
      minLength: 1
      maxLength: 40
    SepaReference:
      description: >-
        A reference message to be sent with a SEPA transaction. We recommend you
        set a unique value to help you and your customers track payments end to
        end. It must be from 6 to 140 characters. The allowed characters are
        `a-z`, `A-Z`, `0-9`, spaces, ampersand (`&`), hyphen (`-`), full stop
        (`.`), and solidus (`/`). If not populated, the default value is
        "Payment via Bridge {unique_token}".
      type: string
      minLength: 6
      maxLength: 140
    PaymentScheme:
      type: string
      enum:
        - sepa_credit
        - sepa_instant
    Uetr:
      description: >-
        Deprecated: use tracking_number instead. The unique end-to-end
        transaction reference, for tracing purposes.
      type: string
      readOnly: true
      deprecated: true
  examples:
    VirtualAccountHistoryExample:
      summary: A list of event history across all customers and Virtual Accounts
      value:
        count: 3
        data:
          - id: va_event_456
            customer_id: cust_alice
            virtual_account_id: va_123
            type: payment_submitted
            amount: '120.0'
            currency: usd
            developer_fee_amount: '1.25'
            exchange_fee_amount: '2.2'
            subtotal_amount: '120.0'
            gas_fee: '0.0'
            deposit_id: deposit_123
            created_at: '2024-01-01T00:00:00.000Z'
            destination_tx_hash: '0xdeadbeef'
            source:
              payment_rail: ach_push
              description: ACH description
              sender_name: The name of the business or individual who initiated the ACH
              sender_bank_routing_number: >-
                The routing number of the entity that initiated this ACH
                transaction
              trace_number: >-
                The unique, a 15-digit number associated with each ACH
                transaction that is used for tracking and reconciling
                transactions
          - id: va_event_123
            customer_id: cust_alice
            virtual_account_id: va_123
            type: funds_received
            amount: '123.45'
            currency: usd
            developer_fee_amount: '0.0'
            exchange_fee_amount: '0.0'
            subtotal_amount: '123.45'
            gas_fee: '0.0'
            deposit_id: deposit_123
            created_at: '2024-01-01T00:00:00.000Z'
            source:
              payment_rail: ach_push
              description: ACH description
              sender_name: The name of the business or individual who initiated the ACH
              sender_bank_routing_number: >-
                The routing number of the entity that initiated this ACH
                transaction
              trace_number: >-
                The unique, a 15-digit number associated with each ACH
                transaction that is used for tracking and reconciling
                transactions
          - id: va_event_789
            customer_id: cust_alice
            virtual_account_id: va_456
            type: payment_processed
            amount: '123.45'
            currency: usdc
            developer_fee_amount: '0.0'
            exchange_fee_amount: '0.0'
            subtotal_amount: '123.45'
            gas_fee: '0.0'
            deposit_id: deposit_789
            created_at: '2025-06-01T00:00:00.000Z'
            source:
              payment_rail: spei
              description: Receiving CLABE | clave de rastreo | SPEI reference
              tracking_number: >-
                The unique tracking number or clave de rastreo for this SPEI
                transaction
              sender_name: >-
                The name of the business or individual who initiated the SPEI
                credit
              clabe: '646180546700000164'
              reference: The reference or concepto de pago for this SPEI transaction
  securitySchemes:
    ApiKey:
      type: apiKey
      name: Api-Key
      in: header

````