diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION
index ddf5ac5449..8d6382a9f6 100644
--- a/OPENAPI_VERSION
+++ b/OPENAPI_VERSION
@@ -1 +1 @@
-v1505
\ No newline at end of file
+v1626
\ No newline at end of file
diff --git a/src/Stripe.net/Constants/ApiVersion.cs b/src/Stripe.net/Constants/ApiVersion.cs
index aac2243ecb..53a6443585 100644
--- a/src/Stripe.net/Constants/ApiVersion.cs
+++ b/src/Stripe.net/Constants/ApiVersion.cs
@@ -3,6 +3,6 @@ namespace Stripe
{
internal class ApiVersion
{
- public const string Current = "2025-02-24.acacia";
+ public const string Current = "2025-03-31.basil";
}
}
\ No newline at end of file
diff --git a/src/Stripe.net/Constants/EventTypes.cs b/src/Stripe.net/Constants/EventTypes.cs
index d5cbf0870d..12b22e3646 100644
--- a/src/Stripe.net/Constants/EventTypes.cs
+++ b/src/Stripe.net/Constants/EventTypes.cs
@@ -91,11 +91,46 @@ public static class EventTypes
///
public const string BillingAlertTriggered = "billing.alert.triggered";
+ ///
+ /// Occurs when a credit balance transaction is created.
+ ///
+ public const string BillingCreditBalanceTransactionCreated = "billing.credit_balance_transaction.created";
+
+ ///
+ /// Occurs when a credit grant is created.
+ ///
+ public const string BillingCreditGrantCreated = "billing.credit_grant.created";
+
+ ///
+ /// Occurs when a credit grant is updated.
+ ///
+ public const string BillingCreditGrantUpdated = "billing.credit_grant.updated";
+
///
/// Notifies of errors on a billing meter.
///
public const string BillingMeterErrorReportTriggered = "billing.meter_error_report.triggered";
+ ///
+ /// Occurs when a meter is created.
+ ///
+ public const string BillingMeterCreated = "billing.meter.created";
+
+ ///
+ /// Occurs when a meter is deactivated.
+ ///
+ public const string BillingMeterDeactivated = "billing.meter.deactivated";
+
+ ///
+ /// Occurs when a meter is reactivated.
+ ///
+ public const string BillingMeterReactivated = "billing.meter.reactivated";
+
+ ///
+ /// Occurs when a meter is updated.
+ ///
+ public const string BillingMeterUpdated = "billing.meter.updated";
+
///
/// Occurs whenever a capability has new requirements or a new status.
///
@@ -1089,7 +1124,8 @@ public static class EventTypes
///
/// Occurs whenever a review is closed. The review's reason field indicates why:
- /// approved, disputed, refunded, or refunded_as_fraud.
+ /// approved, disputed, refunded, refunded_as_fraud, or
+ /// canceled.
///
public const string ReviewClosed = "review.closed";
diff --git a/src/Stripe.net/Entities/Accounts/Account.cs b/src/Stripe.net/Entities/Accounts/Account.cs
index 610dc90379..8160d9d387 100644
--- a/src/Stripe.net/Entities/Accounts/Account.cs
+++ b/src/Stripe.net/Entities/Accounts/Account.cs
@@ -57,12 +57,7 @@ public class Account : StripeEntity, IHasId, IHasMetadata, IHasObject,
public AccountBusinessProfile BusinessProfile { get; set; }
///
- /// The business type. After you create an Account Link or Account Session, this property is
- /// only returned for accounts where controller.requirement_collection
- /// is application, which includes Custom accounts.
+ /// The business type.
/// One of: company, government_entity, individual, or
/// non_profit.
///
@@ -192,7 +187,7 @@ public class Account : StripeEntity, IHasId, IHasMetadata, IHasObject,
///
/// This is an object representing a person associated with a Stripe account.
///
- /// A platform cannot access a person for an account where account.controller.requirement_collection
/// is stripe, which includes Standard and Express accounts, after creating an
/// Account Link or Account Session to start Connect onboarding.
diff --git a/src/Stripe.net/Entities/Accounts/AccountCapabilities.cs b/src/Stripe.net/Entities/Accounts/AccountCapabilities.cs
index 5a027ad332..55894184e5 100644
--- a/src/Stripe.net/Entities/Accounts/AccountCapabilities.cs
+++ b/src/Stripe.net/Entities/Accounts/AccountCapabilities.cs
@@ -117,6 +117,17 @@ public class AccountCapabilities : StripeEntity
#endif
public string BankTransferPayments { get; set; }
+ ///
+ /// The status of the Billie capability of the account, or whether the account can directly
+ /// process Billie payments.
+ /// One of: active, inactive, or pending.
+ ///
+ [JsonProperty("billie_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("billie_payments")]
+#endif
+ public string BilliePayments { get; set; }
+
///
/// The status of the blik payments capability of the account, or whether the account can
/// directly process blik charges.
@@ -566,6 +577,17 @@ public class AccountCapabilities : StripeEntity
#endif
public string SamsungPayPayments { get; set; }
+ ///
+ /// The status of the Satispay capability of the account, or whether the account can
+ /// directly process Satispay payments.
+ /// One of: active, inactive, or pending.
+ ///
+ [JsonProperty("satispay_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("satispay_payments")]
+#endif
+ public string SatispayPayments { get; set; }
+
///
/// The status of the SEPA customer_balance payments (EUR currency) capability of the
/// account, or whether the account can directly process SEPA customer_balance charges.
diff --git a/src/Stripe.net/Entities/Accounts/AccountCompany.cs b/src/Stripe.net/Entities/Accounts/AccountCompany.cs
index ed9722d841..cab28dea10 100644
--- a/src/Stripe.net/Entities/Accounts/AccountCompany.cs
+++ b/src/Stripe.net/Entities/Accounts/AccountCompany.cs
@@ -87,7 +87,9 @@ public class AccountCompany : StripeEntity
public string ExportPurposeCode { get; set; }
///
- /// The company's legal name.
+ /// The company's legal name. Also available for accounts where controller.requirement_collection
+ /// is stripe.
///
[JsonProperty("name")]
#if NET6_0_OR_GREATER
@@ -96,7 +98,10 @@ public class AccountCompany : StripeEntity
public string Name { get; set; }
///
- /// The Kana variation of the company's legal name (Japan only).
+ /// The Kana variation of the company's legal name (Japan only). Also available for accounts
+ /// where controller.requirement_collection
+ /// is stripe.
///
[JsonProperty("name_kana")]
#if NET6_0_OR_GREATER
@@ -105,7 +110,10 @@ public class AccountCompany : StripeEntity
public string NameKana { get; set; }
///
- /// The Kanji variation of the company's legal name (Japan only).
+ /// The Kanji variation of the company's legal name (Japan only). Also available for
+ /// accounts where controller.requirement_collection
+ /// is stripe.
///
[JsonProperty("name_kanji")]
#if NET6_0_OR_GREATER
@@ -139,6 +147,12 @@ public class AccountCompany : StripeEntity
public AccountCompanyOwnershipDeclaration OwnershipDeclaration { get; set; }
///
+ /// This value is used to determine if a business is exempt from providing ultimate
+ /// beneficial owners. See this
+ /// support article and changelog
+ /// for more details.
/// One of: qualified_entity_exceeds_ownership_threshold, or
/// qualifies_as_financial_institution.
///
@@ -158,7 +172,10 @@ public class AccountCompany : StripeEntity
public string Phone { get; set; }
///
- /// The category identifying the legal structure of the company or legal entity. See controller.requirement_collection
+ /// is stripe. See Business
/// structure for more details.
/// One of: free_zone_establishment, free_zone_llc,
diff --git a/src/Stripe.net/Entities/Accounts/AccountFutureRequirementsError.cs b/src/Stripe.net/Entities/Accounts/AccountFutureRequirementsError.cs
index c5e8e112b8..98fed84463 100644
--- a/src/Stripe.net/Entities/Accounts/AccountFutureRequirementsError.cs
+++ b/src/Stripe.net/Entities/Accounts/AccountFutureRequirementsError.cs
@@ -10,13 +10,13 @@ public class AccountFutureRequirementsError : StripeEntity
/// The code for the type of error.
- /// One of: invalid_address_city_state_postal_code,
+ /// One of: information_missing, invalid_address_city_state_postal_code,
/// invalid_address_highway_contract_box, invalid_address_private_mailbox,
/// invalid_business_profile_name, invalid_business_profile_name_denylisted,
/// invalid_company_name_denylisted, invalid_dob_age_over_maximum,
/// invalid_dob_age_under_18, invalid_dob_age_under_minimum,
/// invalid_product_description_length, invalid_product_description_url_match,
- /// invalid_representative_country,
+ /// invalid_representative_country, invalid_signator,
/// invalid_statement_descriptor_business_mismatch,
/// invalid_statement_descriptor_denylisted,
/// invalid_statement_descriptor_length,
@@ -59,6 +59,7 @@ public class AccountFutureRequirementsError : StripeEntityverification_document_not_uploaded, verification_document_photo_mismatch,
/// verification_document_too_large, verification_document_type_not_supported,
/// verification_extraneous_directors, verification_failed_address_match,
+ /// verification_failed_authorizer_authority,
/// verification_failed_business_iec_number,
/// verification_failed_document_match, verification_failed_id_number_match,
/// verification_failed_keyed_identity, verification_failed_keyed_match,
@@ -67,6 +68,7 @@ public class AccountFutureRequirementsError : StripeEntityverification_failed_residential_address, verification_failed_tax_id_match,
/// verification_failed_tax_id_not_issued, verification_missing_directors,
/// verification_missing_executives, verification_missing_owners,
+ /// verification_rejected_ownership_exemption_reason,
/// verification_requires_additional_memorandum_of_associations,
/// verification_requires_additional_proof_of_registration, or
/// verification_supportability.
diff --git a/src/Stripe.net/Entities/Accounts/AccountRequirementsError.cs b/src/Stripe.net/Entities/Accounts/AccountRequirementsError.cs
index 9367a9426a..2bf03d9d87 100644
--- a/src/Stripe.net/Entities/Accounts/AccountRequirementsError.cs
+++ b/src/Stripe.net/Entities/Accounts/AccountRequirementsError.cs
@@ -10,13 +10,13 @@ public class AccountRequirementsError : StripeEntity
{
///
/// The code for the type of error.
- /// One of: invalid_address_city_state_postal_code,
+ /// One of: information_missing, invalid_address_city_state_postal_code,
/// invalid_address_highway_contract_box, invalid_address_private_mailbox,
/// invalid_business_profile_name, invalid_business_profile_name_denylisted,
/// invalid_company_name_denylisted, invalid_dob_age_over_maximum,
/// invalid_dob_age_under_18, invalid_dob_age_under_minimum,
/// invalid_product_description_length, invalid_product_description_url_match,
- /// invalid_representative_country,
+ /// invalid_representative_country, invalid_signator,
/// invalid_statement_descriptor_business_mismatch,
/// invalid_statement_descriptor_denylisted,
/// invalid_statement_descriptor_length,
@@ -59,6 +59,7 @@ public class AccountRequirementsError : StripeEntity
/// verification_document_not_uploaded, verification_document_photo_mismatch,
/// verification_document_too_large, verification_document_type_not_supported,
/// verification_extraneous_directors, verification_failed_address_match,
+ /// verification_failed_authorizer_authority,
/// verification_failed_business_iec_number,
/// verification_failed_document_match, verification_failed_id_number_match,
/// verification_failed_keyed_identity, verification_failed_keyed_match,
@@ -67,6 +68,7 @@ public class AccountRequirementsError : StripeEntity
/// verification_failed_residential_address, verification_failed_tax_id_match,
/// verification_failed_tax_id_not_issued, verification_missing_directors,
/// verification_missing_executives, verification_missing_owners,
+ /// verification_rejected_ownership_exemption_reason,
/// verification_requires_additional_memorandum_of_associations,
/// verification_requires_additional_proof_of_registration, or
/// verification_supportability.
diff --git a/src/Stripe.net/Entities/Accounts/AccountSettingsInvoices.cs b/src/Stripe.net/Entities/Accounts/AccountSettingsInvoices.cs
index c67803874d..da4456b976 100644
--- a/src/Stripe.net/Entities/Accounts/AccountSettingsInvoices.cs
+++ b/src/Stripe.net/Entities/Accounts/AccountSettingsInvoices.cs
@@ -54,5 +54,16 @@ public List DefaultAccountTaxIds
#endif
internal List> InternalDefaultAccountTaxIds { get; set; }
#endregion
+
+ ///
+ /// Whether payment methods should be saved when a payment is completed for a one-time
+ /// invoices on a hosted invoice page.
+ /// One of: always, never, or offer.
+ ///
+ [JsonProperty("hosted_payment_method_save")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("hosted_payment_method_save")]
+#endif
+ public string HostedPaymentMethodSave { get; set; }
}
}
diff --git a/src/Stripe.net/Entities/ApplicationFees/ApplicationFeeFeeSource.cs b/src/Stripe.net/Entities/ApplicationFees/ApplicationFeeFeeSource.cs
index 3234bc6ccd..709803f759 100644
--- a/src/Stripe.net/Entities/ApplicationFees/ApplicationFeeFeeSource.cs
+++ b/src/Stripe.net/Entities/ApplicationFees/ApplicationFeeFeeSource.cs
@@ -27,7 +27,7 @@ public class ApplicationFeeFeeSource : StripeEntity
public string Payout { get; set; }
///
- /// Type of object that created the application fee, either charge or payout.
+ /// Type of object that created the application fee.
/// One of: charge, or payout.
///
[JsonProperty("type")]
diff --git a/src/Stripe.net/Entities/BankAccounts/BankAccount.cs b/src/Stripe.net/Entities/BankAccounts/BankAccount.cs
index d8a215d97f..e96dff8d61 100644
--- a/src/Stripe.net/Entities/BankAccounts/BankAccount.cs
+++ b/src/Stripe.net/Entities/BankAccounts/BankAccount.cs
@@ -45,7 +45,12 @@ public class BankAccount : StripeEntity, IHasId, IHasMetadata, IHas
///
/// (ID of the Account)
- /// The ID of the account that the bank account is associated with.
+ /// The account this bank account belongs to. Only applicable on Accounts (not customers or
+ /// recipients) This property is only available when returned as an External Account
+ /// where controller.is_controller
+ /// is true.
///
[JsonIgnore]
#if NET6_0_OR_GREATER
@@ -59,7 +64,12 @@ public string AccountId
///
/// (Expanded)
- /// The ID of the account that the bank account is associated with.
+ /// The account this bank account belongs to. Only applicable on Accounts (not customers or
+ /// recipients) This property is only available when returned as an External Account
+ /// where controller.is_controller
+ /// is true.
///
/// For more information, see the expand documentation.
///
diff --git a/src/Stripe.net/Entities/BankAccounts/BankAccountFutureRequirementsError.cs b/src/Stripe.net/Entities/BankAccounts/BankAccountFutureRequirementsError.cs
index 233075bd4f..13f7191e16 100644
--- a/src/Stripe.net/Entities/BankAccounts/BankAccountFutureRequirementsError.cs
+++ b/src/Stripe.net/Entities/BankAccounts/BankAccountFutureRequirementsError.cs
@@ -10,13 +10,13 @@ public class BankAccountFutureRequirementsError : StripeEntity
/// The code for the type of error.
- /// One of: invalid_address_city_state_postal_code,
+ /// One of: information_missing, invalid_address_city_state_postal_code,
/// invalid_address_highway_contract_box, invalid_address_private_mailbox,
/// invalid_business_profile_name, invalid_business_profile_name_denylisted,
/// invalid_company_name_denylisted, invalid_dob_age_over_maximum,
/// invalid_dob_age_under_18, invalid_dob_age_under_minimum,
/// invalid_product_description_length, invalid_product_description_url_match,
- /// invalid_representative_country,
+ /// invalid_representative_country, invalid_signator,
/// invalid_statement_descriptor_business_mismatch,
/// invalid_statement_descriptor_denylisted,
/// invalid_statement_descriptor_length,
@@ -59,6 +59,7 @@ public class BankAccountFutureRequirementsError : StripeEntityverification_document_not_uploaded, verification_document_photo_mismatch,
/// verification_document_too_large, verification_document_type_not_supported,
/// verification_extraneous_directors, verification_failed_address_match,
+ /// verification_failed_authorizer_authority,
/// verification_failed_business_iec_number,
/// verification_failed_document_match, verification_failed_id_number_match,
/// verification_failed_keyed_identity, verification_failed_keyed_match,
@@ -67,6 +68,7 @@ public class BankAccountFutureRequirementsError : StripeEntityverification_failed_residential_address, verification_failed_tax_id_match,
/// verification_failed_tax_id_not_issued, verification_missing_directors,
/// verification_missing_executives, verification_missing_owners,
+ /// verification_rejected_ownership_exemption_reason,
/// verification_requires_additional_memorandum_of_associations,
/// verification_requires_additional_proof_of_registration, or
/// verification_supportability.
diff --git a/src/Stripe.net/Entities/BankAccounts/BankAccountRequirementsError.cs b/src/Stripe.net/Entities/BankAccounts/BankAccountRequirementsError.cs
index a51381f28f..f35f8cb8aa 100644
--- a/src/Stripe.net/Entities/BankAccounts/BankAccountRequirementsError.cs
+++ b/src/Stripe.net/Entities/BankAccounts/BankAccountRequirementsError.cs
@@ -10,13 +10,13 @@ public class BankAccountRequirementsError : StripeEntity
/// The code for the type of error.
- /// One of: invalid_address_city_state_postal_code,
+ /// One of: information_missing, invalid_address_city_state_postal_code,
/// invalid_address_highway_contract_box, invalid_address_private_mailbox,
/// invalid_business_profile_name, invalid_business_profile_name_denylisted,
/// invalid_company_name_denylisted, invalid_dob_age_over_maximum,
/// invalid_dob_age_under_18, invalid_dob_age_under_minimum,
/// invalid_product_description_length, invalid_product_description_url_match,
- /// invalid_representative_country,
+ /// invalid_representative_country, invalid_signator,
/// invalid_statement_descriptor_business_mismatch,
/// invalid_statement_descriptor_denylisted,
/// invalid_statement_descriptor_length,
@@ -59,6 +59,7 @@ public class BankAccountRequirementsError : StripeEntityverification_document_not_uploaded, verification_document_photo_mismatch,
/// verification_document_too_large, verification_document_type_not_supported,
/// verification_extraneous_directors, verification_failed_address_match,
+ /// verification_failed_authorizer_authority,
/// verification_failed_business_iec_number,
/// verification_failed_document_match, verification_failed_id_number_match,
/// verification_failed_keyed_identity, verification_failed_keyed_match,
@@ -67,6 +68,7 @@ public class BankAccountRequirementsError : StripeEntityverification_failed_residential_address, verification_failed_tax_id_match,
/// verification_failed_tax_id_not_issued, verification_missing_directors,
/// verification_missing_executives, verification_missing_owners,
+ /// verification_rejected_ownership_exemption_reason,
/// verification_requires_additional_memorandum_of_associations,
/// verification_requires_additional_proof_of_registration, or
/// verification_supportability.
diff --git a/src/Stripe.net/Entities/Billing/CreditGrants/CreditGrantApplicabilityConfigScope.cs b/src/Stripe.net/Entities/Billing/CreditGrants/CreditGrantApplicabilityConfigScope.cs
index 61fcbf3e60..672e08d5f5 100644
--- a/src/Stripe.net/Entities/Billing/CreditGrants/CreditGrantApplicabilityConfigScope.cs
+++ b/src/Stripe.net/Entities/Billing/CreditGrants/CreditGrantApplicabilityConfigScope.cs
@@ -13,6 +13,7 @@ public class CreditGrantApplicabilityConfigScope : StripeEntitymetered price type. This refers to prices that have a Billing Meter attached to them.
+ /// Cannot be used in combination with prices.
///
[JsonProperty("price_type")]
#if NET6_0_OR_GREATER
@@ -24,6 +25,7 @@ public class CreditGrantApplicabilityConfigScope : StripeEntitymetered
/// prices. This refers to prices that have a Billing Meter attached to them.
+ /// Cannot be used in combination with price_type.
///
[JsonProperty("prices")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/Billing/Meters/MeterDefaultAggregation.cs b/src/Stripe.net/Entities/Billing/Meters/MeterDefaultAggregation.cs
index 7c16418e78..01b5b0b5c5 100644
--- a/src/Stripe.net/Entities/Billing/Meters/MeterDefaultAggregation.cs
+++ b/src/Stripe.net/Entities/Billing/Meters/MeterDefaultAggregation.cs
@@ -10,7 +10,7 @@ public class MeterDefaultAggregation : StripeEntity
{
///
/// Specifies how events are aggregated.
- /// One of: count, or sum.
+ /// One of: count, last, or sum.
///
[JsonProperty("formula")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/Capabilities/CapabilityFutureRequirementsError.cs b/src/Stripe.net/Entities/Capabilities/CapabilityFutureRequirementsError.cs
index b1b9fb5bdb..b560d2978f 100644
--- a/src/Stripe.net/Entities/Capabilities/CapabilityFutureRequirementsError.cs
+++ b/src/Stripe.net/Entities/Capabilities/CapabilityFutureRequirementsError.cs
@@ -10,13 +10,13 @@ public class CapabilityFutureRequirementsError : StripeEntity
/// The code for the type of error.
- /// One of: invalid_address_city_state_postal_code,
+ /// One of: information_missing, invalid_address_city_state_postal_code,
/// invalid_address_highway_contract_box, invalid_address_private_mailbox,
/// invalid_business_profile_name, invalid_business_profile_name_denylisted,
/// invalid_company_name_denylisted, invalid_dob_age_over_maximum,
/// invalid_dob_age_under_18, invalid_dob_age_under_minimum,
/// invalid_product_description_length, invalid_product_description_url_match,
- /// invalid_representative_country,
+ /// invalid_representative_country, invalid_signator,
/// invalid_statement_descriptor_business_mismatch,
/// invalid_statement_descriptor_denylisted,
/// invalid_statement_descriptor_length,
@@ -59,6 +59,7 @@ public class CapabilityFutureRequirementsError : StripeEntityverification_document_not_uploaded, verification_document_photo_mismatch,
/// verification_document_too_large, verification_document_type_not_supported,
/// verification_extraneous_directors, verification_failed_address_match,
+ /// verification_failed_authorizer_authority,
/// verification_failed_business_iec_number,
/// verification_failed_document_match, verification_failed_id_number_match,
/// verification_failed_keyed_identity, verification_failed_keyed_match,
@@ -67,6 +68,7 @@ public class CapabilityFutureRequirementsError : StripeEntityverification_failed_residential_address, verification_failed_tax_id_match,
/// verification_failed_tax_id_not_issued, verification_missing_directors,
/// verification_missing_executives, verification_missing_owners,
+ /// verification_rejected_ownership_exemption_reason,
/// verification_requires_additional_memorandum_of_associations,
/// verification_requires_additional_proof_of_registration, or
/// verification_supportability.
diff --git a/src/Stripe.net/Entities/Cards/Card.cs b/src/Stripe.net/Entities/Cards/Card.cs
index 99c41dd785..95d3a7854a 100644
--- a/src/Stripe.net/Entities/Cards/Card.cs
+++ b/src/Stripe.net/Entities/Cards/Card.cs
@@ -41,14 +41,6 @@ public class Card : StripeEntity, IHasId, IHasMetadata, IHasObject, IExter
#region Expandable Account
- ///
- /// (ID of the Account)
- /// The account this card belongs to. This attribute will not be in the card object if the
- /// card belongs to a customer or recipient instead. This property is only available for
- /// accounts where controller.requirement_collection
- /// is application, which includes Custom accounts.
- ///
[JsonIgnore]
#if NET6_0_OR_GREATER
[STJS.JsonIgnore]
@@ -59,16 +51,6 @@ public string AccountId
set => this.InternalAccount = SetExpandableFieldId(value, this.InternalAccount);
}
- ///
- /// (Expanded)
- /// The account this card belongs to. This attribute will not be in the card object if the
- /// card belongs to a customer or recipient instead. This property is only available for
- /// accounts where controller.requirement_collection
- /// is application, which includes Custom accounts.
- ///
- /// For more information, see the expand documentation.
- ///
[JsonIgnore]
#if NET6_0_OR_GREATER
[STJS.JsonIgnore]
@@ -223,9 +205,11 @@ public Account Account
/// currency in lowercase. Must be a supported currency. Only applicable on
/// accounts (not customers or recipients). The card can be used as a transfer destination
- /// for funds in this currency. This property is only available for accounts where controller.requirement_collection
- /// is application, which includes Custom accounts.
+ /// for funds in this currency. This property is only available when returned as an External Account where
+ /// controller.is_controller
+ /// is true.
///
[JsonProperty("currency")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/Charges/Charge.cs b/src/Stripe.net/Entities/Charges/Charge.cs
index 452ad563c5..6acda1fcbc 100644
--- a/src/Stripe.net/Entities/Charges/Charge.cs
+++ b/src/Stripe.net/Entities/Charges/Charge.cs
@@ -403,47 +403,6 @@ public BalanceTransaction FailureBalanceTransaction
#endif
public ChargeFraudDetails FraudDetails { get; set; }
- #region Expandable Invoice
-
- ///
- /// (ID of the Invoice)
- /// ID of the invoice this charge is for if one exists.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string InvoiceId
- {
- get => this.InternalInvoice?.Id;
- set => this.InternalInvoice = SetExpandableFieldId(value, this.InternalInvoice);
- }
-
- ///
- /// (Expanded)
- /// ID of the invoice this charge is for if one exists.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public Invoice Invoice
- {
- get => this.InternalInvoice?.ExpandedObject;
- set => this.InternalInvoice = SetExpandableFieldObject(value, this.InternalInvoice);
- }
-
- [JsonProperty("invoice")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("invoice")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalInvoice { get; set; }
- #endregion
-
[JsonProperty("level3")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("level3")]
@@ -596,6 +555,12 @@ public PaymentIntent PaymentIntent
#endif
public ChargePaymentMethodDetails PaymentMethodDetails { get; set; }
+ [JsonProperty("presentment_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_details")]
+#endif
+ public ChargePresentmentDetails PresentmentDetails { get; set; }
+
///
/// Options to configure Radar. See Radar Session for more
diff --git a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetails.cs b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetails.cs
index b9dd7f87ec..0c493a16cf 100644
--- a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetails.cs
+++ b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetails.cs
@@ -74,6 +74,12 @@ public class ChargePaymentMethodDetails : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsNzBankAccount.cs b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsNzBankAccount.cs
new file mode 100644
index 0000000000..b5e0578585
--- /dev/null
+++ b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsNzBankAccount.cs
@@ -0,0 +1,66 @@
+// 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 ChargePaymentMethodDetailsNzBankAccount : StripeEntity
+ {
+ ///
+ /// The name on the bank account. Only present if the account holder name is different from
+ /// the name of the authorized signatory collected in the PaymentMethod’s billing details.
+ ///
+ [JsonProperty("account_holder_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_holder_name")]
+#endif
+ public string AccountHolderName { get; set; }
+
+ ///
+ /// The numeric code for the bank account's bank.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// The name of the bank.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// The numeric code for the bank account's bank branch.
+ ///
+ [JsonProperty("branch_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("branch_code")]
+#endif
+ public string BranchCode { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// The suffix of the bank account number.
+ ///
+ [JsonProperty("suffix")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("suffix")]
+#endif
+ public string Suffix { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsSatispay.cs b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsSatispay.cs
new file mode 100644
index 0000000000..c183fea85b
--- /dev/null
+++ b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsSatispay.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class ChargePaymentMethodDetailsSatispay : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/Charges/ChargePresentmentDetails.cs b/src/Stripe.net/Entities/Charges/ChargePresentmentDetails.cs
new file mode 100644
index 0000000000..c8d2822b73
--- /dev/null
+++ b/src/Stripe.net/Entities/Charges/ChargePresentmentDetails.cs
@@ -0,0 +1,29 @@
+// 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 ChargePresentmentDetails : StripeEntity
+ {
+ ///
+ /// Amount intended to be collected by this payment, denominated in presentment_currency.
+ ///
+ [JsonProperty("presentment_amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_amount")]
+#endif
+ public long PresentmentAmount { get; set; }
+
+ ///
+ /// Currency presented to the customer during payment.
+ ///
+ [JsonProperty("presentment_currency")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_currency")]
+#endif
+ public string PresentmentCurrency { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Checkout/Sessions/Session.cs b/src/Stripe.net/Entities/Checkout/Sessions/Session.cs
index dda9ba0e52..e1a4e4eb25 100644
--- a/src/Stripe.net/Entities/Checkout/Sessions/Session.cs
+++ b/src/Stripe.net/Entities/Checkout/Sessions/Session.cs
@@ -134,7 +134,10 @@ public class Session : StripeEntity, IHasId, IHasMetadata, IHasObject
public string ClientReferenceId { get; set; }
///
- /// The client secret of the Session. Use this with ui_mode: embedded or ui_mode: custom. For ui_mode: embedded, the
+ /// client secret is to be used when initializing Stripe.js embedded checkout. For
+ /// ui_mode: custom, use the client secret with initCheckout on your front
/// end.
///
@@ -429,6 +432,15 @@ public Invoice Invoice
#endif
public string Mode { get; set; }
+ ///
+ /// The optional items presented to the customer at checkout.
+ ///
+ [JsonProperty("optional_items")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("optional_items")]
+#endif
+ public List OptionalItems { get; set; }
+
#region Expandable PaymentIntent
///
@@ -589,6 +601,12 @@ public PaymentLink PaymentLink
#endif
public SessionPhoneNumberCollection PhoneNumberCollection { get; set; }
+ [JsonProperty("presentment_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_details")]
+#endif
+ public SessionPresentmentDetails PresentmentDetails { get; set; }
+
///
/// The ID of the original expired Checkout Session that triggered the recovery flow.
///
@@ -698,15 +716,6 @@ public SetupIntent SetupIntent
#endif
public SessionShippingCost ShippingCost { get; set; }
- ///
- /// Shipping information for this Checkout Session.
- ///
- [JsonProperty("shipping_details")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("shipping_details")]
-#endif
- public SessionShippingDetails ShippingDetails { get; set; }
-
///
/// The shipping rate options applied to this Session.
///
@@ -817,8 +826,8 @@ public Subscription Subscription
public string UiMode { get; set; }
///
- /// The URL to the Checkout Session. Redirect customers to this URL to take them to
- /// Checkout. If you’re using ui_mode:
+ /// hosted. Redirect customers to this URL to take them to Checkout. If you’re using Custom Domains, the
/// URL will use your subdomain. Otherwise, it’ll use checkout.stripe.com. This value
/// is only present when the session is active.
diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionAutomaticTax.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionAutomaticTax.cs
index 1be8203d03..975087f0a3 100644
--- a/src/Stripe.net/Entities/Checkout/Sessions/SessionAutomaticTax.cs
+++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionAutomaticTax.cs
@@ -28,6 +28,15 @@ public class SessionAutomaticTax : StripeEntity
#endif
public SessionAutomaticTaxLiability Liability { get; set; }
+ ///
+ /// The tax provider powering automatic tax.
+ ///
+ [JsonProperty("provider")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("provider")]
+#endif
+ public string Provider { get; set; }
+
///
/// The status of the most recent automated tax calculation for this session.
/// One of: complete, failed, or requires_location_inputs.
diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionCollectedInformationShippingDetails.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionCollectedInformationShippingDetails.cs
index 3adfce72eb..242f919d6c 100644
--- a/src/Stripe.net/Entities/Checkout/Sessions/SessionCollectedInformationShippingDetails.cs
+++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionCollectedInformationShippingDetails.cs
@@ -15,41 +15,12 @@ public class SessionCollectedInformationShippingDetails : StripeEntity
- /// The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
- ///
- [JsonProperty("carrier")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("carrier")]
-#endif
- public string Carrier { get; set; }
-
- ///
- /// Recipient name.
+ /// Customer name.
///
[JsonProperty("name")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("name")]
#endif
public string Name { get; set; }
-
- ///
- /// Recipient phone (including extension).
- ///
- [JsonProperty("phone")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("phone")]
-#endif
- public string Phone { get; set; }
-
- ///
- /// The tracking number for a physical product, obtained from the delivery service. If
- /// multiple tracking numbers were generated for this purchase, please separate them with
- /// commas.
- ///
- [JsonProperty("tracking_number")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("tracking_number")]
-#endif
- public string TrackingNumber { get; set; }
}
}
diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionOptionalItem.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionOptionalItem.cs
new file mode 100644
index 0000000000..6919378ef8
--- /dev/null
+++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionOptionalItem.cs
@@ -0,0 +1,29 @@
+// File generated from our OpenAPI spec
+namespace Stripe.Checkout
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class SessionOptionalItem : StripeEntity
+ {
+ [JsonProperty("adjustable_quantity")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("adjustable_quantity")]
+#endif
+ public SessionOptionalItemAdjustableQuantity AdjustableQuantity { get; set; }
+
+ [JsonProperty("price")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("price")]
+#endif
+ public string Price { get; set; }
+
+ [JsonProperty("quantity")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("quantity")]
+#endif
+ public long Quantity { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionOptionalItemAdjustableQuantity.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionOptionalItemAdjustableQuantity.cs
new file mode 100644
index 0000000000..5307b3a711
--- /dev/null
+++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionOptionalItemAdjustableQuantity.cs
@@ -0,0 +1,42 @@
+// File generated from our OpenAPI spec
+namespace Stripe.Checkout
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class SessionOptionalItemAdjustableQuantity : StripeEntity
+ {
+ ///
+ /// Set to true if the quantity can be adjusted to any non-negative integer.
+ ///
+ [JsonProperty("enabled")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("enabled")]
+#endif
+ public bool Enabled { get; set; }
+
+ ///
+ /// The maximum quantity of this item the customer can purchase. By default this value is
+ /// 99. You can specify a value up to 999999.
+ ///
+ [JsonProperty("maximum")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("maximum")]
+#endif
+ public long? Maximum { get; set; }
+
+ ///
+ /// The minimum quantity of this item the customer must purchase, if they choose to purchase
+ /// it. Because this item is optional, the customer will always be able to remove it from
+ /// their order, even if the minimum configured here is greater than 0. By default
+ /// this value is 0.
+ ///
+ [JsonProperty("minimum")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("minimum")]
+#endif
+ public long? Minimum { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionPermissions.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionPermissions.cs
index d31be2510b..442072c39d 100644
--- a/src/Stripe.net/Entities/Checkout/Sessions/SessionPermissions.cs
+++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionPermissions.cs
@@ -16,5 +16,23 @@ public class SessionPermissions : StripeEntity
[STJS.JsonPropertyName("update")]
#endif
public SessionPermissionsUpdate Update { get; set; }
+
+ ///
+ /// Determines which entity is allowed to update the shipping details.
+ ///
+ /// Default is client_only. Stripe Checkout client will automatically update the
+ /// shipping details. If set to server_only, only your server is allowed to update
+ /// the shipping details.
+ ///
+ /// When set to server_only, you must add the onShippingDetailsChange event handler
+ /// when initializing the Stripe Checkout client and manually update the shipping details
+ /// from your server using the Stripe API.
+ /// One of: client_only, or server_only.
+ ///
+ [JsonProperty("update_shipping_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("update_shipping_details")]
+#endif
+ public string UpdateShippingDetails { get; set; }
}
}
diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionPresentmentDetails.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionPresentmentDetails.cs
new file mode 100644
index 0000000000..26870a5383
--- /dev/null
+++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionPresentmentDetails.cs
@@ -0,0 +1,29 @@
+// File generated from our OpenAPI spec
+namespace Stripe.Checkout
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class SessionPresentmentDetails : StripeEntity
+ {
+ ///
+ /// Amount intended to be collected by this payment, denominated in presentment_currency.
+ ///
+ [JsonProperty("presentment_amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_amount")]
+#endif
+ public long PresentmentAmount { get; set; }
+
+ ///
+ /// Currency presented to the customer during payment.
+ ///
+ [JsonProperty("presentment_currency")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_currency")]
+#endif
+ public string PresentmentCurrency { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionShippingDetails.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionShippingDetails.cs
deleted file mode 100644
index e5ff79c90f..0000000000
--- a/src/Stripe.net/Entities/Checkout/Sessions/SessionShippingDetails.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-// File generated from our OpenAPI spec
-namespace Stripe.Checkout
-{
- using Newtonsoft.Json;
-#if NET6_0_OR_GREATER
- using STJS = System.Text.Json.Serialization;
-#endif
-
- public class SessionShippingDetails : StripeEntity
- {
- [JsonProperty("address")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("address")]
-#endif
- public Address Address { get; set; }
-
- ///
- /// The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
- ///
- [JsonProperty("carrier")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("carrier")]
-#endif
- public string Carrier { get; set; }
-
- ///
- /// Recipient name.
- ///
- [JsonProperty("name")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("name")]
-#endif
- public string Name { get; set; }
-
- ///
- /// Recipient phone (including extension).
- ///
- [JsonProperty("phone")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("phone")]
-#endif
- public string Phone { get; set; }
-
- ///
- /// The tracking number for a physical product, obtained from the delivery service. If
- /// multiple tracking numbers were generated for this purchase, please separate them with
- /// commas.
- ///
- [JsonProperty("tracking_number")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("tracking_number")]
-#endif
- public string TrackingNumber { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreview.cs b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreview.cs
index a8727f7e9c..8799628678 100644
--- a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreview.cs
+++ b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreview.cs
@@ -79,6 +79,12 @@ public class ConfirmationTokenPaymentMethodPreview : StripeEntityacss_debit, affirm, afterpay_clearpay, alipay,
/// alma, amazon_pay, au_becs_debit, bacs_debit,
- /// bancontact, blik, boleto, card, card_present,
- /// cashapp, customer_balance, eps, fpx, giropay,
- /// gopay, grabpay, id_bank_transfer, ideal,
+ /// bancontact, billie, blik, boleto, card,
+ /// card_present, cashapp, customer_balance, eps, fpx,
+ /// giropay, gopay, grabpay, id_bank_transfer, ideal,
/// interac_present, kakao_pay, klarna, konbini, kr_card,
/// link, mb_way, mobilepay, multibanco, naver_pay,
- /// oxxo, p24, pay_by_bank, payco, paynow, paypal,
- /// payto, pix, promptpay, qris, rechnung,
- /// revolut_pay, samsung_pay, sepa_debit, shopeepay,
- /// sofort, swish, twint, us_bank_account, wechat_pay, or
- /// zip.
+ /// nz_bank_account, oxxo, p24, pay_by_bank, payco,
+ /// paynow, paypal, payto, pix, promptpay, qris,
+ /// rechnung, revolut_pay, samsung_pay, satispay,
+ /// sepa_debit, shopeepay, sofort, swish, twint,
+ /// us_bank_account, wechat_pay, or zip.
///
[JsonProperty("type")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewBillie.cs b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewBillie.cs
new file mode 100644
index 0000000000..599402af92
--- /dev/null
+++ b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewBillie.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class ConfirmationTokenPaymentMethodPreviewBillie : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewNaverPay.cs b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewNaverPay.cs
index 646907b6fb..1f3bd678e9 100644
--- a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewNaverPay.cs
+++ b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewNaverPay.cs
@@ -8,6 +8,16 @@ namespace Stripe
public class ConfirmationTokenPaymentMethodPreviewNaverPay : StripeEntity
{
+ ///
+ /// Uniquely identifies this particular Naver Pay account. You can use this attribute to
+ /// check whether two Naver Pay accounts are the same.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+
///
/// Whether to fund this transaction with Naver Pay points or a card.
/// One of: card, or points.
diff --git a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewNzBankAccount.cs b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewNzBankAccount.cs
new file mode 100644
index 0000000000..537bfa22ad
--- /dev/null
+++ b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewNzBankAccount.cs
@@ -0,0 +1,66 @@
+// 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 ConfirmationTokenPaymentMethodPreviewNzBankAccount : StripeEntity
+ {
+ ///
+ /// The name on the bank account. Only present if the account holder name is different from
+ /// the name of the authorized signatory collected in the PaymentMethod’s billing details.
+ ///
+ [JsonProperty("account_holder_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_holder_name")]
+#endif
+ public string AccountHolderName { get; set; }
+
+ ///
+ /// The numeric code for the bank account's bank.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// The name of the bank.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// The numeric code for the bank account's bank branch.
+ ///
+ [JsonProperty("branch_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("branch_code")]
+#endif
+ public string BranchCode { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// The suffix of the bank account number.
+ ///
+ [JsonProperty("suffix")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("suffix")]
+#endif
+ public string Suffix { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewSatispay.cs b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewSatispay.cs
new file mode 100644
index 0000000000..664b87d611
--- /dev/null
+++ b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewSatispay.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class ConfirmationTokenPaymentMethodPreviewSatispay : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/Coupons/Coupon.cs b/src/Stripe.net/Entities/Coupons/Coupon.cs
index d101cea153..7f0b7f7625 100644
--- a/src/Stripe.net/Entities/Coupons/Coupon.cs
+++ b/src/Stripe.net/Entities/Coupons/Coupon.cs
@@ -101,7 +101,7 @@ public class Coupon : StripeEntity, IHasId, IHasMetadata, IHasObject
///
/// One of forever, once, and repeating. Describes how long a customer
/// who applies this coupon will get the discount.
- /// One of: forever, once, repeating, or variable.
+ /// One of: forever, or once.
///
[JsonProperty("duration")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItem.cs b/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItem.cs
index 85127767dc..8c6052877e 100644
--- a/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItem.cs
+++ b/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItem.cs
@@ -40,16 +40,6 @@ public class CreditNoteLineItem : StripeEntity, IHasId, IHas
#endif
public long Amount { get; set; }
- ///
- /// The integer amount in cents (or local equivalent) representing the amount being credited
- /// for this line item, excluding all tax and discounts.
- ///
- [JsonProperty("amount_excluding_tax")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount_excluding_tax")]
-#endif
- public long? AmountExcludingTax { get; set; }
-
///
/// Description of the item being credited.
///
@@ -116,13 +106,13 @@ public class CreditNoteLineItem : StripeEntity, IHasId, IHas
public long? Quantity { get; set; }
///
- /// The amount of tax calculated per tax rate for this line item.
+ /// The tax calculation identifiers of the line item.
///
- [JsonProperty("tax_amounts")]
+ [JsonProperty("tax_calculation_reference")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("tax_amounts")]
+ [STJS.JsonPropertyName("tax_calculation_reference")]
#endif
- public List TaxAmounts { get; set; }
+ public CreditNoteLineItemTaxCalculationReference TaxCalculationReference { get; set; }
///
/// The tax rates which apply to the line item.
@@ -133,6 +123,15 @@ public class CreditNoteLineItem : StripeEntity, IHasId, IHas
#endif
public List TaxRates { get; set; }
+ ///
+ /// The tax information of the line item.
+ ///
+ [JsonProperty("taxes")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("taxes")]
+#endif
+ public List Taxes { get; set; }
+
///
/// The type of the credit note line item, one of invoice_line_item or
/// custom_line_item. When the type is invoice_line_item there is an
@@ -163,15 +162,5 @@ public class CreditNoteLineItem : StripeEntity, IHasId, IHas
[STJS.JsonPropertyName("unit_amount_decimal")]
#endif
public decimal? UnitAmountDecimal { get; set; }
-
- ///
- /// The amount in cents (or local equivalent) representing the unit amount being credited
- /// for this line item, excluding all tax and discounts.
- ///
- [JsonProperty("unit_amount_excluding_tax")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("unit_amount_excluding_tax")]
-#endif
- public decimal? UnitAmountExcludingTax { get; set; }
}
}
diff --git a/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItemTax.cs b/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItemTax.cs
new file mode 100644
index 0000000000..8e0a117eed
--- /dev/null
+++ b/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItemTax.cs
@@ -0,0 +1,74 @@
+// 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 CreditNoteLineItemTax : StripeEntity
+ {
+ ///
+ /// The amount of the tax, in cents (or local equivalent).
+ ///
+ [JsonProperty("amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("amount")]
+#endif
+ public long Amount { get; set; }
+
+ ///
+ /// Whether this tax is inclusive or exclusive.
+ /// One of: exclusive, or inclusive.
+ ///
+ [JsonProperty("tax_behavior")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_behavior")]
+#endif
+ public string TaxBehavior { get; set; }
+
+ ///
+ /// Additional details about the tax rate. Only present when type is
+ /// tax_rate_details.
+ ///
+ [JsonProperty("tax_rate_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_rate_details")]
+#endif
+ public CreditNoteLineItemTaxTaxRateDetails TaxRateDetails { get; set; }
+
+ ///
+ /// The reasoning behind this tax, for example, if the product is tax exempt. The possible
+ /// values for this field may be extended as new tax rules are supported.
+ /// One of: customer_exempt, not_available, not_collecting,
+ /// not_subject_to_tax, not_supported, portion_product_exempt,
+ /// portion_reduced_rated, portion_standard_rated, product_exempt,
+ /// product_exempt_holiday, proportionally_rated, reduced_rated,
+ /// reverse_charge, standard_rated, taxable_basis_reduced, or
+ /// zero_rated.
+ ///
+ [JsonProperty("taxability_reason")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("taxability_reason")]
+#endif
+ public string TaxabilityReason { get; set; }
+
+ ///
+ /// The amount on which tax is calculated, in cents (or local equivalent).
+ ///
+ [JsonProperty("taxable_amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("taxable_amount")]
+#endif
+ public long? TaxableAmount { get; set; }
+
+ ///
+ /// The type of tax information.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItemTaxCalculationReference.cs b/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItemTaxCalculationReference.cs
new file mode 100644
index 0000000000..115e7e905c
--- /dev/null
+++ b/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItemTaxCalculationReference.cs
@@ -0,0 +1,29 @@
+// 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 CreditNoteLineItemTaxCalculationReference : StripeEntity
+ {
+ ///
+ /// The calculation identifier for tax calculation response.
+ ///
+ [JsonProperty("calculation_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("calculation_id")]
+#endif
+ public string CalculationId { get; set; }
+
+ ///
+ /// The calculation identifier for tax calculation response line item.
+ ///
+ [JsonProperty("calculation_item_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("calculation_item_id")]
+#endif
+ public string CalculationItemId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItemTaxTaxRateDetails.cs b/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItemTaxTaxRateDetails.cs
new file mode 100644
index 0000000000..c4272b2885
--- /dev/null
+++ b/src/Stripe.net/Entities/CreditNoteLineItems/CreditNoteLineItemTaxTaxRateDetails.cs
@@ -0,0 +1,17 @@
+// 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 CreditNoteLineItemTaxTaxRateDetails : StripeEntity
+ {
+ [JsonProperty("tax_rate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_rate")]
+#endif
+ public string TaxRate { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/CreditNotes/CreditNote.cs b/src/Stripe.net/Entities/CreditNotes/CreditNote.cs
index 4196c76ec4..16d05c267c 100644
--- a/src/Stripe.net/Entities/CreditNotes/CreditNote.cs
+++ b/src/Stripe.net/Entities/CreditNotes/CreditNote.cs
@@ -334,47 +334,6 @@ public Invoice Invoice
#endif
public string Reason { get; set; }
- #region Expandable Refund
-
- ///
- /// (ID of the Refund)
- /// Refund related to this credit note.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string RefundId
- {
- get => this.InternalRefund?.Id;
- set => this.InternalRefund = SetExpandableFieldId(value, this.InternalRefund);
- }
-
- ///
- /// (Expanded)
- /// Refund related to this credit note.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public Refund Refund
- {
- get => this.InternalRefund?.ExpandedObject;
- set => this.InternalRefund = SetExpandableFieldObject(value, this.InternalRefund);
- }
-
- [JsonProperty("refund")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("refund")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalRefund { get; set; }
- #endregion
-
///
/// Refunds related to this credit note.
///
@@ -425,15 +384,6 @@ public Refund Refund
#endif
public long? SubtotalExcludingTax { get; set; }
- ///
- /// The aggregate amounts calculated per tax rate for all line items.
- ///
- [JsonProperty("tax_amounts")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("tax_amounts")]
-#endif
- public List TaxAmounts { get; set; }
-
///
/// The integer amount in cents (or local equivalent) representing the total amount of the
/// credit note, including tax and all discount.
@@ -454,6 +404,15 @@ public Refund Refund
#endif
public long? TotalExcludingTax { get; set; }
+ ///
+ /// The aggregate tax information for all line items.
+ ///
+ [JsonProperty("total_taxes")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("total_taxes")]
+#endif
+ public List TotalTaxes { get; set; }
+
///
/// Type of this credit note, one of pre_payment or post_payment. A
/// pre_payment credit note means it was issued when the invoice was open. A
diff --git a/src/Stripe.net/Entities/CreditNotes/CreditNoteTaxAmount.cs b/src/Stripe.net/Entities/CreditNotes/CreditNoteTaxAmount.cs
deleted file mode 100644
index d6944cad90..0000000000
--- a/src/Stripe.net/Entities/CreditNotes/CreditNoteTaxAmount.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-// File generated from our OpenAPI spec
-namespace Stripe
-{
- using Newtonsoft.Json;
- using Stripe.Infrastructure;
-#if NET6_0_OR_GREATER
- using STJS = System.Text.Json.Serialization;
-#endif
-
-#if NET6_0_OR_GREATER
- [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
-#endif
- public class CreditNoteTaxAmount : StripeEntity
- {
- ///
- /// The amount, in cents (or local equivalent), of the tax.
- ///
- [JsonProperty("amount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount")]
-#endif
- public long Amount { get; set; }
-
- ///
- /// Whether this tax amount is inclusive or exclusive.
- ///
- [JsonProperty("inclusive")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("inclusive")]
-#endif
- public bool Inclusive { get; set; }
-
- #region Expandable TaxRate
-
- ///
- /// (ID of the TaxRate)
- /// The tax rate that was applied to get this tax amount.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string TaxRateId
- {
- get => this.InternalTaxRate?.Id;
- set => this.InternalTaxRate = SetExpandableFieldId(value, this.InternalTaxRate);
- }
-
- ///
- /// (Expanded)
- /// The tax rate that was applied to get this tax amount.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public TaxRate TaxRate
- {
- get => this.InternalTaxRate?.ExpandedObject;
- set => this.InternalTaxRate = SetExpandableFieldObject(value, this.InternalTaxRate);
- }
-
- [JsonProperty("tax_rate")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("tax_rate")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalTaxRate { get; set; }
- #endregion
-
- ///
- /// The reasoning behind this tax, for example, if the product is tax exempt. The possible
- /// values for this field may be extended as new tax rules are supported.
- /// One of: customer_exempt, not_collecting, not_subject_to_tax,
- /// not_supported, portion_product_exempt, portion_reduced_rated,
- /// portion_standard_rated, product_exempt, product_exempt_holiday,
- /// proportionally_rated, reduced_rated, reverse_charge,
- /// standard_rated, taxable_basis_reduced, or zero_rated.
- ///
- [JsonProperty("taxability_reason")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("taxability_reason")]
-#endif
- public string TaxabilityReason { get; set; }
-
- ///
- /// The amount on which tax is calculated, in cents (or local equivalent).
- ///
- [JsonProperty("taxable_amount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("taxable_amount")]
-#endif
- public long? TaxableAmount { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/CreditNotes/CreditNoteTotalTax.cs b/src/Stripe.net/Entities/CreditNotes/CreditNoteTotalTax.cs
new file mode 100644
index 0000000000..03de6d2bc9
--- /dev/null
+++ b/src/Stripe.net/Entities/CreditNotes/CreditNoteTotalTax.cs
@@ -0,0 +1,74 @@
+// 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 CreditNoteTotalTax : StripeEntity
+ {
+ ///
+ /// The amount of the tax, in cents (or local equivalent).
+ ///
+ [JsonProperty("amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("amount")]
+#endif
+ public long Amount { get; set; }
+
+ ///
+ /// Whether this tax is inclusive or exclusive.
+ /// One of: exclusive, or inclusive.
+ ///
+ [JsonProperty("tax_behavior")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_behavior")]
+#endif
+ public string TaxBehavior { get; set; }
+
+ ///
+ /// Additional details about the tax rate. Only present when type is
+ /// tax_rate_details.
+ ///
+ [JsonProperty("tax_rate_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_rate_details")]
+#endif
+ public CreditNoteTotalTaxTaxRateDetails TaxRateDetails { get; set; }
+
+ ///
+ /// The reasoning behind this tax, for example, if the product is tax exempt. The possible
+ /// values for this field may be extended as new tax rules are supported.
+ /// One of: customer_exempt, not_available, not_collecting,
+ /// not_subject_to_tax, not_supported, portion_product_exempt,
+ /// portion_reduced_rated, portion_standard_rated, product_exempt,
+ /// product_exempt_holiday, proportionally_rated, reduced_rated,
+ /// reverse_charge, standard_rated, taxable_basis_reduced, or
+ /// zero_rated.
+ ///
+ [JsonProperty("taxability_reason")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("taxability_reason")]
+#endif
+ public string TaxabilityReason { get; set; }
+
+ ///
+ /// The amount on which tax is calculated, in cents (or local equivalent).
+ ///
+ [JsonProperty("taxable_amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("taxable_amount")]
+#endif
+ public long? TaxableAmount { get; set; }
+
+ ///
+ /// The type of tax information.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/CreditNotes/CreditNoteTotalTaxTaxRateDetails.cs b/src/Stripe.net/Entities/CreditNotes/CreditNoteTotalTaxTaxRateDetails.cs
new file mode 100644
index 0000000000..b3d31a25f2
--- /dev/null
+++ b/src/Stripe.net/Entities/CreditNotes/CreditNoteTotalTaxTaxRateDetails.cs
@@ -0,0 +1,17 @@
+// 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 CreditNoteTotalTaxTaxRateDetails : StripeEntity
+ {
+ [JsonProperty("tax_rate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_rate")]
+#endif
+ public string TaxRate { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/CustomerBalanceTransactions/CustomerBalanceTransaction.cs b/src/Stripe.net/Entities/CustomerBalanceTransactions/CustomerBalanceTransaction.cs
index 71a7bed11c..70b571fbe6 100644
--- a/src/Stripe.net/Entities/CustomerBalanceTransactions/CustomerBalanceTransaction.cs
+++ b/src/Stripe.net/Entities/CustomerBalanceTransactions/CustomerBalanceTransaction.cs
@@ -54,6 +54,47 @@ public class CustomerBalanceTransaction : StripeEntity
+ /// (ID of the Checkout.Session)
+ /// The ID of the checkout session (if any) that created the transaction.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string CheckoutSessionId
+ {
+ get => this.InternalCheckoutSession?.Id;
+ set => this.InternalCheckoutSession = SetExpandableFieldId(value, this.InternalCheckoutSession);
+ }
+
+ ///
+ /// (Expanded)
+ /// The ID of the checkout session (if any) that created the transaction.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public Checkout.Session CheckoutSession
+ {
+ get => this.InternalCheckoutSession?.ExpandedObject;
+ set => this.InternalCheckoutSession = SetExpandableFieldObject(value, this.InternalCheckoutSession);
+ }
+
+ [JsonProperty("checkout_session")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("checkout_session")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalCheckoutSession { get; set; }
+ #endregion
+
///
/// Time at which the object was created. Measured in seconds since the Unix epoch.
///
@@ -243,11 +284,14 @@ public Invoice Invoice
///
/// Transaction type: adjustment, applied_to_invoice, credit_note,
/// initial, invoice_overpaid, invoice_too_large,
- /// invoice_too_small, unspent_receiver_credit, or
- /// unapplied_from_invoice. See the invoice_too_small, unspent_receiver_credit, unapplied_from_invoice,
+ /// checkout_session_subscription_payment, or
+ /// checkout_session_subscription_payment_canceled. See the Customer Balance page
/// to learn more about transaction types.
- /// One of: adjustment, applied_to_invoice, credit_note,
+ /// One of: adjustment, applied_to_invoice,
+ /// checkout_session_subscription_payment,
+ /// checkout_session_subscription_payment_canceled, credit_note,
/// initial, invoice_overpaid, invoice_too_large,
/// invoice_too_small, migration, unapplied_from_invoice, or
/// unspent_receiver_credit.
diff --git a/src/Stripe.net/Entities/Customers/CustomerTax.cs b/src/Stripe.net/Entities/Customers/CustomerTax.cs
index af1c2d8073..df24d7c5b0 100644
--- a/src/Stripe.net/Entities/Customers/CustomerTax.cs
+++ b/src/Stripe.net/Entities/Customers/CustomerTax.cs
@@ -30,7 +30,7 @@ public class CustomerTax : StripeEntity
public string IpAddress { get; set; }
///
- /// The customer's location as identified by Stripe Tax.
+ /// The identified tax location of the customer.
///
[JsonProperty("location")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/Customers/CustomerTaxLocation.cs b/src/Stripe.net/Entities/Customers/CustomerTaxLocation.cs
index d181d3ed15..c3c13bdb92 100644
--- a/src/Stripe.net/Entities/Customers/CustomerTaxLocation.cs
+++ b/src/Stripe.net/Entities/Customers/CustomerTaxLocation.cs
@@ -9,7 +9,7 @@ namespace Stripe
public class CustomerTaxLocation : StripeEntity
{
///
- /// The customer's country as identified by Stripe Tax.
+ /// The identified tax country of the customer.
///
[JsonProperty("country")]
#if NET6_0_OR_GREATER
@@ -29,7 +29,7 @@ public class CustomerTaxLocation : StripeEntity
public string Source { get; set; }
///
- /// The customer's state, county, province, or region as identified by Stripe Tax.
+ /// The identified tax state, county, province, or region of the customer.
///
[JsonProperty("state")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/Events/Event.cs b/src/Stripe.net/Entities/Events/Event.cs
index adf5b5793a..108e5e20b6 100644
--- a/src/Stripe.net/Entities/Events/Event.cs
+++ b/src/Stripe.net/Entities/Events/Event.cs
@@ -81,6 +81,12 @@ public class Event : StripeEntity, IHasId, IHasObject
#endif
public string ApiVersion { get; set; }
+ [JsonProperty("context")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("context")]
+#endif
+ public string Context { get; set; }
+
///
/// Time at which the object was created. Measured in seconds since the Unix epoch.
///
diff --git a/src/Stripe.net/Entities/InvoiceItems/InvoiceItem.cs b/src/Stripe.net/Entities/InvoiceItems/InvoiceItem.cs
index 79f6e6b10e..7a8ce401ed 100644
--- a/src/Stripe.net/Entities/InvoiceItems/InvoiceItem.cs
+++ b/src/Stripe.net/Entities/InvoiceItems/InvoiceItem.cs
@@ -299,30 +299,26 @@ public List Margins
#endif
public Dictionary Metadata { get; set; }
- [JsonProperty("period")]
+ [JsonProperty("parent")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("period")]
+ [STJS.JsonPropertyName("parent")]
#endif
- public InvoiceItemPeriod Period { get; set; }
+ public InvoiceItemParent Parent { get; set; }
- ///
- /// If the invoice item is a proration, the plan of the subscription that the proration was
- /// computed for.
- ///
- [JsonProperty("plan")]
+ [JsonProperty("period")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("plan")]
+ [STJS.JsonPropertyName("period")]
#endif
- public Plan Plan { get; set; }
+ public InvoiceItemPeriod Period { get; set; }
///
- /// The price of the invoice item.
+ /// The pricing information of the invoice item.
///
- [JsonProperty("price")]
+ [JsonProperty("pricing")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("price")]
+ [STJS.JsonPropertyName("pricing")]
#endif
- public Price Price { get; set; }
+ public InvoiceItemPricing Pricing { get; set; }
///
/// Whether the invoice item was created automatically as a proration adjustment when the
@@ -344,56 +340,6 @@ public List Margins
#endif
public long Quantity { get; set; }
- #region Expandable Subscription
-
- ///
- /// (ID of the Subscription)
- /// The subscription that this invoice item has been created for, if any.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string SubscriptionId
- {
- get => this.InternalSubscription?.Id;
- set => this.InternalSubscription = SetExpandableFieldId(value, this.InternalSubscription);
- }
-
- ///
- /// (Expanded)
- /// The subscription that this invoice item has been created for, if any.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public Subscription Subscription
- {
- get => this.InternalSubscription?.ExpandedObject;
- set => this.InternalSubscription = SetExpandableFieldObject(value, this.InternalSubscription);
- }
-
- [JsonProperty("subscription")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("subscription")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalSubscription { get; set; }
- #endregion
-
- ///
- /// The subscription item that this invoice item has been created for, if any.
- ///
- [JsonProperty("subscription_item")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("subscription_item")]
-#endif
- public string SubscriptionItem { get; set; }
-
///
/// The tax rates which apply to the invoice item. When set, the default_tax_rates on
/// the invoice do not apply to this invoice item.
@@ -444,23 +390,5 @@ public TestHelpers.TestClock TestClock
#endif
internal ExpandableField InternalTestClock { get; set; }
#endregion
-
- ///
- /// Unit amount (in the currency specified) of the invoice item.
- ///
- [JsonProperty("unit_amount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("unit_amount")]
-#endif
- public long? UnitAmount { get; set; }
-
- ///
- /// Same as unit_amount, but contains a decimal value with at most 12 decimal places.
- ///
- [JsonProperty("unit_amount_decimal")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("unit_amount_decimal")]
-#endif
- public decimal? UnitAmountDecimal { get; set; }
}
}
diff --git a/src/Stripe.net/Entities/InvoiceItems/InvoiceItemParent.cs b/src/Stripe.net/Entities/InvoiceItems/InvoiceItemParent.cs
new file mode 100644
index 0000000000..20d2a351e8
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceItems/InvoiceItemParent.cs
@@ -0,0 +1,23 @@
+// 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 InvoiceItemParent : StripeEntity
+ {
+ [JsonProperty("subscription_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription_details")]
+#endif
+ public InvoiceItemParentSubscriptionDetails SubscriptionDetails { get; set; }
+
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceItems/InvoiceItemParentSubscriptionDetails.cs b/src/Stripe.net/Entities/InvoiceItems/InvoiceItemParentSubscriptionDetails.cs
new file mode 100644
index 0000000000..b377680234
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceItems/InvoiceItemParentSubscriptionDetails.cs
@@ -0,0 +1,23 @@
+// 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 InvoiceItemParentSubscriptionDetails : StripeEntity
+ {
+ [JsonProperty("subscription")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription")]
+#endif
+ public string Subscription { get; set; }
+
+ [JsonProperty("subscription_item")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription_item")]
+#endif
+ public string SubscriptionItem { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceItems/InvoiceItemPricing.cs b/src/Stripe.net/Entities/InvoiceItems/InvoiceItemPricing.cs
new file mode 100644
index 0000000000..bddb5ddb12
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceItems/InvoiceItemPricing.cs
@@ -0,0 +1,36 @@
+// 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 InvoiceItemPricing : StripeEntity
+ {
+ [JsonProperty("price_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("price_details")]
+#endif
+ public InvoiceItemPricingPriceDetails PriceDetails { get; set; }
+
+ ///
+ /// The type of the pricing details.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+
+ ///
+ /// The unit amount (in the currency specified) of the item which contains a decimal
+ /// value with at most 12 decimal places.
+ ///
+ [JsonProperty("unit_amount_decimal")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("unit_amount_decimal")]
+#endif
+ public decimal? UnitAmountDecimal { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceItems/InvoiceItemPricingPriceDetails.cs b/src/Stripe.net/Entities/InvoiceItems/InvoiceItemPricingPriceDetails.cs
new file mode 100644
index 0000000000..74d2045feb
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceItems/InvoiceItemPricingPriceDetails.cs
@@ -0,0 +1,29 @@
+// 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 InvoiceItemPricingPriceDetails : StripeEntity
+ {
+ ///
+ /// The ID of the price this item is associated with.
+ ///
+ [JsonProperty("price")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("price")]
+#endif
+ public string Price { get; set; }
+
+ ///
+ /// The ID of the product this item is associated with.
+ ///
+ [JsonProperty("product")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("product")]
+#endif
+ public string Product { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItem.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItem.cs
index ae1894c5f5..4c8bef6e69 100644
--- a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItem.cs
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItem.cs
@@ -50,16 +50,6 @@ public class InvoiceLineItem : StripeEntity, IHasId, IHasMetada
#endif
public long Amount { get; set; }
- ///
- /// The integer amount in cents (or local equivalent) representing the amount for this line
- /// item, excluding all tax and discounts.
- ///
- [JsonProperty("amount_excluding_tax")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount_excluding_tax")]
-#endif
- public long? AmountExcludingTax { get; set; }
-
///
/// Three-letter ISO currency
/// code, in lowercase. Must be a supported
@@ -148,49 +138,6 @@ public List Discounts
#endif
public string Invoice { get; set; }
- #region Expandable InvoiceItem
-
- ///
- /// (ID of the InvoiceItem)
- /// The ID of the invoice item
- /// associated with this line item if any.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string InvoiceItemId
- {
- get => this.InternalInvoiceItem?.Id;
- set => this.InternalInvoiceItem = SetExpandableFieldId(value, this.InternalInvoiceItem);
- }
-
- ///
- /// (Expanded)
- /// The ID of the invoice item
- /// associated with this line item if any.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public InvoiceItem InvoiceItem
- {
- get => this.InternalInvoiceItem?.ExpandedObject;
- set => this.InternalInvoiceItem = SetExpandableFieldObject(value, this.InternalInvoiceItem);
- }
-
- [JsonProperty("invoice_item")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("invoice_item")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalInvoiceItem { get; set; }
- #endregion
-
///
/// Has the value true if the object exists in live mode or the value false if
/// the object exists in test mode.
@@ -267,20 +214,17 @@ public List Margins
#endif
public Dictionary Metadata { get; set; }
- [JsonProperty("period")]
+ [JsonProperty("parent")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("period")]
+ [STJS.JsonPropertyName("parent")]
#endif
- public InvoiceLineItemPeriod Period { get; set; }
+ public InvoiceLineItemParent Parent { get; set; }
- ///
- /// The plan of the subscription, if the line item is a subscription or a proration.
- ///
- [JsonProperty("plan")]
+ [JsonProperty("period")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("plan")]
+ [STJS.JsonPropertyName("period")]
#endif
- public Plan Plan { get; set; }
+ public InvoiceLineItemPeriod Period { get; set; }
///
/// Contains pretax credit amounts (ex: discount, credit grants, etc) that apply to this
@@ -293,31 +237,13 @@ public List Margins
public List PretaxCreditAmounts { get; set; }
///
- /// The price of the line item.
- ///
- [JsonProperty("price")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("price")]
-#endif
- public Price Price { get; set; }
-
- ///
- /// Whether this is a proration.
- ///
- [JsonProperty("proration")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("proration")]
-#endif
- public bool Proration { get; set; }
-
- ///
- /// Additional details for proration line items.
+ /// The pricing information of the line item.
///
- [JsonProperty("proration_details")]
+ [JsonProperty("pricing")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("proration_details")]
+ [STJS.JsonPropertyName("pricing")]
#endif
- public InvoiceLineItemProrationDetails ProrationDetails { get; set; }
+ public InvoiceLineItemPricing Pricing { get; set; }
///
/// The quantity of the subscription, if the line item is a subscription or a proration.
@@ -330,10 +256,6 @@ public List Margins
#region Expandable Subscription
- ///
- /// (ID of the Subscription)
- /// The subscription that the invoice item pertains to, if any.
- ///
[JsonIgnore]
#if NET6_0_OR_GREATER
[STJS.JsonIgnore]
@@ -344,12 +266,6 @@ public string SubscriptionId
set => this.InternalSubscription = SetExpandableFieldId(value, this.InternalSubscription);
}
- ///
- /// (Expanded)
- /// The subscription that the invoice item pertains to, if any.
- ///
- /// For more information, see the expand documentation.
- ///
[JsonIgnore]
#if NET6_0_OR_GREATER
[STJS.JsonIgnore]
@@ -369,86 +285,22 @@ public Subscription Subscription
internal ExpandableField InternalSubscription { get; set; }
#endregion
- #region Expandable SubscriptionItem
-
- ///
- /// (ID of the SubscriptionItem)
- /// The subscription item that generated this line item. Left empty if the line item is not
- /// an explicit result of a subscription.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string SubscriptionItemId
- {
- get => this.InternalSubscriptionItem?.Id;
- set => this.InternalSubscriptionItem = SetExpandableFieldId(value, this.InternalSubscriptionItem);
- }
-
- ///
- /// (Expanded)
- /// The subscription item that generated this line item. Left empty if the line item is not
- /// an explicit result of a subscription.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public SubscriptionItem SubscriptionItem
- {
- get => this.InternalSubscriptionItem?.ExpandedObject;
- set => this.InternalSubscriptionItem = SetExpandableFieldObject(value, this.InternalSubscriptionItem);
- }
-
- [JsonProperty("subscription_item")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("subscription_item")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalSubscriptionItem { get; set; }
- #endregion
-
- ///
- /// The amount of tax calculated per tax rate for this line item.
- ///
- [JsonProperty("tax_amounts")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("tax_amounts")]
-#endif
- public List TaxAmounts { get; set; }
-
- ///
- /// The tax rates which apply to the line item.
- ///
- [JsonProperty("tax_rates")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("tax_rates")]
-#endif
- public List TaxRates { get; set; }
-
///
- /// A string identifying the type of the source of this line item, either an
- /// invoiceitem or a subscription.
- /// One of: invoiceitem, or subscription.
+ /// The tax calculation identifiers of the line item.
///
- [JsonProperty("type")]
+ [JsonProperty("tax_calculation_reference")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("type")]
+ [STJS.JsonPropertyName("tax_calculation_reference")]
#endif
- public string Type { get; set; }
+ public InvoiceLineItemTaxCalculationReference TaxCalculationReference { get; set; }
///
- /// The amount in cents (or local equivalent) representing the unit amount for this line
- /// item, excluding all tax and discounts.
+ /// The tax information of the line item.
///
- [JsonProperty("unit_amount_excluding_tax")]
+ [JsonProperty("taxes")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("unit_amount_excluding_tax")]
+ [STJS.JsonPropertyName("taxes")]
#endif
- public decimal? UnitAmountExcludingTax { get; set; }
+ public List Taxes { get; set; }
}
}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParent.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParent.cs
new file mode 100644
index 0000000000..40167d3723
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParent.cs
@@ -0,0 +1,32 @@
+// 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 InvoiceLineItemParent : StripeEntity
+ {
+ [JsonProperty("invoice_item_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("invoice_item_details")]
+#endif
+ public InvoiceLineItemParentInvoiceItemDetails InvoiceItemDetails { get; set; }
+
+ [JsonProperty("subscription_item_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription_item_details")]
+#endif
+ public InvoiceLineItemParentSubscriptionItemDetails SubscriptionItemDetails { get; set; }
+
+ ///
+ /// One of: invoice_item_details, or subscription_item_details.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentInvoiceItemDetails.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentInvoiceItemDetails.cs
new file mode 100644
index 0000000000..2cfa650349
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentInvoiceItemDetails.cs
@@ -0,0 +1,41 @@
+// 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 InvoiceLineItemParentInvoiceItemDetails : StripeEntity
+ {
+ [JsonProperty("invoice_item")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("invoice_item")]
+#endif
+ public string InvoiceItem { get; set; }
+
+ ///
+ /// Whether this is a proration.
+ ///
+ [JsonProperty("proration")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("proration")]
+#endif
+ public bool Proration { get; set; }
+
+ ///
+ /// Additional details for proration line items.
+ ///
+ [JsonProperty("proration_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("proration_details")]
+#endif
+ public InvoiceLineItemParentInvoiceItemDetailsProrationDetails ProrationDetails { get; set; }
+
+ [JsonProperty("subscription")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription")]
+#endif
+ public string Subscription { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemProrationDetails.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentInvoiceItemDetailsProrationDetails.cs
similarity index 65%
rename from src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemProrationDetails.cs
rename to src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentInvoiceItemDetailsProrationDetails.cs
index 7216e26868..4812017109 100644
--- a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemProrationDetails.cs
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentInvoiceItemDetailsProrationDetails.cs
@@ -6,7 +6,7 @@ namespace Stripe
using STJS = System.Text.Json.Serialization;
#endif
- public class InvoiceLineItemProrationDetails : StripeEntity
+ public class InvoiceLineItemParentInvoiceItemDetailsProrationDetails : StripeEntity
{
///
/// For a credit proration line_item, the original debit line_items to which the
@@ -16,6 +16,6 @@ public class InvoiceLineItemProrationDetails : StripeEntity
+ public class InvoiceLineItemParentInvoiceItemDetailsProrationDetailsCreditedItems : StripeEntity
{
///
/// Invoice containing the credited invoice line items.
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentSubscriptionItemDetails.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentSubscriptionItemDetails.cs
new file mode 100644
index 0000000000..bfa7d985ca
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentSubscriptionItemDetails.cs
@@ -0,0 +1,47 @@
+// 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 InvoiceLineItemParentSubscriptionItemDetails : StripeEntity
+ {
+ [JsonProperty("invoice_item")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("invoice_item")]
+#endif
+ public string InvoiceItem { get; set; }
+
+ ///
+ /// Whether this is a proration.
+ ///
+ [JsonProperty("proration")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("proration")]
+#endif
+ public bool Proration { get; set; }
+
+ ///
+ /// Additional details for proration line items.
+ ///
+ [JsonProperty("proration_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("proration_details")]
+#endif
+ public InvoiceLineItemParentSubscriptionItemDetailsProrationDetails ProrationDetails { get; set; }
+
+ [JsonProperty("subscription")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription")]
+#endif
+ public string Subscription { get; set; }
+
+ [JsonProperty("subscription_item")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription_item")]
+#endif
+ public string SubscriptionItem { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentSubscriptionItemDetailsProrationDetails.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentSubscriptionItemDetailsProrationDetails.cs
new file mode 100644
index 0000000000..f10b4db76b
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentSubscriptionItemDetailsProrationDetails.cs
@@ -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 InvoiceLineItemParentSubscriptionItemDetailsProrationDetails : StripeEntity
+ {
+ ///
+ /// For a credit proration line_item, the original debit line_items to which the
+ /// credit proration applies.
+ ///
+ [JsonProperty("credited_items")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("credited_items")]
+#endif
+ public InvoiceLineItemParentSubscriptionItemDetailsProrationDetailsCreditedItems CreditedItems { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentSubscriptionItemDetailsProrationDetailsCreditedItems.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentSubscriptionItemDetailsProrationDetailsCreditedItems.cs
new file mode 100644
index 0000000000..8e839fa7ef
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemParentSubscriptionItemDetailsProrationDetailsCreditedItems.cs
@@ -0,0 +1,30 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using System.Collections.Generic;
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class InvoiceLineItemParentSubscriptionItemDetailsProrationDetailsCreditedItems : StripeEntity
+ {
+ ///
+ /// Invoice containing the credited invoice line items.
+ ///
+ [JsonProperty("invoice")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("invoice")]
+#endif
+ public string Invoice { get; set; }
+
+ ///
+ /// Credited invoice line items.
+ ///
+ [JsonProperty("invoice_line_items")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("invoice_line_items")]
+#endif
+ public List InvoiceLineItems { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemPricing.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemPricing.cs
new file mode 100644
index 0000000000..6d90cea3b7
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemPricing.cs
@@ -0,0 +1,36 @@
+// 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 InvoiceLineItemPricing : StripeEntity
+ {
+ [JsonProperty("price_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("price_details")]
+#endif
+ public InvoiceLineItemPricingPriceDetails PriceDetails { get; set; }
+
+ ///
+ /// The type of the pricing details.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+
+ ///
+ /// The unit amount (in the currency specified) of the item which contains a decimal
+ /// value with at most 12 decimal places.
+ ///
+ [JsonProperty("unit_amount_decimal")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("unit_amount_decimal")]
+#endif
+ public decimal? UnitAmountDecimal { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemPricingPriceDetails.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemPricingPriceDetails.cs
new file mode 100644
index 0000000000..eae143184a
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemPricingPriceDetails.cs
@@ -0,0 +1,29 @@
+// 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 InvoiceLineItemPricingPriceDetails : StripeEntity
+ {
+ ///
+ /// The ID of the price this item is associated with.
+ ///
+ [JsonProperty("price")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("price")]
+#endif
+ public string Price { get; set; }
+
+ ///
+ /// The ID of the product this item is associated with.
+ ///
+ [JsonProperty("product")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("product")]
+#endif
+ public string Product { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTax.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTax.cs
new file mode 100644
index 0000000000..7288937ebb
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTax.cs
@@ -0,0 +1,74 @@
+// 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 InvoiceLineItemTax : StripeEntity
+ {
+ ///
+ /// The amount of the tax, in cents (or local equivalent).
+ ///
+ [JsonProperty("amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("amount")]
+#endif
+ public long Amount { get; set; }
+
+ ///
+ /// Whether this tax is inclusive or exclusive.
+ /// One of: exclusive, or inclusive.
+ ///
+ [JsonProperty("tax_behavior")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_behavior")]
+#endif
+ public string TaxBehavior { get; set; }
+
+ ///
+ /// Additional details about the tax rate. Only present when type is
+ /// tax_rate_details.
+ ///
+ [JsonProperty("tax_rate_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_rate_details")]
+#endif
+ public InvoiceLineItemTaxTaxRateDetails TaxRateDetails { get; set; }
+
+ ///
+ /// The reasoning behind this tax, for example, if the product is tax exempt. The possible
+ /// values for this field may be extended as new tax rules are supported.
+ /// One of: customer_exempt, not_available, not_collecting,
+ /// not_subject_to_tax, not_supported, portion_product_exempt,
+ /// portion_reduced_rated, portion_standard_rated, product_exempt,
+ /// product_exempt_holiday, proportionally_rated, reduced_rated,
+ /// reverse_charge, standard_rated, taxable_basis_reduced, or
+ /// zero_rated.
+ ///
+ [JsonProperty("taxability_reason")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("taxability_reason")]
+#endif
+ public string TaxabilityReason { get; set; }
+
+ ///
+ /// The amount on which tax is calculated, in cents (or local equivalent).
+ ///
+ [JsonProperty("taxable_amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("taxable_amount")]
+#endif
+ public long? TaxableAmount { get; set; }
+
+ ///
+ /// The type of tax information.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTaxAmount.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTaxAmount.cs
deleted file mode 100644
index a35f7ccd05..0000000000
--- a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTaxAmount.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-// File generated from our OpenAPI spec
-namespace Stripe
-{
- using Newtonsoft.Json;
- using Stripe.Infrastructure;
-#if NET6_0_OR_GREATER
- using STJS = System.Text.Json.Serialization;
-#endif
-
-#if NET6_0_OR_GREATER
- [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
-#endif
- public class InvoiceLineItemTaxAmount : StripeEntity
- {
- ///
- /// The amount, in cents (or local equivalent), of the tax.
- ///
- [JsonProperty("amount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount")]
-#endif
- public long Amount { get; set; }
-
- ///
- /// Whether this tax amount is inclusive or exclusive.
- ///
- [JsonProperty("inclusive")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("inclusive")]
-#endif
- public bool Inclusive { get; set; }
-
- #region Expandable TaxRate
-
- ///
- /// (ID of the TaxRate)
- /// The tax rate that was applied to get this tax amount.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string TaxRateId
- {
- get => this.InternalTaxRate?.Id;
- set => this.InternalTaxRate = SetExpandableFieldId(value, this.InternalTaxRate);
- }
-
- ///
- /// (Expanded)
- /// The tax rate that was applied to get this tax amount.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public TaxRate TaxRate
- {
- get => this.InternalTaxRate?.ExpandedObject;
- set => this.InternalTaxRate = SetExpandableFieldObject(value, this.InternalTaxRate);
- }
-
- [JsonProperty("tax_rate")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("tax_rate")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalTaxRate { get; set; }
- #endregion
-
- ///
- /// The reasoning behind this tax, for example, if the product is tax exempt. The possible
- /// values for this field may be extended as new tax rules are supported.
- /// One of: customer_exempt, not_collecting, not_subject_to_tax,
- /// not_supported, portion_product_exempt, portion_reduced_rated,
- /// portion_standard_rated, product_exempt, product_exempt_holiday,
- /// proportionally_rated, reduced_rated, reverse_charge,
- /// standard_rated, taxable_basis_reduced, or zero_rated.
- ///
- [JsonProperty("taxability_reason")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("taxability_reason")]
-#endif
- public string TaxabilityReason { get; set; }
-
- ///
- /// The amount on which tax is calculated, in cents (or local equivalent).
- ///
- [JsonProperty("taxable_amount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("taxable_amount")]
-#endif
- public long? TaxableAmount { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTaxCalculationReference.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTaxCalculationReference.cs
new file mode 100644
index 0000000000..d8b8325b13
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTaxCalculationReference.cs
@@ -0,0 +1,29 @@
+// 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 InvoiceLineItemTaxCalculationReference : StripeEntity
+ {
+ ///
+ /// The calculation identifier for tax calculation response.
+ ///
+ [JsonProperty("calculation_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("calculation_id")]
+#endif
+ public string CalculationId { get; set; }
+
+ ///
+ /// The calculation identifier for tax calculation response line item.
+ ///
+ [JsonProperty("calculation_item_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("calculation_item_id")]
+#endif
+ public string CalculationItemId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTaxTaxRateDetails.cs b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTaxTaxRateDetails.cs
new file mode 100644
index 0000000000..8da24238db
--- /dev/null
+++ b/src/Stripe.net/Entities/InvoiceLineItems/InvoiceLineItemTaxTaxRateDetails.cs
@@ -0,0 +1,17 @@
+// 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 InvoiceLineItemTaxTaxRateDetails : StripeEntity
+ {
+ [JsonProperty("tax_rate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_rate")]
+#endif
+ public string TaxRate { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/InvoicePayments/InvoicePayment.cs b/src/Stripe.net/Entities/InvoicePayments/InvoicePayment.cs
index e614c097c1..d7a96912c2 100644
--- a/src/Stripe.net/Entities/InvoicePayments/InvoicePayment.cs
+++ b/src/Stripe.net/Entities/InvoicePayments/InvoicePayment.cs
@@ -34,19 +34,6 @@ public class InvoicePayment : StripeEntity, IHasId, IHasObject
#endif
public string Object { get; set; }
- ///
- /// Excess payment that was received for this invoice and credited to the customer’s
- /// invoice_credit_balance. This field is null until the payment is paid.
- /// Overpayment can happen when you attach more than one PaymentIntent to the invoice, and
- /// each of them succeeds. To avoid overpayment, cancel any PaymentIntents that you do not
- /// need before attaching more.
- ///
- [JsonProperty("amount_overpaid")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount_overpaid")]
-#endif
- public long? AmountOverpaid { get; set; }
-
///
/// Amount that was actually paid for this invoice, in cents (or local equivalent). This
/// field is null until the payment is paid. This amount can be less than the
@@ -140,7 +127,7 @@ public Invoice Invoice
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("is_default")]
#endif
- public bool? IsDefault { get; set; }
+ public bool IsDefault { get; set; }
///
/// Has the value true if the object exists in live mode or the value false if
diff --git a/src/Stripe.net/Entities/InvoicePayments/InvoicePaymentPayment.cs b/src/Stripe.net/Entities/InvoicePayments/InvoicePaymentPayment.cs
index 211ff89e7c..08a56b2b0a 100644
--- a/src/Stripe.net/Entities/InvoicePayments/InvoicePaymentPayment.cs
+++ b/src/Stripe.net/Entities/InvoicePayments/InvoicePaymentPayment.cs
@@ -143,8 +143,7 @@ public PaymentRecord PaymentRecord
///
/// Type of payment object associated with this invoice payment.
- /// One of: charge, out_of_band_payment, payment_intent, or
- /// payment_record.
+ /// One of: charge, or payment_intent.
///
[JsonProperty("type")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/Invoices/Invoice.cs b/src/Stripe.net/Entities/Invoices/Invoice.cs
index 6f757786e8..8316f687da 100644
--- a/src/Stripe.net/Entities/Invoices/Invoice.cs
+++ b/src/Stripe.net/Entities/Invoices/Invoice.cs
@@ -147,8 +147,8 @@ public List AccountTaxIds
public long AmountDue { get; set; }
///
- /// Amount that was overpaid on the invoice. Overpayments are debited to the customer's
- /// credit balance.
+ /// Amount that was overpaid on the invoice. The amount overpaid is credited to the
+ /// customer's credit balance.
///
[JsonProperty("amount_overpaid")]
#if NET6_0_OR_GREATER
@@ -234,16 +234,6 @@ public Application Application
internal ExpandableField InternalApplication { get; set; }
#endregion
- ///
- /// The fee in cents (or local equivalent) that will be applied to the invoice and
- /// transferred to the application owner's Stripe account when the invoice is paid.
- ///
- [JsonProperty("application_fee_amount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("application_fee_amount")]
-#endif
- public long? ApplicationFeeAmount { get; set; }
-
///
/// Number of payment attempts made for this invoice, from the perspective of the payment
/// retry schedule. Any payment attempt counts as the first attempt, and subsequently only
@@ -325,47 +315,6 @@ public Application Application
#endif
public string BillingReason { get; set; }
- #region Expandable Charge
-
- ///
- /// (ID of the Charge)
- /// ID of the latest charge generated for this invoice, if any.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string ChargeId
- {
- get => this.InternalCharge?.Id;
- set => this.InternalCharge = SetExpandableFieldId(value, this.InternalCharge);
- }
-
- ///
- /// (Expanded)
- /// ID of the latest charge generated for this invoice, if any.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public Charge Charge
- {
- get => this.InternalCharge?.ExpandedObject;
- set => this.InternalCharge = SetExpandableFieldObject(value, this.InternalCharge);
- }
-
- [JsonProperty("charge")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("charge")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalCharge { get; set; }
- #endregion
-
///
/// Either charge_automatically, or send_invoice. When charging automatically,
/// Stripe will attempt to pay this invoice using the default source attached to the
@@ -379,6 +328,16 @@ public Charge Charge
#endif
public string CollectionMethod { get; set; }
+ ///
+ /// The confirmation secret associated with this invoice. Currently, this contains the
+ /// client_secret of the PaymentIntent that Stripe creates during invoice finalization.
+ ///
+ [JsonProperty("confirmation_secret")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("confirmation_secret")]
+#endif
+ public InvoiceConfirmationSecret ConfirmationSecret { get; set; }
+
///
/// Time at which the object was created. Measured in seconds since the Unix epoch.
///
@@ -689,16 +648,6 @@ public IPaymentSource DefaultSource
#endif
public string Description { get; set; }
- ///
- /// Describes the current discount applied to this invoice, if there is one. Not populated
- /// if there are multiple discounts.
- ///
- [JsonProperty("discount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("discount")]
-#endif
- public Discount Discount { get; set; }
-
#region Expandable Discounts
///
@@ -975,70 +924,11 @@ public Account OnBehalfOf
internal ExpandableField InternalOnBehalfOf { get; set; }
#endregion
- ///
- /// Whether payment was successfully collected for this invoice. An invoice can be paid
- /// (most commonly) with a charge or with credit from the customer's account balance.
- ///
- [JsonProperty("paid")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("paid")]
-#endif
- public bool Paid { get; set; }
-
- ///
- /// Returns true if the invoice was manually marked paid, returns false if the invoice
- /// hasn't been paid yet or was paid on Stripe.
- ///
- [JsonProperty("paid_out_of_band")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("paid_out_of_band")]
-#endif
- public bool PaidOutOfBand { get; set; }
-
- #region Expandable PaymentIntent
-
- ///
- /// (ID of the PaymentIntent)
- /// The PaymentIntent associated with this invoice. The PaymentIntent is generated when the
- /// invoice is finalized, and can then be used to pay the invoice. Note that voiding an
- /// invoice will cancel the PaymentIntent.
- ///
- [JsonIgnore]
+ [JsonProperty("parent")]
#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
+ [STJS.JsonPropertyName("parent")]
#endif
- public string PaymentIntentId
- {
- get => this.InternalPaymentIntent?.Id;
- set => this.InternalPaymentIntent = SetExpandableFieldId(value, this.InternalPaymentIntent);
- }
-
- ///
- /// (Expanded)
- /// The PaymentIntent associated with this invoice. The PaymentIntent is generated when the
- /// invoice is finalized, and can then be used to pay the invoice. Note that voiding an
- /// invoice will cancel the PaymentIntent.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public PaymentIntent PaymentIntent
- {
- get => this.InternalPaymentIntent?.ExpandedObject;
- set => this.InternalPaymentIntent = SetExpandableFieldObject(value, this.InternalPaymentIntent);
- }
-
- [JsonProperty("payment_intent")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("payment_intent")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalPaymentIntent { get; set; }
- #endregion
+ public InvoiceParent Parent { get; set; }
[JsonProperty("payment_settings")]
#if NET6_0_OR_GREATER
@@ -1101,47 +991,6 @@ public PaymentIntent PaymentIntent
#endif
public long PrePaymentCreditNotesAmount { get; set; }
- #region Expandable Quote
-
- ///
- /// (ID of the Quote)
- /// The quote this invoice was generated from.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string QuoteId
- {
- get => this.InternalQuote?.Id;
- set => this.InternalQuote = SetExpandableFieldId(value, this.InternalQuote);
- }
-
- ///
- /// (Expanded)
- /// The quote this invoice was generated from.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public Quote Quote
- {
- get => this.InternalQuote?.ExpandedObject;
- set => this.InternalQuote = SetExpandableFieldObject(value, this.InternalQuote);
- }
-
- [JsonProperty("quote")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("quote")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalQuote { get; set; }
- #endregion
-
///
/// This is the transaction number that appears on email receipts sent for this invoice.
///
@@ -1222,10 +1071,6 @@ public Quote Quote
#region Expandable Subscription
- ///
- /// (ID of the Subscription)
- /// The subscription that this invoice was prepared for, if any.
- ///
[JsonIgnore]
#if NET6_0_OR_GREATER
[STJS.JsonIgnore]
@@ -1236,12 +1081,6 @@ public string SubscriptionId
set => this.InternalSubscription = SetExpandableFieldId(value, this.InternalSubscription);
}
- ///
- /// (Expanded)
- /// The subscription that this invoice was prepared for, if any.
- ///
- /// For more information, see the expand documentation.
- ///
[JsonIgnore]
#if NET6_0_OR_GREATER
[STJS.JsonIgnore]
@@ -1261,27 +1100,6 @@ public Subscription Subscription
internal ExpandableField InternalSubscription { get; set; }
#endregion
- ///
- /// Details about the subscription that created this invoice.
- ///
- [JsonProperty("subscription_details")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("subscription_details")]
-#endif
- public InvoiceSubscriptionDetails SubscriptionDetails { get; set; }
-
- ///
- /// Only set for upcoming invoices that preview prorations. The time used to calculate
- /// prorations.
- ///
- [JsonProperty("subscription_proration_date")]
- [JsonConverter(typeof(UnixDateTimeConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("subscription_proration_date")]
- [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
-#endif
- public DateTime SubscriptionProrationDate { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
-
///
/// Total of all subscriptions, invoice items, and prorations on the invoice before any
/// invoice level discount or exclusive tax is applied. Item discounts are already
@@ -1304,16 +1122,6 @@ public Subscription Subscription
#endif
public long? SubtotalExcludingTax { get; set; }
- ///
- /// The amount of tax on this invoice. This is the sum of all the tax amounts on this
- /// invoice.
- ///
- [JsonProperty("tax")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("tax")]
-#endif
- public long? Tax { get; set; }
-
#region Expandable TestClock
///
@@ -1410,23 +1218,13 @@ public TestHelpers.TestClock TestClock
public List TotalPretaxCreditAmounts { get; set; }
///
- /// The aggregate amounts calculated per tax rate for all line items.
- ///
- [JsonProperty("total_tax_amounts")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("total_tax_amounts")]
-#endif
- public List TotalTaxAmounts { get; set; }
-
- ///
- /// The account (if any) the payment will be attributed to for tax reporting, and where
- /// funds from the payment will be transferred to for the invoice.
+ /// The aggregate tax information of all line items.
///
- [JsonProperty("transfer_data")]
+ [JsonProperty("total_taxes")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("transfer_data")]
+ [STJS.JsonPropertyName("total_taxes")]
#endif
- public InvoiceTransferData TransferData { get; set; }
+ public List TotalTaxes { get; set; }
///
/// Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until
diff --git a/src/Stripe.net/Entities/Invoices/InvoiceAutomaticTax.cs b/src/Stripe.net/Entities/Invoices/InvoiceAutomaticTax.cs
index d9e6a69ca7..30d989a89b 100644
--- a/src/Stripe.net/Entities/Invoices/InvoiceAutomaticTax.cs
+++ b/src/Stripe.net/Entities/Invoices/InvoiceAutomaticTax.cs
@@ -42,6 +42,15 @@ public class InvoiceAutomaticTax : StripeEntity
#endif
public InvoiceAutomaticTaxLiability Liability { get; set; }
+ ///
+ /// The tax provider powering automatic tax.
+ ///
+ [JsonProperty("provider")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("provider")]
+#endif
+ public string Provider { get; set; }
+
///
/// The status of the most recent automated tax calculation for this invoice.
/// One of: complete, failed, or requires_location_inputs.
diff --git a/src/Stripe.net/Entities/Invoices/InvoiceConfirmationSecret.cs b/src/Stripe.net/Entities/Invoices/InvoiceConfirmationSecret.cs
new file mode 100644
index 0000000000..17ddb4c4fb
--- /dev/null
+++ b/src/Stripe.net/Entities/Invoices/InvoiceConfirmationSecret.cs
@@ -0,0 +1,30 @@
+// 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 InvoiceConfirmationSecret : StripeEntity
+ {
+ ///
+ /// The client_secret of the payment that Stripe creates for the invoice after finalization.
+ ///
+ [JsonProperty("client_secret")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("client_secret")]
+#endif
+ public string ClientSecret { get; set; }
+
+ ///
+ /// The type of client_secret. Currently this is always payment_intent, referencing the
+ /// default payment_intent that Stripe creates during invoice finalization.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Invoices/InvoiceParent.cs b/src/Stripe.net/Entities/Invoices/InvoiceParent.cs
new file mode 100644
index 0000000000..7336634c24
--- /dev/null
+++ b/src/Stripe.net/Entities/Invoices/InvoiceParent.cs
@@ -0,0 +1,32 @@
+// 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 InvoiceParent : StripeEntity
+ {
+ [JsonProperty("quote_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("quote_details")]
+#endif
+ public InvoiceParentQuoteDetails QuoteDetails { get; set; }
+
+ [JsonProperty("subscription_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription_details")]
+#endif
+ public InvoiceParentSubscriptionDetails SubscriptionDetails { get; set; }
+
+ ///
+ /// One of: quote_details, or subscription_details.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Invoices/InvoiceParentQuoteDetails.cs b/src/Stripe.net/Entities/Invoices/InvoiceParentQuoteDetails.cs
new file mode 100644
index 0000000000..9afc8754b8
--- /dev/null
+++ b/src/Stripe.net/Entities/Invoices/InvoiceParentQuoteDetails.cs
@@ -0,0 +1,17 @@
+// 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 InvoiceParentQuoteDetails : StripeEntity
+ {
+ [JsonProperty("quote")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("quote")]
+#endif
+ public string Quote { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Invoices/InvoiceParentSubscriptionDetails.cs b/src/Stripe.net/Entities/Invoices/InvoiceParentSubscriptionDetails.cs
new file mode 100644
index 0000000000..c6c4aed746
--- /dev/null
+++ b/src/Stripe.net/Entities/Invoices/InvoiceParentSubscriptionDetails.cs
@@ -0,0 +1,40 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ 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 InvoiceParentSubscriptionDetails : StripeEntity, IHasMetadata
+ {
+ [JsonProperty("metadata")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("metadata")]
+#endif
+ public Dictionary Metadata { get; set; }
+
+ [JsonProperty("pause_collection")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("pause_collection")]
+#endif
+ public InvoiceParentSubscriptionDetailsPauseCollection PauseCollection { get; set; }
+
+ [JsonProperty("subscription")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription")]
+#endif
+ public string Subscription { get; set; }
+
+ [JsonProperty("subscription_proration_date")]
+ [JsonConverter(typeof(UnixDateTimeConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription_proration_date")]
+ [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
+#endif
+ public DateTime SubscriptionProrationDate { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
+ }
+}
diff --git a/src/Stripe.net/Entities/Invoices/InvoiceSubscriptionDetailsPauseCollection.cs b/src/Stripe.net/Entities/Invoices/InvoiceParentSubscriptionDetailsPauseCollection.cs
similarity index 55%
rename from src/Stripe.net/Entities/Invoices/InvoiceSubscriptionDetailsPauseCollection.cs
rename to src/Stripe.net/Entities/Invoices/InvoiceParentSubscriptionDetailsPauseCollection.cs
index 232419c064..a0291f079e 100644
--- a/src/Stripe.net/Entities/Invoices/InvoiceSubscriptionDetailsPauseCollection.cs
+++ b/src/Stripe.net/Entities/Invoices/InvoiceParentSubscriptionDetailsPauseCollection.cs
@@ -8,22 +8,14 @@ namespace Stripe
using STJS = System.Text.Json.Serialization;
#endif
- public class InvoiceSubscriptionDetailsPauseCollection : StripeEntity
+ public class InvoiceParentSubscriptionDetailsPauseCollection : StripeEntity
{
- ///
- /// The payment collection behavior for this subscription while paused. One of
- /// keep_as_draft, mark_uncollectible, or void.
- /// One of: keep_as_draft, mark_uncollectible, or void.
- ///
[JsonProperty("behavior")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("behavior")]
#endif
public string Behavior { get; set; }
- ///
- /// The time after which the subscription will resume collecting payments.
- ///
[JsonProperty("resumes_at")]
[JsonConverter(typeof(UnixDateTimeConverter))]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs b/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs
index 6e78e77b87..a88d1181ce 100644
--- a/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs
+++ b/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs
@@ -40,11 +40,11 @@ public class InvoicePaymentSettings : StripeEntity
/// amazon_pay, au_becs_debit, bacs_debit, bancontact,
/// boleto, card, cashapp, custom, customer_balance,
/// eps, fpx, giropay, grabpay, id_bank_transfer,
- /// ideal, jp_credit_transfer, kakao_pay, konbini,
- /// kr_card, link, multibanco, naver_pay, p24,
- /// payco, paynow, paypal, promptpay, revolut_pay,
- /// sepa_credit_transfer, sepa_debit, sofort, swish,
- /// us_bank_account, or wechat_pay.
+ /// ideal, jp_credit_transfer, kakao_pay, klarna,
+ /// konbini, kr_card, link, multibanco, naver_pay,
+ /// nz_bank_account, p24, payco, paynow, paypal,
+ /// promptpay, revolut_pay, sepa_credit_transfer, sepa_debit,
+ /// sofort, swish, us_bank_account, or wechat_pay.
///
[JsonProperty("payment_method_types")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/Invoices/InvoiceSubscriptionDetails.cs b/src/Stripe.net/Entities/Invoices/InvoiceSubscriptionDetails.cs
deleted file mode 100644
index 3356064552..0000000000
--- a/src/Stripe.net/Entities/Invoices/InvoiceSubscriptionDetails.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-// File generated from our OpenAPI spec
-namespace Stripe
-{
- using System.Collections.Generic;
- using Newtonsoft.Json;
-#if NET6_0_OR_GREATER
- using STJS = System.Text.Json.Serialization;
-#endif
-
- public class InvoiceSubscriptionDetails : StripeEntity, IHasMetadata
- {
- ///
- /// Set of key-value pairs defined as
- /// subscription metadata when an invoice is created. Becomes an immutable snapshot of the
- /// subscription metadata at the time of invoice finalization. Note: This attribute is
- /// populated only for invoices created on or after June 29, 2023..
- ///
- [JsonProperty("metadata")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("metadata")]
-#endif
- public Dictionary Metadata { get; set; }
-
- ///
- /// If specified, payment collection for this subscription will be paused. Note that the
- /// subscription status will be unchanged and will not be updated to paused. Learn
- /// more about pausing
- /// collection.
- ///
- [JsonProperty("pause_collection")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("pause_collection")]
-#endif
- public InvoiceSubscriptionDetailsPauseCollection PauseCollection { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/Invoices/InvoiceTotalTax.cs b/src/Stripe.net/Entities/Invoices/InvoiceTotalTax.cs
new file mode 100644
index 0000000000..d743f8405e
--- /dev/null
+++ b/src/Stripe.net/Entities/Invoices/InvoiceTotalTax.cs
@@ -0,0 +1,74 @@
+// 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 InvoiceTotalTax : StripeEntity
+ {
+ ///
+ /// The amount of the tax, in cents (or local equivalent).
+ ///
+ [JsonProperty("amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("amount")]
+#endif
+ public long Amount { get; set; }
+
+ ///
+ /// Whether this tax is inclusive or exclusive.
+ /// One of: exclusive, or inclusive.
+ ///
+ [JsonProperty("tax_behavior")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_behavior")]
+#endif
+ public string TaxBehavior { get; set; }
+
+ ///
+ /// Additional details about the tax rate. Only present when type is
+ /// tax_rate_details.
+ ///
+ [JsonProperty("tax_rate_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_rate_details")]
+#endif
+ public InvoiceTotalTaxTaxRateDetails TaxRateDetails { get; set; }
+
+ ///
+ /// The reasoning behind this tax, for example, if the product is tax exempt. The possible
+ /// values for this field may be extended as new tax rules are supported.
+ /// One of: customer_exempt, not_available, not_collecting,
+ /// not_subject_to_tax, not_supported, portion_product_exempt,
+ /// portion_reduced_rated, portion_standard_rated, product_exempt,
+ /// product_exempt_holiday, proportionally_rated, reduced_rated,
+ /// reverse_charge, standard_rated, taxable_basis_reduced, or
+ /// zero_rated.
+ ///
+ [JsonProperty("taxability_reason")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("taxability_reason")]
+#endif
+ public string TaxabilityReason { get; set; }
+
+ ///
+ /// The amount on which tax is calculated, in cents (or local equivalent).
+ ///
+ [JsonProperty("taxable_amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("taxable_amount")]
+#endif
+ public long? TaxableAmount { get; set; }
+
+ ///
+ /// The type of tax information.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Invoices/InvoiceTotalTaxTaxRateDetails.cs b/src/Stripe.net/Entities/Invoices/InvoiceTotalTaxTaxRateDetails.cs
new file mode 100644
index 0000000000..5ef072b8f5
--- /dev/null
+++ b/src/Stripe.net/Entities/Invoices/InvoiceTotalTaxTaxRateDetails.cs
@@ -0,0 +1,17 @@
+// 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 InvoiceTotalTaxTaxRateDetails : StripeEntity
+ {
+ [JsonProperty("tax_rate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_rate")]
+#endif
+ public string TaxRate { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Invoices/InvoiceTransferData.cs b/src/Stripe.net/Entities/Invoices/InvoiceTransferData.cs
deleted file mode 100644
index ca9d366aba..0000000000
--- a/src/Stripe.net/Entities/Invoices/InvoiceTransferData.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-// File generated from our OpenAPI spec
-namespace Stripe
-{
- using Newtonsoft.Json;
- using Stripe.Infrastructure;
-#if NET6_0_OR_GREATER
- using STJS = System.Text.Json.Serialization;
-#endif
-
-#if NET6_0_OR_GREATER
- [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
-#endif
- public class InvoiceTransferData : StripeEntity
- {
- ///
- /// The amount in cents (or local equivalent) that will be transferred to the destination
- /// account when the invoice is paid. By default, the entire amount is transferred to the
- /// destination.
- ///
- [JsonProperty("amount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount")]
-#endif
- public long? Amount { get; set; }
-
- #region Expandable Destination
-
- ///
- /// (ID of the Account)
- /// The account where funds from the payment will be transferred to upon payment success.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string DestinationId
- {
- get => this.InternalDestination?.Id;
- set => this.InternalDestination = SetExpandableFieldId(value, this.InternalDestination);
- }
-
- ///
- /// (Expanded)
- /// The account where funds from the payment will be transferred to upon payment success.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public Account Destination
- {
- get => this.InternalDestination?.ExpandedObject;
- set => this.InternalDestination = SetExpandableFieldObject(value, this.InternalDestination);
- }
-
- [JsonProperty("destination")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("destination")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalDestination { get; set; }
- #endregion
- }
-}
diff --git a/src/Stripe.net/Entities/Issuing/Authorizations/Authorization.cs b/src/Stripe.net/Entities/Issuing/Authorizations/Authorization.cs
index 1e13a8038a..29fbeccab1 100644
--- a/src/Stripe.net/Entities/Issuing/Authorizations/Authorization.cs
+++ b/src/Stripe.net/Entities/Issuing/Authorizations/Authorization.cs
@@ -286,7 +286,7 @@ public Cardholder Cardholder
///
/// The current status of the authorization in its lifecycle.
- /// One of: closed, pending, or reversed.
+ /// One of: closed, expired, pending, or reversed.
///
[JsonProperty("status")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/Issuing/DisputeSettlementDetails/DisputeSettlementDetail.cs b/src/Stripe.net/Entities/Issuing/DisputeSettlementDetails/DisputeSettlementDetail.cs
index 34a865ec06..e530df87ae 100644
--- a/src/Stripe.net/Entities/Issuing/DisputeSettlementDetails/DisputeSettlementDetail.cs
+++ b/src/Stripe.net/Entities/Issuing/DisputeSettlementDetails/DisputeSettlementDetail.cs
@@ -116,6 +116,15 @@ public class DisputeSettlementDetail : StripeEntity, IH
#endif
public string Network { get; set; }
+ ///
+ /// Details about the transaction, such as processing dates, set by the card network.
+ ///
+ [JsonProperty("network_data")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network_data")]
+#endif
+ public DisputeSettlementDetailNetworkData NetworkData { get; set; }
+
///
/// The ID of the linked card network settlement.
///
diff --git a/src/Stripe.net/Entities/Issuing/DisputeSettlementDetails/DisputeSettlementDetailNetworkData.cs b/src/Stripe.net/Entities/Issuing/DisputeSettlementDetails/DisputeSettlementDetailNetworkData.cs
new file mode 100644
index 0000000000..de99a89c72
--- /dev/null
+++ b/src/Stripe.net/Entities/Issuing/DisputeSettlementDetails/DisputeSettlementDetailNetworkData.cs
@@ -0,0 +1,22 @@
+// File generated from our OpenAPI spec
+namespace Stripe.Issuing
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class DisputeSettlementDetailNetworkData : StripeEntity
+ {
+ ///
+ /// The date the transaction was processed by the card network. This can be different from
+ /// the date the seller recorded the transaction depending on when the acquirer submits the
+ /// transaction to the network.
+ ///
+ [JsonProperty("processing_date")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("processing_date")]
+#endif
+ public string ProcessingDate { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Issuing/Settlements/Settlement.cs b/src/Stripe.net/Entities/Issuing/Settlements/Settlement.cs
index 422831cc3c..2bd21d538b 100644
--- a/src/Stripe.net/Entities/Issuing/Settlements/Settlement.cs
+++ b/src/Stripe.net/Entities/Issuing/Settlements/Settlement.cs
@@ -79,11 +79,11 @@ public class Settlement : StripeEntity, IHasId, IHasMetadata, IHasOb
///
/// The total interchange received as reimbursement for the transactions.
///
- [JsonProperty("interchange_fees")]
+ [JsonProperty("interchange_fees_amount")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("interchange_fees")]
+ [STJS.JsonPropertyName("interchange_fees_amount")]
#endif
- public long InterchangeFees { get; set; }
+ public long InterchangeFeesAmount { get; set; }
///
/// Has the value true if the object exists in live mode or the value false if
@@ -109,11 +109,11 @@ public class Settlement : StripeEntity, IHasId, IHasMetadata, IHasOb
///
/// The total net amount required to settle with the network.
///
- [JsonProperty("net_total")]
+ [JsonProperty("net_total_amount")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("net_total")]
+ [STJS.JsonPropertyName("net_total_amount")]
#endif
- public long NetTotal { get; set; }
+ public long NetTotalAmount { get; set; }
///
/// The card network for this settlement report. One of ["visa", "maestro"].
@@ -128,11 +128,11 @@ public class Settlement : StripeEntity, IHasId, IHasMetadata, IHasOb
///
/// The total amount of fees owed to the network.
///
- [JsonProperty("network_fees")]
+ [JsonProperty("network_fees_amount")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("network_fees")]
+ [STJS.JsonPropertyName("network_fees_amount")]
#endif
- public long NetworkFees { get; set; }
+ public long NetworkFeesAmount { get; set; }
///
/// The Settlement Identification Number assigned by the network.
@@ -143,6 +143,24 @@ public class Settlement : StripeEntity, IHasId, IHasMetadata, IHasOb
#endif
public string NetworkSettlementIdentifier { get; set; }
+ ///
+ /// The total amount of any additional fees assessed by the card network.
+ ///
+ [JsonProperty("other_fees_amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("other_fees_amount")]
+#endif
+ public long OtherFeesAmount { get; set; }
+
+ ///
+ /// The total number of additional fees assessed by the card network.
+ ///
+ [JsonProperty("other_fees_count")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("other_fees_count")]
+#endif
+ public long OtherFeesCount { get; set; }
+
///
/// One of international or uk_national_net.
///
@@ -163,21 +181,21 @@ public class Settlement : StripeEntity, IHasId, IHasMetadata, IHasOb
public string Status { get; set; }
///
- /// The total number of transactions reflected in this settlement.
+ /// The total transaction amount reflected in this settlement.
///
- [JsonProperty("transaction_count")]
+ [JsonProperty("transaction_amount")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("transaction_count")]
+ [STJS.JsonPropertyName("transaction_amount")]
#endif
- public long TransactionCount { get; set; }
+ public long TransactionAmount { get; set; }
///
- /// The total transaction amount reflected in this settlement.
+ /// The total number of transactions reflected in this settlement.
///
- [JsonProperty("transaction_volume")]
+ [JsonProperty("transaction_count")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("transaction_volume")]
+ [STJS.JsonPropertyName("transaction_count")]
#endif
- public long TransactionVolume { get; set; }
+ public long TransactionCount { get; set; }
}
}
diff --git a/src/Stripe.net/Entities/Issuing/Transactions/Transaction.cs b/src/Stripe.net/Entities/Issuing/Transactions/Transaction.cs
index 062a242064..86b58ad5ec 100644
--- a/src/Stripe.net/Entities/Issuing/Transactions/Transaction.cs
+++ b/src/Stripe.net/Entities/Issuing/Transactions/Transaction.cs
@@ -359,6 +359,11 @@ public Dispute Dispute
#region Expandable Settlement
+ ///
+ /// (ID of the Settlement)
+ /// The ID of the settlement
+ /// to which this transaction belongs.
+ ///
[JsonIgnore]
#if NET6_0_OR_GREATER
[STJS.JsonIgnore]
@@ -369,6 +374,13 @@ public string SettlementId
set => this.InternalSettlement = SetExpandableFieldId(value, this.InternalSettlement);
}
+ ///
+ /// (Expanded)
+ /// The ID of the settlement
+ /// to which this transaction belongs.
+ ///
+ /// For more information, see the expand documentation.
+ ///
[JsonIgnore]
#if NET6_0_OR_GREATER
[STJS.JsonIgnore]
diff --git a/src/Stripe.net/Entities/LineItems/LineItem.cs b/src/Stripe.net/Entities/LineItems/LineItem.cs
index 7b634d7fe7..ea3d8c0d7c 100644
--- a/src/Stripe.net/Entities/LineItems/LineItem.cs
+++ b/src/Stripe.net/Entities/LineItems/LineItem.cs
@@ -196,6 +196,15 @@ public Product Product
#endif
public long? Quantity { get; set; }
+ ///
+ /// The tax calculation identifiers of the line item.
+ ///
+ [JsonProperty("tax_calculation_reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_calculation_reference")]
+#endif
+ public LineItemTaxCalculationReference TaxCalculationReference { get; set; }
+
///
/// The taxes applied to the line item.
///
diff --git a/src/Stripe.net/Entities/LineItems/LineItemTaxCalculationReference.cs b/src/Stripe.net/Entities/LineItems/LineItemTaxCalculationReference.cs
new file mode 100644
index 0000000000..937e331f82
--- /dev/null
+++ b/src/Stripe.net/Entities/LineItems/LineItemTaxCalculationReference.cs
@@ -0,0 +1,29 @@
+// 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 LineItemTaxCalculationReference : StripeEntity
+ {
+ ///
+ /// The calculation identifier for tax calculation response.
+ ///
+ [JsonProperty("calculation_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("calculation_id")]
+#endif
+ public string CalculationId { get; set; }
+
+ ///
+ /// The calculation identifier for tax calculation response line item.
+ ///
+ [JsonProperty("calculation_item_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("calculation_item_id")]
+#endif
+ public string CalculationItemId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Mandates/MandatePaymentMethodDetails.cs b/src/Stripe.net/Entities/Mandates/MandatePaymentMethodDetails.cs
index 794c1b1007..96ecb7c17e 100644
--- a/src/Stripe.net/Entities/Mandates/MandatePaymentMethodDetails.cs
+++ b/src/Stripe.net/Entities/Mandates/MandatePaymentMethodDetails.cs
@@ -62,6 +62,18 @@ public class MandatePaymentMethodDetails : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/Mandates/MandatePaymentMethodDetailsNzBankAccount.cs b/src/Stripe.net/Entities/Mandates/MandatePaymentMethodDetailsNzBankAccount.cs
new file mode 100644
index 0000000000..c1ca27d67b
--- /dev/null
+++ b/src/Stripe.net/Entities/Mandates/MandatePaymentMethodDetailsNzBankAccount.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class MandatePaymentMethodDetailsNzBankAccount : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecord.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecord.cs
index f497433df0..6eee2baf71 100644
--- a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecord.cs
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecord.cs
@@ -159,6 +159,16 @@ public class PaymentAttemptRecord : StripeEntity, IHasId,
#endif
public string PaymentReference { get; set; }
+ ///
+ /// Indicates who reported the payment.
+ /// One of: self, or stripe.
+ ///
+ [JsonProperty("reported_by")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("reported_by")]
+#endif
+ public string ReportedBy { get; set; }
+
///
/// Shipping information for this payment.
///
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetails.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetails.cs
index 29cd5d6b42..e765e4c2d1 100644
--- a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetails.cs
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetails.cs
@@ -8,6 +8,78 @@ namespace Stripe
public class PaymentAttemptRecordPaymentMethodDetails : StripeEntity
{
+ [JsonProperty("ach_credit_transfer")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ach_credit_transfer")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsAchCreditTransfer AchCreditTransfer { get; set; }
+
+ [JsonProperty("ach_debit")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ach_debit")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsAchDebit AchDebit { get; set; }
+
+ [JsonProperty("acss_debit")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("acss_debit")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsAcssDebit AcssDebit { get; set; }
+
+ [JsonProperty("affirm")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("affirm")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsAffirm Affirm { get; set; }
+
+ [JsonProperty("afterpay_clearpay")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("afterpay_clearpay")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsAfterpayClearpay AfterpayClearpay { get; set; }
+
+ [JsonProperty("alipay")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("alipay")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsAlipay Alipay { get; set; }
+
+ [JsonProperty("alma")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("alma")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsAlma Alma { get; set; }
+
+ [JsonProperty("amazon_pay")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("amazon_pay")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsAmazonPay AmazonPay { get; set; }
+
+ [JsonProperty("au_becs_debit")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("au_becs_debit")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsAuBecsDebit AuBecsDebit { get; set; }
+
+ [JsonProperty("bacs_debit")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bacs_debit")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsBacsDebit BacsDebit { get; set; }
+
+ [JsonProperty("bancontact")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bancontact")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsBancontact Bancontact { get; set; }
+
+ [JsonProperty("billie")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("billie")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsBillie Billie { get; set; }
+
///
/// The billing details associated with the method of payment.
///
@@ -17,8 +89,43 @@ public class PaymentAttemptRecordPaymentMethodDetails : StripeEntity
- /// Information about the custom (user-defined) payment method used to make this payment.
+ /// Details of the card used for this payment attempt.
+ ///
+ [JsonProperty("card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsCard Card { get; set; }
+
+ [JsonProperty("card_present")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card_present")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsCardPresent CardPresent { get; set; }
+
+ [JsonProperty("cashapp")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cashapp")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsCashapp Cashapp { get; set; }
+
+ ///
+ /// Custom Payment Methods represent Payment Method types not modeled directly in the Stripe
+ /// API. This resource consists of details about the custom payment method used for this
+ /// payment attempt.
///
[JsonProperty("custom")]
#if NET6_0_OR_GREATER
@@ -26,6 +133,144 @@ public class PaymentAttemptRecordPaymentMethodDetails : StripeEntity
/// ID of the Stripe PaymentMethod used to make this payment.
///
@@ -35,13 +280,144 @@ public class PaymentAttemptRecordPaymentMethodDetails : StripeEntity
- /// The type of Payment Method used for this payment attempt.
+ /// The type of transaction-specific details of the payment method used in the payment. See
+ /// PaymentMethod.type
+ /// for the full list of possible types. An additional hash is included on
+ /// payment_method_details with a name matching this value. It contains information
+ /// specific to the payment method.
///
[JsonProperty("type")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("type")]
#endif
public string Type { get; set; }
+
+ [JsonProperty("us_bank_account")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("us_bank_account")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsUsBankAccount UsBankAccount { get; set; }
+
+ [JsonProperty("wechat")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("wechat")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsWechat Wechat { get; set; }
+
+ [JsonProperty("wechat_pay")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("wechat_pay")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsWechatPay WechatPay { get; set; }
+
+ [JsonProperty("zip")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("zip")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsZip Zip { get; set; }
}
}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchCreditTransfer.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchCreditTransfer.cs
new file mode 100644
index 0000000000..3fc5059941
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchCreditTransfer.cs
@@ -0,0 +1,47 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsAchCreditTransfer : StripeEntity
+ {
+ ///
+ /// Account number to transfer funds to.
+ ///
+ [JsonProperty("account_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_number")]
+#endif
+ public string AccountNumber { get; set; }
+
+ ///
+ /// Name of the bank associated with the routing number.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Routing transit number for the bank account to transfer funds to.
+ ///
+ [JsonProperty("routing_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("routing_number")]
+#endif
+ public string RoutingNumber { get; set; }
+
+ ///
+ /// SWIFT code of the bank associated with the routing number.
+ ///
+ [JsonProperty("swift_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("swift_code")]
+#endif
+ public string SwiftCode { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchDebit.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchDebit.cs
new file mode 100644
index 0000000000..dcd3ca760e
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchDebit.cs
@@ -0,0 +1,68 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsAchDebit : StripeEntity
+ {
+ ///
+ /// Type of entity that holds the account. This can be either individual or
+ /// company.
+ /// One of: company, or individual.
+ ///
+ [JsonProperty("account_holder_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_holder_type")]
+#endif
+ public string AccountHolderType { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country the bank account is located in.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// Routing transit number of the bank account.
+ ///
+ [JsonProperty("routing_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("routing_number")]
+#endif
+ public string RoutingNumber { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAcssDebit.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAcssDebit.cs
new file mode 100644
index 0000000000..15dc865bc7
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAcssDebit.cs
@@ -0,0 +1,66 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsAcssDebit : StripeEntity
+ {
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Institution number of the bank account.
+ ///
+ [JsonProperty("institution_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("institution_number")]
+#endif
+ public string InstitutionNumber { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// ID of the mandate used to make this payment.
+ ///
+ [JsonProperty("mandate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+#endif
+ public string Mandate { get; set; }
+
+ ///
+ /// Transit number of the bank account.
+ ///
+ [JsonProperty("transit_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transit_number")]
+#endif
+ public string TransitNumber { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAffirm.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAffirm.cs
new file mode 100644
index 0000000000..cb02c095bb
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAffirm.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsAffirm : StripeEntity
+ {
+ ///
+ /// The Affirm transaction ID associated with this payment.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAfterpayClearpay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAfterpayClearpay.cs
new file mode 100644
index 0000000000..cd7e73896b
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAfterpayClearpay.cs
@@ -0,0 +1,29 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsAfterpayClearpay : StripeEntity
+ {
+ ///
+ /// The Afterpay order ID associated with this payment intent.
+ ///
+ [JsonProperty("order_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("order_id")]
+#endif
+ public string OrderId { get; set; }
+
+ ///
+ /// Order identifier shown to the merchant in Afterpay’s online portal.
+ ///
+ [JsonProperty("reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("reference")]
+#endif
+ public string Reference { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlipay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlipay.cs
new file mode 100644
index 0000000000..d9df7a1589
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlipay.cs
@@ -0,0 +1,40 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsAlipay : StripeEntity
+ {
+ ///
+ /// Uniquely identifies this particular Alipay account. You can use this attribute to check
+ /// whether two Alipay accounts are the same.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+
+ ///
+ /// Uniquely identifies this particular Alipay account. You can use this attribute to check
+ /// whether two Alipay accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Transaction ID of this particular Alipay transaction.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlma.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlma.cs
new file mode 100644
index 0000000000..b231b80b29
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlma.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsAlma : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPay.cs
new file mode 100644
index 0000000000..3ce91792eb
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPay.cs
@@ -0,0 +1,17 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsAmazonPay : StripeEntity
+ {
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsAmazonPayFunding Funding { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFunding.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFunding.cs
new file mode 100644
index 0000000000..8a9a6dcf2e
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFunding.cs
@@ -0,0 +1,26 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsAmazonPayFunding : StripeEntity
+ {
+ [JsonProperty("card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsAmazonPayFundingCard Card { get; set; }
+
+ ///
+ /// funding type of the underlying payment method.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFundingCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFundingCard.cs
new file mode 100644
index 0000000000..acaee8a144
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFundingCard.cs
@@ -0,0 +1,80 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsAmazonPayFundingCard : StripeEntity
+ {
+ ///
+ /// Card brand. Can be amex, diners, discover, eftpos_au,
+ /// jcb, link, mastercard, unionpay, visa, or
+ /// unknown.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// The product code that
+ /// identifies the specific program or product associated with a card. (For internal use
+ /// only and not typically available in standard API requests.).
+ ///
+ [JsonProperty("brand_product")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand_product")]
+#endif
+ public string BrandProduct { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card. You could use this attribute
+ /// to get a sense of the international breakdown of cards you've collected.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Two-digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long? ExpMonth { get; set; }
+
+ ///
+ /// Four-digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long? ExpYear { get; set; }
+
+ ///
+ /// Card funding type. Can be credit, debit, prepaid, or
+ /// unknown.
+ ///
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public string Funding { get; set; }
+
+ ///
+ /// The last four digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAuBecsDebit.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAuBecsDebit.cs
new file mode 100644
index 0000000000..37c21720a7
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAuBecsDebit.cs
@@ -0,0 +1,48 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsAuBecsDebit : StripeEntity
+ {
+ ///
+ /// Bank-State-Branch number of the bank account.
+ ///
+ [JsonProperty("bsb_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bsb_number")]
+#endif
+ public string BsbNumber { get; set; }
+
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// ID of the mandate used to make this payment.
+ ///
+ [JsonProperty("mandate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+#endif
+ public string Mandate { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBacsDebit.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBacsDebit.cs
new file mode 100644
index 0000000000..c668237321
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBacsDebit.cs
@@ -0,0 +1,48 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsBacsDebit : StripeEntity
+ {
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// ID of the mandate used to make this payment.
+ ///
+ [JsonProperty("mandate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+#endif
+ public string Mandate { get; set; }
+
+ ///
+ /// Sort code of the bank account. (e.g., 10-20-30).
+ ///
+ [JsonProperty("sort_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("sort_code")]
+#endif
+ public string SortCode { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBancontact.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBancontact.cs
new file mode 100644
index 0000000000..18c5600725
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBancontact.cs
@@ -0,0 +1,154 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+#if NET6_0_OR_GREATER
+ [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
+#endif
+ public class PaymentAttemptRecordPaymentMethodDetailsBancontact : StripeEntity
+ {
+ ///
+ /// Bank code of bank associated with the bank account.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Bank Identifier Code of the bank associated with the bank account.
+ ///
+ [JsonProperty("bic")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bic")]
+#endif
+ public string Bic { get; set; }
+
+ #region Expandable GeneratedSepaDebit
+
+ ///
+ /// (ID of the PaymentMethod)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitId
+ {
+ get => this.InternalGeneratedSepaDebit?.Id;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit);
+ }
+
+ ///
+ /// (Expanded)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public PaymentMethod GeneratedSepaDebit
+ {
+ get => this.InternalGeneratedSepaDebit?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit);
+ }
+
+ [JsonProperty("generated_sepa_debit")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebit { get; set; }
+ #endregion
+
+ #region Expandable GeneratedSepaDebitMandate
+
+ ///
+ /// (ID of the Mandate)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitMandateId
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.Id;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ ///
+ /// (Expanded)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public Mandate GeneratedSepaDebitMandate
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ [JsonProperty("generated_sepa_debit_mandate")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit_mandate")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; }
+ #endregion
+
+ ///
+ /// Last four characters of the IBAN.
+ ///
+ [JsonProperty("iban_last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iban_last4")]
+#endif
+ public string IbanLast4 { get; set; }
+
+ ///
+ /// Preferred language of the Bancontact authorization page that the customer is redirected
+ /// to. Can be one of en, de, fr, or nl.
+ /// One of: de, en, fr, or nl.
+ ///
+ [JsonProperty("preferred_language")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preferred_language")]
+#endif
+ public string PreferredLanguage { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by Bancontact directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillie.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillie.cs
new file mode 100644
index 0000000000..488c3a2da7
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillie.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsBillie : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBlik.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBlik.cs
new file mode 100644
index 0000000000..cd6176919f
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBlik.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsBlik : StripeEntity
+ {
+ ///
+ /// A unique and immutable identifier assigned by BLIK to every buyer.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBoleto.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBoleto.cs
new file mode 100644
index 0000000000..03575a0d61
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBoleto.cs
@@ -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 PaymentAttemptRecordPaymentMethodDetailsBoleto : StripeEntity
+ {
+ ///
+ /// The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses
+ /// consumers).
+ ///
+ [JsonProperty("tax_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_id")]
+#endif
+ public string TaxId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCard.cs
new file mode 100644
index 0000000000..112c3ab49e
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCard.cs
@@ -0,0 +1,166 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using System;
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class PaymentAttemptRecordPaymentMethodDetailsCard : StripeEntity
+ {
+ ///
+ /// Card brand. Can be amex, diners, discover, eftpos_au,
+ /// jcb, link, mastercard, unionpay, visa, or
+ /// unknown.
+ /// One of: amex, cartes_bancaires, diners, discover,
+ /// eftpos_au, interac, jcb, link, mastercard,
+ /// unionpay, unknown, or visa.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// When using manual capture, a future timestamp at which the charge will be automatically
+ /// refunded if uncaptured.
+ ///
+ [JsonProperty("capture_before")]
+ [JsonConverter(typeof(UnixDateTimeConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("capture_before")]
+ [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
+#endif
+ public DateTime CaptureBefore { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
+
+ ///
+ /// Check results by Card networks on Card address and CVC at time of payment.
+ ///
+ [JsonProperty("checks")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("checks")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsCardChecks Checks { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card. You could use this attribute
+ /// to get a sense of the international breakdown of cards you've collected.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Two-digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long ExpMonth { get; set; }
+
+ ///
+ /// Four-digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long ExpYear { get; set; }
+
+ ///
+ /// Uniquely identifies this particular card number. You can use this attribute to check
+ /// whether two customers who’ve signed up with you are using the same card number, for
+ /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
+ /// tokenized number might be provided instead of the underlying card number.
+ ///
+ /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ /// fingerprints for the same card---one for India and one for the rest of the world..
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Card funding type. Can be credit, debit, prepaid, or
+ /// unknown.
+ /// One of: credit, debit, prepaid, or unknown.
+ ///
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public string Funding { get; set; }
+
+ ///
+ /// The last four digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// True if this payment was marked as MOTO and out of scope for SCA.
+ ///
+ [JsonProperty("moto")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("moto")]
+#endif
+ public bool Moto { get; set; }
+
+ ///
+ /// Identifies which network this charge was processed on. Can be amex,
+ /// cartes_bancaires, diners, discover, eftpos_au,
+ /// interac, jcb, link, mastercard, unionpay,
+ /// visa, or unknown.
+ /// One of: amex, cartes_bancaires, diners, discover,
+ /// eftpos_au, interac, jcb, link, mastercard,
+ /// unionpay, unknown, or visa.
+ ///
+ [JsonProperty("network")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network")]
+#endif
+ public string Network { get; set; }
+
+ ///
+ /// If this card has network token credentials, this contains the details of the network
+ /// token credentials.
+ ///
+ [JsonProperty("network_token")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network_token")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsCardNetworkToken NetworkToken { get; set; }
+
+ ///
+ /// This is used by the financial networks to identify a transaction. Visa calls this the
+ /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ /// Acquirer Reference Data. This value will be present if it is returned by the financial
+ /// network in the authorization response, and null otherwise.
+ ///
+ [JsonProperty("network_transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network_transaction_id")]
+#endif
+ public string NetworkTransactionId { get; set; }
+
+ ///
+ /// Populated if this transaction used 3D Secure authentication.
+ ///
+ [JsonProperty("three_d_secure")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("three_d_secure")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsCardThreeDSecure ThreeDSecure { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardChecks.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardChecks.cs
new file mode 100644
index 0000000000..ed24e8d833
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardChecks.cs
@@ -0,0 +1,38 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsCardChecks : StripeEntity
+ {
+ ///
+ /// One of: fail, pass, unavailable, or unchecked.
+ ///
+ [JsonProperty("address_line1_check")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("address_line1_check")]
+#endif
+ public string AddressLine1Check { get; set; }
+
+ ///
+ /// One of: fail, pass, unavailable, or unchecked.
+ ///
+ [JsonProperty("address_postal_code_check")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("address_postal_code_check")]
+#endif
+ public string AddressPostalCodeCheck { get; set; }
+
+ ///
+ /// One of: fail, pass, unavailable, or unchecked.
+ ///
+ [JsonProperty("cvc_check")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cvc_check")]
+#endif
+ public string CvcCheck { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardNetworkToken.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardNetworkToken.cs
new file mode 100644
index 0000000000..76f606fe42
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardNetworkToken.cs
@@ -0,0 +1,17 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsCardNetworkToken : StripeEntity
+ {
+ [JsonProperty("used")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("used")]
+#endif
+ public bool Used { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresent.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresent.cs
new file mode 100644
index 0000000000..fe9b84e4e3
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresent.cs
@@ -0,0 +1,271 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ 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 PaymentAttemptRecordPaymentMethodDetailsCardPresent : StripeEntity
+ {
+ ///
+ /// The authorized amount.
+ ///
+ [JsonProperty("amount_authorized")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("amount_authorized")]
+#endif
+ public long? AmountAuthorized { get; set; }
+
+ ///
+ /// Card brand. Can be amex, diners, discover, eftpos_au,
+ /// jcb, link, mastercard, unionpay, visa, or
+ /// unknown.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// The product code that
+ /// identifies the specific program or product associated with a card.
+ ///
+ [JsonProperty("brand_product")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand_product")]
+#endif
+ public string BrandProduct { get; set; }
+
+ ///
+ /// When using manual capture, a future timestamp after which the charge will be
+ /// automatically refunded if uncaptured.
+ ///
+ [JsonProperty("capture_before")]
+ [JsonConverter(typeof(UnixDateTimeConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("capture_before")]
+ [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
+#endif
+ public DateTime CaptureBefore { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
+
+ ///
+ /// The cardholder name as read from the card, in ISO 7813 format. May include
+ /// alphanumeric characters, special characters and first/last name separator (/). In
+ /// some cases, the cardholder name may not be available depending on how the issuer has
+ /// configured the card. Cardholder name is typically not available on swipe or contactless
+ /// payments, such as those made with Apple Pay and Google Pay.
+ ///
+ [JsonProperty("cardholder_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cardholder_name")]
+#endif
+ public string CardholderName { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card. You could use this attribute
+ /// to get a sense of the international breakdown of cards you've collected.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// A high-level description of the type of cards issued in this range. (For internal use
+ /// only and not typically available in standard API requests.).
+ ///
+ [JsonProperty("description")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("description")]
+#endif
+ public string Description { get; set; }
+
+ ///
+ /// Authorization response cryptogram.
+ ///
+ [JsonProperty("emv_auth_data")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("emv_auth_data")]
+#endif
+ public string EmvAuthData { get; set; }
+
+ ///
+ /// Two-digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long ExpMonth { get; set; }
+
+ ///
+ /// Four-digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long ExpYear { get; set; }
+
+ ///
+ /// Uniquely identifies this particular card number. You can use this attribute to check
+ /// whether two customers who’ve signed up with you are using the same card number, for
+ /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
+ /// tokenized number might be provided instead of the underlying card number.
+ ///
+ /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ /// fingerprints for the same card---one for India and one for the rest of the world..
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Card funding type. Can be credit, debit, prepaid, or
+ /// unknown.
+ ///
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public string Funding { get; set; }
+
+ ///
+ /// ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
+ /// attached to a Customer for future transactions. Only present if it was possible to
+ /// generate a card PaymentMethod.
+ ///
+ [JsonProperty("generated_card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_card")]
+#endif
+ public string GeneratedCard { get; set; }
+
+ ///
+ /// Issuer identification number of the card. (For internal use only and not typically
+ /// available in standard API requests.).
+ ///
+ [JsonProperty("iin")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iin")]
+#endif
+ public string Iin { get; set; }
+
+ ///
+ /// Whether this PaymentIntent is
+ /// eligible for incremental authorizations. Request support using request_incremental_authorization_support.
+ ///
+ [JsonProperty("incremental_authorization_supported")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("incremental_authorization_supported")]
+#endif
+ public bool IncrementalAuthorizationSupported { get; set; }
+
+ ///
+ /// The name of the card's issuing bank. (For internal use only and not typically available
+ /// in standard API requests.).
+ ///
+ [JsonProperty("issuer")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("issuer")]
+#endif
+ public string Issuer { get; set; }
+
+ ///
+ /// The last four digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// Identifies which network this charge was processed on. Can be amex,
+ /// cartes_bancaires, diners, discover, eftpos_au,
+ /// interac, jcb, link, mastercard, unionpay,
+ /// visa, or unknown.
+ ///
+ [JsonProperty("network")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network")]
+#endif
+ public string Network { get; set; }
+
+ ///
+ /// This is used by the financial networks to identify a transaction. Visa calls this the
+ /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ /// Acquirer Reference Data. This value will be present if it is returned by the financial
+ /// network in the authorization response, and null otherwise.
+ ///
+ [JsonProperty("network_transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network_transaction_id")]
+#endif
+ public string NetworkTransactionId { get; set; }
+
+ ///
+ /// Details about payments collected offline.
+ ///
+ [JsonProperty("offline")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("offline")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsCardPresentOffline Offline { get; set; }
+
+ ///
+ /// Defines whether the authorized amount can be over-captured or not.
+ ///
+ [JsonProperty("overcapture_supported")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("overcapture_supported")]
+#endif
+ public bool OvercaptureSupported { get; set; }
+
+ ///
+ /// EMV tag 5F2D. Preferred languages specified by the integrated circuit chip.
+ ///
+ [JsonProperty("preferred_locales")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preferred_locales")]
+#endif
+ public List PreferredLocales { get; set; }
+
+ ///
+ /// How card details were read in this transaction.
+ /// One of: contact_emv, contactless_emv, contactless_magstripe_mode,
+ /// magnetic_stripe_fallback, or magnetic_stripe_track2.
+ ///
+ [JsonProperty("read_method")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("read_method")]
+#endif
+ public string ReadMethod { get; set; }
+
+ ///
+ /// A collection of fields required to be displayed on receipts. Only required for EMV
+ /// transactions.
+ ///
+ [JsonProperty("receipt")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("receipt")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsCardPresentReceipt Receipt { get; set; }
+
+ [JsonProperty("wallet")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("wallet")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsCardPresentWallet Wallet { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentOffline.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentOffline.cs
new file mode 100644
index 0000000000..a16eb61673
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentOffline.cs
@@ -0,0 +1,33 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using System;
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class PaymentAttemptRecordPaymentMethodDetailsCardPresentOffline : StripeEntity
+ {
+ ///
+ /// Time at which the payment was collected while offline.
+ ///
+ [JsonProperty("stored_at")]
+ [JsonConverter(typeof(UnixDateTimeConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("stored_at")]
+ [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
+#endif
+ public DateTime? StoredAt { get; set; }
+
+ ///
+ /// The method used to process this payment method offline. Only deferred is allowed.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentReceipt.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentReceipt.cs
new file mode 100644
index 0000000000..d310681433
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentReceipt.cs
@@ -0,0 +1,95 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsCardPresentReceipt : StripeEntity
+ {
+ ///
+ /// The type of account being debited or credited.
+ /// One of: checking, credit, prepaid, or unknown.
+ ///
+ [JsonProperty("account_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_type")]
+#endif
+ public string AccountType { get; set; }
+
+ ///
+ /// EMV tag 9F26, cryptogram generated by the integrated circuit chip.
+ ///
+ [JsonProperty("application_cryptogram")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("application_cryptogram")]
+#endif
+ public string ApplicationCryptogram { get; set; }
+
+ ///
+ /// Mnenomic of the Application Identifier.
+ ///
+ [JsonProperty("application_preferred_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("application_preferred_name")]
+#endif
+ public string ApplicationPreferredName { get; set; }
+
+ ///
+ /// Identifier for this transaction.
+ ///
+ [JsonProperty("authorization_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("authorization_code")]
+#endif
+ public string AuthorizationCode { get; set; }
+
+ ///
+ /// EMV tag 8A. A code returned by the card issuer.
+ ///
+ [JsonProperty("authorization_response_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("authorization_response_code")]
+#endif
+ public string AuthorizationResponseCode { get; set; }
+
+ ///
+ /// Describes the method used by the cardholder to verify ownership of the card. One of the
+ /// following: approval, failure, none, offline_pin,
+ /// offline_pin_and_signature, online_pin, or signature.
+ ///
+ [JsonProperty("cardholder_verification_method")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cardholder_verification_method")]
+#endif
+ public string CardholderVerificationMethod { get; set; }
+
+ ///
+ /// EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
+ ///
+ [JsonProperty("dedicated_file_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("dedicated_file_name")]
+#endif
+ public string DedicatedFileName { get; set; }
+
+ ///
+ /// The outcome of a series of EMV functions performed by the card reader.
+ ///
+ [JsonProperty("terminal_verification_results")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("terminal_verification_results")]
+#endif
+ public string TerminalVerificationResults { get; set; }
+
+ ///
+ /// An indication of various EMV functions performed during the transaction.
+ ///
+ [JsonProperty("transaction_status_information")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_status_information")]
+#endif
+ public string TransactionStatusInformation { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentWallet.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentWallet.cs
new file mode 100644
index 0000000000..96da6a347a
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentWallet.cs
@@ -0,0 +1,22 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsCardPresentWallet : StripeEntity
+ {
+ ///
+ /// The type of mobile wallet, one of apple_pay, google_pay,
+ /// samsung_pay, or unknown.
+ /// One of: apple_pay, google_pay, samsung_pay, or unknown.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardThreeDSecure.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardThreeDSecure.cs
new file mode 100644
index 0000000000..d7a9d046af
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardThreeDSecure.cs
@@ -0,0 +1,49 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsCardThreeDSecure : StripeEntity
+ {
+ ///
+ /// One of: challenge, or frictionless.
+ ///
+ [JsonProperty("authentication_flow")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("authentication_flow")]
+#endif
+ public string AuthenticationFlow { get; set; }
+
+ ///
+ /// One of: attempt_acknowledged, authenticated, exempted,
+ /// failed, not_supported, or processing_error.
+ ///
+ [JsonProperty("result")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("result")]
+#endif
+ public string Result { get; set; }
+
+ ///
+ /// One of: abandoned, bypassed, canceled, card_not_enrolled,
+ /// network_not_supported, protocol_error, or rejected.
+ ///
+ [JsonProperty("result_reason")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("result_reason")]
+#endif
+ public string ResultReason { get; set; }
+
+ ///
+ /// One of: 1.0.2, 2.1.0, or 2.2.0.
+ ///
+ [JsonProperty("version")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("version")]
+#endif
+ public string Version { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCashapp.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCashapp.cs
new file mode 100644
index 0000000000..509c2f639e
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCashapp.cs
@@ -0,0 +1,29 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsCashapp : StripeEntity
+ {
+ ///
+ /// A unique and immutable identifier assigned by Cash App to every buyer.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+
+ ///
+ /// A public identifier for buyers using Cash App.
+ ///
+ [JsonProperty("cashtag")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cashtag")]
+#endif
+ public string Cashtag { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCustomerBalance.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCustomerBalance.cs
new file mode 100644
index 0000000000..de5ccea81d
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCustomerBalance.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsCustomerBalance : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsEps.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsEps.cs
new file mode 100644
index 0000000000..965231462d
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsEps.cs
@@ -0,0 +1,57 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsEps : StripeEntity
+ {
+ ///
+ /// The customer's bank. Should be one of arzte_und_apotheker_bank,
+ /// austrian_anadi_bank_ag, bank_austria, bankhaus_carl_spangler,
+ /// bankhaus_schelhammer_und_schattera_ag, bawag_psk_ag, bks_bank_ag,
+ /// brull_kallmus_bank_ag, btv_vier_lander_bank,
+ /// capital_bank_grawe_gruppe_ag, deutsche_bank_ag, dolomitenbank,
+ /// easybank_ag, erste_bank_und_sparkassen,
+ /// hypo_alpeadriabank_international_ag,
+ /// hypo_noe_lb_fur_niederosterreich_u_wien,
+ /// hypo_oberosterreich_salzburg_steiermark, hypo_tirol_bank_ag,
+ /// hypo_vorarlberg_bank_ag, hypo_bank_burgenland_aktiengesellschaft,
+ /// marchfelder_bank, oberbank_ag, raiffeisen_bankengruppe_osterreich,
+ /// schoellerbank_ag, sparda_bank_wien, volksbank_gruppe,
+ /// volkskreditbank_ag, or vr_bank_braunau.
+ /// One of: arzte_und_apotheker_bank, austrian_anadi_bank_ag,
+ /// bank_austria, bankhaus_carl_spangler,
+ /// bankhaus_schelhammer_und_schattera_ag, bawag_psk_ag, bks_bank_ag,
+ /// brull_kallmus_bank_ag, btv_vier_lander_bank,
+ /// capital_bank_grawe_gruppe_ag, deutsche_bank_ag, dolomitenbank,
+ /// easybank_ag, erste_bank_und_sparkassen,
+ /// hypo_alpeadriabank_international_ag,
+ /// hypo_bank_burgenland_aktiengesellschaft,
+ /// hypo_noe_lb_fur_niederosterreich_u_wien,
+ /// hypo_oberosterreich_salzburg_steiermark, hypo_tirol_bank_ag,
+ /// hypo_vorarlberg_bank_ag, marchfelder_bank, oberbank_ag,
+ /// raiffeisen_bankengruppe_osterreich, schoellerbank_ag,
+ /// sparda_bank_wien, volksbank_gruppe, volkskreditbank_ag, or
+ /// vr_bank_braunau.
+ ///
+ [JsonProperty("bank")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank")]
+#endif
+ public string Bank { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by EPS directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ /// EPS rarely provides this information so the attribute is usually empty.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsFpx.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsFpx.cs
new file mode 100644
index 0000000000..a47ffa6452
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsFpx.cs
@@ -0,0 +1,49 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsFpx : StripeEntity
+ {
+ ///
+ /// Account holder type, if provided. Can be one of individual or company.
+ /// One of: company, or individual.
+ ///
+ [JsonProperty("account_holder_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_holder_type")]
+#endif
+ public string AccountHolderType { get; set; }
+
+ ///
+ /// The customer's bank. Can be one of affin_bank, agrobank,
+ /// alliance_bank, ambank, bank_islam, bank_muamalat,
+ /// bank_rakyat, bsn, cimb, hong_leong_bank, hsbc,
+ /// kfh, maybank2u, ocbc, public_bank, rhb,
+ /// standard_chartered, uob, deutsche_bank, maybank2e,
+ /// pb_enterprise, or bank_of_china.
+ /// One of: affin_bank, agrobank, alliance_bank, ambank,
+ /// bank_islam, bank_muamalat, bank_of_china, bank_rakyat,
+ /// bsn, cimb, deutsche_bank, hong_leong_bank, hsbc,
+ /// kfh, maybank2e, maybank2u, ocbc, pb_enterprise,
+ /// public_bank, rhb, standard_chartered, or uob.
+ ///
+ [JsonProperty("bank")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank")]
+#endif
+ public string Bank { get; set; }
+
+ ///
+ /// Unique transaction id generated by FPX for every request from the merchant.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGiropay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGiropay.cs
new file mode 100644
index 0000000000..a849753d5c
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGiropay.cs
@@ -0,0 +1,49 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsGiropay : StripeEntity
+ {
+ ///
+ /// Bank code of bank associated with the bank account.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Bank Identifier Code of the bank associated with the bank account.
+ ///
+ [JsonProperty("bic")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bic")]
+#endif
+ public string Bic { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by Giropay directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ /// Giropay rarely provides this information so the attribute is usually empty.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGopay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGopay.cs
new file mode 100644
index 0000000000..6caddb63a9
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGopay.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsGopay : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGrabpay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGrabpay.cs
new file mode 100644
index 0000000000..6a9b3a2480
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGrabpay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsGrabpay : StripeEntity
+ {
+ ///
+ /// Unique transaction id generated by GrabPay.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsIdBankTransfer.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsIdBankTransfer.cs
new file mode 100644
index 0000000000..0de46fa607
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsIdBankTransfer.cs
@@ -0,0 +1,58 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsIdBankTransfer : StripeEntity
+ {
+ ///
+ /// Account number of the bank account to transfer funds to.
+ ///
+ [JsonProperty("account_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_number")]
+#endif
+ public string AccountNumber { get; set; }
+
+ ///
+ /// Bank where the account is located.
+ /// One of: bca, bni, bri, cimb, or permata.
+ ///
+ [JsonProperty("bank")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank")]
+#endif
+ public string Bank { get; set; }
+
+ ///
+ /// Local bank code of the bank.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Merchant name and billing details name, for the customer to check for the correct
+ /// merchant when performing the bank transfer.
+ ///
+ [JsonProperty("display_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("display_name")]
+#endif
+ public string DisplayName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsIdeal.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsIdeal.cs
new file mode 100644
index 0000000000..be57525b00
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsIdeal.cs
@@ -0,0 +1,145 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+#if NET6_0_OR_GREATER
+ [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
+#endif
+ public class PaymentAttemptRecordPaymentMethodDetailsIdeal : StripeEntity
+ {
+ ///
+ /// The customer's bank. Can be one of abn_amro, asn_bank, bunq,
+ /// handelsbanken, ing, knab, moneyou, n26, nn,
+ /// rabobank, regiobank, revolut, sns_bank, triodos_bank,
+ /// van_lanschot, or yoursafe.
+ /// One of: abn_amro, asn_bank, bunq, handelsbanken, ing,
+ /// knab, moneyou, n26, nn, rabobank, regiobank,
+ /// revolut, sns_bank, triodos_bank, van_lanschot, or
+ /// yoursafe.
+ ///
+ [JsonProperty("bank")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank")]
+#endif
+ public string Bank { get; set; }
+
+ ///
+ /// The Bank Identifier Code of the customer's bank.
+ /// One of: ABNANL2A, ASNBNL21, BITSNL2A, BUNQNL2A,
+ /// FVLBNL22, HANDNL2A, INGBNL2A, KNABNL2H, MOYONL21,
+ /// NNBANL2G, NTSBDEB1, RABONL2U, RBRBNL21, REVOIE23,
+ /// REVOLT21, SNSBNL2A, or TRIONL2U.
+ ///
+ [JsonProperty("bic")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bic")]
+#endif
+ public string Bic { get; set; }
+
+ #region Expandable GeneratedSepaDebit
+
+ ///
+ /// (ID of the PaymentMethod)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitId
+ {
+ get => this.InternalGeneratedSepaDebit?.Id;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit);
+ }
+
+ ///
+ /// (Expanded)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public PaymentMethod GeneratedSepaDebit
+ {
+ get => this.InternalGeneratedSepaDebit?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit);
+ }
+
+ [JsonProperty("generated_sepa_debit")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebit { get; set; }
+ #endregion
+
+ #region Expandable GeneratedSepaDebitMandate
+
+ ///
+ /// (ID of the Mandate)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitMandateId
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.Id;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ ///
+ /// (Expanded)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public Mandate GeneratedSepaDebitMandate
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ [JsonProperty("generated_sepa_debit_mandate")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit_mandate")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; }
+ #endregion
+
+ ///
+ /// Last four characters of the IBAN.
+ ///
+ [JsonProperty("iban_last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iban_last4")]
+#endif
+ public string IbanLast4 { get; set; }
+
+ ///
+ /// 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.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresent.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresent.cs
new file mode 100644
index 0000000000..060a090300
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresent.cs
@@ -0,0 +1,201 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using System.Collections.Generic;
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class PaymentAttemptRecordPaymentMethodDetailsInteracPresent : StripeEntity
+ {
+ ///
+ /// Card brand. Can be interac, mastercard or visa.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// The cardholder name as read from the card, in ISO 7813 format. May include
+ /// alphanumeric characters, special characters and first/last name separator (/). In
+ /// some cases, the cardholder name may not be available depending on how the issuer has
+ /// configured the card. Cardholder name is typically not available on swipe or contactless
+ /// payments, such as those made with Apple Pay and Google Pay.
+ ///
+ [JsonProperty("cardholder_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cardholder_name")]
+#endif
+ public string CardholderName { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card. You could use this attribute
+ /// to get a sense of the international breakdown of cards you've collected.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// A high-level description of the type of cards issued in this range. (For internal use
+ /// only and not typically available in standard API requests.).
+ ///
+ [JsonProperty("description")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("description")]
+#endif
+ public string Description { get; set; }
+
+ ///
+ /// Authorization response cryptogram.
+ ///
+ [JsonProperty("emv_auth_data")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("emv_auth_data")]
+#endif
+ public string EmvAuthData { get; set; }
+
+ ///
+ /// Two-digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long ExpMonth { get; set; }
+
+ ///
+ /// Four-digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long ExpYear { get; set; }
+
+ ///
+ /// Uniquely identifies this particular card number. You can use this attribute to check
+ /// whether two customers who’ve signed up with you are using the same card number, for
+ /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
+ /// tokenized number might be provided instead of the underlying card number.
+ ///
+ /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ /// fingerprints for the same card---one for India and one for the rest of the world..
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Card funding type. Can be credit, debit, prepaid, or
+ /// unknown.
+ ///
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public string Funding { get; set; }
+
+ ///
+ /// ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
+ /// attached to a Customer for future transactions. Only present if it was possible to
+ /// generate a card PaymentMethod.
+ ///
+ [JsonProperty("generated_card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_card")]
+#endif
+ public string GeneratedCard { get; set; }
+
+ ///
+ /// Issuer identification number of the card. (For internal use only and not typically
+ /// available in standard API requests.).
+ ///
+ [JsonProperty("iin")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iin")]
+#endif
+ public string Iin { get; set; }
+
+ ///
+ /// The name of the card's issuing bank. (For internal use only and not typically available
+ /// in standard API requests.).
+ ///
+ [JsonProperty("issuer")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("issuer")]
+#endif
+ public string Issuer { get; set; }
+
+ ///
+ /// The last four digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// Identifies which network this charge was processed on. Can be amex,
+ /// cartes_bancaires, diners, discover, eftpos_au,
+ /// interac, jcb, link, mastercard, unionpay,
+ /// visa, or unknown.
+ ///
+ [JsonProperty("network")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network")]
+#endif
+ public string Network { get; set; }
+
+ ///
+ /// This is used by the financial networks to identify a transaction. Visa calls this the
+ /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ /// Acquirer Reference Data. This value will be present if it is returned by the financial
+ /// network in the authorization response, and null otherwise.
+ ///
+ [JsonProperty("network_transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network_transaction_id")]
+#endif
+ public string NetworkTransactionId { get; set; }
+
+ ///
+ /// EMV tag 5F2D. Preferred languages specified by the integrated circuit chip.
+ ///
+ [JsonProperty("preferred_locales")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preferred_locales")]
+#endif
+ public List PreferredLocales { get; set; }
+
+ ///
+ /// How card details were read in this transaction.
+ /// One of: contact_emv, contactless_emv, contactless_magstripe_mode,
+ /// magnetic_stripe_fallback, or magnetic_stripe_track2.
+ ///
+ [JsonProperty("read_method")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("read_method")]
+#endif
+ public string ReadMethod { get; set; }
+
+ ///
+ /// A collection of fields required to be displayed on receipts. Only required for EMV
+ /// transactions.
+ ///
+ [JsonProperty("receipt")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("receipt")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsInteracPresentReceipt Receipt { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresentReceipt.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresentReceipt.cs
new file mode 100644
index 0000000000..9284ecd0af
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresentReceipt.cs
@@ -0,0 +1,95 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsInteracPresentReceipt : StripeEntity
+ {
+ ///
+ /// The type of account being debited or credited.
+ /// One of: checking, savings, or unknown.
+ ///
+ [JsonProperty("account_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_type")]
+#endif
+ public string AccountType { get; set; }
+
+ ///
+ /// EMV tag 9F26, cryptogram generated by the integrated circuit chip.
+ ///
+ [JsonProperty("application_cryptogram")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("application_cryptogram")]
+#endif
+ public string ApplicationCryptogram { get; set; }
+
+ ///
+ /// Mnenomic of the Application Identifier.
+ ///
+ [JsonProperty("application_preferred_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("application_preferred_name")]
+#endif
+ public string ApplicationPreferredName { get; set; }
+
+ ///
+ /// Identifier for this transaction.
+ ///
+ [JsonProperty("authorization_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("authorization_code")]
+#endif
+ public string AuthorizationCode { get; set; }
+
+ ///
+ /// EMV tag 8A. A code returned by the card issuer.
+ ///
+ [JsonProperty("authorization_response_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("authorization_response_code")]
+#endif
+ public string AuthorizationResponseCode { get; set; }
+
+ ///
+ /// Describes the method used by the cardholder to verify ownership of the card. One of the
+ /// following: approval, failure, none, offline_pin,
+ /// offline_pin_and_signature, online_pin, or signature.
+ ///
+ [JsonProperty("cardholder_verification_method")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cardholder_verification_method")]
+#endif
+ public string CardholderVerificationMethod { get; set; }
+
+ ///
+ /// EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
+ ///
+ [JsonProperty("dedicated_file_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("dedicated_file_name")]
+#endif
+ public string DedicatedFileName { get; set; }
+
+ ///
+ /// The outcome of a series of EMV functions performed by the card reader.
+ ///
+ [JsonProperty("terminal_verification_results")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("terminal_verification_results")]
+#endif
+ public string TerminalVerificationResults { get; set; }
+
+ ///
+ /// An indication of various EMV functions performed during the transaction.
+ ///
+ [JsonProperty("transaction_status_information")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_status_information")]
+#endif
+ public string TransactionStatusInformation { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKakaoPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKakaoPay.cs
new file mode 100644
index 0000000000..f15137f456
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKakaoPay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsKakaoPay : StripeEntity
+ {
+ ///
+ /// A unique identifier for the buyer as determined by the local payment processor.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarna.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarna.cs
new file mode 100644
index 0000000000..b84eeff656
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarna.cs
@@ -0,0 +1,47 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsKlarna : StripeEntity
+ {
+ ///
+ /// The payer details for this transaction.
+ ///
+ [JsonProperty("payer_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payer_details")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetails PayerDetails { get; set; }
+
+ ///
+ /// The Klarna payment method used for this transaction. Can be one of pay_later,
+ /// pay_now, pay_with_financing, or pay_in_installments.
+ ///
+ [JsonProperty("payment_method_category")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payment_method_category")]
+#endif
+ public string PaymentMethodCategory { get; set; }
+
+ ///
+ /// 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.
+ ///
+ [JsonProperty("preferred_locale")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preferred_locale")]
+#endif
+ public string PreferredLocale { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetails.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetails.cs
new file mode 100644
index 0000000000..c7b62eae74
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetails.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetails : StripeEntity
+ {
+ ///
+ /// The payer's address.
+ ///
+ [JsonProperty("address")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("address")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetailsAddress Address { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs
new file mode 100644
index 0000000000..721aaa7b81
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetailsAddress : StripeEntity
+ {
+ ///
+ /// The payer address country.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbini.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbini.cs
new file mode 100644
index 0000000000..dce6edc0ff
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbini.cs
@@ -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 PaymentAttemptRecordPaymentMethodDetailsKonbini : StripeEntity
+ {
+ ///
+ /// If the payment succeeded, this contains the details of the convenience store where the
+ /// payment was completed.
+ ///
+ [JsonProperty("store")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("store")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsKonbiniStore Store { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbiniStore.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbiniStore.cs
new file mode 100644
index 0000000000..a8042a311c
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbiniStore.cs
@@ -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 PaymentAttemptRecordPaymentMethodDetailsKonbiniStore : StripeEntity
+ {
+ ///
+ /// The name of the convenience store chain where the payment was completed.
+ /// One of: familymart, lawson, ministop, or seicomart.
+ ///
+ [JsonProperty("chain")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("chain")]
+#endif
+ public string Chain { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKrCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKrCard.cs
new file mode 100644
index 0000000000..fbf1e5a955
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKrCard.cs
@@ -0,0 +1,43 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsKrCard : StripeEntity
+ {
+ ///
+ /// The local credit or debit card brand.
+ /// One of: bc, citi, hana, hyundai, jeju,
+ /// jeonbuk, kakaobank, kbank, kdbbank, kookmin,
+ /// kwangju, lotte, mg, nh, post, samsung,
+ /// savingsbank, shinhan, shinhyup, suhyup, tossbank, or
+ /// woori.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// A unique identifier for the buyer as determined by the local payment processor.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+
+ ///
+ /// The last four digits of the card. This may not be present for American Express cards.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsLink.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsLink.cs
new file mode 100644
index 0000000000..cc69c21bf5
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsLink.cs
@@ -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 PaymentAttemptRecordPaymentMethodDetailsLink : StripeEntity
+ {
+ ///
+ /// Two-letter ISO code representing the funding source country beneath the Link payment.
+ /// You could use this attribute to get a sense of international fees.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMbWay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMbWay.cs
new file mode 100644
index 0000000000..515a4e8234
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMbWay.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsMbWay : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepay.cs
new file mode 100644
index 0000000000..fbeb467031
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsMobilepay : StripeEntity
+ {
+ ///
+ /// Internal card details.
+ ///
+ [JsonProperty("card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsMobilepayCard Card { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepayCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepayCard.cs
new file mode 100644
index 0000000000..cc49dc11b9
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepayCard.cs
@@ -0,0 +1,56 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsMobilepayCard : StripeEntity
+ {
+ ///
+ /// Brand of the card used in the transaction.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Two digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long? ExpMonth { get; set; }
+
+ ///
+ /// Two digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long? ExpYear { get; set; }
+
+ ///
+ /// The last 4 digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMultibanco.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMultibanco.cs
new file mode 100644
index 0000000000..5b9c884804
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMultibanco.cs
@@ -0,0 +1,29 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsMultibanco : StripeEntity
+ {
+ ///
+ /// Entity number associated with this Multibanco payment.
+ ///
+ [JsonProperty("entity")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("entity")]
+#endif
+ public string Entity { get; set; }
+
+ ///
+ /// Reference number associated with this Multibanco payment.
+ ///
+ [JsonProperty("reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("reference")]
+#endif
+ public string Reference { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNaverPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNaverPay.cs
new file mode 100644
index 0000000000..f860532176
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNaverPay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsNaverPay : StripeEntity
+ {
+ ///
+ /// A unique identifier for the buyer as determined by the local payment processor.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNzBankAccount.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNzBankAccount.cs
new file mode 100644
index 0000000000..63b1e40810
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNzBankAccount.cs
@@ -0,0 +1,66 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsNzBankAccount : StripeEntity
+ {
+ ///
+ /// The name on the bank account. Only present if the account holder name is different from
+ /// the name of the authorized signatory collected in the PaymentMethod’s billing details.
+ ///
+ [JsonProperty("account_holder_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_holder_name")]
+#endif
+ public string AccountHolderName { get; set; }
+
+ ///
+ /// The numeric code for the bank account's bank.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// The name of the bank.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// The numeric code for the bank account's bank branch.
+ ///
+ [JsonProperty("branch_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("branch_code")]
+#endif
+ public string BranchCode { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// The suffix of the bank account number.
+ ///
+ [JsonProperty("suffix")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("suffix")]
+#endif
+ public string Suffix { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsOxxo.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsOxxo.cs
new file mode 100644
index 0000000000..b554e3eff7
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsOxxo.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsOxxo : StripeEntity
+ {
+ ///
+ /// OXXO reference number.
+ ///
+ [JsonProperty("number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("number")]
+#endif
+ public string Number { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsP24.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsP24.cs
new file mode 100644
index 0000000000..48fc17b79d
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsP24.cs
@@ -0,0 +1,55 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsP24 : StripeEntity
+ {
+ ///
+ /// The customer's bank. Can be one of ing, citi_handlowy,
+ /// tmobile_usbugi_bankowe, plus_bank, etransfer_pocztowy24,
+ /// banki_spbdzielcze, bank_nowy_bfg_sa, getin_bank, velobank,
+ /// blik, noble_pay, ideabank, envelobank,
+ /// santander_przelew24, nest_przelew, mbank_mtransfer,
+ /// inteligo, pbac_z_ipko, bnp_paribas, credit_agricole,
+ /// toyota_bank, bank_pekao_sa, volkswagen_bank,
+ /// bank_millennium, alior_bank, or boz.
+ /// One of: alior_bank, bank_millennium, bank_nowy_bfg_sa,
+ /// bank_pekao_sa, banki_spbdzielcze, blik, bnp_paribas,
+ /// boz, citi_handlowy, credit_agricole, envelobank,
+ /// etransfer_pocztowy24, getin_bank, ideabank, ing,
+ /// inteligo, mbank_mtransfer, nest_przelew, noble_pay,
+ /// pbac_z_ipko, plus_bank, santander_przelew24,
+ /// tmobile_usbugi_bankowe, toyota_bank, velobank, or
+ /// volkswagen_bank.
+ ///
+ [JsonProperty("bank")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank")]
+#endif
+ public string Bank { get; set; }
+
+ ///
+ /// Unique reference for this Przelewy24 payment.
+ ///
+ [JsonProperty("reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("reference")]
+#endif
+ public string Reference { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by Przelewy24 directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ /// Przelewy24 rarely provides this information so the attribute is usually empty.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayByBank.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayByBank.cs
new file mode 100644
index 0000000000..fa1ddbbc4f
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayByBank.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsPayByBank : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayco.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayco.cs
new file mode 100644
index 0000000000..421639c378
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayco.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsPayco : StripeEntity
+ {
+ ///
+ /// A unique identifier for the buyer as determined by the local payment processor.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaynow.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaynow.cs
new file mode 100644
index 0000000000..ef977a44ed
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaynow.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsPaynow : StripeEntity
+ {
+ ///
+ /// Reference number associated with this PayNow payment.
+ ///
+ [JsonProperty("reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("reference")]
+#endif
+ public string Reference { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypal.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypal.cs
new file mode 100644
index 0000000000..e467c8c459
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypal.cs
@@ -0,0 +1,114 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsPaypal : StripeEntity
+ {
+ ///
+ /// Two-letter ISO code representing the buyer's country. Values are provided by PayPal
+ /// directly (if supported) at the time of authorization or settlement. They cannot be set
+ /// or mutated.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Owner's email. Values are provided by PayPal directly (if supported) at the time of
+ /// authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("payer_email")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payer_email")]
+#endif
+ public string PayerEmail { get; set; }
+
+ ///
+ /// PayPal account PayerID. This identifier uniquely identifies the PayPal customer.
+ ///
+ [JsonProperty("payer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payer_id")]
+#endif
+ public string PayerId { get; set; }
+
+ ///
+ /// Owner's full name. Values provided by PayPal directly (if supported) at the time of
+ /// authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("payer_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payer_name")]
+#endif
+ public string PayerName { get; set; }
+
+ ///
+ /// The level of protection offered as defined by PayPal Seller Protection for Merchants,
+ /// for this transaction.
+ ///
+ [JsonProperty("seller_protection")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("seller_protection")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsPaypalSellerProtection SellerProtection { get; set; }
+
+ ///
+ /// The shipping address for the customer, as supplied by the merchant at the point of
+ /// payment execution. This shipping address will not be updated if the merchant updates the
+ /// shipping address on the PaymentIntent after the PaymentIntent was successfully
+ /// confirmed.
+ ///
+ [JsonProperty("shipping")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("shipping")]
+#endif
+ public Address Shipping { get; set; }
+
+ ///
+ /// A unique ID generated by PayPal for this transaction.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+
+ ///
+ /// The shipping address for the customer, as supplied by the merchant at the point of
+ /// payment execution. This shipping address will not be updated if the merchant updates the
+ /// shipping address on the PaymentIntent after the PaymentIntent was successfully
+ /// confirmed.
+ ///
+ [JsonProperty("verified_address")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_address")]
+#endif
+ public Address VerifiedAddress { get; set; }
+
+ ///
+ /// Owner's verified email. Values are verified or provided by PayPal directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("verified_email")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_email")]
+#endif
+ public string VerifiedEmail { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by PayPal directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypalSellerProtection.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypalSellerProtection.cs
new file mode 100644
index 0000000000..3d457440a9
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypalSellerProtection.cs
@@ -0,0 +1,32 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using System.Collections.Generic;
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class PaymentAttemptRecordPaymentMethodDetailsPaypalSellerProtection : StripeEntity
+ {
+ ///
+ /// An array of conditions that are covered for the transaction, if applicable.
+ /// One of: fraudulent, or product_not_received.
+ ///
+ [JsonProperty("dispute_categories")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("dispute_categories")]
+#endif
+ public List DisputeCategories { get; set; }
+
+ ///
+ /// Indicates whether the transaction is eligible for PayPal's seller protection.
+ /// One of: eligible, not_eligible, or partially_eligible.
+ ///
+ [JsonProperty("status")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("status")]
+#endif
+ public string Status { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayto.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayto.cs
new file mode 100644
index 0000000000..2e245e0052
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayto.cs
@@ -0,0 +1,47 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsPayto : StripeEntity
+ {
+ ///
+ /// Bank-State-Branch number of the bank account.
+ ///
+ [JsonProperty("bsb_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bsb_number")]
+#endif
+ public string BsbNumber { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// ID of the mandate used to make this payment.
+ ///
+ [JsonProperty("mandate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+#endif
+ public string Mandate { get; set; }
+
+ ///
+ /// The PayID alias for the bank account.
+ ///
+ [JsonProperty("pay_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("pay_id")]
+#endif
+ public string PayId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPix.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPix.cs
new file mode 100644
index 0000000000..9102e73990
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPix.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsPix : StripeEntity
+ {
+ ///
+ /// Unique transaction id generated by BCB.
+ ///
+ [JsonProperty("bank_transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_transaction_id")]
+#endif
+ public string BankTransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPromptpay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPromptpay.cs
new file mode 100644
index 0000000000..81f9e937d9
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPromptpay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsPromptpay : StripeEntity
+ {
+ ///
+ /// Bill reference generated by PromptPay.
+ ///
+ [JsonProperty("reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("reference")]
+#endif
+ public string Reference { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsQris.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsQris.cs
new file mode 100644
index 0000000000..714c55e6de
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsQris.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsQris : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRechnung.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRechnung.cs
new file mode 100644
index 0000000000..6e7424e126
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRechnung.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsRechnung : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPay.cs
new file mode 100644
index 0000000000..445b6c5129
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPay.cs
@@ -0,0 +1,17 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsRevolutPay : StripeEntity
+ {
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsRevolutPayFunding Funding { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFunding.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFunding.cs
new file mode 100644
index 0000000000..f1bbb39b8d
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFunding.cs
@@ -0,0 +1,26 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsRevolutPayFunding : StripeEntity
+ {
+ [JsonProperty("card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card")]
+#endif
+ public PaymentAttemptRecordPaymentMethodDetailsRevolutPayFundingCard Card { get; set; }
+
+ ///
+ /// funding type of the underlying payment method.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFundingCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFundingCard.cs
new file mode 100644
index 0000000000..5244636391
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFundingCard.cs
@@ -0,0 +1,80 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsRevolutPayFundingCard : StripeEntity
+ {
+ ///
+ /// Card brand. Can be amex, diners, discover, eftpos_au,
+ /// jcb, link, mastercard, unionpay, visa, or
+ /// unknown.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// The product code that
+ /// identifies the specific program or product associated with a card. (For internal use
+ /// only and not typically available in standard API requests.).
+ ///
+ [JsonProperty("brand_product")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand_product")]
+#endif
+ public string BrandProduct { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card. You could use this attribute
+ /// to get a sense of the international breakdown of cards you've collected.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Two-digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long? ExpMonth { get; set; }
+
+ ///
+ /// Four-digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long? ExpYear { get; set; }
+
+ ///
+ /// Card funding type. Can be credit, debit, prepaid, or
+ /// unknown.
+ ///
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public string Funding { get; set; }
+
+ ///
+ /// The last four digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSamsungPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSamsungPay.cs
new file mode 100644
index 0000000000..ccb4611b58
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSamsungPay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsSamsungPay : StripeEntity
+ {
+ ///
+ /// A unique identifier for the buyer as determined by the local payment processor.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSatispay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSatispay.cs
new file mode 100644
index 0000000000..55e913f1ea
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSatispay.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsSatispay : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaCreditTransfer.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaCreditTransfer.cs
new file mode 100644
index 0000000000..4c5dd48911
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaCreditTransfer.cs
@@ -0,0 +1,38 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsSepaCreditTransfer : StripeEntity
+ {
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Bank Identifier Code of the bank associated with the bank account.
+ ///
+ [JsonProperty("bic")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bic")]
+#endif
+ public string Bic { get; set; }
+
+ ///
+ /// IBAN of the bank account to transfer funds to.
+ ///
+ [JsonProperty("iban")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iban")]
+#endif
+ public string Iban { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaDebit.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaDebit.cs
new file mode 100644
index 0000000000..a20882ee35
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaDebit.cs
@@ -0,0 +1,69 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsSepaDebit : StripeEntity
+ {
+ ///
+ /// Bank code of bank associated with the bank account.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// Branch code of bank associated with the bank account.
+ ///
+ [JsonProperty("branch_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("branch_code")]
+#endif
+ public string BranchCode { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country the bank account is located in.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Last four characters of the IBAN.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// Find the ID of the mandate used for this payment under the payment_method_details.sepa_debit.mandate
+ /// property on the Charge. Use this mandate ID to retrieve the Mandate.
+ ///
+ [JsonProperty("mandate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+#endif
+ public string Mandate { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsShopeepay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsShopeepay.cs
new file mode 100644
index 0000000000..fd75002f65
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsShopeepay.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsShopeepay : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSofort.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSofort.cs
new file mode 100644
index 0000000000..5f4312090d
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSofort.cs
@@ -0,0 +1,164 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+#if NET6_0_OR_GREATER
+ [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
+#endif
+ public class PaymentAttemptRecordPaymentMethodDetailsSofort : StripeEntity
+ {
+ ///
+ /// Bank code of bank associated with the bank account.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Bank Identifier Code of the bank associated with the bank account.
+ ///
+ [JsonProperty("bic")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bic")]
+#endif
+ public string Bic { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country the bank account is located in.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ #region Expandable GeneratedSepaDebit
+
+ ///
+ /// (ID of the PaymentMethod)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitId
+ {
+ get => this.InternalGeneratedSepaDebit?.Id;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit);
+ }
+
+ ///
+ /// (Expanded)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public PaymentMethod GeneratedSepaDebit
+ {
+ get => this.InternalGeneratedSepaDebit?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit);
+ }
+
+ [JsonProperty("generated_sepa_debit")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebit { get; set; }
+ #endregion
+
+ #region Expandable GeneratedSepaDebitMandate
+
+ ///
+ /// (ID of the Mandate)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitMandateId
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.Id;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ ///
+ /// (Expanded)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public Mandate GeneratedSepaDebitMandate
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ [JsonProperty("generated_sepa_debit_mandate")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit_mandate")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; }
+ #endregion
+
+ ///
+ /// Last four characters of the IBAN.
+ ///
+ [JsonProperty("iban_last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iban_last4")]
+#endif
+ public string IbanLast4 { get; set; }
+
+ ///
+ /// Preferred language of the SOFORT authorization page that the customer is redirected to.
+ /// Can be one of de, en, es, fr, it, nl, or
+ /// pl.
+ /// One of: de, en, es, fr, it, nl, or pl.
+ ///
+ [JsonProperty("preferred_language")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preferred_language")]
+#endif
+ public string PreferredLanguage { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by SOFORT directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsStripeAccount.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsStripeAccount.cs
new file mode 100644
index 0000000000..59386a3e58
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsStripeAccount.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsStripeAccount : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSwish.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSwish.cs
new file mode 100644
index 0000000000..ce3d7941cd
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSwish.cs
@@ -0,0 +1,39 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsSwish : StripeEntity
+ {
+ ///
+ /// Uniquely identifies the payer's Swish account. You can use this attribute to check
+ /// whether two Swish transactions were paid for by the same payer.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Payer bank reference number for the payment.
+ ///
+ [JsonProperty("payment_reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payment_reference")]
+#endif
+ public string PaymentReference { get; set; }
+
+ ///
+ /// The last four digits of the Swish account phone number.
+ ///
+ [JsonProperty("verified_phone_last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_phone_last4")]
+#endif
+ public string VerifiedPhoneLast4 { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsTwint.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsTwint.cs
new file mode 100644
index 0000000000..f3515f9b34
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsTwint.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsTwint : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsUsBankAccount.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsUsBankAccount.cs
new file mode 100644
index 0000000000..7b4d77b791
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsUsBankAccount.cs
@@ -0,0 +1,122 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+#if NET6_0_OR_GREATER
+ [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
+#endif
+ public class PaymentAttemptRecordPaymentMethodDetailsUsBankAccount : StripeEntity
+ {
+ ///
+ /// Account holder type: individual or company.
+ /// One of: company, or individual.
+ ///
+ [JsonProperty("account_holder_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_holder_type")]
+#endif
+ public string AccountHolderType { get; set; }
+
+ ///
+ /// Account type: checkings or savings. Defaults to checking if omitted.
+ /// One of: checking, or savings.
+ ///
+ [JsonProperty("account_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_type")]
+#endif
+ public string AccountType { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ #region Expandable Mandate
+
+ ///
+ /// (ID of the Mandate)
+ /// ID of the mandate used to make this payment.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string MandateId
+ {
+ get => this.InternalMandate?.Id;
+ set => this.InternalMandate = SetExpandableFieldId(value, this.InternalMandate);
+ }
+
+ ///
+ /// (Expanded)
+ /// ID of the mandate used to make this payment.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public Mandate Mandate
+ {
+ get => this.InternalMandate?.ExpandedObject;
+ set => this.InternalMandate = SetExpandableFieldObject(value, this.InternalMandate);
+ }
+
+ [JsonProperty("mandate")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalMandate { get; set; }
+ #endregion
+
+ ///
+ /// Reference number to locate ACH payments with customer's bank.
+ ///
+ [JsonProperty("payment_reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payment_reference")]
+#endif
+ public string PaymentReference { get; set; }
+
+ ///
+ /// Routing number of the bank account.
+ ///
+ [JsonProperty("routing_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("routing_number")]
+#endif
+ public string RoutingNumber { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechat.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechat.cs
new file mode 100644
index 0000000000..b61ddd9d1d
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechat.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsWechat : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechatPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechatPay.cs
new file mode 100644
index 0000000000..585613664d
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechatPay.cs
@@ -0,0 +1,30 @@
+// 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 PaymentAttemptRecordPaymentMethodDetailsWechatPay : StripeEntity
+ {
+ ///
+ /// Uniquely identifies this particular WeChat Pay account. You can use this attribute to
+ /// check whether two WeChat accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Transaction ID of this particular WeChat Pay transaction.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsZip.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsZip.cs
new file mode 100644
index 0000000000..f946dbdfac
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsZip.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentAttemptRecordPaymentMethodDetailsZip : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs
index d05f897c2e..22c0fdeab7 100644
--- a/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs
+++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs
@@ -130,7 +130,7 @@ public Application Application
///
/// The amount of the application fee (if any) that will be requested to be applied to the
/// payment and transferred to the application owner's Stripe account. The amount of the
- /// application fee collected will be capped at the total payment amount. For more
+ /// application fee collected will be capped at the total amount captured. For more
/// information, see the PaymentIntents use case for connected
/// accounts.
@@ -172,9 +172,11 @@ public Application Application
///
/// Reason for cancellation of this PaymentIntent, either user-provided (duplicate,
/// fraudulent, requested_by_customer, or abandoned) or generated by
- /// Stripe internally (failed_invoice, void_invoice, or automatic).
- /// One of: abandoned, automatic, duplicate, failed_invoice,
- /// fraudulent, requested_by_customer, or void_invoice.
+ /// Stripe internally (failed_invoice, void_invoice, automatic, or
+ /// expired).
+ /// One of: abandoned, automatic, duplicate, expired,
+ /// failed_invoice, fraudulent, requested_by_customer, or
+ /// void_invoice.
///
[JsonProperty("cancellation_reason")]
#if NET6_0_OR_GREATER
@@ -315,47 +317,6 @@ public Customer Customer
#endif
public string Description { get; set; }
- #region Expandable Invoice
-
- ///
- /// (ID of the Invoice)
- /// ID of the invoice that created this PaymentIntent, if it exists.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string InvoiceId
- {
- get => this.InternalInvoice?.Id;
- set => this.InternalInvoice = SetExpandableFieldId(value, this.InternalInvoice);
- }
-
- ///
- /// (Expanded)
- /// ID of the invoice that created this PaymentIntent, if it exists.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public Invoice Invoice
- {
- get => this.InternalInvoice?.ExpandedObject;
- set => this.InternalInvoice = SetExpandableFieldObject(value, this.InternalInvoice);
- }
-
- [JsonProperty("invoice")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("invoice")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalInvoice { get; set; }
- #endregion
-
///
/// The payment error encountered in the previous PaymentIntent confirmation. It will be
/// cleared if the PaymentIntent is later updated for any reason.
@@ -558,6 +519,8 @@ public PaymentMethod PaymentMethod
///
/// The list of payment method types (e.g. card) that this PaymentIntent is allowed to use.
+ /// A comprehensive list of valid payment method types can be found here.
///
[JsonProperty("payment_method_types")]
#if NET6_0_OR_GREATER
@@ -565,6 +528,12 @@ public PaymentMethod PaymentMethod
#endif
public List PaymentMethodTypes { get; set; }
+ [JsonProperty("presentment_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_details")]
+#endif
+ public PaymentIntentPresentmentDetails PresentmentDetails { get; set; }
+
///
/// If present, this property tells you about the processing state of the payment.
///
diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptions.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptions.cs
index 822db2f950..995324432a 100644
--- a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptions.cs
+++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptions.cs
@@ -200,6 +200,12 @@ public class PaymentIntentPaymentMethodOptions : StripeEntity
+ /// Indicates that you intend to make future payments with this PaymentIntent's payment
+ /// method.
+ ///
+ /// If you provide a Customer with the PaymentIntent, you can use this parameter to attach the payment method to
+ /// the Customer after the PaymentIntent is confirmed and the customer completes any
+ /// required actions. If you don't provide a Customer, you can still attach the payment method to a
+ /// Customer after the transaction completes.
+ ///
+ /// If the payment method is card_present and isn't a digital wallet, Stripe creates
+ /// and attaches a generated_card
+ /// payment method representing the card to the Customer instead.
+ ///
+ /// When processing card payments, Stripe uses setup_future_usage to help you comply
+ /// with regional legislation and network rules, such as SCA.
+ /// One of: none, or off_session.
+ ///
+ [JsonProperty("setup_future_usage")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("setup_future_usage")]
+#endif
+ public string SetupFutureUsage { get; set; }
}
}
diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsNzBankAccount.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsNzBankAccount.cs
new file mode 100644
index 0000000000..4c68f295d0
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsNzBankAccount.cs
@@ -0,0 +1,49 @@
+// 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 PaymentIntentPaymentMethodOptionsNzBankAccount : StripeEntity
+ {
+ ///
+ /// Indicates that you intend to make future payments with this PaymentIntent's payment
+ /// method.
+ ///
+ /// If you provide a Customer with the PaymentIntent, you can use this parameter to attach the payment method to
+ /// the Customer after the PaymentIntent is confirmed and the customer completes any
+ /// required actions. If you don't provide a Customer, you can still attach the payment method to a
+ /// Customer after the transaction completes.
+ ///
+ /// If the payment method is card_present and isn't a digital wallet, Stripe creates
+ /// and attaches a generated_card
+ /// payment method representing the card to the Customer instead.
+ ///
+ /// When processing card payments, Stripe uses setup_future_usage to help you comply
+ /// with regional legislation and network rules, such as SCA.
+ /// One of: none, off_session, or on_session.
+ ///
+ [JsonProperty("setup_future_usage")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("setup_future_usage")]
+#endif
+ public string SetupFutureUsage { get; set; }
+
+ ///
+ /// Controls when Stripe will attempt to debit the funds from the customer's account. The
+ /// date must be a string in YYYY-MM-DD format. The date must be in the future and between 3
+ /// and 15 calendar days from now.
+ ///
+ [JsonProperty("target_date")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("target_date")]
+#endif
+ public string TargetDate { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPresentmentDetails.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPresentmentDetails.cs
new file mode 100644
index 0000000000..dc461cb5cb
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPresentmentDetails.cs
@@ -0,0 +1,29 @@
+// 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 PaymentIntentPresentmentDetails : StripeEntity
+ {
+ ///
+ /// Amount intended to be collected by this payment, denominated in presentment_currency.
+ ///
+ [JsonProperty("presentment_amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_amount")]
+#endif
+ public long PresentmentAmount { get; set; }
+
+ ///
+ /// Currency presented to the customer during payment.
+ ///
+ [JsonProperty("presentment_currency")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_currency")]
+#endif
+ public string PresentmentCurrency { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentLinks/PaymentLink.cs b/src/Stripe.net/Entities/PaymentLinks/PaymentLink.cs
index 064d589098..9201d517de 100644
--- a/src/Stripe.net/Entities/PaymentLinks/PaymentLink.cs
+++ b/src/Stripe.net/Entities/PaymentLinks/PaymentLink.cs
@@ -285,6 +285,15 @@ public Account OnBehalfOf
internal ExpandableField InternalOnBehalfOf { get; set; }
#endregion
+ ///
+ /// The optional items presented to the customer at checkout.
+ ///
+ [JsonProperty("optional_items")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("optional_items")]
+#endif
+ public List OptionalItems { get; set; }
+
///
/// Indicates the parameters to be passed to PaymentIntent creation during checkout.
///
@@ -311,13 +320,14 @@ public Account OnBehalfOf
/// href="https://dashboard.stripe.com/settings/payment_methods">payment method
/// settings
.
/// One of: affirm, afterpay_clearpay, alipay, alma,
- /// au_becs_debit, bacs_debit, bancontact, blik, boleto,
- /// card, cashapp, eps, fpx, giropay, gopay,
- /// grabpay, ideal, klarna, konbini, link, mb_way,
- /// mobilepay, multibanco, oxxo, p24, pay_by_bank,
- /// paynow, paypal, payto, pix, promptpay, qris,
- /// rechnung, sepa_debit, shopeepay, sofort, swish,
- /// twint, us_bank_account, wechat_pay, or zip.
+ /// au_becs_debit, bacs_debit, bancontact, billie, blik,
+ /// boleto, card, cashapp, eps, fpx, giropay,
+ /// gopay, grabpay, ideal, klarna, konbini, link,
+ /// mb_way, mobilepay, multibanco, oxxo, p24,
+ /// pay_by_bank, paynow, paypal, payto, pix,
+ /// promptpay, qris, rechnung, satispay, sepa_debit,
+ /// shopeepay, sofort, swish, twint, us_bank_account,
+ /// wechat_pay, or zip.
///
[JsonProperty("payment_method_types")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldDropdown.cs b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldDropdown.cs
index 3b500bc991..cdbd358759 100644
--- a/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldDropdown.cs
+++ b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldDropdown.cs
@@ -9,6 +9,15 @@ namespace Stripe
public class PaymentLinkCustomFieldDropdown : StripeEntity
{
+ ///
+ /// The value that will pre-fill on the payment page.
+ ///
+ [JsonProperty("default_value")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("default_value")]
+#endif
+ public string DefaultValue { get; set; }
+
///
/// The options available for the customer to select. Up to 200 options allowed.
///
diff --git a/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldNumeric.cs b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldNumeric.cs
index e1240d901b..9a5d6255eb 100644
--- a/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldNumeric.cs
+++ b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldNumeric.cs
@@ -8,6 +8,15 @@ namespace Stripe
public class PaymentLinkCustomFieldNumeric : StripeEntity
{
+ ///
+ /// The value that will pre-fill the field on the payment page.
+ ///
+ [JsonProperty("default_value")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("default_value")]
+#endif
+ public string DefaultValue { get; set; }
+
///
/// The maximum character length constraint for the customer's input.
///
diff --git a/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldText.cs b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldText.cs
index 83a80e3888..94c0ac3f92 100644
--- a/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldText.cs
+++ b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkCustomFieldText.cs
@@ -8,6 +8,15 @@ namespace Stripe
public class PaymentLinkCustomFieldText : StripeEntity
{
+ ///
+ /// The value that will pre-fill the field on the payment page.
+ ///
+ [JsonProperty("default_value")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("default_value")]
+#endif
+ public string DefaultValue { get; set; }
+
///
/// The maximum character length constraint for the customer's input.
///
diff --git a/src/Stripe.net/Entities/PaymentLinks/PaymentLinkOptionalItem.cs b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkOptionalItem.cs
new file mode 100644
index 0000000000..c4ef47c599
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkOptionalItem.cs
@@ -0,0 +1,29 @@
+// 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 PaymentLinkOptionalItem : StripeEntity
+ {
+ [JsonProperty("adjustable_quantity")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("adjustable_quantity")]
+#endif
+ public PaymentLinkOptionalItemAdjustableQuantity AdjustableQuantity { get; set; }
+
+ [JsonProperty("price")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("price")]
+#endif
+ public string Price { get; set; }
+
+ [JsonProperty("quantity")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("quantity")]
+#endif
+ public long Quantity { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentLinks/PaymentLinkOptionalItemAdjustableQuantity.cs b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkOptionalItemAdjustableQuantity.cs
new file mode 100644
index 0000000000..fe8904a680
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkOptionalItemAdjustableQuantity.cs
@@ -0,0 +1,42 @@
+// 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 PaymentLinkOptionalItemAdjustableQuantity : StripeEntity
+ {
+ ///
+ /// Set to true if the quantity can be adjusted to any non-negative integer.
+ ///
+ [JsonProperty("enabled")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("enabled")]
+#endif
+ public bool Enabled { get; set; }
+
+ ///
+ /// The maximum quantity of this item the customer can purchase. By default this value is
+ /// 99.
+ ///
+ [JsonProperty("maximum")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("maximum")]
+#endif
+ public long? Maximum { get; set; }
+
+ ///
+ /// The minimum quantity of this item the customer must purchase, if they choose to purchase
+ /// it. Because this item is optional, the customer will always be able to remove it from
+ /// their order, even if the minimum configured here is greater than 0. By default
+ /// this value is 0.
+ ///
+ [JsonProperty("minimum")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("minimum")]
+#endif
+ public long? Minimum { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfiguration.cs b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfiguration.cs
index b97b528542..5ecd7369da 100644
--- a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfiguration.cs
+++ b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfiguration.cs
@@ -134,6 +134,12 @@ public class PaymentMethodConfiguration : StripeEntity
+ {
+ ///
+ /// Whether this payment method may be offered at checkout. True if
+ /// display_preference is on and the payment method's capability is active.
+ ///
+ [JsonProperty("available")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("available")]
+#endif
+ public bool Available { get; set; }
+
+ [JsonProperty("display_preference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("display_preference")]
+#endif
+ public PaymentMethodConfigurationBillieDisplayPreference DisplayPreference { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationBillieDisplayPreference.cs b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationBillieDisplayPreference.cs
new file mode 100644
index 0000000000..4bcc8aaccc
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationBillieDisplayPreference.cs
@@ -0,0 +1,41 @@
+// 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 PaymentMethodConfigurationBillieDisplayPreference : StripeEntity
+ {
+ ///
+ /// For child configs, whether or not the account's preference will be observed. If
+ /// false, the parent configuration's default is used.
+ ///
+ [JsonProperty("overridable")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("overridable")]
+#endif
+ public bool? Overridable { get; set; }
+
+ ///
+ /// The account's display preference.
+ /// One of: none, off, or on.
+ ///
+ [JsonProperty("preference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preference")]
+#endif
+ public string Preference { get; set; }
+
+ ///
+ /// The effective display preference value.
+ /// One of: off, or on.
+ ///
+ [JsonProperty("value")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("value")]
+#endif
+ public string Value { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationNzBankAccount.cs b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationNzBankAccount.cs
new file mode 100644
index 0000000000..2c7b79879d
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationNzBankAccount.cs
@@ -0,0 +1,27 @@
+// 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 PaymentMethodConfigurationNzBankAccount : StripeEntity
+ {
+ ///
+ /// Whether this payment method may be offered at checkout. True if
+ /// display_preference is on and the payment method's capability is active.
+ ///
+ [JsonProperty("available")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("available")]
+#endif
+ public bool Available { get; set; }
+
+ [JsonProperty("display_preference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("display_preference")]
+#endif
+ public PaymentMethodConfigurationNzBankAccountDisplayPreference DisplayPreference { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationNzBankAccountDisplayPreference.cs b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationNzBankAccountDisplayPreference.cs
new file mode 100644
index 0000000000..cc974a78b8
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationNzBankAccountDisplayPreference.cs
@@ -0,0 +1,41 @@
+// 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 PaymentMethodConfigurationNzBankAccountDisplayPreference : StripeEntity
+ {
+ ///
+ /// For child configs, whether or not the account's preference will be observed. If
+ /// false, the parent configuration's default is used.
+ ///
+ [JsonProperty("overridable")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("overridable")]
+#endif
+ public bool? Overridable { get; set; }
+
+ ///
+ /// The account's display preference.
+ /// One of: none, off, or on.
+ ///
+ [JsonProperty("preference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preference")]
+#endif
+ public string Preference { get; set; }
+
+ ///
+ /// The effective display preference value.
+ /// One of: off, or on.
+ ///
+ [JsonProperty("value")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("value")]
+#endif
+ public string Value { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationSatispay.cs b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationSatispay.cs
new file mode 100644
index 0000000000..266f906bd9
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationSatispay.cs
@@ -0,0 +1,27 @@
+// 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 PaymentMethodConfigurationSatispay : StripeEntity
+ {
+ ///
+ /// Whether this payment method may be offered at checkout. True if
+ /// display_preference is on and the payment method's capability is active.
+ ///
+ [JsonProperty("available")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("available")]
+#endif
+ public bool Available { get; set; }
+
+ [JsonProperty("display_preference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("display_preference")]
+#endif
+ public PaymentMethodConfigurationSatispayDisplayPreference DisplayPreference { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationSatispayDisplayPreference.cs b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationSatispayDisplayPreference.cs
new file mode 100644
index 0000000000..151838dbf2
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationSatispayDisplayPreference.cs
@@ -0,0 +1,41 @@
+// 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 PaymentMethodConfigurationSatispayDisplayPreference : StripeEntity
+ {
+ ///
+ /// For child configs, whether or not the account's preference will be observed. If
+ /// false, the parent configuration's default is used.
+ ///
+ [JsonProperty("overridable")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("overridable")]
+#endif
+ public bool? Overridable { get; set; }
+
+ ///
+ /// The account's display preference.
+ /// One of: none, off, or on.
+ ///
+ [JsonProperty("preference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preference")]
+#endif
+ public string Preference { get; set; }
+
+ ///
+ /// The effective display preference value.
+ /// One of: off, or on.
+ ///
+ [JsonProperty("value")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("value")]
+#endif
+ public string Value { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs
index 865a0e2982..728e899967 100644
--- a/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs
+++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs
@@ -109,6 +109,12 @@ public class PaymentMethod : StripeEntity, IHasId, IHasMetadata,
#endif
public PaymentMethodBancontact Bancontact { get; set; }
+ [JsonProperty("billie")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("billie")]
+#endif
+ public PaymentMethodBillie Billie { get; set; }
+
[JsonProperty("billing_details")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("billing_details")]
@@ -328,6 +334,12 @@ public Customer Customer
#endif
public PaymentMethodNaverPay NaverPay { get; set; }
+ [JsonProperty("nz_bank_account")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("nz_bank_account")]
+#endif
+ public PaymentMethodNzBankAccount NzBankAccount { get; set; }
+
[JsonProperty("oxxo")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("oxxo")]
@@ -417,6 +429,12 @@ public Customer Customer
#endif
public PaymentMethodSamsungPay SamsungPay { get; set; }
+ [JsonProperty("satispay")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("satispay")]
+#endif
+ public PaymentMethodSatispay Satispay { get; set; }
+
[JsonProperty("sepa_debit")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("sepa_debit")]
@@ -453,16 +471,16 @@ public Customer Customer
/// PaymentMethod type.
/// One of: acss_debit, affirm, afterpay_clearpay, alipay,
/// alma, amazon_pay, au_becs_debit, bacs_debit,
- /// bancontact, blik, boleto, card, card_present,
- /// cashapp, customer_balance, eps, fpx, giropay,
- /// gopay, grabpay, id_bank_transfer, ideal,
+ /// bancontact, billie, blik, boleto, card,
+ /// card_present, cashapp, customer_balance, eps, fpx,
+ /// giropay, gopay, grabpay, id_bank_transfer, ideal,
/// interac_present, kakao_pay, klarna, konbini, kr_card,
/// link, mb_way, mobilepay, multibanco, naver_pay,
- /// oxxo, p24, pay_by_bank, payco, paynow, paypal,
- /// payto, pix, promptpay, qris, rechnung,
- /// revolut_pay, samsung_pay, sepa_debit, shopeepay,
- /// sofort, swish, twint, us_bank_account, wechat_pay, or
- /// zip.
+ /// nz_bank_account, oxxo, p24, pay_by_bank, payco,
+ /// paynow, paypal, payto, pix, promptpay, qris,
+ /// rechnung, revolut_pay, samsung_pay, satispay,
+ /// sepa_debit, shopeepay, sofort, swish, twint,
+ /// us_bank_account, wechat_pay, or zip.
///
[JsonProperty("type")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodBillie.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodBillie.cs
new file mode 100644
index 0000000000..165dcc8eb5
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodBillie.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentMethodBillie : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodNaverPay.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodNaverPay.cs
index 6f2b2c1fc0..352195262a 100644
--- a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodNaverPay.cs
+++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodNaverPay.cs
@@ -8,6 +8,16 @@ namespace Stripe
public class PaymentMethodNaverPay : StripeEntity
{
+ ///
+ /// Uniquely identifies this particular Naver Pay account. You can use this attribute to
+ /// check whether two Naver Pay accounts are the same.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+
///
/// Whether to fund this transaction with Naver Pay points or a card.
/// One of: card, or points.
diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodNzBankAccount.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodNzBankAccount.cs
new file mode 100644
index 0000000000..435f4ad29d
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodNzBankAccount.cs
@@ -0,0 +1,66 @@
+// 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 PaymentMethodNzBankAccount : StripeEntity
+ {
+ ///
+ /// The name on the bank account. Only present if the account holder name is different from
+ /// the name of the authorized signatory collected in the PaymentMethod’s billing details.
+ ///
+ [JsonProperty("account_holder_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_holder_name")]
+#endif
+ public string AccountHolderName { get; set; }
+
+ ///
+ /// The numeric code for the bank account's bank.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// The name of the bank.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// The numeric code for the bank account's bank branch.
+ ///
+ [JsonProperty("branch_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("branch_code")]
+#endif
+ public string BranchCode { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// The suffix of the bank account number.
+ ///
+ [JsonProperty("suffix")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("suffix")]
+#endif
+ public string Suffix { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodSatispay.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodSatispay.cs
new file mode 100644
index 0000000000..08005bd0d1
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodSatispay.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentMethodSatispay : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetails.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetails.cs
index 201a91d801..e870761892 100644
--- a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetails.cs
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetails.cs
@@ -8,6 +8,78 @@ namespace Stripe
public class PaymentRecordPaymentMethodDetails : StripeEntity
{
+ [JsonProperty("ach_credit_transfer")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ach_credit_transfer")]
+#endif
+ public PaymentRecordPaymentMethodDetailsAchCreditTransfer AchCreditTransfer { get; set; }
+
+ [JsonProperty("ach_debit")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ach_debit")]
+#endif
+ public PaymentRecordPaymentMethodDetailsAchDebit AchDebit { get; set; }
+
+ [JsonProperty("acss_debit")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("acss_debit")]
+#endif
+ public PaymentRecordPaymentMethodDetailsAcssDebit AcssDebit { get; set; }
+
+ [JsonProperty("affirm")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("affirm")]
+#endif
+ public PaymentRecordPaymentMethodDetailsAffirm Affirm { get; set; }
+
+ [JsonProperty("afterpay_clearpay")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("afterpay_clearpay")]
+#endif
+ public PaymentRecordPaymentMethodDetailsAfterpayClearpay AfterpayClearpay { get; set; }
+
+ [JsonProperty("alipay")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("alipay")]
+#endif
+ public PaymentRecordPaymentMethodDetailsAlipay Alipay { get; set; }
+
+ [JsonProperty("alma")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("alma")]
+#endif
+ public PaymentRecordPaymentMethodDetailsAlma Alma { get; set; }
+
+ [JsonProperty("amazon_pay")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("amazon_pay")]
+#endif
+ public PaymentRecordPaymentMethodDetailsAmazonPay AmazonPay { get; set; }
+
+ [JsonProperty("au_becs_debit")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("au_becs_debit")]
+#endif
+ public PaymentRecordPaymentMethodDetailsAuBecsDebit AuBecsDebit { get; set; }
+
+ [JsonProperty("bacs_debit")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bacs_debit")]
+#endif
+ public PaymentRecordPaymentMethodDetailsBacsDebit BacsDebit { get; set; }
+
+ [JsonProperty("bancontact")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bancontact")]
+#endif
+ public PaymentRecordPaymentMethodDetailsBancontact Bancontact { get; set; }
+
+ [JsonProperty("billie")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("billie")]
+#endif
+ public PaymentRecordPaymentMethodDetailsBillie Billie { get; set; }
+
///
/// The billing details associated with the method of payment.
///
@@ -17,8 +89,43 @@ public class PaymentRecordPaymentMethodDetails : StripeEntity
- /// Information about the custom (user-defined) payment method used to make this payment.
+ /// Details of the card used for this payment attempt.
+ ///
+ [JsonProperty("card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card")]
+#endif
+ public PaymentRecordPaymentMethodDetailsCard Card { get; set; }
+
+ [JsonProperty("card_present")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card_present")]
+#endif
+ public PaymentRecordPaymentMethodDetailsCardPresent CardPresent { get; set; }
+
+ [JsonProperty("cashapp")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cashapp")]
+#endif
+ public PaymentRecordPaymentMethodDetailsCashapp Cashapp { get; set; }
+
+ ///
+ /// Custom Payment Methods represent Payment Method types not modeled directly in the Stripe
+ /// API. This resource consists of details about the custom payment method used for this
+ /// payment attempt.
///
[JsonProperty("custom")]
#if NET6_0_OR_GREATER
@@ -26,6 +133,144 @@ public class PaymentRecordPaymentMethodDetails : StripeEntity
/// ID of the Stripe PaymentMethod used to make this payment.
///
@@ -35,13 +280,144 @@ public class PaymentRecordPaymentMethodDetails : StripeEntity
- /// The type of Payment Method used for this payment attempt.
+ /// The type of transaction-specific details of the payment method used in the payment. See
+ /// PaymentMethod.type
+ /// for the full list of possible types. An additional hash is included on
+ /// payment_method_details with a name matching this value. It contains information
+ /// specific to the payment method.
///
[JsonProperty("type")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("type")]
#endif
public string Type { get; set; }
+
+ [JsonProperty("us_bank_account")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("us_bank_account")]
+#endif
+ public PaymentRecordPaymentMethodDetailsUsBankAccount UsBankAccount { get; set; }
+
+ [JsonProperty("wechat")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("wechat")]
+#endif
+ public PaymentRecordPaymentMethodDetailsWechat Wechat { get; set; }
+
+ [JsonProperty("wechat_pay")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("wechat_pay")]
+#endif
+ public PaymentRecordPaymentMethodDetailsWechatPay WechatPay { get; set; }
+
+ [JsonProperty("zip")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("zip")]
+#endif
+ public PaymentRecordPaymentMethodDetailsZip Zip { get; set; }
}
}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchCreditTransfer.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchCreditTransfer.cs
new file mode 100644
index 0000000000..99f60b5820
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchCreditTransfer.cs
@@ -0,0 +1,47 @@
+// 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 PaymentRecordPaymentMethodDetailsAchCreditTransfer : StripeEntity
+ {
+ ///
+ /// Account number to transfer funds to.
+ ///
+ [JsonProperty("account_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_number")]
+#endif
+ public string AccountNumber { get; set; }
+
+ ///
+ /// Name of the bank associated with the routing number.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Routing transit number for the bank account to transfer funds to.
+ ///
+ [JsonProperty("routing_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("routing_number")]
+#endif
+ public string RoutingNumber { get; set; }
+
+ ///
+ /// SWIFT code of the bank associated with the routing number.
+ ///
+ [JsonProperty("swift_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("swift_code")]
+#endif
+ public string SwiftCode { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchDebit.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchDebit.cs
new file mode 100644
index 0000000000..efb89567a4
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchDebit.cs
@@ -0,0 +1,68 @@
+// 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 PaymentRecordPaymentMethodDetailsAchDebit : StripeEntity
+ {
+ ///
+ /// Type of entity that holds the account. This can be either individual or
+ /// company.
+ /// One of: company, or individual.
+ ///
+ [JsonProperty("account_holder_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_holder_type")]
+#endif
+ public string AccountHolderType { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country the bank account is located in.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// Routing transit number of the bank account.
+ ///
+ [JsonProperty("routing_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("routing_number")]
+#endif
+ public string RoutingNumber { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAcssDebit.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAcssDebit.cs
new file mode 100644
index 0000000000..ca434c17bc
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAcssDebit.cs
@@ -0,0 +1,66 @@
+// 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 PaymentRecordPaymentMethodDetailsAcssDebit : StripeEntity
+ {
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Institution number of the bank account.
+ ///
+ [JsonProperty("institution_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("institution_number")]
+#endif
+ public string InstitutionNumber { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// ID of the mandate used to make this payment.
+ ///
+ [JsonProperty("mandate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+#endif
+ public string Mandate { get; set; }
+
+ ///
+ /// Transit number of the bank account.
+ ///
+ [JsonProperty("transit_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transit_number")]
+#endif
+ public string TransitNumber { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAffirm.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAffirm.cs
new file mode 100644
index 0000000000..0d6c0c2ca3
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAffirm.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsAffirm : StripeEntity
+ {
+ ///
+ /// The Affirm transaction ID associated with this payment.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAfterpayClearpay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAfterpayClearpay.cs
new file mode 100644
index 0000000000..e1c30446be
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAfterpayClearpay.cs
@@ -0,0 +1,29 @@
+// 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 PaymentRecordPaymentMethodDetailsAfterpayClearpay : StripeEntity
+ {
+ ///
+ /// The Afterpay order ID associated with this payment intent.
+ ///
+ [JsonProperty("order_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("order_id")]
+#endif
+ public string OrderId { get; set; }
+
+ ///
+ /// Order identifier shown to the merchant in Afterpay’s online portal.
+ ///
+ [JsonProperty("reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("reference")]
+#endif
+ public string Reference { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlipay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlipay.cs
new file mode 100644
index 0000000000..d08602e53b
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlipay.cs
@@ -0,0 +1,40 @@
+// 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 PaymentRecordPaymentMethodDetailsAlipay : StripeEntity
+ {
+ ///
+ /// Uniquely identifies this particular Alipay account. You can use this attribute to check
+ /// whether two Alipay accounts are the same.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+
+ ///
+ /// Uniquely identifies this particular Alipay account. You can use this attribute to check
+ /// whether two Alipay accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Transaction ID of this particular Alipay transaction.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlma.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlma.cs
new file mode 100644
index 0000000000..2ec41d24b3
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlma.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsAlma : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPay.cs
new file mode 100644
index 0000000000..ba5dabed61
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPay.cs
@@ -0,0 +1,17 @@
+// 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 PaymentRecordPaymentMethodDetailsAmazonPay : StripeEntity
+ {
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public PaymentRecordPaymentMethodDetailsAmazonPayFunding Funding { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFunding.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFunding.cs
new file mode 100644
index 0000000000..c318a8ffe6
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFunding.cs
@@ -0,0 +1,26 @@
+// 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 PaymentRecordPaymentMethodDetailsAmazonPayFunding : StripeEntity
+ {
+ [JsonProperty("card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card")]
+#endif
+ public PaymentRecordPaymentMethodDetailsAmazonPayFundingCard Card { get; set; }
+
+ ///
+ /// funding type of the underlying payment method.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFundingCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFundingCard.cs
new file mode 100644
index 0000000000..2f5810d437
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFundingCard.cs
@@ -0,0 +1,80 @@
+// 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 PaymentRecordPaymentMethodDetailsAmazonPayFundingCard : StripeEntity
+ {
+ ///
+ /// Card brand. Can be amex, diners, discover, eftpos_au,
+ /// jcb, link, mastercard, unionpay, visa, or
+ /// unknown.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// The product code that
+ /// identifies the specific program or product associated with a card. (For internal use
+ /// only and not typically available in standard API requests.).
+ ///
+ [JsonProperty("brand_product")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand_product")]
+#endif
+ public string BrandProduct { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card. You could use this attribute
+ /// to get a sense of the international breakdown of cards you've collected.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Two-digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long? ExpMonth { get; set; }
+
+ ///
+ /// Four-digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long? ExpYear { get; set; }
+
+ ///
+ /// Card funding type. Can be credit, debit, prepaid, or
+ /// unknown.
+ ///
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public string Funding { get; set; }
+
+ ///
+ /// The last four digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAuBecsDebit.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAuBecsDebit.cs
new file mode 100644
index 0000000000..95b26055d9
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAuBecsDebit.cs
@@ -0,0 +1,48 @@
+// 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 PaymentRecordPaymentMethodDetailsAuBecsDebit : StripeEntity
+ {
+ ///
+ /// Bank-State-Branch number of the bank account.
+ ///
+ [JsonProperty("bsb_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bsb_number")]
+#endif
+ public string BsbNumber { get; set; }
+
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// ID of the mandate used to make this payment.
+ ///
+ [JsonProperty("mandate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+#endif
+ public string Mandate { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBacsDebit.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBacsDebit.cs
new file mode 100644
index 0000000000..e54a9497ba
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBacsDebit.cs
@@ -0,0 +1,48 @@
+// 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 PaymentRecordPaymentMethodDetailsBacsDebit : StripeEntity
+ {
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// ID of the mandate used to make this payment.
+ ///
+ [JsonProperty("mandate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+#endif
+ public string Mandate { get; set; }
+
+ ///
+ /// Sort code of the bank account. (e.g., 10-20-30).
+ ///
+ [JsonProperty("sort_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("sort_code")]
+#endif
+ public string SortCode { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBancontact.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBancontact.cs
new file mode 100644
index 0000000000..cb77ac39d1
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBancontact.cs
@@ -0,0 +1,154 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+#if NET6_0_OR_GREATER
+ [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
+#endif
+ public class PaymentRecordPaymentMethodDetailsBancontact : StripeEntity
+ {
+ ///
+ /// Bank code of bank associated with the bank account.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Bank Identifier Code of the bank associated with the bank account.
+ ///
+ [JsonProperty("bic")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bic")]
+#endif
+ public string Bic { get; set; }
+
+ #region Expandable GeneratedSepaDebit
+
+ ///
+ /// (ID of the PaymentMethod)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitId
+ {
+ get => this.InternalGeneratedSepaDebit?.Id;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit);
+ }
+
+ ///
+ /// (Expanded)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public PaymentMethod GeneratedSepaDebit
+ {
+ get => this.InternalGeneratedSepaDebit?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit);
+ }
+
+ [JsonProperty("generated_sepa_debit")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebit { get; set; }
+ #endregion
+
+ #region Expandable GeneratedSepaDebitMandate
+
+ ///
+ /// (ID of the Mandate)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitMandateId
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.Id;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ ///
+ /// (Expanded)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public Mandate GeneratedSepaDebitMandate
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ [JsonProperty("generated_sepa_debit_mandate")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit_mandate")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; }
+ #endregion
+
+ ///
+ /// Last four characters of the IBAN.
+ ///
+ [JsonProperty("iban_last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iban_last4")]
+#endif
+ public string IbanLast4 { get; set; }
+
+ ///
+ /// Preferred language of the Bancontact authorization page that the customer is redirected
+ /// to. Can be one of en, de, fr, or nl.
+ /// One of: de, en, fr, or nl.
+ ///
+ [JsonProperty("preferred_language")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preferred_language")]
+#endif
+ public string PreferredLanguage { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by Bancontact directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillie.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillie.cs
new file mode 100644
index 0000000000..a118f5ed39
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillie.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsBillie : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBlik.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBlik.cs
new file mode 100644
index 0000000000..fbfbb8fdcd
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBlik.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsBlik : StripeEntity
+ {
+ ///
+ /// A unique and immutable identifier assigned by BLIK to every buyer.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBoleto.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBoleto.cs
new file mode 100644
index 0000000000..d4f4c36823
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBoleto.cs
@@ -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 PaymentRecordPaymentMethodDetailsBoleto : StripeEntity
+ {
+ ///
+ /// The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses
+ /// consumers).
+ ///
+ [JsonProperty("tax_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_id")]
+#endif
+ public string TaxId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCard.cs
new file mode 100644
index 0000000000..8174517c14
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCard.cs
@@ -0,0 +1,166 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using System;
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class PaymentRecordPaymentMethodDetailsCard : StripeEntity
+ {
+ ///
+ /// Card brand. Can be amex, diners, discover, eftpos_au,
+ /// jcb, link, mastercard, unionpay, visa, or
+ /// unknown.
+ /// One of: amex, cartes_bancaires, diners, discover,
+ /// eftpos_au, interac, jcb, link, mastercard,
+ /// unionpay, unknown, or visa.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// When using manual capture, a future timestamp at which the charge will be automatically
+ /// refunded if uncaptured.
+ ///
+ [JsonProperty("capture_before")]
+ [JsonConverter(typeof(UnixDateTimeConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("capture_before")]
+ [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
+#endif
+ public DateTime CaptureBefore { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
+
+ ///
+ /// Check results by Card networks on Card address and CVC at time of payment.
+ ///
+ [JsonProperty("checks")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("checks")]
+#endif
+ public PaymentRecordPaymentMethodDetailsCardChecks Checks { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card. You could use this attribute
+ /// to get a sense of the international breakdown of cards you've collected.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Two-digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long ExpMonth { get; set; }
+
+ ///
+ /// Four-digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long ExpYear { get; set; }
+
+ ///
+ /// Uniquely identifies this particular card number. You can use this attribute to check
+ /// whether two customers who’ve signed up with you are using the same card number, for
+ /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
+ /// tokenized number might be provided instead of the underlying card number.
+ ///
+ /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ /// fingerprints for the same card---one for India and one for the rest of the world..
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Card funding type. Can be credit, debit, prepaid, or
+ /// unknown.
+ /// One of: credit, debit, prepaid, or unknown.
+ ///
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public string Funding { get; set; }
+
+ ///
+ /// The last four digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// True if this payment was marked as MOTO and out of scope for SCA.
+ ///
+ [JsonProperty("moto")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("moto")]
+#endif
+ public bool Moto { get; set; }
+
+ ///
+ /// Identifies which network this charge was processed on. Can be amex,
+ /// cartes_bancaires, diners, discover, eftpos_au,
+ /// interac, jcb, link, mastercard, unionpay,
+ /// visa, or unknown.
+ /// One of: amex, cartes_bancaires, diners, discover,
+ /// eftpos_au, interac, jcb, link, mastercard,
+ /// unionpay, unknown, or visa.
+ ///
+ [JsonProperty("network")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network")]
+#endif
+ public string Network { get; set; }
+
+ ///
+ /// If this card has network token credentials, this contains the details of the network
+ /// token credentials.
+ ///
+ [JsonProperty("network_token")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network_token")]
+#endif
+ public PaymentRecordPaymentMethodDetailsCardNetworkToken NetworkToken { get; set; }
+
+ ///
+ /// This is used by the financial networks to identify a transaction. Visa calls this the
+ /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ /// Acquirer Reference Data. This value will be present if it is returned by the financial
+ /// network in the authorization response, and null otherwise.
+ ///
+ [JsonProperty("network_transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network_transaction_id")]
+#endif
+ public string NetworkTransactionId { get; set; }
+
+ ///
+ /// Populated if this transaction used 3D Secure authentication.
+ ///
+ [JsonProperty("three_d_secure")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("three_d_secure")]
+#endif
+ public PaymentRecordPaymentMethodDetailsCardThreeDSecure ThreeDSecure { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardChecks.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardChecks.cs
new file mode 100644
index 0000000000..27f6964fcf
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardChecks.cs
@@ -0,0 +1,38 @@
+// 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 PaymentRecordPaymentMethodDetailsCardChecks : StripeEntity
+ {
+ ///
+ /// One of: fail, pass, unavailable, or unchecked.
+ ///
+ [JsonProperty("address_line1_check")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("address_line1_check")]
+#endif
+ public string AddressLine1Check { get; set; }
+
+ ///
+ /// One of: fail, pass, unavailable, or unchecked.
+ ///
+ [JsonProperty("address_postal_code_check")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("address_postal_code_check")]
+#endif
+ public string AddressPostalCodeCheck { get; set; }
+
+ ///
+ /// One of: fail, pass, unavailable, or unchecked.
+ ///
+ [JsonProperty("cvc_check")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cvc_check")]
+#endif
+ public string CvcCheck { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardNetworkToken.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardNetworkToken.cs
new file mode 100644
index 0000000000..07b6eff630
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardNetworkToken.cs
@@ -0,0 +1,17 @@
+// 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 PaymentRecordPaymentMethodDetailsCardNetworkToken : StripeEntity
+ {
+ [JsonProperty("used")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("used")]
+#endif
+ public bool Used { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresent.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresent.cs
new file mode 100644
index 0000000000..dff63b447a
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresent.cs
@@ -0,0 +1,271 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ 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 PaymentRecordPaymentMethodDetailsCardPresent : StripeEntity
+ {
+ ///
+ /// The authorized amount.
+ ///
+ [JsonProperty("amount_authorized")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("amount_authorized")]
+#endif
+ public long? AmountAuthorized { get; set; }
+
+ ///
+ /// Card brand. Can be amex, diners, discover, eftpos_au,
+ /// jcb, link, mastercard, unionpay, visa, or
+ /// unknown.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// The product code that
+ /// identifies the specific program or product associated with a card.
+ ///
+ [JsonProperty("brand_product")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand_product")]
+#endif
+ public string BrandProduct { get; set; }
+
+ ///
+ /// When using manual capture, a future timestamp after which the charge will be
+ /// automatically refunded if uncaptured.
+ ///
+ [JsonProperty("capture_before")]
+ [JsonConverter(typeof(UnixDateTimeConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("capture_before")]
+ [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
+#endif
+ public DateTime CaptureBefore { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
+
+ ///
+ /// The cardholder name as read from the card, in ISO 7813 format. May include
+ /// alphanumeric characters, special characters and first/last name separator (/). In
+ /// some cases, the cardholder name may not be available depending on how the issuer has
+ /// configured the card. Cardholder name is typically not available on swipe or contactless
+ /// payments, such as those made with Apple Pay and Google Pay.
+ ///
+ [JsonProperty("cardholder_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cardholder_name")]
+#endif
+ public string CardholderName { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card. You could use this attribute
+ /// to get a sense of the international breakdown of cards you've collected.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// A high-level description of the type of cards issued in this range. (For internal use
+ /// only and not typically available in standard API requests.).
+ ///
+ [JsonProperty("description")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("description")]
+#endif
+ public string Description { get; set; }
+
+ ///
+ /// Authorization response cryptogram.
+ ///
+ [JsonProperty("emv_auth_data")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("emv_auth_data")]
+#endif
+ public string EmvAuthData { get; set; }
+
+ ///
+ /// Two-digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long ExpMonth { get; set; }
+
+ ///
+ /// Four-digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long ExpYear { get; set; }
+
+ ///
+ /// Uniquely identifies this particular card number. You can use this attribute to check
+ /// whether two customers who’ve signed up with you are using the same card number, for
+ /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
+ /// tokenized number might be provided instead of the underlying card number.
+ ///
+ /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ /// fingerprints for the same card---one for India and one for the rest of the world..
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Card funding type. Can be credit, debit, prepaid, or
+ /// unknown.
+ ///
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public string Funding { get; set; }
+
+ ///
+ /// ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
+ /// attached to a Customer for future transactions. Only present if it was possible to
+ /// generate a card PaymentMethod.
+ ///
+ [JsonProperty("generated_card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_card")]
+#endif
+ public string GeneratedCard { get; set; }
+
+ ///
+ /// Issuer identification number of the card. (For internal use only and not typically
+ /// available in standard API requests.).
+ ///
+ [JsonProperty("iin")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iin")]
+#endif
+ public string Iin { get; set; }
+
+ ///
+ /// Whether this PaymentIntent is
+ /// eligible for incremental authorizations. Request support using request_incremental_authorization_support.
+ ///
+ [JsonProperty("incremental_authorization_supported")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("incremental_authorization_supported")]
+#endif
+ public bool IncrementalAuthorizationSupported { get; set; }
+
+ ///
+ /// The name of the card's issuing bank. (For internal use only and not typically available
+ /// in standard API requests.).
+ ///
+ [JsonProperty("issuer")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("issuer")]
+#endif
+ public string Issuer { get; set; }
+
+ ///
+ /// The last four digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// Identifies which network this charge was processed on. Can be amex,
+ /// cartes_bancaires, diners, discover, eftpos_au,
+ /// interac, jcb, link, mastercard, unionpay,
+ /// visa, or unknown.
+ ///
+ [JsonProperty("network")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network")]
+#endif
+ public string Network { get; set; }
+
+ ///
+ /// This is used by the financial networks to identify a transaction. Visa calls this the
+ /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ /// Acquirer Reference Data. This value will be present if it is returned by the financial
+ /// network in the authorization response, and null otherwise.
+ ///
+ [JsonProperty("network_transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network_transaction_id")]
+#endif
+ public string NetworkTransactionId { get; set; }
+
+ ///
+ /// Details about payments collected offline.
+ ///
+ [JsonProperty("offline")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("offline")]
+#endif
+ public PaymentRecordPaymentMethodDetailsCardPresentOffline Offline { get; set; }
+
+ ///
+ /// Defines whether the authorized amount can be over-captured or not.
+ ///
+ [JsonProperty("overcapture_supported")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("overcapture_supported")]
+#endif
+ public bool OvercaptureSupported { get; set; }
+
+ ///
+ /// EMV tag 5F2D. Preferred languages specified by the integrated circuit chip.
+ ///
+ [JsonProperty("preferred_locales")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preferred_locales")]
+#endif
+ public List PreferredLocales { get; set; }
+
+ ///
+ /// How card details were read in this transaction.
+ /// One of: contact_emv, contactless_emv, contactless_magstripe_mode,
+ /// magnetic_stripe_fallback, or magnetic_stripe_track2.
+ ///
+ [JsonProperty("read_method")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("read_method")]
+#endif
+ public string ReadMethod { get; set; }
+
+ ///
+ /// A collection of fields required to be displayed on receipts. Only required for EMV
+ /// transactions.
+ ///
+ [JsonProperty("receipt")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("receipt")]
+#endif
+ public PaymentRecordPaymentMethodDetailsCardPresentReceipt Receipt { get; set; }
+
+ [JsonProperty("wallet")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("wallet")]
+#endif
+ public PaymentRecordPaymentMethodDetailsCardPresentWallet Wallet { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentOffline.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentOffline.cs
new file mode 100644
index 0000000000..54129ab8cb
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentOffline.cs
@@ -0,0 +1,33 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using System;
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class PaymentRecordPaymentMethodDetailsCardPresentOffline : StripeEntity
+ {
+ ///
+ /// Time at which the payment was collected while offline.
+ ///
+ [JsonProperty("stored_at")]
+ [JsonConverter(typeof(UnixDateTimeConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("stored_at")]
+ [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
+#endif
+ public DateTime? StoredAt { get; set; }
+
+ ///
+ /// The method used to process this payment method offline. Only deferred is allowed.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentReceipt.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentReceipt.cs
new file mode 100644
index 0000000000..5663517ece
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentReceipt.cs
@@ -0,0 +1,95 @@
+// 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 PaymentRecordPaymentMethodDetailsCardPresentReceipt : StripeEntity
+ {
+ ///
+ /// The type of account being debited or credited.
+ /// One of: checking, credit, prepaid, or unknown.
+ ///
+ [JsonProperty("account_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_type")]
+#endif
+ public string AccountType { get; set; }
+
+ ///
+ /// EMV tag 9F26, cryptogram generated by the integrated circuit chip.
+ ///
+ [JsonProperty("application_cryptogram")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("application_cryptogram")]
+#endif
+ public string ApplicationCryptogram { get; set; }
+
+ ///
+ /// Mnenomic of the Application Identifier.
+ ///
+ [JsonProperty("application_preferred_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("application_preferred_name")]
+#endif
+ public string ApplicationPreferredName { get; set; }
+
+ ///
+ /// Identifier for this transaction.
+ ///
+ [JsonProperty("authorization_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("authorization_code")]
+#endif
+ public string AuthorizationCode { get; set; }
+
+ ///
+ /// EMV tag 8A. A code returned by the card issuer.
+ ///
+ [JsonProperty("authorization_response_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("authorization_response_code")]
+#endif
+ public string AuthorizationResponseCode { get; set; }
+
+ ///
+ /// Describes the method used by the cardholder to verify ownership of the card. One of the
+ /// following: approval, failure, none, offline_pin,
+ /// offline_pin_and_signature, online_pin, or signature.
+ ///
+ [JsonProperty("cardholder_verification_method")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cardholder_verification_method")]
+#endif
+ public string CardholderVerificationMethod { get; set; }
+
+ ///
+ /// EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
+ ///
+ [JsonProperty("dedicated_file_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("dedicated_file_name")]
+#endif
+ public string DedicatedFileName { get; set; }
+
+ ///
+ /// The outcome of a series of EMV functions performed by the card reader.
+ ///
+ [JsonProperty("terminal_verification_results")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("terminal_verification_results")]
+#endif
+ public string TerminalVerificationResults { get; set; }
+
+ ///
+ /// An indication of various EMV functions performed during the transaction.
+ ///
+ [JsonProperty("transaction_status_information")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_status_information")]
+#endif
+ public string TransactionStatusInformation { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentWallet.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentWallet.cs
new file mode 100644
index 0000000000..7461602906
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentWallet.cs
@@ -0,0 +1,22 @@
+// 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 PaymentRecordPaymentMethodDetailsCardPresentWallet : StripeEntity
+ {
+ ///
+ /// The type of mobile wallet, one of apple_pay, google_pay,
+ /// samsung_pay, or unknown.
+ /// One of: apple_pay, google_pay, samsung_pay, or unknown.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardThreeDSecure.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardThreeDSecure.cs
new file mode 100644
index 0000000000..0aaf45b173
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardThreeDSecure.cs
@@ -0,0 +1,49 @@
+// 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 PaymentRecordPaymentMethodDetailsCardThreeDSecure : StripeEntity
+ {
+ ///
+ /// One of: challenge, or frictionless.
+ ///
+ [JsonProperty("authentication_flow")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("authentication_flow")]
+#endif
+ public string AuthenticationFlow { get; set; }
+
+ ///
+ /// One of: attempt_acknowledged, authenticated, exempted,
+ /// failed, not_supported, or processing_error.
+ ///
+ [JsonProperty("result")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("result")]
+#endif
+ public string Result { get; set; }
+
+ ///
+ /// One of: abandoned, bypassed, canceled, card_not_enrolled,
+ /// network_not_supported, protocol_error, or rejected.
+ ///
+ [JsonProperty("result_reason")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("result_reason")]
+#endif
+ public string ResultReason { get; set; }
+
+ ///
+ /// One of: 1.0.2, 2.1.0, or 2.2.0.
+ ///
+ [JsonProperty("version")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("version")]
+#endif
+ public string Version { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCashapp.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCashapp.cs
new file mode 100644
index 0000000000..1f4bb1ae81
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCashapp.cs
@@ -0,0 +1,29 @@
+// 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 PaymentRecordPaymentMethodDetailsCashapp : StripeEntity
+ {
+ ///
+ /// A unique and immutable identifier assigned by Cash App to every buyer.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+
+ ///
+ /// A public identifier for buyers using Cash App.
+ ///
+ [JsonProperty("cashtag")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cashtag")]
+#endif
+ public string Cashtag { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCustomerBalance.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCustomerBalance.cs
new file mode 100644
index 0000000000..5027cce204
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCustomerBalance.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsCustomerBalance : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsEps.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsEps.cs
new file mode 100644
index 0000000000..01a6ea305d
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsEps.cs
@@ -0,0 +1,57 @@
+// 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 PaymentRecordPaymentMethodDetailsEps : StripeEntity
+ {
+ ///
+ /// The customer's bank. Should be one of arzte_und_apotheker_bank,
+ /// austrian_anadi_bank_ag, bank_austria, bankhaus_carl_spangler,
+ /// bankhaus_schelhammer_und_schattera_ag, bawag_psk_ag, bks_bank_ag,
+ /// brull_kallmus_bank_ag, btv_vier_lander_bank,
+ /// capital_bank_grawe_gruppe_ag, deutsche_bank_ag, dolomitenbank,
+ /// easybank_ag, erste_bank_und_sparkassen,
+ /// hypo_alpeadriabank_international_ag,
+ /// hypo_noe_lb_fur_niederosterreich_u_wien,
+ /// hypo_oberosterreich_salzburg_steiermark, hypo_tirol_bank_ag,
+ /// hypo_vorarlberg_bank_ag, hypo_bank_burgenland_aktiengesellschaft,
+ /// marchfelder_bank, oberbank_ag, raiffeisen_bankengruppe_osterreich,
+ /// schoellerbank_ag, sparda_bank_wien, volksbank_gruppe,
+ /// volkskreditbank_ag, or vr_bank_braunau.
+ /// One of: arzte_und_apotheker_bank, austrian_anadi_bank_ag,
+ /// bank_austria, bankhaus_carl_spangler,
+ /// bankhaus_schelhammer_und_schattera_ag, bawag_psk_ag, bks_bank_ag,
+ /// brull_kallmus_bank_ag, btv_vier_lander_bank,
+ /// capital_bank_grawe_gruppe_ag, deutsche_bank_ag, dolomitenbank,
+ /// easybank_ag, erste_bank_und_sparkassen,
+ /// hypo_alpeadriabank_international_ag,
+ /// hypo_bank_burgenland_aktiengesellschaft,
+ /// hypo_noe_lb_fur_niederosterreich_u_wien,
+ /// hypo_oberosterreich_salzburg_steiermark, hypo_tirol_bank_ag,
+ /// hypo_vorarlberg_bank_ag, marchfelder_bank, oberbank_ag,
+ /// raiffeisen_bankengruppe_osterreich, schoellerbank_ag,
+ /// sparda_bank_wien, volksbank_gruppe, volkskreditbank_ag, or
+ /// vr_bank_braunau.
+ ///
+ [JsonProperty("bank")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank")]
+#endif
+ public string Bank { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by EPS directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ /// EPS rarely provides this information so the attribute is usually empty.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsFpx.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsFpx.cs
new file mode 100644
index 0000000000..11ebee2469
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsFpx.cs
@@ -0,0 +1,49 @@
+// 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 PaymentRecordPaymentMethodDetailsFpx : StripeEntity
+ {
+ ///
+ /// Account holder type, if provided. Can be one of individual or company.
+ /// One of: company, or individual.
+ ///
+ [JsonProperty("account_holder_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_holder_type")]
+#endif
+ public string AccountHolderType { get; set; }
+
+ ///
+ /// The customer's bank. Can be one of affin_bank, agrobank,
+ /// alliance_bank, ambank, bank_islam, bank_muamalat,
+ /// bank_rakyat, bsn, cimb, hong_leong_bank, hsbc,
+ /// kfh, maybank2u, ocbc, public_bank, rhb,
+ /// standard_chartered, uob, deutsche_bank, maybank2e,
+ /// pb_enterprise, or bank_of_china.
+ /// One of: affin_bank, agrobank, alliance_bank, ambank,
+ /// bank_islam, bank_muamalat, bank_of_china, bank_rakyat,
+ /// bsn, cimb, deutsche_bank, hong_leong_bank, hsbc,
+ /// kfh, maybank2e, maybank2u, ocbc, pb_enterprise,
+ /// public_bank, rhb, standard_chartered, or uob.
+ ///
+ [JsonProperty("bank")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank")]
+#endif
+ public string Bank { get; set; }
+
+ ///
+ /// Unique transaction id generated by FPX for every request from the merchant.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGiropay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGiropay.cs
new file mode 100644
index 0000000000..c2451537eb
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGiropay.cs
@@ -0,0 +1,49 @@
+// 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 PaymentRecordPaymentMethodDetailsGiropay : StripeEntity
+ {
+ ///
+ /// Bank code of bank associated with the bank account.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Bank Identifier Code of the bank associated with the bank account.
+ ///
+ [JsonProperty("bic")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bic")]
+#endif
+ public string Bic { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by Giropay directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ /// Giropay rarely provides this information so the attribute is usually empty.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGopay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGopay.cs
new file mode 100644
index 0000000000..1998c6b714
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGopay.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsGopay : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGrabpay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGrabpay.cs
new file mode 100644
index 0000000000..06dfdefd16
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGrabpay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsGrabpay : StripeEntity
+ {
+ ///
+ /// Unique transaction id generated by GrabPay.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsIdBankTransfer.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsIdBankTransfer.cs
new file mode 100644
index 0000000000..c88be241d7
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsIdBankTransfer.cs
@@ -0,0 +1,58 @@
+// 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 PaymentRecordPaymentMethodDetailsIdBankTransfer : StripeEntity
+ {
+ ///
+ /// Account number of the bank account to transfer funds to.
+ ///
+ [JsonProperty("account_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_number")]
+#endif
+ public string AccountNumber { get; set; }
+
+ ///
+ /// Bank where the account is located.
+ /// One of: bca, bni, bri, cimb, or permata.
+ ///
+ [JsonProperty("bank")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank")]
+#endif
+ public string Bank { get; set; }
+
+ ///
+ /// Local bank code of the bank.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Merchant name and billing details name, for the customer to check for the correct
+ /// merchant when performing the bank transfer.
+ ///
+ [JsonProperty("display_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("display_name")]
+#endif
+ public string DisplayName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsIdeal.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsIdeal.cs
new file mode 100644
index 0000000000..fd56718d10
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsIdeal.cs
@@ -0,0 +1,145 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+#if NET6_0_OR_GREATER
+ [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
+#endif
+ public class PaymentRecordPaymentMethodDetailsIdeal : StripeEntity
+ {
+ ///
+ /// The customer's bank. Can be one of abn_amro, asn_bank, bunq,
+ /// handelsbanken, ing, knab, moneyou, n26, nn,
+ /// rabobank, regiobank, revolut, sns_bank, triodos_bank,
+ /// van_lanschot, or yoursafe.
+ /// One of: abn_amro, asn_bank, bunq, handelsbanken, ing,
+ /// knab, moneyou, n26, nn, rabobank, regiobank,
+ /// revolut, sns_bank, triodos_bank, van_lanschot, or
+ /// yoursafe.
+ ///
+ [JsonProperty("bank")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank")]
+#endif
+ public string Bank { get; set; }
+
+ ///
+ /// The Bank Identifier Code of the customer's bank.
+ /// One of: ABNANL2A, ASNBNL21, BITSNL2A, BUNQNL2A,
+ /// FVLBNL22, HANDNL2A, INGBNL2A, KNABNL2H, MOYONL21,
+ /// NNBANL2G, NTSBDEB1, RABONL2U, RBRBNL21, REVOIE23,
+ /// REVOLT21, SNSBNL2A, or TRIONL2U.
+ ///
+ [JsonProperty("bic")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bic")]
+#endif
+ public string Bic { get; set; }
+
+ #region Expandable GeneratedSepaDebit
+
+ ///
+ /// (ID of the PaymentMethod)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitId
+ {
+ get => this.InternalGeneratedSepaDebit?.Id;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit);
+ }
+
+ ///
+ /// (Expanded)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public PaymentMethod GeneratedSepaDebit
+ {
+ get => this.InternalGeneratedSepaDebit?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit);
+ }
+
+ [JsonProperty("generated_sepa_debit")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebit { get; set; }
+ #endregion
+
+ #region Expandable GeneratedSepaDebitMandate
+
+ ///
+ /// (ID of the Mandate)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitMandateId
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.Id;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ ///
+ /// (Expanded)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public Mandate GeneratedSepaDebitMandate
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ [JsonProperty("generated_sepa_debit_mandate")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit_mandate")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; }
+ #endregion
+
+ ///
+ /// Last four characters of the IBAN.
+ ///
+ [JsonProperty("iban_last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iban_last4")]
+#endif
+ public string IbanLast4 { get; set; }
+
+ ///
+ /// 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.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresent.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresent.cs
new file mode 100644
index 0000000000..9ec0997123
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresent.cs
@@ -0,0 +1,201 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using System.Collections.Generic;
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class PaymentRecordPaymentMethodDetailsInteracPresent : StripeEntity
+ {
+ ///
+ /// Card brand. Can be interac, mastercard or visa.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// The cardholder name as read from the card, in ISO 7813 format. May include
+ /// alphanumeric characters, special characters and first/last name separator (/). In
+ /// some cases, the cardholder name may not be available depending on how the issuer has
+ /// configured the card. Cardholder name is typically not available on swipe or contactless
+ /// payments, such as those made with Apple Pay and Google Pay.
+ ///
+ [JsonProperty("cardholder_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cardholder_name")]
+#endif
+ public string CardholderName { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card. You could use this attribute
+ /// to get a sense of the international breakdown of cards you've collected.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// A high-level description of the type of cards issued in this range. (For internal use
+ /// only and not typically available in standard API requests.).
+ ///
+ [JsonProperty("description")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("description")]
+#endif
+ public string Description { get; set; }
+
+ ///
+ /// Authorization response cryptogram.
+ ///
+ [JsonProperty("emv_auth_data")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("emv_auth_data")]
+#endif
+ public string EmvAuthData { get; set; }
+
+ ///
+ /// Two-digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long ExpMonth { get; set; }
+
+ ///
+ /// Four-digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long ExpYear { get; set; }
+
+ ///
+ /// Uniquely identifies this particular card number. You can use this attribute to check
+ /// whether two customers who’ve signed up with you are using the same card number, for
+ /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
+ /// tokenized number might be provided instead of the underlying card number.
+ ///
+ /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ /// fingerprints for the same card---one for India and one for the rest of the world..
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Card funding type. Can be credit, debit, prepaid, or
+ /// unknown.
+ ///
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public string Funding { get; set; }
+
+ ///
+ /// ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
+ /// attached to a Customer for future transactions. Only present if it was possible to
+ /// generate a card PaymentMethod.
+ ///
+ [JsonProperty("generated_card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_card")]
+#endif
+ public string GeneratedCard { get; set; }
+
+ ///
+ /// Issuer identification number of the card. (For internal use only and not typically
+ /// available in standard API requests.).
+ ///
+ [JsonProperty("iin")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iin")]
+#endif
+ public string Iin { get; set; }
+
+ ///
+ /// The name of the card's issuing bank. (For internal use only and not typically available
+ /// in standard API requests.).
+ ///
+ [JsonProperty("issuer")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("issuer")]
+#endif
+ public string Issuer { get; set; }
+
+ ///
+ /// The last four digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// Identifies which network this charge was processed on. Can be amex,
+ /// cartes_bancaires, diners, discover, eftpos_au,
+ /// interac, jcb, link, mastercard, unionpay,
+ /// visa, or unknown.
+ ///
+ [JsonProperty("network")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network")]
+#endif
+ public string Network { get; set; }
+
+ ///
+ /// This is used by the financial networks to identify a transaction. Visa calls this the
+ /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ /// Acquirer Reference Data. This value will be present if it is returned by the financial
+ /// network in the authorization response, and null otherwise.
+ ///
+ [JsonProperty("network_transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("network_transaction_id")]
+#endif
+ public string NetworkTransactionId { get; set; }
+
+ ///
+ /// EMV tag 5F2D. Preferred languages specified by the integrated circuit chip.
+ ///
+ [JsonProperty("preferred_locales")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preferred_locales")]
+#endif
+ public List PreferredLocales { get; set; }
+
+ ///
+ /// How card details were read in this transaction.
+ /// One of: contact_emv, contactless_emv, contactless_magstripe_mode,
+ /// magnetic_stripe_fallback, or magnetic_stripe_track2.
+ ///
+ [JsonProperty("read_method")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("read_method")]
+#endif
+ public string ReadMethod { get; set; }
+
+ ///
+ /// A collection of fields required to be displayed on receipts. Only required for EMV
+ /// transactions.
+ ///
+ [JsonProperty("receipt")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("receipt")]
+#endif
+ public PaymentRecordPaymentMethodDetailsInteracPresentReceipt Receipt { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresentReceipt.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresentReceipt.cs
new file mode 100644
index 0000000000..291a60eb45
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresentReceipt.cs
@@ -0,0 +1,95 @@
+// 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 PaymentRecordPaymentMethodDetailsInteracPresentReceipt : StripeEntity
+ {
+ ///
+ /// The type of account being debited or credited.
+ /// One of: checking, savings, or unknown.
+ ///
+ [JsonProperty("account_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_type")]
+#endif
+ public string AccountType { get; set; }
+
+ ///
+ /// EMV tag 9F26, cryptogram generated by the integrated circuit chip.
+ ///
+ [JsonProperty("application_cryptogram")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("application_cryptogram")]
+#endif
+ public string ApplicationCryptogram { get; set; }
+
+ ///
+ /// Mnenomic of the Application Identifier.
+ ///
+ [JsonProperty("application_preferred_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("application_preferred_name")]
+#endif
+ public string ApplicationPreferredName { get; set; }
+
+ ///
+ /// Identifier for this transaction.
+ ///
+ [JsonProperty("authorization_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("authorization_code")]
+#endif
+ public string AuthorizationCode { get; set; }
+
+ ///
+ /// EMV tag 8A. A code returned by the card issuer.
+ ///
+ [JsonProperty("authorization_response_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("authorization_response_code")]
+#endif
+ public string AuthorizationResponseCode { get; set; }
+
+ ///
+ /// Describes the method used by the cardholder to verify ownership of the card. One of the
+ /// following: approval, failure, none, offline_pin,
+ /// offline_pin_and_signature, online_pin, or signature.
+ ///
+ [JsonProperty("cardholder_verification_method")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cardholder_verification_method")]
+#endif
+ public string CardholderVerificationMethod { get; set; }
+
+ ///
+ /// EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
+ ///
+ [JsonProperty("dedicated_file_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("dedicated_file_name")]
+#endif
+ public string DedicatedFileName { get; set; }
+
+ ///
+ /// The outcome of a series of EMV functions performed by the card reader.
+ ///
+ [JsonProperty("terminal_verification_results")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("terminal_verification_results")]
+#endif
+ public string TerminalVerificationResults { get; set; }
+
+ ///
+ /// An indication of various EMV functions performed during the transaction.
+ ///
+ [JsonProperty("transaction_status_information")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_status_information")]
+#endif
+ public string TransactionStatusInformation { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKakaoPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKakaoPay.cs
new file mode 100644
index 0000000000..8590957d4e
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKakaoPay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsKakaoPay : StripeEntity
+ {
+ ///
+ /// A unique identifier for the buyer as determined by the local payment processor.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarna.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarna.cs
new file mode 100644
index 0000000000..c3e7819abd
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarna.cs
@@ -0,0 +1,47 @@
+// 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 PaymentRecordPaymentMethodDetailsKlarna : StripeEntity
+ {
+ ///
+ /// The payer details for this transaction.
+ ///
+ [JsonProperty("payer_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payer_details")]
+#endif
+ public PaymentRecordPaymentMethodDetailsKlarnaPayerDetails PayerDetails { get; set; }
+
+ ///
+ /// The Klarna payment method used for this transaction. Can be one of pay_later,
+ /// pay_now, pay_with_financing, or pay_in_installments.
+ ///
+ [JsonProperty("payment_method_category")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payment_method_category")]
+#endif
+ public string PaymentMethodCategory { get; set; }
+
+ ///
+ /// 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.
+ ///
+ [JsonProperty("preferred_locale")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preferred_locale")]
+#endif
+ public string PreferredLocale { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetails.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetails.cs
new file mode 100644
index 0000000000..1e8bc70f1b
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetails.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsKlarnaPayerDetails : StripeEntity
+ {
+ ///
+ /// The payer's address.
+ ///
+ [JsonProperty("address")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("address")]
+#endif
+ public PaymentRecordPaymentMethodDetailsKlarnaPayerDetailsAddress Address { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs
new file mode 100644
index 0000000000..abe5da27c4
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsKlarnaPayerDetailsAddress : StripeEntity
+ {
+ ///
+ /// The payer address country.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbini.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbini.cs
new file mode 100644
index 0000000000..41d8c7eafa
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbini.cs
@@ -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 PaymentRecordPaymentMethodDetailsKonbini : StripeEntity
+ {
+ ///
+ /// If the payment succeeded, this contains the details of the convenience store where the
+ /// payment was completed.
+ ///
+ [JsonProperty("store")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("store")]
+#endif
+ public PaymentRecordPaymentMethodDetailsKonbiniStore Store { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbiniStore.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbiniStore.cs
new file mode 100644
index 0000000000..56a12701e7
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbiniStore.cs
@@ -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 PaymentRecordPaymentMethodDetailsKonbiniStore : StripeEntity
+ {
+ ///
+ /// The name of the convenience store chain where the payment was completed.
+ /// One of: familymart, lawson, ministop, or seicomart.
+ ///
+ [JsonProperty("chain")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("chain")]
+#endif
+ public string Chain { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKrCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKrCard.cs
new file mode 100644
index 0000000000..4132867440
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKrCard.cs
@@ -0,0 +1,43 @@
+// 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 PaymentRecordPaymentMethodDetailsKrCard : StripeEntity
+ {
+ ///
+ /// The local credit or debit card brand.
+ /// One of: bc, citi, hana, hyundai, jeju,
+ /// jeonbuk, kakaobank, kbank, kdbbank, kookmin,
+ /// kwangju, lotte, mg, nh, post, samsung,
+ /// savingsbank, shinhan, shinhyup, suhyup, tossbank, or
+ /// woori.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// A unique identifier for the buyer as determined by the local payment processor.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+
+ ///
+ /// The last four digits of the card. This may not be present for American Express cards.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsLink.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsLink.cs
new file mode 100644
index 0000000000..e8cebcffa6
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsLink.cs
@@ -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 PaymentRecordPaymentMethodDetailsLink : StripeEntity
+ {
+ ///
+ /// Two-letter ISO code representing the funding source country beneath the Link payment.
+ /// You could use this attribute to get a sense of international fees.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMbWay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMbWay.cs
new file mode 100644
index 0000000000..0dbc455f6b
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMbWay.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsMbWay : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepay.cs
new file mode 100644
index 0000000000..5ccfedf61a
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsMobilepay : StripeEntity
+ {
+ ///
+ /// Internal card details.
+ ///
+ [JsonProperty("card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card")]
+#endif
+ public PaymentRecordPaymentMethodDetailsMobilepayCard Card { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepayCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepayCard.cs
new file mode 100644
index 0000000000..f94f5ddd3a
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepayCard.cs
@@ -0,0 +1,56 @@
+// 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 PaymentRecordPaymentMethodDetailsMobilepayCard : StripeEntity
+ {
+ ///
+ /// Brand of the card used in the transaction.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Two digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long? ExpMonth { get; set; }
+
+ ///
+ /// Two digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long? ExpYear { get; set; }
+
+ ///
+ /// The last 4 digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMultibanco.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMultibanco.cs
new file mode 100644
index 0000000000..bd5ca66af3
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMultibanco.cs
@@ -0,0 +1,29 @@
+// 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 PaymentRecordPaymentMethodDetailsMultibanco : StripeEntity
+ {
+ ///
+ /// Entity number associated with this Multibanco payment.
+ ///
+ [JsonProperty("entity")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("entity")]
+#endif
+ public string Entity { get; set; }
+
+ ///
+ /// Reference number associated with this Multibanco payment.
+ ///
+ [JsonProperty("reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("reference")]
+#endif
+ public string Reference { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNaverPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNaverPay.cs
new file mode 100644
index 0000000000..24315832e6
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNaverPay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsNaverPay : StripeEntity
+ {
+ ///
+ /// A unique identifier for the buyer as determined by the local payment processor.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNzBankAccount.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNzBankAccount.cs
new file mode 100644
index 0000000000..0009d3525f
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNzBankAccount.cs
@@ -0,0 +1,66 @@
+// 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 PaymentRecordPaymentMethodDetailsNzBankAccount : StripeEntity
+ {
+ ///
+ /// The name on the bank account. Only present if the account holder name is different from
+ /// the name of the authorized signatory collected in the PaymentMethod’s billing details.
+ ///
+ [JsonProperty("account_holder_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_holder_name")]
+#endif
+ public string AccountHolderName { get; set; }
+
+ ///
+ /// The numeric code for the bank account's bank.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// The name of the bank.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// The numeric code for the bank account's bank branch.
+ ///
+ [JsonProperty("branch_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("branch_code")]
+#endif
+ public string BranchCode { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// The suffix of the bank account number.
+ ///
+ [JsonProperty("suffix")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("suffix")]
+#endif
+ public string Suffix { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsOxxo.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsOxxo.cs
new file mode 100644
index 0000000000..582ddb53d7
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsOxxo.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsOxxo : StripeEntity
+ {
+ ///
+ /// OXXO reference number.
+ ///
+ [JsonProperty("number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("number")]
+#endif
+ public string Number { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsP24.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsP24.cs
new file mode 100644
index 0000000000..99eb947d00
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsP24.cs
@@ -0,0 +1,55 @@
+// 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 PaymentRecordPaymentMethodDetailsP24 : StripeEntity
+ {
+ ///
+ /// The customer's bank. Can be one of ing, citi_handlowy,
+ /// tmobile_usbugi_bankowe, plus_bank, etransfer_pocztowy24,
+ /// banki_spbdzielcze, bank_nowy_bfg_sa, getin_bank, velobank,
+ /// blik, noble_pay, ideabank, envelobank,
+ /// santander_przelew24, nest_przelew, mbank_mtransfer,
+ /// inteligo, pbac_z_ipko, bnp_paribas, credit_agricole,
+ /// toyota_bank, bank_pekao_sa, volkswagen_bank,
+ /// bank_millennium, alior_bank, or boz.
+ /// One of: alior_bank, bank_millennium, bank_nowy_bfg_sa,
+ /// bank_pekao_sa, banki_spbdzielcze, blik, bnp_paribas,
+ /// boz, citi_handlowy, credit_agricole, envelobank,
+ /// etransfer_pocztowy24, getin_bank, ideabank, ing,
+ /// inteligo, mbank_mtransfer, nest_przelew, noble_pay,
+ /// pbac_z_ipko, plus_bank, santander_przelew24,
+ /// tmobile_usbugi_bankowe, toyota_bank, velobank, or
+ /// volkswagen_bank.
+ ///
+ [JsonProperty("bank")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank")]
+#endif
+ public string Bank { get; set; }
+
+ ///
+ /// Unique reference for this Przelewy24 payment.
+ ///
+ [JsonProperty("reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("reference")]
+#endif
+ public string Reference { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by Przelewy24 directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ /// Przelewy24 rarely provides this information so the attribute is usually empty.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayByBank.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayByBank.cs
new file mode 100644
index 0000000000..570df7ce56
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayByBank.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsPayByBank : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayco.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayco.cs
new file mode 100644
index 0000000000..c0179e1ce3
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayco.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsPayco : StripeEntity
+ {
+ ///
+ /// A unique identifier for the buyer as determined by the local payment processor.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaynow.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaynow.cs
new file mode 100644
index 0000000000..65880d713a
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaynow.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsPaynow : StripeEntity
+ {
+ ///
+ /// Reference number associated with this PayNow payment.
+ ///
+ [JsonProperty("reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("reference")]
+#endif
+ public string Reference { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypal.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypal.cs
new file mode 100644
index 0000000000..8a5209b003
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypal.cs
@@ -0,0 +1,114 @@
+// 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 PaymentRecordPaymentMethodDetailsPaypal : StripeEntity
+ {
+ ///
+ /// Two-letter ISO code representing the buyer's country. Values are provided by PayPal
+ /// directly (if supported) at the time of authorization or settlement. They cannot be set
+ /// or mutated.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Owner's email. Values are provided by PayPal directly (if supported) at the time of
+ /// authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("payer_email")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payer_email")]
+#endif
+ public string PayerEmail { get; set; }
+
+ ///
+ /// PayPal account PayerID. This identifier uniquely identifies the PayPal customer.
+ ///
+ [JsonProperty("payer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payer_id")]
+#endif
+ public string PayerId { get; set; }
+
+ ///
+ /// Owner's full name. Values provided by PayPal directly (if supported) at the time of
+ /// authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("payer_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payer_name")]
+#endif
+ public string PayerName { get; set; }
+
+ ///
+ /// The level of protection offered as defined by PayPal Seller Protection for Merchants,
+ /// for this transaction.
+ ///
+ [JsonProperty("seller_protection")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("seller_protection")]
+#endif
+ public PaymentRecordPaymentMethodDetailsPaypalSellerProtection SellerProtection { get; set; }
+
+ ///
+ /// The shipping address for the customer, as supplied by the merchant at the point of
+ /// payment execution. This shipping address will not be updated if the merchant updates the
+ /// shipping address on the PaymentIntent after the PaymentIntent was successfully
+ /// confirmed.
+ ///
+ [JsonProperty("shipping")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("shipping")]
+#endif
+ public Address Shipping { get; set; }
+
+ ///
+ /// A unique ID generated by PayPal for this transaction.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+
+ ///
+ /// The shipping address for the customer, as supplied by the merchant at the point of
+ /// payment execution. This shipping address will not be updated if the merchant updates the
+ /// shipping address on the PaymentIntent after the PaymentIntent was successfully
+ /// confirmed.
+ ///
+ [JsonProperty("verified_address")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_address")]
+#endif
+ public Address VerifiedAddress { get; set; }
+
+ ///
+ /// Owner's verified email. Values are verified or provided by PayPal directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("verified_email")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_email")]
+#endif
+ public string VerifiedEmail { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by PayPal directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypalSellerProtection.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypalSellerProtection.cs
new file mode 100644
index 0000000000..0dfe581805
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypalSellerProtection.cs
@@ -0,0 +1,32 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using System.Collections.Generic;
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class PaymentRecordPaymentMethodDetailsPaypalSellerProtection : StripeEntity
+ {
+ ///
+ /// An array of conditions that are covered for the transaction, if applicable.
+ /// One of: fraudulent, or product_not_received.
+ ///
+ [JsonProperty("dispute_categories")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("dispute_categories")]
+#endif
+ public List DisputeCategories { get; set; }
+
+ ///
+ /// Indicates whether the transaction is eligible for PayPal's seller protection.
+ /// One of: eligible, not_eligible, or partially_eligible.
+ ///
+ [JsonProperty("status")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("status")]
+#endif
+ public string Status { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayto.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayto.cs
new file mode 100644
index 0000000000..c87c47950a
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayto.cs
@@ -0,0 +1,47 @@
+// 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 PaymentRecordPaymentMethodDetailsPayto : StripeEntity
+ {
+ ///
+ /// Bank-State-Branch number of the bank account.
+ ///
+ [JsonProperty("bsb_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bsb_number")]
+#endif
+ public string BsbNumber { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// ID of the mandate used to make this payment.
+ ///
+ [JsonProperty("mandate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+#endif
+ public string Mandate { get; set; }
+
+ ///
+ /// The PayID alias for the bank account.
+ ///
+ [JsonProperty("pay_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("pay_id")]
+#endif
+ public string PayId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPix.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPix.cs
new file mode 100644
index 0000000000..ae77e6eb13
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPix.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsPix : StripeEntity
+ {
+ ///
+ /// Unique transaction id generated by BCB.
+ ///
+ [JsonProperty("bank_transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_transaction_id")]
+#endif
+ public string BankTransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPromptpay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPromptpay.cs
new file mode 100644
index 0000000000..c6a85f9fbf
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPromptpay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsPromptpay : StripeEntity
+ {
+ ///
+ /// Bill reference generated by PromptPay.
+ ///
+ [JsonProperty("reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("reference")]
+#endif
+ public string Reference { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsQris.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsQris.cs
new file mode 100644
index 0000000000..679f4887ed
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsQris.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsQris : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRechnung.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRechnung.cs
new file mode 100644
index 0000000000..f9b11806bb
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRechnung.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsRechnung : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPay.cs
new file mode 100644
index 0000000000..57fb0445ae
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPay.cs
@@ -0,0 +1,17 @@
+// 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 PaymentRecordPaymentMethodDetailsRevolutPay : StripeEntity
+ {
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public PaymentRecordPaymentMethodDetailsRevolutPayFunding Funding { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFunding.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFunding.cs
new file mode 100644
index 0000000000..7705d1cc87
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFunding.cs
@@ -0,0 +1,26 @@
+// 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 PaymentRecordPaymentMethodDetailsRevolutPayFunding : StripeEntity
+ {
+ [JsonProperty("card")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card")]
+#endif
+ public PaymentRecordPaymentMethodDetailsRevolutPayFundingCard Card { get; set; }
+
+ ///
+ /// funding type of the underlying payment method.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFundingCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFundingCard.cs
new file mode 100644
index 0000000000..6db8bb86e5
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFundingCard.cs
@@ -0,0 +1,80 @@
+// 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 PaymentRecordPaymentMethodDetailsRevolutPayFundingCard : StripeEntity
+ {
+ ///
+ /// Card brand. Can be amex, diners, discover, eftpos_au,
+ /// jcb, link, mastercard, unionpay, visa, or
+ /// unknown.
+ ///
+ [JsonProperty("brand")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand")]
+#endif
+ public string Brand { get; set; }
+
+ ///
+ /// The product code that
+ /// identifies the specific program or product associated with a card. (For internal use
+ /// only and not typically available in standard API requests.).
+ ///
+ [JsonProperty("brand_product")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("brand_product")]
+#endif
+ public string BrandProduct { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country of the card. You could use this attribute
+ /// to get a sense of the international breakdown of cards you've collected.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Two-digit number representing the card's expiration month.
+ ///
+ [JsonProperty("exp_month")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_month")]
+#endif
+ public long? ExpMonth { get; set; }
+
+ ///
+ /// Four-digit number representing the card's expiration year.
+ ///
+ [JsonProperty("exp_year")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exp_year")]
+#endif
+ public long? ExpYear { get; set; }
+
+ ///
+ /// Card funding type. Can be credit, debit, prepaid, or
+ /// unknown.
+ ///
+ [JsonProperty("funding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("funding")]
+#endif
+ public string Funding { get; set; }
+
+ ///
+ /// The last four digits of the card.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSamsungPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSamsungPay.cs
new file mode 100644
index 0000000000..1ca8ec7596
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSamsungPay.cs
@@ -0,0 +1,20 @@
+// 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 PaymentRecordPaymentMethodDetailsSamsungPay : StripeEntity
+ {
+ ///
+ /// A unique identifier for the buyer as determined by the local payment processor.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSatispay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSatispay.cs
new file mode 100644
index 0000000000..1dfcab71d8
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSatispay.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsSatispay : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaCreditTransfer.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaCreditTransfer.cs
new file mode 100644
index 0000000000..de7440af4f
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaCreditTransfer.cs
@@ -0,0 +1,38 @@
+// 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 PaymentRecordPaymentMethodDetailsSepaCreditTransfer : StripeEntity
+ {
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Bank Identifier Code of the bank associated with the bank account.
+ ///
+ [JsonProperty("bic")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bic")]
+#endif
+ public string Bic { get; set; }
+
+ ///
+ /// IBAN of the bank account to transfer funds to.
+ ///
+ [JsonProperty("iban")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iban")]
+#endif
+ public string Iban { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaDebit.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaDebit.cs
new file mode 100644
index 0000000000..7d840918de
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaDebit.cs
@@ -0,0 +1,69 @@
+// 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 PaymentRecordPaymentMethodDetailsSepaDebit : StripeEntity
+ {
+ ///
+ /// Bank code of bank associated with the bank account.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// Branch code of bank associated with the bank account.
+ ///
+ [JsonProperty("branch_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("branch_code")]
+#endif
+ public string BranchCode { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country the bank account is located in.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Last four characters of the IBAN.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ ///
+ /// Find the ID of the mandate used for this payment under the payment_method_details.sepa_debit.mandate
+ /// property on the Charge. Use this mandate ID to retrieve the Mandate.
+ ///
+ [JsonProperty("mandate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+#endif
+ public string Mandate { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsShopeepay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsShopeepay.cs
new file mode 100644
index 0000000000..90856954de
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsShopeepay.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsShopeepay : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSofort.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSofort.cs
new file mode 100644
index 0000000000..98ffccf5e8
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSofort.cs
@@ -0,0 +1,164 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+#if NET6_0_OR_GREATER
+ [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
+#endif
+ public class PaymentRecordPaymentMethodDetailsSofort : StripeEntity
+ {
+ ///
+ /// Bank code of bank associated with the bank account.
+ ///
+ [JsonProperty("bank_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_code")]
+#endif
+ public string BankCode { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Bank Identifier Code of the bank associated with the bank account.
+ ///
+ [JsonProperty("bic")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bic")]
+#endif
+ public string Bic { get; set; }
+
+ ///
+ /// Two-letter ISO code representing the country the bank account is located in.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ #region Expandable GeneratedSepaDebit
+
+ ///
+ /// (ID of the PaymentMethod)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitId
+ {
+ get => this.InternalGeneratedSepaDebit?.Id;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit);
+ }
+
+ ///
+ /// (Expanded)
+ /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public PaymentMethod GeneratedSepaDebit
+ {
+ get => this.InternalGeneratedSepaDebit?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit);
+ }
+
+ [JsonProperty("generated_sepa_debit")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebit { get; set; }
+ #endregion
+
+ #region Expandable GeneratedSepaDebitMandate
+
+ ///
+ /// (ID of the Mandate)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string GeneratedSepaDebitMandateId
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.Id;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ ///
+ /// (Expanded)
+ /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public Mandate GeneratedSepaDebitMandate
+ {
+ get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject;
+ set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate);
+ }
+
+ [JsonProperty("generated_sepa_debit_mandate")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("generated_sepa_debit_mandate")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; }
+ #endregion
+
+ ///
+ /// Last four characters of the IBAN.
+ ///
+ [JsonProperty("iban_last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("iban_last4")]
+#endif
+ public string IbanLast4 { get; set; }
+
+ ///
+ /// Preferred language of the SOFORT authorization page that the customer is redirected to.
+ /// Can be one of de, en, es, fr, it, nl, or
+ /// pl.
+ /// One of: de, en, es, fr, it, nl, or pl.
+ ///
+ [JsonProperty("preferred_language")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("preferred_language")]
+#endif
+ public string PreferredLanguage { get; set; }
+
+ ///
+ /// Owner's verified full name. Values are verified or provided by SOFORT directly (if
+ /// supported) at the time of authorization or settlement. They cannot be set or mutated.
+ ///
+ [JsonProperty("verified_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_name")]
+#endif
+ public string VerifiedName { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsStripeAccount.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsStripeAccount.cs
new file mode 100644
index 0000000000..8208fb1d53
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsStripeAccount.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsStripeAccount : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSwish.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSwish.cs
new file mode 100644
index 0000000000..1538f8c535
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSwish.cs
@@ -0,0 +1,39 @@
+// 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 PaymentRecordPaymentMethodDetailsSwish : StripeEntity
+ {
+ ///
+ /// Uniquely identifies the payer's Swish account. You can use this attribute to check
+ /// whether two Swish transactions were paid for by the same payer.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Payer bank reference number for the payment.
+ ///
+ [JsonProperty("payment_reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payment_reference")]
+#endif
+ public string PaymentReference { get; set; }
+
+ ///
+ /// The last four digits of the Swish account phone number.
+ ///
+ [JsonProperty("verified_phone_last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("verified_phone_last4")]
+#endif
+ public string VerifiedPhoneLast4 { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsTwint.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsTwint.cs
new file mode 100644
index 0000000000..618f2de443
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsTwint.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsTwint : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsUsBankAccount.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsUsBankAccount.cs
new file mode 100644
index 0000000000..41c14dea44
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsUsBankAccount.cs
@@ -0,0 +1,122 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ using Newtonsoft.Json;
+ using Stripe.Infrastructure;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+#if NET6_0_OR_GREATER
+ [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
+#endif
+ public class PaymentRecordPaymentMethodDetailsUsBankAccount : StripeEntity
+ {
+ ///
+ /// Account holder type: individual or company.
+ /// One of: company, or individual.
+ ///
+ [JsonProperty("account_holder_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_holder_type")]
+#endif
+ public string AccountHolderType { get; set; }
+
+ ///
+ /// Account type: checkings or savings. Defaults to checking if omitted.
+ /// One of: checking, or savings.
+ ///
+ [JsonProperty("account_type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("account_type")]
+#endif
+ public string AccountType { get; set; }
+
+ ///
+ /// Name of the bank associated with the bank account.
+ ///
+ [JsonProperty("bank_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bank_name")]
+#endif
+ public string BankName { get; set; }
+
+ ///
+ /// Uniquely identifies this particular bank account. You can use this attribute to check
+ /// whether two bank accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Last four digits of the bank account number.
+ ///
+ [JsonProperty("last4")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("last4")]
+#endif
+ public string Last4 { get; set; }
+
+ #region Expandable Mandate
+
+ ///
+ /// (ID of the Mandate)
+ /// ID of the mandate used to make this payment.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public string MandateId
+ {
+ get => this.InternalMandate?.Id;
+ set => this.InternalMandate = SetExpandableFieldId(value, this.InternalMandate);
+ }
+
+ ///
+ /// (Expanded)
+ /// ID of the mandate used to make this payment.
+ ///
+ /// For more information, see the expand documentation.
+ ///
+ [JsonIgnore]
+#if NET6_0_OR_GREATER
+ [STJS.JsonIgnore]
+#endif
+ public Mandate Mandate
+ {
+ get => this.InternalMandate?.ExpandedObject;
+ set => this.InternalMandate = SetExpandableFieldObject(value, this.InternalMandate);
+ }
+
+ [JsonProperty("mandate")]
+ [JsonConverter(typeof(ExpandableFieldConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mandate")]
+ [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+#endif
+ internal ExpandableField InternalMandate { get; set; }
+ #endregion
+
+ ///
+ /// Reference number to locate ACH payments with customer's bank.
+ ///
+ [JsonProperty("payment_reference")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payment_reference")]
+#endif
+ public string PaymentReference { get; set; }
+
+ ///
+ /// Routing number of the bank account.
+ ///
+ [JsonProperty("routing_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("routing_number")]
+#endif
+ public string RoutingNumber { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechat.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechat.cs
new file mode 100644
index 0000000000..05f03a39f7
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechat.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsWechat : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechatPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechatPay.cs
new file mode 100644
index 0000000000..2b54aab006
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechatPay.cs
@@ -0,0 +1,30 @@
+// 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 PaymentRecordPaymentMethodDetailsWechatPay : StripeEntity
+ {
+ ///
+ /// Uniquely identifies this particular WeChat Pay account. You can use this attribute to
+ /// check whether two WeChat accounts are the same.
+ ///
+ [JsonProperty("fingerprint")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fingerprint")]
+#endif
+ public string Fingerprint { get; set; }
+
+ ///
+ /// Transaction ID of this particular WeChat Pay transaction.
+ ///
+ [JsonProperty("transaction_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("transaction_id")]
+#endif
+ public string TransactionId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsZip.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsZip.cs
new file mode 100644
index 0000000000..d400c62aa5
--- /dev/null
+++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsZip.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class PaymentRecordPaymentMethodDetailsZip : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/Payouts/Payout.cs b/src/Stripe.net/Entities/Payouts/Payout.cs
index 62620f3a5e..a8c59bec2f 100644
--- a/src/Stripe.net/Entities/Payouts/Payout.cs
+++ b/src/Stripe.net/Entities/Payouts/Payout.cs
@@ -386,6 +386,15 @@ public Payout OriginalPayout
internal ExpandableField InternalOriginalPayout { get; set; }
#endregion
+ ///
+ /// ID of the v2 FinancialAccount the funds are sent to.
+ ///
+ [JsonProperty("payout_method")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payout_method")]
+#endif
+ public string PayoutMethod { get; set; }
+
///
/// If completed, you can use the Balance
diff --git a/src/Stripe.net/Entities/Persons/Person.cs b/src/Stripe.net/Entities/Persons/Person.cs
index b57b58e190..c560c82929 100644
--- a/src/Stripe.net/Entities/Persons/Person.cs
+++ b/src/Stripe.net/Entities/Persons/Person.cs
@@ -12,7 +12,7 @@ namespace Stripe
///
/// This is an object representing a person associated with a Stripe account.
///
- /// A platform cannot access a person for an account where account.controller.requirement_collection
/// is stripe, which includes Standard and Express accounts, after creating an
/// Account Link or Account Session to start Connect onboarding.
@@ -111,7 +111,9 @@ public class Person : StripeEntity, IHasId, IHasMetadata, IHasObject
public Dob Dob { get; set; }
///
- /// The person's email address.
+ /// The person's email address. Also available for accounts where controller.requirement_collection
+ /// is stripe.
///
[JsonProperty("email")]
#if NET6_0_OR_GREATER
@@ -120,7 +122,9 @@ public class Person : StripeEntity, IHasId, IHasMetadata, IHasObject
public string Email { get; set; }
///
- /// The person's first name.
+ /// The person's first name. Also available for accounts where controller.requirement_collection
+ /// is stripe.
///
[JsonProperty("first_name")]
#if NET6_0_OR_GREATER
@@ -129,7 +133,10 @@ public class Person : StripeEntity, IHasId, IHasMetadata, IHasObject
public string FirstName { get; set; }
///
- /// The Kana variation of the person's first name (Japan only).
+ /// The Kana variation of the person's first name (Japan only). Also available for accounts
+ /// where controller.requirement_collection
+ /// is stripe.
///
[JsonProperty("first_name_kana")]
#if NET6_0_OR_GREATER
@@ -138,7 +145,10 @@ public class Person : StripeEntity, IHasId, IHasMetadata, IHasObject
public string FirstNameKana { get; set; }
///
- /// The Kanji variation of the person's first name (Japan only).
+ /// The Kanji variation of the person's first name (Japan only). Also available for accounts
+ /// where controller.requirement_collection
+ /// is stripe.
///
[JsonProperty("first_name_kanji")]
#if NET6_0_OR_GREATER
@@ -147,7 +157,10 @@ public class Person : StripeEntity, IHasId, IHasMetadata, IHasObject
public string FirstNameKanji { get; set; }
///
- /// A list of alternate names or aliases that the person is known by.
+ /// A list of alternate names or aliases that the person is known by. Also available for
+ /// accounts where controller.requirement_collection
+ /// is stripe.
///
[JsonProperty("full_name_aliases")]
#if NET6_0_OR_GREATER
@@ -197,7 +210,9 @@ public class Person : StripeEntity, IHasId, IHasMetadata, IHasObject
public bool IdNumberSecondaryProvided { get; set; }
///
- /// The person's last name.
+ /// The person's last name. Also available for accounts where controller.requirement_collection
+ /// is stripe.
///
[JsonProperty("last_name")]
#if NET6_0_OR_GREATER
@@ -206,7 +221,10 @@ public class Person : StripeEntity, IHasId, IHasMetadata, IHasObject
public string LastName { get; set; }
///
- /// The Kana variation of the person's last name (Japan only).
+ /// The Kana variation of the person's last name (Japan only). Also available for accounts
+ /// where controller.requirement_collection
+ /// is stripe.
///
[JsonProperty("last_name_kana")]
#if NET6_0_OR_GREATER
@@ -215,7 +233,10 @@ public class Person : StripeEntity, IHasId, IHasMetadata, IHasObject
public string LastNameKana { get; set; }
///
- /// The Kanji variation of the person's last name (Japan only).
+ /// The Kanji variation of the person's last name (Japan only). Also available for accounts
+ /// where controller.requirement_collection
+ /// is stripe.
///
[JsonProperty("last_name_kanji")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/Persons/PersonFutureRequirementsError.cs b/src/Stripe.net/Entities/Persons/PersonFutureRequirementsError.cs
index 212db3635a..7499873499 100644
--- a/src/Stripe.net/Entities/Persons/PersonFutureRequirementsError.cs
+++ b/src/Stripe.net/Entities/Persons/PersonFutureRequirementsError.cs
@@ -10,13 +10,13 @@ public class PersonFutureRequirementsError : StripeEntity
/// The code for the type of error.
- /// One of: invalid_address_city_state_postal_code,
+ /// One of: information_missing, invalid_address_city_state_postal_code,
/// invalid_address_highway_contract_box, invalid_address_private_mailbox,
/// invalid_business_profile_name, invalid_business_profile_name_denylisted,
/// invalid_company_name_denylisted, invalid_dob_age_over_maximum,
/// invalid_dob_age_under_18, invalid_dob_age_under_minimum,
/// invalid_product_description_length, invalid_product_description_url_match,
- /// invalid_representative_country,
+ /// invalid_representative_country, invalid_signator,
/// invalid_statement_descriptor_business_mismatch,
/// invalid_statement_descriptor_denylisted,
/// invalid_statement_descriptor_length,
@@ -59,6 +59,7 @@ public class PersonFutureRequirementsError : StripeEntityverification_document_not_uploaded, verification_document_photo_mismatch,
/// verification_document_too_large, verification_document_type_not_supported,
/// verification_extraneous_directors, verification_failed_address_match,
+ /// verification_failed_authorizer_authority,
/// verification_failed_business_iec_number,
/// verification_failed_document_match, verification_failed_id_number_match,
/// verification_failed_keyed_identity, verification_failed_keyed_match,
@@ -67,6 +68,7 @@ public class PersonFutureRequirementsError : StripeEntityverification_failed_residential_address, verification_failed_tax_id_match,
/// verification_failed_tax_id_not_issued, verification_missing_directors,
/// verification_missing_executives, verification_missing_owners,
+ /// verification_rejected_ownership_exemption_reason,
/// verification_requires_additional_memorandum_of_associations,
/// verification_requires_additional_proof_of_registration, or
/// verification_supportability.
diff --git a/src/Stripe.net/Entities/Persons/PersonRequirementsError.cs b/src/Stripe.net/Entities/Persons/PersonRequirementsError.cs
index f510621d79..667e080cf7 100644
--- a/src/Stripe.net/Entities/Persons/PersonRequirementsError.cs
+++ b/src/Stripe.net/Entities/Persons/PersonRequirementsError.cs
@@ -10,13 +10,13 @@ public class PersonRequirementsError : StripeEntity
{
///
/// The code for the type of error.
- /// One of: invalid_address_city_state_postal_code,
+ /// One of: information_missing, invalid_address_city_state_postal_code,
/// invalid_address_highway_contract_box, invalid_address_private_mailbox,
/// invalid_business_profile_name, invalid_business_profile_name_denylisted,
/// invalid_company_name_denylisted, invalid_dob_age_over_maximum,
/// invalid_dob_age_under_18, invalid_dob_age_under_minimum,
/// invalid_product_description_length, invalid_product_description_url_match,
- /// invalid_representative_country,
+ /// invalid_representative_country, invalid_signator,
/// invalid_statement_descriptor_business_mismatch,
/// invalid_statement_descriptor_denylisted,
/// invalid_statement_descriptor_length,
@@ -59,6 +59,7 @@ public class PersonRequirementsError : StripeEntity
/// verification_document_not_uploaded, verification_document_photo_mismatch,
/// verification_document_too_large, verification_document_type_not_supported,
/// verification_extraneous_directors, verification_failed_address_match,
+ /// verification_failed_authorizer_authority,
/// verification_failed_business_iec_number,
/// verification_failed_document_match, verification_failed_id_number_match,
/// verification_failed_keyed_identity, verification_failed_keyed_match,
@@ -67,6 +68,7 @@ public class PersonRequirementsError : StripeEntity
/// verification_failed_residential_address, verification_failed_tax_id_match,
/// verification_failed_tax_id_not_issued, verification_missing_directors,
/// verification_missing_executives, verification_missing_owners,
+ /// verification_rejected_ownership_exemption_reason,
/// verification_requires_additional_memorandum_of_associations,
/// verification_requires_additional_proof_of_registration, or
/// verification_supportability.
diff --git a/src/Stripe.net/Entities/Plans/Plan.cs b/src/Stripe.net/Entities/Plans/Plan.cs
index e19839d6f4..b7c0ca4237 100644
--- a/src/Stripe.net/Entities/Plans/Plan.cs
+++ b/src/Stripe.net/Entities/Plans/Plan.cs
@@ -61,21 +61,6 @@ public class Plan : StripeEntity, IHasId, IHasMetadata, IHasObject
#endif
public bool Active { get; set; }
- ///
- /// Specifies a usage aggregation strategy for plans of usage_type=metered. Allowed
- /// values are sum for summing up all usage during a period,
- /// last_during_period for using the last usage record reported within a period,
- /// last_ever for using the last usage record ever (across period bounds) or
- /// max which uses the usage record with the maximum reported usage during a period.
- /// Defaults to sum.
- /// One of: last_during_period, last_ever, max, or sum.
- ///
- [JsonProperty("aggregate_usage")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("aggregate_usage")]
-#endif
- public string AggregateUsage { get; set; }
-
///
/// The unit amount in cents (or local equivalent) to be charged, represented as a whole
/// integer if possible. Only set if billing_scheme=per_unit.
diff --git a/src/Stripe.net/Entities/Prices/PriceRecurring.cs b/src/Stripe.net/Entities/Prices/PriceRecurring.cs
index 2ecf132afe..f9e8566bb0 100644
--- a/src/Stripe.net/Entities/Prices/PriceRecurring.cs
+++ b/src/Stripe.net/Entities/Prices/PriceRecurring.cs
@@ -8,17 +8,6 @@ namespace Stripe
public class PriceRecurring : StripeEntity
{
- ///
- /// Specifies a usage aggregation strategy for prices of usage_type=metered. Defaults
- /// to sum.
- /// One of: last_during_period, last_ever, max, or sum.
- ///
- [JsonProperty("aggregate_usage")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("aggregate_usage")]
-#endif
- public string AggregateUsage { get; set; }
-
///
/// The frequency at which a subscription is billed. One of day, week,
/// month or year.
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoice.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoice.cs
index d3d6391798..b5a6c07137 100644
--- a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoice.cs
+++ b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoice.cs
@@ -147,8 +147,8 @@ public List AccountTaxIds
public long AmountDue { get; set; }
///
- /// Amount that was overpaid on the invoice. Overpayments are debited to the customer's
- /// credit balance.
+ /// Amount that was overpaid on the invoice. The amount overpaid is credited to the
+ /// customer's credit balance.
///
[JsonProperty("amount_overpaid")]
#if NET6_0_OR_GREATER
@@ -234,16 +234,6 @@ public Application Application
internal ExpandableField InternalApplication { get; set; }
#endregion
- ///
- /// The fee in cents (or local equivalent) that will be applied to the invoice and
- /// transferred to the application owner's Stripe account when the invoice is paid.
- ///
- [JsonProperty("application_fee_amount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("application_fee_amount")]
-#endif
- public long? ApplicationFeeAmount { get; set; }
-
[JsonProperty("applies_to")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("applies_to")]
@@ -332,6 +322,16 @@ public Application Application
#endif
public string CollectionMethod { get; set; }
+ ///
+ /// The confirmation secret associated with this invoice. Currently, this contains the
+ /// client_secret of the PaymentIntent that Stripe creates during invoice finalization.
+ ///
+ [JsonProperty("confirmation_secret")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("confirmation_secret")]
+#endif
+ public QuotePreviewInvoiceConfirmationSecret ConfirmationSecret { get; set; }
+
///
/// Time at which the object was created. Measured in seconds since the Unix epoch.
///
@@ -591,16 +591,6 @@ public IPaymentSource DefaultSource
#endif
public string Description { get; set; }
- ///
- /// Describes the current discount applied to this invoice, if there is one. Not populated
- /// if there are multiple discounts.
- ///
- [JsonProperty("discount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("discount")]
-#endif
- public Discount Discount { get; set; }
-
#region Expandable Discounts
///
@@ -857,70 +847,11 @@ public Account OnBehalfOf
internal ExpandableField InternalOnBehalfOf { get; set; }
#endregion
- ///
- /// Whether payment was successfully collected for this invoice. An invoice can be paid
- /// (most commonly) with a charge or with credit from the customer's account balance.
- ///
- [JsonProperty("paid")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("paid")]
-#endif
- public bool Paid { get; set; }
-
- ///
- /// Returns true if the invoice was manually marked paid, returns false if the invoice
- /// hasn't been paid yet or was paid on Stripe.
- ///
- [JsonProperty("paid_out_of_band")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("paid_out_of_band")]
-#endif
- public bool PaidOutOfBand { get; set; }
-
- #region Expandable PaymentIntent
-
- ///
- /// (ID of the PaymentIntent)
- /// The PaymentIntent associated with this invoice. The PaymentIntent is generated when the
- /// invoice is finalized, and can then be used to pay the invoice. Note that voiding an
- /// invoice will cancel the PaymentIntent.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string PaymentIntentId
- {
- get => this.InternalPaymentIntent?.Id;
- set => this.InternalPaymentIntent = SetExpandableFieldId(value, this.InternalPaymentIntent);
- }
-
- ///
- /// (Expanded)
- /// The PaymentIntent associated with this invoice. The PaymentIntent is generated when the
- /// invoice is finalized, and can then be used to pay the invoice. Note that voiding an
- /// invoice will cancel the PaymentIntent.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public PaymentIntent PaymentIntent
- {
- get => this.InternalPaymentIntent?.ExpandedObject;
- set => this.InternalPaymentIntent = SetExpandableFieldObject(value, this.InternalPaymentIntent);
- }
-
- [JsonProperty("payment_intent")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
+ [JsonProperty("parent")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("payment_intent")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
+ [STJS.JsonPropertyName("parent")]
#endif
- internal ExpandableField InternalPaymentIntent { get; set; }
- #endregion
+ public QuotePreviewInvoiceParent Parent { get; set; }
[JsonProperty("payment_settings")]
#if NET6_0_OR_GREATER
@@ -983,47 +914,6 @@ public PaymentIntent PaymentIntent
#endif
public long PrePaymentCreditNotesAmount { get; set; }
- #region Expandable Quote
-
- ///
- /// (ID of the Quote)
- /// The quote this invoice was generated from.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string QuoteId
- {
- get => this.InternalQuote?.Id;
- set => this.InternalQuote = SetExpandableFieldId(value, this.InternalQuote);
- }
-
- ///
- /// (Expanded)
- /// The quote this invoice was generated from.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public Quote Quote
- {
- get => this.InternalQuote?.ExpandedObject;
- set => this.InternalQuote = SetExpandableFieldObject(value, this.InternalQuote);
- }
-
- [JsonProperty("quote")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("quote")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalQuote { get; set; }
- #endregion
-
///
/// This is the transaction number that appears on email receipts sent for this invoice.
///
@@ -1133,27 +1023,6 @@ public Subscription Subscription
internal ExpandableField InternalSubscription { get; set; }
#endregion
- ///
- /// Details about the subscription that created this invoice.
- ///
- [JsonProperty("subscription_details")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("subscription_details")]
-#endif
- public QuotePreviewInvoiceSubscriptionDetails SubscriptionDetails { get; set; }
-
- ///
- /// Only set for upcoming invoices that preview prorations. The time used to calculate
- /// prorations.
- ///
- [JsonProperty("subscription_proration_date")]
- [JsonConverter(typeof(UnixDateTimeConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("subscription_proration_date")]
- [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
-#endif
- public DateTime SubscriptionProrationDate { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
-
///
/// Total of all subscriptions, invoice items, and prorations on the invoice before any
/// invoice level discount or exclusive tax is applied. Item discounts are already
@@ -1176,16 +1045,6 @@ public Subscription Subscription
#endif
public long? SubtotalExcludingTax { get; set; }
- ///
- /// The amount of tax on this invoice. This is the sum of all the tax amounts on this
- /// invoice.
- ///
- [JsonProperty("tax")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("tax")]
-#endif
- public long? Tax { get; set; }
-
#region Expandable TestClock
///
@@ -1282,23 +1141,13 @@ public TestHelpers.TestClock TestClock
public List TotalPretaxCreditAmounts { get; set; }
///
- /// The aggregate amounts calculated per tax rate for all line items.
- ///
- [JsonProperty("total_tax_amounts")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("total_tax_amounts")]
-#endif
- public List TotalTaxAmounts { get; set; }
-
- ///
- /// The account (if any) the payment will be attributed to for tax reporting, and where
- /// funds from the payment will be transferred to for the invoice.
+ /// The aggregate tax information of all line items.
///
- [JsonProperty("transfer_data")]
+ [JsonProperty("total_taxes")]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("transfer_data")]
+ [STJS.JsonPropertyName("total_taxes")]
#endif
- public QuotePreviewInvoiceTransferData TransferData { get; set; }
+ public List TotalTaxes { get; set; }
///
/// Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceAutomaticTax.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceAutomaticTax.cs
index 02e87c9df0..4a2c82439b 100644
--- a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceAutomaticTax.cs
+++ b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceAutomaticTax.cs
@@ -42,6 +42,15 @@ public class QuotePreviewInvoiceAutomaticTax : StripeEntity
+ /// The tax provider powering automatic tax.
+ ///
+ [JsonProperty("provider")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("provider")]
+#endif
+ public string Provider { get; set; }
+
///
/// The status of the most recent automated tax calculation for this invoice.
/// One of: complete, failed, or requires_location_inputs.
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceConfirmationSecret.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceConfirmationSecret.cs
new file mode 100644
index 0000000000..c4e4742bdc
--- /dev/null
+++ b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceConfirmationSecret.cs
@@ -0,0 +1,30 @@
+// 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 QuotePreviewInvoiceConfirmationSecret : StripeEntity
+ {
+ ///
+ /// The client_secret of the payment that Stripe creates for the invoice after finalization.
+ ///
+ [JsonProperty("client_secret")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("client_secret")]
+#endif
+ public string ClientSecret { get; set; }
+
+ ///
+ /// The type of client_secret. Currently this is always payment_intent, referencing the
+ /// default payment_intent that Stripe creates during invoice finalization.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParent.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParent.cs
new file mode 100644
index 0000000000..b800e85a50
--- /dev/null
+++ b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParent.cs
@@ -0,0 +1,32 @@
+// 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 QuotePreviewInvoiceParent : StripeEntity
+ {
+ [JsonProperty("quote_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("quote_details")]
+#endif
+ public QuotePreviewInvoiceParentQuoteDetails QuoteDetails { get; set; }
+
+ [JsonProperty("subscription_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription_details")]
+#endif
+ public QuotePreviewInvoiceParentSubscriptionDetails SubscriptionDetails { get; set; }
+
+ ///
+ /// One of: quote_details, or subscription_details.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParentQuoteDetails.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParentQuoteDetails.cs
new file mode 100644
index 0000000000..47d22ff687
--- /dev/null
+++ b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParentQuoteDetails.cs
@@ -0,0 +1,17 @@
+// 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 QuotePreviewInvoiceParentQuoteDetails : StripeEntity
+ {
+ [JsonProperty("quote")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("quote")]
+#endif
+ public string Quote { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParentSubscriptionDetails.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParentSubscriptionDetails.cs
new file mode 100644
index 0000000000..8903cab531
--- /dev/null
+++ b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParentSubscriptionDetails.cs
@@ -0,0 +1,40 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ 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 QuotePreviewInvoiceParentSubscriptionDetails : StripeEntity, IHasMetadata
+ {
+ [JsonProperty("metadata")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("metadata")]
+#endif
+ public Dictionary Metadata { get; set; }
+
+ [JsonProperty("pause_collection")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("pause_collection")]
+#endif
+ public QuotePreviewInvoiceParentSubscriptionDetailsPauseCollection PauseCollection { get; set; }
+
+ [JsonProperty("subscription")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription")]
+#endif
+ public string Subscription { get; set; }
+
+ [JsonProperty("subscription_proration_date")]
+ [JsonConverter(typeof(UnixDateTimeConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("subscription_proration_date")]
+ [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
+#endif
+ public DateTime SubscriptionProrationDate { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
+ }
+}
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceSubscriptionDetailsPauseCollection.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParentSubscriptionDetailsPauseCollection.cs
similarity index 54%
rename from src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceSubscriptionDetailsPauseCollection.cs
rename to src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParentSubscriptionDetailsPauseCollection.cs
index e12c684681..1eed079be8 100644
--- a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceSubscriptionDetailsPauseCollection.cs
+++ b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceParentSubscriptionDetailsPauseCollection.cs
@@ -8,22 +8,14 @@ namespace Stripe
using STJS = System.Text.Json.Serialization;
#endif
- public class QuotePreviewInvoiceSubscriptionDetailsPauseCollection : StripeEntity
+ public class QuotePreviewInvoiceParentSubscriptionDetailsPauseCollection : StripeEntity
{
- ///
- /// The payment collection behavior for this subscription while paused. One of
- /// keep_as_draft, mark_uncollectible, or void.
- /// One of: keep_as_draft, mark_uncollectible, or void.
- ///
[JsonProperty("behavior")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("behavior")]
#endif
public string Behavior { get; set; }
- ///
- /// The time after which the subscription will resume collecting payments.
- ///
[JsonProperty("resumes_at")]
[JsonConverter(typeof(UnixDateTimeConverter))]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoicePaymentSettings.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoicePaymentSettings.cs
index 2c1825c683..c1ab7da081 100644
--- a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoicePaymentSettings.cs
+++ b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoicePaymentSettings.cs
@@ -40,11 +40,11 @@ public class QuotePreviewInvoicePaymentSettings : StripeEntityamazon_pay, au_becs_debit, bacs_debit, bancontact,
/// boleto, card, cashapp, custom, customer_balance,
/// eps, fpx, giropay, grabpay, id_bank_transfer,
- /// ideal, jp_credit_transfer, kakao_pay, konbini,
- /// kr_card, link, multibanco, naver_pay, p24,
- /// payco, paynow, paypal, promptpay, revolut_pay,
- /// sepa_credit_transfer, sepa_debit, sofort, swish,
- /// us_bank_account, or wechat_pay.
+ /// ideal, jp_credit_transfer, kakao_pay, klarna,
+ /// konbini, kr_card, link, multibanco, naver_pay,
+ /// nz_bank_account, p24, payco, paynow, paypal,
+ /// promptpay, revolut_pay, sepa_credit_transfer, sepa_debit,
+ /// sofort, swish, us_bank_account, or wechat_pay.
///
[JsonProperty("payment_method_types")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceSubscriptionDetails.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceSubscriptionDetails.cs
deleted file mode 100644
index e679eaad3d..0000000000
--- a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceSubscriptionDetails.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-// File generated from our OpenAPI spec
-namespace Stripe
-{
- using System.Collections.Generic;
- using Newtonsoft.Json;
-#if NET6_0_OR_GREATER
- using STJS = System.Text.Json.Serialization;
-#endif
-
- public class QuotePreviewInvoiceSubscriptionDetails : StripeEntity, IHasMetadata
- {
- ///
- /// Set of key-value pairs defined as
- /// subscription metadata when an invoice is created. Becomes an immutable snapshot of the
- /// subscription metadata at the time of invoice finalization. Note: This attribute is
- /// populated only for invoices created on or after June 29, 2023..
- ///
- [JsonProperty("metadata")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("metadata")]
-#endif
- public Dictionary Metadata { get; set; }
-
- ///
- /// If specified, payment collection for this subscription will be paused. Note that the
- /// subscription status will be unchanged and will not be updated to paused. Learn
- /// more about pausing
- /// collection.
- ///
- [JsonProperty("pause_collection")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("pause_collection")]
-#endif
- public QuotePreviewInvoiceSubscriptionDetailsPauseCollection PauseCollection { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTotalTax.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTotalTax.cs
new file mode 100644
index 0000000000..c5cc054fe1
--- /dev/null
+++ b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTotalTax.cs
@@ -0,0 +1,74 @@
+// 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 QuotePreviewInvoiceTotalTax : StripeEntity
+ {
+ ///
+ /// The amount of the tax, in cents (or local equivalent).
+ ///
+ [JsonProperty("amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("amount")]
+#endif
+ public long Amount { get; set; }
+
+ ///
+ /// Whether this tax is inclusive or exclusive.
+ /// One of: exclusive, or inclusive.
+ ///
+ [JsonProperty("tax_behavior")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_behavior")]
+#endif
+ public string TaxBehavior { get; set; }
+
+ ///
+ /// Additional details about the tax rate. Only present when type is
+ /// tax_rate_details.
+ ///
+ [JsonProperty("tax_rate_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_rate_details")]
+#endif
+ public QuotePreviewInvoiceTotalTaxTaxRateDetails TaxRateDetails { get; set; }
+
+ ///
+ /// The reasoning behind this tax, for example, if the product is tax exempt. The possible
+ /// values for this field may be extended as new tax rules are supported.
+ /// One of: customer_exempt, not_available, not_collecting,
+ /// not_subject_to_tax, not_supported, portion_product_exempt,
+ /// portion_reduced_rated, portion_standard_rated, product_exempt,
+ /// product_exempt_holiday, proportionally_rated, reduced_rated,
+ /// reverse_charge, standard_rated, taxable_basis_reduced, or
+ /// zero_rated.
+ ///
+ [JsonProperty("taxability_reason")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("taxability_reason")]
+#endif
+ public string TaxabilityReason { get; set; }
+
+ ///
+ /// The amount on which tax is calculated, in cents (or local equivalent).
+ ///
+ [JsonProperty("taxable_amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("taxable_amount")]
+#endif
+ public long? TaxableAmount { get; set; }
+
+ ///
+ /// The type of tax information.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTotalTaxAmount.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTotalTaxAmount.cs
deleted file mode 100644
index a8bc5a331f..0000000000
--- a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTotalTaxAmount.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-// File generated from our OpenAPI spec
-namespace Stripe
-{
- using Newtonsoft.Json;
- using Stripe.Infrastructure;
-#if NET6_0_OR_GREATER
- using STJS = System.Text.Json.Serialization;
-#endif
-
-#if NET6_0_OR_GREATER
- [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
-#endif
- public class QuotePreviewInvoiceTotalTaxAmount : StripeEntity
- {
- ///
- /// The amount, in cents (or local equivalent), of the tax.
- ///
- [JsonProperty("amount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount")]
-#endif
- public long Amount { get; set; }
-
- ///
- /// Whether this tax amount is inclusive or exclusive.
- ///
- [JsonProperty("inclusive")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("inclusive")]
-#endif
- public bool Inclusive { get; set; }
-
- #region Expandable TaxRate
-
- ///
- /// (ID of the TaxRate)
- /// The tax rate that was applied to get this tax amount.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string TaxRateId
- {
- get => this.InternalTaxRate?.Id;
- set => this.InternalTaxRate = SetExpandableFieldId(value, this.InternalTaxRate);
- }
-
- ///
- /// (Expanded)
- /// The tax rate that was applied to get this tax amount.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public TaxRate TaxRate
- {
- get => this.InternalTaxRate?.ExpandedObject;
- set => this.InternalTaxRate = SetExpandableFieldObject(value, this.InternalTaxRate);
- }
-
- [JsonProperty("tax_rate")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("tax_rate")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalTaxRate { get; set; }
- #endregion
-
- ///
- /// The reasoning behind this tax, for example, if the product is tax exempt. The possible
- /// values for this field may be extended as new tax rules are supported.
- /// One of: customer_exempt, not_collecting, not_subject_to_tax,
- /// not_supported, portion_product_exempt, portion_reduced_rated,
- /// portion_standard_rated, product_exempt, product_exempt_holiday,
- /// proportionally_rated, reduced_rated, reverse_charge,
- /// standard_rated, taxable_basis_reduced, or zero_rated.
- ///
- [JsonProperty("taxability_reason")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("taxability_reason")]
-#endif
- public string TaxabilityReason { get; set; }
-
- ///
- /// The amount on which tax is calculated, in cents (or local equivalent).
- ///
- [JsonProperty("taxable_amount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("taxable_amount")]
-#endif
- public long? TaxableAmount { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTotalTaxTaxRateDetails.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTotalTaxTaxRateDetails.cs
new file mode 100644
index 0000000000..1df1da07dc
--- /dev/null
+++ b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTotalTaxTaxRateDetails.cs
@@ -0,0 +1,17 @@
+// 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 QuotePreviewInvoiceTotalTaxTaxRateDetails : StripeEntity
+ {
+ [JsonProperty("tax_rate")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("tax_rate")]
+#endif
+ public string TaxRate { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTransferData.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTransferData.cs
deleted file mode 100644
index bf49b44ceb..0000000000
--- a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoiceTransferData.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-// File generated from our OpenAPI spec
-namespace Stripe
-{
- using Newtonsoft.Json;
- using Stripe.Infrastructure;
-#if NET6_0_OR_GREATER
- using STJS = System.Text.Json.Serialization;
-#endif
-
-#if NET6_0_OR_GREATER
- [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))]
-#endif
- public class QuotePreviewInvoiceTransferData : StripeEntity
- {
- ///
- /// The amount in cents (or local equivalent) that will be transferred to the destination
- /// account when the invoice is paid. By default, the entire amount is transferred to the
- /// destination.
- ///
- [JsonProperty("amount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount")]
-#endif
- public long? Amount { get; set; }
-
- #region Expandable Destination
-
- ///
- /// (ID of the Account)
- /// The account where funds from the payment will be transferred to upon payment success.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string DestinationId
- {
- get => this.InternalDestination?.Id;
- set => this.InternalDestination = SetExpandableFieldId(value, this.InternalDestination);
- }
-
- ///
- /// (Expanded)
- /// The account where funds from the payment will be transferred to upon payment success.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public Account Destination
- {
- get => this.InternalDestination?.ExpandedObject;
- set => this.InternalDestination = SetExpandableFieldObject(value, this.InternalDestination);
- }
-
- [JsonProperty("destination")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("destination")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalDestination { get; set; }
- #endregion
- }
-}
diff --git a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionScheduleDefaultSettings.cs b/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionScheduleDefaultSettings.cs
index a86020187e..6301cbe376 100644
--- a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionScheduleDefaultSettings.cs
+++ b/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionScheduleDefaultSettings.cs
@@ -43,16 +43,6 @@ public class QuotePreviewSubscriptionScheduleDefaultSettings : StripeEntity
- /// Define thresholds at which an invoice will be sent, and the subscription advanced to a
- /// new billing period.
- ///
- [JsonProperty("billing_thresholds")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("billing_thresholds")]
-#endif
- public QuotePreviewSubscriptionScheduleDefaultSettingsBillingThresholds BillingThresholds { get; set; }
-
///
/// Either charge_automatically, or send_invoice. When charging automatically,
/// Stripe will attempt to pay the underlying subscription at the end of each billing cycle
diff --git a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionScheduleDefaultSettingsBillingThresholds.cs b/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionScheduleDefaultSettingsBillingThresholds.cs
deleted file mode 100644
index 5b7e615ca2..0000000000
--- a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionScheduleDefaultSettingsBillingThresholds.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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 QuotePreviewSubscriptionScheduleDefaultSettingsBillingThresholds : StripeEntity
- {
- ///
- /// Monetary threshold that triggers the subscription to create an invoice.
- ///
- [JsonProperty("amount_gte")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount_gte")]
-#endif
- public long? AmountGte { get; set; }
-
- ///
- /// Indicates if the billing_cycle_anchor should be reset when a threshold is
- /// reached. If true, billing_cycle_anchor will be updated to the date/time the
- /// threshold was last reached; otherwise, the value will remain unchanged. This value may
- /// not be true if the subscription contains items with plans that have
- /// aggregate_usage=last_ever.
- ///
- [JsonProperty("reset_billing_cycle_anchor")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("reset_billing_cycle_anchor")]
-#endif
- public bool? ResetBillingCycleAnchor { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhase.cs b/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhase.cs
index 68332e8ec0..e6ea5688d4 100644
--- a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhase.cs
+++ b/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhase.cs
@@ -55,16 +55,6 @@ public class QuotePreviewSubscriptionSchedulePhase : StripeEntity
- /// Define thresholds at which an invoice will be sent, and the subscription advanced to a
- /// new billing period.
- ///
- [JsonProperty("billing_thresholds")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("billing_thresholds")]
-#endif
- public QuotePreviewSubscriptionSchedulePhaseBillingThresholds BillingThresholds { get; set; }
-
///
/// Either charge_automatically, or send_invoice. When charging automatically,
/// Stripe will attempt to pay the underlying subscription at the end of each billing cycle
@@ -79,47 +69,6 @@ public class QuotePreviewSubscriptionSchedulePhase : StripeEntity
- /// (ID of the Coupon)
- /// ID of the coupon to use during this phase of the subscription schedule.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string CouponId
- {
- get => this.InternalCoupon?.Id;
- set => this.InternalCoupon = SetExpandableFieldId(value, this.InternalCoupon);
- }
-
- ///
- /// (Expanded)
- /// ID of the coupon to use during this phase of the subscription schedule.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public Coupon Coupon
- {
- get => this.InternalCoupon?.ExpandedObject;
- set => this.InternalCoupon = SetExpandableFieldObject(value, this.InternalCoupon);
- }
-
- [JsonProperty("coupon")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("coupon")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalCoupon { get; set; }
- #endregion
-
///
/// Three-letter ISO currency
/// code, in lowercase. Must be a supported
diff --git a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhaseBillingThresholds.cs b/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhaseBillingThresholds.cs
deleted file mode 100644
index c9f1be9bc6..0000000000
--- a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhaseBillingThresholds.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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 QuotePreviewSubscriptionSchedulePhaseBillingThresholds : StripeEntity
- {
- ///
- /// Monetary threshold that triggers the subscription to create an invoice.
- ///
- [JsonProperty("amount_gte")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount_gte")]
-#endif
- public long? AmountGte { get; set; }
-
- ///
- /// Indicates if the billing_cycle_anchor should be reset when a threshold is
- /// reached. If true, billing_cycle_anchor will be updated to the date/time the
- /// threshold was last reached; otherwise, the value will remain unchanged. This value may
- /// not be true if the subscription contains items with plans that have
- /// aggregate_usage=last_ever.
- ///
- [JsonProperty("reset_billing_cycle_anchor")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("reset_billing_cycle_anchor")]
-#endif
- public bool? ResetBillingCycleAnchor { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhaseItem.cs b/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhaseItem.cs
index 6c0221ebfd..0a53165888 100644
--- a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhaseItem.cs
+++ b/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhaseItem.cs
@@ -13,16 +13,6 @@ namespace Stripe
#endif
public class QuotePreviewSubscriptionSchedulePhaseItem : StripeEntity, IHasMetadata
{
- ///
- /// Define thresholds at which an invoice will be sent, and the related subscription
- /// advanced to a new billing period.
- ///
- [JsonProperty("billing_thresholds")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("billing_thresholds")]
-#endif
- public QuotePreviewSubscriptionSchedulePhaseItemBillingThresholds BillingThresholds { get; set; }
-
///
/// The discounts applied to the subscription item. Subscription item discounts are applied
/// before subscription discounts. Use expand[]=discounts to expand each discount.
diff --git a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhaseItemBillingThresholds.cs b/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhaseItemBillingThresholds.cs
deleted file mode 100644
index 90bd85e363..0000000000
--- a/src/Stripe.net/Entities/QuotePreviewSubscriptionSchedules/QuotePreviewSubscriptionSchedulePhaseItemBillingThresholds.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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 QuotePreviewSubscriptionSchedulePhaseItemBillingThresholds : StripeEntity
- {
- ///
- /// Usage threshold that triggers the subscription to create an invoice.
- ///
- [JsonProperty("usage_gte")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("usage_gte")]
-#endif
- public long? UsageGte { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/Quotes/QuoteAutomaticTax.cs b/src/Stripe.net/Entities/Quotes/QuoteAutomaticTax.cs
index 14510fa376..18acdb19a7 100644
--- a/src/Stripe.net/Entities/Quotes/QuoteAutomaticTax.cs
+++ b/src/Stripe.net/Entities/Quotes/QuoteAutomaticTax.cs
@@ -28,6 +28,15 @@ public class QuoteAutomaticTax : StripeEntity
#endif
public QuoteAutomaticTaxLiability Liability { get; set; }
+ ///
+ /// The tax provider powering automatic tax.
+ ///
+ [JsonProperty("provider")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("provider")]
+#endif
+ public string Provider { get; set; }
+
///
/// The status of the most recent automated tax calculation for this quote.
/// One of: complete, failed, or requires_location_inputs.
diff --git a/src/Stripe.net/Entities/Refunds/Refund.cs b/src/Stripe.net/Entities/Refunds/Refund.cs
index 82098c259b..84567e583e 100644
--- a/src/Stripe.net/Entities/Refunds/Refund.cs
+++ b/src/Stripe.net/Entities/Refunds/Refund.cs
@@ -290,6 +290,12 @@ public PaymentIntent PaymentIntent
internal ExpandableField InternalPaymentIntent { get; set; }
#endregion
+ [JsonProperty("presentment_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_details")]
+#endif
+ public RefundPresentmentDetails PresentmentDetails { get; set; }
+
///
/// Reason for the refund, which is either user-provided (duplicate,
/// fraudulent, or requested_by_customer) or generated by Stripe internally
diff --git a/src/Stripe.net/Entities/Refunds/RefundDestinationDetails.cs b/src/Stripe.net/Entities/Refunds/RefundDestinationDetails.cs
index 5ff960e736..9275d75fae 100644
--- a/src/Stripe.net/Entities/Refunds/RefundDestinationDetails.cs
+++ b/src/Stripe.net/Entities/Refunds/RefundDestinationDetails.cs
@@ -134,6 +134,12 @@ public class RefundDestinationDetails : StripeEntity
#endif
public RefundDestinationDetailsMxBankTransfer MxBankTransfer { get; set; }
+ [JsonProperty("nz_bank_transfer")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("nz_bank_transfer")]
+#endif
+ public RefundDestinationDetailsNzBankTransfer NzBankTransfer { get; set; }
+
[JsonProperty("p24")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("p24")]
diff --git a/src/Stripe.net/Entities/Refunds/RefundDestinationDetailsNzBankTransfer.cs b/src/Stripe.net/Entities/Refunds/RefundDestinationDetailsNzBankTransfer.cs
new file mode 100644
index 0000000000..5515ee87ad
--- /dev/null
+++ b/src/Stripe.net/Entities/Refunds/RefundDestinationDetailsNzBankTransfer.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class RefundDestinationDetailsNzBankTransfer : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/Refunds/RefundPresentmentDetails.cs b/src/Stripe.net/Entities/Refunds/RefundPresentmentDetails.cs
new file mode 100644
index 0000000000..02cfa96671
--- /dev/null
+++ b/src/Stripe.net/Entities/Refunds/RefundPresentmentDetails.cs
@@ -0,0 +1,29 @@
+// 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 RefundPresentmentDetails : StripeEntity
+ {
+ ///
+ /// Amount intended to be collected by this payment, denominated in presentment_currency.
+ ///
+ [JsonProperty("presentment_amount")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_amount")]
+#endif
+ public long PresentmentAmount { get; set; }
+
+ ///
+ /// Currency presented to the customer during payment.
+ ///
+ [JsonProperty("presentment_currency")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("presentment_currency")]
+#endif
+ public string PresentmentCurrency { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Reviews/Review.cs b/src/Stripe.net/Entities/Reviews/Review.cs
index 54b80129bb..7eec9e2a4b 100644
--- a/src/Stripe.net/Entities/Reviews/Review.cs
+++ b/src/Stripe.net/Entities/Reviews/Review.cs
@@ -89,10 +89,10 @@ public Charge Charge
///
/// The reason the review was closed, or null if it has not yet been closed. One of
- /// approved, refunded, refunded_as_fraud, disputed, or
- /// redacted.
- /// One of: approved, disputed, redacted, refunded, or
- /// refunded_as_fraud.
+ /// approved, refunded, refunded_as_fraud, disputed,
+ /// redacted, or canceled.
+ /// One of: approved, canceled, disputed, redacted,
+ /// refunded, or refunded_as_fraud.
///
[JsonProperty("closed_reason")]
#if NET6_0_OR_GREATER
@@ -203,8 +203,8 @@ public PaymentIntent PaymentIntent
///
/// The reason the review is currently open or closed. One of rule, manual,
- /// approved, refunded, refunded_as_fraud, disputed, or
- /// redacted.
+ /// approved, refunded, refunded_as_fraud, disputed,
+ /// redacted, or canceled.
///
[JsonProperty("reason")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetails.cs b/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetails.cs
index 29dee91282..e4c2d20be2 100644
--- a/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetails.cs
+++ b/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetails.cs
@@ -98,6 +98,18 @@ public class SetupAttemptPaymentMethodDetails : StripeEntity
+ {
+ ///
+ /// Uniquely identifies this particular Naver Pay account. You can use this attribute to
+ /// check whether two Naver Pay accounts are the same.
+ ///
+ [JsonProperty("buyer_id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("buyer_id")]
+#endif
+ public string BuyerId { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetailsNzBankAccount.cs b/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetailsNzBankAccount.cs
new file mode 100644
index 0000000000..4f92dad0b4
--- /dev/null
+++ b/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetailsNzBankAccount.cs
@@ -0,0 +1,7 @@
+// File generated from our OpenAPI spec
+namespace Stripe
+{
+ public class SetupAttemptPaymentMethodDetailsNzBankAccount : StripeEntity
+ {
+ }
+}
diff --git a/src/Stripe.net/Entities/SubscriptionItems/SubscriptionItem.cs b/src/Stripe.net/Entities/SubscriptionItems/SubscriptionItem.cs
index d6c8893274..1c996ff0e8 100644
--- a/src/Stripe.net/Entities/SubscriptionItems/SubscriptionItem.cs
+++ b/src/Stripe.net/Entities/SubscriptionItems/SubscriptionItem.cs
@@ -38,25 +38,37 @@ public class SubscriptionItem : StripeEntity, IHasId, IHasMeta
public string Object { get; set; }
///
- /// Define thresholds at which an invoice will be sent, and the related subscription
- /// advanced to a new billing period.
+ /// Time at which the object was created. Measured in seconds since the Unix epoch.
///
- [JsonProperty("billing_thresholds")]
+ [JsonProperty("created")]
+ [JsonConverter(typeof(UnixDateTimeConverter))]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("billing_thresholds")]
+ [STJS.JsonPropertyName("created")]
+ [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
#endif
- public SubscriptionItemBillingThresholds BillingThresholds { get; set; }
+ public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
///
- /// Time at which the object was created. Measured in seconds since the Unix epoch.
+ /// The end time of this subscription item's current billing period.
///
- [JsonProperty("created")]
+ [JsonProperty("current_period_end")]
[JsonConverter(typeof(UnixDateTimeConverter))]
#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("created")]
+ [STJS.JsonPropertyName("current_period_end")]
[STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
#endif
- public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
+ public DateTime CurrentPeriodEnd { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
+
+ ///
+ /// The start time of this subscription item's current billing period.
+ ///
+ [JsonProperty("current_period_start")]
+ [JsonConverter(typeof(UnixDateTimeConverter))]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("current_period_start")]
+ [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
+#endif
+ public DateTime CurrentPeriodStart { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
///
/// Whether this object is deleted or not.
diff --git a/src/Stripe.net/Entities/SubscriptionItems/SubscriptionItemBillingThresholds.cs b/src/Stripe.net/Entities/SubscriptionItems/SubscriptionItemBillingThresholds.cs
deleted file mode 100644
index 6e5501e26b..0000000000
--- a/src/Stripe.net/Entities/SubscriptionItems/SubscriptionItemBillingThresholds.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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 SubscriptionItemBillingThresholds : StripeEntity
- {
- ///
- /// Usage threshold that triggers the subscription to create an invoice.
- ///
- [JsonProperty("usage_gte")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("usage_gte")]
-#endif
- public long? UsageGte { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionScheduleDefaultSettings.cs b/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionScheduleDefaultSettings.cs
index 35459e069a..80163c265a 100644
--- a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionScheduleDefaultSettings.cs
+++ b/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionScheduleDefaultSettings.cs
@@ -43,16 +43,6 @@ public class SubscriptionScheduleDefaultSettings : StripeEntity
- /// Define thresholds at which an invoice will be sent, and the subscription advanced to a
- /// new billing period.
- ///
- [JsonProperty("billing_thresholds")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("billing_thresholds")]
-#endif
- public SubscriptionScheduleDefaultSettingsBillingThresholds BillingThresholds { get; set; }
-
///
/// Either charge_automatically, or send_invoice. When charging automatically,
/// Stripe will attempt to pay the underlying subscription at the end of each billing cycle
diff --git a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionScheduleDefaultSettingsBillingThresholds.cs b/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionScheduleDefaultSettingsBillingThresholds.cs
deleted file mode 100644
index c2f87dbce4..0000000000
--- a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionScheduleDefaultSettingsBillingThresholds.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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 SubscriptionScheduleDefaultSettingsBillingThresholds : StripeEntity
- {
- ///
- /// Monetary threshold that triggers the subscription to create an invoice.
- ///
- [JsonProperty("amount_gte")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount_gte")]
-#endif
- public long? AmountGte { get; set; }
-
- ///
- /// Indicates if the billing_cycle_anchor should be reset when a threshold is
- /// reached. If true, billing_cycle_anchor will be updated to the date/time the
- /// threshold was last reached; otherwise, the value will remain unchanged. This value may
- /// not be true if the subscription contains items with plans that have
- /// aggregate_usage=last_ever.
- ///
- [JsonProperty("reset_billing_cycle_anchor")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("reset_billing_cycle_anchor")]
-#endif
- public bool? ResetBillingCycleAnchor { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhase.cs b/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhase.cs
index 638b30822c..cb26ef271c 100644
--- a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhase.cs
+++ b/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhase.cs
@@ -55,16 +55,6 @@ public class SubscriptionSchedulePhase : StripeEntity
#endif
public string BillingCycleAnchor { get; set; }
- ///
- /// Define thresholds at which an invoice will be sent, and the subscription advanced to a
- /// new billing period.
- ///
- [JsonProperty("billing_thresholds")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("billing_thresholds")]
-#endif
- public SubscriptionSchedulePhaseBillingThresholds BillingThresholds { get; set; }
-
///
/// Either charge_automatically, or send_invoice. When charging automatically,
/// Stripe will attempt to pay the underlying subscription at the end of each billing cycle
@@ -79,47 +69,6 @@ public class SubscriptionSchedulePhase : StripeEntity
#endif
public string CollectionMethod { get; set; }
- #region Expandable Coupon
-
- ///
- /// (ID of the Coupon)
- /// ID of the coupon to use during this phase of the subscription schedule.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public string CouponId
- {
- get => this.InternalCoupon?.Id;
- set => this.InternalCoupon = SetExpandableFieldId(value, this.InternalCoupon);
- }
-
- ///
- /// (Expanded)
- /// ID of the coupon to use during this phase of the subscription schedule.
- ///
- /// For more information, see the expand documentation.
- ///
- [JsonIgnore]
-#if NET6_0_OR_GREATER
- [STJS.JsonIgnore]
-#endif
- public Coupon Coupon
- {
- get => this.InternalCoupon?.ExpandedObject;
- set => this.InternalCoupon = SetExpandableFieldObject(value, this.InternalCoupon);
- }
-
- [JsonProperty("coupon")]
- [JsonConverter(typeof(ExpandableFieldConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("coupon")]
- [STJS.JsonConverter(typeof(STJExpandableFieldConverter))]
-#endif
- internal ExpandableField InternalCoupon { get; set; }
- #endregion
-
///
/// Three-letter ISO currency
/// code, in lowercase. Must be a supported
diff --git a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhaseBillingThresholds.cs b/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhaseBillingThresholds.cs
deleted file mode 100644
index c55587d44e..0000000000
--- a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhaseBillingThresholds.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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 SubscriptionSchedulePhaseBillingThresholds : StripeEntity
- {
- ///
- /// Monetary threshold that triggers the subscription to create an invoice.
- ///
- [JsonProperty("amount_gte")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount_gte")]
-#endif
- public long? AmountGte { get; set; }
-
- ///
- /// Indicates if the billing_cycle_anchor should be reset when a threshold is
- /// reached. If true, billing_cycle_anchor will be updated to the date/time the
- /// threshold was last reached; otherwise, the value will remain unchanged. This value may
- /// not be true if the subscription contains items with plans that have
- /// aggregate_usage=last_ever.
- ///
- [JsonProperty("reset_billing_cycle_anchor")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("reset_billing_cycle_anchor")]
-#endif
- public bool? ResetBillingCycleAnchor { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhaseItem.cs b/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhaseItem.cs
index 2e6d113cba..df000d5679 100644
--- a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhaseItem.cs
+++ b/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhaseItem.cs
@@ -13,16 +13,6 @@ namespace Stripe
#endif
public class SubscriptionSchedulePhaseItem : StripeEntity, IHasMetadata
{
- ///
- /// Define thresholds at which an invoice will be sent, and the related subscription
- /// advanced to a new billing period.
- ///
- [JsonProperty("billing_thresholds")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("billing_thresholds")]
-#endif
- public SubscriptionSchedulePhaseItemBillingThresholds BillingThresholds { get; set; }
-
///
/// The discounts applied to the subscription item. Subscription item discounts are applied
/// before subscription discounts. Use expand[]=discounts to expand each discount.
diff --git a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhaseItemBillingThresholds.cs b/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhaseItemBillingThresholds.cs
deleted file mode 100644
index 8a25fdb981..0000000000
--- a/src/Stripe.net/Entities/SubscriptionSchedules/SubscriptionSchedulePhaseItemBillingThresholds.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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 SubscriptionSchedulePhaseItemBillingThresholds : StripeEntity
- {
- ///
- /// Usage threshold that triggers the subscription to create an invoice.
- ///
- [JsonProperty("usage_gte")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("usage_gte")]
-#endif
- public long? UsageGte { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/Subscriptions/Subscription.cs b/src/Stripe.net/Entities/Subscriptions/Subscription.cs
index 51a986bdff..801a6d2b1a 100644
--- a/src/Stripe.net/Entities/Subscriptions/Subscription.cs
+++ b/src/Stripe.net/Entities/Subscriptions/Subscription.cs
@@ -121,16 +121,6 @@ public Application Application
#endif
public SubscriptionBillingCycleAnchorConfig BillingCycleAnchorConfig { get; set; }
- ///
- /// Define thresholds at which an invoice will be sent, and the subscription advanced to a
- /// new billing period.
- ///
- [JsonProperty("billing_thresholds")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("billing_thresholds")]
-#endif
- public SubscriptionBillingThresholds BillingThresholds { get; set; }
-
///
/// A date in the future at which the subscription will automatically get canceled.
///
@@ -150,7 +140,7 @@ public Application Application
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("cancel_at_period_end")]
#endif
- public bool CancelAtPeriodEnd { get; set; }
+ public bool? CancelAtPeriodEnd { get; set; }
///
/// If the subscription has been canceled, the date of that cancellation. If the
@@ -211,29 +201,6 @@ public Application Application
#endif
public string Currency { get; set; }
- ///
- /// End of the current period that the subscription has been invoiced for. At the end of
- /// this period, a new invoice will be created.
- ///
- [JsonProperty("current_period_end")]
- [JsonConverter(typeof(UnixDateTimeConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("current_period_end")]
- [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
-#endif
- public DateTime CurrentPeriodEnd { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
-
- ///
- /// Start of the current period that the subscription has been invoiced for.
- ///
- [JsonProperty("current_period_start")]
- [JsonConverter(typeof(UnixDateTimeConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("current_period_start")]
- [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
-#endif
- public DateTime CurrentPeriodStart { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
-
#region Expandable Customer
///
@@ -412,18 +379,6 @@ public IPaymentSource DefaultSource
#endif
public string Description { get; set; }
- ///
- /// Describes the current discount applied to this subscription, if there is one. When
- /// billing, a discount applied to a subscription overrides a discount applied on a
- /// customer-wide basis. This field has been deprecated and will be removed in a future API
- /// version. Use discounts instead.
- ///
- [JsonProperty("discount")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("discount")]
-#endif
- public Discount Discount { get; set; }
-
#region Expandable Discounts
///
@@ -579,7 +534,9 @@ public Invoice LatestInvoice
///
/// (ID of the Account)
/// The account (if any) the charge was made on behalf of for charges associated with this
- /// subscription. See the Connect documentation for details.
+ /// subscription. See the Connect
+ /// documentation for details.
///
[JsonIgnore]
#if NET6_0_OR_GREATER
@@ -594,7 +551,9 @@ public string OnBehalfOfId
///
/// (Expanded)
/// The account (if any) the charge was made on behalf of for charges associated with this
- /// subscription. See the Connect documentation for details.
+ /// subscription. See the Connect
+ /// documentation for details.
///
/// For more information, see the expand documentation.
///
diff --git a/src/Stripe.net/Entities/Subscriptions/SubscriptionBillingThresholds.cs b/src/Stripe.net/Entities/Subscriptions/SubscriptionBillingThresholds.cs
deleted file mode 100644
index b243bff262..0000000000
--- a/src/Stripe.net/Entities/Subscriptions/SubscriptionBillingThresholds.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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 SubscriptionBillingThresholds : StripeEntity
- {
- ///
- /// Monetary threshold that triggers the subscription to create an invoice.
- ///
- [JsonProperty("amount_gte")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("amount_gte")]
-#endif
- public long? AmountGte { get; set; }
-
- ///
- /// Indicates if the billing_cycle_anchor should be reset when a threshold is
- /// reached. If true, billing_cycle_anchor will be updated to the date/time the
- /// threshold was last reached; otherwise, the value will remain unchanged. This value may
- /// not be true if the subscription contains items with plans that have
- /// aggregate_usage=last_ever.
- ///
- [JsonProperty("reset_billing_cycle_anchor")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("reset_billing_cycle_anchor")]
-#endif
- public bool? ResetBillingCycleAnchor { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs b/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs
index e8bcb184ec..01ef7759d9 100644
--- a/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs
+++ b/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs
@@ -30,11 +30,11 @@ public class SubscriptionPaymentSettings : StripeEntityamazon_pay, au_becs_debit, bacs_debit, bancontact,
/// boleto, card, cashapp, custom, customer_balance,
/// eps, fpx, giropay, grabpay, id_bank_transfer,
- /// ideal, jp_credit_transfer, kakao_pay, konbini,
- /// kr_card, link, multibanco, naver_pay, p24,
- /// payco, paynow, paypal, promptpay, revolut_pay,
- /// sepa_credit_transfer, sepa_debit, sofort, swish,
- /// us_bank_account, or wechat_pay.
+ /// ideal, jp_credit_transfer, kakao_pay, klarna,
+ /// konbini, kr_card, link, multibanco, naver_pay,
+ /// nz_bank_account, p24, payco, paynow, paypal,
+ /// promptpay, revolut_pay, sepa_credit_transfer, sepa_debit,
+ /// sofort, swish, us_bank_account, or wechat_pay.
///
[JsonProperty("payment_method_types")]
#if NET6_0_OR_GREATER
diff --git a/src/Stripe.net/Entities/Terminal/Configurations/Configuration.cs b/src/Stripe.net/Entities/Terminal/Configurations/Configuration.cs
index 8a90ece59f..25bb6ea534 100644
--- a/src/Stripe.net/Entities/Terminal/Configurations/Configuration.cs
+++ b/src/Stripe.net/Entities/Terminal/Configurations/Configuration.cs
@@ -103,5 +103,11 @@ public class Configuration : StripeEntity, IHasId, IHasObject
[STJS.JsonPropertyName("verifone_p400")]
#endif
public ConfigurationVerifoneP400 VerifoneP400 { get; set; }
+
+ [JsonProperty("wifi")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("wifi")]
+#endif
+ public ConfigurationWifi Wifi { get; set; }
}
}
diff --git a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationBbposWiseposE.cs b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationBbposWiseposE.cs
index f07cc8a12e..e3f53283c5 100644
--- a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationBbposWiseposE.cs
+++ b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationBbposWiseposE.cs
@@ -16,7 +16,7 @@ public class ConfigurationBbposWiseposE : StripeEntity
/// (ID of the File)
- /// A File ID representing an image you would like displayed on the reader.
+ /// A File ID representing an image to display on the reader.
///
[JsonIgnore]
#if NET6_0_OR_GREATER
@@ -30,7 +30,7 @@ public string SplashscreenId
///
/// (Expanded)
- /// A File ID representing an image you would like displayed on the reader.
+ /// A File ID representing an image to display on the reader.
///
/// For more information, see the expand documentation.
///
diff --git a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationStripeS700.cs b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationStripeS700.cs
index aefbb6d175..48d1cd224a 100644
--- a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationStripeS700.cs
+++ b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationStripeS700.cs
@@ -16,7 +16,7 @@ public class ConfigurationStripeS700 : StripeEntity
///
/// (ID of the File)
- /// A File ID representing an image you would like displayed on the reader.
+ /// A File ID representing an image to display on the reader.
///
[JsonIgnore]
#if NET6_0_OR_GREATER
@@ -30,7 +30,7 @@ public string SplashscreenId
///
/// (Expanded)
- /// A File ID representing an image you would like displayed on the reader.
+ /// A File ID representing an image to display on the reader.
///
/// For more information, see the expand documentation.
///
diff --git a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationVerifoneP400.cs b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationVerifoneP400.cs
index 48c466f980..8673524b2e 100644
--- a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationVerifoneP400.cs
+++ b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationVerifoneP400.cs
@@ -16,7 +16,7 @@ public class ConfigurationVerifoneP400 : StripeEntity
///
/// (ID of the File)
- /// A File ID representing an image you would like displayed on the reader.
+ /// A File ID representing an image to display on the reader.
///
[JsonIgnore]
#if NET6_0_OR_GREATER
@@ -30,7 +30,7 @@ public string SplashscreenId
///
/// (Expanded)
- /// A File ID representing an image you would like displayed on the reader.
+ /// A File ID representing an image to display on the reader.
///
/// For more information, see the expand documentation.
///
diff --git a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifi.cs b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifi.cs
new file mode 100644
index 0000000000..ff8ddc0f88
--- /dev/null
+++ b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifi.cs
@@ -0,0 +1,40 @@
+// File generated from our OpenAPI spec
+namespace Stripe.Terminal
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class ConfigurationWifi : StripeEntity
+ {
+ [JsonProperty("enterprise_eap_peap")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("enterprise_eap_peap")]
+#endif
+ public ConfigurationWifiEnterpriseEapPeap EnterpriseEapPeap { get; set; }
+
+ [JsonProperty("enterprise_eap_tls")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("enterprise_eap_tls")]
+#endif
+ public ConfigurationWifiEnterpriseEapTls EnterpriseEapTls { get; set; }
+
+ [JsonProperty("personal_psk")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("personal_psk")]
+#endif
+ public ConfigurationWifiPersonalPsk PersonalPsk { get; set; }
+
+ ///
+ /// Security type of the WiFi network. The hash with the corresponding name contains the
+ /// credentials for this security type.
+ /// One of: enterprise_eap_peap, enterprise_eap_tls, or personal_psk.
+ ///
+ [JsonProperty("type")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("type")]
+#endif
+ public string Type { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifiEnterpriseEapPeap.cs b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifiEnterpriseEapPeap.cs
new file mode 100644
index 0000000000..d24f53960e
--- /dev/null
+++ b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifiEnterpriseEapPeap.cs
@@ -0,0 +1,47 @@
+// File generated from our OpenAPI spec
+namespace Stripe.Terminal
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class ConfigurationWifiEnterpriseEapPeap : StripeEntity
+ {
+ ///
+ /// A File ID representing a PEM file containing the server certificate.
+ ///
+ [JsonProperty("ca_certificate_file")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ca_certificate_file")]
+#endif
+ public string CaCertificateFile { get; set; }
+
+ ///
+ /// Password for connecting to the WiFi network.
+ ///
+ [JsonProperty("password")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("password")]
+#endif
+ public string Password { get; set; }
+
+ ///
+ /// Name of the WiFi network.
+ ///
+ [JsonProperty("ssid")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ssid")]
+#endif
+ public string Ssid { get; set; }
+
+ ///
+ /// Username for connecting to the WiFi network.
+ ///
+ [JsonProperty("username")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("username")]
+#endif
+ public string Username { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifiEnterpriseEapTls.cs b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifiEnterpriseEapTls.cs
new file mode 100644
index 0000000000..6be66dba33
--- /dev/null
+++ b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifiEnterpriseEapTls.cs
@@ -0,0 +1,56 @@
+// File generated from our OpenAPI spec
+namespace Stripe.Terminal
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class ConfigurationWifiEnterpriseEapTls : StripeEntity
+ {
+ ///
+ /// A File ID representing a PEM file containing the server certificate.
+ ///
+ [JsonProperty("ca_certificate_file")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ca_certificate_file")]
+#endif
+ public string CaCertificateFile { get; set; }
+
+ ///
+ /// A File ID representing a PEM file containing the client certificate.
+ ///
+ [JsonProperty("client_certificate_file")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("client_certificate_file")]
+#endif
+ public string ClientCertificateFile { get; set; }
+
+ ///
+ /// A File ID representing a PEM file containing the client RSA private key.
+ ///
+ [JsonProperty("private_key_file")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("private_key_file")]
+#endif
+ public string PrivateKeyFile { get; set; }
+
+ ///
+ /// Password for the private key file.
+ ///
+ [JsonProperty("private_key_file_password")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("private_key_file_password")]
+#endif
+ public string PrivateKeyFilePassword { get; set; }
+
+ ///
+ /// Name of the WiFi network.
+ ///
+ [JsonProperty("ssid")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ssid")]
+#endif
+ public string Ssid { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifiPersonalPsk.cs b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifiPersonalPsk.cs
new file mode 100644
index 0000000000..a605916b85
--- /dev/null
+++ b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationWifiPersonalPsk.cs
@@ -0,0 +1,29 @@
+// File generated from our OpenAPI spec
+namespace Stripe.Terminal
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class ConfigurationWifiPersonalPsk : StripeEntity
+ {
+ ///
+ /// Password for connecting to the WiFi network.
+ ///
+ [JsonProperty("password")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("password")]
+#endif
+ public string Password { get; set; }
+
+ ///
+ /// Name of the WiFi network.
+ ///
+ [JsonProperty("ssid")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ssid")]
+#endif
+ public string Ssid { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/UsageRecordSummaries/UsageRecordSummary.cs b/src/Stripe.net/Entities/UsageRecordSummaries/UsageRecordSummary.cs
deleted file mode 100644
index 3fc12372b3..0000000000
--- a/src/Stripe.net/Entities/UsageRecordSummaries/UsageRecordSummary.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-// File generated from our OpenAPI spec
-namespace Stripe
-{
- using Newtonsoft.Json;
-#if NET6_0_OR_GREATER
- using STJS = System.Text.Json.Serialization;
-#endif
-
- ///
- /// A usage record summary represents an aggregated view of how much usage was accrued for a
- /// subscription item within a subscription billing period.
- ///
- public class UsageRecordSummary : StripeEntity, IHasId, IHasObject
- {
- ///
- /// Unique identifier for the object.
- ///
- [JsonProperty("id")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("id")]
-#endif
- public string Id { get; set; }
-
- ///
- /// String representing the object's type. Objects of the same type share the same value.
- ///
- [JsonProperty("object")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("object")]
-#endif
- public string Object { get; set; }
-
- ///
- /// The invoice in which this usage period has been billed for.
- ///
- [JsonProperty("invoice")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("invoice")]
-#endif
- public string Invoice { get; set; }
-
- ///
- /// Has the value true if the object exists in live mode or the value false if
- /// the object exists in test mode.
- ///
- [JsonProperty("livemode")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("livemode")]
-#endif
- public bool Livemode { get; set; }
-
- [JsonProperty("period")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("period")]
-#endif
- public UsageRecordSummaryPeriod Period { get; set; }
-
- ///
- /// The ID of the subscription item this summary is describing.
- ///
- [JsonProperty("subscription_item")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("subscription_item")]
-#endif
- public string SubscriptionItem { get; set; }
-
- ///
- /// The total usage within this usage period.
- ///
- [JsonProperty("total_usage")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("total_usage")]
-#endif
- public long TotalUsage { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/UsageRecordSummaries/UsageRecordSummaryPeriod.cs b/src/Stripe.net/Entities/UsageRecordSummaries/UsageRecordSummaryPeriod.cs
deleted file mode 100644
index 63bd9c42b5..0000000000
--- a/src/Stripe.net/Entities/UsageRecordSummaries/UsageRecordSummaryPeriod.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-// File generated from our OpenAPI spec
-namespace Stripe
-{
- using System;
- using Newtonsoft.Json;
- using Stripe.Infrastructure;
-#if NET6_0_OR_GREATER
- using STJS = System.Text.Json.Serialization;
-#endif
-
- public class UsageRecordSummaryPeriod : StripeEntity
- {
- ///
- /// The end date of this usage period. All usage up to and including this point in time is
- /// included.
- ///
- [JsonProperty("end")]
- [JsonConverter(typeof(UnixDateTimeConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("end")]
- [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
-#endif
- public DateTime? End { get; set; }
-
- ///
- /// The start date of this usage period. All usage after this point in time is included.
- ///
- [JsonProperty("start")]
- [JsonConverter(typeof(UnixDateTimeConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("start")]
- [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
-#endif
- public DateTime? Start { get; set; }
- }
-}
diff --git a/src/Stripe.net/Entities/UsageRecords/UsageRecord.cs b/src/Stripe.net/Entities/UsageRecords/UsageRecord.cs
deleted file mode 100644
index c23657a212..0000000000
--- a/src/Stripe.net/Entities/UsageRecords/UsageRecord.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-// File generated from our OpenAPI spec
-namespace Stripe
-{
- using System;
- using Newtonsoft.Json;
- using Stripe.Infrastructure;
-#if NET6_0_OR_GREATER
- using STJS = System.Text.Json.Serialization;
-#endif
-
- ///
- /// Usage records allow you to report customer usage and metrics to Stripe for metered
- /// billing of subscription prices.
- ///
- /// Related guide: Metered billing.
- ///
- /// This is our legacy usage-based billing API. See the updated usage-based
- /// billing docs.
- ///
- public class UsageRecord : StripeEntity, IHasId, IHasObject
- {
- ///
- /// Unique identifier for the object.
- ///
- [JsonProperty("id")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("id")]
-#endif
- public string Id { get; set; }
-
- ///
- /// String representing the object's type. Objects of the same type share the same value.
- ///
- [JsonProperty("object")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("object")]
-#endif
- public string Object { get; set; }
-
- ///
- /// Has the value true if the object exists in live mode or the value false if
- /// the object exists in test mode.
- ///
- [JsonProperty("livemode")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("livemode")]
-#endif
- public bool Livemode { get; set; }
-
- ///
- /// The usage quantity for the specified date.
- ///
- [JsonProperty("quantity")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("quantity")]
-#endif
- public long Quantity { get; set; }
-
- ///
- /// The ID of the subscription item this usage record contains data for.
- ///
- [JsonProperty("subscription_item")]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("subscription_item")]
-#endif
- public string SubscriptionItem { get; set; }
-
- ///
- /// The timestamp when this usage occurred.
- ///
- [JsonProperty("timestamp")]
- [JsonConverter(typeof(UnixDateTimeConverter))]
-#if NET6_0_OR_GREATER
- [STJS.JsonPropertyName("timestamp")]
- [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))]
-#endif
- public DateTime Timestamp { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
- }
-}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/Account.cs b/src/Stripe.net/Entities/V2/Core/Accounts/Account.cs
new file mode 100644
index 0000000000..0c0b0b260e
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/Account.cs
@@ -0,0 +1,136 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using System;
+ using System.Collections.Generic;
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ ///
+ /// A V2 Account is a representation of a company or individual that a Stripe user does
+ /// business with. Accounts contain the contact details, Legal Entity information, and
+ /// configuration required to enable the Account for use across Stripe products.
+ ///
+ public class Account : StripeEntity, IHasId, IHasMetadata, IHasObject
+ {
+ ///
+ /// Unique identifier for the Account.
+ ///
+ [JsonProperty("id")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("id")]
+#endif
+ public string Id { get; set; }
+
+ ///
+ /// String representing the object's type. Objects of the same type share the same value of
+ /// the object field.
+ ///
+ [JsonProperty("object")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("object")]
+#endif
+ public string Object { get; set; }
+
+ ///
+ /// Filter only accounts that have all of the configurations specified. If omitted, returns
+ /// all accounts regardless of which configurations they have.
+ /// One of: customer, merchant, or recipient.
+ ///
+ [JsonProperty("applied_configurations")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("applied_configurations")]
+#endif
+ public List AppliedConfigurations { get; set; }
+
+ ///
+ /// An Account Configuration which allows the Account to take on a key persona across Stripe
+ /// products.
+ ///
+ [JsonProperty("configuration")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("configuration")]
+#endif
+ public AccountConfiguration Configuration { get; set; }
+
+ ///
+ /// The default contact email address for the Account.
+ ///
+ [JsonProperty("contact_email")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("contact_email")]
+#endif
+ public string ContactEmail { get; set; }
+
+ ///
+ /// Time at which the object was created. Represented as a RFC 3339 date & time UTC
+ /// value in millisecond precision, for example: 2022-09-18T13:22:18.123Z.
+ ///
+ [JsonProperty("created")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("created")]
+#endif
+ public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch;
+
+ ///
+ /// A value indicating the Stripe dashboard this Account has access to. This will depend on
+ /// which configurations are enabled for this account.
+ /// One of: express, full, or none.
+ ///
+ [JsonProperty("dashboard")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("dashboard")]
+#endif
+ public string Dashboard { get; set; }
+
+ ///
+ /// Default values to be used on Account Configurations.
+ ///
+ [JsonProperty("defaults")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("defaults")]
+#endif
+ public AccountDefaults Defaults { get; set; }
+
+ ///
+ /// A descriptive name for the Account. This name will be surfaced in the Stripe Dashboard
+ /// and on any invoices sent to the Account.
+ ///
+ [JsonProperty("display_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("display_name")]
+#endif
+ public string DisplayName { get; set; }
+
+ ///
+ /// Information about the company, individual, and business represented by the Account.
+ ///
+ [JsonProperty("identity")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("identity")]
+#endif
+ public AccountIdentity Identity { get; set; }
+
+ ///
+ /// Set of key-value pairs that you can attach to an object. This can be useful for storing
+ /// additional information about the object in a structured format.
+ ///
+ [JsonProperty("metadata")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("metadata")]
+#endif
+ public Dictionary Metadata { get; set; }
+
+ ///
+ /// Information about the requirements for the Account, including what information needs to
+ /// be collected, and by when.
+ ///
+ [JsonProperty("requirements")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("requirements")]
+#endif
+ public AccountRequirements Requirements { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfiguration.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfiguration.cs
new file mode 100644
index 0000000000..2270c66512
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfiguration.cs
@@ -0,0 +1,38 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfiguration : StripeEntity
+ {
+ ///
+ /// The Customer Configuration allows the Account to be used in inbound payment flows.
+ ///
+ [JsonProperty("customer")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("customer")]
+#endif
+ public AccountConfigurationCustomer Customer { get; set; }
+
+ ///
+ /// The Merchant Configuration allows the Account to make charges.
+ ///
+ [JsonProperty("merchant")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("merchant")]
+#endif
+ public AccountConfigurationMerchant Merchant { get; set; }
+
+ ///
+ /// The Recipient Configuration allows the Account to receive funds.
+ ///
+ [JsonProperty("recipient")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("recipient")]
+#endif
+ public AccountConfigurationRecipient Recipient { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomer.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomer.cs
new file mode 100644
index 0000000000..02a0b12ffd
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomer.cs
@@ -0,0 +1,60 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomer : StripeEntity
+ {
+ ///
+ /// Automatic indirect tax settings to be used when automatic tax calculation is enabled on
+ /// the customer's invoices, subscriptions, checkout sessions, or payment links. Surfaces if
+ /// automatic tax calculation is possible given the current customer location information.
+ ///
+ [JsonProperty("automatic_indirect_tax")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("automatic_indirect_tax")]
+#endif
+ public AccountConfigurationCustomerAutomaticIndirectTax AutomaticIndirectTax { get; set; }
+
+ ///
+ /// Billing settings - default settings used for this customer in Billing flows such as
+ /// Invoices and Subscriptions.
+ ///
+ [JsonProperty("billing")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("billing")]
+#endif
+ public AccountConfigurationCustomerBilling Billing { get; set; }
+
+ ///
+ /// Capabilities that have been requested on the Customer Configuration.
+ ///
+ [JsonProperty("capabilities")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("capabilities")]
+#endif
+ public AccountConfigurationCustomerCapabilities Capabilities { get; set; }
+
+ ///
+ /// The customer's shipping information. Appears on invoices emailed to this customer.
+ ///
+ [JsonProperty("shipping")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("shipping")]
+#endif
+ public AccountConfigurationCustomerShipping Shipping { get; set; }
+
+ ///
+ /// ID of the test clock to attach to the customer. Can only be set on testmode Accounts,
+ /// and when the Customer Configuration is first set on an Account.
+ ///
+ [JsonProperty("test_clock")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("test_clock")]
+#endif
+ public string TestClock { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerAutomaticIndirectTax.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerAutomaticIndirectTax.cs
new file mode 100644
index 0000000000..b873f1779b
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerAutomaticIndirectTax.cs
@@ -0,0 +1,55 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomerAutomaticIndirectTax : StripeEntity
+ {
+ ///
+ /// Describes the customer's tax exemption status, which is none, exempt, or
+ /// reverse. When set to reverse, invoice and receipt PDFs include the following
+ /// text: “Reverse charge”.
+ /// One of: exempt, none, or reverse.
+ ///
+ [JsonProperty("exempt")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("exempt")]
+#endif
+ public string Exempt { get; set; }
+
+ ///
+ /// A recent IP address of the customer used for tax reporting and tax location inference.
+ ///
+ [JsonProperty("ip_address")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ip_address")]
+#endif
+ public string IpAddress { get; set; }
+
+ ///
+ /// The customer’s location as identified by Stripe Tax - uses location_source. Will
+ /// only be rendered if the automatic_indirect_tax feature is requested and
+ /// active.
+ ///
+ [JsonProperty("location")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("location")]
+#endif
+ public AccountConfigurationCustomerAutomaticIndirectTaxLocation Location { get; set; }
+
+ ///
+ /// The data source used by Stripe Tax to identify the customer's location - defaults to
+ /// 'identity_address'. Will only be used for automatic tax calculation on the customer's
+ /// Invoices and Subscriptions.
+ /// One of: identity_address, ip_address, or shipping_address.
+ ///
+ [JsonProperty("location_source")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("location_source")]
+#endif
+ public string LocationSource { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerAutomaticIndirectTaxLocation.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerAutomaticIndirectTaxLocation.cs
new file mode 100644
index 0000000000..16576e68d0
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerAutomaticIndirectTaxLocation.cs
@@ -0,0 +1,61 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomerAutomaticIndirectTaxLocation : StripeEntity
+ {
+ ///
+ /// The customer's country as identified by Stripe Tax.
+ /// One of: ad, ae, af, ag, ai, al, am,
+ /// ao, aq, ar, as, at, au, aw, ax,
+ /// az, ba, bb, bd, be, bf, bg, bh,
+ /// bi, bj, bl, bm, bn, bo, bq, br,
+ /// bs, bt, bv, bw, by, bz, ca, cc,
+ /// cd, cf, cg, ch, ci, ck, cl, cm,
+ /// cn, co, cr, cu, cv, cw, cx, cy,
+ /// cz, de, dj, dk, dm, do, dz, ec,
+ /// ee, eg, eh, er, es, et, fi, fj,
+ /// fk, fm, fo, fr, ga, gb, gd, ge,
+ /// gf, gg, gh, gi, gl, gm, gn, gp,
+ /// gq, gr, gs, gt, gu, gw, gy, hk,
+ /// hm, hn, hr, ht, hu, id, ie, il,
+ /// im, in, io, iq, ir, is, it, je,
+ /// jm, jo, jp, ke, kg, kh, ki, km,
+ /// kn, kp, kr, kw, ky, kz, la, lb,
+ /// lc, li, lk, lr, ls, lt, lu, lv,
+ /// ly, ma, mc, md, me, mf, mg, mh,
+ /// mk, ml, mm, mn, mo, mp, mq, mr,
+ /// ms, mt, mu, mv, mw, mx, my, mz,
+ /// na, nc, ne, nf, ng, ni, nl, no,
+ /// np, nr, nu, nz, om, pa, pe, pf,
+ /// pg, ph, pk, pl, pm, pn, pr, ps,
+ /// pt, pw, py, qa, qz, re, ro, rs,
+ /// ru, rw, sa, sb, sc, sd, se, sg,
+ /// sh, si, sj, sk, sl, sm, sn, so,
+ /// sr, ss, st, sv, sx, sy, sz, tc,
+ /// td, tf, tg, th, tj, tk, tl, tm,
+ /// tn, to, tr, tt, tv, tw, tz, ua,
+ /// ug, um, us, uy, uz, va, vc, ve,
+ /// vg, vi, vn, vu, wf, ws, ye, yt,
+ /// za, zm, or zw.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// The customer's state, county, province, or region as identified by Stripe Tax.
+ ///
+ [JsonProperty("state")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("state")]
+#endif
+ public string State { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBilling.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBilling.cs
new file mode 100644
index 0000000000..5d271de173
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBilling.cs
@@ -0,0 +1,30 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomerBilling : StripeEntity
+ {
+ ///
+ /// ID of a payment method that’s attached to the customer, to be used as the customer’s
+ /// default payment method for invoices and subscriptions.
+ ///
+ [JsonProperty("default_payment_method")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("default_payment_method")]
+#endif
+ public string DefaultPaymentMethod { get; set; }
+
+ ///
+ /// Default settings used on invoices for this customer.
+ ///
+ [JsonProperty("invoice")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("invoice")]
+#endif
+ public AccountConfigurationCustomerBillingInvoice Invoice { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBillingInvoice.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBillingInvoice.cs
new file mode 100644
index 0000000000..0863e19f5b
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBillingInvoice.cs
@@ -0,0 +1,59 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using System.Collections.Generic;
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomerBillingInvoice : StripeEntity
+ {
+ ///
+ /// The list of up to 4 default custom fields to be displayed on invoices for this customer.
+ /// When updating, pass an empty string to remove previously-defined fields.
+ ///
+ [JsonProperty("custom_fields")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("custom_fields")]
+#endif
+ public List CustomFields { get; set; }
+
+ ///
+ /// Default footer to be displayed on invoices for this customer.
+ ///
+ [JsonProperty("footer")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("footer")]
+#endif
+ public string Footer { get; set; }
+
+ ///
+ /// The sequence to be used on the customer's next invoice. Defaults to 1.
+ ///
+ [JsonProperty("next_sequence")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("next_sequence")]
+#endif
+ public long? NextSequence { get; set; }
+
+ ///
+ /// The prefix for the customer used to generate unique invoice numbers. Must be 3–12
+ /// uppercase letters or numbers.
+ ///
+ [JsonProperty("prefix")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("prefix")]
+#endif
+ public string Prefix { get; set; }
+
+ ///
+ /// Default options for invoice PDF rendering for this customer.
+ ///
+ [JsonProperty("rendering")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("rendering")]
+#endif
+ public AccountConfigurationCustomerBillingInvoiceRendering Rendering { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBillingInvoiceCustomField.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBillingInvoiceCustomField.cs
new file mode 100644
index 0000000000..e7c1020499
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBillingInvoiceCustomField.cs
@@ -0,0 +1,30 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomerBillingInvoiceCustomField : StripeEntity
+ {
+ ///
+ /// The name of the custom field. This may be up to 40 characters.
+ ///
+ [JsonProperty("name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("name")]
+#endif
+ public string Name { get; set; }
+
+ ///
+ /// The value of the custom field. This may be up to 140 characters. When updating, pass an
+ /// empty string to remove previously-defined values.
+ ///
+ [JsonProperty("value")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("value")]
+#endif
+ public string Value { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBillingInvoiceRendering.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBillingInvoiceRendering.cs
new file mode 100644
index 0000000000..c3186a2887
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerBillingInvoiceRendering.cs
@@ -0,0 +1,33 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomerBillingInvoiceRendering : StripeEntity
+ {
+ ///
+ /// How line-item prices and amounts will be displayed with respect to tax on invoice PDFs.
+ /// One of exclude_tax or include_inclusive_tax. include_inclusive_tax will include
+ /// inclusive tax (and exclude exclusive tax) in invoice PDF amounts. exclude_tax will
+ /// exclude all tax (inclusive and exclusive alike) from invoice PDF amounts.
+ /// One of: exclude_tax, or include_inclusive_tax.
+ ///
+ [JsonProperty("amount_tax_display")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("amount_tax_display")]
+#endif
+ public string AmountTaxDisplay { get; set; }
+
+ ///
+ /// ID of the invoice rendering template to use for future invoices.
+ ///
+ [JsonProperty("template")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("template")]
+#endif
+ public string Template { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerCapabilities.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerCapabilities.cs
new file mode 100644
index 0000000000..ada2b6c2a0
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerCapabilities.cs
@@ -0,0 +1,23 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomerCapabilities : StripeEntity
+ {
+ ///
+ /// Generates requirements for enabling automatic indirect tax calculation on this
+ /// customer's invoices or subscriptions. Recommended to request this capability if planning
+ /// to enable automatic tax calculation on this customer's invoices or subscriptions. Uses
+ /// the location_source field.
+ ///
+ [JsonProperty("automatic_indirect_tax")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("automatic_indirect_tax")]
+#endif
+ public AccountConfigurationCustomerCapabilitiesAutomaticIndirectTax AutomaticIndirectTax { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerCapabilitiesAutomaticIndirectTax.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerCapabilitiesAutomaticIndirectTax.cs
new file mode 100644
index 0000000000..b4e4daeff9
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerCapabilitiesAutomaticIndirectTax.cs
@@ -0,0 +1,41 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using System.Collections.Generic;
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomerCapabilitiesAutomaticIndirectTax : StripeEntity
+ {
+ ///
+ /// Whether the Capability has been requested.
+ ///
+ [JsonProperty("requested")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("requested")]
+#endif
+ public bool Requested { get; set; }
+
+ ///
+ /// The status of the Capability.
+ /// One of: active, pending, restricted, or unsupported.
+ ///
+ [JsonProperty("status")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("status")]
+#endif
+ public string Status { get; set; }
+
+ ///
+ /// Additional details regarding the status of the Capability. status_details will be
+ /// empty if the Capability's status is active.
+ ///
+ [JsonProperty("status_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("status_details")]
+#endif
+ public List StatusDetails { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerCapabilitiesAutomaticIndirectTaxStatusDetail.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerCapabilitiesAutomaticIndirectTaxStatusDetail.cs
new file mode 100644
index 0000000000..52e636e41d
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerCapabilitiesAutomaticIndirectTaxStatusDetail.cs
@@ -0,0 +1,34 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomerCapabilitiesAutomaticIndirectTaxStatusDetail : StripeEntity
+ {
+ ///
+ /// Machine-readable code explaining the reason for the Capability to be in its current
+ /// status.
+ /// One of: determining_status, requirements_past_due,
+ /// requirements_pending_verification, restricted_other,
+ /// unsupported_business, or unsupported_country.
+ ///
+ [JsonProperty("code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("code")]
+#endif
+ public string Code { get; set; }
+
+ ///
+ /// Machine-readable code explaining how to make the Capability active.
+ /// One of: contact_stripe, no_resolution, or provide_info.
+ ///
+ [JsonProperty("resolution")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("resolution")]
+#endif
+ public string Resolution { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerShipping.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerShipping.cs
new file mode 100644
index 0000000000..c79d018155
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerShipping.cs
@@ -0,0 +1,38 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomerShipping : StripeEntity
+ {
+ ///
+ /// Customer shipping address.
+ ///
+ [JsonProperty("address")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("address")]
+#endif
+ public AccountConfigurationCustomerShippingAddress Address { get; set; }
+
+ ///
+ /// Customer name.
+ ///
+ [JsonProperty("name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("name")]
+#endif
+ public string Name { get; set; }
+
+ ///
+ /// Customer phone (including extension).
+ ///
+ [JsonProperty("phone")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("phone")]
+#endif
+ public string Phone { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerShippingAddress.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerShippingAddress.cs
new file mode 100644
index 0000000000..156402d299
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationCustomerShippingAddress.cs
@@ -0,0 +1,98 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationCustomerShippingAddress : StripeEntity
+ {
+ ///
+ /// City, district, suburb, town, or village.
+ ///
+ [JsonProperty("city")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("city")]
+#endif
+ public string City { get; set; }
+
+ ///
+ /// Two-letter country code (ISO
+ /// 3166-1 alpha-2).
+ /// One of: ad, ae, af, ag, ai, al, am,
+ /// ao, aq, ar, as, at, au, aw, ax,
+ /// az, ba, bb, bd, be, bf, bg, bh,
+ /// bi, bj, bl, bm, bn, bo, bq, br,
+ /// bs, bt, bv, bw, by, bz, ca, cc,
+ /// cd, cf, cg, ch, ci, ck, cl, cm,
+ /// cn, co, cr, cu, cv, cw, cx, cy,
+ /// cz, de, dj, dk, dm, do, dz, ec,
+ /// ee, eg, eh, er, es, et, fi, fj,
+ /// fk, fm, fo, fr, ga, gb, gd, ge,
+ /// gf, gg, gh, gi, gl, gm, gn, gp,
+ /// gq, gr, gs, gt, gu, gw, gy, hk,
+ /// hm, hn, hr, ht, hu, id, ie, il,
+ /// im, in, io, iq, ir, is, it, je,
+ /// jm, jo, jp, ke, kg, kh, ki, km,
+ /// kn, kp, kr, kw, ky, kz, la, lb,
+ /// lc, li, lk, lr, ls, lt, lu, lv,
+ /// ly, ma, mc, md, me, mf, mg, mh,
+ /// mk, ml, mm, mn, mo, mp, mq, mr,
+ /// ms, mt, mu, mv, mw, mx, my, mz,
+ /// na, nc, ne, nf, ng, ni, nl, no,
+ /// np, nr, nu, nz, om, pa, pe, pf,
+ /// pg, ph, pk, pl, pm, pn, pr, ps,
+ /// pt, pw, py, qa, qz, re, ro, rs,
+ /// ru, rw, sa, sb, sc, sd, se, sg,
+ /// sh, si, sj, sk, sl, sm, sn, so,
+ /// sr, ss, st, sv, sx, sy, sz, tc,
+ /// td, tf, tg, th, tj, tk, tl, tm,
+ /// tn, to, tr, tt, tv, tw, tz, ua,
+ /// ug, um, us, uy, uz, va, vc, ve,
+ /// vg, vi, vn, vu, wf, ws, ye, yt,
+ /// za, zm, or zw.
+ ///
+ [JsonProperty("country")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("country")]
+#endif
+ public string Country { get; set; }
+
+ ///
+ /// Address line 1 (e.g., street, PO Box, or company name).
+ ///
+ [JsonProperty("line1")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("line1")]
+#endif
+ public string Line1 { get; set; }
+
+ ///
+ /// Address line 2 (e.g., apartment, suite, unit, or building).
+ ///
+ [JsonProperty("line2")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("line2")]
+#endif
+ public string Line2 { get; set; }
+
+ ///
+ /// ZIP or postal code.
+ ///
+ [JsonProperty("postal_code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("postal_code")]
+#endif
+ public string PostalCode { get; set; }
+
+ ///
+ /// State, county, province, or region.
+ ///
+ [JsonProperty("state")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("state")]
+#endif
+ public string State { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchant.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchant.cs
new file mode 100644
index 0000000000..424906b11f
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchant.cs
@@ -0,0 +1,85 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationMerchant : StripeEntity
+ {
+ ///
+ /// Settings used for Bacs debit payments.
+ ///
+ [JsonProperty("bacs_debit_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bacs_debit_payments")]
+#endif
+ public AccountConfigurationMerchantBacsDebitPayments BacsDebitPayments { get; set; }
+
+ ///
+ /// Settings used to apply the merchant's branding to email receipts, invoices, Checkout,
+ /// and other products.
+ ///
+ [JsonProperty("branding")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("branding")]
+#endif
+ public AccountConfigurationMerchantBranding Branding { get; set; }
+
+ ///
+ /// Capabilities that have been requested on the Merchant Configuration.
+ ///
+ [JsonProperty("capabilities")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("capabilities")]
+#endif
+ public AccountConfigurationMerchantCapabilities Capabilities { get; set; }
+
+ ///
+ /// Card payments settings.
+ ///
+ [JsonProperty("card_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card_payments")]
+#endif
+ public AccountConfigurationMerchantCardPayments CardPayments { get; set; }
+
+ ///
+ /// The merchant category code for the merchant. MCCs are used to classify businesses based
+ /// on the goods or services they provide.
+ ///
+ [JsonProperty("mcc")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mcc")]
+#endif
+ public string Mcc { get; set; }
+
+ ///
+ /// Settings used for SEPA debit payments.
+ ///
+ [JsonProperty("sepa_debit_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("sepa_debit_payments")]
+#endif
+ public AccountConfigurationMerchantSepaDebitPayments SepaDebitPayments { get; set; }
+
+ ///
+ /// Statement descriptor.
+ ///
+ [JsonProperty("statement_descriptor")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("statement_descriptor")]
+#endif
+ public AccountConfigurationMerchantStatementDescriptor StatementDescriptor { get; set; }
+
+ ///
+ /// Publicly available contact information for sending support issues to.
+ ///
+ [JsonProperty("support")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("support")]
+#endif
+ public AccountConfigurationMerchantSupport Support { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantBacsDebitPayments.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantBacsDebitPayments.cs
new file mode 100644
index 0000000000..c65788092c
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantBacsDebitPayments.cs
@@ -0,0 +1,29 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationMerchantBacsDebitPayments : StripeEntity
+ {
+ ///
+ /// Display name for Bacs debit payments.
+ ///
+ [JsonProperty("display_name")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("display_name")]
+#endif
+ public string DisplayName { get; set; }
+
+ ///
+ /// Service user number for Bacs debit payments.
+ ///
+ [JsonProperty("service_user_number")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("service_user_number")]
+#endif
+ public string ServiceUserNumber { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantBranding.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantBranding.cs
new file mode 100644
index 0000000000..f0c4ee86c4
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantBranding.cs
@@ -0,0 +1,50 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationMerchantBranding : StripeEntity
+ {
+ ///
+ /// ID of a file
+ /// upload: An icon for the merchant. Must be square and at least 128px x 128px.
+ ///
+ [JsonProperty("icon")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("icon")]
+#endif
+ public string Icon { get; set; }
+
+ ///
+ /// ID of a file
+ /// upload: A logo for the merchant that will be used in Checkout instead of the icon
+ /// and without the merchant's name next to it if provided. Must be at least 128px x 128px.
+ ///
+ [JsonProperty("logo")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("logo")]
+#endif
+ public string Logo { get; set; }
+
+ ///
+ /// A CSS hex color value representing the primary branding color for the merchant.
+ ///
+ [JsonProperty("primary_color")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("primary_color")]
+#endif
+ public string PrimaryColor { get; set; }
+
+ ///
+ /// A CSS hex color value representing the secondary branding color for the merchant.
+ ///
+ [JsonProperty("secondary_color")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("secondary_color")]
+#endif
+ public string SecondaryColor { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilities.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilities.cs
new file mode 100644
index 0000000000..dca045698b
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilities.cs
@@ -0,0 +1,407 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationMerchantCapabilities : StripeEntity
+ {
+ ///
+ /// Allow the merchant to process ACH debit payments.
+ ///
+ [JsonProperty("ach_debit_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ach_debit_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesAchDebitPayments AchDebitPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process ACSS debit payments.
+ ///
+ [JsonProperty("acss_debit_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("acss_debit_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesAcssDebitPayments AcssDebitPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Affirm payments.
+ ///
+ [JsonProperty("affirm_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("affirm_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesAffirmPayments AffirmPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Afterpay/Clearpay payments.
+ ///
+ [JsonProperty("afterpay_clearpay_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("afterpay_clearpay_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesAfterpayClearpayPayments AfterpayClearpayPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Alma payments.
+ ///
+ [JsonProperty("alma_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("alma_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesAlmaPayments AlmaPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Amazon Pay payments.
+ ///
+ [JsonProperty("amazon_pay_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("amazon_pay_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesAmazonPayPayments AmazonPayPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Australian BECS Direct Debit payments.
+ ///
+ [JsonProperty("au_becs_debit_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("au_becs_debit_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesAuBecsDebitPayments AuBecsDebitPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process BACS Direct Debit payments.
+ ///
+ [JsonProperty("bacs_debit_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bacs_debit_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesBacsDebitPayments BacsDebitPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Bancontact payments.
+ ///
+ [JsonProperty("bancontact_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("bancontact_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesBancontactPayments BancontactPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process BLIK payments.
+ ///
+ [JsonProperty("blik_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("blik_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesBlikPayments BlikPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Boleto payments.
+ ///
+ [JsonProperty("boleto_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("boleto_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesBoletoPayments BoletoPayments { get; set; }
+
+ ///
+ /// Allow the merchant to collect card payments.
+ ///
+ [JsonProperty("card_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("card_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesCardPayments CardPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Cartes Bancaires payments.
+ ///
+ [JsonProperty("cartes_bancaires_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cartes_bancaires_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesCartesBancairesPayments CartesBancairesPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Cash App payments.
+ ///
+ [JsonProperty("cashapp_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("cashapp_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesCashappPayments CashappPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process EPS payments.
+ ///
+ [JsonProperty("eps_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("eps_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesEpsPayments EpsPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process FPX payments.
+ ///
+ [JsonProperty("fpx_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("fpx_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesFpxPayments FpxPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process UK bank transfer payments.
+ ///
+ [JsonProperty("gb_bank_transfer_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("gb_bank_transfer_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesGbBankTransferPayments GbBankTransferPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process GrabPay payments.
+ ///
+ [JsonProperty("grabpay_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("grabpay_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesGrabpayPayments GrabpayPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process iDEAL payments.
+ ///
+ [JsonProperty("ideal_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("ideal_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesIdealPayments IdealPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process JCB card payments.
+ ///
+ [JsonProperty("jcb_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("jcb_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesJcbPayments JcbPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Japanese bank transfer payments.
+ ///
+ [JsonProperty("jp_bank_transfer_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("jp_bank_transfer_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesJpBankTransferPayments JpBankTransferPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Kakao Pay payments.
+ ///
+ [JsonProperty("kakao_pay_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("kakao_pay_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesKakaoPayPayments KakaoPayPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Klarna payments.
+ ///
+ [JsonProperty("klarna_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("klarna_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesKlarnaPayments KlarnaPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Konbini convenience store payments.
+ ///
+ [JsonProperty("konbini_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("konbini_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesKonbiniPayments KonbiniPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Korean card payments.
+ ///
+ [JsonProperty("kr_card_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("kr_card_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesKrCardPayments KrCardPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Link payments.
+ ///
+ [JsonProperty("link_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("link_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesLinkPayments LinkPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process MobilePay payments.
+ ///
+ [JsonProperty("mobilepay_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mobilepay_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesMobilepayPayments MobilepayPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Multibanco payments.
+ ///
+ [JsonProperty("multibanco_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("multibanco_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesMultibancoPayments MultibancoPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Mexican bank transfer payments.
+ ///
+ [JsonProperty("mx_bank_transfer_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("mx_bank_transfer_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesMxBankTransferPayments MxBankTransferPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Naver Pay payments.
+ ///
+ [JsonProperty("naver_pay_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("naver_pay_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesNaverPayPayments NaverPayPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process OXXO payments.
+ ///
+ [JsonProperty("oxxo_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("oxxo_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesOxxoPayments OxxoPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Przelewy24 (P24) payments.
+ ///
+ [JsonProperty("p24_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("p24_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesP24Payments P24Payments { get; set; }
+
+ ///
+ /// Allow the merchant to process Pay by Bank payments.
+ ///
+ [JsonProperty("pay_by_bank_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("pay_by_bank_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesPayByBankPayments PayByBankPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process PAYCO payments.
+ ///
+ [JsonProperty("payco_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("payco_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesPaycoPayments PaycoPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process PayNow payments.
+ ///
+ [JsonProperty("paynow_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("paynow_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesPaynowPayments PaynowPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process PromptPay payments.
+ ///
+ [JsonProperty("promptpay_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("promptpay_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesPromptpayPayments PromptpayPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Revolut Pay payments.
+ ///
+ [JsonProperty("revolut_pay_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("revolut_pay_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesRevolutPayPayments RevolutPayPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Samsung Pay payments.
+ ///
+ [JsonProperty("samsung_pay_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("samsung_pay_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesSamsungPayPayments SamsungPayPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process SEPA bank transfer payments.
+ ///
+ [JsonProperty("sepa_bank_transfer_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("sepa_bank_transfer_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesSepaBankTransferPayments SepaBankTransferPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process SEPA Direct Debit payments.
+ ///
+ [JsonProperty("sepa_debit_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("sepa_debit_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesSepaDebitPayments SepaDebitPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Swish payments.
+ ///
+ [JsonProperty("swish_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("swish_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesSwishPayments SwishPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process TWINT payments.
+ ///
+ [JsonProperty("twint_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("twint_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesTwintPayments TwintPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process US bank transfer payments.
+ ///
+ [JsonProperty("us_bank_transfer_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("us_bank_transfer_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesUsBankTransferPayments UsBankTransferPayments { get; set; }
+
+ ///
+ /// Allow the merchant to process Zip payments.
+ ///
+ [JsonProperty("zip_payments")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("zip_payments")]
+#endif
+ public AccountConfigurationMerchantCapabilitiesZipPayments ZipPayments { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAchDebitPayments.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAchDebitPayments.cs
new file mode 100644
index 0000000000..0f75d1b5db
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAchDebitPayments.cs
@@ -0,0 +1,41 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using System.Collections.Generic;
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationMerchantCapabilitiesAchDebitPayments : StripeEntity
+ {
+ ///
+ /// Whether the Capability has been requested.
+ ///
+ [JsonProperty("requested")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("requested")]
+#endif
+ public bool Requested { get; set; }
+
+ ///
+ /// The status of the Capability.
+ /// One of: active, pending, restricted, or unsupported.
+ ///
+ [JsonProperty("status")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("status")]
+#endif
+ public string Status { get; set; }
+
+ ///
+ /// Additional details regarding the status of the Capability. status_details will be
+ /// empty if the Capability's status is active.
+ ///
+ [JsonProperty("status_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("status_details")]
+#endif
+ public List StatusDetails { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAchDebitPaymentsStatusDetail.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAchDebitPaymentsStatusDetail.cs
new file mode 100644
index 0000000000..0c00e38d6f
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAchDebitPaymentsStatusDetail.cs
@@ -0,0 +1,34 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationMerchantCapabilitiesAchDebitPaymentsStatusDetail : StripeEntity
+ {
+ ///
+ /// Machine-readable code explaining the reason for the Capability to be in its current
+ /// status.
+ /// One of: determining_status, requirements_past_due,
+ /// requirements_pending_verification, restricted_other,
+ /// unsupported_business, or unsupported_country.
+ ///
+ [JsonProperty("code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("code")]
+#endif
+ public string Code { get; set; }
+
+ ///
+ /// Machine-readable code explaining how to make the Capability active.
+ /// One of: contact_stripe, no_resolution, or provide_info.
+ ///
+ [JsonProperty("resolution")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("resolution")]
+#endif
+ public string Resolution { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAcssDebitPayments.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAcssDebitPayments.cs
new file mode 100644
index 0000000000..c90593d5a9
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAcssDebitPayments.cs
@@ -0,0 +1,41 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using System.Collections.Generic;
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationMerchantCapabilitiesAcssDebitPayments : StripeEntity
+ {
+ ///
+ /// Whether the Capability has been requested.
+ ///
+ [JsonProperty("requested")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("requested")]
+#endif
+ public bool Requested { get; set; }
+
+ ///
+ /// The status of the Capability.
+ /// One of: active, pending, restricted, or unsupported.
+ ///
+ [JsonProperty("status")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("status")]
+#endif
+ public string Status { get; set; }
+
+ ///
+ /// Additional details regarding the status of the Capability. status_details will be
+ /// empty if the Capability's status is active.
+ ///
+ [JsonProperty("status_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("status_details")]
+#endif
+ public List StatusDetails { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAcssDebitPaymentsStatusDetail.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAcssDebitPaymentsStatusDetail.cs
new file mode 100644
index 0000000000..182a3a9b44
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAcssDebitPaymentsStatusDetail.cs
@@ -0,0 +1,34 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationMerchantCapabilitiesAcssDebitPaymentsStatusDetail : StripeEntity
+ {
+ ///
+ /// Machine-readable code explaining the reason for the Capability to be in its current
+ /// status.
+ /// One of: determining_status, requirements_past_due,
+ /// requirements_pending_verification, restricted_other,
+ /// unsupported_business, or unsupported_country.
+ ///
+ [JsonProperty("code")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("code")]
+#endif
+ public string Code { get; set; }
+
+ ///
+ /// Machine-readable code explaining how to make the Capability active.
+ /// One of: contact_stripe, no_resolution, or provide_info.
+ ///
+ [JsonProperty("resolution")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("resolution")]
+#endif
+ public string Resolution { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAffirmPayments.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAffirmPayments.cs
new file mode 100644
index 0000000000..1650299ece
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAffirmPayments.cs
@@ -0,0 +1,41 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using System.Collections.Generic;
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationMerchantCapabilitiesAffirmPayments : StripeEntity
+ {
+ ///
+ /// Whether the Capability has been requested.
+ ///
+ [JsonProperty("requested")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("requested")]
+#endif
+ public bool Requested { get; set; }
+
+ ///
+ /// The status of the Capability.
+ /// One of: active, pending, restricted, or unsupported.
+ ///
+ [JsonProperty("status")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("status")]
+#endif
+ public string Status { get; set; }
+
+ ///
+ /// Additional details regarding the status of the Capability. status_details will be
+ /// empty if the Capability's status is active.
+ ///
+ [JsonProperty("status_details")]
+#if NET6_0_OR_GREATER
+ [STJS.JsonPropertyName("status_details")]
+#endif
+ public List StatusDetails { get; set; }
+ }
+}
diff --git a/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAffirmPaymentsStatusDetail.cs b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAffirmPaymentsStatusDetail.cs
new file mode 100644
index 0000000000..bb0a74b9a5
--- /dev/null
+++ b/src/Stripe.net/Entities/V2/Core/Accounts/AccountConfigurationMerchantCapabilitiesAffirmPaymentsStatusDetail.cs
@@ -0,0 +1,34 @@
+// File generated from our OpenAPI spec
+namespace Stripe.V2.Core
+{
+ using Newtonsoft.Json;
+#if NET6_0_OR_GREATER
+ using STJS = System.Text.Json.Serialization;
+#endif
+
+ public class AccountConfigurationMerchantCapabilitiesAffirmPaymentsStatusDetail : StripeEntity
+ {
+ ///