Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@ This release changes the pinned API version to `2026-03-25.preview`. It is built
* [#1745](https://github.com/stripe/stripe-python/pull/1745) Merge to beta
* [#1713](https://github.com/stripe/stripe-python/pull/1713) Delete API_VERSION file as it is no longer needed

## 15.0.1 - 2026-04-01
* [#1786](https://github.com/stripe/stripe-python/pull/1786) Fix encoding two-dimensional array request params
* [#1785](https://github.com/stripe/stripe-python/pull/1785) Improve types for `metadata` and other dict-like types
* [#1780](https://github.com/stripe/stripe-python/pull/1780) Fix `str` / `repr` for `StripeObjects` with decimals & add support for plain dicts

## 15.0.0 - 2026-03-25

This release changes the pinned API version to `2026-03-25.dahlia` and contains breaking changes (prefixed with ⚠️ below). There's also a [detailed migration guide](https://github.com/stripe/stripe-python/wiki/Migration-guide-for-v15) to simplify your upgrade process.
Expand Down
2 changes: 1 addition & 1 deletion CODEGEN_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
25e6bd225852aa44d783e9fb3b9895af39479331
77db2d3a0cf933a87e318463e31419e60d76483b
2 changes: 1 addition & 1 deletion OPENAPI_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v2206
v2252
6 changes: 6 additions & 0 deletions stripe/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ def add_beta_version(
radar as radar,
reporting as reporting,
reserve as reserve,
shared_payment as shared_payment,
sigma as sigma,
tax as tax,
terminal as terminal,
Expand Down Expand Up @@ -538,6 +539,9 @@ def add_beta_version(
from stripe._setup_intent_service import (
SetupIntentService as SetupIntentService,
)
from stripe._shared_payment_service import (
SharedPaymentService as SharedPaymentService,
)
from stripe._shipping_rate import ShippingRate as ShippingRate
from stripe._shipping_rate_service import (
ShippingRateService as ShippingRateService,
Expand Down Expand Up @@ -646,6 +650,7 @@ def add_beta_version(
"radar": ("stripe.radar", True),
"reporting": ("stripe.reporting", True),
"reserve": ("stripe.reserve", True),
"shared_payment": ("stripe.shared_payment", True),
"sigma": ("stripe.sigma", True),
"tax": ("stripe.tax", True),
"terminal": ("stripe.terminal", True),
Expand Down Expand Up @@ -951,6 +956,7 @@ def add_beta_version(
"SetupAttemptService": ("stripe._setup_attempt_service", False),
"SetupIntent": ("stripe._setup_intent", False),
"SetupIntentService": ("stripe._setup_intent_service", False),
"SharedPaymentService": ("stripe._shared_payment_service", False),
"ShippingRate": ("stripe._shipping_rate", False),
"ShippingRateService": ("stripe._shipping_rate_service", False),
"SigmaService": ("stripe._sigma_service", False),
Expand Down
8 changes: 8 additions & 0 deletions stripe/_account.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,10 @@ class Capabilities(StripeObject):
"""
The status of the AmazonPay capability of the account, or whether the account can directly process AmazonPay payments.
"""
app_distribution: Optional[Literal["active", "inactive", "pending"]]
"""
The status of the `app_distribution` capability of the account, or whether the platform can distribute apps to other accounts.
"""
au_becs_debit_payments: Optional[
Literal["active", "inactive", "pending"]
]
Expand Down Expand Up @@ -498,6 +502,10 @@ class Capabilities(StripeObject):
"""
The status of the stripe_balance payments capability of the account, or whether the account can directly process stripe_balance charges.
"""
sunbit_payments: Optional[Literal["active", "inactive", "pending"]]
"""
The status of the Sunbit capability of the account, or whether the account can directly process Sunbit payments.
"""
swish_payments: Optional[Literal["active", "inactive", "pending"]]
"""
The status of the Swish capability of the account, or whether the account can directly process Swish payments.
Expand Down
26 changes: 26 additions & 0 deletions stripe/_account_session.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,17 @@ class Features(StripeObject):
features: Features
_inner_class_types = {"features": Features}

class BalanceReport(StripeObject):
class Features(StripeObject):
pass

enabled: bool
"""
Whether the embedded component is enabled.
"""
features: Features
_inner_class_types = {"features": Features}

class Balances(StripeObject):
class Features(StripeObject):
disable_stripe_user_authentication: bool
Expand Down Expand Up @@ -382,6 +393,17 @@ class Features(StripeObject):
features: Features
_inner_class_types = {"features": Features}

class PayoutReconciliationReport(StripeObject):
class Features(StripeObject):
pass

enabled: bool
"""
Whether the embedded component is enabled.
"""
features: Features
_inner_class_types = {"features": Features}

class Payouts(StripeObject):
class Features(StripeObject):
disable_stripe_user_authentication: bool
Expand Down Expand Up @@ -447,6 +469,7 @@ class Features(StripeObject):

account_management: AccountManagement
account_onboarding: AccountOnboarding
balance_report: BalanceReport
balances: Balances
capital_financing: Optional[CapitalFinancing]
capital_financing_application: Optional[CapitalFinancingApplication]
Expand All @@ -463,13 +486,15 @@ class Features(StripeObject):
payment_disputes: PaymentDisputes
payments: Payments
payout_details: PayoutDetails
payout_reconciliation_report: PayoutReconciliationReport
payouts: Payouts
payouts_list: PayoutsList
tax_registrations: TaxRegistrations
tax_settings: TaxSettings
_inner_class_types = {
"account_management": AccountManagement,
"account_onboarding": AccountOnboarding,
"balance_report": BalanceReport,
"balances": Balances,
"capital_financing": CapitalFinancing,
"capital_financing_application": CapitalFinancingApplication,
Expand All @@ -486,6 +511,7 @@ class Features(StripeObject):
"payment_disputes": PaymentDisputes,
"payments": Payments,
"payout_details": PayoutDetails,
"payout_reconciliation_report": PayoutReconciliationReport,
"payouts": Payouts,
"payouts_list": PayoutsList,
"tax_registrations": TaxRegistrations,
Expand Down
2 changes: 1 addition & 1 deletion stripe/_api_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# -*- coding: utf-8 -*-
# File generated from our OpenAPI spec
class _ApiVersion:
CURRENT = "2026-03-25.preview"
CURRENT = "2026-04-22.preview"
7 changes: 5 additions & 2 deletions stripe/_balance_transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class FeeDetail(StripeObject):
"""
type: str
"""
Type of the fee, one of: `application_fee`, `payment_method_passthrough_fee`, `stripe_fee` or `tax`.
Type of the fee, one of: `application_fee`, `payment_method_passthrough_fee`, `stripe_fee`, `tax`, or `withheld_tax`.
"""

amount: int
Expand Down Expand Up @@ -163,6 +163,9 @@ class FeeDetail(StripeObject):
"climate_order_refund",
"connect_collection_transfer",
"contribution",
"fee_credit_funding",
"inbound_transfer",
"inbound_transfer_reversal",
"issuing_authorization_hold",
"issuing_authorization_release",
"issuing_dispute",
Expand Down Expand Up @@ -200,7 +203,7 @@ class FeeDetail(StripeObject):
"transfer_refund",
]
"""
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_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `payout_minimum_balance_hold`, `payout_minimum_balance_release`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `reserve_hold`, `reserve_release`, `stripe_fee`, `stripe_fx_fee`, `stripe_balance_payment_debit`, `stripe_balance_payment_debit_reversal`, `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.
Transaction type: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `inbound_transfer`, `inbound_transfer_reversal`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `payout_minimum_balance_hold`, `payout_minimum_balance_release`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `reserve_hold`, `reserve_release`, `stripe_fee`, `stripe_fx_fee`, `stripe_balance_payment_debit`, `stripe_balance_payment_debit_reversal`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, `transfer_refund`, or `fee_credit_funding`. 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.
"""

@classmethod
Expand Down
24 changes: 21 additions & 3 deletions stripe/_charge.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,11 +279,11 @@ class AcssDebit(StripeObject):
class Affirm(StripeObject):
location: Optional[str]
"""
ID of the [location](https://docs.stripe.com/api/terminal/locations) that this transaction's reader is assigned to.
ID of the location that this reader is assigned to.
"""
reader: Optional[str]
"""
ID of the [reader](https://docs.stripe.com/api/terminal/readers) this transaction was made on.
ID of the reader this transaction was made on.
"""
transaction_id: Optional[str]
"""
Expand Down Expand Up @@ -1146,7 +1146,9 @@ class Crypto(StripeObject):
"""
The blockchain network that the transaction was sent on.
"""
token_currency: Optional[Literal["usdc", "usdg", "usdp"]]
token_currency: Optional[
Literal["phantom_cash", "usdc", "usdg", "usdp", "usdt"]
]
"""
The token currency that the transaction was sent with.
"""
Expand Down Expand Up @@ -1524,6 +1526,10 @@ class Address(StripeObject):
"""
_inner_class_types = {"address": Address}

location: Optional[str]
"""
ID of the [location](https://docs.stripe.com/api/terminal/locations) that this transaction's reader is assigned to.
"""
payer_details: Optional[PayerDetails]
"""
The payer details for this transaction.
Expand All @@ -1538,6 +1544,10 @@ class Address(StripeObject):
Preferred language of the Klarna authorization page that the customer is redirected to.
Can be one of `de-AT`, `en-AT`, `nl-BE`, `fr-BE`, `en-BE`, `de-DE`, `en-DE`, `da-DK`, `en-DK`, `es-ES`, `en-ES`, `fi-FI`, `sv-FI`, `en-FI`, `en-GB`, `en-IE`, `it-IT`, `en-IT`, `nl-NL`, `en-NL`, `nb-NO`, `en-NO`, `sv-SE`, `en-SE`, `en-US`, `es-US`, `fr-FR`, `en-FR`, `cs-CZ`, `en-CZ`, `ro-RO`, `en-RO`, `el-GR`, `en-GR`, `en-AU`, `en-NZ`, `en-CA`, `fr-CA`, `pl-PL`, `en-PL`, `pt-PT`, `en-PT`, `de-CH`, `fr-CH`, `it-CH`, or `en-CH`
"""
reader: Optional[str]
"""
ID of the [reader](https://docs.stripe.com/api/terminal/readers) this transaction was made on.
"""
_inner_class_types = {"payer_details": PayerDetails}

class Konbini(StripeObject):
Expand Down Expand Up @@ -2092,6 +2102,12 @@ class StripeBalance(StripeObject):
The connected account ID whose Stripe balance to use as the source of payment
"""

class Sunbit(StripeObject):
transaction_id: Optional[str]
"""
The Sunbit transaction ID associated with this payment.
"""

class Swish(StripeObject):
fingerprint: Optional[str]
"""
Expand Down Expand Up @@ -2235,6 +2251,7 @@ class Zip(StripeObject):
sofort: Optional[Sofort]
stripe_account: Optional[StripeAccount]
stripe_balance: Optional[StripeBalance]
sunbit: Optional[Sunbit]
swish: Optional[Swish]
twint: Optional[Twint]
type: str
Expand Down Expand Up @@ -2307,6 +2324,7 @@ class Zip(StripeObject):
"sofort": Sofort,
"stripe_account": StripeAccount,
"stripe_balance": StripeBalance,
"sunbit": Sunbit,
"swish": Swish,
"twint": Twint,
"upi": Upi,
Expand Down
6 changes: 6 additions & 0 deletions stripe/_confirmation_token.py
Original file line number Diff line number Diff line change
Expand Up @@ -1387,6 +1387,9 @@ class StripeBalance(StripeObject):
The connected account ID whose Stripe balance to use as the source of payment
"""

class Sunbit(StripeObject):
pass

class Swish(StripeObject):
pass

Expand Down Expand Up @@ -1564,6 +1567,7 @@ class Zip(StripeObject):
shopeepay: Optional[Shopeepay]
sofort: Optional[Sofort]
stripe_balance: Optional[StripeBalance]
sunbit: Optional[Sunbit]
swish: Optional[Swish]
twint: Optional[Twint]
type: Literal[
Expand Down Expand Up @@ -1622,6 +1626,7 @@ class Zip(StripeObject):
"shopeepay",
"sofort",
"stripe_balance",
"sunbit",
"swish",
"twint",
"upi",
Expand Down Expand Up @@ -1692,6 +1697,7 @@ class Zip(StripeObject):
"shopeepay": Shopeepay,
"sofort": Sofort,
"stripe_balance": StripeBalance,
"sunbit": Sunbit,
"swish": Swish,
"twint": Twint,
"upi": Upi,
Expand Down
2 changes: 1 addition & 1 deletion stripe/_credit_note.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ class Tax(StripeObject):

class TotalTax(StripeObject):
class TaxRateDetails(StripeObject):
tax_rate: str
tax_rate: ExpandableField["TaxRate"]
"""
ID of the tax rate
"""
Expand Down
2 changes: 1 addition & 1 deletion stripe/_credit_note_line_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class TaxCalculationReference(StripeObject):

class Tax(StripeObject):
class TaxRateDetails(StripeObject):
tax_rate: str
tax_rate: ExpandableField["TaxRate"]
"""
ID of the tax rate
"""
Expand Down
Loading
Loading