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
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,38 @@
# Changelog

## 52.2.0 - 2026-07-29
This release changes the pinned API version to 2026-07-29.dahlia.

* [#3417](https://github.com/stripe/stripe-dotnet/pull/3417) Update generated code
* Add support for new resource `FinancialConnections.Authorization`
* Add support for `Unreject` method on resource `Account`
* Add support for `List` method on resource `PaymentRecord`
* Add support for `SmartDisputesManagement` on `AccountSession.Components.DisputesList.Features`, `AccountSession.Components.PaymentDetails.Features`, `AccountSession.Components.PaymentDisputes.Features`, `AccountSession.Components.Payments.Features`, `AccountSessionComponentsDisputesListFeaturesOptions`, `AccountSessionComponentsPaymentDetailsFeaturesOptions`, `AccountSessionComponentsPaymentDisputesFeaturesOptions`, and `AccountSessionComponentsPaymentsFeaturesOptions`
* Add support for `AdministrativeAddress` and `PrincipalPlaceOfBusiness` on `Account.Company`, `AccountCompanyOptions`, and `TokenAccountCompanyOptions`
* Add support for `SepaDebitPayments` on `AccountSettingsOptions`
* Remove support for `ProofOfRegistration` on `AccountDocumentsOptions`. This field was limited-use and is being deprecated.
* Add support for `PayoutsAction` on `AccountRejectOptions`
* Remove support for `DynamicTaxRates` on `CheckoutSessionLineItemOptions`. This field was limited-use and is being deprecated.
* Add support for `SetupFutureUsage` on `Checkout.Session.PaymentMethodOptions.Payco`, `Checkout.Session.PaymentMethodOptions.SamsungPay`, `CheckoutSessionPaymentMethodOptionsPaycoOptions`, `CheckoutSessionPaymentMethodOptionsSamsungPayOptions`, `PaymentIntent.PaymentMethodOptions.Payco`, `PaymentIntent.PaymentMethodOptions.SamsungPay`, `PaymentIntentPaymentMethodOptionsPaycoOptions`, `PaymentIntentPaymentMethodOptionsSamsungPayOptions`, and `PaymentLinkPaymentIntentDataOptions`
* Add support for `Network` on `Dispute.PaymentMethodDetails.Card`
* Add support for `Limits` and `ManualEntry` on `FinancialConnections.SessionCreateOptions` and `FinancialConnections.Session`
* Add support for `RequirePaymentMethodSupport` on `FinancialConnections.Session.Filters` and `FinancialConnectionsSessionFiltersOptions`
* Add support for `BankAccountToken` on `FinancialConnections.Session`
* Add support for `Metadata` on `InvoiceSubscriptionDetailsOptions`
* Add support for `BusinessName` on `Issuing.Card.Shipping` and `IssuingCardShippingOptions`
* Add support for `AllowedPaymentMethodTypes` on `PaymentIntentConfirmOptions`, `PaymentIntentCreateOptions`, `PaymentIntentUpdateOptions`, `PaymentIntent`, `SetupIntentConfirmOptions`, `SetupIntentCreateOptions`, `SetupIntentUpdateOptions`, and `SetupIntent`
* Add support for `Referrer` on `PaymentIntentRadarOptionsOptions`
* Add support for `ConsentCollection` and `ShippingOptions` on `PaymentLinkUpdateOptions`
* Add support for `CustomFields`, `Description`, and `Footer` on `Quote.InvoiceSettings`, `QuoteInvoiceSettingsOptions`, `SubscriptionSchedule.DefaultSettings.InvoiceSettings`, `SubscriptionSchedule.Phase.InvoiceSettings`, `SubscriptionScheduleDefaultSettingsInvoiceSettingsOptions`, and `SubscriptionSchedulePhaseInvoiceSettingsOptions`
* Add support for `CustomerAccount` and `Customer` on `Refund`
* Add support for `PaymentMethod` on `Refund` and `Topup`
* Add support for `Trial` on `SubscriptionSchedule.Phase`
* Add support for `MassTransitParkingTax` and `ParkingTax` on `Tax.Registration.CountryOptions.Us` and `TaxRegistrationCountryOptionsUsOptions`
* Add support for `InitiatedBy` and `PaymentMethodOptions` on `Topup`
* Add support for `AdditionalAddresses` on `V2.Core.Account.Identity.BusinessDetails`, `V2CoreAccountIdentityBusinessDetailsOptions`, and `V2CoreAccountTokenIdentityBusinessDetailsOptions`
* Add support for snapshot events `FinancialConnectionsAccountExpectedDeactivationDateUpdated`, `FinancialConnectionsAccountSupportedPaymentMethodTypesUpdated`, and `FinancialConnectionsAccountUpcomingDeactivation` with resource `FinancialConnections.Account`
* Add support for snapshot events `FinancialConnectionsAuthorizationExpectedDeactivationDateUpdated` and `FinancialConnectionsAuthorizationUpcomingDeactivation` with resource `FinancialConnections.Authorization`

## 52.2.0-alpha.5 - 2026-07-22
* [#3414](https://github.com/stripe/stripe-dotnet/pull/3414) Update generated code for private-preview
* Add support for new resources `Billing.AlertNotification` and `Crypto.DepositAddress`
Expand Down
2 changes: 1 addition & 1 deletion CODEGEN_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2ceb45f50a72455c534a54d634b015602dc55f2d
6fc967cafa78afc6c6adb86802a26217fa770522
2 changes: 1 addition & 1 deletion OPENAPI_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v2345
v2350
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 = "2026-07-08.preview";
public const string Current = "2026-07-29.preview";
}
}
2 changes: 1 addition & 1 deletion src/Stripe.net/Entities/Accounts/AccountRequirements.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public class AccountRequirements : StripeEntity<AccountRequirements>
/// <summary>
/// Fields that need to be resolved to keep the account enabled. If not resolved by
/// <c>current_deadline</c>, these fields will appear in <c>past_due</c> as well, and the
/// account is disabled.
/// account will be disabled.
/// </summary>
[JsonProperty("currently_due")]
[STJS.JsonPropertyName("currently_due")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,14 @@ public class CreditGrantApplicabilityConfigScope : StripeEntity<CreditGrantAppli
[JsonProperty("prices")]
[STJS.JsonPropertyName("prices")]
public List<CreditGrantApplicabilityConfigScopePrice> Prices { get; set; }

/// <summary>
/// The rate cards that credit grants can apply to. The credit grant applies to any metered
/// item billed under one of these rate cards. Cannot be used in combination with
/// <c>price_type</c>, <c>prices</c>, or <c>billable_items</c>.
/// </summary>
[JsonProperty("rate_cards")]
[STJS.JsonPropertyName("rate_cards")]
public List<CreditGrantApplicabilityConfigScopeRateCard> RateCards { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// File generated from our OpenAPI spec
namespace Stripe.Billing
{
using Newtonsoft.Json;
using Stripe.Infrastructure;
using STJS = System.Text.Json.Serialization;

[STJS.JsonConverter(typeof(STJStripeEntityConverter))]
public class CreditGrantApplicabilityConfigScopeRateCard : StripeEntity<CreditGrantApplicabilityConfigScopeRateCard>, IHasId
{
/// <summary>
/// Unique identifier for the object.
/// </summary>
[JsonProperty("id")]
[STJS.JsonPropertyName("id")]
public string Id { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ public class ConfirmationTokenPaymentMethodPreviewGiftCard : StripeEntity<Confir
{
/// <summary>
/// The brand of the gift card.
/// One of: <c>fiserv_valuelink</c>, <c>givex</c>, or <c>svs</c>.
/// </summary>
[JsonProperty("brand")]
[STJS.JsonPropertyName("brand")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ public class CustomerConsumerWallet : StripeEntity<CustomerConsumerWallet>, IHas
/// <summary>
/// The blockchain network for this wallet.
/// One of: <c>aptos</c>, <c>avalanche</c>, <c>base</c>, <c>bitcoin</c>, <c>ethereum</c>,
/// <c>optimism</c>, <c>polygon</c>, <c>solana</c>, <c>stellar</c>, <c>sui</c>, or
/// <c>worldchain</c>.
/// <c>optimism</c>, <c>polygon</c>, <c>solana</c>, <c>stellar</c>, <c>sui</c>,
/// <c>tempo</c>, or <c>worldchain</c>.
/// </summary>
[JsonProperty("network")]
[STJS.JsonPropertyName("network")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ namespace Stripe.Crypto
/// <summary>
/// A crypto deposit address is a blockchain address that can be used by a merchant for
/// deposit mode crypto payments.
///
/// Related guide: <a href="https://stripe.com/payments/machine">Machine payments</a>.
/// </summary>
[STJS.JsonConverter(typeof(STJStripeEntityConverter))]
public class DepositAddress : StripeEntity<DepositAddress>, IHasId, IHasMetadata, IHasObject
Expand All @@ -28,20 +30,36 @@ public class DepositAddress : StripeEntity<DepositAddress>, IHasId, IHasMetadata
[STJS.JsonPropertyName("object")]
public string Object { get; set; }

/// <summary>
/// The on-chain address where funds can be received.
/// </summary>
[JsonProperty("address")]
[STJS.JsonPropertyName("address")]
public string Address { get; set; }

/// <summary>
/// Time at which the object was created. Measured in seconds since the Unix epoch.
/// </summary>
[JsonProperty("created")]
[JsonConverter(typeof(UnixDateTimeConverter))]
[STJS.JsonPropertyName("created")]
[STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;

/// <summary>
/// If set, this deposit address is scoped to a <a
/// href="https://docs.stripe.com/api/customers/object">Customer</a> and can only receive
/// funds from that customer. Otherwise, this deposit address can receive funds from any
/// customer.
/// </summary>
[JsonProperty("customer")]
[STJS.JsonPropertyName("customer")]
public string Customer { get; set; }

/// <summary>
/// If the object exists in live mode, the value is <c>true</c>. If the object exists in
/// test mode, the value is <c>false</c>.
/// </summary>
[JsonProperty("livemode")]
[STJS.JsonPropertyName("livemode")]
public bool Livemode { get; set; }
Expand All @@ -56,12 +74,16 @@ public class DepositAddress : StripeEntity<DepositAddress>, IHasId, IHasMetadata
public Dictionary<string, string> Metadata { get; set; }

/// <summary>
/// The blockchain network where this address can accept funds.
/// One of: <c>base</c>, <c>solana</c>, or <c>tempo</c>.
/// </summary>
[JsonProperty("network")]
[STJS.JsonPropertyName("network")]
public string Network { get; set; }

/// <summary>
/// The tokens that can be sent to this deposit address on its network.
/// </summary>
[JsonProperty("supported_tokens")]
[STJS.JsonPropertyName("supported_tokens")]
public List<DepositAddressSupportedToken> SupportedTokens { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ public class OnrampSessionTransactionDetails : StripeEntity<OnrampSessionTransac
/// The specific crypto network the <c>destination_currency</c> is settled on. If
/// <c>destination_networks</c> is set, it must be a value in that array.
/// One of: <c>avalanche</c>, <c>base</c>, <c>bitcoin</c>, <c>ethereum</c>, <c>optimism</c>,
/// <c>polygon</c>, <c>solana</c>, <c>stellar</c>, <c>sui</c>, or <c>worldchain</c>.
/// <c>polygon</c>, <c>solana</c>, <c>stellar</c>, <c>sui</c>, <c>tempo</c>, or
/// <c>worldchain</c>.
/// </summary>
[JsonProperty("destination_network")]
[STJS.JsonPropertyName("destination_network")]
Expand All @@ -52,7 +53,8 @@ public class OnrampSessionTransactionDetails : StripeEntity<OnrampSessionTransac
/// If a platform wants to lock the supported networks, they can do so through this array.
/// If left null, the experience will allow selection of all supported networks.
/// One of: <c>avalanche</c>, <c>base</c>, <c>bitcoin</c>, <c>ethereum</c>, <c>optimism</c>,
/// <c>polygon</c>, <c>solana</c>, <c>stellar</c>, <c>sui</c>, or <c>worldchain</c>.
/// <c>polygon</c>, <c>solana</c>, <c>stellar</c>, <c>sui</c>, <c>tempo</c>, or
/// <c>worldchain</c>.
/// </summary>
[JsonProperty("destination_networks")]
[STJS.JsonPropertyName("destination_networks")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,13 @@ public class OnrampSessionTransactionDetailsWalletAddresses : StripeEntity<Onram
[STJS.JsonPropertyName("sui")]
public string Sui { get; set; }

/// <summary>
/// A Tempo address.
/// </summary>
[JsonProperty("tempo")]
[STJS.JsonPropertyName("tempo")]
public string Tempo { get; set; }

/// <summary>
/// A worldchain address.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,30 @@ public class Session : StripeEntity<Session>, IHasId, IHasObject
[STJS.JsonPropertyName("accounts")]
public StripeList<Account> Accounts { get; set; }

/// <summary>
/// Tokenization is the process Stripe uses to collect sensitive card or bank account
/// details, or personally identifiable information (PII), directly from your customers in a
/// secure manner. A token representing this information is returned to your server to use.
/// Use our <a href="https://docs.stripe.com/payments">recommended payments integrations</a>
/// to perform this process on the client-side. This guarantees that no sensitive card data
/// touches your server, and allows your integration to operate in a PCI-compliant way.
///
/// If you can't use client-side tokenization, you can also create tokens using the API with
/// either your publishable or secret API key. If your integration uses this method, you're
/// responsible for any PCI compliance that it might require, and you must keep your secret
/// API key safe. Unlike with client-side tokenization, your customer's information isn't
/// sent directly to Stripe, so we can't determine how it's handled or stored.
///
/// You can't store or use tokens more than once. To store card or bank account information
/// for later use, create <a href="https://docs.stripe.com/api#customers">Customer</a>
/// objects or <a href="https://stripe.com/api#external_accounts">External accounts</a>. <a
/// href="https://docs.stripe.com/radar">Radar</a>, our integrated solution for automatic
/// fraud protection, performs best with integrations that use client-side tokenization.
/// </summary>
[JsonProperty("bank_account_token")]
[STJS.JsonPropertyName("bank_account_token")]
public Token BankAccountToken { get; set; }

/// <summary>
/// A value that will be passed to the client to launch the authentication flow.
/// </summary>
Expand Down
13 changes: 6 additions & 7 deletions src/Stripe.net/Entities/FxQuotes/FxQuote.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ namespace Stripe

/// <summary>
/// The FX Quotes API provides three functions: - View Stripe's current exchange rate for
/// any given currency pair. - Extend quoted rates for a 1-hour period or a 24-hour period,
/// minimizing uncertainty from FX fluctuations. - Preview the FX fees Stripe will charge on
/// your FX transaction, allowing you to anticipate specific settlement amounts before
/// payment costs.
/// any given currency pair. - Extend quoted rates for up to a 24-hour period, minimizing
/// uncertainty from FX fluctuations. - Preview the FX fees Stripe will charge on your FX
/// transaction, allowing you to anticipate specific settlement amounts before payment
/// costs.
///
/// <a href="https://stripe.com/payments/currencies/localize-prices/fx-quotes-api">View the
/// docs</a>.
Expand Down Expand Up @@ -44,9 +44,8 @@ public class FxQuote : StripeEntity<FxQuote>, IHasId, IHasObject
public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;

/// <summary>
/// The duration the exchange rate quote remains valid from creation time. Allowed values
/// are none, hour, and day. Note that for the test mode API available in alpha, you can
/// request an extended quote, but it won't be usable for any transactions.
/// The duration that the quote is locked for, from creation time. The quote will be usable
/// for the duration specified.
/// One of: <c>day</c>, <c>five_minutes</c>, <c>hour</c>, or <c>none</c>.
/// </summary>
[JsonProperty("lock_duration")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public class GiftCardOperation : StripeEntity<GiftCardOperation>, IHasId, IHasOb
/// <c>invalid_number</c>, <c>invalid_pin</c>, <c>invalid_track_data</c>, <c>lost_card</c>,
/// <c>lost_or_stolen_card</c>, <c>pin_required</c>, <c>pin_tries_exceeded</c>,
/// <c>processing_error</c>, <c>provider_unavailable</c>, <c>stolen_card</c>,
/// <c>suspected_fraud</c>, or <c>timeout</c>.
/// <c>suspected_fraud</c>, <c>timeout</c>, or <c>try_again_later</c>.
/// </summary>
[JsonProperty("failure_code")]
[STJS.JsonPropertyName("failure_code")]
Expand Down
1 change: 0 additions & 1 deletion src/Stripe.net/Entities/GiftCards/GiftCard.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ public class GiftCard : StripeEntity<GiftCard>, IHasId, IHasObject

/// <summary>
/// The brand of the gift card.
/// One of: <c>fiserv_valuelink</c>, <c>givex</c>, or <c>svs</c>.
/// </summary>
[JsonProperty("brand")]
[STJS.JsonPropertyName("brand")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,13 @@ public Cardholder Cardholder
[STJS.JsonPropertyName("fuel")]
public AuthorizationFuel Fuel { get; set; }

/// <summary>
/// Details about the IIAS FSA/HSA healthcare amounts on this authorization.
/// </summary>
[JsonProperty("healthcare")]
[STJS.JsonPropertyName("healthcare")]
public AuthorizationHealthcare Healthcare { get; set; }

/// <summary>
/// If the object exists in live mode, the value is <c>true</c>. If the object exists in
/// test mode, the value is <c>false</c>.
Expand Down
Loading
Loading