openapi: 3.0.0
info:
title: Stripe Balance API
description: >-
This is an object representing your Stripe balance. You can retrieve it to
see the balance currently on your Stripe account. You can also retrieve the
balance history, which contains a list of transactions that contributed to
the balance (charges, payouts, and so forth).
contact:
email: dev-platform@stripe.com
name: Stripe Dev Platform Team
url: https://stripe.com
termsOfService: https://stripe.com/us/terms/
version: '2023-10-16'
x-stripeSpecFilename: spec3
security:
- basicAuth: []
- bearerAuth: []
servers:
- url: https://api.stripe.com/
paths:
/v1/balance:
get:
description: >-
Retrieves the current account balance, based on the authentication
that was used to make the request.
For a sample request, see Accounting for negative balances.
operationId: getBalance
parameters:
- description: Specifies which fields in the response should be expanded.
explode: true
in: query
name: expand
required: false
schema:
items:
maxLength: 5000
type: string
type: array
style: deepObject
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: '#/components/schemas/GetBalanceRequest'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/balance'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Get Balance
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Balance
- Get
/v1/balance/history:
get:
description: >-
Returns a list of transactions that have contributed to the Stripe
account balance (e.g., charges, transfers, and so forth). The
transactions are returned in sorted order, with the most recent
transactions appearing first.
Note that this endpoint was previously called “Balance history” and
used the path /v1/balance/history.
operationId: getBalanceHistory
parameters:
- explode: true
in: query
name: created
required: false
schema:
anyOf:
- properties:
gt:
type: integer
gte:
type: integer
lt:
type: integer
lte:
type: integer
title: range_query_specs
type: object
- type: integer
style: deepObject
- description: >-
Only return transactions in a certain currency. 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).
in: query
name: currency
required: false
schema:
type: string
style: form
- description: >-
A cursor for use in pagination. `ending_before` is an object ID that
defines your place in the list. For instance, if you make a list
request and receive 100 objects, starting with `obj_bar`, your
subsequent call can include `ending_before=obj_bar` in order to
fetch the previous page of the list.
in: query
name: ending_before
required: false
schema:
maxLength: 5000
type: string
style: form
- description: Specifies which fields in the response should be expanded.
explode: true
in: query
name: expand
required: false
schema:
items:
maxLength: 5000
type: string
type: array
style: deepObject
- description: >-
A limit on the number of objects to be returned. Limit can range
between 1 and 100, and the default is 10.
in: query
name: limit
required: false
schema:
type: integer
style: form
- description: >-
For automatic Stripe payouts only, only returns transactions that
were paid out on the specified payout ID.
in: query
name: payout
required: false
schema:
maxLength: 5000
type: string
style: form
- description: Only returns the original transaction.
in: query
name: source
required: false
schema:
maxLength: 5000
type: string
style: form
- description: >-
A cursor for use in pagination. `starting_after` is an object ID
that defines your place in the list. For instance, if you make a
list request and receive 100 objects, ending with `obj_foo`, your
subsequent call can include `starting_after=obj_foo` in order to
fetch the next page of the list.
in: query
name: starting_after
required: false
schema:
maxLength: 5000
type: string
style: form
- description: >-
Only returns transactions of the given type. One of: `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`.
in: query
name: type
required: false
schema:
maxLength: 5000
type: string
style: form
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: '#/components/schemas/GetBalanceHistoryRequest'
required: false
responses:
'200':
content:
application/json:
schema:
description: ''
x-expandableFields:
- data
$ref: '#/components/schemas/BalanceTransactionsList'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Get Balance History
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Balance
- Get
- History
/v1/balance/history/{id}:
get:
description: >-
Retrieves the balance transaction with the given ID.
Note that this endpoint previously used the path
/v1/balance/history/:id.
operationId: getBalanceHistoryId
parameters:
- description: Specifies which fields in the response should be expanded.
explode: true
in: query
name: expand
required: false
schema:
items:
maxLength: 5000
type: string
type: array
style: deepObject
- in: path
name: id
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: '#/components/schemas/GetBalanceHistoryIdRequest'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/balance_transaction'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Get Balance History Id
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Balance
- Get
- History
- Identifiers
/v1/balance_transactions:
get:
description: >-
Returns a list of transactions that have contributed to the Stripe
account balance (e.g., charges, transfers, and so forth). The
transactions are returned in sorted order, with the most recent
transactions appearing first.
Note that this endpoint was previously called “Balance history” and
used the path /v1/balance/history.
operationId: getBalanceTransactions
parameters:
- explode: true
in: query
name: created
required: false
schema:
anyOf:
- properties:
gt:
type: integer
gte:
type: integer
lt:
type: integer
lte:
type: integer
title: range_query_specs
type: object
- type: integer
style: deepObject
- description: >-
Only return transactions in a certain currency. 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).
in: query
name: currency
required: false
schema:
type: string
style: form
- description: >-
A cursor for use in pagination. `ending_before` is an object ID that
defines your place in the list. For instance, if you make a list
request and receive 100 objects, starting with `obj_bar`, your
subsequent call can include `ending_before=obj_bar` in order to
fetch the previous page of the list.
in: query
name: ending_before
required: false
schema:
maxLength: 5000
type: string
style: form
- description: Specifies which fields in the response should be expanded.
explode: true
in: query
name: expand
required: false
schema:
items:
maxLength: 5000
type: string
type: array
style: deepObject
- description: >-
A limit on the number of objects to be returned. Limit can range
between 1 and 100, and the default is 10.
in: query
name: limit
required: false
schema:
type: integer
style: form
- description: >-
For automatic Stripe payouts only, only returns transactions that
were paid out on the specified payout ID.
in: query
name: payout
required: false
schema:
maxLength: 5000
type: string
style: form
- description: Only returns the original transaction.
in: query
name: source
required: false
schema:
maxLength: 5000
type: string
style: form
- description: >-
A cursor for use in pagination. `starting_after` is an object ID
that defines your place in the list. For instance, if you make a
list request and receive 100 objects, ending with `obj_foo`, your
subsequent call can include `starting_after=obj_foo` in order to
fetch the next page of the list.
in: query
name: starting_after
required: false
schema:
maxLength: 5000
type: string
style: form
- description: >-
Only returns transactions of the given type. One of: `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`.
in: query
name: type
required: false
schema:
maxLength: 5000
type: string
style: form
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: '#/components/schemas/GetBalanceTransactionsRequest'
required: false
responses:
'200':
content:
application/json:
schema:
description: ''
x-expandableFields:
- data
$ref: '#/components/schemas/BalanceTransactionsList'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Get Balance Transactions
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Balance
- Get
- Transactions
/v1/balance_transactions/{id}:
get:
description: >-
Retrieves the balance transaction with the given ID.
Note that this endpoint previously used the path
/v1/balance/history/:id.
operationId: getBalanceTransactionsId
parameters:
- description: Specifies which fields in the response should be expanded.
explode: true
in: query
name: expand
required: false
schema:
items:
maxLength: 5000
type: string
type: array
style: deepObject
- in: path
name: id
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: '#/components/schemas/GetBalanceTransactionsIdRequest'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/balance_transaction'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Get Balance Transactions Id
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Balance
- Get
- Identifiers
- Transactions
components:
schemas:
balance:
description: >-
This is an object representing your Stripe balance. You can retrieve it
to see
the balance currently on your Stripe account.
You can also retrieve the balance history, which contains a list of
[transactions](https://stripe.com/docs/reporting/balance-transaction-types)
that contributed to the balance
(charges, payouts, and so forth).
The available and pending amounts for each currency are broken down
further by
payment source types.
Related guide: [Understanding Connect account
balances](https://stripe.com/docs/connect/account-balances)
properties:
available:
description: >-
Available funds that you can transfer or pay out automatically by
Stripe or explicitly through the [Transfers
API](https://stripe.com/docs/api#transfers) or [Payouts
API](https://stripe.com/docs/api#payouts). You can find the
available balance for each currency and payment type in the
`source_types` property.
items:
$ref: '#/components/schemas/balance_amount'
type: array
connect_reserved:
description: >-
Funds held due to negative balances on connected Custom accounts.
You can find the connect reserve balance for each currency and
payment type in the `source_types` property.
items:
$ref: '#/components/schemas/balance_amount'
type: array
instant_available:
description: Funds that you can pay out using Instant Payouts.
items:
$ref: '#/components/schemas/balance_amount_net'
type: array
issuing:
$ref: '#/components/schemas/balance_detail'
livemode:
description: >-
Has the value `true` if the object exists in live mode or the value
`false` if the object exists in test mode.
type: boolean
object:
description: >-
String representing the object's type. Objects of the same type
share the same value.
enum:
- balance
type: string
pending:
description: >-
Funds that aren't available in the balance yet. You can find the
pending balance for each currency and each payment type in the
`source_types` property.
items:
$ref: '#/components/schemas/balance_amount'
type: array
required:
- available
- livemode
- object
- pending
title: Balance
type: object
x-expandableFields:
- available
- connect_reserved
- instant_available
- issuing
- pending
x-resourceId: balance
error:
description: An error response from the Stripe API
properties:
error:
$ref: '#/components/schemas/api_errors'
required:
- error
type: object
balance_transaction:
description: >-
Balance transactions represent funds moving through your Stripe account.
Stripe creates them for every type of transaction that enters or leaves
your Stripe account balance.
Related 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
nullable: true
type: string
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`.
nullable: true
type: number
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: '#/components/schemas/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: '#/components/schemas/application_fee'
- $ref: '#/components/schemas/charge'
- $ref: '#/components/schemas/connect_collection_transfer'
- $ref: '#/components/schemas/customer_cash_balance_transaction'
- $ref: '#/components/schemas/dispute'
- $ref: '#/components/schemas/fee_refund'
- $ref: '#/components/schemas/issuing.authorization'
- $ref: '#/components/schemas/issuing.dispute'
- $ref: '#/components/schemas/issuing.transaction'
- $ref: '#/components/schemas/payout'
- $ref: '#/components/schemas/platform_tax_fee'
- $ref: '#/components/schemas/refund'
- $ref: '#/components/schemas/reserve_transaction'
- $ref: '#/components/schemas/tax_deducted_at_source'
- $ref: '#/components/schemas/topup'
- $ref: '#/components/schemas/transfer'
- $ref: '#/components/schemas/transfer_reversal'
description: This transaction relates to the Stripe object.
nullable: true
x-expansionResources:
oneOf:
- $ref: '#/components/schemas/application_fee'
- $ref: '#/components/schemas/charge'
- $ref: '#/components/schemas/connect_collection_transfer'
- $ref: '#/components/schemas/customer_cash_balance_transaction'
- $ref: '#/components/schemas/dispute'
- $ref: '#/components/schemas/fee_refund'
- $ref: '#/components/schemas/issuing.authorization'
- $ref: '#/components/schemas/issuing.dispute'
- $ref: '#/components/schemas/issuing.transaction'
- $ref: '#/components/schemas/payout'
- $ref: '#/components/schemas/platform_tax_fee'
- $ref: '#/components/schemas/refund'
- $ref: '#/components/schemas/reserve_transaction'
- $ref: '#/components/schemas/tax_deducted_at_source'
- $ref: '#/components/schemas/topup'
- $ref: '#/components/schemas/transfer'
- $ref: '#/components/schemas/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
GetBalanceRequest:
type: object
properties: {}
GetBalanceHistoryRequest:
type: object
properties: {}
BalanceTransactionsList:
type: object
required:
- data
- has_more
- object
- url
properties:
data:
items:
$ref: '#/components/schemas/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
GetBalanceHistoryIdRequest:
type: object
properties: {}
GetBalanceTransactionsRequest:
type: object
properties: {}
GetBalanceTransactionsIdRequest:
type: object
properties: {}
securitySchemes:
basicAuth:
description: >-
Basic HTTP authentication. Allowed headers-- Authorization: Basic
| Authorization: Basic
scheme: basic
type: http
bearerAuth:
bearerFormat: auth-scheme
description: >-
Bearer HTTP authentication. Allowed headers-- Authorization: Bearer
scheme: bearer
type: http
tags:
- name: Balance
- name: Get
- name: History
- name: Identifiers
- name: Transactions