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
2 changes: 1 addition & 1 deletion API_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6d15a7f20cb77c2c22091a30e499cb89d7e3248c
f587035a62fe3323ed42077a0526158e57a8260b
2 changes: 1 addition & 1 deletion OPENAPI_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v2111
v2121
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,7 +3,7 @@ namespace Stripe
{
internal class ApiVersion
{
public const string Current = "2025-10-29.clover";
public const string Current = "2025-11-17.clover";
public const string CurrentMajor = "clover";
}
}
10 changes: 10 additions & 0 deletions src/Stripe.net/Constants/EventTypes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,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 @@ -463,6 +468,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 whenever a VerificationSession is canceled.
/// </summary>
Expand Down
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 @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,11 @@ public class ConfirmationTokenPaymentMethodPreviewIdeal : StripeEntity<Confirmat
{
/// <summary>
/// The customer's bank, if provided. 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>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>.
/// 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 @@ -27,9 +28,9 @@ public class ConfirmationTokenPaymentMethodPreviewIdeal : StripeEntity<Confirmat
/// <summary>
/// The Bank Identifier Code of the customer's bank, if the bank was provided.
/// 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
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ public class ConfirmationTokenPaymentMethodPreviewUsBankAccountStatusDetailsBloc
/// The reason why this PaymentMethod's fingerprint has been blocked.
/// One of: <c>bank_account_closed</c>, <c>bank_account_frozen</c>,
/// <c>bank_account_invalid_details</c>, <c>bank_account_restricted</c>,
/// <c>bank_account_unusable</c>, or <c>debit_not_authorized</c>.
/// <c>bank_account_unusable</c>, <c>debit_not_authorized</c>, or
/// <c>tokenized_account_number_deactivated</c>.
/// </summary>
[JsonProperty("reason")]
#if NET6_0_OR_GREATER
Expand Down
2 changes: 2 additions & 0 deletions src/Stripe.net/Entities/Events/Event.cs
Original file line number Diff line number Diff line change
Expand Up @@ -168,13 +168,15 @@ public class Event : StripeEntity<Event>, IHasId, IHasObject
/// <c>customer.tax_id.deleted</c>, <c>customer.tax_id.updated</c>, <c>customer.updated</c>,
/// <c>customer_cash_balance_transaction.created</c>,
/// <c>entitlements.active_entitlement_summary.updated</c>, <c>file.created</c>,
/// <c>financial_connections.account.account_numbers_updated</c>,
/// <c>financial_connections.account.created</c>,
/// <c>financial_connections.account.deactivated</c>,
/// <c>financial_connections.account.disconnected</c>,
/// <c>financial_connections.account.reactivated</c>,
/// <c>financial_connections.account.refreshed_balance</c>,
/// <c>financial_connections.account.refreshed_ownership</c>,
/// <c>financial_connections.account.refreshed_transactions</c>,
/// <c>financial_connections.account.upcoming_account_number_expiry</c>,
/// <c>identity.verification_session.canceled</c>,
/// <c>identity.verification_session.created</c>,
/// <c>identity.verification_session.processing</c>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,15 @@ public class Account : StripeEntity<Account>, IHasId, IHasObject
#endif
public AccountAccountHolder AccountHolder { get; set; }

/// <summary>
/// Details about the account numbers.
/// </summary>
[JsonProperty("account_numbers")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("account_numbers")]
#endif
public List<AccountAccountNumber> AccountNumbers { get; set; }

/// <summary>
/// The most recent information about the account's balance.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// File generated from our OpenAPI spec
namespace Stripe.FinancialConnections
{
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Stripe.Infrastructure;
#if NET6_0_OR_GREATER
using STJS = System.Text.Json.Serialization;
#endif

public class AccountAccountNumber : StripeEntity<AccountAccountNumber>
{
/// <summary>
/// When the account number is expected to expire, if applicable.
/// </summary>
[JsonProperty("expected_expiry_date")]
[JsonConverter(typeof(UnixDateTimeConverter))]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("expected_expiry_date")]
[STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
#endif
public DateTime? ExpectedExpiryDate { get; set; }

/// <summary>
/// The type of account number associated with the account.
/// One of: <c>account_number</c>, or <c>tokenized_account_number</c>.
/// </summary>
[JsonProperty("identifier_type")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("identifier_type")]
#endif
public string IdentifierType { get; set; }

/// <summary>
/// Whether the account number is currently active and usable for transactions.
/// One of: <c>deactivated</c>, or <c>transactable</c>.
/// </summary>
[JsonProperty("status")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("status")]
#endif
public string Status { get; set; }

/// <summary>
/// The payment networks that the account number can be used for.
/// </summary>
[JsonProperty("supported_networks")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("supported_networks")]
#endif
public List<string> SupportedNetworks { get; set; }
}
}
10 changes: 10 additions & 0 deletions src/Stripe.net/Entities/Issuing/Cards/Card.cs
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,16 @@ public class Card : StripeEntity<Card>, IHasId, IHasMetadata, IHasObject
#endif
public string Last4 { get; set; }

/// <summary>
/// Stripe’s assessment of whether this card’s details have been compromised. If this
/// property isn't null, cancel and reissue the card to prevent fraudulent activity risk.
/// </summary>
[JsonProperty("latest_fraud_warning")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("latest_fraud_warning")]
#endif
public CardLatestFraudWarning LatestFraudWarning { get; set; }

/// <summary>
/// Has the value <c>true</c> if the object exists in live mode or the value <c>false</c> if
/// the object exists in test mode.
Expand Down
37 changes: 37 additions & 0 deletions src/Stripe.net/Entities/Issuing/Cards/CardLatestFraudWarning.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// File generated from our OpenAPI spec
namespace Stripe.Issuing
{
using System;
using Newtonsoft.Json;
using Stripe.Infrastructure;
#if NET6_0_OR_GREATER
using STJS = System.Text.Json.Serialization;
#endif

public class CardLatestFraudWarning : StripeEntity<CardLatestFraudWarning>
{
/// <summary>
/// Timestamp of the most recent fraud warning.
/// </summary>
[JsonProperty("started_at")]
[JsonConverter(typeof(UnixDateTimeConverter))]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("started_at")]
[STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
#endif
public DateTime? StartedAt { get; set; }

/// <summary>
/// The type of fraud warning that most recently took place on this card. This field updates
/// with every new fraud warning, so the value changes over time. If populated, cancel and
/// reissue the card.
/// One of: <c>card_testing_exposure</c>, <c>fraud_dispute_filed</c>,
/// <c>third_party_reported</c>, or <c>user_indicated_fraud</c>.
/// </summary>
[JsonProperty("type")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("type")]
#endif
public string Type { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -366,9 +366,6 @@ public class PaymentAttemptRecordPaymentMethodDetails : StripeEntity<PaymentAtte
#endif
public string Type { get; set; }

/// <summary>
/// Details of the US Bank Account used for this payment attempt.
/// </summary>
[JsonProperty("us_bank_account")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("us_bank_account")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@ public class PaymentAttemptRecordPaymentMethodDetailsIdeal : StripeEntity<Paymen
{
/// <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 PaymentAttemptRecordPaymentMethodDetailsIdeal : StripeEntity<Paymen
/// <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