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
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,29 @@ This release changes the pinned API version to 2026-06-24.preview.
* Add support for event notification `V2MoneyManagementOutboundTransferUnderReviewEvent` with related object `V2.MoneyManagement.OutboundTransfer`
* ⚠️ Remove support for event notifications `V2CoreAccountIncludingConfigurationStorerCapabilityStatusUpdatedEvent` and `V2CoreAccountIncludingConfigurationStorerUpdatedEvent` with related object `V2.Core.Account`

## 52.1.0 - 2026-06-24
This release changes the pinned API version to 2026-06-24.dahlia.

* [#3399](https://github.com/stripe/stripe-dotnet/pull/3399) Update generated code
* Add support for `ReleaseDetails` on `Reserve.Hold`
* Add support for `BuyerId` on `Charge.PaymentMethodDetails.Bizum`, `ConfirmationToken.PaymentMethodPreview.Bizum`, `ConfirmationToken.PaymentMethodPreview.Blik`, `PaymentAttemptRecord.PaymentMethodDetails.Bizum`, `PaymentMethod.Bizum`, `PaymentMethod.Blik`, and `PaymentRecord.PaymentMethodDetails.Bizum`
* Add support for `TransactionLinkId` on `Charge.PaymentMethodDetails.Card`
* Add support for `Fingerprint` on `Charge.PaymentMethodDetails.Pix`, `ConfirmationToken.PaymentMethodPreview.Pix`, `PaymentMethod.Pix`, and `SetupAttempt.PaymentMethodDetails.Pix`
* Add support for `Sunbit` on `Checkout.Session.PaymentMethodOptions`, `CheckoutSessionPaymentMethodOptionsOptions`, `PaymentIntent.PaymentMethodOptions`, and `PaymentIntentPaymentMethodOptionsOptions`
* Add support for `BillingCycleAnchorConfig` on `CheckoutSessionSubscriptionDataOptions`
* Add support for `WechatPay` on `Checkout.Session.PaymentMethodOptions`
* Add support for `MastercardCompliance` on `Dispute.Evidence.EnhancedEvidence`, `Dispute.EvidenceDetails.EnhancedEligibility`, and `DisputeEvidenceEnhancedEvidenceOptions`
* Add support for `StatusDetails` on `FinancialConnections.Account`
* ⚠️ Remove support for `StoredCredentialUsage` on `PaymentAttemptRecord.PaymentMethodDetails.Card` and `PaymentRecord.PaymentMethodDetails.Card`
* Add support for `SetupFutureUsage` on `PaymentIntent.PaymentMethodOptions.Satispay` and `PaymentIntentPaymentMethodOptionsSatispayOptions`
* Add support for `Satispay` on `SetupAttempt.PaymentMethodDetails`
* Add support for `CustomFields`, `Description`, and `Footer` on `Subscription.InvoiceSettings` and `SubscriptionInvoiceSettingsOptions`
* Add support for `PaymentMethodOptions` and `PaymentMethod` on `TopupCreateOptions`
* Add support for `Mode` on `V2.Commerce.ProductCatalogImport`
* Add support for `SunbitPayments` on `V2.Core.Account.Configuration.Merchant.Capabilities` and `V2CoreAccountConfigurationMerchantCapabilitiesOptions`
* Add support for `CryptoMoneyManager` and `MoneyManager` on `V2CoreAccountIdentityAttestationsTermsOfServiceOptions`
* ⚠️ Remove support for `CryptoStorer` and `Storer` on `V2CoreAccountIdentityAttestationsTermsOfServiceOptions`

## 52.1.0-alpha.2 - 2026-06-17
* [#3397](https://github.com/stripe/stripe-dotnet/pull/3397) Update generated code for private-preview
* Add support for `Get` method on resource `Radar.CustomerEvaluation`
Expand Down
2 changes: 1 addition & 1 deletion CODEGEN_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
088388aa159596ba4e240aeb0bb65d5bb4a562ab
23a0d1c154d81b4b4185658446b2ee07f06f969a
2 changes: 1 addition & 1 deletion OPENAPI_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v2323
v2342
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-06-24.preview";
public const string Current = "2026-07-01.preview";
}
}
9 changes: 7 additions & 2 deletions src/Stripe.net/Constants/EventTypes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -469,8 +469,13 @@ public static class EventTypes
public const string CustomerSubscriptionResumed = "customer.subscription.resumed";

