{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/stripe/main/json-schema/stripe-balance-transactions-list-schema.json",
  "title": "BalanceTransactionsList",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/stripe-balance-api-openapi.yml#/components/schemas/BalanceTransactionsList",
  "type": "object",
  "required": [
    "data",
    "has_more",
    "object",
    "url"
  ],
  "properties": {
    "data": {
      "items": {
        "$ref": "#/$defs/balance_transaction"
      },
      "type": "array"
    },
    "has_more": {
      "description": "True if this list has another page of items after this one that can be fetched.",
      "type": "boolean"
    },
    "object": {
      "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
      "enum": [
        "list"
      ],
      "type": "string"
    },
    "url": {
      "description": "The URL where this list can be accessed.",
      "maxLength": 5000,
      "pattern": "^/v1/balance_transactions",
      "type": "string"
    }
  },
  "$defs": {
    "balance_transaction": {
      "description": "Balance transactions represent funds moving through your Stripe account.\nStripe creates them for every type of transaction that enters or leaves your Stripe account balance.\n\nRelated guide: [Balance transaction types](https://stripe.com/docs/reports/balance-transaction-types)",
      "properties": {
        "amount": {
          "description": "Gross amount of this transaction (in cents (or local equivalent)). A positive value represents funds charged to another party, and a negative value represents funds sent to another party.",
          "type": "integer"
        },
        "available_on": {
          "description": "The date that the transaction's net funds become available in the Stripe balance.",
          "format": "unix-time",
          "type": "integer"
        },
        "created": {
          "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
          "format": "unix-time",
          "type": "integer"
        },
        "currency": {
          "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
          "type": "string"
        },
        "description": {
          "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
          "maxLength": 5000,
          "type": [
            "string",
            "null"
          ]
        },
        "exchange_rate": {
          "description": "If applicable, this transaction uses an exchange rate. If money converts from currency A to currency B, then the `amount` in currency A, multipled by the `exchange_rate`, equals the `amount` in currency B. For example, if you charge a customer 10.00 EUR, the PaymentIntent's `amount` is `1000` and `currency` is `eur`. If this converts to 12.34 USD in your Stripe account, the BalanceTransaction's `amount` is `1234`, its `currency` is `usd`, and the `exchange_rate` is `1.234`.",
          "type": [
            "number",
            "null"
          ]
        },
        "fee": {
          "description": "Fees (in cents (or local equivalent)) paid for this transaction. Represented as a positive integer when assessed.",
          "type": "integer"
        },
        "fee_details": {
          "description": "Detailed breakdown of fees (in cents (or local equivalent)) paid for this transaction.",
          "items": {
            "$ref": "#/$defs/fee"
          },
          "type": "array"
        },
        "id": {
          "description": "Unique identifier for the object.",
          "maxLength": 5000,
          "type": "string"
        },
        "net": {
          "description": "Net impact to a Stripe balance (in cents (or local equivalent)). A positive value represents incrementing a Stripe balance, and a negative value decrementing a Stripe balance. You can calculate the net impact of a transaction on a balance by `amount` - `fee`",
          "type": "integer"
        },
        "object": {
          "description": "String representing the object's type. Objects of the same type share the same value.",
          "enum": [
            "balance_transaction"
          ],
          "type": "string"
        },
        "reporting_category": {
          "description": "Learn more about how [reporting categories](https://stripe.com/docs/reports/reporting-categories) can help you understand balance transactions from an accounting perspective.",
          "maxLength": 5000,
          "type": "string"
        },
        "source": {
          "anyOf": [
            {
              "maxLength": 5000,
              "type": "string"
            },
            {
              "$ref": "#/$defs/application_fee"
            },
            {
              "$ref": "#/$defs/charge"
            },
            {
              "$ref": "#/$defs/connect_collection_transfer"
            },
            {
              "$ref": "#/$defs/customer_cash_balance_transaction"
            },
            {
              "$ref": "#/$defs/dispute"
            },
            {
              "$ref": "#/$defs/fee_refund"
            },
            {
              "$ref": "#/$defs/issuing.authorization"
            },
            {
              "$ref": "#/$defs/issuing.dispute"
            },
            {
              "$ref": "#/$defs/issuing.transaction"
            },
            {
              "$ref": "#/$defs/payout"
            },
            {
              "$ref": "#/$defs/platform_tax_fee"
            },
            {
              "$ref": "#/$defs/refund"
            },
            {
              "$ref": "#/$defs/reserve_transaction"
            },
            {
              "$ref": "#/$defs/tax_deducted_at_source"
            },
            {
              "$ref": "#/$defs/topup"
            },
            {
              "$ref": "#/$defs/transfer"
            },
            {
              "$ref": "#/$defs/transfer_reversal"
            }
          ],
          "description": "This transaction relates to the Stripe object.",
          "x-expansionResources": {
            "oneOf": [
              {
                "$ref": "#/$defs/application_fee"
              },
              {
                "$ref": "#/$defs/charge"
              },
              {
                "$ref": "#/$defs/connect_collection_transfer"
              },
              {
                "$ref": "#/$defs/customer_cash_balance_transaction"
              },
              {
                "$ref": "#/$defs/dispute"
              },
              {
                "$ref": "#/$defs/fee_refund"
              },
              {
                "$ref": "#/$defs/issuing.authorization"
              },
              {
                "$ref": "#/$defs/issuing.dispute"
              },
              {
                "$ref": "#/$defs/issuing.transaction"
              },
              {
                "$ref": "#/$defs/payout"
              },
              {
                "$ref": "#/$defs/platform_tax_fee"
              },
              {
                "$ref": "#/$defs/refund"
              },
              {
                "$ref": "#/$defs/reserve_transaction"
              },
              {
                "$ref": "#/$defs/tax_deducted_at_source"
              },
              {
                "$ref": "#/$defs/topup"
              },
              {
                "$ref": "#/$defs/transfer"
              },
              {
                "$ref": "#/$defs/transfer_reversal"
              }
            ]
          },
          "x-stripeBypassValidation": true
        },
        "status": {
          "description": "The transaction's net funds status in the Stripe balance, which are either `available` or `pending`.",
          "maxLength": 5000,
          "type": "string"
        },
        "type": {
          "description": "Transaction type: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_inbound`, `obligation_outbound`, `obligation_reversal_inbound`, `obligation_reversal_outbound`, `obligation_payout`, `obligation_payout_failure`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`. Learn more about [balance transaction types and what they represent](https://stripe.com/docs/reports/balance-transaction-types). To classify transactions for accounting purposes, consider `reporting_category` instead.",
          "enum": [
            "adjustment",
            "advance",
            "advance_funding",
            "anticipation_repayment",
            "application_fee",
            "application_fee_refund",
            "charge",
            "climate_order_purchase",
            "climate_order_refund",
            "connect_collection_transfer",
            "contribution",
            "issuing_authorization_hold",
            "issuing_authorization_release",
            "issuing_dispute",
            "issuing_transaction",
            "obligation_inbound",
            "obligation_outbound",
            "obligation_payout",
            "obligation_payout_failure",
            "obligation_reversal_inbound",
            "obligation_reversal_outbound",
            "payment",
            "payment_failure_refund",
            "payment_network_reserve_hold",
            "payment_network_reserve_release",
            "payment_refund",
            "payment_reversal",
            "payment_unreconciled",
            "payout",
            "payout_cancel",
            "payout_failure",
            "refund",
            "refund_failure",
            "reserve_transaction",
            "reserved_funds",
            "stripe_fee",
            "stripe_fx_fee",
            "tax_fee",
            "topup",
            "topup_reversal",
            "transfer",
            "transfer_cancel",
            "transfer_failure",
            "transfer_refund"
          ],
          "type": "string"
        }
      },
      "required": [
        "amount",
        "available_on",
        "created",
        "currency",
        "fee",
        "fee_details",
        "id",
        "net",
        "object",
        "reporting_category",
        "status",
        "type"
      ],
      "title": "BalanceTransaction",
      "type": "object",
      "x-expandableFields": [
        "fee_details",
        "source"
      ],
      "x-resourceId": "balance_transaction"
    }
  }
}