Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
2db8b95
Update CHANGELOG.md to include note on pinned API version (#3238)
ramya-stripe Oct 30, 2025
ccf43ce
Merge upstream and update generated code for v2105 and
stripe-openapi[bot] Oct 30, 2025
a2d70f7
Update generated code for v2108 and
stripe-openapi[bot] Nov 4, 2025
56ee038
Update generated code for v2109 and
stripe-openapi[bot] Nov 4, 2025
89e0a9d
Update generated code for v2111 and
stripe-openapi[bot] Nov 5, 2025
1bf988c
Update generated code (#3244)
stripe-openapi[bot] Nov 5, 2025
7132644
Bump version to 49.2.0
ramya-stripe Nov 5, 2025
c2faab6
Merge upstream and update generated code for v2112 and
stripe-openapi[bot] Nov 6, 2025
5df2dca
Update generated code for v2113 and
stripe-openapi[bot] Nov 7, 2025
d067c36
Update generated code for v2113 and
stripe-openapi[bot] Nov 7, 2025
d45808f
Update generated code for v2113 and
stripe-openapi[bot] Nov 9, 2025
2e3522f
Update generated code for v2114 and
stripe-openapi[bot] Nov 9, 2025
0926dcb
Add min version for custom request support (#3247)
ramya-stripe Nov 10, 2025
8eaa6a1
Merge upstream and update generated code for v2115 and
stripe-openapi[bot] Nov 10, 2025
56d2316
Update generated code for v2117 and
stripe-openapi[bot] Nov 12, 2025
8bd99e0
Update generated code for v2121 and
stripe-openapi[bot] Nov 14, 2025
4d596ca
Update generated code (#3246)
stripe-openapi[bot] Nov 15, 2025
af05af8
Update v2 array parameter serialization to use indexed format (#3249)
mbroshi-stripe Nov 17, 2025
b336659
Merge upstream and update generated code for v2124 and
stripe-openapi[bot] Nov 17, 2025
d07bb5b
Update generated code (#3256)
stripe-openapi[bot] Nov 17, 2025
74fff9d
Merge upstream and update generated code for v2124 and
stripe-openapi[bot] Nov 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion API_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
c5d9f47b11fbac901125e0621faadddc6ac6eb1e
c0dacb8d26f5b7c5d68ef88b3f51d40c1eafeab7
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## 49.2.0 - 2025-11-05
* [#3244](https://github.com/stripe/stripe-dotnet/pull/3244) Update generated code
* Add support for `CaptureMethod` on `PaymentIntent.PaymentMethodOptions.CardPresent` and `PaymentIntentPaymentMethodOptionsCardPresentOptions`

## 49.2.0-beta.1 - 2025-10-29

This release changes the pinned API version to `2025-10-29.preview`.
Expand All @@ -23,6 +27,9 @@ This release changes the pinned API version to `2025-10-29.preview`.
* Remove support for thin event `V2BillingBillSettingUpdatedEvent` with related object `V2.Billing.BillSetting`

## 49.1.0 - 2025-10-29

This release changes the pinned API version to `2025-10-29.clover`.

* [#3236](https://github.com/stripe/stripe-dotnet/pull/3236) Update generated code
* Improve docs for PaymentIntent related endpoints
* [#3230](https://github.com/stripe/stripe-dotnet/pull/3230) Update generated code
Expand Down
2 changes: 1 addition & 1 deletion OPENAPI_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v2104
v2124
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,8 @@ StripeConfiguration.AddBetaVersion("feature_beta", "v3");
```
### Private Preview SDKs

> This feature is only available from version 46 of this SDK.

Stripe has features in the [private preview phase](https://docs.stripe.com/release-phases) that can be accessed via versions of this package that have the `-alpha.X` suffix like `45.2.0-alpha.2`. These are invite-only features. Once invited, you can install the private preview SDKs by following the same instructions as for the [public preview SDKs](https://github.com/stripe/stripe-dotnet?tab=readme-ov-file#public-preview-sdks) above and replacing the term `beta` with `alpha`.

### Custom requests
Expand Down
2 changes: 1 addition & 1 deletion src/Stripe.net/Constants/ApiVersion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ namespace Stripe
{
internal class ApiVersion
{
public const string Current = "2025-10-29.preview";
public const string Current = "2025-11-17.preview";
}
}
10 changes: 10 additions & 0 deletions src/Stripe.net/Constants/EventTypes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,11 @@ public static class EventTypes
/// </summary>
public const string FileCreated = "file.created";

/// <summary>
/// Occurs when a Financial Connections account's account numbers are updated.
/// </summary>
public const string FinancialConnectionsAccountAccountNumbersUpdated = "financial_connections.account.account_numbers_updated";

/// <summary>
/// Occurs when a new Financial Connections account is created.
/// </summary>
Expand Down Expand Up @@ -551,6 +556,11 @@ public static class EventTypes
/// </summary>
public const string FinancialConnectionsAccountRefreshedTransactions = "financial_connections.account.refreshed_transactions";

/// <summary>
/// Occurs when an Account’s tokenized account number is about to expire.
/// </summary>
public const string FinancialConnectionsAccountUpcomingAccountNumberExpiry = "financial_connections.account.upcoming_account_number_expiry";

/// <summary>
/// Occurs when a Financial Connections Session <c>status</c> transitions from
/// <c>pending</c> to <c>failed</c>, <c>cancelled</c>, or <c>completed</c>.
Expand Down
10 changes: 10 additions & 0 deletions src/Stripe.net/Entities/Accounts/AccountBusinessProfile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,16 @@ public class AccountBusinessProfile : StripeEntity<AccountBusinessProfile>
#endif
public string ProductDescription { get; set; }

/// <summary>
/// A link to the business's publicly available terms related to the Specified Commercial
/// Transaction Act. Only used for accounts in Japan.
/// </summary>
[JsonProperty("specified_commercial_transactions_act_url")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("specified_commercial_transactions_act_url")]
#endif
public string SpecifiedCommercialTransactionsActUrl { get; set; }

/// <summary>
/// A publicly available mailing address for sending support issues to.
/// </summary>
Expand Down
6 changes: 6 additions & 0 deletions src/Stripe.net/Entities/Accounts/AccountSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,12 @@ public class AccountSettings : StripeEntity<AccountSettings>
#endif
public AccountSettingsPayouts Payouts { get; set; }

[JsonProperty("paypay_payments")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("paypay_payments")]
#endif
public AccountSettingsPaypayPayments PaypayPayments { get; set; }

[JsonProperty("sepa_debit_payments")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("sepa_debit_payments")]
Expand Down
5 changes: 3 additions & 2 deletions src/Stripe.net/Entities/Accounts/AccountSettingsInvoices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,9 @@ public List<TaxId> DefaultAccountTaxIds
#endregion

/// <summary>
/// Whether payment methods should be saved when a payment is completed for a one-time
/// invoices on a hosted invoice page.
/// Whether to save the payment method after a payment is completed for a one-time invoice
/// or a subscription invoice when the customer already has a default payment method on the
/// hosted invoice page.
/// One of: <c>always</c>, <c>never</c>, or <c>offer</c>.
/// </summary>
[JsonProperty("hosted_payment_method_save")]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// File generated from our OpenAPI spec
namespace Stripe
{
using Newtonsoft.Json;
#if NET6_0_OR_GREATER
using STJS = System.Text.Json.Serialization;
#endif

public class AccountSettingsPaypayPayments : StripeEntity<AccountSettingsPaypayPayments>
{
/// <summary>
/// Whether your business sells digital content or not.
/// One of: <c>digital_content</c>, or <c>other</c>.
/// </summary>
[JsonProperty("goods_type")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("goods_type")]
#endif
public string GoodsType { get; set; }
}
}
32 changes: 18 additions & 14 deletions src/Stripe.net/Entities/BankAccounts/BankAccount.cs
Original file line number Diff line number Diff line change
Expand Up @@ -283,21 +283,25 @@ public Customer Customer

/// <summary>
/// For bank accounts, possible values are <c>new</c>, <c>validated</c>, <c>verified</c>,
/// <c>verification_failed</c>, or <c>errored</c>. A bank account that hasn't had any
/// activity or validation performed is <c>new</c>. If Stripe can determine that the bank
/// account exists, its status will be <c>validated</c>. Note that there often isn’t enough
/// information to know (e.g., for smaller credit unions), and the validation is not always
/// run. If customer bank account verification has succeeded, the bank account status will
/// be <c>verified</c>. If the verification failed for any reason, such as microdeposit
/// failure, the status will be <c>verification_failed</c>. If a payout sent to this bank
/// account fails, we'll set the status to <c>errored</c> and will not continue to send <a
/// href="https://stripe.com/docs/payouts#payout-schedule">scheduled payouts</a> until the
/// bank details are updated.
/// <c>verification_failed</c>, <c>tokenized_account_number_deactivated</c> or
/// <c>errored</c>. A bank account that hasn't had any activity or validation performed is
/// <c>new</c>. If Stripe can determine that the bank account exists, its status will be
/// <c>validated</c>. Note that there often isn’t enough information to know (e.g., for
/// smaller credit unions), and the validation is not always run. If customer bank account
/// verification has succeeded, the bank account status will be <c>verified</c>. If the
/// verification failed for any reason, such as microdeposit failure, the status will be
/// <c>verification_failed</c>. If the status is
/// <c>tokenized_account_number_deactivated</c>, the account utilizes a tokenized account
/// number which has been deactivated due to expiration or revocation. This account will
/// need to be reverified to continue using it for money movement. If a payout sent to this
/// bank account fails, we'll set the status to <c>errored</c> and will not continue to send
/// <a href="https://stripe.com/docs/payouts#payout-schedule">scheduled payouts</a> until
/// the bank details are updated.
///
/// For external accounts, possible values are <c>new</c>, <c>errored</c> and
/// <c>verification_failed</c>. If a payout fails, the status is set to <c>errored</c> and
/// scheduled payouts are stopped until account details are updated. In the US and India, if
/// we can't <a
/// For external accounts, possible values are <c>new</c>, <c>errored</c>,
/// <c>verification_failed</c>, and <c>tokenized_account_number_deactivated</c>. If a payout
/// fails, the status is set to <c>errored</c> and scheduled payouts are stopped until
/// account details are updated. In the US and India, if we can't <a
/// href="https://support.stripe.com/questions/bank-account-ownership-verification">verify
/// the owner of the bank account</a>, we'll set the status to <c>verification_failed</c>.
/// Other validations aren't run against external accounts because they're only used for
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,17 @@ public class ConfigurationFeaturesPaymentMethodUpdate : StripeEntity<Configurati
[STJS.JsonPropertyName("enabled")]
#endif
public bool Enabled { get; set; }

/// <summary>
/// The <a href="https://stripe.com/api/payment_method_configurations">Payment Method
/// Configuration</a> to use for this portal session. When specified, customers will be able
/// to update their payment method to one of the options specified by the payment method
/// configuration. If not set, the default payment method configuration is used.
/// </summary>
[JsonProperty("payment_method_configuration")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("payment_method_configuration")]
#endif
public string PaymentMethodConfiguration { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ namespace Stripe.Capital
public class FinancingOfferAcceptedTerms : StripeEntity<FinancingOfferAcceptedTerms>
{
/// <summary>
/// Amount of financing offered, in minor units. For example, $1,000 USD will be represented
/// as 100000.
/// Amount of financing offered, in minor units. For example, 1,000 USD is represented as
/// 100000.
/// </summary>
[JsonProperty("advance_amount")]
#if NET6_0_OR_GREATER
Expand All @@ -28,7 +28,7 @@ public class FinancingOfferAcceptedTerms : StripeEntity<FinancingOfferAcceptedTe
public string Currency { get; set; }

/// <summary>
/// Fixed fee amount, in minor units. For example, $100 USD will be represented as 10000.
/// Fixed fee amount, in minor units. For example, 100 USD is represented as 10000.
/// </summary>
[JsonProperty("fee_amount")]
#if NET6_0_OR_GREATER
Expand All @@ -48,7 +48,7 @@ public class FinancingOfferAcceptedTerms : StripeEntity<FinancingOfferAcceptedTe
public long? PreviousFinancingFeeDiscountAmount { get; set; }

/// <summary>
/// Per-transaction rate at which Stripe will withhold funds to repay the financing.
/// Per-transaction rate at which Stripe withholds funds to repay the financing.
/// </summary>
[JsonProperty("withhold_rate")]
#if NET6_0_OR_GREATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ namespace Stripe.Capital
public class FinancingOfferOfferedTerms : StripeEntity<FinancingOfferOfferedTerms>
{
/// <summary>
/// Amount of financing offered, in minor units. For example, $1,000 USD will be represented
/// as 100000.
/// Amount of financing offered, in minor units. For example, 1,000 USD is represented as
/// 100000.
/// </summary>
[JsonProperty("advance_amount")]
#if NET6_0_OR_GREATER
Expand Down Expand Up @@ -39,7 +39,7 @@ public class FinancingOfferOfferedTerms : StripeEntity<FinancingOfferOfferedTerm
public string Currency { get; set; }

/// <summary>
/// Fixed fee amount, in minor units. For example, $100 USD will be represented as 10000.
/// Fixed fee amount, in minor units. For example, 100 USD is represented as 10000.
/// </summary>
[JsonProperty("fee_amount")]
#if NET6_0_OR_GREATER
Expand All @@ -60,7 +60,7 @@ public class FinancingOfferOfferedTerms : StripeEntity<FinancingOfferOfferedTerm
public decimal? PreviousFinancingFeeDiscountRate { get; set; }

/// <summary>
/// Per-transaction rate at which Stripe will withhold funds to repay the financing.
/// Per-transaction rate at which Stripe withholds funds to repay the financing.
/// </summary>
[JsonProperty("withhold_rate")]
#if NET6_0_OR_GREATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ namespace Stripe.Capital
public class FinancingSummaryDetails : StripeEntity<FinancingSummaryDetails>
{
/// <summary>
/// Amount of financing offered, in minor units. For example, $1,000 USD will be represented
/// as 100000.
/// Amount of financing offered, in minor units. For example, 1,000 USD is represented as
/// 100000.
/// </summary>
[JsonProperty("advance_amount")]
#if NET6_0_OR_GREATER
Expand Down Expand Up @@ -47,7 +47,7 @@ public class FinancingSummaryDetails : StripeEntity<FinancingSummaryDetails>
public FinancingSummaryDetailsCurrentRepaymentInterval CurrentRepaymentInterval { get; set; }

/// <summary>
/// Fixed fee amount, in minor units. For example, $100 USD will be represented as 10000.
/// Fixed fee amount, in minor units. For example, 100 USD is represented as 10000.
/// </summary>
[JsonProperty("fee_amount")]
#if NET6_0_OR_GREATER
Expand All @@ -57,7 +57,7 @@ public class FinancingSummaryDetails : StripeEntity<FinancingSummaryDetails>

/// <summary>
/// The amount the Connected account has paid toward the financing debt so far, in minor
/// units. For example, $1,000 USD will be represented as 100000.
/// units. For example, 1,000 USD is represented as 100000.
/// </summary>
[JsonProperty("paid_amount")]
#if NET6_0_OR_GREATER
Expand All @@ -66,8 +66,8 @@ public class FinancingSummaryDetails : StripeEntity<FinancingSummaryDetails>
public long PaidAmount { get; set; }

/// <summary>
/// The balance remaining to be paid on the financing, in minor units. For example, $1,000
/// USD will be represented as 100000.
/// The balance remaining to be paid on the financing, in minor units. For example, 1,000
/// USD is represented as 100000.
/// </summary>
[JsonProperty("remaining_amount")]
#if NET6_0_OR_GREATER
Expand All @@ -86,7 +86,7 @@ public class FinancingSummaryDetails : StripeEntity<FinancingSummaryDetails>
public decimal? RepaymentsBeginAt { get; set; }

/// <summary>
/// Per-transaction rate at which Stripe will withhold funds to repay the financing.
/// Per-transaction rate at which Stripe withholds funds to repay the financing.
/// </summary>
[JsonProperty("withhold_rate")]
#if NET6_0_OR_GREATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public class FinancingSummaryDetailsCurrentRepaymentInterval : StripeEntity<Fina

/// <summary>
/// The amount that has already been paid in the current repayment interval, in minor units.
/// For example, $100 USD will be represented as 10000.
/// For example, 100 USD is represented as 10000.
/// </summary>
[JsonProperty("paid_amount")]
#if NET6_0_OR_GREATER
Expand All @@ -31,7 +31,7 @@ public class FinancingSummaryDetailsCurrentRepaymentInterval : StripeEntity<Fina

/// <summary>
/// The amount that is yet to be paid in the current repayment interval, in minor units. For
/// example, $100 USD will be represented as 10000.
/// example, 100 USD is represented as 10000.
/// </summary>
[JsonProperty("remaining_amount")]
#if NET6_0_OR_GREATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@ public class ChargePaymentMethodDetailsIdeal : StripeEntity<ChargePaymentMethodD
{
/// <summary>
/// The customer's bank. Can be one of <c>abn_amro</c>, <c>asn_bank</c>, <c>bunq</c>,
/// <c>buut</c>, <c>handelsbanken</c>, <c>ing</c>, <c>knab</c>, <c>moneyou</c>, <c>n26</c>,
/// <c>nn</c>, <c>rabobank</c>, <c>regiobank</c>, <c>revolut</c>, <c>sns_bank</c>,
/// <c>triodos_bank</c>, <c>van_lanschot</c>, or <c>yoursafe</c>.
/// One of: <c>abn_amro</c>, <c>asn_bank</c>, <c>bunq</c>, <c>buut</c>,
/// <c>buut</c>, <c>finom</c>, <c>handelsbanken</c>, <c>ing</c>, <c>knab</c>,
/// <c>moneyou</c>, <c>n26</c>, <c>nn</c>, <c>rabobank</c>, <c>regiobank</c>,
/// <c>revolut</c>, <c>sns_bank</c>, <c>triodos_bank</c>, <c>van_lanschot</c>, or
/// <c>yoursafe</c>.
/// One of: <c>abn_amro</c>, <c>asn_bank</c>, <c>bunq</c>, <c>buut</c>, <c>finom</c>,
/// <c>handelsbanken</c>, <c>ing</c>, <c>knab</c>, <c>moneyou</c>, <c>n26</c>, <c>nn</c>,
/// <c>rabobank</c>, <c>regiobank</c>, <c>revolut</c>, <c>sns_bank</c>, <c>triodos_bank</c>,
/// <c>van_lanschot</c>, or <c>yoursafe</c>.
Expand All @@ -31,9 +32,9 @@ public class ChargePaymentMethodDetailsIdeal : StripeEntity<ChargePaymentMethodD
/// <summary>
/// The Bank Identifier Code of the customer's bank.
/// One of: <c>ABNANL2A</c>, <c>ASNBNL21</c>, <c>BITSNL2A</c>, <c>BUNQNL2A</c>,
/// <c>BUUTNL2A</c>, <c>FVLBNL22</c>, <c>HANDNL2A</c>, <c>INGBNL2A</c>, <c>KNABNL2H</c>,
/// <c>MOYONL21</c>, <c>NNBANL2G</c>, <c>NTSBDEB1</c>, <c>RABONL2U</c>, <c>RBRBNL21</c>,
/// <c>REVOIE23</c>, <c>REVOLT21</c>, <c>SNSBNL2A</c>, or <c>TRIONL2U</c>.
/// <c>BUUTNL2A</c>, <c>FNOMNL22</c>, <c>FVLBNL22</c>, <c>HANDNL2A</c>, <c>INGBNL2A</c>,
/// <c>KNABNL2H</c>, <c>MOYONL21</c>, <c>NNBANL2G</c>, <c>NTSBDEB1</c>, <c>RABONL2U</c>,
/// <c>RBRBNL21</c>, <c>REVOIE23</c>, <c>REVOLT21</c>, <c>SNSBNL2A</c>, or <c>TRIONL2U</c>.
/// </summary>
[JsonProperty("bic")]
#if NET6_0_OR_GREATER
Expand Down Expand Up @@ -132,6 +133,15 @@ public Mandate GeneratedSepaDebitMandate
#endif
public string IbanLast4 { get; set; }

/// <summary>
/// Unique transaction ID generated by iDEAL.
/// </summary>
[JsonProperty("transaction_id")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("transaction_id")]
#endif
public string TransactionId { get; set; }

/// <summary>
/// Owner's verified full name. Values are verified or provided by iDEAL directly (if
/// supported) at the time of authorization or settlement. They cannot be set or mutated.
Expand Down
Loading
Loading