/// <summary>
/// Occurs three days before a subscription's trial period is scheduled to end, or when a
/// trial is ended immediately (using <c>trial_end=now</c>).
/// Occurs three days before a subscription's trial period is scheduled to end, or
/// immediately when a trial is ended early (for example, with <c>trial_end=now</c> or when
/// a Customer Portal plan change ends a trial). If a trial is shortened so that fewer than
/// three days remain, this event can fire immediately, including during the same
/// transaction that collects payment. Before sending payment-reminder communications from
/// this webhook, check the subscription status and latest invoice to determine whether
/// payment has already been collected.
/// </summary>
public const string CustomerSubscriptionTrialWillEnd = "customer.subscription.trial_will_end";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,13 +175,13 @@ public IBalanceTransactionSource Source
public string Status { get; set; }

/// <summary>
/// Transaction type: <c>adjustment</c>, <c>advance</c>, <c>advance_funding</c>,
/// <c>anticipation_repayment</c>, <c>application_fee</c>, <c>application_fee_refund</c>,
/// <c>charge</c>, <c>climate_order_purchase</c>, <c>climate_order_refund</c>,
/// <c>connect_collection_transfer</c>, <c>contribution</c>, <c>inbound_transfer</c>,
/// <c>inbound_transfer_reversal</c>, <c>issuing_authorization_hold</c>,
/// <c>issuing_authorization_release</c>, <c>issuing_dispute</c>,
/// <c>issuing_transaction</c>, <c>obligation_outbound</c>,
/// Transaction type: <c>tax_fund</c>, <c>adjustment</c>, <c>advance</c>,
/// <c>advance_funding</c>, <c>anticipation_repayment</c>, <c>application_fee</c>,
/// <c>application_fee_refund</c>, <c>charge</c>, <c>climate_order_purchase</c>,
/// <c>climate_order_refund</c>, <c>connect_collection_transfer</c>, <c>contribution</c>,
/// <c>inbound_transfer</c>, <c>inbound_transfer_reversal</c>,
/// <c>issuing_authorization_hold</c>, <c>issuing_authorization_release</c>,
/// <c>issuing_dispute</c>, <c>issuing_transaction</c>, <c>obligation_outbound</c>,
/// <c>obligation_reversal_inbound</c>, <c>payment</c>, <c>payment_failure_refund</c>,
/// <c>payment_network_reserve_hold</c>, <c>payment_network_reserve_release</c>,
/// <c>payment_refund</c>, <c>payment_reversal</c>, <c>payment_unreconciled</c>,
Expand Down Expand Up @@ -211,7 +211,7 @@ public IBalanceTransactionSource Source
/// <c>refund</c>, <c>refund_failure</c>, <c>reserve_hold</c>, <c>reserve_release</c>,
/// <c>reserve_transaction</c>, <c>reserved_funds</c>, <c>stripe_balance_payment_debit</c>,
/// <c>stripe_balance_payment_debit_reversal</c>, <c>stripe_fee</c>, <c>stripe_fx_fee</c>,
/// <c>tax_fee</c>, <c>topup</c>, <c>topup_reversal</c>, <c>transfer</c>,
/// <c>tax_fee</c>, <c>tax_fund</c>, <c>topup</c>, <c>topup_reversal</c>, <c>transfer</c>,
/// <c>transfer_cancel</c>, <c>transfer_failure</c>, or <c>transfer_refund</c>.
/// </summary>
[JsonProperty("type")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,17 @@ public class FinancingOffer : StripeEntity<FinancingOffer>, IHasId, IHasMetadata
[STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;

/// <summary>
/// The type of disclaimer to use for a financing offer in user-facing surfaces. The
/// corresponding disclaimer text to use for each disclaimer_variant value can be found in
/// the <a href="https://docs.stripe.com/capital/marketing">marketing docs</a>.
/// One of: <c>celtic_us_loan</c>, <c>fundbox_au_financing</c>, <c>youlend_de_financing</c>,
/// <c>youlend_fr_financing</c>, <c>youlend_uk_mca</c>, or <c>youlend_us_mca</c>.
/// </summary>
[JsonProperty("disclaimer_variant")]
[STJS.JsonPropertyName("disclaimer_variant")]
public string DisclaimerVariant { get; set; }

/// <summary>
/// Time at which the offer expires. Given in seconds since unix epoch.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,18 @@ public class FinancingSummaryDetails : StripeEntity<FinancingSummaryDetails>
[STJS.JsonPropertyName("current_repayment_interval")]
public FinancingSummaryDetailsCurrentRepaymentInterval CurrentRepaymentInterval { get; set; }

/// <summary>
/// The type of disclaimer to use for a financing offer in user-facing surfaces. The
/// corresponding disclaimer text to use for each disclaimer_variant value can be found in
/// the <a href="https://docs.stripe.com/capital/regulatory-compliance">regulatory
/// compliance docs</a>.
/// One of: <c>celtic_us_loan</c>, <c>fundbox_au_financing</c>, <c>youlend_de_financing</c>,
/// <c>youlend_fr_financing</c>, <c>youlend_uk_mca</c>, or <c>youlend_us_mca</c>.
/// </summary>
[JsonProperty("disclaimer_variant")]
[STJS.JsonPropertyName("disclaimer_variant")]
public string DisclaimerVariant { get; set; }

/// <summary>
/// Fixed fee amount, in minor units. For example, 100 USD is represented as 10000.
/// </summary>
Expand Down
7 changes: 7 additions & 0 deletions src/Stripe.net/Entities/Cards/Card.cs
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,13 @@ public Customer Customer
[STJS.JsonPropertyName("networks")]
public CardNetworks Networks { get; set; }

/// <summary>
/// Redaction status of this card. If not null, this card is associated to a redaction job.
/// </summary>
[JsonProperty("redaction")]
[STJS.JsonPropertyName("redaction")]
public CardRedaction Redaction { get; set; }

/// <summary>
/// Status of a card based on the card issuer.
/// One of: <c>regulated</c>, or <c>unregulated</c>.
Expand Down
19 changes: 19 additions & 0 deletions src/Stripe.net/Entities/Cards/CardRedaction.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// File generated from our OpenAPI spec
namespace Stripe
{
using Newtonsoft.Json;
using Stripe.Infrastructure;
using STJS = System.Text.Json.Serialization;

[STJS.JsonConverter(typeof(STJStripeEntityConverter))]
public class CardRedaction : StripeEntity<CardRedaction>
{
/// <summary>
/// Indicates whether this object and its related objects have been redacted or not.
/// One of: <c>processing</c>, <c>redacted</c>, or <c>validated</c>.
/// </summary>
[JsonProperty("status")]
[STJS.JsonPropertyName("status")]
public string Status { get; set; }
}
}
8 changes: 8 additions & 0 deletions src/Stripe.net/Entities/Charges/Charge.cs
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,14 @@ public PaymentIntent PaymentIntent
[STJS.JsonPropertyName("receipt_url")]
public string ReceiptUrl { get; set; }

/// <summary>
/// Redaction status of this charge. If not null, this charge is associated to a redaction
/// job.
/// </summary>
[JsonProperty("redaction")]
[STJS.JsonPropertyName("redaction")]
public ChargeRedaction Redaction { get; set; }

/// <summary>
/// Whether the charge has been fully refunded. If the charge is only partially refunded,
/// this attribute will still be false.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ namespace Stripe
[STJS.JsonConverter(typeof(STJStripeEntityConverter))]
public class ChargePaymentMethodDetailsBizum : StripeEntity<ChargePaymentMethodDetailsBizum>
{
/// <summary>
/// A unique identifier for the buyer as determined by the local payment processor.
/// </summary>
[JsonProperty("buyer_id")]
[STJS.JsonPropertyName("buyer_id")]
public string BuyerId { get; set; }

/// <summary>
/// The Bizum transaction ID associated with this payment.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,16 @@ public class ChargePaymentMethodDetailsCard : StripeEntity<ChargePaymentMethodDe
[STJS.JsonPropertyName("description")]
public string Description { get; set; }

/// <summary>
/// The Electronic Commerce Indicator (ECI) returned by the card network in the
/// authorization response. Indicates the level of authentication used. Only populated for
/// Visa and Mastercard transactions. The response value is the source of truth; it may
/// differ from the request value if the network downgraded the transaction.
/// </summary>
[JsonProperty("electronic_commerce_indicator")]
[STJS.JsonPropertyName("electronic_commerce_indicator")]
public string ElectronicCommerceIndicator { get; set; }

/// <summary>
/// Two-digit number representing the card's expiration month.
/// </summary>
Expand Down Expand Up @@ -246,6 +256,16 @@ public class ChargePaymentMethodDetailsCard : StripeEntity<ChargePaymentMethodDe
[STJS.JsonPropertyName("three_d_secure")]
public ChargePaymentMethodDetailsCardThreeDSecure ThreeDSecure { get; set; }

/// <summary>
/// Transaction Link ID (TLID) is a unique identifier for a transaction. This is used by
/// some card networks, such as Mastercard, for transaction linking, in addition to Network
/// Transaction IDs. This value will be present if it is returned by the financial network
/// in the authorization response, and null otherwise.
/// </summary>
[JsonProperty("transaction_link_id")]
[STJS.JsonPropertyName("transaction_link_id")]
public string TransactionLinkId { get; set; }

/// <summary>
/// If this Card is part of a card wallet, this contains the details of the card wallet.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,20 @@ namespace Stripe
[STJS.JsonConverter(typeof(STJStripeEntityConverter))]
public class ChargePaymentMethodDetailsCrypto : StripeEntity<ChargePaymentMethodDetailsCrypto>
{
/// <summary>
/// The amount received for the crypto payment.
/// </summary>
[JsonProperty("amount_received")]
[STJS.JsonPropertyName("amount_received")]
public long AmountReceived { get; set; }

/// <summary>
/// The amount requested for the crypto payment.
/// </summary>
[JsonProperty("amount_requested")]
[STJS.JsonPropertyName("amount_requested")]
public long AmountRequested { get; set; }

/// <summary>
/// The wallet address of the customer.
/// </summary>
Expand All @@ -17,15 +31,17 @@ public class ChargePaymentMethodDetailsCrypto : StripeEntity<ChargePaymentMethod

/// <summary>
/// The blockchain network that the transaction was sent on.
/// One of: <c>base</c>, <c>ethereum</c>, <c>polygon</c>, <c>solana</c>, or <c>tempo</c>.
/// One of: <c>base</c>, <c>ethereum</c>, <c>polygon</c>, <c>solana</c>, <c>sui</c>, or
/// <c>tempo</c>.
/// </summary>
[JsonProperty("network")]
[STJS.JsonPropertyName("network")]
public string Network { get; set; }

/// <summary>
/// The token currency that the transaction was sent with.
/// One of: <c>phantom_cash</c>, <c>usdc</c>, <c>usdg</c>, <c>usdp</c>, or <c>usdt</c>.
/// One of: <c>phantom_cash</c>, <c>usdc</c>, <c>usdg</c>, <c>usdp</c>, <c>usdsui</c>, or
/// <c>usdt</c>.
/// </summary>
[JsonProperty("token_currency")]
[STJS.JsonPropertyName("token_currency")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ public class ChargePaymentMethodDetailsGiftCard : StripeEntity<ChargePaymentMeth
[STJS.JsonPropertyName("exp_year")]
public long? ExpYear { get; set; }

/// <summary>
/// Uniquely identifies this particular gift card number. You can use this attribute to
/// check whether two transactions were made using the same gift card.
/// </summary>
[JsonProperty("fingerprint")]
[STJS.JsonPropertyName("fingerprint")]
public string Fingerprint { get; set; }

/// <summary>
/// The first six digits of the gift card number.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@ public class ChargePaymentMethodDetailsPix : StripeEntity<ChargePaymentMethodDet
[STJS.JsonPropertyName("bank_transaction_id")]
public string BankTransactionId { get; set; }

/// <summary>
/// Uniquely identifies this particular Pix account. You can use this attribute to check
/// whether two Pix accounts are the same.
/// </summary>
[JsonProperty("fingerprint")]
[STJS.JsonPropertyName("fingerprint")]
public string Fingerprint { get; set; }

/// <summary>
/// ID of the multi use Mandate generated by the PaymentIntent.
/// </summary>
Expand Down
19 changes: 19 additions & 0 deletions src/Stripe.net/Entities/Charges/ChargeRedaction.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// File generated from our OpenAPI spec
namespace Stripe
{
using Newtonsoft.Json;
using Stripe.Infrastructure;
using STJS = System.Text.Json.Serialization;

[STJS.JsonConverter(typeof(STJStripeEntityConverter))]
public class ChargeRedaction : StripeEntity<ChargeRedaction>
{
/// <summary>
/// Indicates whether this object and its related objects have been redacted or not.
/// One of: <c>processing</c>, <c>redacted</c>, or <c>validated</c>.
/// </summary>
[JsonProperty("status")]
[STJS.JsonPropertyName("status")]
public string Status { get; set; }
}
}
8 changes: 8 additions & 0 deletions src/Stripe.net/Entities/Checkout/Sessions/Session.cs
Original file line number Diff line number Diff line change
Expand Up @@ -641,6 +641,14 @@ public PaymentRecord PaymentRecord
[STJS.JsonPropertyName("recovered_from")]
public string RecoveredFrom { get; set; }

/// <summary>
/// The redaction status of the Checkout Session. If the Session is not redacted, this field
/// is null.
/// </summary>
[JsonProperty("redaction")]
[STJS.JsonPropertyName("redaction")]
public SessionRedaction Redaction { get; set; }

/// <summary>
/// This parameter applies to <c>ui_mode: embedded_page</c>. Learn more about the <a
/// href="https://docs.stripe.com/payments/checkout/custom-success-page?payment-ui=embedded-form">redirect
Expand Down
7 changes: 7 additions & 0 deletions src/Stripe.net/Entities/Checkout/Sessions/SessionItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ public class SessionItem : StripeEntity<SessionItem>
[STJS.JsonPropertyName("key")]
public string Key { get; set; }

/// <summary>
/// Details on the subscription for this item.
/// </summary>
[JsonProperty("subscription")]
[STJS.JsonPropertyName("subscription")]
public SessionItemSubscription Subscription { get; set; }

/// <summary>
/// The type of the item.
/// </summary>
Expand Down
Loading
Loading